anchor.diff:                         :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)
  
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:                                 :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
  