Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index 74fecc29df17614a9f6b1378ff980b2ca5059146..823a4ee399ef800c779e649e521e95cb0f0fb437 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -1341,8 +1341,7 @@ void LCodeGen::DoArithmeticD(LArithmeticD* instr) { |
__ stm(db_w, sp, r0.bit() | r1.bit() | r2.bit() | r3.bit()); |
__ PrepareCallCFunction(4, scratch0()); |
- __ vmov(r0, r1, left); |
- __ vmov(r2, r3, right); |
+ __ SetCallCDoubleArguments(left, right); |
__ CallCFunction( |
ExternalReference::double_fp_operation(Token::MOD, isolate()), 4); |
// Move the result in the double result register. |
@@ -2962,18 +2961,17 @@ void LCodeGen::DoPower(LPower* instr) { |
if (exponent_type.IsDouble()) { |
// Prepare arguments and call C function. |
__ PrepareCallCFunction(4, scratch); |
- __ vmov(r0, r1, ToDoubleRegister(left)); |
- __ vmov(r2, r3, ToDoubleRegister(right)); |
+ __ SetCallCDoubleArguments(ToDoubleRegister(left), |
+ ToDoubleRegister(right)); |
__ CallCFunction( |
ExternalReference::power_double_double_function(isolate()), 4); |
} else if (exponent_type.IsInteger32()) { |
ASSERT(ToRegister(right).is(r0)); |
// Prepare arguments and call C function. |
- __ PrepareCallCFunction(4, scratch); |
- __ mov(r2, ToRegister(right)); |
- __ vmov(r0, r1, ToDoubleRegister(left)); |
+ __ PrepareCallCFunction(3, scratch); |
+ __ SetCallCDoubleArguments(ToDoubleRegister(left), ToRegister(right)); |
__ CallCFunction( |
- ExternalReference::power_double_int_function(isolate()), 4); |
+ ExternalReference::power_double_int_function(isolate()), 3); |
} else { |
ASSERT(exponent_type.IsTagged()); |
ASSERT(instr->hydrogen()->left()->representation().IsDouble()); |
@@ -3004,8 +3002,7 @@ void LCodeGen::DoPower(LPower* instr) { |
// Prepare arguments and call C function. |
__ bind(&call); |
__ PrepareCallCFunction(4, scratch); |
- __ vmov(r0, r1, ToDoubleRegister(left)); |
- __ vmov(r2, r3, result_reg); |
+ __ SetCallCDoubleArguments(ToDoubleRegister(left), result_reg); |
__ CallCFunction( |
ExternalReference::power_double_double_function(isolate()), 4); |
} |