aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRSDuck <rsduck@users.noreply.github.com>2019-08-17 14:58:37 +0200
committerRSDuck <rsduck@users.noreply.github.com>2020-04-26 13:04:58 +0200
commitec21172cd9932805f02d84f41599c7a23e3b23f5 (patch)
tree8ace55f499b212c38ad6ac7bc5169514cddef832 /src
parent5e443e79625b66daf15350d68921d74673cb5232 (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.cpp4
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);