all repos — mgba @ 5ebf24b621c50c167213fd6b8a0174ae88e7c160

mGBA Game Boy Advance Emulator

ARM9: Fix LDMv5 writeback
Vicki Pfau vi@endrift.com
Sun, 19 Feb 2017 13:06:43 -0800
commit

5ebf24b621c50c167213fd6b8a0174ae88e7c160

parent

107ffdb2cb784f43059f20cd1755246ae8d4e683

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

jump to
M src/arm/isa-arm.csrc/arm/isa-arm.c

@@ -262,7 +262,10 @@ if (!((1 << rn) & rs)) { \

cpu->gprs[rn] = address; \ } -#define ADDR_MODE_4_WRITEBACK_LDMv5 ADDR_MODE_4_WRITEBACK_LDM +#define ADDR_MODE_4_WRITEBACK_LDMv5 \ + if (!((1 << rn) & rs) || !(((1 << rn) - 1) & rs)) { \ + cpu->gprs[rn] = address; \ + } #define ADDR_MODE_4_WRITEBACK_STM cpu->gprs[rn] = address;