X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fgeneric%2Futils.lisp;h=bbe98d24e3ffa878b529eaa759d13b10f7d2bbcd;hb=23b070aba7a0f3339358ef7dea05684f93b065a9;hp=38fa31cd57452ab83c6140ef2a2fb75c0c7af069;hpb=27a028cff1559dec1cb1faaee01659ade816c908;p=sbcl.git diff --git a/src/compiler/generic/utils.lisp b/src/compiler/generic/utils.lisp index 38fa31c..bbe98d2 100644 --- a/src/compiler/generic/utils.lisp +++ b/src/compiler/generic/utils.lisp @@ -14,8 +14,8 @@ ;;; 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))) ;;;; routines for dealing with static symbols