| 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_UNITTESTS_INSTRUCTION_SELECTOR_UNITTEST_H_ | 5 #ifndef V8_COMPILER_UNITTESTS_INSTRUCTION_SELECTOR_UNITTEST_H_ |
| 6 #define V8_COMPILER_UNITTESTS_INSTRUCTION_SELECTOR_UNITTEST_H_ | 6 #define V8_COMPILER_UNITTESTS_INSTRUCTION_SELECTOR_UNITTEST_H_ |
| 7 | 7 |
| 8 #include <deque> | 8 #include <deque> |
| 9 #include <ostream> // NOLINT(readability/streams) | 9 #include <set> |
| 10 | 10 |
| 11 #include "src/base/utils/random-number-generator.h" | 11 #include "src/base/utils/random-number-generator.h" |
| 12 #include "src/compiler/instruction-selector.h" | 12 #include "src/compiler/instruction-selector.h" |
| 13 #include "src/compiler/raw-machine-assembler.h" | 13 #include "src/compiler/raw-machine-assembler.h" |
| 14 #include "test/compiler-unittests/compiler-unittests.h" | 14 #include "test/compiler-unittests/compiler-unittests.h" |
| 15 | 15 |
| 16 namespace v8 { | 16 namespace v8 { |
| 17 namespace internal { | 17 namespace internal { |
| 18 namespace compiler { | 18 namespace compiler { |
| 19 | 19 |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 }; | 109 }; |
| 110 | 110 |
| 111 class Stream V8_FINAL { | 111 class Stream V8_FINAL { |
| 112 public: | 112 public: |
| 113 size_t size() const { return instructions_.size(); } | 113 size_t size() const { return instructions_.size(); } |
| 114 const Instruction* operator[](size_t index) const { | 114 const Instruction* operator[](size_t index) const { |
| 115 EXPECT_LT(index, size()); | 115 EXPECT_LT(index, size()); |
| 116 return instructions_[index]; | 116 return instructions_[index]; |
| 117 } | 117 } |
| 118 | 118 |
| 119 bool IsDouble(int virtual_register) const { |
| 120 return doubles_.find(virtual_register) != doubles_.end(); |
| 121 } |
| 122 |
| 123 bool IsReference(int virtual_register) const { |
| 124 return references_.find(virtual_register) != references_.end(); |
| 125 } |
| 126 |
| 119 int32_t ToInt32(const InstructionOperand* operand) const { | 127 int32_t ToInt32(const InstructionOperand* operand) const { |
| 120 return ToConstant(operand).ToInt32(); | 128 return ToConstant(operand).ToInt32(); |
| 121 } | 129 } |
| 122 | 130 |
| 123 int ToVreg(const InstructionOperand* operand) const { | 131 int ToVreg(const InstructionOperand* operand) const { |
| 124 EXPECT_EQ(InstructionOperand::UNALLOCATED, operand->kind()); | 132 EXPECT_EQ(InstructionOperand::UNALLOCATED, operand->kind()); |
| 125 return UnallocatedOperand::cast(operand)->virtual_register(); | 133 return UnallocatedOperand::cast(operand)->virtual_register(); |
| 126 } | 134 } |
| 127 | 135 |
| 128 private: | 136 private: |
| (...skipping 11 matching lines...) Expand all Loading... |
| 140 return i->second; | 148 return i->second; |
| 141 } | 149 } |
| 142 | 150 |
| 143 friend class StreamBuilder; | 151 friend class StreamBuilder; |
| 144 | 152 |
| 145 typedef std::map<int, Constant> ConstantMap; | 153 typedef std::map<int, Constant> ConstantMap; |
| 146 | 154 |
| 147 ConstantMap constants_; | 155 ConstantMap constants_; |
| 148 ConstantMap immediates_; | 156 ConstantMap immediates_; |
| 149 std::deque<Instruction*> instructions_; | 157 std::deque<Instruction*> instructions_; |
| 158 std::set<int> doubles_; |
| 159 std::set<int> references_; |
| 150 }; | 160 }; |
| 151 | 161 |
| 152 base::RandomNumberGenerator rng_; | 162 base::RandomNumberGenerator rng_; |
| 153 }; | 163 }; |
| 154 | 164 |
| 155 | 165 |
| 156 template <typename T> | 166 template <typename T> |
| 157 class InstructionSelectorTestWithParam | 167 class InstructionSelectorTestWithParam |
| 158 : public InstructionSelectorTest, | 168 : public InstructionSelectorTest, |
| 159 public ::testing::WithParamInterface<T> {}; | 169 public ::testing::WithParamInterface<T> {}; |
| 160 | 170 |
| 161 } // namespace compiler | 171 } // namespace compiler |
| 162 } // namespace internal | 172 } // namespace internal |
| 163 } // namespace v8 | 173 } // namespace v8 |
| 164 | 174 |
| 165 #endif // V8_COMPILER_UNITTESTS_INSTRUCTION_SELECTOR_UNITTEST_H_ | 175 #endif // V8_COMPILER_UNITTESTS_INSTRUCTION_SELECTOR_UNITTEST_H_ |
| OLD | NEW |