Index: src/x64/interface-descriptors-x64.cc |
diff --git a/src/x64/interface-descriptors-x64.cc b/src/x64/interface-descriptors-x64.cc |
index 2d18ade7e4a67feccd5df8c61a0fb3ea22904e8e..d0e24dd714c26f788f50610c64d3d41a403b170c 100644 |
--- a/src/x64/interface-descriptors-x64.cc |
+++ b/src/x64/interface-descriptors-x64.cc |
@@ -61,60 +61,62 @@ const Register InstanceofDescriptor::left() { return rax; } |
const Register InstanceofDescriptor::right() { return rdx; } |
-void FastNewClosureDescriptor::Initialize(Isolate* isolate) { |
+void FastNewClosureDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
Register registers[] = {rsi, rbx}; |
- 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[] = {rsi, rdi}; |
- 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[] = {rsi, rax}; |
- 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[] = {rsi, rax}; |
- 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[] = {rsi, rax, rbx, rcx}; |
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[] = {rsi, rax, rbx, rcx, rdx}; |
- 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[] = {rsi, rbx, rdx}; |
- 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[] = {rsi, rdi}; |
- InitializeData(isolate, key(), arraysize(registers), registers, NULL); |
+ data->Initialize(arraysize(registers), registers, NULL); |
} |
-void CallConstructDescriptor::Initialize(Isolate* isolate) { |
+void CallConstructDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
// rax : number of arguments |
// rbx : feedback vector |
// rdx : (only if rbx is not the megamorphic symbol) slot in feedback |
@@ -123,96 +125,99 @@ 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[] = {rsi, rax, rdi, rbx}; |
- 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[] = {rsi, rcx, rbx, rax}; |
- 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[] = {rsi, rax, rbx}; |
- 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 |
// rax -- number of arguments |
// rdi -- function |
// rbx -- allocation site with elements kind |
Register registers[] = {rsi, rdi, rbx}; |
- 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[] = {rsi, rdi, rbx, rax}; |
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 |
// rsi -- context |
// rax -- number of arguments |
// rdi -- constructor function |
Register registers[] = {rsi, rdi}; |
- 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[] = {rsi, rdi, rax}; |
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[] = {rsi, rax}; |
- 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[] = {rsi, rax}; |
- 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[] = {rsi, rdx, rax}; |
- 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[] = {rsi, rcx, rdx, rax}; |
- 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[] = {rsi, rdx, rax}; |
- 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[] = { |
rsi, // context |
rcx, // key |
@@ -221,12 +226,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[] = { |
rsi, // context |
rcx, // name |
@@ -235,12 +239,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[] = { |
rsi, // context |
rdx, // receiver |
@@ -249,12 +252,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[] = { |
rsi, // context |
rdi, // JSFunction |
@@ -267,12 +269,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[] = { |
rsi, // context |
rax, // callee |
@@ -287,8 +288,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 |