X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fppc%2Farith.lisp;h=9004b6daf2ac410cafdb2eac7e434b81f94588dd;hb=1d46d379bb7a6424524b978f213ef69be5f1ad69;hp=336033d6dc42bc77e452fba5c4de810e158132e4;hpb=4ed3f0d08c3a57a6762018d9622f253ab9d0f2b6;p=sbcl.git diff --git a/src/compiler/ppc/arith.lisp b/src/compiler/ppc/arith.lisp index 336033d..9004b6d 100644 --- a/src/compiler/ppc/arith.lisp +++ b/src/compiler/ppc/arith.lisp @@ -371,6 +371,8 @@ (cond ((and (minusp amount) (< amount -31)) (move result zero-tn)) ((minusp amount) (inst srwi result number (- amount))) + ;; possible because this is used in the modular version too + ((> amount 31) (move result zero-tn)) (t (inst slwi result number amount))))) (define-vop (fast-ash/signed=>signed) @@ -489,6 +491,7 @@ (:translate ,mfun-name)))))))) (define-modular-backend + t) (define-modular-backend - t) + (define-modular-backend * t) (define-modular-backend logxor t) (define-modular-backend logeqv) (define-modular-backend lognand)