| Index: src/ia32/code-stubs-ia32.cc
|
| diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc
|
| index 0c566c8645d4fce2e6597c520bd6f07f1926c3ef..6c9a24c11b672a5e36676fd1edb4700bf5e14dde 100644
|
| --- a/src/ia32/code-stubs-ia32.cc
|
| +++ b/src/ia32/code-stubs-ia32.cc
|
| @@ -21,8 +21,7 @@ namespace internal {
|
|
|
|
|
| static void InitializeArrayConstructorDescriptor(
|
| - Isolate* isolate, CodeStub::Major major,
|
| - CodeStubInterfaceDescriptor* descriptor,
|
| + Isolate* isolate, CodeStubDescriptor* descriptor,
|
| int constant_stack_parameter_count) {
|
| // register state
|
| // eax -- number of arguments
|
| @@ -32,22 +31,17 @@ 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, eax, deopt_handler,
|
| - constant_stack_parameter_count,
|
| + descriptor->Initialize(eax, 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) {
|
| // register state
|
| // eax -- number of arguments
|
| @@ -56,66 +50,60 @@ static void InitializeInternalArrayConstructorDescriptor(
|
| 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, eax, deopt_handler,
|
| - constant_stack_parameter_count,
|
| + descriptor->Initialize(eax, 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);
|
| }
|
|
|
|
|
| #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) {
|
| for (int i = 0; i < param_count; ++i) {
|
| __ push(descriptor.GetEnvironmentParameterRegister(i));
|
| }
|
| - ExternalReference miss = descriptor.miss_handler();
|
| __ CallExternalReference(miss, param_count);
|
| }
|
|
|
|
|