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/builtins.h" | 10 #include "src/builtins/builtins.h" |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 compiler::Node* first_arg, | 120 compiler::Node* first_arg, |
121 compiler::Node* arg_count); | 121 compiler::Node* arg_count); |
122 | 122 |
123 // Call runtime function with |arg_count| arguments and the first argument | 123 // Call runtime function with |arg_count| arguments and the first argument |
124 // located at |first_arg|. | 124 // located at |first_arg|. |
125 compiler::Node* CallRuntimeN(compiler::Node* function_id, | 125 compiler::Node* CallRuntimeN(compiler::Node* function_id, |
126 compiler::Node* context, | 126 compiler::Node* context, |
127 compiler::Node* first_arg, | 127 compiler::Node* first_arg, |
128 compiler::Node* arg_count, int return_size = 1); | 128 compiler::Node* arg_count, int return_size = 1); |
129 | 129 |
| 130 // Check the cache validity for |receiver|. Branch to |use_cache| if |
| 131 // valid, otherwise branch to |use_runtime|. |
| 132 void CheckEnumCache(compiler::Node* receiver, |
| 133 CodeStubAssembler::Label* use_cache, |
| 134 CodeStubAssembler::Label* use_runtime); |
| 135 |
| 136 // Get the enumerable length from |map| and return the result as a Smi. |
| 137 compiler::Node* EnumLength(compiler::Node* map); |
| 138 |
130 // Jump relative to the current bytecode by |jump_offset|. | 139 // Jump relative to the current bytecode by |jump_offset|. |
131 compiler::Node* Jump(compiler::Node* jump_offset); | 140 compiler::Node* Jump(compiler::Node* jump_offset); |
132 | 141 |
133 // Jump relative to the current bytecode by |jump_offset| if the | 142 // Jump relative to the current bytecode by |jump_offset| if the |
134 // word values |lhs| and |rhs| are equal. | 143 // word values |lhs| and |rhs| are equal. |
135 void JumpIfWordEqual(compiler::Node* lhs, compiler::Node* rhs, | 144 void JumpIfWordEqual(compiler::Node* lhs, compiler::Node* rhs, |
136 compiler::Node* jump_offset); | 145 compiler::Node* jump_offset); |
137 | 146 |
138 // Jump relative to the current bytecode by |jump_offset| if the | 147 // Jump relative to the current bytecode by |jump_offset| if the |
139 // word values |lhs| and |rhs| are not equal. | 148 // word values |lhs| and |rhs| are not equal. |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
260 compiler::Node* stack_pointer_before_call_; | 269 compiler::Node* stack_pointer_before_call_; |
261 | 270 |
262 DISALLOW_COPY_AND_ASSIGN(InterpreterAssembler); | 271 DISALLOW_COPY_AND_ASSIGN(InterpreterAssembler); |
263 }; | 272 }; |
264 | 273 |
265 } // namespace interpreter | 274 } // namespace interpreter |
266 } // namespace internal | 275 } // namespace internal |
267 } // namespace v8 | 276 } // namespace v8 |
268 | 277 |
269 #endif // V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_ | 278 #endif // V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_ |
OLD | NEW |