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/v8.h" | 5 #include "src/v8.h" |
6 #include "test/cctest/cctest.h" | 6 #include "test/cctest/cctest.h" |
7 | 7 |
8 #include "src/compiler/instruction.h" | 8 #include "src/compiler/instruction.h" |
9 #include "src/compiler/instruction-codes.h" | 9 #include "src/compiler/instruction-codes.h" |
10 #include "src/compiler/jump-threading.h" | 10 #include "src/compiler/jump-threading.h" |
(...skipping 14 matching lines...) Expand all Loading... |
25 current_(NULL) {} | 25 current_(NULL) {} |
26 | 26 |
27 ZoneVector<InstructionBlock*> blocks_; | 27 ZoneVector<InstructionBlock*> blocks_; |
28 InstructionSequence sequence_; | 28 InstructionSequence sequence_; |
29 RpoNumber rpo_number_; | 29 RpoNumber rpo_number_; |
30 InstructionBlock* current_; | 30 InstructionBlock* current_; |
31 | 31 |
32 int Jump(int target) { | 32 int Jump(int target) { |
33 Start(); | 33 Start(); |
34 InstructionOperand* ops[] = {UseRpo(target)}; | 34 InstructionOperand* ops[] = {UseRpo(target)}; |
35 sequence_.AddInstruction(Instruction::New(main_zone(), kArchJmp, 0, NULL, 1, | 35 sequence_.AddInstruction( |
36 ops, 0, NULL)->MarkAsControl()); | 36 Instruction::New(main_zone(), kArchJmp, 0, NULL, 1, ops, 0, NULL)); |
37 int pos = static_cast<int>(sequence_.instructions().size() - 1); | 37 int pos = static_cast<int>(sequence_.instructions().size() - 1); |
38 End(); | 38 End(); |
39 return pos; | 39 return pos; |
40 } | 40 } |
41 void Fallthru() { | 41 void Fallthru() { |
42 Start(); | 42 Start(); |
43 End(); | 43 End(); |
44 } | 44 } |
45 int Branch(int ttarget, int ftarget) { | 45 int Branch(int ttarget, int ftarget) { |
46 Start(); | 46 Start(); |
47 InstructionOperand* ops[] = {UseRpo(ttarget), UseRpo(ftarget)}; | 47 InstructionOperand* ops[] = {UseRpo(ttarget), UseRpo(ftarget)}; |
48 InstructionCode code = 119 | FlagsModeField::encode(kFlags_branch) | | 48 InstructionCode code = 119 | FlagsModeField::encode(kFlags_branch) | |
49 FlagsConditionField::encode(kEqual); | 49 FlagsConditionField::encode(kEqual); |
50 sequence_.AddInstruction(Instruction::New(main_zone(), code, 0, NULL, 2, | 50 sequence_.AddInstruction( |
51 ops, 0, NULL)->MarkAsControl()); | 51 Instruction::New(main_zone(), code, 0, NULL, 2, ops, 0, NULL)); |
52 int pos = static_cast<int>(sequence_.instructions().size() - 1); | 52 int pos = static_cast<int>(sequence_.instructions().size() - 1); |
53 End(); | 53 End(); |
54 return pos; | 54 return pos; |
55 } | 55 } |
56 void Nop() { | 56 void Nop() { |
57 Start(); | 57 Start(); |
58 sequence_.AddInstruction(Instruction::New(main_zone(), kArchNop)); | 58 sequence_.AddInstruction(Instruction::New(main_zone(), kArchNop)); |
59 } | 59 } |
60 void RedundantMoves() { | 60 void RedundantMoves() { |
61 Start(); | 61 Start(); |
(...skipping 694 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
756 for (int k = 4; k < 5; k++) assembly[k]--; | 756 for (int k = 4; k < 5; k++) assembly[k]--; |
757 } | 757 } |
758 CheckAssemblyOrder(code, 5, assembly); | 758 CheckAssemblyOrder(code, 5, assembly); |
759 } | 759 } |
760 } | 760 } |
761 } | 761 } |
762 | 762 |
763 } // namespace compiler | 763 } // namespace compiler |
764 } // namespace internal | 764 } // namespace internal |
765 } // namespace v8 | 765 } // namespace v8 |
OLD | NEW |