(in-package #:user-side-compiler)

(defgeneric bytesquash (object)
  (:method ((object integer))
    (typecase object
      ((unsigned-byte 8) (list object))
      ((unsigned-byte 16) (list (ldb (byte 8 0) object)
                                (ldb (byte 8 8) object)))
      (t (error "Cannot bytesquash integers larger than 16-bit."))))
  (:method ((object label))
    (bytesquash (address object))))