anchor.diff:        (set-address-flags (+ base (* i #x1000)) flags)
         ;; Update page tables and release pages if possible.
         (let ((pte (get-pte-for-address (+ base (* i #x1000)) nil)))
  -        (when (and pte (logtest +page-table-present+ (sys.int::memref-unsigned-byte-64 pte 0)))
  +        (when (and pte (page-present-p pte 0))
             (cond ((or (not (logtest sys.int::+block-map-present+ flags))
                        (logtest sys.int::+block-map-zero-fill+ flags))
                    ;; Page going away, but it's ok. It'll be back, zero-filled.
  
positive.code:                                                                     +page-table-present+
                                                                      +page-table-write+))))
        (let ((pdir (+ +physical-map-base+ (logand (sys.int::memref-unsigned-byte-64 pdp pdpe) +page-table-address-mask+))))
          (when (not (logtest +page-table-present+ (sys.int::memref-unsigned-byte-64 pdir pde)))
            ;; No PT. Allocate one.
            (when (not allocate)
              (return-from get-pte-for-address nil))
  
negative.code:                                                                    +page-table-present+
                                                                     +page-table-write+))))
      (let ((pdp (+ +physical-map-base+ (logand (sys.int::memref-unsigned-byte-64 cr3 pml4e) +page-table-address-mask+))))
        (when (not (page-present-p pdp pdpe))
          ;; No PDir. Allocate one.
          (when (not allocate)
            (return-from get-pte-for-address nil))
  