anchor.diff:            ;; Load header word.
             `(sys.lap-x86:mov64 :rax ,(object-ea :r8 :slot -1))
             ;; Check array type.
  -          `(sys.lap-x86:test8 :al :al)
  +          `(sys.lap-x86:test8 :al ,(ash (1- (ash 1 sys.int::+array-type-size+))
  +                                        sys.int::+array-type-shift+))
             `(sys.lap-x86:jnz ,type-error-label)
             ;; Check bounds.
             `(sys.lap-x86:mov64 :rcx :r9)
  
positive.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 :al)
            ;; Subtle. OUT can be reached through either the tag check
            ;; or through the array type check. Both checks clear ZF when
            ;; they fail.
  
negative.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:and8 :dl ,(ash (1- (ash 1 sys.int::+array-type-size+))
                                           sys.int::+array-type-shift+))
              `(sys.lap-x86:cmp8 :dl ,(ash sys.int::+object-tag-bignum+
                                           sys.int::+array-type-shift+))
              `(sys.lap-x86:jne ,type-error-label)
  