| Index: src/x64/interface-descriptors-x64.cc
|
| diff --git a/src/x64/interface-descriptors-x64.cc b/src/x64/interface-descriptors-x64.cc
|
| index 6e5b7f9e3615f69a2d2b296096de4f2b8f2af8d7..6ef9dc14b807f4a16db4583d2f438c9da17caa22 100644
|
| --- a/src/x64/interface-descriptors-x64.cc
|
| +++ b/src/x64/interface-descriptors-x64.cc
|
| @@ -64,107 +64,100 @@ const Register GrowArrayElementsDescriptor::ObjectRegister() { return rax; }
|
| const Register GrowArrayElementsDescriptor::KeyRegister() { return rbx; }
|
|
|
|
|
| -void FastNewClosureDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void FastNewClosureDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rbx};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void FastNewContextDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void FastNewContextDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rdi};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void TypeofDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void TypeofDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rbx};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void ToNumberDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void ToNumberDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| // ToNumberStub invokes a function, and therefore needs a context.
|
| Register registers[] = {rsi, rax};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void NumberToStringDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void NumberToStringDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rax};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void FastCloneShallowArrayDescriptor::Initialize(
|
| +void FastCloneShallowArrayDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rax, rbx, rcx};
|
| - Representation representations[] = {
|
| - Representation::Tagged(), Representation::Tagged(), Representation::Smi(),
|
| - Representation::Tagged()};
|
| - data->Initialize(arraysize(registers), registers, representations);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void FastCloneShallowObjectDescriptor::Initialize(
|
| +void FastCloneShallowObjectDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rax, rbx, rcx, rdx};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void CreateAllocationSiteDescriptor::Initialize(
|
| +void CreateAllocationSiteDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rbx, rdx};
|
| - Representation representations[] = {Representation::Tagged(),
|
| - Representation::Tagged(),
|
| - Representation::Smi()};
|
| - data->Initialize(arraysize(registers), registers, representations);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void CreateWeakCellDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void CreateWeakCellDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rbx, rdx, rdi};
|
| - Representation representations[] = {
|
| - Representation::Tagged(), Representation::Tagged(), Representation::Smi(),
|
| - Representation::Tagged()};
|
| - data->Initialize(arraysize(registers), registers, representations);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void StoreArrayLiteralElementDescriptor::Initialize(
|
| +void StoreArrayLiteralElementDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rcx, rax};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void CallFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void CallFunctionDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rdi};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void CallFunctionWithFeedbackDescriptor::Initialize(
|
| +void CallFunctionWithFeedbackDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rdi, rdx};
|
| - Representation representations[] = {Representation::Tagged(),
|
| - Representation::Tagged(),
|
| - Representation::Smi()};
|
| - data->Initialize(arraysize(registers), registers, representations);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void CallFunctionWithFeedbackAndVectorDescriptor::Initialize(
|
| +void CallFunctionWithFeedbackAndVectorDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rdi, rdx, rbx};
|
| - Representation representations[] = {
|
| - Representation::Tagged(), Representation::Tagged(), Representation::Smi(),
|
| - Representation::Tagged()};
|
| - data->Initialize(arraysize(registers), registers, representations);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void CallConstructDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void CallConstructDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| // rax : number of arguments
|
| // rbx : feedback vector
|
| // rdx : (only if rbx is not the megamorphic symbol) slot in feedback
|
| @@ -173,170 +166,157 @@ void CallConstructDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| // 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};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void RegExpConstructResultDescriptor::Initialize(
|
| +void RegExpConstructResultDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rcx, rbx, rax};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void TransitionElementsKindDescriptor::Initialize(
|
| +void TransitionElementsKindDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rax, rbx};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void AllocateHeapNumberDescriptor::Initialize(
|
| +void AllocateHeapNumberDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| // register state
|
| // rsi -- context
|
| Register registers[] = {rsi};
|
| - data->Initialize(arraysize(registers), registers, nullptr);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers, nullptr);
|
| }
|
|
|
|
|
| -void ArrayConstructorConstantArgCountDescriptor::Initialize(
|
| +void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| // register state
|
| // rax -- number of arguments
|
| // rdi -- function
|
| // rbx -- allocation site with elements kind
|
| Register registers[] = {rsi, rdi, rbx};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void ArrayConstructorDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void ArrayConstructorDescriptor::InitializePlatformSpecific(
|
| + 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()};
|
| - data->Initialize(arraysize(registers), registers, representations);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void InternalArrayConstructorConstantArgCountDescriptor::Initialize(
|
| - CallInterfaceDescriptorData* data) {
|
| +void InternalArrayConstructorConstantArgCountDescriptor::
|
| + InitializePlatformSpecific(CallInterfaceDescriptorData* data) {
|
| // register state
|
| // rsi -- context
|
| // rax -- number of arguments
|
| // rdi -- constructor function
|
| Register registers[] = {rsi, rdi};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void InternalArrayConstructorDescriptor::Initialize(
|
| +void InternalArrayConstructorDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| // stack param count needs (constructor pointer, and single argument)
|
| Register registers[] = {rsi, rdi, rax};
|
| - Representation representations[] = {Representation::Tagged(),
|
| - Representation::Tagged(),
|
| - Representation::Integer32()};
|
| - data->Initialize(arraysize(registers), registers, representations);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void CompareDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void CompareDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rdx, rax};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void CompareNilDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rax};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void ToBooleanDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void ToBooleanDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rax};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void BinaryOpDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void BinaryOpDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rdx, rax};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void BinaryOpWithAllocationSiteDescriptor::Initialize(
|
| +void BinaryOpWithAllocationSiteDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rcx, rdx, rax};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void StringAddDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void StringAddDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| Register registers[] = {rsi, rdx, rax};
|
| - data->Initialize(arraysize(registers), registers, NULL);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void KeyedDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void KeyedDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| Register registers[] = {
|
| rsi, // context
|
| rcx, // key
|
| };
|
| - Representation representations[] = {
|
| - Representation::Tagged(), // context
|
| - Representation::Tagged(), // key
|
| - };
|
| - data->Initialize(arraysize(registers), registers, representations);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void NamedDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void NamedDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| Register registers[] = {
|
| rsi, // context
|
| rcx, // name
|
| };
|
| - Representation representations[] = {
|
| - Representation::Tagged(), // context
|
| - Representation::Tagged(), // name
|
| - };
|
| - data->Initialize(arraysize(registers), registers, representations);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void CallHandlerDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void CallHandlerDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| Register registers[] = {
|
| rsi, // context
|
| rdx, // receiver
|
| };
|
| - Representation representations[] = {
|
| - Representation::Tagged(), // context
|
| - Representation::Tagged(), // receiver
|
| - };
|
| - data->Initialize(arraysize(registers), registers, representations);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void ArgumentAdaptorDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void ArgumentAdaptorDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| Register registers[] = {
|
| rsi, // context
|
| rdi, // JSFunction
|
| rax, // actual number of arguments
|
| rbx, // expected number of arguments
|
| };
|
| - Representation representations[] = {
|
| - Representation::Tagged(), // context
|
| - Representation::Tagged(), // JSFunction
|
| - Representation::Integer32(), // actual number of arguments
|
| - Representation::Integer32(), // expected number of arguments
|
| - };
|
| - data->Initialize(arraysize(registers), registers, representations);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void ApiFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void ApiFunctionDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| Register registers[] = {
|
| rsi, // context
|
| rdi, // callee
|
| @@ -345,19 +325,12 @@ void ApiFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| rdx, // api_function_address
|
| rax, // actual number of arguments
|
| };
|
| - Representation representations[] = {
|
| - Representation::Tagged(), // context
|
| - Representation::Tagged(), // callee
|
| - Representation::Tagged(), // call_data
|
| - Representation::Tagged(), // holder
|
| - Representation::External(), // api_function_address
|
| - Representation::Integer32(), // actual number of arguments
|
| - };
|
| - data->Initialize(arraysize(registers), registers, representations);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void ApiAccessorDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void ApiAccessorDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| Register registers[] = {
|
| rsi, // context
|
| rdi, // callee
|
| @@ -365,29 +338,18 @@ void ApiAccessorDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| rcx, // holder
|
| rdx, // api_function_address
|
| };
|
| - Representation representations[] = {
|
| - Representation::Tagged(), // context
|
| - Representation::Tagged(), // callee
|
| - Representation::Tagged(), // call_data
|
| - Representation::Tagged(), // holder
|
| - Representation::External(), // api_function_address
|
| - };
|
| - data->Initialize(arraysize(registers), registers, representations);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|
| -void MathRoundVariantDescriptor::Initialize(CallInterfaceDescriptorData* data) {
|
| +void MathRoundVariantDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| Register registers[] = {
|
| rsi, // context
|
| rdi, // math rounding function
|
| rdx, // vector slot id
|
| };
|
| - Representation representations[] = {
|
| - Representation::Tagged(), //
|
| - Representation::Tagged(), //
|
| - Representation::Tagged(), //
|
| - };
|
| - data->Initialize(arraysize(registers), registers, representations);
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
| } // namespace internal
|
| } // namespace v8
|
|
|