Skip to content

Commit

Permalink
0.8.5.13:
Browse files Browse the repository at this point in the history
        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.
  • Loading branch information
patrikn committed Oct 29, 2003
1 parent e855e05 commit 35b5e97
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 7 deletions.
6 changes: 3 additions & 3 deletions src/assembly/ppc/arith.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,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)
Expand Down Expand Up @@ -77,7 +77,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)
Expand Down Expand Up @@ -130,7 +130,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)
Expand Down
4 changes: 2 additions & 2 deletions src/compiler/ppc/arith.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion src/compiler/ppc/move.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion version.lisp-expr
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
"0.8.5.12"
"0.8.5.13"

0 comments on commit 35b5e97

Please sign in to comment.