Index: src/mips/code-stubs-mips.cc |
=================================================================== |
--- src/mips/code-stubs-mips.cc (revision 9309) |
+++ src/mips/code-stubs-mips.cc (working copy) |
@@ -3318,6 +3318,7 @@ |
} else { |
__ mov_d(f12, f4); |
} |
+ AllowExternalCallThatCantCauseGC scope(masm); |
switch (type_) { |
case TranscendentalCache::SIN: |
__ CallCFunction( |
@@ -3477,7 +3478,8 @@ |
bool CEntryStub::CompilingCallsToThisStubIsGCSafe() { |
- return !save_doubles_ && result_size_ == 1; |
+ return (!save_doubles_ || ISOLATE->fp_stubs_generated()) && |
+ result_size_ == 1; |
} |
@@ -3485,6 +3487,14 @@ |
} |
+void CodeStub::GenerateFPStubs() { |
+ CEntryStub save_doubles(1); |
+ save_doubles.SaveDoubles(); |
+ Handle<Code> code = save_doubles.GetCode(); |
+ code->GetIsolate()->set_fp_stubs_generated(true); |
+} |
+ |
+ |
void CEntryStub::GenerateThrowTOS(MacroAssembler* masm) { |
__ Throw(v0); |
} |