OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_COMPILER_INTERPRETER_ASSEMBLER_H_ | 5 #ifndef V8_COMPILER_INTERPRETER_ASSEMBLER_H_ |
6 #define V8_COMPILER_INTERPRETER_ASSEMBLER_H_ | 6 #define V8_COMPILER_INTERPRETER_ASSEMBLER_H_ |
7 | 7 |
8 // Clients of this interface shouldn't depend on lots of compiler internals. | 8 // Clients of this interface shouldn't depend on lots of compiler internals. |
9 // Do not include anything from src/compiler here! | 9 // Do not include anything from src/compiler here! |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 // Returns the index immediate for bytecode operand |operand_index| in the | 45 // Returns the index immediate for bytecode operand |operand_index| in the |
46 // current bytecode. | 46 // current bytecode. |
47 Node* BytecodeOperandIdx(int operand_index); | 47 Node* BytecodeOperandIdx(int operand_index); |
48 // Returns the Imm8 immediate for bytecode operand |operand_index| in the | 48 // Returns the Imm8 immediate for bytecode operand |operand_index| in the |
49 // current bytecode. | 49 // current bytecode. |
50 Node* BytecodeOperandImm8(int operand_index); | 50 Node* BytecodeOperandImm8(int operand_index); |
51 // Returns the register index for bytecode operand |operand_index| in the | 51 // Returns the register index for bytecode operand |operand_index| in the |
52 // current bytecode. | 52 // current bytecode. |
53 Node* BytecodeOperandReg(int operand_index); | 53 Node* BytecodeOperandReg(int operand_index); |
54 | 54 |
| 55 // Returns the index immediate for the wide bytecode operand |operand_index| |
| 56 // in the current bytecode. |
| 57 Node* BytecodeOperandWideIdx(int operand_index); |
| 58 |
55 // Accumulator. | 59 // Accumulator. |
56 Node* GetAccumulator(); | 60 Node* GetAccumulator(); |
57 void SetAccumulator(Node* value); | 61 void SetAccumulator(Node* value); |
58 | 62 |
59 // Loads from and stores to the interpreter register file. | 63 // Loads from and stores to the interpreter register file. |
60 Node* LoadRegister(Node* reg_index); | 64 Node* LoadRegister(Node* reg_index); |
61 Node* StoreRegister(Node* value, Node* reg_index); | 65 Node* StoreRegister(Node* value, Node* reg_index); |
62 | 66 |
63 // Returns the location in memory of the register |reg_index| in the | 67 // Returns the location in memory of the register |reg_index| in the |
64 // interpreter register file. | 68 // interpreter register file. |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 Node* DispatchTableRawPointer(); | 145 Node* DispatchTableRawPointer(); |
142 // Returns a tagged pointer to the current context. | 146 // Returns a tagged pointer to the current context. |
143 Node* ContextTaggedPointer(); | 147 Node* ContextTaggedPointer(); |
144 | 148 |
145 // Returns the offset of register |index| relative to RegisterFilePointer(). | 149 // Returns the offset of register |index| relative to RegisterFilePointer(). |
146 Node* RegisterFrameOffset(Node* index); | 150 Node* RegisterFrameOffset(Node* index); |
147 | 151 |
148 Node* SmiShiftBitsConstant(); | 152 Node* SmiShiftBitsConstant(); |
149 Node* BytecodeOperand(int operand_index); | 153 Node* BytecodeOperand(int operand_index); |
150 Node* BytecodeOperandSignExtended(int operand_index); | 154 Node* BytecodeOperandSignExtended(int operand_index); |
| 155 Node* BytecodeOperandWide(int operand_index); |
151 | 156 |
152 Node* CallIC(CallInterfaceDescriptor descriptor, Node* target, Node** args); | 157 Node* CallIC(CallInterfaceDescriptor descriptor, Node* target, Node** args); |
153 Node* CallJSBuiltin(int context_index, Node* receiver, Node** js_args, | 158 Node* CallJSBuiltin(int context_index, Node* receiver, Node** js_args, |
154 int js_arg_count); | 159 int js_arg_count); |
155 | 160 |
156 // Returns BytecodeOffset() advanced by delta bytecodes. Note: this does not | 161 // Returns BytecodeOffset() advanced by delta bytecodes. Note: this does not |
157 // update BytecodeOffset() itself. | 162 // update BytecodeOffset() itself. |
158 Node* Advance(int delta); | 163 Node* Advance(int delta); |
159 Node* Advance(Node* delta); | 164 Node* Advance(Node* delta); |
160 | 165 |
(...skipping 15 matching lines...) Expand all Loading... |
176 bool code_generated_; | 181 bool code_generated_; |
177 | 182 |
178 DISALLOW_COPY_AND_ASSIGN(InterpreterAssembler); | 183 DISALLOW_COPY_AND_ASSIGN(InterpreterAssembler); |
179 }; | 184 }; |
180 | 185 |
181 } // namespace interpreter | 186 } // namespace interpreter |
182 } // namespace internal | 187 } // namespace internal |
183 } // namespace v8 | 188 } // namespace v8 |
184 | 189 |
185 #endif // V8_COMPILER_INTERPRETER_ASSEMBLER_H_ | 190 #endif // V8_COMPILER_INTERPRETER_ASSEMBLER_H_ |
OLD | NEW |