Chromium Code Reviews| Index: src/arm/builtins-arm.cc |
| diff --git a/src/arm/builtins-arm.cc b/src/arm/builtins-arm.cc |
| index 4b658458a28aa462d7444c225b2fbb7cb66b9c19..83ac33ca6146aaf48183c94a253e9f004d5e190e 100644 |
| --- a/src/arm/builtins-arm.cc |
| +++ b/src/arm/builtins-arm.cc |
| @@ -34,6 +34,7 @@ |
| #include "deoptimizer.h" |
| #include "full-codegen.h" |
| #include "runtime.h" |
| +#include "stub-cache.h" |
| namespace v8 { |
| namespace internal { |
| @@ -1074,12 +1075,8 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) { |
| // Use the global receiver object from the called function as the |
| // receiver. |
| __ bind(&use_global_receiver); |
| - const int kGlobalIndex = |
| - Context::kHeaderSize + Context::GLOBAL_OBJECT_INDEX * kPointerSize; |
| - __ ldr(r2, FieldMemOperand(cp, kGlobalIndex)); |
| - __ ldr(r2, FieldMemOperand(r2, GlobalObject::kNativeContextOffset)); |
| - __ ldr(r2, FieldMemOperand(r2, kGlobalIndex)); |
| - __ ldr(r2, FieldMemOperand(r2, GlobalObject::kGlobalReceiverOffset)); |
| + __ ldr(r2, ContextOperand(cp, Context::GLOBAL_OBJECT_INDEX)); |
|
dcarney
2013/12/26 13:35:52
here and below we load from the correct context di
|
| + __ ldr(r2, FieldMemOperand(r2, GlobalObject::kGlobalReceiverOffset)); |
| __ bind(&patch_receiver); |
| __ add(r3, sp, Operand(r0, LSL, kPointerSizeLog2)); |
| @@ -1270,11 +1267,7 @@ void Builtins::Generate_FunctionApply(MacroAssembler* masm) { |
| // Use the current global receiver object as the receiver. |
| __ bind(&use_global_receiver); |
| - const int kGlobalOffset = |
| - Context::kHeaderSize + Context::GLOBAL_OBJECT_INDEX * kPointerSize; |
| - __ ldr(r0, FieldMemOperand(cp, kGlobalOffset)); |
| - __ ldr(r0, FieldMemOperand(r0, GlobalObject::kNativeContextOffset)); |
| - __ ldr(r0, FieldMemOperand(r0, kGlobalOffset)); |
| + __ ldr(r0, ContextOperand(cp, Context::GLOBAL_OBJECT_INDEX)); |
| __ ldr(r0, FieldMemOperand(r0, GlobalObject::kGlobalReceiverOffset)); |
| // Push the receiver. |