(in-package "SB!SYS")
-(file-comment
- "$Header$")
-
-;;; SYSTEM-AREA-POINTER is not a primitive type in ANSI Common Lisp, so we
-;;; need a compound type to represent it in the host Common Lisp at
-;;; cross-compile time:
-(defstruct (system-area-pointer (:constructor make-sap) (:conc-name "SAP-"))
+;;; SYSTEM-AREA-POINTER is not a primitive type in ANSI Common Lisp,
+;;; so we need a compound type to represent it in the host Common Lisp
+;;; at cross-compile time:
+(defstruct (system-area-pointer (:constructor make-sap)
+ (:conc-name "SAP-"))
;; the integer representation of the address
- (int (error "missing SAP-INT argument") :type sap-int-type :read-only t))
+ (int (error "missing SAP-INT argument") :type sap-int :read-only t))
;;; cross-compilation-host analogues of target-CMU CL primitive SAP operations
(defun int-sap (int)
(make-sap :int int))
(defun sap+ (sap offset)
- (declare (type system-area-pointer sap) (type sap-int-type offset))
+ (declare (type system-area-pointer sap) (type sap-int offset))
(make-sap :int (+ (sap-int sap) offset)))
#.`(progn
,@(mapcar (lambda (info)
(,int-fun (sap-int x) (sap-int y)))))
'((sap< <) (sap<= <=) (sap= =) (sap>= >=) (sap> >) (sap- -))))
-;;; dummies, defined so that we can declare they never return and thereby
-;;; eliminate a thundering herd of optimization notes a la "can't optimize this
-;;; expression because we don't know the return type of SAP-REF-8"
+;;; dummies, defined so that we can declare they never return and
+;;; thereby eliminate a thundering herd of optimization notes along
+;;; the lines of "can't optimize this expression because we don't know
+;;; the return type of SAP-REF-8"
(defun sap-ref-stub (name)
(error "~S doesn't make sense on cross-compilation host." name))
#.`(progn
(defun ,name (sap offset)
(declare (ignore sap offset))
(sap-ref-stub ',name))
- ,@(let ((setter-stub (gensym "SAP-SETTER-STUB-")))
+ ,@(let ((setter-stub (gensym "SETTER-STUB-")))
`((defun ,setter-stub (foo sap offset)
(declare (ignore foo sap offset))
(sap-ref-stub '(setf ,name)))
'(sap-ref-8
sap-ref-16
sap-ref-32
+ sap-ref-64
sap-ref-sap
+ sap-ref-word
sap-ref-single
sap-ref-double
signed-sap-ref-8
signed-sap-ref-16
- signed-sap-ref-32)))
+ signed-sap-ref-32
+ signed-sap-ref-64
+ signed-sap-ref-word)))