| Index: src/arm/code-stubs-arm.cc
|
| ===================================================================
|
| --- src/arm/code-stubs-arm.cc (revision 9309)
|
| +++ src/arm/code-stubs-arm.cc (working copy)
|
| @@ -3181,6 +3181,7 @@
|
| } else {
|
| __ vmov(r0, r1, d2);
|
| }
|
| + AllowExternalCallThatCantCauseGC scope(masm);
|
| switch (type_) {
|
| case TranscendentalCache::SIN:
|
| __ CallCFunction(ExternalReference::math_sin_double_function(isolate),
|
| @@ -3334,12 +3335,23 @@
|
|
|
|
|
| bool CEntryStub::CompilingCallsToThisStubIsGCSafe() {
|
| - return !save_doubles_ && result_size_ == 1;
|
| + return (!save_doubles_ || ISOLATE->fp_stubs_generated()) &&
|
| + result_size_ == 1;
|
| }
|
|
|
|
|
| void CodeStub::GenerateStubsAheadOfTime() {
|
| }
|
| +
|
| +
|
| +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(r0);
|
| }
|
|
|