anchor.diff:                *newspace-paging-bits* *oldspace-paging-bits*
                 *newspace-offset* 0
                 *static-mark-bit* (logxor *static-mark-bit* 1))
  -       ;; Transport the major root, NIL.
  -       (gc-object 'nil)
  -       ;; Transport registers, the data stack and the binding stack.
  -       (transport-registers-and-stack 1 2 3 4 5)
  +       ;; Scavenge NIL to start things off.
  +       (scavenge-object 'nil)
  +       ;; And scavenge the current registers and stacks.
  +       (scavenge-current-stack-group 1 2 3 4 5)
  +       ;; Now do the bulk of the work by scavenging newspace.
  +       (scavenge-newspace)
          ;; Make oldspace inaccessible.
          (setf (ldb (byte 2 0) (memref-unsigned-byte-32 *oldspace-paging-bits* 0)) 0)
          ;; Flush TLB.
  
positive.code:   (declare (ignore object prefix))
    `(progn ,@body))
  
  (defun scan-object (object transportp)
    (case (%tag-field object)
      (0  (scan-error object transportp)) ; even-fixnum
      (1  (scan-cons object transportp))
      (2  (scan-symbol object transportp))
      (3  (scan-array-header object transportp))
      (4  (scan-error object transportp)) ; unused
      (5  (scan-error object transportp)) ; unused
      (6  (scan-error object transportp)) ; unused
      (7  (scan-array-like object transportp))
      (8  (scan-error object transportp)) ; odd-fixnum
      (9  (scan-error object transportp)) ; unused
      (10 (scan-error object transportp)) ; character
      (11 (scan-error object transportp)) ; unused
      (12 (scan-function object transportp))
      (13 (scan-error object transportp)) ; unused
      (14 (scan-error object transportp)) ; unbound-value
      (15 (scan-error object transportp))))
  
  (defun scan-and-transport (object)
    (with-gc-trace (object #\d)
      (scan-object object t)))
  
  (defun mark-static-object (object)
    (let ((address (ash (%pointer-field object) 4)))
  
negative.code: (defun static-pointer-p (address)
    (< address #x80000000))
  
  (declaim (inline immediatep))
  (defun immediatep (object)
    "Return true if OBJECT is an immediate object."
    (case (%tag-field object)
      ((#.+tag-even-fixnum+ #.+tag-odd-fixnum+
        #.+tag-character+ #.+tag-single-float+
        #.+tag-unbound-value+)
       t)
      (t nil)))
  
  (defmacro with-gc-trace ((object prefix) &body body)
    (let ((object-sym (gensym))
  