Index: src/arm/full-codegen-arm.cc |
diff --git a/src/arm/full-codegen-arm.cc b/src/arm/full-codegen-arm.cc |
index 6086645db3c2c08dc3706474d2e224792544a012..74f701a0cf6ac3a48d3875c02d5620e9c2d6eaf0 100644 |
--- a/src/arm/full-codegen-arm.cc |
+++ b/src/arm/full-codegen-arm.cc |
@@ -2289,8 +2289,7 @@ void FullCodeGenerator::EmitCallWithIC(Call* expr, |
isolate()->stub_cache()->ComputeCallInitialize(arg_count, mode); |
CallIC(ic, mode, expr->CallFeedbackId()); |
RecordJSReturnSite(expr); |
- // Restore context register. |
- __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset)); |
+ __ ReloadContextFromFrame(); |
context()->Plug(r0); |
} |
@@ -2322,8 +2321,7 @@ void FullCodeGenerator::EmitKeyedCallWithIC(Call* expr, |
__ ldr(r2, MemOperand(sp, (arg_count + 1) * kPointerSize)); // Key. |
CallIC(ic, RelocInfo::CODE_TARGET, expr->CallFeedbackId()); |
RecordJSReturnSite(expr); |
- // Restore context register. |
- __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset)); |
+ __ ReloadContextFromFrame(); |
context()->DropAndPlug(1, r0); // Drop the key still on the stack. |
} |
@@ -2353,8 +2351,7 @@ void FullCodeGenerator::EmitCallWithStub(Call* expr, CallFunctionFlags flags) { |
__ ldr(r1, MemOperand(sp, (arg_count + 1) * kPointerSize)); |
__ CallStub(&stub, expr->CallFeedbackId()); |
RecordJSReturnSite(expr); |
- // Restore context register. |
- __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset)); |
+ __ ReloadContextFromFrame(); |
context()->DropAndPlug(1, r0); |
} |
@@ -2433,8 +2430,7 @@ void FullCodeGenerator::VisitCall(Call* expr) { |
__ ldr(r1, MemOperand(sp, (arg_count + 1) * kPointerSize)); |
__ CallStub(&stub); |
RecordJSReturnSite(expr); |
- // Restore context register. |
- __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset)); |
+ __ ReloadContextFromFrame(); |
context()->DropAndPlug(1, r0); |
} else if (proxy != NULL && proxy->var()->IsUnallocated()) { |
// Push global object as receiver for the call IC. |
@@ -3454,7 +3450,7 @@ void FullCodeGenerator::EmitCallFunction(CallRuntime* expr) { |
ParameterCount count(arg_count); |
__ InvokeFunction(r1, count, CALL_FUNCTION, |
NullCallWrapper(), CALL_AS_METHOD); |
- __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset)); |
+ __ ReloadContextFromFrame(); |
__ jmp(&done); |
__ bind(&runtime); |
@@ -3872,8 +3868,7 @@ void FullCodeGenerator::VisitCallRuntime(CallRuntime* expr) { |
Handle<Code> ic = |
isolate()->stub_cache()->ComputeCallInitialize(arg_count, mode); |
CallIC(ic, mode, expr->CallRuntimeFeedbackId()); |
- // Restore context register. |
- __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset)); |
+ __ ReloadContextFromFrame(); |
} else { |
// Call the C runtime function. |
__ CallRuntime(expr->function(), arg_count); |