diff --git a/code/alieneval.lisp b/code/alieneval.lisp index 0628e1d6d21c9bab7615b58ccfa3fa980eb37e27..3e642dc9f2e23528cd414f1cf5a2cef2c16f995d 100644 --- a/code/alieneval.lisp +++ b/code/alieneval.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/alieneval.lisp,v 1.33 1993/08/26 15:27:02 wlott Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/alieneval.lisp,v 1.34 1994/04/06 16:59:05 hallgren Exp $") ;;; ;;; ********************************************************************** ;;; @@ -128,6 +128,7 @@ (defun guess-alignment (bits) (cond ((null bits) nil) + ((> bits 32) 64) ((> bits 16) 32) ((> bits 8) 16) ((> bits 1) 8) @@ -637,11 +638,13 @@ (case (alien-integer-type-bits type) (8 'signed-sap-ref-8) (16 'signed-sap-ref-16) - (32 'signed-sap-ref-32)) + (32 'signed-sap-ref-32) + #+alpha (64 'signed-sap-ref-64)) (case (alien-integer-type-bits type) (8 'sap-ref-8) (16 'sap-ref-16) - (32 'sap-ref-32))))) + (32 'sap-ref-32) + #+alpha (64 'sap-ref-64))))) (if ref-fun `(,ref-fun ,sap (/ ,offset vm:byte-bits)) (error "Cannot extract ~D bit integers." @@ -852,7 +855,7 @@ (def-alien-type-class (system-area-pointer)) (def-alien-type-translator system-area-pointer () - (make-alien-system-area-pointer-type :bits vm:word-bits)) + (make-alien-system-area-pointer-type :bits #-alpha vm:word-bits #+alpha 64)) (def-alien-type-method (system-area-pointer :unparse) (type) (declare (ignore type)) @@ -898,7 +901,9 @@ ;;;; The POINTER type. -(def-alien-type-class (pointer :include (alien-value (:bits vm:word-bits))) +(def-alien-type-class (pointer :include (alien-value (:bits + #-alpha vm:word-bits + #+alpha 64))) (to nil :type (or alien-type null))) (def-alien-type-translator * (to)