X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Farray.lisp;h=50f730a43aa87fe3faf9113545a833388543c80c;hb=b7f3ef098847a4cc680f6304cec735b63bb70a0a;hp=f41730b024743c166bb8d8204254f94d994d56a5;hpb=f94339428a65d2002f73086bcc6022885f656c1f;p=sbcl.git diff --git a/src/code/array.lisp b/src/code/array.lisp index f41730b..50f730a 100644 --- a/src/code/array.lisp +++ b/src/code/array.lisp @@ -56,6 +56,7 @@ (values vector index)) (values array index))) +(declaim (inline simple-vector-compare-and-swap)) (defun simple-vector-compare-and-swap (vector index old new) #!+(or x86 x86-64) (%simple-vector-compare-and-swap vector @@ -349,11 +350,7 @@ of specialized arrays is supported." (:little-endian (- sb!vm:other-pointer-lowtag)) (:big-endian - ;; I'm not completely sure of what this - ;; 3 represents symbolically. It's - ;; just what all the LOAD-TYPE vops - ;; are doing. - (- 3 sb!vm:other-pointer-lowtag))))) + (- (1- sb!vm:n-word-bytes) sb!vm:other-pointer-lowtag))))) ;; WIDETAG-OF needs extra code to handle ;; LIST and FUNCTION lowtags. We're only ;; dispatching on other pointers, so let's