Arm: BLX is UNPREDICTABLE when Rm is PC

This commit is contained in:
MerryMage
2016-08-07 20:50:33 +01:00
parent 1af5bef32c
commit 4dcd1d1859
2 changed files with 4 additions and 1 deletions

View File

@@ -44,6 +44,8 @@ bool ArmTranslatorVisitor::arm_BLX_imm(bool H, Imm24 imm24) {
}
bool ArmTranslatorVisitor::arm_BLX_reg(Cond cond, Reg m) {
if (m == Reg::PC)
return UnpredictableInstruction();
// BLX <Rm>
if (ConditionPassed(cond)) {
ir.SetRegister(Reg::LR, ir.Imm32(ir.current_location.PC() + 4));