| Index: src/ia32/interface-descriptors-ia32.cc
|
| diff --git a/src/ia32/interface-descriptors-ia32.cc b/src/ia32/interface-descriptors-ia32.cc
|
| index f97c64c0a24b3f8079ae226cffe7578015bf7212..3a0d5268e07347f51146ba57ec9b3ffb88c1e5fc 100644
|
| --- a/src/ia32/interface-descriptors-ia32.cc
|
| +++ b/src/ia32/interface-descriptors-ia32.cc
|
| @@ -18,17 +18,9 @@ const Register LoadDescriptor::ReceiverRegister() { return edx; }
|
| const Register LoadDescriptor::NameRegister() { return ecx; }
|
|
|
|
|
| -const Register VectorLoadICDescriptor::ReceiverRegister() {
|
| - return LoadDescriptor::ReceiverRegister();
|
| -}
|
| -
|
| -
|
| -const Register VectorLoadICDescriptor::NameRegister() {
|
| - return LoadDescriptor::NameRegister();
|
| -}
|
| +const Register VectorLoadICTrampolineDescriptor::SlotRegister() { return eax; }
|
|
|
|
|
| -const Register VectorLoadICDescriptor::SlotRegister() { return eax; }
|
| const Register VectorLoadICDescriptor::VectorRegister() { return ebx; }
|
|
|
|
|
| @@ -37,28 +29,28 @@ const Register StoreDescriptor::NameRegister() { return ecx; }
|
| const Register StoreDescriptor::ValueRegister() { return eax; }
|
|
|
|
|
| -const Register ElementTransitionAndStoreDescriptor::ReceiverRegister() {
|
| - return StoreDescriptor::ReceiverRegister();
|
| +const Register ElementTransitionAndStoreDescriptor::MapRegister() {
|
| + return ebx;
|
| }
|
|
|
|
|
| -const Register ElementTransitionAndStoreDescriptor::NameRegister() {
|
| - return StoreDescriptor::NameRegister();
|
| -}
|
| +const Register InstanceofDescriptor::left() { return eax; }
|
| +const Register InstanceofDescriptor::right() { return edx; }
|
|
|
|
|
| -const Register ElementTransitionAndStoreDescriptor::ValueRegister() {
|
| - return StoreDescriptor::ValueRegister();
|
| -}
|
| +const Register ArgumentsAccessReadDescriptor::index() { return edx; }
|
| +const Register ArgumentsAccessReadDescriptor::parameter_count() { return eax; }
|
|
|
|
|
| -const Register ElementTransitionAndStoreDescriptor::MapRegister() {
|
| - return ebx;
|
| -}
|
| +const Register ApiGetterDescriptor::function_address() { return edx; }
|
|
|
|
|
| -const Register InstanceofDescriptor::left() { return eax; }
|
| -const Register InstanceofDescriptor::right() { return edx; }
|
| +const Register MathPowTaggedDescriptor::exponent() { return eax; }
|
| +
|
| +
|
| +const Register MathPowIntegerDescriptor::exponent() {
|
| + return MathPowTaggedDescriptor::exponent();
|
| +}
|
|
|
|
|
| void FastNewClosureDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| @@ -110,12 +102,29 @@ void CreateAllocationSiteDescriptor::Initialize(
|
| }
|
|
|
|
|
| +void StoreArrayLiteralElementDescriptor::Initialize(
|
| + CallInterfaceDescriptorData* data) {
|
| + Register registers[] = {esi, ecx, eax};
|
| + data->Initialize(arraysize(registers), registers, NULL);
|
| +}
|
| +
|
| +
|
| void CallFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| Register registers[] = {esi, edi};
|
| data->Initialize(arraysize(registers), registers, NULL);
|
| }
|
|
|
|
|
| +void CallFunctionWithFeedbackDescriptor::Initialize(
|
| + CallInterfaceDescriptorData* data) {
|
| + Register registers[] = {esi, edi, edx};
|
| + Representation representations[] = {Representation::Tagged(),
|
| + Representation::Tagged(),
|
| + Representation::Smi()};
|
| + data->Initialize(arraysize(registers), registers, representations);
|
| +}
|
| +
|
| +
|
| void CallConstructDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| // eax : number of arguments
|
| // ebx : feedback vector
|
|
|