Chromium Code Reviews| 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_BYTECODES_H_ | 5 #ifndef V8_INTERPRETER_BYTECODES_H_ |
| 6 #define V8_INTERPRETER_BYTECODES_H_ | 6 #define V8_INTERPRETER_BYTECODES_H_ |
| 7 | 7 |
| 8 #include <iosfwd> | 8 #include <iosfwd> |
| 9 | 9 |
| 10 // Clients of this interface shouldn't depend on lots of interpreter internals. | 10 // Clients of this interface shouldn't depend on lots of interpreter internals. |
| (...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 325 // Returns the offset of the i-th operand of |bytecode| relative to the start | 325 // Returns the offset of the i-th operand of |bytecode| relative to the start |
| 326 // of the bytecode. | 326 // of the bytecode. |
| 327 static int GetOperandOffset(Bytecode bytecode, int i); | 327 static int GetOperandOffset(Bytecode bytecode, int i); |
| 328 | 328 |
| 329 // Returns the size of the bytecode including its operands. | 329 // Returns the size of the bytecode including its operands. |
| 330 static int Size(Bytecode bytecode); | 330 static int Size(Bytecode bytecode); |
| 331 | 331 |
| 332 // Returns the size of |operand|. | 332 // Returns the size of |operand|. |
| 333 static OperandSize SizeOfOperand(OperandType operand); | 333 static OperandSize SizeOfOperand(OperandType operand); |
| 334 | 334 |
| 335 // Return true if the bytecode is a conditional jump taking | |
| 336 // an immediate byte operand (OperandType::kImm8). | |
| 337 static bool IsConditionalJumpImmediate(Bytecode bytecode); | |
| 338 | |
| 339 // Return true if the bytecode is a conditional jump taking | |
| 340 // an immediate byte operand (OperandType::kImm8). | |
|
rmcilroy
2015/12/08 13:25:08
fix comment
oth
2015/12/09 11:26:45
Done.
| |
| 341 static bool IsConditionalJumpConstant(Bytecode bytecode); | |
| 342 | |
| 343 // Return true if the bytecode is a conditional jump taking | |
| 344 // any kind of operand. | |
| 345 static bool IsConditionalJump(Bytecode bytecode); | |
| 346 | |
| 335 // Return true if the bytecode is a jump or a conditional jump taking | 347 // Return true if the bytecode is a jump or a conditional jump taking |
| 336 // an immediate byte operand (OperandType::kImm8). | 348 // an immediate byte operand (OperandType::kImm8). |
| 337 static bool IsJump(Bytecode bytecode); | 349 static bool IsJumpImmediate(Bytecode bytecode); |
| 338 | 350 |
| 339 // Return true if the bytecode is a jump or conditional jump taking a | 351 // Return true if the bytecode is a jump or conditional jump taking a |
| 340 // constant pool entry (OperandType::kIdx). | 352 // constant pool entry (OperandType::kIdx). |
| 341 static bool IsJumpConstant(Bytecode bytecode); | 353 static bool IsJumpConstant(Bytecode bytecode); |
| 342 | 354 |
| 355 // Return true if the bytecode is a jump or conditional jump taking | |
| 356 // any kind of operand. | |
| 357 static bool IsJump(Bytecode bytecode); | |
| 358 | |
| 359 // Return true if the bytecode is a conditional jump, a jump, or a return. | |
| 360 static bool IsLocalControlFlow(Bytecode bytecode); | |
| 361 | |
| 343 // Decode a single bytecode and operands to |os|. | 362 // Decode a single bytecode and operands to |os|. |
| 344 static std::ostream& Decode(std::ostream& os, const uint8_t* bytecode_start, | 363 static std::ostream& Decode(std::ostream& os, const uint8_t* bytecode_start, |
| 345 int number_of_parameters); | 364 int number_of_parameters); |
| 346 | 365 |
| 347 private: | 366 private: |
| 348 DISALLOW_IMPLICIT_CONSTRUCTORS(Bytecodes); | 367 DISALLOW_IMPLICIT_CONSTRUCTORS(Bytecodes); |
| 349 }; | 368 }; |
| 350 | 369 |
| 351 std::ostream& operator<<(std::ostream& os, const Bytecode& bytecode); | 370 std::ostream& operator<<(std::ostream& os, const Bytecode& bytecode); |
| 352 std::ostream& operator<<(std::ostream& os, const OperandType& operand_type); | 371 std::ostream& operator<<(std::ostream& os, const OperandType& operand_type); |
| 353 std::ostream& operator<<(std::ostream& os, const OperandSize& operand_type); | 372 std::ostream& operator<<(std::ostream& os, const OperandSize& operand_type); |
| 354 | 373 |
| 355 } // namespace interpreter | 374 } // namespace interpreter |
| 356 } // namespace internal | 375 } // namespace internal |
| 357 } // namespace v8 | 376 } // namespace v8 |
| 358 | 377 |
| 359 #endif // V8_INTERPRETER_BYTECODES_H_ | 378 #endif // V8_INTERPRETER_BYTECODES_H_ |
| OLD | NEW |