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_BYTECODE_ARRAY_BUILDER_H_ | 5 #ifndef V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ |
6 #define V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ | 6 #define V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ |
7 | 7 |
8 #include "src/ast/ast.h" | 8 #include "src/ast/ast.h" |
9 #include "src/interpreter/bytecode-array-writer.h" | 9 #include "src/interpreter/bytecode-array-writer.h" |
10 #include "src/interpreter/bytecode-register-allocator.h" | 10 #include "src/interpreter/bytecode-register-allocator.h" |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 // the key to be deleted and the register contains a reference to the object. | 208 // the key to be deleted and the register contains a reference to the object. |
209 BytecodeArrayBuilder& Delete(Register object, LanguageMode language_mode); | 209 BytecodeArrayBuilder& Delete(Register object, LanguageMode language_mode); |
210 | 210 |
211 // Tests. | 211 // Tests. |
212 BytecodeArrayBuilder& CompareOperation(Token::Value op, Register reg); | 212 BytecodeArrayBuilder& CompareOperation(Token::Value op, Register reg); |
213 | 213 |
214 // Casts. | 214 // Casts. |
215 BytecodeArrayBuilder& CastAccumulatorToBoolean(); | 215 BytecodeArrayBuilder& CastAccumulatorToBoolean(); |
216 BytecodeArrayBuilder& CastAccumulatorToJSObject(); | 216 BytecodeArrayBuilder& CastAccumulatorToJSObject(); |
217 BytecodeArrayBuilder& CastAccumulatorToName(); | 217 BytecodeArrayBuilder& CastAccumulatorToName(); |
218 BytecodeArrayBuilder& CastAccumulatorToNumber(); | 218 // Does not update the accumulator but stores to |out| instead. |
| 219 BytecodeArrayBuilder& CastAccumulatorToNumber(Register out); |
219 | 220 |
220 // Flow Control. | 221 // Flow Control. |
221 BytecodeArrayBuilder& Bind(BytecodeLabel* label); | 222 BytecodeArrayBuilder& Bind(BytecodeLabel* label); |
222 BytecodeArrayBuilder& Bind(const BytecodeLabel& target, BytecodeLabel* label); | 223 BytecodeArrayBuilder& Bind(const BytecodeLabel& target, BytecodeLabel* label); |
223 | 224 |
224 BytecodeArrayBuilder& Jump(BytecodeLabel* label); | 225 BytecodeArrayBuilder& Jump(BytecodeLabel* label); |
225 BytecodeArrayBuilder& JumpIfTrue(BytecodeLabel* label); | 226 BytecodeArrayBuilder& JumpIfTrue(BytecodeLabel* label); |
226 BytecodeArrayBuilder& JumpIfFalse(BytecodeLabel* label); | 227 BytecodeArrayBuilder& JumpIfFalse(BytecodeLabel* label); |
227 BytecodeArrayBuilder& JumpIfNotHole(BytecodeLabel* label); | 228 BytecodeArrayBuilder& JumpIfNotHole(BytecodeLabel* label); |
228 BytecodeArrayBuilder& JumpIfNull(BytecodeLabel* label); | 229 BytecodeArrayBuilder& JumpIfNull(BytecodeLabel* label); |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
371 BytecodeSourceInfo latest_source_info_; | 372 BytecodeSourceInfo latest_source_info_; |
372 | 373 |
373 DISALLOW_COPY_AND_ASSIGN(BytecodeArrayBuilder); | 374 DISALLOW_COPY_AND_ASSIGN(BytecodeArrayBuilder); |
374 }; | 375 }; |
375 | 376 |
376 } // namespace interpreter | 377 } // namespace interpreter |
377 } // namespace internal | 378 } // namespace internal |
378 } // namespace v8 | 379 } // namespace v8 |
379 | 380 |
380 #endif // V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ | 381 #endif // V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ |
OLD | NEW |