projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.8.7.6:
[sbcl.git]
/
src
/
compiler
/
sparc
/
array.lisp
diff --git
a/src/compiler/sparc/array.lisp
b/src/compiler/sparc/array.lisp
index
e68fe13
..
a984102
100644
(file)
--- a/
src/compiler/sparc/array.lisp
+++ b/
src/compiler/sparc/array.lisp
@@
-39,28
+39,18
@@
\f
;;;; Additional accessors and setters for the array header.
\f
;;;; Additional accessors and setters for the array header.
-
-(defknown sb!impl::%array-dimension (t fixnum) fixnum
- (flushable))
-(defknown sb!impl::%set-array-dimension (t fixnum fixnum) fixnum
- ())
-
(define-vop (%array-dimension word-index-ref)
(define-vop (%array-dimension word-index-ref)
- (:translate sb!impl::%array-dimension)
+ (:translate sb!kernel:%array-dimension)
(:policy :fast-safe)
(:variant array-dimensions-offset other-pointer-lowtag))
(define-vop (%set-array-dimension word-index-set)
(:policy :fast-safe)
(:variant array-dimensions-offset other-pointer-lowtag))
(define-vop (%set-array-dimension word-index-set)
- (:translate sb!impl::%set-array-dimension)
+ (:translate sb!kernel:%set-array-dimension)
(:policy :fast-safe)
(:variant array-dimensions-offset other-pointer-lowtag))
(:policy :fast-safe)
(:variant array-dimensions-offset other-pointer-lowtag))
-
-
-(defknown sb!impl::%array-rank (t) fixnum (flushable))
-
(define-vop (array-rank-vop)
(define-vop (array-rank-vop)
- (:translate sb!impl::%array-rank)
+ (:translate sb!kernel:%array-rank)
(:policy :fast-safe)
(:args (x :scs (descriptor-reg)))
(:temporary (:scs (non-descriptor-reg)) temp)
(:policy :fast-safe)
(:args (x :scs (descriptor-reg)))
(:temporary (:scs (non-descriptor-reg)) temp)
@@
-70,12
+60,8
@@
(inst sra temp n-widetag-bits)
(inst sub temp (1- array-dimensions-offset))
(inst sll res temp n-fixnum-tag-bits)))
(inst sra temp n-widetag-bits)
(inst sub temp (1- array-dimensions-offset))
(inst sll res temp n-fixnum-tag-bits)))
-
-
\f
;;;; Bounds checking routine.
\f
;;;; Bounds checking routine.
-
-
(define-vop (check-bound)
(:translate %check-bound)
(:policy :fast-safe)
(define-vop (check-bound)
(:translate %check-bound)
(:policy :fast-safe)
@@
-92,8
+78,6
@@
(inst b :geu error)
(inst nop)
(move result index))))
(inst b :geu error)
(inst nop)
(move result index))))
-
-
\f
;;;; Accessors/Setters
\f
;;;; Accessors/Setters
@@
-128,13
+112,21
@@
(def-data-vector-frobs simple-vector word-index
* descriptor-reg any-reg)
(def-data-vector-frobs simple-vector word-index
* descriptor-reg any-reg)
+ (def-data-vector-frobs simple-array-unsigned-byte-7 byte-index
+ positive-fixnum unsigned-reg)
(def-data-vector-frobs simple-array-unsigned-byte-8 byte-index
positive-fixnum unsigned-reg)
(def-data-vector-frobs simple-array-unsigned-byte-8 byte-index
positive-fixnum unsigned-reg)
+ (def-data-vector-frobs simple-array-unsigned-byte-15 halfword-index
+ positive-fixnum unsigned-reg)
(def-data-vector-frobs simple-array-unsigned-byte-16 halfword-index
positive-fixnum unsigned-reg)
(def-data-vector-frobs simple-array-unsigned-byte-16 halfword-index
positive-fixnum unsigned-reg)
+ (def-data-vector-frobs simple-array-unsigned-byte-31 word-index
+ unsigned-num unsigned-reg)
(def-data-vector-frobs simple-array-unsigned-byte-32 word-index
unsigned-num unsigned-reg)
(def-data-vector-frobs simple-array-unsigned-byte-32 word-index
unsigned-num unsigned-reg)
+ (def-data-vector-frobs simple-array-unsigned-byte-29 word-index
+ positive-fixnum any-reg)
(def-data-vector-frobs simple-array-signed-byte-30 word-index
tagged-num any-reg)
(def-data-vector-frobs simple-array-signed-byte-32 word-index
(def-data-vector-frobs simple-array-signed-byte-30 word-index
tagged-num any-reg)
(def-data-vector-frobs simple-array-signed-byte-32 word-index