| 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 42 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 53   Node* BytecodeOperandReg8(int operand_index); | 53   Node* BytecodeOperandReg8(int operand_index); | 
| 54 | 54 | 
| 55   // Returns the index immediate for the short (16 bit) bytecode operand | 55   // Returns the index immediate for the short (16 bit) bytecode operand | 
| 56   // |operand_index| in the current bytecode. | 56   // |operand_index| in the current bytecode. | 
| 57   Node* BytecodeOperandIdx16(int operand_index); | 57   Node* BytecodeOperandIdx16(int operand_index); | 
| 58 | 58 | 
| 59   // Accumulator. | 59   // Accumulator. | 
| 60   Node* GetAccumulator(); | 60   Node* GetAccumulator(); | 
| 61   void SetAccumulator(Node* value); | 61   void SetAccumulator(Node* value); | 
| 62 | 62 | 
|  | 63   // Context. | 
|  | 64   Node* GetContext(); | 
|  | 65   void SetContext(Node* value); | 
|  | 66 | 
| 63   // Loads from and stores to the interpreter register file. | 67   // Loads from and stores to the interpreter register file. | 
| 64   Node* LoadRegister(Node* reg_index); | 68   Node* LoadRegister(Node* reg_index); | 
| 65   Node* StoreRegister(Node* value, Node* reg_index); | 69   Node* StoreRegister(Node* value, Node* reg_index); | 
| 66 | 70 | 
| 67   // Returns the location in memory of the register |reg_index| in the | 71   // Returns the location in memory of the register |reg_index| in the | 
| 68   // interpreter register file. | 72   // interpreter register file. | 
| 69   Node* RegisterLocation(Node* reg_index); | 73   Node* RegisterLocation(Node* reg_index); | 
| 70 | 74 | 
| 71   // Constants. | 75   // Constants. | 
| 72   Node* Int32Constant(int value); | 76   Node* Int32Constant(int value); | 
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 136 | 140 | 
| 137  private: | 141  private: | 
| 138   // Returns a raw pointer to start of the register file on the stack. | 142   // Returns a raw pointer to start of the register file on the stack. | 
| 139   Node* RegisterFileRawPointer(); | 143   Node* RegisterFileRawPointer(); | 
| 140   // Returns a tagged pointer to the current function's BytecodeArray object. | 144   // Returns a tagged pointer to the current function's BytecodeArray object. | 
| 141   Node* BytecodeArrayTaggedPointer(); | 145   Node* BytecodeArrayTaggedPointer(); | 
| 142   // Returns the offset from the BytecodeArrayPointer of the current bytecode. | 146   // Returns the offset from the BytecodeArrayPointer of the current bytecode. | 
| 143   Node* BytecodeOffset(); | 147   Node* BytecodeOffset(); | 
| 144   // Returns a raw pointer to first entry in the interpreter dispatch table. | 148   // Returns a raw pointer to first entry in the interpreter dispatch table. | 
| 145   Node* DispatchTableRawPointer(); | 149   Node* DispatchTableRawPointer(); | 
| 146   // Returns a tagged pointer to the current context. |  | 
| 147   Node* ContextTaggedPointer(); |  | 
| 148 | 150 | 
| 149   // Returns the offset of register |index| relative to RegisterFilePointer(). | 151   // Returns the offset of register |index| relative to RegisterFilePointer(). | 
| 150   Node* RegisterFrameOffset(Node* index); | 152   Node* RegisterFrameOffset(Node* index); | 
| 151 | 153 | 
| 152   Node* SmiShiftBitsConstant(); | 154   Node* SmiShiftBitsConstant(); | 
| 153   Node* BytecodeOperand(int operand_index); | 155   Node* BytecodeOperand(int operand_index); | 
| 154   Node* BytecodeOperandSignExtended(int operand_index); | 156   Node* BytecodeOperandSignExtended(int operand_index); | 
| 155   Node* BytecodeOperandShort(int operand_index); | 157   Node* BytecodeOperandShort(int operand_index); | 
| 156 | 158 | 
| 157   Node* CallN(CallDescriptor* descriptor, Node* code_target, Node** args); | 159   Node* CallN(CallDescriptor* descriptor, Node* code_target, Node** args); | 
| (...skipping 17 matching lines...) Expand all  Loading... | 
| 175 | 177 | 
| 176   // Private helpers which delegate to RawMachineAssembler. | 178   // Private helpers which delegate to RawMachineAssembler. | 
| 177   Isolate* isolate(); | 179   Isolate* isolate(); | 
| 178   Schedule* schedule(); | 180   Schedule* schedule(); | 
| 179   Zone* zone(); | 181   Zone* zone(); | 
| 180 | 182 | 
| 181   interpreter::Bytecode bytecode_; | 183   interpreter::Bytecode bytecode_; | 
| 182   base::SmartPointer<RawMachineAssembler> raw_assembler_; | 184   base::SmartPointer<RawMachineAssembler> raw_assembler_; | 
| 183   ZoneVector<Node*> end_nodes_; | 185   ZoneVector<Node*> end_nodes_; | 
| 184   Node* accumulator_; | 186   Node* accumulator_; | 
|  | 187   Node* context_; | 
| 185   bool code_generated_; | 188   bool code_generated_; | 
| 186 | 189 | 
| 187   DISALLOW_COPY_AND_ASSIGN(InterpreterAssembler); | 190   DISALLOW_COPY_AND_ASSIGN(InterpreterAssembler); | 
| 188 }; | 191 }; | 
| 189 | 192 | 
| 190 }  // namespace compiler | 193 }  // namespace compiler | 
| 191 }  // namespace internal | 194 }  // namespace internal | 
| 192 }  // namespace v8 | 195 }  // namespace v8 | 
| 193 | 196 | 
| 194 #endif  // V8_COMPILER_INTERPRETER_ASSEMBLER_H_ | 197 #endif  // V8_COMPILER_INTERPRETER_ASSEMBLER_H_ | 
| OLD | NEW | 
|---|