anchor.diff:         (cond ((and (typep inst 'ir:move-instruction)
                      (mergable-move-instruction-p allocator inst instruction-index))
                 (let* ((old-range (pop (allocator-active-ranges allocator)))
  -                     (new-range (pop (allocator-remaining-ranges allocator)))
  +                     (new-range (vector-pop (allocator-remaining-ranges allocator)))
                        (reg (gethash old-range (allocator-range-allocations allocator))))
                   (assert (eql (live-range-start new-range) instruction-index))
                   (unless ir::*shut-up*
  
positive.code:                   (format t "remaining ~:S~%" (allocator-remaining-ranges allocator)))
                  (activate-interval allocator new-range reg))
                ;; Shouldn't be any remaining ranges coming live on this instruction.
                (assert (or (endp (allocator-remaining-ranges allocator))
                            (not (eql (live-range-start (first (allocator-remaining-ranges allocator))) instruction-index)))))
               (t
                (update-active-intervals allocator inst instruction-index)))
         (allocate-instants allocator inst instruction-index))
  
negative.code:                        :instruction-clobbers clobbers)))))
  
  (defun build-live-ranges (allocator)
    (let ((ranges (make-array 128 :adjustable t :fill-pointer 0))
          (vreg-ranges (make-hash-table))
          (ordering (allocator-instruction-ordering allocator))
          (live-in (allocator-live-in allocator))
          (live-out (allocator-live-out allocator))
          (active-vregs '())
  