aboutsummaryrefslogtreecommitdiff
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-06-16 11:54:51 +0200
commit26ecf6bb3c0fe6dec76433662e69903cc453242b (patch)
tree8fdb5f8453487f06aaa402c4a4d02188b915a7e7
parent86b96ca47a3b08a16ed5ed865b2d1bdb46a6c8cb (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
-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);