-
-(define-vop (32bit-logical)
- (:args (x :scs (unsigned-reg))
- (y :scs (unsigned-reg)))
- (:arg-types unsigned-num unsigned-num)
- (:results (r :scs (unsigned-reg)))
- (:result-types unsigned-num)
- (:policy :fast-safe))
-
-(define-vop (32bit-logical-not 32bit-logical)
- (:translate 32bit-logical-not)
- (:args (x :scs (unsigned-reg)))
- (:arg-types unsigned-num)
- (:generator 2
- (inst not x r)
- (inst mskll r 4 r)))
-
-(define-vop (32bit-logical-and 32bit-logical)
- (:translate 32bit-logical-and)
- (:generator 1
- (inst and x y r)))
-
-(deftransform 32bit-logical-nand ((x y) (* *))
- '(32bit-logical-not (32bit-logical-and x y)))
-
-(define-vop (32bit-logical-or 32bit-logical)
- (:translate 32bit-logical-or)
- (:generator 1
- (inst bis x y r)))
-
-(define-vop (32bit-logical-nor 32bit-logical)
- (:translate 32bit-logical-nor)
- (:generator 2
- (inst ornot x y r)
- (inst mskll r 4 r)))
-
-(define-vop (32bit-logical-xor 32bit-logical)
- (:translate 32bit-logical-xor)
- (:generator 1
- (inst xor x y r)))
-
-(deftransform 32bit-logical-eqv ((x y) (* *))
- '(32bit-logical-not (32bit-logical-xor x y)))
-
-(deftransform 32bit-logical-andc1 ((x y) (* *))
- '(32bit-logical-and (32bit-logical-not x) y))
-
-(deftransform 32bit-logical-andc2 ((x y) (* *))
- '(32bit-logical-and x (32bit-logical-not y)))
-
-(deftransform 32bit-logical-orc1 ((x y) (* *))
- '(32bit-logical-or (32bit-logical-not x) y))
-
-(deftransform 32bit-logical-orc2 ((x y) (* *))
- '(32bit-logical-or x (32bit-logical-not y)))
-
-