diff --git a/compiler/rt/arith.lisp b/compiler/rt/arith.lisp index fe898856a450a77b627c93b8746bec71655b67f9..77af537b638aa7f87b0f67a15c0a2bdd36687e7f 100644 --- a/compiler/rt/arith.lisp +++ b/compiler/rt/arith.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman (FAHLMAN@CMUC). ;;; ********************************************************************** ;;; -;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/rt/arith.lisp,v 1.3 1991/04/08 14:47:58 wlott Exp $ +;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/rt/arith.lisp,v 1.4 1991/04/12 22:47:07 wlott Exp $ ;;; ;;; This file contains the VM definition arithmetic VOPs for the IBM RT. ;;; @@ -474,7 +474,7 @@ (:info target not-p y) (:translate eql) (:generator 3 - (inst c x y) + (inst c x (fixnum y)) (if not-p (inst bnc :eq target) (inst bc :eq target)))) @@ -539,8 +539,9 @@ (define-vop (shift-towards-someplace) (:policy :fast-safe) - (:args (num :scs (unsigned-reg) :target r) - (amount :scs (signed-reg) :to (:result 1))) + (:args (num :scs (unsigned-reg) :target r :to (:eval 0)) + (amount :scs (signed-reg) :target temp)) + (:temporary (:scs (signed-reg) :from (:argument 1)) temp) (:arg-types unsigned-num tagged-num) (:results (r :scs (unsigned-reg))) (:result-types unsigned-num)) @@ -549,15 +550,19 @@ (:translate shift-towards-start) (:note "SHIFT-TOWARDS-START") (:generator 1 + (move temp amount) + (inst nilz temp #x1f) (move r num) - (inst sl r amount))) + (inst sl r temp))) (define-vop (shift-towards-end shift-towards-someplace) (:translate shift-towards-end) (:note "SHIFT-TOWARDS-END") (:generator 1 + (move temp amount) + (inst nilz temp #x1f) (move r num) - (inst sr r amount))) + (inst sr r temp))) @@ -869,10 +874,6 @@ (define-static-function two-arg-/ (x y) :translate /) -(define-static-function two-arg-< (x y) :translate <) -(define-static-function two-arg-> (x y) :translate >) -(define-static-function two-arg-= (x y) :translate =) - (define-static-function %negate (x) :translate %negate) (define-static-function two-arg-and (x y) :translate logand)