(: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)
(: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)
(: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)
(: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)
(: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)
(: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)
;;; 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"