Lines Matching defs:source
2 // Use of this source code is governed by a BSD-style license that can be
23 return !move->IsEliminated() && move->source().InterferesWith(destination);
35 const LocationOperand& src_loc = LocationOperand::cast(move->source());
139 // call to PerformMove could change any source operand in the move graph.
145 InstructionOperand source = move->source();
146 DCHECK(!source.IsInvalid()); // Or else it will look eliminated.
154 // Any unperformed, unpending move with a source the same as this one's
160 if (other->source().InterferesWith(destination)) {
162 LocationOperand::cast(other->source()).representation() >
169 if (!other->source().InterferesWith(destination)) continue;
171 // Though PerformMove can change any source operand in the move graph,
173 // miss any). Assume there is a non-blocking move with source A and this
174 // move is blocked on source B and there is a swap of A and B. Then A and
184 // This move's source may have changed due to swaps to resolve cycles and so
186 source = move->source();
187 if (source.EqualsCanonicalized(destination)) {
203 assembler_->AssembleMove(&source, &destination);
208 // Ensure source is a register or both are stack slots, to limit swap cases.
209 if (source.IsStackSlot() || source.IsFPStackSlot()) {
210 std::swap(source, destination);
212 assembler_->AssembleSwap(&source, &destination);
215 // Update outstanding moves whose source may now have been moved.
221 if (source.InterferesWith(other->source())) {
222 if (LocationOperand::cast(other->source()).representation() >
225 if (!source.InterferesWith(other->source())) continue;
228 } else if (destination.InterferesWith(other->source())) {
229 if (LocationOperand::cast(other->source()).representation() >
232 if (!destination.InterferesWith(other->source())) continue;
234 other->set_source(source);
240 if (source.EqualsCanonicalized(other->source())) {
242 } else if (destination.EqualsCanonicalized(other->source())) {
243 other->set_source(source);