0.8.9.18
[sbcl.git] / src / compiler / generic / utils.lisp
index 38fa31c..bbe98d2 100644 (file)
@@ -14,8 +14,8 @@
 \f
 ;;; Make a fixnum out of NUM. (I.e. shift by two bits if it will fit.)
 (defun fixnumize (num)
-  (if (<= #x-20000000 num #x1fffffff)
-      (ash num 2)
+  (if (fixnump num)
+      (ash num (1- n-lowtag-bits))
       (error "~W is too big for a fixnum." num)))
 \f
 ;;;; routines for dealing with static symbols