translate_arm/multiply: MLA is UNPREDICTABLE when Ra == R15
This commit is contained in:
parent
0d0f4b1b4f
commit
2119dfc926
1 changed files with 1 additions and 1 deletions
|
@ -11,7 +11,7 @@ namespace Arm {
|
||||||
|
|
||||||
// Multiply (Normal) instructions
|
// Multiply (Normal) instructions
|
||||||
bool ArmTranslatorVisitor::arm_MLA(Cond cond, bool S, Reg d, Reg a, Reg m, Reg n) {
|
bool ArmTranslatorVisitor::arm_MLA(Cond cond, bool S, Reg d, Reg a, Reg m, Reg n) {
|
||||||
if (d == Reg::PC || n == Reg::PC || m == Reg::PC)
|
if (d == Reg::PC || n == Reg::PC || m == Reg::PC || a == Reg::PC)
|
||||||
return UnpredictableInstruction();
|
return UnpredictableInstruction();
|
||||||
if (ConditionPassed(cond)) {
|
if (ConditionPassed(cond)) {
|
||||||
auto result = ir.Add(ir.Mul(ir.GetRegister(n), ir.GetRegister(m)), ir.GetRegister(a));
|
auto result = ir.Add(ir.Mul(ir.GetRegister(n), ir.GetRegister(m)), ir.GetRegister(a));
|
||||||
|
|
Loading…
Reference in a new issue