Skip to content
Snippets Groups Projects
Commit 9081a6d5 authored by ram's avatar ram
Browse files

Fixed output type assertion on logical operations to be * rather than T,

and added fixnum ASH VOp.
parent c5a7249b
No related branches found
No related tags found
No related merge requests found
...@@ -102,7 +102,7 @@ ...@@ -102,7 +102,7 @@
:scs (any-reg descriptor-reg)) :scs (any-reg descriptor-reg))
(y :target r (y :target r
:scs (any-reg descriptor-reg short-immediate unsigned-immediate))) :scs (any-reg descriptor-reg short-immediate unsigned-immediate)))
(:result-types t)) (:result-types *))
(define-fixnum-binop fast-logior/fixnum fast-logic-binop/fixnum logior o (define-fixnum-binop fast-logior/fixnum fast-logic-binop/fixnum logior o
:immed-op oil :unsigned t :commute-op o) :immed-op oil :unsigned t :commute-op o)
...@@ -113,13 +113,26 @@ ...@@ -113,13 +113,26 @@
(define-fixnum-binop fast-logxor/fixnum fast-logic-binop/fixnum logxor x (define-fixnum-binop fast-logxor/fixnum fast-logic-binop/fixnum logxor x
:immed-op xil :unsigned t :commute-op x) :immed-op xil :unsigned t :commute-op x)
#|
(define-vop (fast-ash/fixnum fast-binop/fixnum) (define-vop (fast-ash/fixnum fast-binop/fixnum)
(:args (i :scs (any-reg descriptor-reg)
:target r))
(:arg-types fixnum (:constant (integer -31 31)))
(:info n)
(:translate ash)
(:generator 1 (:generator 1
(sc-case y (cond ((plusp n)
((any-reg descriptor-reg) (if (> n 15)
)))) (inst sli16 r (- n 16))
|# (inst sli r n)))
((minusp n)
(if (> n 15)
(inst sari16 r (- n 16))
(inst sari r n))))
(unless (location= i r)
(inst lr r i))))
(define-miscop-variants effectless-unaffected-two-arg-miscop (define-miscop-variants effectless-unaffected-two-arg-miscop
logand logior logxor) logand logior logxor)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment