all repos — mgba @ 0a3cf87745bff1647b267276759a9d8625c500db

mGBA Game Boy Advance Emulator

Debugger: Negative PC-relative loads now properly subtract the offset
Jeffrey Pfau jeffrey@endrift.com
Sat, 20 Dec 2014 15:10:54 -0800
commit

0a3cf87745bff1647b267276759a9d8625c500db

parent

48c0dcf320629aa69cf26867b18b66d93a32bc62

2 files changed, 2 insertions(+), 1 deletions(-)

jump to
M CHANGESCHANGES

@@ -12,6 +12,7 @@ - ARM7: Fix LDM writeback to a register already written

- GBA Memory: Don't call into GPIO write calls if GPIO devices are absent - ARM7: Extend prefetch by one stage - GBA BIOS: Fix BIOS prefetch after returning from a SWI + - Debugger: Negative PC-relative loads now properly subtract the offset Misc: - Qt: Disable sync to video by default - GBA: Exit cleanly on FATAL if the port supports it
M src/arm/decoder.csrc/arm/decoder.c

@@ -127,7 +127,7 @@ ADVANCE(1);

int written; if (memory.format & ARM_MEMORY_REGISTER_BASE) { if (memory.baseReg == ARM_PC && memory.format & ARM_MEMORY_IMMEDIATE_OFFSET) { - written = _decodePCRelative(memory.offset.immediate, pc, buffer, blen); + written = _decodePCRelative(memory.format & ARM_MEMORY_OFFSET_SUBTRACT ? -memory.offset.immediate : memory.offset.immediate, pc, buffer, blen); ADVANCE(written); } else { written = _decodeRegister(memory.baseReg, buffer, blen);