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)