| Index: src/code-stubs.cc
|
| diff --git a/src/code-stubs.cc b/src/code-stubs.cc
|
| index 8ec4fed005db342991899ec6fc59ad12e1b53f13..df6dbc5d4f41494ba43ded4631500af180a671a0 100644
|
| --- a/src/code-stubs.cc
|
| +++ b/src/code-stubs.cc
|
| @@ -421,7 +421,6 @@ Handle<Code> TurboFanCodeStub::GenerateCode() {
|
| void LoadICTrampolineTFStub::GenerateAssembly(
|
| CodeStubAssembler* assembler) const {
|
| typedef compiler::Node Node;
|
| - typedef CodeStubAssembler::Label Label;
|
|
|
| Node* receiver = assembler->Parameter(0);
|
| Node* name = assembler->Parameter(1);
|
| @@ -430,17 +429,11 @@ void LoadICTrampolineTFStub::GenerateAssembly(
|
| Node* vector = assembler->LoadTypeFeedbackVectorForStub();
|
|
|
| CodeStubAssembler::LoadICParameters p(context, receiver, name, slot, vector);
|
| - Label miss(assembler);
|
| - assembler->LoadIC(&p, &miss);
|
| -
|
| - assembler->Bind(&miss);
|
| - assembler->TailCallRuntime(Runtime::kLoadIC_Miss, context, receiver, name,
|
| - slot, vector);
|
| + assembler->LoadIC(&p);
|
| }
|
|
|
| void LoadICTFStub::GenerateAssembly(CodeStubAssembler* assembler) const {
|
| typedef compiler::Node Node;
|
| - typedef CodeStubAssembler::Label Label;
|
|
|
| Node* receiver = assembler->Parameter(0);
|
| Node* name = assembler->Parameter(1);
|
| @@ -449,12 +442,38 @@ void LoadICTFStub::GenerateAssembly(CodeStubAssembler* assembler) const {
|
| Node* context = assembler->Parameter(4);
|
|
|
| CodeStubAssembler::LoadICParameters p(context, receiver, name, slot, vector);
|
| - Label miss(assembler);
|
| - assembler->LoadIC(&p, &miss);
|
| + assembler->LoadIC(&p);
|
| +}
|
|
|
| - assembler->Bind(&miss);
|
| - assembler->TailCallRuntime(Runtime::kLoadIC_Miss, context, receiver, name,
|
| - slot, vector);
|
| +void LoadGlobalICTrampolineStub::GenerateAssembly(
|
| + CodeStubAssembler* assembler) const {
|
| + if (!FLAG_new_load_global_ic) {
|
| + return LoadICTrampolineTFStub::GenerateAssembly(assembler);
|
| + }
|
| + typedef compiler::Node Node;
|
| +
|
| + Node* name = assembler->Parameter(0);
|
| + Node* slot = assembler->Parameter(1);
|
| + Node* context = assembler->Parameter(2);
|
| + Node* vector = assembler->LoadTypeFeedbackVectorForStub();
|
| +
|
| + CodeStubAssembler::LoadICParameters p(context, nullptr, name, slot, vector);
|
| + assembler->LoadGlobalIC(&p);
|
| +}
|
| +
|
| +void LoadGlobalICStub::GenerateAssembly(CodeStubAssembler* assembler) const {
|
| + if (!FLAG_new_load_global_ic) {
|
| + return LoadICTFStub::GenerateAssembly(assembler);
|
| + }
|
| + typedef compiler::Node Node;
|
| +
|
| + Node* name = assembler->Parameter(0);
|
| + Node* slot = assembler->Parameter(1);
|
| + Node* vector = assembler->Parameter(2);
|
| + Node* context = assembler->Parameter(3);
|
| +
|
| + CodeStubAssembler::LoadICParameters p(context, nullptr, name, slot, vector);
|
| + assembler->LoadGlobalIC(&p);
|
| }
|
|
|
| void AllocateHeapNumberStub::GenerateAssembly(
|
|
|