| Index: src/arm/deoptimizer-arm.cc
|
| diff --git a/src/arm/deoptimizer-arm.cc b/src/arm/deoptimizer-arm.cc
|
| index 8e970ec746cb6396af862c7854a7ad3af874baa4..f1fde9223e0384fa37fc3190b7fc86c5cb529088 100644
|
| --- a/src/arm/deoptimizer-arm.cc
|
| +++ b/src/arm/deoptimizer-arm.cc
|
| @@ -513,6 +513,9 @@ void Deoptimizer::DoComputeFrame(TranslationIterator* iterator,
|
| // easily ported.
|
| void Deoptimizer::EntryGenerator::Generate() {
|
| GeneratePrologue();
|
| +
|
| + Isolate* isolate = masm()->isolate();
|
| +
|
| CpuFeatures::Scope scope(VFP3);
|
| // Save all general purpose registers before messing with them.
|
| const int kNumberOfRegisters = Register::kNumRegisters;
|
| @@ -567,7 +570,7 @@ void Deoptimizer::EntryGenerator::Generate() {
|
| // r3: code address or 0 already loaded.
|
| __ str(r4, MemOperand(sp, 0 * kPointerSize)); // Fp-to-sp delta.
|
| // Call Deoptimizer::New().
|
| - __ CallCFunction(ExternalReference::new_deoptimizer_function(), 5);
|
| + __ CallCFunction(ExternalReference::new_deoptimizer_function(isolate), 5);
|
|
|
| // Preserve "deoptimizer" object in register r0 and get the input
|
| // frame descriptor pointer to r1 (deoptimizer->input_);
|
| @@ -621,7 +624,8 @@ void Deoptimizer::EntryGenerator::Generate() {
|
| // r0: deoptimizer object; r1: scratch.
|
| __ PrepareCallCFunction(1, r1);
|
| // Call Deoptimizer::ComputeOutputFrames().
|
| - __ CallCFunction(ExternalReference::compute_output_frames_function(), 1);
|
| + __ CallCFunction(
|
| + ExternalReference::compute_output_frames_function(isolate), 1);
|
| __ pop(r0); // Restore deoptimizer object (class Deoptimizer).
|
|
|
| // Replace the current (input) frame with the output frames.
|
| @@ -671,7 +675,7 @@ void Deoptimizer::EntryGenerator::Generate() {
|
| __ pop(ip); // remove lr
|
|
|
| // Set up the roots register.
|
| - ExternalReference roots_address = ExternalReference::roots_address();
|
| + ExternalReference roots_address = ExternalReference::roots_address(isolate);
|
| __ mov(r10, Operand(roots_address));
|
|
|
| __ pop(ip); // remove pc
|
|
|