((null classes)
(nreverse forms))))
-;;; see comment in ../x86/vm.lisp. The value of 7 was taken from
-;;; vm:catch-block-size in a cmucl that I happened to have around
-;;; and seems to be working so far -dan
-(def!constant sb!vm::kludge-nondeterministic-catch-block-size 7)
+(def!constant kludge-nondeterministic-catch-block-size 7)
(!define-storage-classes
:element-size 2 :alignment 2) ; (signed-byte 64)
(unsigned-stack non-descriptor-stack
:element-size 2 :alignment 2) ; (unsigned-byte 64)
- (base-char-stack non-descriptor-stack) ; non-descriptor characters.
+ (character-stack non-descriptor-stack) ; non-descriptor characters.
(sap-stack non-descriptor-stack
:element-size 2 :alignment 2) ; System area pointers.
(single-stack non-descriptor-stack) ; single-floats
:alternate-scs (control-stack))
;; Non-Descriptor characters
- (base-char-reg registers
+ (character-reg registers
:locations #.non-descriptor-regs
:constant-scs (immediate)
:save-p t
- :alternate-scs (base-char-stack))
+ :alternate-scs (character-stack))
;; Non-Descriptor SAP's (arbitrary pointers into address space)
(sap-reg registers
;; A catch or unwind block.
(catch-block control-stack
- :element-size sb!vm::kludge-nondeterministic-catch-block-size))
+ :element-size kludge-nondeterministic-catch-block-size))
\f
;;; Make some random tns for important registers.
(macrolet ((defregtn (name sc)
(non-descriptor-stack (format nil "NS~D" offset))
(constant (format nil "Const~D" offset))
(immediate-constant "Immed"))))
+\f
+;;; The loader uses this to convert alien names to the form they
+;;; occure in the symbol table (for example, prepending an
+;;; underscore).
+(defun extern-alien-name (name)
+ (declare (type string name))
+ ;; ELF ports currently don't need any prefix
+ (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))))))