Lines Matching full:destination
53 // the same as the destination, the destination is ignored and
75 // Clear this move's destination to indicate a pending move. The actual
76 // destination is saved on the side.
78 LOperand* destination = moves_[index].destination();
83 // as this one's destination blocks this one so recursively perform all
87 if (other_move.Blocks(destination) && !other_move.IsPending()) {
93 // not be swapped). Since this move's destination is B and there is
102 // pending, so restore its destination.
103 moves_[index].set_destination(destination);
107 if (moves_[index].source()->Equals(destination)) {
117 if (other_move.Blocks(destination)) {
133 LOperand* destination = move.destination();
134 if (destination->IsRegister()) ++destination_uses_[destination->index()];
147 LOperand* destination = moves_[index].destination();
148 if (destination->IsRegister()) {
149 --destination_uses_[destination->index()];
150 DCHECK(destination_uses_[destination->index()] >= 0);
197 // No operand should be the destination for more than one move.
199 LOperand* destination = moves_[i].destination();
201 SLOW_DCHECK(!destination->Equals(moves_[j].destination()));
260 LOperand* destination = moves_[index].destination();
262 EnsureRestored(destination);
264 // Dispatch on the source and destination operand kinds. Not all
267 DCHECK(destination->IsRegister() || destination->IsStackSlot());
269 Operand dst = cgen_->ToOperand(destination);
273 DCHECK(destination->IsRegister() || destination->IsStackSlot());
275 if (destination->IsRegister()) {
276 Register dst = cgen_->ToRegister(destination);
282 Operand dst = cgen_->ToOperand(destination);
289 if (destination->IsRegister()) {
290 Register dst = cgen_->ToRegister(destination);
298 } else if (destination->IsDoubleRegister()) {
303 XMMRegister dst = cgen_->ToDoubleRegister(destination);
313 DCHECK(destination->IsStackSlot());
314 Operand dst = cgen_->ToOperand(destination);
328 if (destination->IsDoubleRegister()) {
329 XMMRegister dst = cgen_->ToDoubleRegister(destination);
332 DCHECK(destination->IsDoubleStackSlot());
333 Operand dst = cgen_->ToOperand(destination);
337 DCHECK(destination->IsDoubleRegister() ||
338 destination->IsDoubleStackSlot());
340 if (destination->IsDoubleRegister()) {
341 XMMRegister dst = cgen_->ToDoubleRegister(destination);
345 Operand dst = cgen_->ToOperand(destination);
359 LOperand* destination = moves_[index].destination();
361 EnsureRestored(destination);
363 // Dispatch on the source and destination operand kinds. Not all
365 if (source->IsRegister() && destination->IsRegister()) {
368 Register dst = cgen_->ToRegister(destination);
373 } else if ((source->IsRegister() && destination->IsStackSlot()) ||
374 (source->IsStackSlot() && destination->IsRegister())) {
380 cgen_->ToRegister(source->IsRegister() ? source : destination);
382 cgen_->ToOperand(source->IsRegister() ? destination : source);
393 } else if (source->IsStackSlot() && destination->IsStackSlot()) {
399 Operand dst = cgen_->ToOperand(destination);
413 } else if (source->IsDoubleRegister() && destination->IsDoubleRegister()) {
417 XMMRegister dst = cgen_->ToDoubleRegister(destination);
421 } else if (source->IsDoubleRegister() || destination->IsDoubleRegister()) {
424 DCHECK(source->IsDoubleStackSlot() || destination->IsDoubleStackSlot());
427 : destination);
429 cgen_->ToOperand(source->IsDoubleRegister() ? destination : source);
433 } else if (source->IsDoubleStackSlot() && destination->IsDoubleStackSlot()) {
440 Operand dst0 = cgen_->ToOperand(destination);
441 Operand dst1 = cgen_->HighOperand(destination);
442 __ movsd(xmm0, dst0); // Save destination in xmm0.
443 __ mov(tmp, src0); // Then use tmp to copy source to destination.
454 // The swap of source and destination has executed a move from source to
455 // destination.
459 // this move's source or destination needs to have their source
464 moves_[i].set_source(destination);
465 } else if (other_move.Blocks(destination)) {
472 if (source->IsRegister() && destination->IsRegister()) {
474 source_uses_[source->index()] = source_uses_[destination->index()];
475 source_uses_[destination->index()] = temp;
477 // We don't have use counts for non-register operands like destination.
480 } else if (destination->IsRegister()) {
481 source_uses_[destination->index()] = CountSourceUses(destination);