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 |