X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fassembly%2Falpha%2Farith.lisp;h=fad4209fb5284c4009b6fbf165b44650b7a2f22f;hb=644a1ff36dd578321fd0592aa47748e8af741542;hp=e3d7216911598020099e5ec687d961fd7f457aa6;hpb=f43f136f9b3ff6cae501e850fa67b2183317e212;p=sbcl.git diff --git a/src/assembly/alpha/arith.lisp b/src/assembly/alpha/arith.lisp index e3d7216..fad4209 100644 --- a/src/assembly/alpha/arith.lisp +++ b/src/assembly/alpha/arith.lisp @@ -208,7 +208,7 @@ ;;;; division (define-assembly-routine (signed-truncate - (:note "(signed-byte 32) truncate") + (:note "(signed-byte 64) truncate") (:cost 60) (:policy :fast-safe) (:translate truncate) @@ -241,9 +241,8 @@ (emit-label label)) (inst move zero-tn rem) (inst move zero-tn quo) - (inst sll dividend 32 dividend) - (dotimes (i 32) + (dotimes (i 64) (inst srl dividend 63 temp1) (inst sll rem 1 rem) (inst bis temp1 rem rem)