anchor.diff:               (smash-r8)
                (emit exit-label)
                (setf *stack-values* (copy-stack-values stack-slots)
  -                   *r8-value* (if (eql *for-value* :multiple)
  +                   *r8-value* (if (member *for-value* '(:multiple :tail))
                                     :multiple
                                     (list (gensym)))))
               ((/= (block-information-count info) 0)
  
positive.code:       (ecase (cdr b)
          (:unwind-protect ;; Unwind-protect cleanup function.
           (case *for-value*
             (:multiple
              ;; Save all MV-related registers on the stacks.
              (emit `(sys.lap-x86:mov64 (:lsp -8) nil)
                    `(sys.lap-x86:mov64 (:lsp -16) nil)
  
negative.code:     ((null *for-value*)
       ;; Not for value
       (cg-progn form))
      (t (let ((tag (let ((*for-value* (case *for-value*
                                         (:predicate t)
                                         (:tail :multiple)
                                         (t *for-value*))))
                      (cg-form (second form)))))
           (smash-r8)
           (when (eql tag :multiple)
  