Home | History | Annotate | Download | only in ia32

Lines Matching defs:source

2 // Use of this source code is governed by a BSD-style license that can be
32 if (!move.IsEliminated() && !move.source()->IsConstantOperand()) {
40 DCHECK(moves_[i].source()->IsConstantOperand());
52 // moves to perform, ignoring any move that is redundant (the source is
69 // which means that a call to PerformMove could change any source operand
77 DCHECK(moves_[index].source() != NULL); // Or else it will look eliminated.
82 // dependencies. Any unperformed, unpending move with a source the same
88 // Though PerformMove can change any source operand in the move graph,
90 // not miss any). Assume there is a non-blocking move with source A
91 // and this move is blocked on source B and there is a swap of A and
105 // This move's source may have changed due to swaps to resolve cycles and
107 if (moves_[index].source()->Equals(destination)) {
130 LOperand* source = move.source();
131 if (source->IsRegister()) ++source_uses_[source->index()];
141 LOperand* source = moves_[index].source();
142 if (source->IsRegister()) {
143 --source_uses_[source->index()];
144 DCHECK(source_uses_[source->index()] >= 0);
160 if (!moves_[i].IsEliminated() && moves_[i].source()->Equals(operand)) {
259 LOperand* source = moves_[index].source();
261 EnsureRestored(source);
264 // Dispatch on the source and destination operand kinds. Not all
266 if (source->IsRegister()) {
268 Register src = cgen_->ToRegister(source);
272 } else if (source->IsStackSlot()) {
274 Operand src = cgen_->ToOperand(source);
287 } else if (source->IsConstantOperand()) {
288 LConstantOperand* constant_source = LConstantOperand::cast(source);
326 } else if (source->IsDoubleRegister()) {
327 XMMRegister src = cgen_->ToDoubleRegister(source);
336 } else if (source->IsDoubleStackSlot()) {
339 Operand src = cgen_->ToOperand(source);
358 LOperand* source = moves_[index].source();
360 EnsureRestored(source);
363 // Dispatch on the source and destination operand kinds. Not all
365 if (source->IsRegister() && destination->IsRegister()) {
367 Register src = cgen_->ToRegister(source);
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()) {
398 Operand src = cgen_->ToOperand(source);
413 } else if (source->IsDoubleRegister() && destination->IsDoubleRegister()) {
416 XMMRegister src = cgen_->ToDoubleRegister(source);
421 } else if (source->IsDoubleRegister() || destination->IsDoubleRegister()) {
424 DCHECK(source->IsDoubleStackSlot() || destination->IsDoubleStackSlot());
425 XMMRegister reg = cgen_->ToDoubleRegister(source->IsDoubleRegister()
426 ? source
429 cgen_->ToOperand(source->IsDoubleRegister() ? destination : source);
433 } else if (source->IsDoubleStackSlot() && destination->IsDoubleStackSlot()) {
438 Operand src0 = cgen_->ToOperand(source);
439 Operand src1 = cgen_->HighOperand(source);
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
458 // Any unperformed (including pending) move with a source of either
459 // this move's source or destination needs to have their source
463 if (other_move.Blocks(source)) {
466 source);
472 if (source->IsRegister() && destination->IsRegister()) {
473 int temp = source_uses_[source->index()];
474 source_uses_[source->index()] = source_uses_[destination->index()];
476 } else if (source->IsRegister()) {
479 source_uses_[source->index()] = CountSourceUses(source);