;;; 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)
;;; The loader uses this to convert alien names to the form they need in
;;; the symbol table (for example, prepending an underscore).
(defun extern-alien-name (name)
- (declare (type simple-string name))
- ;; OpenBSD is non-ELF, and needs a _ prefix
- #!+openbsd (concatenate 'string "_" name)
- ;; The other (ELF) ports currently don't need any prefix
- #!-openbsd name)
+ (declare (type simple-base-string name))
+ ;; ELF ports currently don't need any prefix
+ name)