Index: src/compiler/js-generic-lowering.cc |
diff --git a/src/compiler/js-generic-lowering.cc b/src/compiler/js-generic-lowering.cc |
index ea8976f2d11857217f6bd90a113973f807b14b78..2fada33e8b0c0a1152d5d4410a9c6dfe1a783e55 100644 |
--- a/src/compiler/js-generic-lowering.cc |
+++ b/src/compiler/js-generic-lowering.cc |
@@ -29,10 +29,8 @@ class LoadICStubShim : public HydrogenCodeStub { |
return LoadIC::initialize_stub(isolate(), extra_state); |
} |
- virtual void InitializeInterfaceDescriptor( |
- CodeStubInterfaceDescriptor* descriptor) OVERRIDE { |
- LoadDescriptor call_descriptor(isolate()); |
- descriptor->Initialize(MajorKey(), call_descriptor); |
+ virtual CallInterfaceDescriptor GetCallInterfaceDescriptor() OVERRIDE { |
+ return LoadDescriptor(isolate()); |
} |
private: |
@@ -54,10 +52,8 @@ class KeyedLoadICStubShim : public HydrogenCodeStub { |
return isolate()->builtins()->KeyedLoadIC_Initialize(); |
} |
- virtual void InitializeInterfaceDescriptor( |
- CodeStubInterfaceDescriptor* descriptor) OVERRIDE { |
- LoadDescriptor call_descriptor(isolate()); |
- descriptor->Initialize(MajorKey(), call_descriptor); |
+ virtual CallInterfaceDescriptor GetCallInterfaceDescriptor() OVERRIDE { |
+ return LoadDescriptor(isolate()); |
} |
private: |
@@ -78,10 +74,8 @@ class StoreICStubShim : public HydrogenCodeStub { |
return StoreIC::initialize_stub(isolate(), strict_mode_); |
} |
- virtual void InitializeInterfaceDescriptor( |
- CodeStubInterfaceDescriptor* descriptor) OVERRIDE { |
- StoreDescriptor call_descriptor(isolate()); |
- descriptor->Initialize(MajorKey(), call_descriptor); |
+ virtual CallInterfaceDescriptor GetCallInterfaceDescriptor() OVERRIDE { |
+ return StoreDescriptor(isolate()); |
} |
private: |
@@ -106,10 +100,8 @@ class KeyedStoreICStubShim : public HydrogenCodeStub { |
: isolate()->builtins()->KeyedStoreIC_Initialize_Strict(); |
} |
- virtual void InitializeInterfaceDescriptor( |
- CodeStubInterfaceDescriptor* descriptor) OVERRIDE { |
- StoreDescriptor call_descriptor(isolate()); |
- descriptor->Initialize(MajorKey(), call_descriptor); |
+ virtual CallInterfaceDescriptor GetCallInterfaceDescriptor() OVERRIDE { |
+ return StoreDescriptor(isolate()); |
} |
private: |
@@ -269,10 +261,10 @@ static CallDescriptor::Flags FlagsForNode(Node* node) { |
void JSGenericLowering::ReplaceWithCompareIC(Node* node, Token::Value token, |
bool pure) { |
BinaryOpICStub stub(isolate(), Token::ADD); // TODO(mstarzinger): Hack. |
- CodeStubInterfaceDescriptor d(&stub); |
+ CallInterfaceDescriptor d = stub.GetCallInterfaceDescriptor(); |
bool has_frame_state = OperatorProperties::HasFrameStateInput(node->op()); |
CallDescriptor* desc_compare = linkage()->GetStubCallDescriptor( |
- &d, 0, CallDescriptor::kPatchableCallSiteWithNop | FlagsForNode(node)); |
+ d, 0, CallDescriptor::kPatchableCallSiteWithNop | FlagsForNode(node)); |
Handle<Code> ic = CompareIC::GetUninitialized(isolate(), token); |
NodeVector inputs(zone()); |
inputs.reserve(node->InputCount() + 1); |
@@ -319,9 +311,9 @@ void JSGenericLowering::ReplaceWithCompareIC(Node* node, Token::Value token, |
void JSGenericLowering::ReplaceWithStubCall(Node* node, HydrogenCodeStub* stub, |
CallDescriptor::Flags flags) { |
- CodeStubInterfaceDescriptor d(stub); |
+ CallInterfaceDescriptor d = stub->GetCallInterfaceDescriptor(); |
CallDescriptor* desc = |
- linkage()->GetStubCallDescriptor(&d, 0, flags | FlagsForNode(node)); |
+ linkage()->GetStubCallDescriptor(d, 0, flags | FlagsForNode(node)); |
Node* stub_code = CodeConstant(stub->GetCode()); |
PatchInsertInput(node, 0, stub_code); |
PatchOperator(node, common()->Call(desc)); |
@@ -332,8 +324,8 @@ void JSGenericLowering::ReplaceWithBuiltinCall(Node* node, |
Builtins::JavaScript id, |
int nargs) { |
CallFunctionStub stub(isolate(), nargs - 1, NO_CALL_FUNCTION_FLAGS); |
- CodeStubInterfaceDescriptor d(&stub); |
- CallDescriptor* desc = linkage()->GetStubCallDescriptor(&d, nargs); |
+ CallInterfaceDescriptor d = stub.GetCallInterfaceDescriptor(); |
+ CallDescriptor* desc = linkage()->GetStubCallDescriptor(d, nargs); |
// TODO(mstarzinger): Accessing the builtins object this way prevents sharing |
// of code across native contexts. Fix this by loading from given context. |
Handle<JSFunction> function( |
@@ -457,8 +449,8 @@ Node* JSGenericLowering::LowerJSInstanceOf(Node* node) { |
InstanceofStub::kReturnTrueFalseObject | |
InstanceofStub::kArgsInRegisters); |
InstanceofStub stub(isolate(), flags); |
- CodeStubInterfaceDescriptor d(&stub); |
- CallDescriptor* desc = linkage()->GetStubCallDescriptor(&d, 0); |
+ CallInterfaceDescriptor d = stub.GetCallInterfaceDescriptor(); |
+ CallDescriptor* desc = linkage()->GetStubCallDescriptor(d, 0); |
Node* stub_code = CodeConstant(stub.GetCode()); |
PatchInsertInput(node, 0, stub_code); |
PatchOperator(node, common()->Call(desc)); |
@@ -506,9 +498,9 @@ Node* JSGenericLowering::LowerJSStoreContext(Node* node) { |
Node* JSGenericLowering::LowerJSCallConstruct(Node* node) { |
int arity = OpParameter<int>(node); |
CallConstructStub stub(isolate(), NO_CALL_CONSTRUCTOR_FLAGS); |
- CodeStubInterfaceDescriptor d(&stub); |
+ CallInterfaceDescriptor d = stub.GetCallInterfaceDescriptor(); |
CallDescriptor* desc = |
- linkage()->GetStubCallDescriptor(&d, arity, FlagsForNode(node)); |
+ linkage()->GetStubCallDescriptor(d, arity, FlagsForNode(node)); |
Node* stub_code = CodeConstant(stub.GetCode()); |
Node* construct = NodeProperties::GetValueInput(node, 0); |
PatchInsertInput(node, 0, stub_code); |
@@ -523,9 +515,9 @@ Node* JSGenericLowering::LowerJSCallConstruct(Node* node) { |
Node* JSGenericLowering::LowerJSCallFunction(Node* node) { |
CallParameters p = OpParameter<CallParameters>(node); |
CallFunctionStub stub(isolate(), p.arity - 2, p.flags); |
- CodeStubInterfaceDescriptor d(&stub); |
+ CallInterfaceDescriptor d = stub.GetCallInterfaceDescriptor(); |
CallDescriptor* desc = |
- linkage()->GetStubCallDescriptor(&d, p.arity - 1, FlagsForNode(node)); |
+ linkage()->GetStubCallDescriptor(d, p.arity - 1, FlagsForNode(node)); |
Node* stub_code = CodeConstant(stub.GetCode()); |
PatchInsertInput(node, 0, stub_code); |
PatchOperator(node, common()->Call(desc)); |