anchor.diff:    ;; Pick the longest length.
     (sys.lap-x86:mov64 :rcx :rax)
     (sys.lap-x86:cmp64 :rax :rdx)
  -  (sys.lap-x86:cmov64g :rcx :rdx)
  +  (sys.lap-x86:cmov64ng :rcx :rdx)
     (sys.lap-x86:xor64 :rbx :rbx) ; offset
     (sys.lap-x86:xor64 :r10 :r10) ; CF save register.
     (sys.lap-x86:shl64 :rax 3)
  
positive.code:          (%%bignum-- x y))
          (t (error "Argument combination not supported."))))
  
  (defun generic-* (x y)
    (error "TODO"))
  
negative.code:   (sys.lap-x86:shr64 :rax 8)
    (sys.lap-x86:shr64 :rdx 8)
    ;; TODO: Full division...
    (sys.lap-x86:cmp64 :rdx 1)
    (sys.lap-x86:jne not-implemented)
    (sys.lap-x86:cmp64 :rax 2)
    (sys.lap-x86:je 128-bit-number)
    (sys.lap-x86:cmp64 :rax 1)
    (sys.lap-x86:jne not-implemented)
    ;; 64-bit divide.
    (sys.lap-x86:mov64 :rax (:r8 #.(+ (- +tag-array-like+) 8)))
    (sys.lap-x86:mov64 :rcx (:r9 #.(+ (- +tag-array-like+) 8)))
    (sys.lap-x86:cqo)
    ;; Quotient in RAX, remainder in RDX.
    do-divide
    (sys.lap-x86:idiv64 :rcx)
    (sys.lap-x86:push :rdx)
    ;; Attempt to convert quotient to a fixnum.
  