| Index: src/code-stubs.cc
|
| diff --git a/src/code-stubs.cc b/src/code-stubs.cc
|
| index 0e8a93f66b11a4e840d71ada67a65f8587a78cf1..b9f4e52997a65a0bc64367ee8ec0f699b00d9244 100644
|
| --- a/src/code-stubs.cc
|
| +++ b/src/code-stubs.cc
|
| @@ -17,8 +17,7 @@ namespace internal {
|
|
|
|
|
| CodeStubInterfaceDescriptor::CodeStubInterfaceDescriptor()
|
| - : call_descriptor_(NULL),
|
| - stack_parameter_count_(no_reg),
|
| + : stack_parameter_count_(no_reg),
|
| hint_stack_parameter_count_(-1),
|
| function_mode_(NOT_JS_FUNCTION_STUB_MODE),
|
| deoptimization_handler_(NULL),
|
| @@ -28,7 +27,7 @@ CodeStubInterfaceDescriptor::CodeStubInterfaceDescriptor()
|
|
|
|
|
| void CodeStubInterfaceDescriptor::Initialize(
|
| - CodeStub::Major major, CallInterfaceDescriptor* call_descriptor,
|
| + CodeStub::Major major, CallInterfaceDescriptor call_descriptor,
|
| Address deoptimization_handler, int hint_stack_parameter_count,
|
| StubFunctionMode function_mode) {
|
| call_descriptor_ = call_descriptor;
|
| @@ -40,7 +39,7 @@ void CodeStubInterfaceDescriptor::Initialize(
|
|
|
|
|
| void CodeStubInterfaceDescriptor::Initialize(
|
| - CodeStub::Major major, CallInterfaceDescriptor* call_descriptor,
|
| + CodeStub::Major major, CallInterfaceDescriptor call_descriptor,
|
| Register stack_parameter_count, Address deoptimization_handler,
|
| int hint_stack_parameter_count, StubFunctionMode function_mode,
|
| HandlerArgumentsMode handler_mode) {
|
| @@ -501,8 +500,7 @@ void JSEntryStub::FinishCode(Handle<Code> code) {
|
|
|
| void LoadFastElementStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::LoadICCall);
|
| + LoadDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(MajorKey(), call_descriptor,
|
| FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure));
|
| }
|
| @@ -510,8 +508,7 @@ void LoadFastElementStub::InitializeInterfaceDescriptor(
|
|
|
| void LoadDictionaryElementStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::LoadICCall);
|
| + LoadDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(MajorKey(), call_descriptor,
|
| FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure));
|
| }
|
| @@ -519,8 +516,7 @@ void LoadDictionaryElementStub::InitializeInterfaceDescriptor(
|
|
|
| void KeyedLoadGenericStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::LoadICCall);
|
| + LoadDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(
|
| MajorKey(), call_descriptor,
|
| Runtime::FunctionForId(Runtime::kKeyedGetProperty)->entry);
|
| @@ -530,13 +526,11 @@ void KeyedLoadGenericStub::InitializeInterfaceDescriptor(
|
| void HandlerStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| if (kind() == Code::LOAD_IC) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::LoadICCall);
|
| + LoadDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(MajorKey(), call_descriptor);
|
| } else {
|
| DCHECK_EQ(Code::STORE_IC, kind());
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::StoreICCall);
|
| + StoreDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(MajorKey(), call_descriptor,
|
| FUNCTION_ADDR(StoreIC_MissFromStubFailure));
|
| }
|
| @@ -545,8 +539,7 @@ void HandlerStub::InitializeInterfaceDescriptor(
|
|
|
| void StoreFastElementStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::StoreICCall);
|
| + StoreDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(MajorKey(), call_descriptor,
|
| FUNCTION_ADDR(KeyedStoreIC_MissFromStubFailure));
|
| }
|
| @@ -554,8 +547,7 @@ void StoreFastElementStub::InitializeInterfaceDescriptor(
|
|
|
| void ElementsTransitionAndStoreStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor = isolate()->call_descriptor(
|
| - CallDescriptorKey::ElementTransitionAndStoreCall);
|
| + ElementTransitionAndStoreDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(MajorKey(), call_descriptor,
|
| FUNCTION_ADDR(ElementsTransitionAndStoreIC_Miss));
|
| }
|
| @@ -563,8 +555,7 @@ void ElementsTransitionAndStoreStub::InitializeInterfaceDescriptor(
|
|
|
| void InstanceofStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::InstanceofCall);
|
| + InstanceofDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(MajorKey(), call_descriptor);
|
| }
|
|
|
| @@ -574,8 +565,7 @@ static void InitializeVectorLoadStub(Isolate* isolate,
|
| CodeStub::Major major,
|
| Address deoptimization_handler) {
|
| DCHECK(FLAG_vector_ics);
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate->call_descriptor(CallDescriptorKey::VectorLoadICCall);
|
| + VectorLoadICDescriptor call_descriptor(isolate);
|
| descriptor->Initialize(major, call_descriptor, deoptimization_handler);
|
| }
|
|
|
| @@ -597,8 +587,7 @@ void VectorKeyedLoadStub::InitializeInterfaceDescriptor(
|
|
|
| void FastNewClosureStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::FastNewClosureCall);
|
| + FastNewClosureDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(
|
| MajorKey(), call_descriptor,
|
| Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry);
|
| @@ -607,24 +596,21 @@ void FastNewClosureStub::InitializeInterfaceDescriptor(
|
|
|
| void FastNewContextStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::FastNewContextCall);
|
| + FastNewContextDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(MajorKey(), call_descriptor);
|
| }
|
|
|
|
|
| void ToNumberStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::ToNumberCall);
|
| + ToNumberDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(MajorKey(), call_descriptor);
|
| }
|
|
|
|
|
| void NumberToStringStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::NumberToStringCall);
|
| + NumberToStringDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(
|
| MajorKey(), call_descriptor,
|
| Runtime::FunctionForId(Runtime::kNumberToStringRT)->entry);
|
| @@ -633,8 +619,7 @@ void NumberToStringStub::InitializeInterfaceDescriptor(
|
|
|
| void FastCloneShallowArrayStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::FastCloneShallowArrayCall);
|
| + FastCloneShallowArrayDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(
|
| MajorKey(), call_descriptor,
|
| Runtime::FunctionForId(Runtime::kCreateArrayLiteralStubBailout)->entry);
|
| @@ -643,8 +628,7 @@ void FastCloneShallowArrayStub::InitializeInterfaceDescriptor(
|
|
|
| void FastCloneShallowObjectStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::FastCloneShallowObjectCall);
|
| + FastCloneShallowObjectDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(
|
| MajorKey(), call_descriptor,
|
| Runtime::FunctionForId(Runtime::kCreateObjectLiteral)->entry);
|
| @@ -653,32 +637,28 @@ void FastCloneShallowObjectStub::InitializeInterfaceDescriptor(
|
|
|
| void CreateAllocationSiteStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::CreateAllocationSiteCall);
|
| + CreateAllocationSiteDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(MajorKey(), call_descriptor);
|
| }
|
|
|
|
|
| void CallFunctionStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::CallFunctionCall);
|
| + CallFunctionDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(MajorKey(), call_descriptor);
|
| }
|
|
|
|
|
| void CallConstructStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::CallConstructCall);
|
| + CallConstructDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(MajorKey(), call_descriptor);
|
| }
|
|
|
|
|
| void RegExpConstructResultStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::RegExpConstructResultCall);
|
| + RegExpConstructResultDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(
|
| MajorKey(), call_descriptor,
|
| Runtime::FunctionForId(Runtime::kRegExpConstructResult)->entry);
|
| @@ -687,8 +667,7 @@ void RegExpConstructResultStub::InitializeInterfaceDescriptor(
|
|
|
| void TransitionElementsKindStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::TransitionElementsKindCall);
|
| + TransitionElementsKindDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(
|
| MajorKey(), call_descriptor,
|
| Runtime::FunctionForId(Runtime::kTransitionElementsKind)->entry);
|
| @@ -697,8 +676,7 @@ void TransitionElementsKindStub::InitializeInterfaceDescriptor(
|
|
|
| void CompareNilICStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::CompareNilCall);
|
| + CompareNilDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(MajorKey(), call_descriptor,
|
| FUNCTION_ADDR(CompareNilIC_Miss));
|
| descriptor->SetMissHandler(
|
| @@ -707,8 +685,7 @@ void CompareNilICStub::InitializeInterfaceDescriptor(
|
|
|
| void ToBooleanStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::ToBooleanCall);
|
| + ToBooleanDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(MajorKey(), call_descriptor,
|
| FUNCTION_ADDR(ToBooleanIC_Miss));
|
| descriptor->SetMissHandler(
|
| @@ -718,8 +695,7 @@ void ToBooleanStub::InitializeInterfaceDescriptor(
|
|
|
| void BinaryOpICStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::BinaryOpCall);
|
| + BinaryOpDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(MajorKey(), call_descriptor,
|
| FUNCTION_ADDR(BinaryOpIC_Miss));
|
| descriptor->SetMissHandler(
|
| @@ -729,8 +705,7 @@ void BinaryOpICStub::InitializeInterfaceDescriptor(
|
|
|
| void BinaryOpWithAllocationSiteStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor = isolate()->call_descriptor(
|
| - CallDescriptorKey::BinaryOpWithAllocationSiteCall);
|
| + BinaryOpWithAllocationSiteDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(MajorKey(), call_descriptor,
|
| FUNCTION_ADDR(BinaryOpIC_MissWithAllocationSite));
|
| }
|
| @@ -738,8 +713,7 @@ void BinaryOpWithAllocationSiteStub::InitializeInterfaceDescriptor(
|
|
|
| void StringAddStub::InitializeInterfaceDescriptor(
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| - CallInterfaceDescriptor* call_descriptor =
|
| - isolate()->call_descriptor(CallDescriptorKey::StringAddCall);
|
| + StringAddDescriptor call_descriptor(isolate());
|
| descriptor->Initialize(MajorKey(), call_descriptor,
|
| Runtime::FunctionForId(Runtime::kStringAdd)->entry);
|
| }
|
|
|