Index: src/ia32/interface-descriptors-ia32.cc |
diff --git a/src/ia32/interface-descriptors-ia32.cc b/src/ia32/interface-descriptors-ia32.cc |
index 504d4d5586d5069e741d26fe85a4515fb18ebb65..f97c64c0a24b3f8079ae226cffe7578015bf7212 100644 |
--- a/src/ia32/interface-descriptors-ia32.cc |
+++ b/src/ia32/interface-descriptors-ia32.cc |
@@ -61,60 +61,62 @@ const Register InstanceofDescriptor::left() { return eax; } |
const Register InstanceofDescriptor::right() { return edx; } |
-void FastNewClosureDescriptor::Initialize(Isolate* isolate) { |
+void FastNewClosureDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
Register registers[] = {esi, ebx}; |
- InitializeData(isolate, key(), arraysize(registers), registers, NULL); |
+ data->Initialize(arraysize(registers), registers, NULL); |
} |
-void FastNewContextDescriptor::Initialize(Isolate* isolate) { |
+void FastNewContextDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
Register registers[] = {esi, edi}; |
- InitializeData(isolate, key(), arraysize(registers), registers, NULL); |
+ data->Initialize(arraysize(registers), registers, NULL); |
} |
-void ToNumberDescriptor::Initialize(Isolate* isolate) { |
+void ToNumberDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
// ToNumberStub invokes a function, and therefore needs a context. |
Register registers[] = {esi, eax}; |
- InitializeData(isolate, key(), arraysize(registers), registers, NULL); |
+ data->Initialize(arraysize(registers), registers, NULL); |
} |
-void NumberToStringDescriptor::Initialize(Isolate* isolate) { |
+void NumberToStringDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
Register registers[] = {esi, eax}; |
- InitializeData(isolate, key(), arraysize(registers), registers, NULL); |
+ data->Initialize(arraysize(registers), registers, NULL); |
} |
-void FastCloneShallowArrayDescriptor::Initialize(Isolate* isolate) { |
+void FastCloneShallowArrayDescriptor::Initialize( |
+ CallInterfaceDescriptorData* data) { |
Register registers[] = {esi, eax, ebx, ecx}; |
Representation representations[] = { |
Representation::Tagged(), Representation::Tagged(), Representation::Smi(), |
Representation::Tagged()}; |
- InitializeData(isolate, key(), arraysize(registers), registers, |
- representations); |
+ data->Initialize(arraysize(registers), registers, representations); |
} |
-void FastCloneShallowObjectDescriptor::Initialize(Isolate* isolate) { |
+void FastCloneShallowObjectDescriptor::Initialize( |
+ CallInterfaceDescriptorData* data) { |
Register registers[] = {esi, eax, ebx, ecx, edx}; |
- InitializeData(isolate, key(), arraysize(registers), registers, NULL); |
+ data->Initialize(arraysize(registers), registers, NULL); |
} |
-void CreateAllocationSiteDescriptor::Initialize(Isolate* isolate) { |
+void CreateAllocationSiteDescriptor::Initialize( |
+ CallInterfaceDescriptorData* data) { |
Register registers[] = {esi, ebx, edx}; |
- InitializeData(isolate, key(), arraysize(registers), registers, NULL); |
+ data->Initialize(arraysize(registers), registers, NULL); |
} |
-void CallFunctionDescriptor::Initialize(Isolate* isolate) { |
+void CallFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
Register registers[] = {esi, edi}; |
- InitializeData(isolate, key(), arraysize(registers), registers, NULL); |
+ data->Initialize(arraysize(registers), registers, NULL); |
} |
-void CallConstructDescriptor::Initialize(Isolate* isolate) { |
+void CallConstructDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
// eax : number of arguments |
// ebx : feedback vector |
// edx : (only if ebx is not the megamorphic symbol) slot in feedback |
@@ -123,95 +125,98 @@ void CallConstructDescriptor::Initialize(Isolate* isolate) { |
// TODO(turbofan): So far we don't gather type feedback and hence skip the |
// slot parameter, but ArrayConstructStub needs the vector to be undefined. |
Register registers[] = {esi, eax, edi, ebx}; |
- InitializeData(isolate, key(), arraysize(registers), registers, NULL); |
+ data->Initialize(arraysize(registers), registers, NULL); |
} |
-void RegExpConstructResultDescriptor::Initialize(Isolate* isolate) { |
+void RegExpConstructResultDescriptor::Initialize( |
+ CallInterfaceDescriptorData* data) { |
Register registers[] = {esi, ecx, ebx, eax}; |
- InitializeData(isolate, key(), arraysize(registers), registers, NULL); |
+ data->Initialize(arraysize(registers), registers, NULL); |
} |
-void TransitionElementsKindDescriptor::Initialize(Isolate* isolate) { |
+void TransitionElementsKindDescriptor::Initialize( |
+ CallInterfaceDescriptorData* data) { |
Register registers[] = {esi, eax, ebx}; |
- InitializeData(isolate, key(), arraysize(registers), registers, NULL); |
+ data->Initialize(arraysize(registers), registers, NULL); |
} |
-void ArrayConstructorConstantArgCountDescriptor::Initialize(Isolate* isolate) { |
+void ArrayConstructorConstantArgCountDescriptor::Initialize( |
+ CallInterfaceDescriptorData* data) { |
// register state |
// eax -- number of arguments |
// edi -- function |
// ebx -- allocation site with elements kind |
Register registers[] = {esi, edi, ebx}; |
- InitializeData(isolate, key(), arraysize(registers), registers, NULL); |
+ data->Initialize(arraysize(registers), registers, NULL); |
} |
-void ArrayConstructorDescriptor::Initialize(Isolate* isolate) { |
+void ArrayConstructorDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
// stack param count needs (constructor pointer, and single argument) |
Register registers[] = {esi, edi, ebx, eax}; |
Representation representations[] = { |
Representation::Tagged(), Representation::Tagged(), |
Representation::Tagged(), Representation::Integer32()}; |
- InitializeData(isolate, key(), arraysize(registers), registers, |
- representations); |
+ data->Initialize(arraysize(registers), registers, representations); |
} |
void InternalArrayConstructorConstantArgCountDescriptor::Initialize( |
- Isolate* isolate) { |
+ CallInterfaceDescriptorData* data) { |
// register state |
// eax -- number of arguments |
// edi -- function |
Register registers[] = {esi, edi}; |
- InitializeData(isolate, key(), arraysize(registers), registers, NULL); |
+ data->Initialize(arraysize(registers), registers, NULL); |
} |
-void InternalArrayConstructorDescriptor::Initialize(Isolate* isolate) { |
+void InternalArrayConstructorDescriptor::Initialize( |
+ CallInterfaceDescriptorData* data) { |
// stack param count needs (constructor pointer, and single argument) |
Register registers[] = {esi, edi, eax}; |
Representation representations[] = {Representation::Tagged(), |
Representation::Tagged(), |
Representation::Integer32()}; |
- InitializeData(isolate, key(), arraysize(registers), registers, |
- representations); |
+ data->Initialize(arraysize(registers), registers, representations); |
} |
-void CompareNilDescriptor::Initialize(Isolate* isolate) { |
+void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
Register registers[] = {esi, eax}; |
- InitializeData(isolate, key(), arraysize(registers), registers, NULL); |
+ data->Initialize(arraysize(registers), registers, NULL); |
} |
-void ToBooleanDescriptor::Initialize(Isolate* isolate) { |
+void ToBooleanDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
Register registers[] = {esi, eax}; |
- InitializeData(isolate, key(), arraysize(registers), registers, NULL); |
+ data->Initialize(arraysize(registers), registers, NULL); |
} |
-void BinaryOpDescriptor::Initialize(Isolate* isolate) { |
+void BinaryOpDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
Register registers[] = {esi, edx, eax}; |
- InitializeData(isolate, key(), arraysize(registers), registers, NULL); |
+ data->Initialize(arraysize(registers), registers, NULL); |
} |
-void BinaryOpWithAllocationSiteDescriptor::Initialize(Isolate* isolate) { |
+void BinaryOpWithAllocationSiteDescriptor::Initialize( |
+ CallInterfaceDescriptorData* data) { |
Register registers[] = {esi, ecx, edx, eax}; |
- InitializeData(isolate, key(), arraysize(registers), registers, NULL); |
+ data->Initialize(arraysize(registers), registers, NULL); |
} |
-void StringAddDescriptor::Initialize(Isolate* isolate) { |
+void StringAddDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
Register registers[] = {esi, edx, eax}; |
- InitializeData(isolate, key(), arraysize(registers), registers, NULL); |
+ data->Initialize(arraysize(registers), registers, NULL); |
} |
-void KeyedDescriptor::Initialize(Isolate* isolate) { |
+void KeyedDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
Register registers[] = { |
esi, // context |
ecx, // key |
@@ -220,12 +225,11 @@ void KeyedDescriptor::Initialize(Isolate* isolate) { |
Representation::Tagged(), // context |
Representation::Tagged(), // key |
}; |
- InitializeData(isolate, key(), arraysize(registers), registers, |
- representations); |
+ data->Initialize(arraysize(registers), registers, representations); |
} |
-void NamedDescriptor::Initialize(Isolate* isolate) { |
+void NamedDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
Register registers[] = { |
esi, // context |
ecx, // name |
@@ -234,12 +238,11 @@ void NamedDescriptor::Initialize(Isolate* isolate) { |
Representation::Tagged(), // context |
Representation::Tagged(), // name |
}; |
- InitializeData(isolate, key(), arraysize(registers), registers, |
- representations); |
+ data->Initialize(arraysize(registers), registers, representations); |
} |
-void CallHandlerDescriptor::Initialize(Isolate* isolate) { |
+void CallHandlerDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
Register registers[] = { |
esi, // context |
edx, // name |
@@ -248,12 +251,11 @@ void CallHandlerDescriptor::Initialize(Isolate* isolate) { |
Representation::Tagged(), // context |
Representation::Tagged(), // receiver |
}; |
- InitializeData(isolate, key(), arraysize(registers), registers, |
- representations); |
+ data->Initialize(arraysize(registers), registers, representations); |
} |
-void ArgumentAdaptorDescriptor::Initialize(Isolate* isolate) { |
+void ArgumentAdaptorDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
Register registers[] = { |
esi, // context |
edi, // JSFunction |
@@ -266,12 +268,11 @@ void ArgumentAdaptorDescriptor::Initialize(Isolate* isolate) { |
Representation::Integer32(), // actual number of arguments |
Representation::Integer32(), // expected number of arguments |
}; |
- InitializeData(isolate, key(), arraysize(registers), registers, |
- representations); |
+ data->Initialize(arraysize(registers), registers, representations); |
} |
-void ApiFunctionDescriptor::Initialize(Isolate* isolate) { |
+void ApiFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
Register registers[] = { |
esi, // context |
eax, // callee |
@@ -286,8 +287,7 @@ void ApiFunctionDescriptor::Initialize(Isolate* isolate) { |
Representation::Tagged(), // holder |
Representation::External(), // api_function_address |
}; |
- InitializeData(isolate, key(), arraysize(registers), registers, |
- representations); |
+ data->Initialize(arraysize(registers), registers, representations); |
} |
} |
} // namespace v8::internal |