Home | History | Annotate | Download | only in x64

Lines Matching defs:destination

72   // the same as the destination, the destination is ignored and
94 // Clear this move's destination to indicate a pending move. The actual
95 // destination is saved in a stack-allocated local. Recursion may allow
98 LOperand* destination = moves_[index].destination();
103 // as this one's destination blocks this one so recursively perform all
107 if (other_move.Blocks(destination) && !other_move.IsPending()) {
113 // not be swapped). Since this move's destination is B and there is
122 // pending, so restore its destination.
123 moves_[index].set_destination(destination);
127 if (moves_[index].source()->Equals(destination)) {
137 if (other_move.Blocks(destination)) {
151 // No operand should be the destination for more than one move.
153 LOperand* destination = moves_[i].destination();
155 SLOW_ASSERT(!destination->Equals(moves_[j].destination()));
167 LOperand* destination = moves_[index].destination();
169 // Dispatch on the source and destination operand kinds. Not all
173 if (destination->IsRegister()) {
174 Register dst = cgen_->ToRegister(destination);
177 ASSERT(destination->IsStackSlot());
178 Operand dst = cgen_->ToOperand(destination);
184 if (destination->IsRegister()) {
185 Register dst = cgen_->ToRegister(destination);
188 ASSERT(destination->IsStackSlot());
189 Operand dst = cgen_->ToOperand(destination);
196 if (destination->IsRegister()) {
197 Register dst = cgen_->ToRegister(destination);
205 } else if (destination->IsDoubleRegister()) {
208 XMMRegister dst = cgen_->ToDoubleRegister(destination);
216 ASSERT(destination->IsStackSlot());
217 Operand dst = cgen_->ToOperand(destination);
232 if (destination->IsDoubleRegister()) {
233 __ movaps(cgen_->ToDoubleRegister(destination), src);
235 ASSERT(destination->IsDoubleStackSlot());
236 __ movsd(cgen_->ToOperand(destination), src);
240 if (destination->IsDoubleRegister()) {
241 __ movsd(cgen_->ToDoubleRegister(destination), src);
243 ASSERT(destination->IsDoubleStackSlot());
245 __ movsd(cgen_->ToOperand(destination), xmm0);
257 LOperand* destination = moves_[index].destination();
259 // Dispatch on the source and destination operand kinds. Not all
261 if (source->IsRegister() && destination->IsRegister()) {
264 Register dst = cgen_->ToRegister(destination);
267 } else if ((source->IsRegister() && destination->IsStackSlot()) ||
268 (source->IsStackSlot() && destination->IsRegister())) {
271 cgen_->ToRegister(source->IsRegister() ? source : destination);
273 cgen_->ToOperand(source->IsRegister() ? destination : source);
278 } else if ((source->IsStackSlot() && destination->IsStackSlot()) ||
279 (source->IsDoubleStackSlot() && destination->IsDoubleStackSlot())) {
282 Operand dst = cgen_->ToOperand(destination);
288 } else if (source->IsDoubleRegister() && destination->IsDoubleRegister()) {
291 XMMRegister destination_reg = cgen_->ToDoubleRegister(destination);
296 } else if (source->IsDoubleRegister() || destination->IsDoubleRegister()) {
298 ASSERT((source->IsDoubleRegister() && destination->IsDoubleStackSlot()) ||
299 (source->IsDoubleStackSlot() && destination->IsDoubleRegister()));
302 : destination);
303 LOperand* other = source->IsDoubleRegister() ? destination : source;
315 // The swap of source and destination has executed a move from source to
316 // destination.
320 // this move's source or destination needs to have their source
325 moves_[i].set_source(destination);
326 } else if (other_move.Blocks(destination)) {