Index: src/arm/deoptimizer-arm.cc |
=================================================================== |
--- src/arm/deoptimizer-arm.cc (revision 8110) |
+++ src/arm/deoptimizer-arm.cc (working copy) |
@@ -603,7 +603,10 @@ |
__ mov(r5, Operand(ExternalReference::isolate_address())); |
__ str(r5, MemOperand(sp, 1 * kPointerSize)); // Isolate. |
// Call Deoptimizer::New(). |
- __ CallCFunction(ExternalReference::new_deoptimizer_function(isolate), 6); |
+ { |
+ AllowExternalCallThatCantCauseGC scope(masm()); |
+ __ CallCFunction(ExternalReference::new_deoptimizer_function(isolate), 6); |
+ } |
// Preserve "deoptimizer" object in register r0 and get the input |
// frame descriptor pointer to r1 (deoptimizer->input_); |
@@ -657,8 +660,11 @@ |
// r0: deoptimizer object; r1: scratch. |
__ PrepareCallCFunction(1, r1); |
// Call Deoptimizer::ComputeOutputFrames(). |
- __ CallCFunction( |
- ExternalReference::compute_output_frames_function(isolate), 1); |
+ { |
+ AllowExternalCallThatCantCauseGC scope(masm()); |
+ __ CallCFunction( |
+ ExternalReference::compute_output_frames_function(isolate), 1); |
+ } |
__ pop(r0); // Restore deoptimizer object (class Deoptimizer). |
// Replace the current (input) frame with the output frames. |