(if not-p
(values not-target target)
(values target not-target))
- (generate-fixnum-test value)
- (inst jmp :e yep)
(move-qword-to-eax value)
+ (inst test al-tn fixnum-tag-mask)
+ (inst jmp :e yep)
+
(inst and al-tn lowtag-mask)
(inst cmp al-tn other-pointer-lowtag)
(inst jmp :ne nope)
(values not-target target)
(values target not-target))
;; Is it a fixnum?
- (generate-fixnum-test value)
(move rax-tn value)
+ (inst test al-tn fixnum-tag-mask)
(inst jmp :e fixnum)
;; If not, is it an other pointer?