aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ARMInterpreter.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/ARMInterpreter.cpp b/src/ARMInterpreter.cpp
index 3b8408a..dfcb801 100644
--- a/src/ARMInterpreter.cpp
+++ b/src/ARMInterpreter.cpp
@@ -196,6 +196,9 @@ void A_MRS(ARM* cpu)
void A_MCR(ARM* cpu)
{
+ if ((cpu->CPSR & 0x1F) == 0x10)
+ return A_UNK(cpu);
+
u32 cp = (cpu->CurInstr >> 8) & 0xF;
//u32 op = (cpu->CurInstr >> 21) & 0x7;
u32 cn = (cpu->CurInstr >> 16) & 0xF;
@@ -221,6 +224,9 @@ void A_MCR(ARM* cpu)
void A_MRC(ARM* cpu)
{
+ if ((cpu->CPSR & 0x1F) == 0x10)
+ return A_UNK(cpu);
+
u32 cp = (cpu->CurInstr >> 8) & 0xF;
//u32 op = (cpu->CurInstr >> 21) & 0x7;
u32 cn = (cpu->CurInstr >> 16) & 0xF;