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 |