Index: src/arm/stub-cache-arm.cc |
diff --git a/src/arm/stub-cache-arm.cc b/src/arm/stub-cache-arm.cc |
index c1c87d954e1cc0ea479db95c2594499367deffc6..5b24ca880eaf88814b6dc3e734da32b71c6e0536 100644 |
--- a/src/arm/stub-cache-arm.cc |
+++ b/src/arm/stub-cache-arm.cc |
@@ -791,12 +791,16 @@ static void PushInterceptorArguments(MacroAssembler* masm, |
Register scratch = name; |
__ mov(scratch, Operand(interceptor)); |
__ push(scratch); |
+ STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 0); |
+ STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == -1); |
+ STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == -4); |
+ STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == -5); |
__ push(receiver); |
- __ push(holder); |
__ ldr(scratch, FieldMemOperand(scratch, InterceptorInfo::kDataOffset)); |
__ push(scratch); |
__ mov(scratch, Operand(ExternalReference::isolate_address(masm->isolate()))); |
__ push(scratch); |
+ __ push(holder); |
} |
@@ -1420,6 +1424,12 @@ void BaseLoadStubCompiler::GenerateLoadCallback( |
Handle<ExecutableAccessorInfo> callback) { |
// Build AccessorInfo::args_ list on the stack and push property name below |
// the exit frame to make GC aware of them and store pointers to them. |
+ STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 0); |
+ STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == -1); |
+ STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == -2); |
+ STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == -3); |
+ STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == -4); |
+ STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == -5); |
__ push(receiver()); |
__ mov(scratch2(), sp); // scratch2 = AccessorInfo::args_ |
if (heap()->InNewSpace(callback->data())) { |
@@ -1429,13 +1439,15 @@ void BaseLoadStubCompiler::GenerateLoadCallback( |
} else { |
__ Move(scratch3(), Handle<Object>(callback->data(), isolate())); |
} |
- __ Push(reg, scratch3()); |
+ __ push(scratch3()); |
__ LoadRoot(scratch3(), Heap::kUndefinedValueRootIndex); |
__ mov(scratch4(), scratch3()); |
__ Push(scratch3(), scratch4()); |
__ mov(scratch4(), |
Operand(ExternalReference::isolate_address(isolate()))); |
- __ Push(scratch4(), name()); |
+ |
+ __ Push(scratch4(), reg); |
+ __ push(name()); |
__ mov(r0, sp); // r0 = Handle<Name> |
const int kApiStackSpace = 1; |
@@ -1465,7 +1477,7 @@ void BaseLoadStubCompiler::GenerateLoadCallback( |
thunk_ref, |
r2, |
kStackUnwindSpace, |
- 5); |
+ 6); |
} |