projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.8.13.32:
[sbcl.git]
/
src
/
compiler
/
alpha
/
arith.lisp
diff --git
a/src/compiler/alpha/arith.lisp
b/src/compiler/alpha/arith.lisp
index
83c8f0b
..
d054afc
100644
(file)
--- a/
src/compiler/alpha/arith.lisp
+++ b/
src/compiler/alpha/arith.lisp
@@
-353,7
+353,7
@@
(:temporary (:scs (non-descriptor-reg)) temp)
(:translate *)
(:generator 4
(:temporary (:scs (non-descriptor-reg)) temp)
(:translate *)
(:generator 4
- (inst sra y 2 temp)
+ (inst sra y n-fixnum-tag-bits temp)
(inst mulq x temp r)))
(define-vop (fast-*/signed=>signed fast-signed-binop)
(inst mulq x temp r)))
(define-vop (fast-*/signed=>signed fast-signed-binop)
@@
-595,41
+595,41
@@
(emit-label done)
(move res result))))
(emit-label done)
(move res result))))
-(define-source-transform 32bit-logical-not (x)
+(define-source-transform word-logical-not (x)
`(logand (lognot (the (unsigned-byte 32) ,x)) #.(1- (ash 1 32))))
`(logand (lognot (the (unsigned-byte 32) ,x)) #.(1- (ash 1 32))))
-(deftransform 32bit-logical-and ((x y))
+(deftransform word-logical-and ((x y))
'(logand x y))
'(logand x y))
-(define-source-transform 32bit-logical-nand (x y)
- `(32bit-logical-not (32bit-logical-and ,x ,y)))
+(define-source-transform word-logical-nand (x y)
+ `(word-logical-not (word-logical-and ,x ,y)))
-(deftransform 32bit-logical-or ((x y))
+(deftransform word-logical-or ((x y))
'(logior x y))
'(logior x y))
-(define-source-transform 32bit-logical-nor (x y)
+(define-source-transform word-logical-nor (x y)
`(logand (lognor (the (unsigned-byte 32) ,x) (the (unsigned-byte 32) ,y))
#.(1- (ash 1 32))))
`(logand (lognor (the (unsigned-byte 32) ,x) (the (unsigned-byte 32) ,y))
#.(1- (ash 1 32))))
-(deftransform 32bit-logical-xor ((x y))
+(deftransform word-logical-xor ((x y))
'(logxor x y))
'(logxor x y))
-(define-source-transform 32bit-logical-eqv (x y)
+(define-source-transform word-logical-eqv (x y)
`(logand (logeqv (the (unsigned-byte 32) ,x) (the (unsigned-byte 32) ,y))
#.(1- (ash 1 32))))
`(logand (logeqv (the (unsigned-byte 32) ,x) (the (unsigned-byte 32) ,y))
#.(1- (ash 1 32))))
-(define-source-transform 32bit-logical-orc1 (x y)
+(define-source-transform word-logical-orc1 (x y)
`(logand (logorc1 (the (unsigned-byte 32) ,x) (the (unsigned-byte 32) ,y))
#.(1- (ash 1 32))))
`(logand (logorc1 (the (unsigned-byte 32) ,x) (the (unsigned-byte 32) ,y))
#.(1- (ash 1 32))))
-(define-source-transform 32bit-logical-orc2 (x y)
+(define-source-transform word-logical-orc2 (x y)
`(logand (logorc2 (the (unsigned-byte 32) ,x) (the (unsigned-byte 32) ,y))
#.(1- (ash 1 32))))
`(logand (logorc2 (the (unsigned-byte 32) ,x) (the (unsigned-byte 32) ,y))
#.(1- (ash 1 32))))
-(define-source-transform 32bit-logical-andc1 (x y)
+(define-source-transform word-logical-andc1 (x y)
`(logandc1 (the (unsigned-byte 32) ,x) (the (unsigned-byte 32) ,y)))
`(logandc1 (the (unsigned-byte 32) ,x) (the (unsigned-byte 32) ,y)))
-(define-source-transform 32bit-logical-andc2 (x y)
+(define-source-transform word-logical-andc2 (x y)
`(logandc2 (the (unsigned-byte 32) ,x) (the (unsigned-byte 32) ,y)))
(define-vop (shift-towards-someplace)
`(logandc2 (the (unsigned-byte 32) ,x) (the (unsigned-byte 32) ,y)))
(define-vop (shift-towards-someplace)
@@
-788,7
+788,7
@@
(:results (digit :scs (unsigned-reg)))
(:result-types unsigned-num)
(:generator 1
(:results (digit :scs (unsigned-reg)))
(:result-types unsigned-num)
(:generator 1
- (inst sra fixnum 2 digit)))
+ (inst sra fixnum n-fixnum-tag-bits digit)))
(define-vop (bignum-floor)
(:translate sb!bignum:%floor)
(define-vop (bignum-floor)
(:translate sb!bignum:%floor)