| Index: src/arm/code-stubs-arm.cc
|
| diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc
|
| index e9f30952118d3291f464895735d176c55ba6041d..ff8daf47af9dc17c4c5910a71bd6c78042858177 100644
|
| --- a/src/arm/code-stubs-arm.cc
|
| +++ b/src/arm/code-stubs-arm.cc
|
| @@ -21,83 +21,70 @@ 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, r0, deopt_handler,
|
| - constant_stack_parameter_count,
|
| + descriptor->Initialize(r0, 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, r0, deopt_handler,
|
| - constant_stack_parameter_count,
|
| + descriptor->Initialize(r0, 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(),
|
| - descriptor, -1);
|
| +void InternalArrayNArgumentsConstructorStub::InitializeDescriptor(
|
| + CodeStubDescriptor* descriptor) {
|
| + InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, -1);
|
| }
|
|
|
|
|
| @@ -118,11 +105,12 @@ static void EmitStrictTwoHeapObjectCompare(MacroAssembler* masm,
|
| Register rhs);
|
|
|
|
|
| -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.
|
| @@ -133,7 +121,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);
|
| }
|
|
|
|
|