Lines Matching refs:source

2 // Use of this source code is governed by a BSD-style license that can be
29 if (!move.IsEliminated() && !move.source()->IsConstantOperand()) {
37 DCHECK(moves_[i].source()->IsConstantOperand());
48 // moves to perform, ignoring any move that is redundant (the source is
65 // which means that a call to PerformMove could change any source operand
74 DCHECK(moves_[index].source() != NULL); // Or else it will look eliminated.
79 // dependencies. Any unperformed, unpending move with a source the same
85 // Though PerformMove can change any source operand in the move graph,
87 // not miss any). Assume there is a non-blocking move with source A
88 // and this move is blocked on source B and there is a swap of A and
102 // This move's source may have changed due to swaps to resolve cycles and
104 if (moves_[index].source()->Equals(destination)) {
143 LOperand* source = moves_[index].source();
146 // Dispatch on the source and destination operand kinds. Not all
148 if (source->IsRegister()) {
149 Register src = cgen_->ToRegister(source);
159 } else if (source->IsStackSlot()) {
160 Operand src = cgen_->ToOperand(source);
171 } else if (source->IsConstantOperand()) {
172 LConstantOperand* constant_source = LConstantOperand::cast(source);
213 } else if (source->IsDoubleRegister()) {
214 XMMRegister src = cgen_->ToDoubleRegister(source);
221 } else if (source->IsDoubleStackSlot()) {
222 Operand src = cgen_->ToOperand(source);
239 LOperand* source = moves_[index].source();
242 // Dispatch on the source and destination operand kinds. Not all
244 if (source->IsRegister() && destination->IsRegister()) {
246 Register src = cgen_->ToRegister(source);
250 } else if ((source->IsRegister() && destination->IsStackSlot()) ||
251 (source->IsStackSlot() && destination->IsRegister())) {
254 cgen_->ToRegister(source->IsRegister() ? source : destination);
256 cgen_->ToOperand(source->IsRegister() ? destination : source);
261 } else if ((source->IsStackSlot() && destination->IsStackSlot()) ||
262 (source->IsDoubleStackSlot() && destination->IsDoubleStackSlot())) {
264 Operand src = cgen_->ToOperand(source);
271 } else if (source->IsDoubleRegister() && destination->IsDoubleRegister()) {
273 XMMRegister source_reg = cgen_->ToDoubleRegister(source);
279 } else if (source->IsDoubleRegister() || destination->IsDoubleRegister()) {
281 DCHECK((source->IsDoubleRegister() && destination->IsDoubleStackSlot()) ||
282 (source->IsDoubleStackSlot() && destination->IsDoubleRegister()));
283 XMMRegister reg = cgen_->ToDoubleRegister(source->IsDoubleRegister()
284 ? source
286 LOperand* other = source->IsDoubleRegister() ? destination : source;
298 // The swap of source and destination has executed a move from source to
302 // Any unperformed (including pending) move with a source of either
303 // this move's source or destination needs to have their source
307 if (other_move.Blocks(source)) {
310 moves_[i].set_source(source);