0.9.2.9: thread objects
[sbcl.git] / src / compiler / x86-64 / array.lisp
index 725b457..e2d4ef6 100644 (file)
                       (mask ,(1- (ash 1 bits)))
                       (shift (* extra ,bits)))
                  (unless (= value mask)
-                   (inst mov mask-tn (lognot (ash mask shift)))
+                   (inst mov mask-tn (ldb (byte 64 0)
+                                          (lognot (ash mask shift))))
                    (inst and old mask-tn))
                  (unless (zerop value)
                    (inst mov mask-tn (ash value shift))
   unsigned-num %raw-bits)
 (define-full-setter set-raw-bits * 0 other-pointer-lowtag (unsigned-reg)
   unsigned-num %set-raw-bits)
+(define-full-reffer vector-raw-bits * vector-data-offset other-pointer-lowtag
+  (unsigned-reg) unsigned-num %vector-raw-bits)
+(define-full-setter set-vector-raw-bits * vector-data-offset other-pointer-lowtag
+  (unsigned-reg) unsigned-num %set-vector-raw-bits)
 \f
 ;;;; miscellaneous array VOPs