projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.5.9: experimental semi-synchronous deadlines
[sbcl.git]
/
src
/
compiler
/
x86-64
/
array.lisp
diff --git
a/src/compiler/x86-64/array.lisp
b/src/compiler/x86-64/array.lisp
index
be4823d
..
ad8f2a5
100644
(file)
--- a/
src/compiler/x86-64/array.lisp
+++ b/
src/compiler/x86-64/array.lisp
@@
-154,6
+154,11
@@
signed-num signed-reg)
(def-full-data-vector-frobs simple-array-unsigned-byte-63 unsigned-num
unsigned-reg))
signed-num signed-reg)
(def-full-data-vector-frobs simple-array-unsigned-byte-63 unsigned-num
unsigned-reg))
+
+(define-full-compare-and-swap simple-vector-compare-and-swap
+ simple-vector vector-data-offset other-pointer-lowtag
+ (descriptor-reg any-reg) *
+ %simple-vector-compare-and-swap)
\f
;;;; integer vectors whose elements are smaller than a byte, i.e.,
;;;; bit, 2-bit, and 4-bit vectors
\f
;;;; integer vectors whose elements are smaller than a byte, i.e.,
;;;; bit, 2-bit, and 4-bit vectors
@@
-247,11
+252,11
@@
(unsigned-reg
(inst or old value)))
(inst rol old :cl)
(unsigned-reg
(inst or old value)))
(inst rol old :cl)
- (mov (make-ea :qword :base object :index word-index
- :scale n-word-bytes
- :disp (- (* vector-data-offset n-word-bytes)
- other-pointer-lowtag))
- old)
+ (inst mov (make-ea :qword :base object :index word-index
+ :scale n-word-bytes
+ :disp (- (* vector-data-offset n-word-bytes)
+ other-pointer-lowtag))
+ old)
(sc-case value
(immediate
(inst mov result (tn-value value)))
(sc-case value
(immediate
(inst mov result (tn-value value)))