anchor.diff:            `(sys.lap-x86:jne ,type-error)
             ;; Check object tag.
             `(sys.lap-x86:mov8 :al ,(object-ea :r9 :slot -1))
  +          `(sys.lap-x86:and8 :al ,(ash (1- (ash 1 sys.int::+array-type-size+))
  +                                       sys.int::+array-type-shift+))
             `(sys.lap-x86:sub8 :al ,(ash sys.int::+first-complex-array-object-tag+
                                          sys.int::+array-type-shift+))
             `(sys.lap-x86:cmp8 :al ,(ash (- sys.int::+last-complex-array-object-tag+
  
positive.code:             `(sys.lap-x86:cmp8 :dl ,sys.int::+tag-object+)
              `(sys.lap-x86:jne ,type-error-label)
              `(sys.lap-x86:mov64 :rdx ,(object-ea :r8 :slot -1))
              `(sys.lap-x86:cmp8 :dl ,(ash sys.int::+object-tag-bignum+
                                           sys.int::+array-type-shift+))
              `(sys.lap-x86:jne ,type-error-label)
  
negative.code:           `(sys.lap-x86:cmp8 :al ,sys.int::+tag-object+)
            `(sys.lap-x86:jne ,out)
            `(sys.lap-x86:mov64 :rax ,(object-ea :r8 :slot -1))
            `(sys.lap-x86:test8 :al ,(ash (1- (ash 1 sys.int::+array-type-size+))
                                          sys.int::+array-type-shift+))
            ;; Subtle. OUT can be reached through either the tag check
            ;; or through the array type check. Both checks clear ZF when
            ;; they fail.
  