diff --git a/assembly/ppc/arith.lisp b/assembly/ppc/arith.lisp index 8e4f7dd9533b2dff6b6d7446a7417f4a67bc6627..b0d55a0fe48e96eaf9ac2ad05b5fc817fda0fcb5 100644 --- a/assembly/ppc/arith.lisp +++ b/assembly/ppc/arith.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/assembly/ppc/arith.lisp,v 1.8 2005/12/12 00:46:06 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/assembly/ppc/arith.lisp,v 1.9 2006/02/03 15:54:38 rtoy Rel $") ;;; ;;; ********************************************************************** ;;; @@ -43,7 +43,7 @@ (:temp ocfp any-reg ocfp-offset)) ; Clear the damned "sticky overflow" bit in :cr0 and :xer - (inst mcrxr :cr0) + (inst mtxer zero-tn) (inst or temp x y) (inst andi. temp temp 3) (inst bne DO-STATIC-FUN) @@ -90,7 +90,7 @@ (:temp ocfp any-reg ocfp-offset)) ; Clear the damned "sticky overflow" bit in :cr0 - (inst mcrxr :cr0) + (inst mtxer zero-tn) (inst or temp x y) (inst andi. temp temp 3) @@ -144,7 +144,7 @@ (:temp ocfp any-reg ocfp-offset)) ;; If either arg is not a fixnum, call the static function. But first ... - (inst mcrxr :cr0) + (inst mtxer zero-tn) (inst or temp x y) (inst andi. temp temp 3) diff --git a/compiler/ppc/insts.lisp b/compiler/ppc/insts.lisp index 83a049f90a294b31058a1b73162e30d4889763f7..bd2b420d0c2a10ec7a31ba899c0b960dd34f3d3f 100644 --- a/compiler/ppc/insts.lisp +++ b/compiler/ppc/insts.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ppc/insts.lisp,v 1.16 2006/01/18 15:21:26 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ppc/insts.lisp,v 1.17 2006/02/03 15:54:38 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -1819,6 +1819,12 @@ about function addresses and register values.") (define-2-x-5-instructions nand 31 476) (define-4-xo-instructions divw 31 491 :cost 36) + +;; This instruction runs very slowly on a G5 (emulated?), so we don't +;; want to use this. Comment this instruction out so we don't use it +;; by accident, but leave it here so the next person doesn't have to +;; define it from scratch. Use mtxer zero-tn instead. +#+nil (define-instruction mcrxr (segment crf) (:printer x-18 ((op 31) (xo 512))) (:delay 1)