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); |
} |