Debugger: Negative PC-relative loads now properly subtract the offset

This commit is contained in:
Jeffrey Pfau 2014-12-20 15:10:54 -08:00
parent 48c0dcf320
commit 0a3cf87745
2 changed files with 2 additions and 1 deletions

View File

@ -12,6 +12,7 @@ Bugfixes:
- 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

View File

@ -127,7 +127,7 @@ static int _decodeMemory(struct ARMMemoryAccess memory, int pc, char* buffer, in
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);