X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-rotate-byte%2Fppc-vm.lisp;fp=contrib%2Fsb-rotate-byte%2Fppc-vm.lisp;h=e119a3d38ec847399507fa9fa6538d58ca8b80b8;hb=4898ef32c639b1c7f4ee13a5ba566ce6debd03e6;hp=294a7d6ee142565b20a0a31190f5dfeebe49777c;hpb=79cc569a97e444389350ea3f5b1017374fe16bec;p=sbcl.git diff --git a/contrib/sb-rotate-byte/ppc-vm.lisp b/contrib/sb-rotate-byte/ppc-vm.lisp index 294a7d6..e119a3d 100644 --- a/contrib/sb-rotate-byte/ppc-vm.lisp +++ b/contrib/sb-rotate-byte/ppc-vm.lisp @@ -14,7 +14,7 @@ ;; DEFTRANSFORMed away. (aver (not (= count 0))) (if (> count 0) - (inst rotlwi res integer count) + (inst rotlwi res integer count) (inst rotrwi res integer (- count))))) (define-vop (%32bit-rotate-byte-fixnum/c) @@ -35,28 +35,28 @@ (t (inst rotrwi res integer (- 2 count)))))) (macrolet ((def (name arg-type) - `(define-vop (,name) - (:policy :fast-safe) - (:translate %unsigned-32-rotate-byte) - (:note "inline 32-bit rotation") - (:args (count :scs (sb-vm::signed-reg)) - (integer :scs (sb-vm::unsigned-reg) :target res)) - (:arg-types sb-vm::tagged-num ,arg-type) - (:temporary (:scs (sb-vm::unsigned-reg) :from (:argument 0)) - realcount) - (:results (res :scs (sb-vm::unsigned-reg))) - (:result-types sb-vm::unsigned-byte-32) - (:generator 10 - (let ((label (gen-label)) - (end (gen-label))) - (inst cmpwi count 0) - (inst bge label) - (inst addi realcount count 32) - (inst rotlw res integer realcount) - (inst b end) - (emit-label label) - (inst rotlw res integer count) - (emit-label end)))))) + `(define-vop (,name) + (:policy :fast-safe) + (:translate %unsigned-32-rotate-byte) + (:note "inline 32-bit rotation") + (:args (count :scs (sb-vm::signed-reg)) + (integer :scs (sb-vm::unsigned-reg) :target res)) + (:arg-types sb-vm::tagged-num ,arg-type) + (:temporary (:scs (sb-vm::unsigned-reg) :from (:argument 0)) + realcount) + (:results (res :scs (sb-vm::unsigned-reg))) + (:result-types sb-vm::unsigned-byte-32) + (:generator 10 + (let ((label (gen-label)) + (end (gen-label))) + (inst cmpwi count 0) + (inst bge label) + (inst addi realcount count 32) + (inst rotlw res integer realcount) + (inst b end) + (emit-label label) + (inst rotlw res integer count) + (emit-label end)))))) (def %32bit-rotate-byte sb-vm::unsigned-byte-32) ;; FIXME: see x86-vm.lisp (def %32bit-rotate-byte-fixnum sb-vm::positive-fixnum))