;;; If value can be represented as an immediate constant, then return
;;; the appropriate SC number, otherwise return NIL.
(!def-vm-support-routine immediate-constant-sc (value)
- ;; KLUDGE: although this might not look different from the FIXNUM
- ;; below, in the TYPECASE, SB-INT:FIXNUMP actually tests against the
- ;; target FIXNUM type, as opposed to TYPECASE FIXNUM which tests
- ;; against the host FIXNUM range.
- #+sb-xc-host
- (when (fixnump value)
- ;; FIXME: this block name was not obvious. Also, since this idiom
- ;; is presumably going to be repeated in all six (current)
- ;; backends, it would be nice to wrap it up somewhat more nicely.
- ;; -- CSR, 2003-04-20
- (return-from impl-of-vm-support-routine-immediate-constant-sc
- (sc-number-or-lose 'immediate)))
(typecase value
- ((or fixnum #-sb-xc-host system-area-pointer character)
+ ((or (integer #.sb!xc:most-negative-fixnum #.sb!xc:most-positive-fixnum)
+ #-sb-xc-host system-area-pointer character)
(sc-number-or-lose 'immediate))
(symbol
(when (static-symbol-p value)