;; This needs DEFINE-ALIEN-ROUTINE from target-alieneval.
("src/code/misc-aliens" :not-host)
+ ("src/compiler/generic/vm-array")
("src/code/array" :not-host)
("src/code/early-float" :not-host)
("src/code/target-sxhash" :not-host) ; needs most-fooative-foo-float constants
;; in class.lisp.
("src/code/condition" :not-host)
- ("src/compiler/generic/vm-array")
("src/compiler/generic/primtype")
;; the implementation of the compiler-affecting part of forms like
;;;; array type dispatching
-;;; Store some saetp fields for DEFINE-ARRAY-DISPATCH since
-;;; sb!vm:*specialized-array-element-type-properties* is not always
-;;; available.
-(macrolet
- ((define-saetp-info ()
- `(eval-when (:compile-toplevel :load-toplevel :execute)
- (defglobal %%saetp-info%%
- ',(loop for saetp
- across sb!vm:*specialized-array-element-type-properties*
- collect `(,(sb!vm:saetp-typecode saetp)
- ,(sb!vm:saetp-specifier saetp)
- ,(sb!vm:saetp-primitive-type-name saetp)))))))
- (define-saetp-info))
-
;;; Given DISPATCH-FOO as the DISPATCH-NAME argument (unevaluated),
;;; defines the functions
;;;
:expected-type '(simple-array * (*)))))
(defglobal ,table-name (make-array ,(1+ sb!vm:widetag-mask)
:initial-element #',error-name))
- ,@(loop for (typecode specifier primitive-type-name) in %%saetp-info%%
+ ,@(loop for info across sb!vm:*specialized-array-element-type-properties*
+ for typecode = (sb!vm:saetp-typecode info)
+ for specifier = (sb!vm:saetp-specifier info)
+ for primitive-type-name = (sb!vm:saetp-primitive-type-name info)
collect (let ((fun-name (symbolicate (string dispatch-name)
"/" primitive-type-name)))
`(progn