diff options
Diffstat (limited to 'deps/v8/src/ia32/interface-descriptors-ia32.cc')
-rw-r--r-- | deps/v8/src/ia32/interface-descriptors-ia32.cc | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/deps/v8/src/ia32/interface-descriptors-ia32.cc b/deps/v8/src/ia32/interface-descriptors-ia32.cc index f1972b9561..220484c1bf 100644 --- a/deps/v8/src/ia32/interface-descriptors-ia32.cc +++ b/deps/v8/src/ia32/interface-descriptors-ia32.cc @@ -39,19 +39,11 @@ const Register StoreDescriptor::SlotRegister() { return edi; } const Register StoreWithVectorDescriptor::VectorRegister() { return ebx; } -const Register VectorStoreTransitionDescriptor::SlotRegister() { - return no_reg; -} - - -const Register VectorStoreTransitionDescriptor::VectorRegister() { return ebx; } - +const Register StoreTransitionDescriptor::SlotRegister() { return no_reg; } -const Register VectorStoreTransitionDescriptor::MapRegister() { return edi; } - - -const Register StoreTransitionDescriptor::MapRegister() { return ebx; } +const Register StoreTransitionDescriptor::VectorRegister() { return ebx; } +const Register StoreTransitionDescriptor::MapRegister() { return edi; } const Register StoreGlobalViaContextDescriptor::SlotRegister() { return ebx; } const Register StoreGlobalViaContextDescriptor::ValueRegister() { return eax; } @@ -365,7 +357,7 @@ void ArgumentAdaptorDescriptor::InitializePlatformSpecific( data->InitializePlatformSpecific(arraysize(registers), registers); } -void ApiCallbackDescriptorBase::InitializePlatformSpecific( +void ApiCallbackDescriptor::InitializePlatformSpecific( CallInterfaceDescriptorData* data) { Register registers[] = { edi, // callee @@ -400,7 +392,19 @@ void InterpreterPushArgsAndConstructDescriptor::InitializePlatformSpecific( eax, // argument count (not including receiver) edx, // new target edi, // constructor - ebx, // address of first argument + ebx, // allocation site feedback + ecx, // address of first argument + }; + data->InitializePlatformSpecific(arraysize(registers), registers); +} + +void InterpreterPushArgsAndConstructArrayDescriptor::InitializePlatformSpecific( + CallInterfaceDescriptorData* data) { + Register registers[] = { + eax, // argument count (not including receiver) + edx, // target to the call. It is checked to be Array function. + ebx, // allocation site feedback + ecx, // address of first argument }; data->InitializePlatformSpecific(arraysize(registers), registers); } |