diff --git a/src/binary_translation/Instructions/DataProcessing.cpp b/src/binary_translation/Instructions/DataProcessing.cpp index a9dd62660..8a63db40d 100644 --- a/src/binary_translation/Instructions/DataProcessing.cpp +++ b/src/binary_translation/Instructions/DataProcessing.cpp @@ -12,9 +12,10 @@ bool DataProcessing::Decode() FieldDef<4>(&rd), FieldDef<5>(&imm5), FieldDef<3>(0), FieldDef<4>(&rm) })) { form = Form::Register; + if (cond != Condition::AL) return false; if (imm5 != 0) return false; // Shifts if (s != 0) return false; // Set flags - if (rd == Register::PC) return false; // Jump + if (rm == Register::PC) return false; // Jump return true; } if (ReadFields({ FieldDef<4>(&cond), FieldDef<3>(1), FieldDef<4>(&short_op), FieldDef<1>(&s), FieldDef<4>(&rn),