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

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: conversions 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
Index: src/interpreter/interpreter.cc
diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc
index c196118adea782bece9116607b9f5cdee8269a29..9094115ff2ae9d875bcd27e8f5ed9d06dda71a5d 100644
--- a/src/interpreter/interpreter.cc
+++ b/src/interpreter/interpreter.cc
@@ -383,6 +383,8 @@ void Interpreter::DoMov(InterpreterAssembler* assembler) {
Node* Interpreter::BuildLoadGlobal(Callable ic,
InterpreterAssembler* assembler) {
+ typedef LoadGlobalWithVectorDescriptor Descriptor;
+ typedef InterpreterAssembler::Arg Arg;
rmcilroy 2016/07/26 13:27:53 Please do this typedef once at the top of the file
Igor Sheludko 2016/07/26 14:30:31 Done.
// 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,8 @@ void Interpreter::DoLdaGlobalInsideTypeof(InterpreterAssembler* assembler) {
}
void Interpreter::DoStaGlobal(Callable ic, InterpreterAssembler* assembler) {
+ typedef StoreWithVectorDescriptor Descriptor;
+ typedef InterpreterAssembler::Arg Arg;
// Get the global object.
Node* context = __ GetContext();
Node* native_context =
@@ -447,8 +452,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 +574,8 @@ void Interpreter::DoStaLookupSlotStrict(InterpreterAssembler* assembler) {
Node* Interpreter::BuildLoadNamedProperty(Callable ic,
InterpreterAssembler* assembler) {
+ typedef LoadWithVectorDescriptor Descriptor;
+ typedef InterpreterAssembler::Arg Arg;
Node* code_target = __ HeapConstant(ic.code());
Node* register_index = __ BytecodeOperandReg(0);
Node* object = __ LoadRegister(register_index);
@@ -576,8 +585,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 +616,8 @@ void Interpreter::DoLdrNamedProperty(InterpreterAssembler* assembler) {
Node* Interpreter::BuildLoadKeyedProperty(Callable ic,
InterpreterAssembler* assembler) {
+ typedef LoadWithVectorDescriptor Descriptor;
+ typedef InterpreterAssembler::Arg Arg;
Node* code_target = __ HeapConstant(ic.code());
Node* reg_index = __ BytecodeOperandReg(0);
Node* object = __ LoadRegister(reg_index);
@@ -613,8 +626,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 +656,8 @@ void Interpreter::DoLdrKeyedProperty(InterpreterAssembler* assembler) {
}
void Interpreter::DoStoreIC(Callable ic, InterpreterAssembler* assembler) {
+ typedef StoreWithVectorDescriptor Descriptor;
+ typedef InterpreterAssembler::Arg Arg;
Node* code_target = __ HeapConstant(ic.code());
Node* object_reg_index = __ BytecodeOperandReg(0);
Node* object = __ LoadRegister(object_reg_index);
@@ -651,8 +668,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 +696,8 @@ void Interpreter::DoStaNamedPropertyStrict(InterpreterAssembler* assembler) {
}
void Interpreter::DoKeyedStoreIC(Callable ic, InterpreterAssembler* assembler) {
+ typedef StoreWithVectorDescriptor Descriptor;
+ typedef InterpreterAssembler::Arg Arg;
Node* code_target = __ HeapConstant(ic.code());
Node* object_reg_index = __ BytecodeOperandReg(0);
Node* object = __ LoadRegister(object_reg_index);
@@ -687,8 +708,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();
}

Powered by Google App Engine
This is Rietveld 408576698