anchor.diff:                                         (if pushed-values-register
                                              (mezzano.supervisor:thread-state-rcx-value thread)
                                              0)))
  -      (cond ((not framep)
  +      (cond #+arm64
  +            ((and (not framep)
  +                  (zerop layout-length))
  +             ;; Special case: lr contains the return address and there is return address on the stack.
  +             (scavenge-stack
  +              ;; Stack pointer needs the return address popped off,
  +              ;; and any layout variables.
  +              stack-pointer
  +              ;; Frame pointer should be unchanged.
  +              frame-pointer
  +              ;; Return address in x30.
  +              (mezzano.supervisor:thread-state-cs thread)))
  +            ((not framep)
                ;; No frame, carefully pick out the new values.
                (scavenge-stack
                 ;; Stack pointer needs the return address popped off,
  
positive.code:        "  n-values " n-values
         "  from " (if framep
                       (+ frame-pointer 16)
                       (+ stack-pointer (* (1+ layout-length) 8)))))
      ;; There are N-VALUES values above the return address.
      (if framep
          ;; Skip saved fp and return address.
          (scavenge-many (+ frame-pointer 16) n-values)
          ;; Skip return address and any layout values.
          (scavenge-many (+ stack-pointer (* (1+ layout-length) 8)) n-values))))
  
  (defun scavenge-regular-stack-frame (frame-pointer stack-pointer framep
                                       layout-address layout-length
  
negative.code:                 (psetf return-address (memref-unsigned-byte-64 frame-pointer 1)
                         stack-pointer (+ frame-pointer 16)
                         frame-pointer (memref-unsigned-byte-64 frame-pointer 0)))
                 #+arm64
                 ((zerop layout-length)
                  (mezzano.supervisor:panic "Tried to unwind through function with no available return address"))
                 (t
                  ;; No frame, carefully pick out the new values.
                  (gc-log "Unwinding through no-frame function")
  