aboutsummaryrefslogtreecommitdiff
path: root/src/ARM_InstrInfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ARM_InstrInfo.cpp')
-rw-r--r--src/ARM_InstrInfo.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/ARM_InstrInfo.cpp b/src/ARM_InstrInfo.cpp
index b884773..28362d9 100644
--- a/src/ARM_InstrInfo.cpp
+++ b/src/ARM_InstrInfo.cpp
@@ -427,6 +427,10 @@ Info Decode(bool thumb, u32 num, u32 instr)
res.Kind = ak_UNK;
}
}
+ if (res.Kind == ak_MRS && !(instr & (1 << 22)))
+ res.ReadFlags |= flag_N | flag_Z | flag_C | flag_V;
+ if ((res.Kind == ak_MSR_IMM || res.Kind == ak_MSR_REG) && instr & (1 << 19))
+ res.WriteFlags |= flag_N | flag_Z | flag_C | flag_V;
if (data & A_Read0)
res.SrcRegs |= 1 << (instr & 0xF);