anchor.diff:                                  :values (list shift-result)))
              (emit done-label)))))
   
  +;; TODO: Overflow.
  +;; overflow occurs if bits 127-63 of a signed 64*64=128bit multiply are not all
  +;; ones or all zeros.
  +(define-builtin mezzano.runtime::%fixnum-* ((x y) result)
  +  (let ((x-unboxed (make-instance 'ir:virtual-register :kind :integer)))
  +    ;; Unbox one operand, this will produce a boxed result.
  +    (emit (make-instance 'ir:unbox-fixnum-instruction
  +                         :source x
  +                         :destination x-unboxed))
  +    (emit (make-instance 'arm64-instruction
  +                         :opcode 'lap:madd
  +                         :operands (list result :xzr x-unboxed y)
  +                         :inputs (list x-unboxed y)
  +                         :outputs (list result)))))
  +
   (define-builtin mezzano.runtime::%fixnum-truncate ((number divisor) (quotient remainder))
     (let ((quotient-unboxed (make-instance 'ir:virtual-register :kind :integer)))
       (emit (make-instance 'arm64-instruction
  
positive.code:                        :inputs (list lhs rhs)
                         :outputs (list result))))
  
  (define-builtin mezzano.runtime::%fixnum-logior ((lhs rhs) result)
    (emit (make-instance 'arm64-instruction
                         :opcode 'lap:orr
  
negative.code:                        :inputs (list lhs rhs)
                         :outputs (list result))))
  
  (define-builtin mezzano.compiler::%fast-fixnum-logior ((lhs rhs) result)
    (emit (make-instance 'arm64-instruction
                         :opcode 'lap:orr
                         :operands (list result lhs rhs)
                         :inputs (list lhs rhs)
                         :outputs (list result))))
  
  (define-builtin mezzano.runtime::%fixnum-logxor ((lhs rhs) result)
    (emit (make-instance 'arm64-instruction
                         :opcode 'lap:eor
                         :operands (list result lhs rhs)
                         :inputs (list lhs rhs)
                         :outputs (list result))))
  
  (define-builtin mezzano.compiler::%fast-fixnum-logxor ((lhs rhs) result)
    (emit (make-instance 'arm64-instruction
                         :opcode 'lap:eor
                         :operands (list result lhs rhs)
  