anchor.diff:          (sys.int::%invlpg candidate-virtual)
           ;; Maybe write it back to disk.
           (when (logtest pte +page-table-dirty+)
  -          (when (not (logtest bme sys.int::+block-map-committed+))
  +          (when (not (block-info-committed-p bme))
               #+(or)(debug-print-line "Candidate is dirty but part of on-disk snapshot, allocating new block.")
               (let ((new-block (or (store-alloc 1)
                                    (panic "Aiiee, out of store during swap-out.")))
  -                  (old-block (ash bme (- sys.int::+block-map-id-shift+))))
  +                  (old-block (block-info-block-id bme)))
                 (setf bme (logior (ash new-block sys.int::+block-map-id-shift+)
                                   sys.int::+block-map-committed+
                                   (logand bme #xFF))
  
positive.code:                  (panic "Unable to read page from disk"))))
          (setf (page-table-entry pte 0) (logior (ash frame 12)
                                                 +page-table-present+
                                                 (if (logtest sys.int::+block-map-writable+ block-info)
                                                     +page-table-write+
                                                   0)))
          (sys.int::%invlpg address)
  
negative.code: 
  (defun zeroize-physical-page (physical-addr)
    (sys.int::%fill-words (+ +physical-map-base+ physical-addr) 0 512))
  
  (declaim (inline block-info-present-p))
  (defun block-info-present-p (block-info)
    (logtest sys.int::+block-map-present+ block-info))
  
  (declaim (inline block-info-zero-fill-p))
  (defun block-info-zero-fill-p (block-info)
    (logtest sys.int::+block-map-zero-fill+ block-info))
  
  (declaim (inline block-info-writable-p))
  (defun block-info-writable-p (block-info)
    (logtest sys.int::+block-map-writable+ block-info))
  
  (declaim (inline block-info-committed-p))
  (defun block-info-committed-p (block-info)
    (logtest sys.int::+block-map-committed+ block-info))
  
  (declaim (inline block-info-block-id))
  (defun block-info-block-id (block-info)
    (ldb (byte sys.int::+block-map-id-size+ sys.int::+block-map-id-shift+)
         block-info))
  
  (defun page-aligned-p (value)
    (zerop (logand value #xFFF)))
  