(inst cmp al-tn lowtag)
(inst jmp (if not-p :ne :e) target))
-(defun %test-lowtag-and-headers (value target not-p lowtag function-p headers)
- (let ((drop-through (gen-label)))
- (%test-lowtag value (if not-p drop-through target) nil lowtag)
- (%test-headers value target not-p function-p headers drop-through t)))
-
-
(defun %test-headers (value target not-p function-p headers
&optional (drop-through (gen-label)) al-loaded)
(let ((lowtag (if function-p fun-pointer-lowtag other-pointer-lowtag)))
\f
;;;; other integer ranges
+(define-vop (fixnump/unsigned-byte-32 simple-type-predicate)
+ (:args (value :scs (unsigned-reg)))
+ (:arg-types unsigned-num)
+ (:translate fixnump)
+ (:generator 5
+ (inst cmp value #.sb!xc:most-positive-fixnum)
+ (inst jmp (if not-p :a :be) target)))
+
;;; A (SIGNED-BYTE 32) can be represented with either fixnum or a bignum with
;;; exactly one digit.