| 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_INTERPRETER_INTERPRETER_ASSEMBLER_H_ | 5 #ifndef V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_ |
| 6 #define V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_ | 6 #define V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_ |
| 7 | 7 |
| 8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
| 9 #include "src/base/smart-pointers.h" | 9 #include "src/base/smart-pointers.h" |
| 10 #include "src/builtins.h" | 10 #include "src/builtins.h" |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 // Perform a stack guard check. | 130 // Perform a stack guard check. |
| 131 void StackCheck(); | 131 void StackCheck(); |
| 132 | 132 |
| 133 // Returns from the function. | 133 // Returns from the function. |
| 134 void InterpreterReturn(); | 134 void InterpreterReturn(); |
| 135 | 135 |
| 136 // Dispatch to the bytecode. | 136 // Dispatch to the bytecode. |
| 137 void Dispatch(); | 137 void Dispatch(); |
| 138 | 138 |
| 139 // Dispatch to bytecode handler. | 139 // Dispatch to bytecode handler. |
| 140 void DispatchToBytecodeHandler(compiler::Node* handler, | |
| 141 compiler::Node* bytecode_offset); | |
| 142 void DispatchToBytecodeHandler(compiler::Node* handler) { | 140 void DispatchToBytecodeHandler(compiler::Node* handler) { |
| 143 DispatchToBytecodeHandler(handler, BytecodeOffset()); | 141 DispatchToBytecodeHandler(handler, BytecodeOffset()); |
| 144 } | 142 } |
| 145 | 143 |
| 146 // Dispatch bytecode as wide operand variant. | 144 // Dispatch bytecode as wide operand variant. |
| 147 void DispatchWide(OperandScale operand_scale); | 145 void DispatchWide(OperandScale operand_scale); |
| 148 | 146 |
| 149 // Abort with the given bailout reason. | 147 // Abort with the given bailout reason. |
| 150 void Abort(BailoutReason bailout_reason); | 148 void Abort(BailoutReason bailout_reason); |
| 151 | 149 |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 210 OperandSize operand_size); | 208 OperandSize operand_size); |
| 211 | 209 |
| 212 // Returns BytecodeOffset() advanced by delta bytecodes. Note: this does not | 210 // Returns BytecodeOffset() advanced by delta bytecodes. Note: this does not |
| 213 // update BytecodeOffset() itself. | 211 // update BytecodeOffset() itself. |
| 214 compiler::Node* Advance(int delta); | 212 compiler::Node* Advance(int delta); |
| 215 compiler::Node* Advance(compiler::Node* delta); | 213 compiler::Node* Advance(compiler::Node* delta); |
| 216 | 214 |
| 217 // Starts next instruction dispatch at |new_bytecode_offset|. | 215 // Starts next instruction dispatch at |new_bytecode_offset|. |
| 218 void DispatchTo(compiler::Node* new_bytecode_offset); | 216 void DispatchTo(compiler::Node* new_bytecode_offset); |
| 219 | 217 |
| 218 // Dispatch to the bytecode handler with code offset |handler|. |
| 219 void DispatchToBytecodeHandler(compiler::Node* handler, |
| 220 compiler::Node* bytecode_offset); |
| 221 |
| 222 // Dispatch to the bytecode handler with code entry point |handler_entry|. |
| 223 void DispatchToBytecodeHandlerEntry(compiler::Node* handler_entry, |
| 224 compiler::Node* bytecode_offset); |
| 225 |
| 220 // Abort operations for debug code. | 226 // Abort operations for debug code. |
| 221 void AbortIfWordNotEqual(compiler::Node* lhs, compiler::Node* rhs, | 227 void AbortIfWordNotEqual(compiler::Node* lhs, compiler::Node* rhs, |
| 222 BailoutReason bailout_reason); | 228 BailoutReason bailout_reason); |
| 223 | 229 |
| 224 OperandScale operand_scale() const { return operand_scale_; } | 230 OperandScale operand_scale() const { return operand_scale_; } |
| 225 | 231 |
| 226 Bytecode bytecode_; | 232 Bytecode bytecode_; |
| 227 OperandScale operand_scale_; | 233 OperandScale operand_scale_; |
| 228 CodeStubAssembler::Variable accumulator_; | 234 CodeStubAssembler::Variable accumulator_; |
| 229 AccumulatorUse accumulator_use_; | 235 AccumulatorUse accumulator_use_; |
| 230 CodeStubAssembler::Variable context_; | 236 CodeStubAssembler::Variable context_; |
| 231 CodeStubAssembler::Variable bytecode_array_; | 237 CodeStubAssembler::Variable bytecode_array_; |
| 232 | 238 |
| 233 bool disable_stack_check_across_call_; | 239 bool disable_stack_check_across_call_; |
| 234 compiler::Node* stack_pointer_before_call_; | 240 compiler::Node* stack_pointer_before_call_; |
| 235 | 241 |
| 236 DISALLOW_COPY_AND_ASSIGN(InterpreterAssembler); | 242 DISALLOW_COPY_AND_ASSIGN(InterpreterAssembler); |
| 237 }; | 243 }; |
| 238 | 244 |
| 239 } // namespace interpreter | 245 } // namespace interpreter |
| 240 } // namespace internal | 246 } // namespace internal |
| 241 } // namespace v8 | 247 } // namespace v8 |
| 242 | 248 |
| 243 #endif // V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_ | 249 #endif // V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_ |
| OLD | NEW |