Index: src/mips/code-stubs-mips.cc |
diff --git a/src/mips/code-stubs-mips.cc b/src/mips/code-stubs-mips.cc |
index c349f6b1412656f558879a0557589c314929537f..4c50e7c62b464abe530827fe1e343ee8e3954736 100644 |
--- a/src/mips/code-stubs-mips.cc |
+++ b/src/mips/code-stubs-mips.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, a0, deopt_handler, |
- constant_stack_parameter_count, |
+ descriptor->Initialize(a0, 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, a0, deopt_handler, |
- constant_stack_parameter_count, |
+ descriptor->Initialize(a0, 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. |
@@ -136,7 +124,6 @@ void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm) { |
__ sw(descriptor.GetEnvironmentParameterRegister(i), |
MemOperand(sp, (param_count - 1 - i) * kPointerSize)); |
} |
- ExternalReference miss = descriptor.miss_handler(); |
__ CallExternalReference(miss, param_count); |
} |