X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fgeneric%2Fvm-type.lisp;h=4f7c4a770c175fc90857457904b6d494e44cf9f8;hb=c45da820b56cd0bd4bd958b66639fa021054f962;hp=f8494cf72fc47fe0f21efb6fcfb03194e9dda338;hpb=f1ffbf976aaa50b7b22f126b97e34afe06a91210;p=sbcl.git diff --git a/src/compiler/generic/vm-type.lisp b/src/compiler/generic/vm-type.lisp index f8494cf..4f7c4a7 100644 --- a/src/compiler/generic/vm-type.lisp +++ b/src/compiler/generic/vm-type.lisp @@ -17,6 +17,8 @@ ;;;; FIXME: I'm not sure where to put this. -- WHN 19990817 (def!type sb!vm:word () `(unsigned-byte ,sb!vm:n-word-bits)) +(def!type sb!vm:signed-word () `(signed-byte ,sb!vm:n-word-bits)) + ;;;; implementation-dependent DEFTYPEs @@ -191,10 +193,18 @@ (numeric-type (cond ((type= type (specifier-type 'fixnum)) 'sb!c:check-fixnum) + #!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or)) ((type= type (specifier-type '(signed-byte 32))) 'sb!c:check-signed-byte-32) + #!+#.(cl:if (cl:= 32 sb!vm:n-word-bits) '(and) '(or)) ((type= type (specifier-type '(unsigned-byte 32))) 'sb!c:check-unsigned-byte-32) + #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) + ((type= type (specifier-type '(signed-byte 64))) + 'sb!c:check-signed-byte-64) + #!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or)) + ((type= type (specifier-type '(unsigned-byte 64))) + 'sb!c:check-unsigned-byte-64) (t nil))) (fun-type 'sb!c:check-fun)