1.0.1.8:
[sbcl.git] / src / assembly / mips / array.lisp
index 8399f2f..3c53f1e 100644 (file)
                           (:temp pa-flag non-descriptor-reg nl4-offset))
   ;; This is kinda sleezy, changing words like this.  But we can because
   ;; the vop thinks it is temporary.
-  (inst addu words (+ (1- (ash 1 n-lowtag-bits))
+  (inst addu words (+ lowtag-mask
                       (* vector-data-offset n-word-bytes)))
-  (inst li ndescr (lognot lowtag-mask))
-  (inst and words ndescr)
   (inst srl ndescr type word-shift)
+  (inst srl words n-lowtag-bits)
+  (inst sll words n-lowtag-bits)
 
   (pseudo-atomic (pa-flag)
     (inst or result alloc-tn other-pointer-lowtag)