(:results (result :scs (descriptor-reg)))
(:generator 0
(pseudo-atomic (pa-flag)
- (inst addi ndescr rank (* (1+ array-dimensions-offset) n-word-bytes))
+ (inst addi ndescr rank (+ (* (1+ array-dimensions-offset) n-word-bytes)
+ lowtag-mask))
(inst clrrwi ndescr ndescr n-lowtag-bits)
(allocation header ndescr other-pointer-lowtag
:temp-tn gc-temp
(:vop-var vop)
(:save-p :compute-only)
(:generator 5
- (let ((error (generate-error-code vop invalid-array-index-error
+ (let ((error (generate-error-code vop 'invalid-array-index-error
array bound index)))
(inst cmplw index bound)
(inst bge error)
;;; what type of vector it is.
;;;
-(define-vop (raw-bits word-index-ref)
- (:note "raw-bits VOP")
- (:translate %raw-bits)
- (:results (value :scs (unsigned-reg)))
- (:result-types unsigned-num)
- (:variant 0 other-pointer-lowtag))
-
-(define-vop (set-raw-bits word-index-set)
- (:note "setf raw-bits VOP")
- (:translate %set-raw-bits)
- (:args (object :scs (descriptor-reg))
- (index :scs (any-reg zero immediate))
- (value :scs (unsigned-reg)))
- (:arg-types * positive-fixnum unsigned-num)
- (:results (result :scs (unsigned-reg)))
- (:result-types unsigned-num)
- (:variant 0 other-pointer-lowtag))
-
(define-vop (vector-raw-bits word-index-ref)
(:note "vector-raw-bits VOP")
(:translate %vector-raw-bits)