projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Optimize calling asm routines and static foreign functions on x86-64.
[sbcl.git]
/
src
/
code
/
pred.lisp
diff --git
a/src/code/pred.lisp
b/src/code/pred.lisp
index
ae1dd7f
..
f167505
100644
(file)
--- a/
src/code/pred.lisp
+++ b/
src/code/pred.lisp
@@
-120,6
+120,7
@@
(def-type-predicate-wrapper realp)
(def-type-predicate-wrapper short-float-p)
(def-type-predicate-wrapper single-float-p)
(def-type-predicate-wrapper realp)
(def-type-predicate-wrapper short-float-p)
(def-type-predicate-wrapper single-float-p)
+ #!+sb-simd-pack (def-type-predicate-wrapper simd-pack-p)
(def-type-predicate-wrapper %instancep)
(def-type-predicate-wrapper symbolp)
(def-type-predicate-wrapper %other-pointer-p)
(def-type-predicate-wrapper %instancep)
(def-type-predicate-wrapper symbolp)
(def-type-predicate-wrapper %other-pointer-p)
@@
-148,6
+149,12
@@
(def-type-predicate-wrapper stringp)
(def-type-predicate-wrapper vectorp)
(def-type-predicate-wrapper vector-nil-p))
(def-type-predicate-wrapper stringp)
(def-type-predicate-wrapper vectorp)
(def-type-predicate-wrapper vector-nil-p))
+
+#!+(or x86 x86-64)
+(defun fixnum-mod-p (x limit)
+ (and (fixnump x)
+ (<= 0 x limit)))
+
\f
;;; Return the specifier for the type of object. This is not simply
;;; (TYPE-SPECIFIER (CTYPE-OF OBJECT)) because CTYPE-OF has different
\f
;;; Return the specifier for the type of object. This is not simply
;;; (TYPE-SPECIFIER (CTYPE-OF OBJECT)) because CTYPE-OF has different
@@
-171,7
+178,7
@@
(extended-char 'extended-char)
((member t) 'boolean)
(keyword 'keyword)
(extended-char 'extended-char)
((member t) 'boolean)
(keyword 'keyword)
- ((or array complex)
+ ((or array complex #!+sb-simd-pack sb!kernel:simd-pack)
(type-specifier (ctype-of object)))
(t
(let* ((classoid (layout-classoid (layout-of object)))
(type-specifier (ctype-of object)))
(t
(let* ((classoid (layout-classoid (layout-of object)))