Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(103)

Unified Diff: src/interpreter/interpreter.cc

Issue 2172223002: [stubs] Call interface descriptors cleanup. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@store-ic-tf
Patch Set: Addressing comments Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/interface-descriptors.cc ('k') | src/interpreter/interpreter-assembler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/interpreter/interpreter.cc
diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc
index c196118adea782bece9116607b9f5cdee8269a29..0c3b1e31a9520afd180af43d52c9bf71990a4c5f 100644
--- a/src/interpreter/interpreter.cc
+++ b/src/interpreter/interpreter.cc
@@ -26,6 +26,7 @@ namespace interpreter {
using compiler::Node;
typedef CodeStubAssembler::Label Label;
typedef CodeStubAssembler::Variable Variable;
+typedef InterpreterAssembler::Arg Arg;
#define __ assembler->
@@ -383,6 +384,7 @@ void Interpreter::DoMov(InterpreterAssembler* assembler) {
Node* Interpreter::BuildLoadGlobal(Callable ic,
InterpreterAssembler* assembler) {
+ typedef LoadGlobalWithVectorDescriptor Descriptor;
// Get the global object.
Node* context = __ GetContext();
@@ -391,8 +393,9 @@ Node* Interpreter::BuildLoadGlobal(Callable ic,
Node* raw_slot = __ BytecodeOperandIdx(0);
Node* smi_slot = __ SmiTag(raw_slot);
Node* type_feedback_vector = __ LoadTypeFeedbackVector();
- return __ CallStub(ic.descriptor(), code_target, context, smi_slot,
- type_feedback_vector);
+ return __ CallStub(ic.descriptor(), code_target, context,
+ Arg(Descriptor::kSlot, smi_slot),
+ Arg(Descriptor::kVector, type_feedback_vector));
}
// LdaGlobal <slot>
@@ -433,6 +436,7 @@ void Interpreter::DoLdaGlobalInsideTypeof(InterpreterAssembler* assembler) {
}
void Interpreter::DoStaGlobal(Callable ic, InterpreterAssembler* assembler) {
+ typedef StoreWithVectorDescriptor Descriptor;
// Get the global object.
Node* context = __ GetContext();
Node* native_context =
@@ -447,8 +451,10 @@ void Interpreter::DoStaGlobal(Callable ic, InterpreterAssembler* assembler) {
Node* raw_slot = __ BytecodeOperandIdx(1);
Node* smi_slot = __ SmiTag(raw_slot);
Node* type_feedback_vector = __ LoadTypeFeedbackVector();
- __ CallStub(ic.descriptor(), code_target, context, global, name, value,
- smi_slot, type_feedback_vector);
+ __ CallStub(ic.descriptor(), code_target, context,
+ Arg(Descriptor::kReceiver, global), Arg(Descriptor::kName, name),
+ Arg(Descriptor::kValue, value), Arg(Descriptor::kSlot, smi_slot),
+ Arg(Descriptor::kVector, type_feedback_vector));
__ Dispatch();
}
@@ -567,6 +573,7 @@ void Interpreter::DoStaLookupSlotStrict(InterpreterAssembler* assembler) {
Node* Interpreter::BuildLoadNamedProperty(Callable ic,
InterpreterAssembler* assembler) {
+ typedef LoadWithVectorDescriptor Descriptor;
Node* code_target = __ HeapConstant(ic.code());
Node* register_index = __ BytecodeOperandReg(0);
Node* object = __ LoadRegister(register_index);
@@ -576,8 +583,10 @@ Node* Interpreter::BuildLoadNamedProperty(Callable ic,
Node* smi_slot = __ SmiTag(raw_slot);
Node* type_feedback_vector = __ LoadTypeFeedbackVector();
Node* context = __ GetContext();
- return __ CallStub(ic.descriptor(), code_target, context, object, name,
- smi_slot, type_feedback_vector);
+ return __ 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>
@@ -605,6 +614,7 @@ void Interpreter::DoLdrNamedProperty(InterpreterAssembler* assembler) {
Node* Interpreter::BuildLoadKeyedProperty(Callable ic,
InterpreterAssembler* assembler) {
+ typedef LoadWithVectorDescriptor Descriptor;
Node* code_target = __ HeapConstant(ic.code());
Node* reg_index = __ BytecodeOperandReg(0);
Node* object = __ LoadRegister(reg_index);
@@ -613,8 +623,10 @@ Node* Interpreter::BuildLoadKeyedProperty(Callable ic,
Node* smi_slot = __ SmiTag(raw_slot);
Node* type_feedback_vector = __ LoadTypeFeedbackVector();
Node* context = __ GetContext();
- return __ CallStub(ic.descriptor(), code_target, context, object, name,
- smi_slot, type_feedback_vector);
+ return __ 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>
@@ -641,6 +653,7 @@ void Interpreter::DoLdrKeyedProperty(InterpreterAssembler* assembler) {
}
void Interpreter::DoStoreIC(Callable ic, InterpreterAssembler* assembler) {
+ typedef StoreWithVectorDescriptor Descriptor;
Node* code_target = __ HeapConstant(ic.code());
Node* object_reg_index = __ BytecodeOperandReg(0);
Node* object = __ LoadRegister(object_reg_index);
@@ -651,8 +664,10 @@ void Interpreter::DoStoreIC(Callable ic, InterpreterAssembler* assembler) {
Node* smi_slot = __ SmiTag(raw_slot);
Node* type_feedback_vector = __ LoadTypeFeedbackVector();
Node* context = __ GetContext();
- __ CallStub(ic.descriptor(), code_target, context, object, name, value,
- smi_slot, type_feedback_vector);
+ __ CallStub(ic.descriptor(), code_target, context,
+ Arg(Descriptor::kReceiver, object), Arg(Descriptor::kName, name),
+ Arg(Descriptor::kValue, value), Arg(Descriptor::kSlot, smi_slot),
+ Arg(Descriptor::kVector, type_feedback_vector));
__ Dispatch();
}
@@ -677,6 +692,7 @@ void Interpreter::DoStaNamedPropertyStrict(InterpreterAssembler* assembler) {
}
void Interpreter::DoKeyedStoreIC(Callable ic, InterpreterAssembler* assembler) {
+ typedef StoreWithVectorDescriptor Descriptor;
Node* code_target = __ HeapConstant(ic.code());
Node* object_reg_index = __ BytecodeOperandReg(0);
Node* object = __ LoadRegister(object_reg_index);
@@ -687,8 +703,10 @@ void Interpreter::DoKeyedStoreIC(Callable ic, InterpreterAssembler* assembler) {
Node* smi_slot = __ SmiTag(raw_slot);
Node* type_feedback_vector = __ LoadTypeFeedbackVector();
Node* context = __ GetContext();
- __ CallStub(ic.descriptor(), code_target, context, object, name, value,
- smi_slot, type_feedback_vector);
+ __ CallStub(ic.descriptor(), code_target, context,
+ Arg(Descriptor::kReceiver, object), Arg(Descriptor::kName, name),
+ Arg(Descriptor::kValue, value), Arg(Descriptor::kSlot, smi_slot),
+ Arg(Descriptor::kVector, type_feedback_vector));
__ Dispatch();
}
« no previous file with comments | « src/interface-descriptors.cc ('k') | src/interpreter/interpreter-assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698