diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2024-02-05 13:41:15 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-05 13:41:15 -0500 |
commit | 8ef1db78b001ce83b14a293bfb5880d2c448e8c6 (patch) | |
tree | 32c50302256f30428eabde02390c3030af074a79 /src | |
parent | 18c8f10ff202291d61e0deffdf7a2e0d0aa0ade8 (diff) | |
parent | 85143e8376bf1276d39af3a3c84fc972cf1d4ec0 (diff) |
Merge pull request #12916 from liamwhite/float-fix
gdb: fix load/save of fp values in a32
Diffstat (limited to 'src')
-rw-r--r-- | src/core/debugger/gdbstub_arch.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/core/debugger/gdbstub_arch.cpp b/src/core/debugger/gdbstub_arch.cpp index f2a407dc8..452f565be 100644 --- a/src/core/debugger/gdbstub_arch.cpp +++ b/src/core/debugger/gdbstub_arch.cpp @@ -383,7 +383,7 @@ std::string GDBStubA32::RegRead(const Kernel::KThread* thread, size_t id) const } else if (id == CPSR_REGISTER) { return ValueToHex(context.pstate); } else if (id >= D0_REGISTER && id < Q0_REGISTER) { - return ValueToHex(fprs[id - D0_REGISTER][0]); + return ValueToHex(fprs[(id - D0_REGISTER) / 2][(id - D0_REGISTER) % 2]); } else if (id >= Q0_REGISTER && id < FPSCR_REGISTER) { return ValueToHex(fprs[id - Q0_REGISTER]); } else if (id == FPSCR_REGISTER) { @@ -406,7 +406,7 @@ void GDBStubA32::RegWrite(Kernel::KThread* thread, size_t id, std::string_view v } else if (id == CPSR_REGISTER) { context.pstate = HexToValue<u32>(value); } else if (id >= D0_REGISTER && id < Q0_REGISTER) { - fprs[id - D0_REGISTER] = {HexToValue<u64>(value), 0}; + fprs[(id - D0_REGISTER) / 2][(id - D0_REGISTER) % 2] = HexToValue<u64>(value); } else if (id >= Q0_REGISTER && id < FPSCR_REGISTER) { fprs[id - Q0_REGISTER] = HexToValue<u128>(value); } else if (id == FPSCR_REGISTER) { |