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 #include "src/base/utils/random-number-generator.h" | 5 #include "src/base/utils/random-number-generator.h" |
6 #include "src/compiler/pipeline.h" | 6 #include "src/compiler/pipeline.h" |
7 #include "test/unittests/compiler/instruction-sequence-unittest.h" | 7 #include "test/unittests/compiler/instruction-sequence-unittest.h" |
8 #include "test/unittests/test-utils.h" | 8 #include "test/unittests/test-utils.h" |
9 #include "testing/gmock/include/gmock/gmock.h" | 9 #include "testing/gmock/include/gmock/gmock.h" |
10 | 10 |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 } | 122 } |
123 completions_.push_back(completion); | 123 completions_.push_back(completion); |
124 CHECK(current_block_ != nullptr); | 124 CHECK(current_block_ != nullptr); |
125 sequence()->EndBlock(current_block_->rpo_number()); | 125 sequence()->EndBlock(current_block_->rpo_number()); |
126 current_block_ = nullptr; | 126 current_block_ = nullptr; |
127 return result; | 127 return result; |
128 } | 128 } |
129 | 129 |
130 | 130 |
131 InstructionSequenceTest::TestOperand InstructionSequenceTest::Imm(int32_t imm) { | 131 InstructionSequenceTest::TestOperand InstructionSequenceTest::Imm(int32_t imm) { |
132 int index = sequence()->AddImmediate(Constant(imm)); | 132 return TestOperand(kImmediate, imm); |
133 return TestOperand(kImmediate, index); | |
134 } | 133 } |
135 | 134 |
136 | 135 |
137 InstructionSequenceTest::VReg InstructionSequenceTest::Define( | 136 InstructionSequenceTest::VReg InstructionSequenceTest::Define( |
138 TestOperand output_op) { | 137 TestOperand output_op) { |
139 VReg vreg = NewReg(); | 138 VReg vreg = NewReg(); |
140 InstructionOperand outputs[1]{ConvertOutputOp(vreg, output_op)}; | 139 InstructionOperand outputs[1]{ConvertOutputOp(vreg, output_op)}; |
141 Emit(kArchNop, 1, outputs); | 140 Emit(kArchNop, 1, outputs); |
142 return vreg; | 141 return vreg; |
143 } | 142 } |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
350 for (size_t i = 0; i < input_size; ++i) { | 349 for (size_t i = 0; i < input_size; ++i) { |
351 mapped_inputs[i] = ConvertInputOp(inputs[i]); | 350 mapped_inputs[i] = ConvertInputOp(inputs[i]); |
352 } | 351 } |
353 return mapped_inputs; | 352 return mapped_inputs; |
354 } | 353 } |
355 | 354 |
356 | 355 |
357 InstructionOperand InstructionSequenceTest::ConvertInputOp(TestOperand op) { | 356 InstructionOperand InstructionSequenceTest::ConvertInputOp(TestOperand op) { |
358 if (op.type_ == kImmediate) { | 357 if (op.type_ == kImmediate) { |
359 CHECK_EQ(op.vreg_.value_, kNoValue); | 358 CHECK_EQ(op.vreg_.value_, kNoValue); |
360 return ImmediateOperand(op.value_); | 359 return ImmediateOperand(ImmediateOperand::INLINE, op.value_); |
361 } | 360 } |
362 CHECK_NE(op.vreg_.value_, kNoValue); | 361 CHECK_NE(op.vreg_.value_, kNoValue); |
363 switch (op.type_) { | 362 switch (op.type_) { |
364 case kNone: | 363 case kNone: |
365 return Unallocated(op, UnallocatedOperand::NONE, | 364 return Unallocated(op, UnallocatedOperand::NONE, |
366 UnallocatedOperand::USED_AT_START); | 365 UnallocatedOperand::USED_AT_START); |
367 case kUnique: | 366 case kUnique: |
368 return Unallocated(op, UnallocatedOperand::NONE); | 367 return Unallocated(op, UnallocatedOperand::NONE); |
369 case kUniqueRegister: | 368 case kUniqueRegister: |
370 return Unallocated(op, UnallocatedOperand::MUST_HAVE_REGISTER); | 369 return Unallocated(op, UnallocatedOperand::MUST_HAVE_REGISTER); |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
484 | 483 |
485 | 484 |
486 Instruction* InstructionSequenceTest::AddInstruction(Instruction* instruction) { | 485 Instruction* InstructionSequenceTest::AddInstruction(Instruction* instruction) { |
487 sequence()->AddInstruction(instruction); | 486 sequence()->AddInstruction(instruction); |
488 return instruction; | 487 return instruction; |
489 } | 488 } |
490 | 489 |
491 } // namespace compiler | 490 } // namespace compiler |
492 } // namespace internal | 491 } // namespace internal |
493 } // namespace v8 | 492 } // namespace v8 |
OLD | NEW |