Index: src/interpreter/interpreter.cc |
diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc |
index 8f8182814e869bab5cebffa61d0e829dead84468..9b6662eeba69b99a80accd162fe29957611e5f86 100644 |
--- a/src/interpreter/interpreter.cc |
+++ b/src/interpreter/interpreter.cc |
@@ -771,9 +771,13 @@ void Interpreter::DoStaLookupSlotStrict(InterpreterAssembler* assembler) { |
DoStaLookupSlot(LanguageMode::STRICT, assembler); |
} |
-Node* Interpreter::BuildLoadNamedProperty(Callable ic, |
- InterpreterAssembler* assembler) { |
+// LdaNamedProperty <object> <name_index> <slot> |
+// |
+// Calls the LoadIC at FeedBackVector slot <slot> for <object> and the name at |
+// constant pool entry <name_index>. |
+void Interpreter::DoLdaNamedProperty(InterpreterAssembler* assembler) { |
typedef LoadWithVectorDescriptor Descriptor; |
+ Callable ic = CodeFactory::LoadICInOptimizedCode(isolate_); |
Node* code_target = __ HeapConstant(ic.code()); |
Node* register_index = __ BytecodeOperandReg(0); |
Node* object = __ LoadRegister(register_index); |
@@ -783,38 +787,21 @@ Node* Interpreter::BuildLoadNamedProperty(Callable ic, |
Node* smi_slot = __ SmiTag(raw_slot); |
Node* type_feedback_vector = __ LoadTypeFeedbackVector(); |
Node* context = __ GetContext(); |
- return __ CallStub( |
+ Node* result = __ CallStub( |
ic.descriptor(), code_target, context, Arg(Descriptor::kReceiver, object), |
Arg(Descriptor::kName, name), Arg(Descriptor::kSlot, smi_slot), |
Arg(Descriptor::kVector, type_feedback_vector)); |
-} |
- |
-// LdaNamedProperty <object> <name_index> <slot> |
-// |
-// Calls the LoadIC at FeedBackVector slot <slot> for <object> and the name at |
-// constant pool entry <name_index>. |
-void Interpreter::DoLdaNamedProperty(InterpreterAssembler* assembler) { |
- Callable ic = CodeFactory::LoadICInOptimizedCode(isolate_); |
- Node* result = BuildLoadNamedProperty(ic, assembler); |
__ SetAccumulator(result); |
__ Dispatch(); |
} |
-// LdrNamedProperty <object> <name_index> <slot> <reg> |
+// KeyedLoadIC <object> <slot> |
// |
-// Calls the LoadIC at FeedBackVector slot <slot> for <object> and the name at |
-// constant pool entry <name_index> and puts the result into register <reg>. |
-void Interpreter::DoLdrNamedProperty(InterpreterAssembler* assembler) { |
- Callable ic = CodeFactory::LoadICInOptimizedCode(isolate_); |
- Node* result = BuildLoadNamedProperty(ic, assembler); |
- Node* destination = __ BytecodeOperandReg(3); |
- __ StoreRegister(result, destination); |
- __ Dispatch(); |
-} |
- |
-Node* Interpreter::BuildLoadKeyedProperty(Callable ic, |
- InterpreterAssembler* assembler) { |
+// Calls the KeyedLoadIC at FeedBackVector slot <slot> for <object> and the key |
+// in the accumulator. |
+void Interpreter::DoLdaKeyedProperty(InterpreterAssembler* assembler) { |
typedef LoadWithVectorDescriptor Descriptor; |
+ Callable ic = CodeFactory::KeyedLoadICInOptimizedCode(isolate_); |
Node* code_target = __ HeapConstant(ic.code()); |
Node* reg_index = __ BytecodeOperandReg(0); |
Node* object = __ LoadRegister(reg_index); |
@@ -823,35 +810,14 @@ Node* Interpreter::BuildLoadKeyedProperty(Callable ic, |
Node* smi_slot = __ SmiTag(raw_slot); |
Node* type_feedback_vector = __ LoadTypeFeedbackVector(); |
Node* context = __ GetContext(); |
- return __ CallStub( |
+ Node* result = __ CallStub( |
ic.descriptor(), code_target, context, Arg(Descriptor::kReceiver, object), |
Arg(Descriptor::kName, name), Arg(Descriptor::kSlot, smi_slot), |
Arg(Descriptor::kVector, type_feedback_vector)); |
-} |
- |
-// KeyedLoadIC <object> <slot> |
-// |
-// Calls the KeyedLoadIC at FeedBackVector slot <slot> for <object> and the key |
-// in the accumulator. |
-void Interpreter::DoLdaKeyedProperty(InterpreterAssembler* assembler) { |
- Callable ic = CodeFactory::KeyedLoadICInOptimizedCode(isolate_); |
- Node* result = BuildLoadKeyedProperty(ic, assembler); |
__ SetAccumulator(result); |
__ Dispatch(); |
} |
-// LdrKeyedProperty <object> <slot> <reg> |
-// |
-// Calls the KeyedLoadIC at FeedBackVector slot <slot> for <object> and the key |
-// in the accumulator and puts the result in register <reg>. |
-void Interpreter::DoLdrKeyedProperty(InterpreterAssembler* assembler) { |
- Callable ic = CodeFactory::KeyedLoadICInOptimizedCode(isolate_); |
- Node* result = BuildLoadKeyedProperty(ic, assembler); |
- Node* destination = __ BytecodeOperandReg(2); |
- __ StoreRegister(result, destination); |
- __ Dispatch(); |
-} |
- |
void Interpreter::DoStoreIC(Callable ic, InterpreterAssembler* assembler) { |
typedef StoreWithVectorDescriptor Descriptor; |
Node* code_target = __ HeapConstant(ic.code()); |