| 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 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 // Returns the offset from the BytecodeArrayPointer of the current bytecode. | 160 // Returns the offset from the BytecodeArrayPointer of the current bytecode. |
| 161 compiler::Node* BytecodeOffset(); | 161 compiler::Node* BytecodeOffset(); |
| 162 // Returns a raw pointer to first entry in the interpreter dispatch table. | 162 // Returns a raw pointer to first entry in the interpreter dispatch table. |
| 163 compiler::Node* DispatchTableRawPointer(); | 163 compiler::Node* DispatchTableRawPointer(); |
| 164 | 164 |
| 165 // Saves and restores interpreter bytecode offset to the interpreter stack | 165 // Saves and restores interpreter bytecode offset to the interpreter stack |
| 166 // frame when performing a call. | 166 // frame when performing a call. |
| 167 void CallPrologue() override; | 167 void CallPrologue() override; |
| 168 void CallEpilogue() override; | 168 void CallEpilogue() override; |
| 169 | 169 |
| 170 // Increment the dispatch counter for the (current, next) bytecode pair. |
| 171 void TraceBytecodeDispatch(compiler::Node* target_index); |
| 172 |
| 170 // Traces the current bytecode by calling |function_id|. | 173 // Traces the current bytecode by calling |function_id|. |
| 171 void TraceBytecode(Runtime::FunctionId function_id); | 174 void TraceBytecode(Runtime::FunctionId function_id); |
| 172 | 175 |
| 173 // Updates the bytecode array's interrupt budget by |weight| and calls | 176 // Updates the bytecode array's interrupt budget by |weight| and calls |
| 174 // Runtime::kInterrupt if counter reaches zero. | 177 // Runtime::kInterrupt if counter reaches zero. |
| 175 void UpdateInterruptBudget(compiler::Node* weight); | 178 void UpdateInterruptBudget(compiler::Node* weight); |
| 176 | 179 |
| 177 // Returns the offset of register |index| relative to RegisterFilePointer(). | 180 // Returns the offset of register |index| relative to RegisterFilePointer(). |
| 178 compiler::Node* RegisterFrameOffset(compiler::Node* index); | 181 compiler::Node* RegisterFrameOffset(compiler::Node* index); |
| 179 | 182 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 compiler::Node* stack_pointer_before_call_; | 227 compiler::Node* stack_pointer_before_call_; |
| 225 | 228 |
| 226 DISALLOW_COPY_AND_ASSIGN(InterpreterAssembler); | 229 DISALLOW_COPY_AND_ASSIGN(InterpreterAssembler); |
| 227 }; | 230 }; |
| 228 | 231 |
| 229 } // namespace interpreter | 232 } // namespace interpreter |
| 230 } // namespace internal | 233 } // namespace internal |
| 231 } // namespace v8 | 234 } // namespace v8 |
| 232 | 235 |
| 233 #endif // V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_ | 236 #endif // V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_ |
| OLD | NEW |