projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.43.31: x86-64: Implement %ARRAY-ATOMIC-INCF/WORD.
[sbcl.git]
/
src
/
compiler
/
generic
/
vm-fndb.lisp
diff --git
a/src/compiler/generic/vm-fndb.lisp
b/src/compiler/generic/vm-fndb.lisp
index
a47798e
..
2fc1221
100644
(file)
--- a/
src/compiler/generic/vm-fndb.lisp
+++ b/
src/compiler/generic/vm-fndb.lisp
@@
-63,9
+63,12
@@
unsigned-byte-64-p
#!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or))
signed-byte-64-p
unsigned-byte-64-p
#!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or))
signed-byte-64-p
- vector-t-p weak-pointer-p code-component-p lra-p
+ weak-pointer-p code-component-p lra-p
funcallable-instance-p)
(t) boolean (movable foldable flushable))
funcallable-instance-p)
(t) boolean (movable foldable flushable))
+(defknown #.(loop for (name) in *vector-without-complex-typecode-infos*
+ collect name)
+ (t) boolean (movable foldable flushable))
\f
;;;; miscellaneous "sub-primitives"
\f
;;;; miscellaneous "sub-primitives"
@@
-162,9
+165,12
@@
(complex double-float)
(unsafe always-translatable))
(complex double-float)
(unsafe always-translatable))
-#!+(or x86 x86-64)
-(defknown %raw-instance-atomic-incf/word (instance index sb!vm:signed-word) sb!vm:word
+#!+(or x86 x86-64 ppc)
+(defknown %raw-instance-atomic-incf/word (instance index sb!vm:word) sb!vm:word
(unsafe always-translatable))
(unsafe always-translatable))
+#!+(or x86-64)
+(defknown %array-atomic-incf/word (t index sb!vm:word) sb!vm:word
+ (unsafe always-translatable))
;;; These two are mostly used for bit-bashing operations.
(defknown %vector-raw-bits (t fixnum) sb!vm:word
;;; These two are mostly used for bit-bashing operations.
(defknown %vector-raw-bits (t fixnum) sb!vm:word