Chromium Code Reviews| Index: src/x64/code-stubs-x64.cc |
| diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc |
| index b5f7df4b54366c54aad5d4bc6dae5b0126e715c7..b4b5c2e0bf1bb5f0dff05ff331f7a58c74c3c6be 100644 |
| --- a/src/x64/code-stubs-x64.cc |
| +++ b/src/x64/code-stubs-x64.cc |
| @@ -20,94 +20,82 @@ namespace internal { |
| static void InitializeArrayConstructorDescriptor( |
| - Isolate* isolate, CodeStub::Major major, |
| - CodeStubInterfaceDescriptor* descriptor, |
| + Isolate* isolate, CodeStubDescriptor* descriptor, |
| int constant_stack_parameter_count) { |
| Address deopt_handler = Runtime::FunctionForId( |
| Runtime::kArrayConstructor)->entry; |
| if (constant_stack_parameter_count == 0) { |
| - ArrayConstructorConstantArgCountDescriptor call_descriptor(isolate); |
| - descriptor->Initialize(major, call_descriptor, deopt_handler, |
| - constant_stack_parameter_count, |
| + descriptor->Initialize(deopt_handler, constant_stack_parameter_count, |
| JS_FUNCTION_STUB_MODE); |
| } else { |
| - ArrayConstructorDescriptor call_descriptor(isolate); |
| - descriptor->Initialize(major, call_descriptor, rax, deopt_handler, |
| - constant_stack_parameter_count, |
| + descriptor->Initialize(rax, deopt_handler, constant_stack_parameter_count, |
| JS_FUNCTION_STUB_MODE, PASS_ARGUMENTS); |
| } |
| } |
| static void InitializeInternalArrayConstructorDescriptor( |
| - Isolate* isolate, CodeStub::Major major, |
| - CodeStubInterfaceDescriptor* descriptor, |
| + Isolate* isolate, CodeStubDescriptor* descriptor, |
| int constant_stack_parameter_count) { |
| Address deopt_handler = Runtime::FunctionForId( |
| Runtime::kInternalArrayConstructor)->entry; |
| if (constant_stack_parameter_count == 0) { |
| - InternalArrayConstructorConstantArgCountDescriptor call_descriptor(isolate); |
| - descriptor->Initialize(major, call_descriptor, deopt_handler, |
| - constant_stack_parameter_count, |
| + descriptor->Initialize(deopt_handler, constant_stack_parameter_count, |
| JS_FUNCTION_STUB_MODE); |
| } else { |
| - InternalArrayConstructorDescriptor call_descriptor(isolate); |
| - descriptor->Initialize(major, call_descriptor, rax, deopt_handler, |
| - constant_stack_parameter_count, |
| + descriptor->Initialize(rax, deopt_handler, constant_stack_parameter_count, |
| JS_FUNCTION_STUB_MODE, PASS_ARGUMENTS); |
| } |
| } |
| -void ArrayNoArgumentConstructorStub::InitializeInterfaceDescriptor( |
| - CodeStubInterfaceDescriptor* descriptor) { |
| - InitializeArrayConstructorDescriptor(isolate(), MajorKey(), descriptor, 0); |
| +void ArrayNoArgumentConstructorStub::InitializeDescriptor( |
| + CodeStubDescriptor* descriptor) { |
| + InitializeArrayConstructorDescriptor(isolate(), descriptor, 0); |
| } |
| -void ArraySingleArgumentConstructorStub::InitializeInterfaceDescriptor( |
| - CodeStubInterfaceDescriptor* descriptor) { |
| - InitializeArrayConstructorDescriptor(isolate(), MajorKey(), descriptor, 1); |
| +void ArraySingleArgumentConstructorStub::InitializeDescriptor( |
| + CodeStubDescriptor* descriptor) { |
| + InitializeArrayConstructorDescriptor(isolate(), descriptor, 1); |
| } |
| -void ArrayNArgumentsConstructorStub::InitializeInterfaceDescriptor( |
| - CodeStubInterfaceDescriptor* descriptor) { |
| - InitializeArrayConstructorDescriptor(isolate(), MajorKey(), descriptor, -1); |
| +void ArrayNArgumentsConstructorStub::InitializeDescriptor( |
| + CodeStubDescriptor* descriptor) { |
| + InitializeArrayConstructorDescriptor(isolate(), descriptor, -1); |
| } |
| -void InternalArrayNoArgumentConstructorStub::InitializeInterfaceDescriptor( |
| - CodeStubInterfaceDescriptor* descriptor) { |
| - InitializeInternalArrayConstructorDescriptor(isolate(), MajorKey(), |
| - descriptor, 0); |
| +void InternalArrayNoArgumentConstructorStub::InitializeDescriptor( |
| + CodeStubDescriptor* descriptor) { |
| + InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 0); |
| } |
| -void InternalArraySingleArgumentConstructorStub::InitializeInterfaceDescriptor( |
| - CodeStubInterfaceDescriptor* descriptor) { |
| - InitializeInternalArrayConstructorDescriptor(isolate(), MajorKey(), |
| - descriptor, 1); |
| +void InternalArraySingleArgumentConstructorStub::InitializeDescriptor( |
| + CodeStubDescriptor* descriptor) { |
| + InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 1); |
| } |
| -void InternalArrayNArgumentsConstructorStub::InitializeInterfaceDescriptor( |
| - CodeStubInterfaceDescriptor* descriptor) { |
| - InitializeInternalArrayConstructorDescriptor(isolate(), MajorKey(), |
|
mvstanton
2014/09/08 14:58:39
Very nice to see MajorKey() pulled out, thx!
|
| - descriptor, -1); |
| +void InternalArrayNArgumentsConstructorStub::InitializeDescriptor( |
| + CodeStubDescriptor* descriptor) { |
| + InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, -1); |
| } |
| #define __ ACCESS_MASM(masm) |
| -void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm) { |
| +void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm, |
| + ExternalReference miss) { |
| // Update the static counter each time a new code stub is generated. |
| isolate()->counters()->code_stubs()->Increment(); |
| - CodeStubInterfaceDescriptor descriptor(this); |
| + CallInterfaceDescriptor descriptor = GetCallInterfaceDescriptor(); |
| int param_count = descriptor.GetEnvironmentParameterCount(); |
| { |
| // Call the runtime system in a fresh internal frame. |
| @@ -118,7 +106,6 @@ void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm) { |
| for (int i = 0; i < param_count; ++i) { |
| __ Push(descriptor.GetEnvironmentParameterRegister(i)); |
| } |
| - ExternalReference miss = descriptor.miss_handler(); |
| __ CallExternalReference(miss, param_count); |
| } |