From: Nathan F. <nf...@us...> - 2005-01-15 20:28:43
|
Update of /cvsroot/sbcl/sbcl/src/code In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6170/src/code Modified Files: Tag: alpha64-3-branch pred.lisp interr.lisp Log Message: 0.8.18.25.alpha64-3.7: "The rest is trivial." Minor changes: * tools-for-build/ldso-stubs.lisp: untabify and update OSF/1 stub for a dynamically-linked world; * src/runtime/alpha-assem.S: s/stl/stq/ (again, *sigh*) * src/assembly/alpha/arith.lisp: optimize GENERIC-+/GENERIC--; * src/compiler/generic/{interr,vm-type,vm-typetran}.lisp, src/code/{pred,interr}.lisp: update with new 64-bit types and add back specialized typechecks for {UN,}SIGNED-BYTE-32, on the suspicion that they will be needed for the FFI. Current status: plods forward until first GC (even with setting up the pretty-printer, woohoo!), where it dies mysteriously during scavenging. crhodes suggesting reverting the patches made earlier to GC, as jsnell thoroughly 64-bitized the GC for the x86-64 port; have to try that and see if that does anything. Various messages are blathered across the console about unaligned accesses during setup of the pretty-printer; those should be investigated... Index: pred.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/code/pred.lisp,v retrieving revision 1.15 retrieving revision 1.15.6.1 diff -u -d -r1.15 -r1.15.6.1 --- pred.lisp 30 Oct 2004 14:36:06 -0000 1.15 +++ pred.lisp 15 Jan 2005 20:28:33 -0000 1.15.6.1 @@ -91,18 +91,31 @@ (def-type-predicate-wrapper system-area-pointer-p) (def-type-predicate-wrapper weak-pointer-p) (def-type-predicate-wrapper vectorp) + ;#!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or)) (def-type-predicate-wrapper unsigned-byte-32-p) + ;#!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or)) (def-type-predicate-wrapper signed-byte-32-p) + #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) + (def-type-predicate-wrapper unsigned-byte-64-p) + #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) + (def-type-predicate-wrapper signed-byte-64-p) (def-type-predicate-wrapper simple-array-nil-p) (def-type-predicate-wrapper simple-array-unsigned-byte-2-p) (def-type-predicate-wrapper simple-array-unsigned-byte-4-p) (def-type-predicate-wrapper simple-array-unsigned-byte-8-p) (def-type-predicate-wrapper simple-array-unsigned-byte-16-p) (def-type-predicate-wrapper simple-array-unsigned-byte-32-p) + #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) + (def-type-predicate-wrapper simple-array-unsigned-byte-64-p) (def-type-predicate-wrapper simple-array-signed-byte-8-p) (def-type-predicate-wrapper simple-array-signed-byte-16-p) + #!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or)) (def-type-predicate-wrapper simple-array-signed-byte-30-p) (def-type-predicate-wrapper simple-array-signed-byte-32-p) + #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) + (def-type-predicate-wrapper simple-array-signed-byte-61-p) + #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) + (def-type-predicate-wrapper simple-array-signed-byte-64-p) (def-type-predicate-wrapper simple-array-single-float-p) (def-type-predicate-wrapper simple-array-double-float-p) #!+long-float (def-type-predicate-wrapper simple-array-long-float-p) Index: interr.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/code/interr.lisp,v retrieving revision 1.30 retrieving revision 1.30.6.1 diff -u -d -r1.30 -r1.30.6.1 --- interr.lisp 3 Dec 2004 17:50:10 -0000 1.30 +++ interr.lisp 15 Jan 2005 20:28:34 -0000 1.30.6.1 @@ -282,6 +282,18 @@ :datum object :expected-type '(unsigned-byte 32))) +#!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) +(deferr object-not-signed-byte-64-error (object) + (error 'type-error + :datum object + :expected-type '(signed-byte 64))) + +#!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) +(deferr object-not-unsigned-byte-64-error (object) + (error 'type-error + :datum object + :expected-type '(unsigned-byte 64))) + (macrolet ((define-simple-array-internal-errors () `(progn |