| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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_COMPILER_INSTRUCTION_H_ | 5 #ifndef V8_COMPILER_INSTRUCTION_H_ |
| 6 #define V8_COMPILER_INSTRUCTION_H_ | 6 #define V8_COMPILER_INSTRUCTION_H_ |
| 7 | 7 |
| 8 #include <deque> | 8 #include <deque> |
| 9 #include <iosfwd> | 9 #include <iosfwd> |
| 10 #include <map> | 10 #include <map> |
| 11 #include <set> | 11 #include <set> |
| 12 | 12 |
| 13 #include "src/base/compiler-specific.h" | 13 #include "src/base/compiler-specific.h" |
| 14 #include "src/compiler/common-operator.h" | 14 #include "src/compiler/common-operator.h" |
| 15 #include "src/compiler/frame.h" | 15 #include "src/compiler/frame.h" |
| 16 #include "src/compiler/instruction-codes.h" | 16 #include "src/compiler/instruction-codes.h" |
| 17 #include "src/compiler/opcodes.h" | 17 #include "src/compiler/opcodes.h" |
| 18 #include "src/compiler/source-position.h" | 18 #include "src/compiler/source-position.h" |
| 19 #include "src/globals.h" | 19 #include "src/globals.h" |
| 20 #include "src/macro-assembler.h" | 20 #include "src/macro-assembler.h" |
| 21 #include "src/register-configuration.h" | 21 #include "src/register-configuration.h" |
| 22 #include "src/zone/zone-allocator.h" | 22 #include "src/zone/zone-allocator.h" |
| 23 #include "src/zone/zone-chunk-list.h" |
| 23 | 24 |
| 24 namespace v8 { | 25 namespace v8 { |
| 25 namespace internal { | 26 namespace internal { |
| 26 namespace compiler { | 27 namespace compiler { |
| 27 | 28 |
| 28 // Forward declarations. | 29 // Forward declarations. |
| 29 class Schedule; | 30 class Schedule; |
| 30 | 31 |
| 31 class V8_EXPORT_PRIVATE InstructionOperand { | 32 class V8_EXPORT_PRIVATE InstructionOperand { |
| 32 public: | 33 public: |
| (...skipping 685 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 718 | 719 |
| 719 struct PrintableMoveOperands { | 720 struct PrintableMoveOperands { |
| 720 const RegisterConfiguration* register_configuration_; | 721 const RegisterConfiguration* register_configuration_; |
| 721 const MoveOperands* move_operands_; | 722 const MoveOperands* move_operands_; |
| 722 }; | 723 }; |
| 723 | 724 |
| 724 | 725 |
| 725 std::ostream& operator<<(std::ostream& os, const PrintableMoveOperands& mo); | 726 std::ostream& operator<<(std::ostream& os, const PrintableMoveOperands& mo); |
| 726 | 727 |
| 727 class V8_EXPORT_PRIVATE ParallelMove final | 728 class V8_EXPORT_PRIVATE ParallelMove final |
| 728 : public NON_EXPORTED_BASE(ZoneVector<MoveOperands *>), | 729 : public NON_EXPORTED_BASE(ZoneVector<MoveOperands*>) { |
| 729 public NON_EXPORTED_BASE(ZoneObject) { | |
| 730 public: | 730 public: |
| 731 explicit ParallelMove(Zone* zone) : ZoneVector<MoveOperands*>(zone) { | 731 explicit ParallelMove(Zone* zone) : ZoneVector<MoveOperands*>(zone) { |
| 732 reserve(4); | 732 reserve(4); |
| 733 } | 733 } |
| 734 | 734 |
| 735 MoveOperands* AddMove(const InstructionOperand& from, | 735 MoveOperands* AddMove(const InstructionOperand& from, |
| 736 const InstructionOperand& to) { | 736 const InstructionOperand& to) { |
| 737 Zone* zone = get_allocator().zone(); | 737 Zone* zone = get_allocator().zone(); |
| 738 return AddMove(from, to, zone); | 738 return AddMove(from, to, zone); |
| 739 } | 739 } |
| (...skipping 20 matching lines...) Expand all Loading... |
| 760 | 760 |
| 761 | 761 |
| 762 struct PrintableParallelMove { | 762 struct PrintableParallelMove { |
| 763 const RegisterConfiguration* register_configuration_; | 763 const RegisterConfiguration* register_configuration_; |
| 764 const ParallelMove* parallel_move_; | 764 const ParallelMove* parallel_move_; |
| 765 }; | 765 }; |
| 766 | 766 |
| 767 | 767 |
| 768 std::ostream& operator<<(std::ostream& os, const PrintableParallelMove& pm); | 768 std::ostream& operator<<(std::ostream& os, const PrintableParallelMove& pm); |
| 769 | 769 |
| 770 | |
| 771 class ReferenceMap final : public ZoneObject { | 770 class ReferenceMap final : public ZoneObject { |
| 772 public: | 771 public: |
| 773 explicit ReferenceMap(Zone* zone) | 772 explicit ReferenceMap(Zone* zone) |
| 774 : reference_operands_(8, zone), instruction_position_(-1) {} | 773 : reference_operands_(8, zone), instruction_position_(-1) {} |
| 775 | 774 |
| 776 const ZoneVector<InstructionOperand>& reference_operands() const { | 775 const ZoneVector<InstructionOperand>& reference_operands() const { |
| 777 return reference_operands_; | 776 return reference_operands_; |
| 778 } | 777 } |
| 779 int instruction_position() const { return instruction_position_; } | 778 int instruction_position() const { return instruction_position_; } |
| 780 | 779 |
| (...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1141 StateValueDescriptor(StateValueKind kind, Zone* zone, MachineType type, | 1140 StateValueDescriptor(StateValueKind kind, Zone* zone, MachineType type, |
| 1142 size_t id) | 1141 size_t id) |
| 1143 : kind_(kind), type_(type), id_(id), fields_(zone) {} | 1142 : kind_(kind), type_(type), id_(id), fields_(zone) {} |
| 1144 | 1143 |
| 1145 StateValueKind kind_; | 1144 StateValueKind kind_; |
| 1146 MachineType type_; | 1145 MachineType type_; |
| 1147 size_t id_; | 1146 size_t id_; |
| 1148 ZoneVector<StateValueDescriptor> fields_; | 1147 ZoneVector<StateValueDescriptor> fields_; |
| 1149 }; | 1148 }; |
| 1150 | 1149 |
| 1151 | |
| 1152 class FrameStateDescriptor : public ZoneObject { | 1150 class FrameStateDescriptor : public ZoneObject { |
| 1153 public: | 1151 public: |
| 1154 FrameStateDescriptor(Zone* zone, FrameStateType type, BailoutId bailout_id, | 1152 FrameStateDescriptor(Zone* zone, FrameStateType type, BailoutId bailout_id, |
| 1155 OutputFrameStateCombine state_combine, | 1153 OutputFrameStateCombine state_combine, |
| 1156 size_t parameters_count, size_t locals_count, | 1154 size_t parameters_count, size_t locals_count, |
| 1157 size_t stack_count, | 1155 size_t stack_count, |
| 1158 MaybeHandle<SharedFunctionInfo> shared_info, | 1156 MaybeHandle<SharedFunctionInfo> shared_info, |
| 1159 FrameStateDescriptor* outer_state = nullptr); | 1157 FrameStateDescriptor* outer_state = nullptr); |
| 1160 | 1158 |
| 1161 FrameStateType type() const { return type_; } | 1159 FrameStateType type() const { return type_; } |
| (...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1536 }; | 1534 }; |
| 1537 | 1535 |
| 1538 V8_EXPORT_PRIVATE std::ostream& operator<<( | 1536 V8_EXPORT_PRIVATE std::ostream& operator<<( |
| 1539 std::ostream& os, const PrintableInstructionSequence& code); | 1537 std::ostream& os, const PrintableInstructionSequence& code); |
| 1540 | 1538 |
| 1541 } // namespace compiler | 1539 } // namespace compiler |
| 1542 } // namespace internal | 1540 } // namespace internal |
| 1543 } // namespace v8 | 1541 } // namespace v8 |
| 1544 | 1542 |
| 1545 #endif // V8_COMPILER_INSTRUCTION_H_ | 1543 #endif // V8_COMPILER_INSTRUCTION_H_ |
| OLD | NEW |