Home | History | Annotate | Download | only in ia32

Lines Matching refs:destination

77   // the same as the destination, the destination is ignored and
99 // Clear this move's destination to indicate a pending move. The actual
100 // destination is saved on the side.
102 LOperand* destination = moves_[index].destination();
107 // as this one's destination blocks this one so recursively perform all
111 if (other_move.Blocks(destination) && !other_move.IsPending()) {
117 // not be swapped). Since this move's destination is B and there is
126 // pending, so restore its destination.
127 moves_[index].set_destination(destination);
131 if (moves_[index].source()->Equals(destination)) {
141 if (other_move.Blocks(destination)) {
157 LOperand* destination = move.destination();
158 if (destination->IsRegister()) ++destination_uses_[destination->index()];
171 LOperand* destination = moves_[index].destination();
172 if (destination->IsRegister()) {
173 --destination_uses_[destination->index()];
174 ASSERT(destination_uses_[destination->index()] >= 0);
217 // No operand should be the destination for more than one move.
219 LOperand* destination = moves_[i].destination();
221 SLOW_ASSERT(!destination->Equals(moves_[j].destination()));
278 LOperand* destination = moves_[index].destination();
280 EnsureRestored(destination);
282 // Dispatch on the source and destination operand kinds. Not all
285 ASSERT(destination->IsRegister() || destination->IsStackSlot());
287 Operand dst = cgen_->ToOperand(destination);
291 ASSERT(destination->IsRegister() || destination->IsStackSlot());
293 if (destination->IsRegister()) {
294 Register dst = cgen_->ToRegister(destination);
300 Operand dst = cgen_->ToOperand(destination);
307 if (destination->IsRegister()) {
308 Register dst = cgen_->ToRegister(destination);
315 ASSERT(destination->IsStackSlot());
316 Operand dst = cgen_->ToOperand(destination);
328 if (destination->IsDoubleRegister()) {
329 XMMRegister dst = cgen_->ToDoubleRegister(destination);
332 ASSERT(destination->IsDoubleStackSlot());
333 Operand dst = cgen_->ToOperand(destination);
337 ASSERT(destination->IsDoubleRegister() ||
338 destination->IsDoubleStackSlot());
340 if (destination->IsDoubleRegister()) {
341 XMMRegister dst = cgen_->ToDoubleRegister(destination);
345 Operand dst = cgen_->ToOperand(destination);
360 LOperand* destination = moves_[index].destination();
362 EnsureRestored(destination);
364 // Dispatch on the source and destination operand kinds. Not all
366 if (source->IsRegister() && destination->IsRegister()) {
369 Register dst = cgen_->ToRegister(destination);
372 } else if ((source->IsRegister() && destination->IsStackSlot()) ||
373 (source->IsStackSlot() && destination->IsRegister())) {
379 cgen_->ToRegister(source->IsRegister() ? source : destination);
381 cgen_->ToOperand(source->IsRegister() ? destination : source);
392 } else if (source->IsStackSlot() && destination->IsStackSlot()) {
398 Operand dst = cgen_->ToOperand(destination);
412 } else if (source->IsDoubleRegister() && destination->IsDoubleRegister()) {
416 XMMRegister dst = cgen_->ToDoubleRegister(destination);
421 } else if (source->IsDoubleRegister() || destination->IsDoubleRegister()) {
424 ASSERT(source->IsDoubleStackSlot() || destination->IsDoubleStackSlot());
427 : destination);
429 cgen_->ToOperand(source->IsDoubleRegister() ? destination : source);
434 } else if (source->IsDoubleStackSlot() && destination->IsDoubleStackSlot()) {
441 Operand dst0 = cgen_->ToOperand(destination);
442 Operand dst1 = cgen_->HighOperand(destination);
443 __ movdbl(xmm0, dst0); // Save destination in xmm0.
444 __ mov(tmp, src0); // Then use tmp to copy source to destination.
455 // The swap of source and destination has executed a move from source to
456 // destination.
460 // this move's source or destination needs to have their source
465 moves_[i].set_source(destination);
466 } else if (other_move.Blocks(destination)) {
473 if (source->IsRegister() && destination->IsRegister()) {
475 source_uses_[source->index()] = source_uses_[destination->index()];
476 source_uses_[destination->index()] = temp;
478 // We don't have use counts for non-register operands like destination.
481 } else if (destination->IsRegister()) {
482 source_uses_[destination->index()] = CountSourceUses(destination);