| Index: src/arm64/code-stubs-arm64.cc
|
| diff --git a/src/arm64/code-stubs-arm64.cc b/src/arm64/code-stubs-arm64.cc
|
| index 11ba6a546c67550d21949e42e039010486785cf5..1096de753566cea102bd8bd1f5e96e827c92ff11 100644
|
| --- a/src/arm64/code-stubs-arm64.cc
|
| +++ b/src/arm64/code-stubs-arm64.cc
|
| @@ -20,8 +20,7 @@ namespace internal {
|
|
|
|
|
| static void InitializeArrayConstructorDescriptor(
|
| - Isolate* isolate, CodeStub::Major major,
|
| - CodeStubInterfaceDescriptor* descriptor,
|
| + Isolate* isolate, CodeStubDescriptor* descriptor,
|
| int constant_stack_parameter_count) {
|
| // cp: context
|
| // x1: function
|
| @@ -31,87 +30,76 @@ static void InitializeArrayConstructorDescriptor(
|
| 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, x0, deopt_handler,
|
| - constant_stack_parameter_count,
|
| + descriptor->Initialize(x0, 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);
|
| }
|
|
|
|
|
| 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, x0, deopt_handler,
|
| - constant_stack_parameter_count,
|
| + descriptor->Initialize(x0, deopt_handler, constant_stack_parameter_count,
|
| JS_FUNCTION_STUB_MODE, PASS_ARGUMENTS);
|
| }
|
| }
|
|
|
|
|
| -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(),
|
| - 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.
|
| @@ -126,7 +114,6 @@ void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm) {
|
| }
|
| queue.PushQueued();
|
|
|
| - ExternalReference miss = descriptor.miss_handler();
|
| __ CallExternalReference(miss, param_count);
|
| }
|
|
|
|
|