(:temp ndescr non-descriptor-reg nl0-offset))
;; This is kinda sleezy, changing words like this. But we can because
;; the vop thinks it is temporary.
- (inst addq words (+ (1- (ash 1 lowtag-bits))
- (* vector-data-offset word-bytes))
+ (inst addq words (+ (1- (ash 1 n-lowtag-bits))
+ (* vector-data-offset n-word-bytes))
words)
(inst li (lognot lowtag-mask) ndescr)
(inst and words ndescr words)
(inst srl type word-shift ndescr)
(pseudo-atomic ()
- (inst bis alloc-tn other-pointer-type result)
+ (inst bis alloc-tn other-pointer-lowtag result)
(inst addq alloc-tn words alloc-tn)
- (storew ndescr result 0 other-pointer-type)
- (storew length result vector-length-slot other-pointer-type)))
+ (storew ndescr result 0 other-pointer-lowtag)
+ (storew length result vector-length-slot other-pointer-lowtag)))
\f
;;;; hash primitives
#|
(progn result lip accum data byte retaddr)
(inst li (make-fixup 'sxhash-simple-substring :assembly-routine) temp1)
- (loadw length string vector-length-slot other-pointer-type)
+ (loadw length string vector-length-slot other-pointer-lowtag)
(inst jmp zero-tn temp1
(make-fixup 'sxhash-simple-substring :assembly-routine)))
;; Get a pointer to the data.
(inst addq string
- (- (* vector-data-offset word-bytes) other-pointer-type)
+ (- (* vector-data-offset n-word-bytes) other-pointer-lowtag)
lip)
(move zero-tn accum)
(inst br zero-tn test)