From: Patrik N. <kin...@us...> - 2003-10-29 06:38:44
|
Update of /cvsroot/sbcl/sbcl/src/compiler/ppc In directory sc8-pr-cvs1:/tmp/cvs-serv4391/src/compiler/ppc Modified Files: move.lisp arith.lisp Log Message: 0.8.5.13: G5/PPC970 fix: ... Replace all uses of the mcrxr instruction with the mtxer instruction, because mcrxr is reallly slooow on the PPC970 and we didn't actually want it for anything but clearing XER. Index: move.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/ppc/move.lisp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- move.lisp 18 Mar 2002 17:56:12 -0000 1.1 +++ move.lisp 29 Oct 2003 06:38:40 -0000 1.2 @@ -208,7 +208,7 @@ (:generator 20 (move x arg) (let ((done (gen-label))) - (inst mcrxr :cr0) ; clear sticky overflow bits in XER, CR0 + (inst mtxer zero-tn) ; clear sticky overflow bit in XER, CR0 (inst addo temp x x) ; set XER OV if top two bits differ (inst addo. temp temp temp) ; set CR0 SO if any top three bits differ (inst slwi y x 2) ; assume fixnum (tagged ok, maybe lost some high bits) Index: arith.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/ppc/arith.lisp,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- arith.lisp 9 Oct 2003 19:55:15 -0000 1.10 +++ arith.lisp 29 Oct 2003 06:38:40 -0000 1.11 @@ -239,7 +239,7 @@ (:note "safe inline fixnum arithmetic") (:generator 4 (let* ((no-overflow (gen-label))) - (inst mcrxr :cr0) + (inst mtxer zero-tn) (inst addo. r x y) (inst bns no-overflow) (inst unimp (logior (ash (reg-tn-encoding r) 5) @@ -254,7 +254,7 @@ (:note "safe inline fixnum arithmetic") (:generator 4 (let* ((no-overflow (gen-label))) - (inst mcrxr :cr0) + (inst mtxer zero-tn) (inst subo. r x y) (inst bns no-overflow) (inst unimp (logior (ash (reg-tn-encoding r) 5) |