Lines Matching defs:source
2 // Redistribution and use in source and binary forms, with or without
6 // * Redistributions of source code must retain the above copyright
52 if (!move.IsEliminated() && !move.source()->IsConstantOperand()) {
60 ASSERT(moves_[i].source()->IsConstantOperand());
71 // moves to perform, ignoring any move that is redundant (the source is
88 // which means that a call to PerformMove could change any source operand
97 ASSERT(moves_[index].source() != NULL); // Or else it will look eliminated.
102 // dependencies. Any unperformed, unpending move with a source the same
108 // Though PerformMove can change any source operand in the move graph,
110 // not miss any). Assume there is a non-blocking move with source A
111 // and this move is blocked on source B and there is a swap of A and
125 // This move's source may have changed due to swaps to resolve cycles and
127 if (moves_[index].source()->Equals(destination)) {
166 LOperand* source = moves_[index].source();
169 // Dispatch on the source and destination operand kinds. Not all
171 if (source->IsRegister()) {
172 Register src = cgen_->ToRegister(source);
182 } else if (source->IsStackSlot()) {
183 Operand src = cgen_->ToOperand(source);
194 } else if (source->IsConstantOperand()) {
195 LConstantOperand* constant_source = LConstantOperand::cast(source);
216 } else if (source->IsDoubleRegister()) {
217 XMMRegister src = cgen_->ToDoubleRegister(source);
224 } else if (source->IsDoubleStackSlot()) {
225 Operand src = cgen_->ToOperand(source);
242 LOperand* source = moves_[index].source();
245 // Dispatch on the source and destination operand kinds. Not all
247 if (source->IsRegister() && destination->IsRegister()) {
249 Register src = cgen_->ToRegister(source);
253 } else if ((source->IsRegister() && destination->IsStackSlot()) ||
254 (source->IsStackSlot() && destination->IsRegister())) {
257 cgen_->ToRegister(source->IsRegister() ? source : destination);
259 cgen_->ToOperand(source->IsRegister() ? destination : source);
264 } else if ((source->IsStackSlot() && destination->IsStackSlot()) ||
265 (source->IsDoubleStackSlot() && destination->IsDoubleStackSlot())) {
267 Operand src = cgen_->ToOperand(source);
274 } else if (source->IsDoubleRegister() && destination->IsDoubleRegister()) {
276 XMMRegister source_reg = cgen_->ToDoubleRegister(source);
282 } else if (source->IsDoubleRegister() || destination->IsDoubleRegister()) {
284 ASSERT((source->IsDoubleRegister() && destination->IsDoubleStackSlot()) ||
285 (source->IsDoubleStackSlot() && destination->IsDoubleRegister()));
286 XMMRegister reg = cgen_->ToDoubleRegister(source->IsDoubleRegister()
287 ? source
289 LOperand* other = source->IsDoubleRegister() ? destination : source;
301 // The swap of source and destination has executed a move from source to
305 // Any unperformed (including pending) move with a source of either
306 // this move's source or destination needs to have their source
310 if (other_move.Blocks(source)) {
313 moves_[i].set_source(source);