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

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

Issue 1973873004: [Interpreter] Make Fast-paths of StackCheck, Jump Return, ForInNext not build a frame. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebase Created 4 years, 7 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 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 // located at |first_arg|. 108 // located at |first_arg|.
109 compiler::Node* CallRuntimeN(compiler::Node* function_id, 109 compiler::Node* CallRuntimeN(compiler::Node* function_id,
110 compiler::Node* context, 110 compiler::Node* context,
111 compiler::Node* first_arg, 111 compiler::Node* first_arg,
112 compiler::Node* arg_count, int return_size = 1); 112 compiler::Node* arg_count, int return_size = 1);
113 113
114 // Jump relative to the current bytecode by |jump_offset|. 114 // Jump relative to the current bytecode by |jump_offset|.
115 compiler::Node* Jump(compiler::Node* jump_offset); 115 compiler::Node* Jump(compiler::Node* jump_offset);
116 116
117 // Jump relative to the current bytecode by |jump_offset| if the 117 // Jump relative to the current bytecode by |jump_offset| if the
118 // |condition| is true. Helper function for JumpIfWordEqual and
119 // JumpIfWordNotEqual.
120 void JumpConditional(compiler::Node* condition, compiler::Node* jump_offset);
121
122 // Jump relative to the current bytecode by |jump_offset| if the
123 // word values |lhs| and |rhs| are equal. 118 // word values |lhs| and |rhs| are equal.
124 void JumpIfWordEqual(compiler::Node* lhs, compiler::Node* rhs, 119 void JumpIfWordEqual(compiler::Node* lhs, compiler::Node* rhs,
125 compiler::Node* jump_offset); 120 compiler::Node* jump_offset);
126 121
127 // Jump relative to the current bytecode by |jump_offset| if the 122 // Jump relative to the current bytecode by |jump_offset| if the
128 // word values |lhs| and |rhs| are not equal. 123 // word values |lhs| and |rhs| are not equal.
129 void JumpIfWordNotEqual(compiler::Node* lhs, compiler::Node* rhs, 124 void JumpIfWordNotEqual(compiler::Node* lhs, compiler::Node* rhs,
130 compiler::Node* jump_offset); 125 compiler::Node* jump_offset);
131 126
132 // Perform a stack guard check. 127 // Returns true if the stack guard check triggers an interrupt.
133 void StackCheck(); 128 compiler::Node* StackCheckTriggeredInterrupt();
134 129
135 // Returns from the function. 130 // Returns from the function.
136 compiler::Node* InterpreterReturn(); 131 compiler::Node* InterpreterReturn();
137 132
138 // Dispatch to the bytecode. 133 // Dispatch to the bytecode.
139 compiler::Node* Dispatch(); 134 compiler::Node* Dispatch();
140 135
141 // Dispatch to bytecode handler. 136 // Dispatch to bytecode handler.
142 compiler::Node* DispatchToBytecodeHandler(compiler::Node* handler) { 137 compiler::Node* DispatchToBytecodeHandler(compiler::Node* handler) {
143 return DispatchToBytecodeHandler(handler, BytecodeOffset()); 138 return DispatchToBytecodeHandler(handler, BytecodeOffset());
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 compiler::Node* BytecodeOperandUnsignedShort(int operand_index); 195 compiler::Node* BytecodeOperandUnsignedShort(int operand_index);
201 compiler::Node* BytecodeOperandSignedShort(int operand_index); 196 compiler::Node* BytecodeOperandSignedShort(int operand_index);
202 compiler::Node* BytecodeOperandUnsignedQuad(int operand_index); 197 compiler::Node* BytecodeOperandUnsignedQuad(int operand_index);
203 compiler::Node* BytecodeOperandSignedQuad(int operand_index); 198 compiler::Node* BytecodeOperandSignedQuad(int operand_index);
204 199
205 compiler::Node* BytecodeSignedOperand(int operand_index, 200 compiler::Node* BytecodeSignedOperand(int operand_index,
206 OperandSize operand_size); 201 OperandSize operand_size);
207 compiler::Node* BytecodeUnsignedOperand(int operand_index, 202 compiler::Node* BytecodeUnsignedOperand(int operand_index,
208 OperandSize operand_size); 203 OperandSize operand_size);
209 204
205 // Jump relative to the current bytecode by |jump_offset| if the
206 // |condition| is true. Helper function for JumpIfWordEqual and
207 // JumpIfWordNotEqual.
208 void JumpConditional(compiler::Node* condition, compiler::Node* jump_offset);
209
210 // Returns BytecodeOffset() advanced by delta bytecodes. Note: this does not 210 // Returns BytecodeOffset() advanced by delta bytecodes. Note: this does not
211 // update BytecodeOffset() itself. 211 // update BytecodeOffset() itself.
212 compiler::Node* Advance(int delta); 212 compiler::Node* Advance(int delta);
213 compiler::Node* Advance(compiler::Node* delta); 213 compiler::Node* Advance(compiler::Node* delta);
214 214
215 // Starts next instruction dispatch at |new_bytecode_offset|. 215 // Starts next instruction dispatch at |new_bytecode_offset|.
216 compiler::Node* DispatchTo(compiler::Node* new_bytecode_offset); 216 compiler::Node* DispatchTo(compiler::Node* new_bytecode_offset);
217 217
218 // Dispatch to the bytecode handler with code offset |handler|. 218 // Dispatch to the bytecode handler with code offset |handler|.
219 compiler::Node* DispatchToBytecodeHandler(compiler::Node* handler, 219 compiler::Node* DispatchToBytecodeHandler(compiler::Node* handler,
(...skipping 19 matching lines...) Expand all
239 compiler::Node* stack_pointer_before_call_; 239 compiler::Node* stack_pointer_before_call_;
240 240
241 DISALLOW_COPY_AND_ASSIGN(InterpreterAssembler); 241 DISALLOW_COPY_AND_ASSIGN(InterpreterAssembler);
242 }; 242 };
243 243
244 } // namespace interpreter 244 } // namespace interpreter
245 } // namespace internal 245 } // namespace internal
246 } // namespace v8 246 } // namespace v8
247 247
248 #endif // V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_ 248 #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