Index: src/arm/macro-assembler-arm.cc |
diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc |
index a8d4b7ccd458d2e26ec54ee5c40ff3f1a51d0d20..c34a7f75b688f9e8a9ed5c2cf0aa742680d1253f 100644 |
--- a/src/arm/macro-assembler-arm.cc |
+++ b/src/arm/macro-assembler-arm.cc |
@@ -254,6 +254,19 @@ void MacroAssembler::Move(DwVfpRegister dst, DwVfpRegister src) { |
} |
+void MacroAssembler::Mls(Register dst, Register src1, Register src2, |
+ Register srcA, Condition cond) { |
+ if (CpuFeatures::IsSupported(MLS)) { |
+ CpuFeatureScope scope(this, MLS); |
+ mls(dst, src1, src2, srcA, cond); |
+ } else { |
+ ASSERT(!dst.is(srcA)); |
+ mul(ip, src1, src2, LeaveCC, cond); |
+ sub(dst, srcA, ip, LeaveCC, cond); |
+ } |
+} |
+ |
+ |
void MacroAssembler::And(Register dst, Register src1, const Operand& src2, |
Condition cond) { |
if (!src2.is_reg() && |