Skip to content
Snippets Groups Projects
Commit 5642ed8d authored by rtoy's avatar rtoy
Browse files

The mcrxr instruction is very, very slow on a G5, so don't use it.

This patch is from Jon Boone, via Patrick Nordebo (KingNato) and Gary
Byers.

assembly/ppc/arith.lisp:
o Change uses of mcrxr to mtxer

compiler/ppc/insts.lisp:
o Comment out the definition of mcrxr.
parent 63bb1960
Branches
Tags
No related merge requests found
......@@ -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)
......
......@@ -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)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment