Index: src/arm/code-stubs-arm.cc |
diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc |
index a17c7dde4904310b15c3e0392cef92c18a523f8f..3e637416da806b0a858fb9d7f58c4eb184f3f28f 100644 |
--- a/src/arm/code-stubs-arm.cc |
+++ b/src/arm/code-stubs-arm.cc |
@@ -3497,6 +3497,8 @@ void CEntryStub::GenerateCore(MacroAssembler* masm, |
masm->Jump(r5); |
} |
+ __ VFPEnsureFPSCRState(r2); |
+ |
if (always_allocate) { |
// It's okay to clobber r2 and r3 here. Don't mess with r0 and r1 |
// though (contain the result). |
@@ -3658,6 +3660,7 @@ void JSEntryStub::GenerateBody(MacroAssembler* masm, bool is_construct) { |
__ vstm(db_w, sp, kFirstCalleeSavedDoubleReg, kLastCalleeSavedDoubleReg); |
// Set up the reserved register for 0.0. |
__ vmov(kDoubleRegZero, 0.0); |
+ __ VFPEnsureFPSCRState(r4); |
// Get address of argv, see stm above. |
// r0: code entry |
@@ -6839,6 +6842,7 @@ void DirectCEntryStub::GenerateCall(MacroAssembler* masm, |
__ Jump(target); // Call the C++ function. |
ASSERT_EQ(Assembler::kInstrSize + Assembler::kPcLoadDelta, |
masm->SizeOfCodeGeneratedSince(&start)); |
+ __ VFPEnsureFPSCRState(r2); |
} |
@@ -7439,7 +7443,7 @@ void StoreArrayLiteralElementStub::Generate(MacroAssembler* masm) { |
__ ldr(r5, FieldMemOperand(r1, JSObject::kElementsOffset)); |
__ StoreNumberToDoubleElements(r0, r3, |
// Overwrites all regs after this. |
- r5, r6, r7, r9, r2, |
+ r5, r9, r6, r7, r2, |
&slow_elements); |
__ Ret(); |
} |