X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Falpha%2Farray.lisp;h=000f5d4793b4c223d7a74510f939c7e6e2adcbe8;hb=69e6aef5e6fb3bd682c7a2cbf774034d2ea58ee8;hp=2f6404cfca5b973be2c00c30c67bcd42df6d0aee;hpb=8823bb36153336539b7f1f541fbdc5c7717ebb19;p=sbcl.git diff --git a/src/compiler/alpha/array.lisp b/src/compiler/alpha/array.lisp index 2f6404c..000f5d4 100644 --- a/src/compiler/alpha/array.lisp +++ b/src/compiler/alpha/array.lisp @@ -22,7 +22,7 @@ (: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) @@ -325,8 +325,9 @@ (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) @@ -528,10 +529,6 @@ ;;; 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