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 // TODO(jochen): Remove this after the setting is turned on globally. | 5 // TODO(jochen): Remove this after the setting is turned on globally. |
6 #define V8_IMMINENT_DEPRECATION_WARNINGS | 6 #define V8_IMMINENT_DEPRECATION_WARNINGS |
7 | 7 |
8 #include "src/compiler/gap-resolver.h" | 8 #include "src/compiler/gap-resolver.h" |
9 | 9 |
10 #include "src/base/utils/random-number-generator.h" | 10 #include "src/base/utils/random-number-generator.h" |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 | 129 |
130 OperandMap values_; | 130 OperandMap values_; |
131 }; | 131 }; |
132 | 132 |
133 | 133 |
134 // An abstract interpreter for moves, swaps and parallel moves. | 134 // An abstract interpreter for moves, swaps and parallel moves. |
135 class MoveInterpreter : public GapResolver::Assembler { | 135 class MoveInterpreter : public GapResolver::Assembler { |
136 public: | 136 public: |
137 explicit MoveInterpreter(Zone* zone) : zone_(zone) {} | 137 explicit MoveInterpreter(Zone* zone) : zone_(zone) {} |
138 | 138 |
139 virtual void AssembleMove(InstructionOperand* source, | 139 void AssembleMove(InstructionOperand* source, |
140 InstructionOperand* destination) override { | 140 InstructionOperand* destination) override { |
141 ParallelMove* moves = new (zone_) ParallelMove(zone_); | 141 ParallelMove* moves = new (zone_) ParallelMove(zone_); |
142 moves->AddMove(*source, *destination); | 142 moves->AddMove(*source, *destination); |
143 state_.ExecuteInParallel(moves); | 143 state_.ExecuteInParallel(moves); |
144 } | 144 } |
145 | 145 |
146 virtual void AssembleSwap(InstructionOperand* source, | 146 void AssembleSwap(InstructionOperand* source, |
147 InstructionOperand* destination) override { | 147 InstructionOperand* destination) override { |
148 ParallelMove* moves = new (zone_) ParallelMove(zone_); | 148 ParallelMove* moves = new (zone_) ParallelMove(zone_); |
149 moves->AddMove(*source, *destination); | 149 moves->AddMove(*source, *destination); |
150 moves->AddMove(*destination, *source); | 150 moves->AddMove(*destination, *source); |
151 state_.ExecuteInParallel(moves); | 151 state_.ExecuteInParallel(moves); |
152 } | 152 } |
153 | 153 |
154 void AssembleParallelMove(const ParallelMove* moves) { | 154 void AssembleParallelMove(const ParallelMove* moves) { |
155 state_.ExecuteInParallel(moves); | 155 state_.ExecuteInParallel(moves); |
156 } | 156 } |
157 | 157 |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
253 resolver.Resolve(pm); | 253 resolver.Resolve(pm); |
254 | 254 |
255 CHECK(mi1.state() == mi2.state()); | 255 CHECK(mi1.state() == mi2.state()); |
256 } | 256 } |
257 } | 257 } |
258 } | 258 } |
259 | 259 |
260 } // namespace compiler | 260 } // namespace compiler |
261 } // namespace internal | 261 } // namespace internal |
262 } // namespace v8 | 262 } // namespace v8 |
OLD | NEW |