anchor.diff:  (defconstant +freelist-metadata-size+ 32)
   
   (defun freelist-alloc-metadata (start end freep)
  -  (without-interrupts
  -    (with-symbol-spinlock (*store-freelist-metadata-freelist-lock*)
  -      (when (not *store-freelist-metadata-freelist*)
  -        ;; Repopulate freelist.
  -        (let* ((frame (allocate-physical-pages 1
  -                                               :mandatory-p "store freelist metadata"))
  -               (addr (+ +physical-map-base+ (ash frame 12))))
  -          (dotimes (i (truncate #x1000 +freelist-metadata-size+))
  -            (setf (sys.int::memref-unsigned-byte-64 (+ addr (* i +freelist-metadata-size+)) 0) 0
  -                  (sys.int::memref-unsigned-byte-64 (+ addr (* i +freelist-metadata-size+)) 1) 0
  -                  (sys.int::memref-unsigned-byte-64 (+ addr (* i +freelist-metadata-size+)) 2) 0
  -                  (sys.int::memref-unsigned-byte-64 (+ addr (* i +freelist-metadata-size+)) 3) 0)
  -            (setf (freelist-metadata-next (+ addr (* i +freelist-metadata-size+))) *store-freelist-metadata-freelist*
  -                  *store-freelist-metadata-freelist* (+ addr (* i +freelist-metadata-size+))))))
  -      (let ((new *store-freelist-metadata-freelist*))
  -        (setf *store-freelist-metadata-freelist* (freelist-metadata-next new))
  -        (setf (freelist-metadata-start new) start
  -              (freelist-metadata-end new) end
  -              (freelist-metadata-free-p new) freep
  -              (freelist-metadata-next new) '()
  -              (freelist-metadata-prev new) '())
  -        new))))
  +  (when (not *store-freelist-metadata-freelist*)
  +    ;; Repopulate freelist.
  +    ;; This allocation could potentially get exciting.
  +    ;; PAGER-ALLOCATE-PAGE doesn't call back into the store functions,
  +    ;; but if it does then this'll have to change.
  +    (let* ((frame (pager-allocate-page :other))
  +           (addr (+ +physical-map-base+ (ash frame 12))))
  +      (dotimes (i (truncate #x1000 +freelist-metadata-size+))
  +        (setf (sys.int::memref-unsigned-byte-64 (+ addr (* i +freelist-metadata-size+)) 0) 0
  +              (sys.int::memref-unsigned-byte-64 (+ addr (* i +freelist-metadata-size+)) 1) 0
  +              (sys.int::memref-unsigned-byte-64 (+ addr (* i +freelist-metadata-size+)) 2) 0
  +              (sys.int::memref-unsigned-byte-64 (+ addr (* i +freelist-metadata-size+)) 3) 0)
  +        (setf (freelist-metadata-next (+ addr (* i +freelist-metadata-size+))) *store-freelist-metadata-freelist*
  +              *store-freelist-metadata-freelist* (+ addr (* i +freelist-metadata-size+))))))
  +  (let ((new *store-freelist-metadata-freelist*))
  +    (setf *store-freelist-metadata-freelist* (freelist-metadata-next new))
  +    (setf (freelist-metadata-start new) start
  +          (freelist-metadata-end new) end
  +          (freelist-metadata-free-p new) freep
  +          (freelist-metadata-next new) '()
  +          (freelist-metadata-prev new) '())
  +    new))
   
   (defun freelist-free-metadata (md)
  -  (without-interrupts
  -    (with-symbol-spinlock (*store-freelist-metadata-freelist-lock*)
  -      (setf (freelist-metadata-next md) *store-freelist-metadata-freelist*
  -            *store-freelist-metadata-freelist* md))))
  +  (setf (freelist-metadata-next md) *store-freelist-metadata-freelist*
  +        *store-freelist-metadata-freelist* md))
   
   (defun adjust-freelist-range-start (range new-start)
     (cond ((freelist-metadata-prev range)
  
positive.code: 
  ;;; Free metadata objects.
  (defvar *store-freelist-metadata-freelist*)
  (defvar *store-freelist-metadata-freelist-lock*)
  
  (defvar *store-freelist-n-free-blocks*)
  (defvar *store-freelist-total-blocks*)
  
  
negative.code: 
  (defun initialize-store-freelist (n-store-blocks freelist-block)
    (setf *store-freelist-metadata-freelist* '()
          *store-freelist-head* (freelist-alloc-metadata 0 n-store-blocks t)
          *store-freelist-tail* *store-freelist-head*
          *store-freelist-n-free-blocks* n-store-blocks
          *store-freelist-total-blocks* n-store-blocks)
    (loop
  