(:temporary (:scs (non-descriptor-reg)) header)
(:results (result :scs (descriptor-reg)))
(:generator 13
- (inst addq rank (+ (* array-dimensions-offset n-word-bytes)
+ (inst addq rank (+ (* (1+ array-dimensions-offset) n-word-bytes)
lowtag-mask)
bytes)
(inst li (lognot lowtag-mask) header)
(def-partial-data-vector-frobs simple-array-signed-byte-16 tagged-num
:short t signed-reg)
- (def-full-data-vector-frobs simple-array-unsigned-byte-29 positive-fixnum any-reg)
- (def-full-data-vector-frobs simple-array-signed-byte-30 tagged-num any-reg)
+ (def-full-data-vector-frobs simple-array-unsigned-fixnum positive-fixnum
+ any-reg)
+ (def-full-data-vector-frobs simple-array-fixnum tagged-num any-reg)
(def-full-data-vector-frobs simple-array-signed-byte-32 signed-num
signed-reg)
;;; These vops are useful for accessing the bits of a vector irrespective of
;;; what type of vector it is.
;;;
-(define-full-reffer raw-bits * 0 other-pointer-lowtag (unsigned-reg) 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