Lines Matching full:scratch
72 // Eliminate the move, in case following moves need a scratch register.
264 int scratch = -1;
267 scratch = reg;
272 if (scratch == -1) {
274 scratch = if_scratch;
279 return scratch;
381 for (Location scratch : scratches_) {
382 CHECK(!loc.Equals(scratch));
402 // in the move graph. We use scratch location to resolve cycles, also
414 // resolve as (1 -> scratch) (0 -> 1) (scratch -> 0). If, by chance, '2' is
415 // used as the scratch location, the move (1 -> 2) will occur while resolving
453 // (C -> scratch) # Emit right now.
455 // (scratch -> A) # Add to pending_moves_, blocked by (A -> B).
458 Location scratch = AllocateScratchLocationFor(kind);
461 // Perform (C -> scratch)
462 move->SetDestination(scratch);
465 UpdateMoveSource(source, scratch);
466 // Add (scratch -> A).
467 AddPendingMove(scratch, destination, type);
476 // unblocked moves in the pending list can free scratch registers, so we do this
490 // Free any unblocked locations in the scratch location list.
495 Location scratch = scratches_[i];
496 // Only scratch overlapping with performed move source can be unblocked.
497 if (scratch.OverlapsWith(pending_source) && !IsBlockedByMoves(scratch)) {
513 // This is not something we must do, but we can use fewer scratch locations with
514 // this trick. For example, we can avoid using additional scratch locations for