Home | History | Annotate | Download | only in x64

Lines Matching defs:source

2 // Use of this source code is governed by a BSD-style license that can be
28 if (!move.IsEliminated() && !move.source()->IsConstantOperand()) {
36 DCHECK(moves_[i].source()->IsConstantOperand());
47 // moves to perform, ignoring any move that is redundant (the source is
64 // which means that a call to PerformMove could change any source operand
73 DCHECK(moves_[index].source() != NULL); // Or else it will look eliminated.
78 // dependencies. Any unperformed, unpending move with a source the same
84 // Though PerformMove can change any source operand in the move graph,
86 // not miss any). Assume there is a non-blocking move with source A
87 // and this move is blocked on source B and there is a swap of A and
101 // This move's source may have changed due to swaps to resolve cycles and
103 if (moves_[index].source()->Equals(destination)) {
142 LOperand* source = moves_[index].source();
145 // Dispatch on the source and destination operand kinds. Not all
147 if (source->IsRegister()) {
148 Register src = cgen_->ToRegister(source);
158 } else if (source->IsStackSlot()) {
159 Operand src = cgen_->ToOperand(source);
170 } else if (source->IsConstantOperand()) {
171 LConstantOperand* constant_source = LConstantOperand::cast(source);
212 } else if (source->IsDoubleRegister()) {
213 XMMRegister src = cgen_->ToDoubleRegister(source);
220 } else if (source->IsDoubleStackSlot()) {
221 Operand src = cgen_->ToOperand(source);
238 LOperand* source = moves_[index].source();
241 // Dispatch on the source and destination operand kinds. Not all
243 if (source->IsRegister() && destination->IsRegister()) {
245 Register src = cgen_->ToRegister(source);
251 } else if ((source->IsRegister() && destination->IsStackSlot()) ||
252 (source->IsStackSlot() && destination->IsRegister())) {
255 cgen_->ToRegister(source->IsRegister() ? source : destination);
257 cgen_->ToOperand(source->IsRegister() ? destination : source);
262 } else if ((source->IsStackSlot() && destination->IsStackSlot()) ||
263 (source->IsDoubleStackSlot() && destination->IsDoubleStackSlot())) {
265 Operand src = cgen_->ToOperand(source);
272 } else if (source->IsDoubleRegister() && destination->IsDoubleRegister()) {
274 XMMRegister source_reg = cgen_->ToDoubleRegister(source);
280 } else if (source->IsDoubleRegister() || destination->IsDoubleRegister()) {
282 DCHECK((source->IsDoubleRegister() && destination->IsDoubleStackSlot()) ||
283 (source->IsDoubleStackSlot() && destination->IsDoubleRegister()));
284 XMMRegister reg = cgen_->ToDoubleRegister(source->IsDoubleRegister()
285 ? source
287 LOperand* other = source->IsDoubleRegister() ? destination : source;
299 // The swap of source and destination has executed a move from source to
303 // Any unperformed (including pending) move with a source of either
304 // this move's source or destination needs to have their source
308 if (other_move.Blocks(source)) {
311 moves_[i].set_source(source);