Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(56)

Side by Side Diff: src/interpreter/interpreter-assembler.h

Issue 1882073002: [Interpreter] Make dispatch table point to code entry instead of code objects. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix visiting dispatch table. Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/interpreter/interpreter.cc ('k') | src/interpreter/interpreter-assembler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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_
OLDNEW
« no previous file with comments | « src/interpreter/interpreter.cc ('k') | src/interpreter/interpreter-assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698