Index: src/compiler/interpreter-assembler.h |
diff --git a/src/compiler/interpreter-assembler.h b/src/compiler/interpreter-assembler.h |
index 0949fbb5e6c5a9f824934741b2f590865373626b..adb7ed8f71971bb9a5f94cf5c39eac12929c9a42 100644 |
--- a/src/compiler/interpreter-assembler.h |
+++ b/src/compiler/interpreter-assembler.h |
@@ -38,7 +38,10 @@ class InterpreterAssembler { |
Handle<Code> GenerateCode(); |
- // Returns the Idx immediate for bytecode operand |operand_index| in the |
+ // Returns the count immediate for bytecode operand |operand_index| in the |
+ // current bytecode. |
+ Node* BytecodeOperandCount(int operand_index); |
+ // Returns the index immediate for bytecode operand |operand_index| in the |
// current bytecode. |
Node* BytecodeOperandIdx(int operand_index); |
// Returns the Imm8 immediate for bytecode operand |operand_index| in the |
@@ -56,6 +59,10 @@ class InterpreterAssembler { |
Node* LoadRegister(Node* reg_index); |
Node* StoreRegister(Node* value, Node* reg_index); |
+ // Returns the location in memory of the register |reg_index| in the |
+ // interpreter register file. |
+ Node* RegisterLocation(Node* reg_index); |
+ |
// Constants. |
Node* Int32Constant(int value); |
Node* IntPtrConstant(intptr_t value); |
@@ -66,6 +73,11 @@ class InterpreterAssembler { |
Node* SmiTag(Node* value); |
Node* SmiUntag(Node* value); |
+ // Basic arithmetic operations. |
+ Node* IntPtrAdd(Node* a, Node* b); |
+ Node* IntPtrSub(Node* a, Node* b); |
+ Node* WordShl(Node* value, int shift); |
+ |
// Load constant at |index| in the constant pool. |
Node* LoadConstantPoolEntry(Node* index); |
@@ -81,6 +93,10 @@ class InterpreterAssembler { |
// Load the TypeFeedbackVector for the current function. |
Node* LoadTypeFeedbackVector(); |
+ // Call JSFunction or Callable |function| with |arg_count| (not including |
+ // receiver) and the first argument located at |first_arg|. |
+ Node* CallJS(Node* function, Node* first_arg, Node* arg_count); |
+ |
// Call an IC code stub. |
Node* CallIC(CallInterfaceDescriptor descriptor, Node* target, Node* arg1, |
Node* arg2, Node* arg3, Node* arg4); |