| Index: src/arm/deoptimizer-arm.cc
|
| ===================================================================
|
| --- src/arm/deoptimizer-arm.cc (revision 9277)
|
| +++ src/arm/deoptimizer-arm.cc (working copy)
|
| @@ -632,7 +632,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_);
|
| @@ -686,8 +689,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.
|
|
|