anchor.diff:                  fdt-node
                   :exclusive t)
       ;; Set countdown value.
  -    (setf (%cntp-tval) 0)
  +    ;; ### why is this 0 and not *generic-timer-reset-value*?
  +    (setf (%cntv-tval) 0)
       (%isb)
       ;; Enable the timer.
  -    (setf (%cntp-ctl) 1)
  +    (setf (%cntv-ctl) 1)
       (%isb)))
   
   (defun get-universal-time ()
  -  (+ *rtc-adjust* (truncate (%cntpct) *generic-timer-rate*)))
  +  (+ *rtc-adjust* (truncate (%cntvct) *generic-timer-rate*)))
   
   (defun sys.int::tsc ()
     ;; This isn't the cycle counter, but it's close enough for now.
     (prog1
  -      (%cntpct)
  +      (%cntvct)
       (%isb)))
   
   (defun get-high-precision-timer ()
     ;; TODO
     (prog1
  -      (%cntpct)
  +      (%cntvct)
       (%isb)))
   
   (defun high-precision-time-units-to-internal-time-units (hp-time)
  
positive.code:   (mezzano.lap.arm64:msr :cntp-ctl-el0 :x9)
    (mezzano.lap.arm64:ret))
  
  (sys.int::defglobal *generic-timer-rate*)
  (sys.int::defglobal *generic-timer-reset-value*)
  (sys.int::defglobal *run-time-advance*)
  
negative.code: 
  (defun generic-timer-irq-handler (interrupt-frame irq)
    (declare (ignore irq))
    (setf (%cntv-tval) *generic-timer-reset-value*)
    (beat-heartbeat *run-time-advance*)
    (profile-sample interrupt-frame)
    :completed)
  