anchor.diff:             (return))
            (psetf return-address (memref-unsigned-byte-64 frame-pointer 1)
                   stack-pointer (+ frame-pointer 16)
  -                frame-pointer (memref-unsigned-byte-64 frame-pointer 0))))))
  +                frame-pointer (memref-unsigned-byte-64 frame-pointer 0)))))
  +  (when *gc-debug-scavenge-stack* (mumble "Done scav stack.")))
   
   (defun scan-stack-group (object)
     ;; Always scavenge the name.
  
positive.code:          ;; Scan incoming arguments.
           (when incoming-arguments
             ;; Stored as fixnum on the stack.
             (let* ((n-args (if framep
                                (memref-t frame-pointer (- -1 incoming-arguments))
                                (memref-t stack-pointer incoming-arguments)))
                    (n-values (max 0 (- n-args 5))))
               ;; There are N-VALUES values above the return address.
               (if framep
                   (dotimes (slot n-values)
                     (setf (memref-t frame-pointer (+ 2 slot))
                           (scavenge-object (memref-t frame-pointer (+ 2 slot)))))
                   (dotimes (slot n-values)
                     (setf (memref-t stack-pointer (+ 1 layout-length slot))
                           (scavenge-object (memref-t stack-pointer (+ 1 layout-length slot))))))))
           ;; Stop after seeing a zerop frame pointer.
  
negative.code:          (dotimes (slot layout-length)
             (multiple-value-bind (offset bit)
                 (%truncate slot 8) ; ### FIXME: compiler refuses to inline truncate.
               (when *gc-debug-scavenge-stack*
                 (mumble-hex slot "ss: ")
                 (mumble-hex offset " ")
                 (mumble-hex bit ":")
                 (mumble-hex (memref-unsigned-byte-8 layout-address offset) "  " t))
               (when (logbitp bit (memref-unsigned-byte-8 layout-address offset))
                 (cond (framep
                        (when *gc-debug-scavenge-stack*
                          (mumble-hex (- -1 slot) "Scav stack slot ")
                          (mumble-hex (lisp-object-address (memref-t frame-pointer (- -1 slot))) "  " t))
                        (setf (memref-t frame-pointer (- -1 slot))
                              (scavenge-object (memref-t frame-pointer (- -1 slot)))))
                       (t
                        (when *gc-debug-scavenge-stack*
                          (mumble-hex slot "Scav no-frame stack slot ")
                          (mumble-hex (lisp-object-address (memref-t stack-pointer slot)) "  " t))
                        (setf (memref-t stack-pointer slot)
  