- 'sb!c:check-fixnum)
- ((type= type (specifier-type '(signed-byte 32)))
- 'sb!c:check-signed-byte-32)
- ((type= type (specifier-type '(unsigned-byte 32)))
- 'sb!c:check-unsigned-byte-32)
- (t nil)))
+ '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)
+ #!+(or x86 x86-64) ; Not implemented yet on other platforms
+ ((and (eql (numeric-type-class type) 'integer)
+ (eql (numeric-type-low type) 0)
+ (fixnump (numeric-type-high type)))
+ (values 'sb!c:check-mod-fixnum t))
+ (t nil)))