diff --git a/src/Registers.hpp b/src/Registers.hpp index 36653ef..ad8b906 100644 --- a/src/Registers.hpp +++ b/src/Registers.hpp @@ -486,7 +486,6 @@ public: uint64_t getIP() const { return _registers.__srr0; } void setIP(uint32_t value) { _registers.__srr0 = value; } -private: struct ppc_thread_state_t { unsigned int __srr0; /* Instruction address register (PC) */ unsigned int __srr1; /* Machine state register (supervisor) */ @@ -537,6 +536,7 @@ private: unsigned int __fpscr; /* floating point status register */ }; +private: ppc_thread_state_t _registers; ppc_float_state_t _floatRegisters; v128 _vectorRegisters[32]; // offset 424 @@ -1052,7 +1052,6 @@ public: uint64_t getFP() const { return _registers.__fp; } void setFP(uint64_t value) { _registers.__fp = value; } -private: struct GPRs { uint64_t __x[29]; // x0-x28 uint64_t __fp; // Frame pointer x29 @@ -1062,6 +1061,7 @@ private: uint64_t padding; // 16-byte align }; +private: GPRs _registers; double _vectorHalfRegisters[32]; // Currently only the lower double in 128-bit vectore registers