projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.8.19.30: less COMPILE-FILE verbosity
[sbcl.git]
/
src
/
compiler
/
x86
/
vm.lisp
diff --git
a/src/compiler/x86/vm.lisp
b/src/compiler/x86/vm.lisp
index
2839abb
..
377b196
100644
(file)
--- a/
src/compiler/x86/vm.lisp
+++ b/
src/compiler/x86/vm.lisp
@@
-229,7
+229,9
@@
;; non-descriptor characters
(character-reg registers
;; non-descriptor characters
(character-reg registers
- :locations #.*byte-regs*
+ :locations #!-sb-unicode #.*byte-regs*
+ #!+sb-unicode #.*dword-regs*
+ #!-sb-unicode #!-sb-unicode
:reserve-locations (#.ah-offset #.al-offset)
:constant-scs (immediate)
:save-p t
:reserve-locations (#.ah-offset #.al-offset)
:constant-scs (immediate)
:save-p t
@@
-322,11
+324,13
@@
(catch-block stack :element-size kludge-nondeterministic-catch-block-size))
(eval-when (:compile-toplevel :load-toplevel :execute)
(catch-block stack :element-size kludge-nondeterministic-catch-block-size))
(eval-when (:compile-toplevel :load-toplevel :execute)
-(defparameter *byte-sc-names* '(character-reg byte-reg character-stack))
+(defparameter *byte-sc-names*
+ '(#!-sb-unicode character-reg byte-reg #!-sb-unicode character-stack))
(defparameter *word-sc-names* '(word-reg))
(defparameter *dword-sc-names*
'(any-reg descriptor-reg sap-reg signed-reg unsigned-reg control-stack
(defparameter *word-sc-names* '(word-reg))
(defparameter *dword-sc-names*
'(any-reg descriptor-reg sap-reg signed-reg unsigned-reg control-stack
- signed-stack unsigned-stack sap-stack single-stack constant))
+ signed-stack unsigned-stack sap-stack single-stack
+ #!+sb-unicode character-reg #!+sb-unicode character-stack constant))
;;; added by jrd. I guess the right thing to do is to treat floats
;;; as a separate size...
;;;
;;; added by jrd. I guess the right thing to do is to treat floats
;;; as a separate size...
;;;
@@
-450,6
+454,10
@@
;;; 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)
;;; 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-base-string name))
+ (declare (type string name))
;; ELF ports currently don't need any prefix
;; ELF ports currently don't need any prefix
- name)
+ (typecase name
+ (simple-base-string name)
+ (base-string (coerce name 'simple-base-string))
+ (t (handler-case (coerce name 'simple-base-string)
+ (type-error () (error "invalid external alien name: ~S" name))))))