diff options
author | RSDuck <rsduck@users.noreply.github.com> | 2019-08-17 14:58:37 +0200 |
---|---|---|
committer | RSDuck <rsduck@users.noreply.github.com> | 2020-04-26 13:04:58 +0200 |
commit | ec21172cd9932805f02d84f41599c7a23e3b23f5 (patch) | |
tree | 8ace55f499b212c38ad6ac7bc5169514cddef832 /src | |
parent | 5e443e79625b66daf15350d68921d74673cb5232 (diff) |
fix register alloc for half word loads
fixes Mega Man Star Force 2 with cheat applied
it probably used a pc relative load which were interpreted as branches
Diffstat (limited to 'src')
-rw-r--r-- | src/ARM_InstrInfo.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/ARM_InstrInfo.cpp b/src/ARM_InstrInfo.cpp index b70c8dc..4813799 100644 --- a/src/ARM_InstrInfo.cpp +++ b/src/ARM_InstrInfo.cpp @@ -127,8 +127,8 @@ A_IMPLEMENT_WB_LDRSTR(LDRB,LDR) #define A_STRD A_Read12Double #define A_IMPLEMENT_HD_LDRSTR(x,k) \ - const u32 A_##x##_IMM = A_##k | A_Read16 | A_Write16 | ak(ak_##x##_IMM); \ - const u32 A_##x##_REG = A_##k | A_Read16 | A_Write16 | A_Read0 | ak(ak_##x##_REG); \ + const u32 A_##x##_IMM = A_##k | A_Read16 | A_MemWriteback | ak(ak_##x##_IMM); \ + const u32 A_##x##_REG = A_##k | A_Read16 | A_MemWriteback | A_Read0 | ak(ak_##x##_REG); \ const u32 A_##x##_POST_IMM = A_##k | A_Read16 | A_Write16 | ak(ak_##x##_POST_IMM); \ const u32 A_##x##_POST_REG = A_##k | A_Read16 | A_Write16 | A_Read0 | ak(ak_##x##_POST_REG); |