all repos — mgba @ 8ef0427885279738a9af3ad7b8d4df26ed0b8bd9

mGBA Game Boy Advance Emulator

ARM: Fix LDM^ writeback to user-mode register
Vicki Pfau vi@endrift.com
Fri, 26 Jun 2020 01:17:19 -0700
commit

8ef0427885279738a9af3ad7b8d4df26ed0b8bd9

parent

2ec57def29358df37ea5ed0a145bc34d68fad23f

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

jump to
M CHANGESCHANGES

@@ -5,6 +5,7 @@ - Add APNG recording

Emulation fixes: - ARM: Fix ALU reading PC after shifting - ARM: Fix STR storing PC after address calculation + - ARM: Fix LDM^ writeback to user-mode register - GB: Partially fix timing for skipped BIOS - GB Memory: Fix OAM DMA from top 8 kB - GB MBC: Fix MBC1 mode changing behavior
M src/arm/isa-arm.csrc/arm/isa-arm.c

@@ -446,9 +446,9 @@ int rs = opcode & 0x0000FFFF; \

uint32_t address = cpu->gprs[rn]; \ S_PRE; \ address = cpu->memory. LS ## Multiple(cpu, address, rs, LSM_ ## DIRECTION, &currentCycles); \ + WRITEBACK; \ S_POST; \ - POST_BODY; \ - WRITEBACK;) + POST_BODY;) #define DEFINE_LOAD_STORE_MULTIPLE_INSTRUCTION_ARM(NAME, LS, POST_BODY) \