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 643 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
654 | 654 |
655 private: | 655 private: |
656 DISALLOW_IMPLICIT_CONSTRUCTORS(Bytecodes); | 656 DISALLOW_IMPLICIT_CONSTRUCTORS(Bytecodes); |
657 }; | 657 }; |
658 | 658 |
659 class CreateObjectLiteralFlags { | 659 class CreateObjectLiteralFlags { |
660 public: | 660 public: |
661 class FlagsBits : public BitField8<int, 0, 3> {}; | 661 class FlagsBits : public BitField8<int, 0, 3> {}; |
662 class FastClonePropertiesCountBits | 662 class FastClonePropertiesCountBits |
663 : public BitField8<int, FlagsBits::kNext, 3> {}; | 663 : public BitField8<int, FlagsBits::kNext, 3> {}; |
664 STATIC_ASSERT((FlagsBits::kMask & FastClonePropertiesCountBits::kMask) == 0); | 664 |
| 665 static uint8_t Encode(bool fast_clone_supported, int properties_count, |
| 666 int runtime_flags); |
| 667 |
| 668 private: |
| 669 DISALLOW_IMPLICIT_CONSTRUCTORS(CreateObjectLiteralFlags); |
| 670 }; |
| 671 |
| 672 class CreateClosureFlags { |
| 673 public: |
| 674 class PretenuredBit : public BitField8<bool, 0, 1> {}; |
| 675 class FastNewClosureBit : public BitField8<bool, PretenuredBit::kNext, 1> {}; |
| 676 |
| 677 static uint8_t Encode(bool pretenure, bool is_function_scope); |
| 678 |
| 679 private: |
| 680 DISALLOW_IMPLICIT_CONSTRUCTORS(CreateClosureFlags); |
665 }; | 681 }; |
666 | 682 |
667 std::ostream& operator<<(std::ostream& os, const Bytecode& bytecode); | 683 std::ostream& operator<<(std::ostream& os, const Bytecode& bytecode); |
668 std::ostream& operator<<(std::ostream& os, const AccumulatorUse& use); | 684 std::ostream& operator<<(std::ostream& os, const AccumulatorUse& use); |
669 std::ostream& operator<<(std::ostream& os, const OperandScale& operand_scale); | 685 std::ostream& operator<<(std::ostream& os, const OperandScale& operand_scale); |
670 std::ostream& operator<<(std::ostream& os, const OperandSize& operand_size); | 686 std::ostream& operator<<(std::ostream& os, const OperandSize& operand_size); |
671 std::ostream& operator<<(std::ostream& os, const OperandType& operand_type); | 687 std::ostream& operator<<(std::ostream& os, const OperandType& operand_type); |
672 | 688 |
673 } // namespace interpreter | 689 } // namespace interpreter |
674 } // namespace internal | 690 } // namespace internal |
675 } // namespace v8 | 691 } // namespace v8 |
676 | 692 |
677 #endif // V8_INTERPRETER_BYTECODES_H_ | 693 #endif // V8_INTERPRETER_BYTECODES_H_ |
OLD | NEW |