Combine MOV/CMP by using CMP with a memory operand. Saves a byte.
(inst and al-tn lowtag-mask)
(inst cmp al-tn other-pointer-lowtag)
(inst jmp :ne nope)
- (loadw rax-tn value 0 other-pointer-lowtag)
- (inst cmp rax-tn (+ (ash 1 n-widetag-bits) bignum-widetag))
+ (inst cmp (make-ea-for-object-slot value 0 other-pointer-lowtag)
+ (+ (ash 1 n-widetag-bits) bignum-widetag))
(inst jmp (if not-p :ne :e) target))
NOT-TARGET))
(inst and al-tn lowtag-mask)
(inst cmp al-tn other-pointer-lowtag)
(inst jmp :ne nope)
- (loadw rax-tn value 0 other-pointer-lowtag)
- (inst cmp rax-tn (+ (ash 1 n-widetag-bits) bignum-widetag))
+ (inst cmp (make-ea-for-object-slot value 0 other-pointer-lowtag)
+ (+ (ash 1 n-widetag-bits) bignum-widetag))
(inst jmp :ne nope))
YEP
(move result value)))
:disp (- other-pointer-lowtag)))
(inst test al-tn lowtag-mask)
(inst jmp :ne nope)
- (loadw eax-tn value 0 other-pointer-lowtag)
- (inst cmp eax-tn (+ (ash 1 n-widetag-bits) bignum-widetag))
+ (inst cmp (make-ea-for-object-slot value 0 other-pointer-lowtag)
+ (+ (ash 1 n-widetag-bits) bignum-widetag))
(inst jmp (if not-p :ne :e) target))
NOT-TARGET))
:disp (- other-pointer-lowtag)))
(inst test al-tn lowtag-mask)
(inst jmp :ne nope)
- (loadw eax-tn value 0 other-pointer-lowtag)
- (inst cmp eax-tn (+ (ash 1 n-widetag-bits) bignum-widetag))
+ (inst cmp (make-ea-for-object-slot value 0 other-pointer-lowtag)
+ (+ (ash 1 n-widetag-bits) bignum-widetag))
(inst jmp :ne nope))
YEP
(move result value)))
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.37.58"
+"1.0.37.59"