Fix (from rtoy via CMUCL) for a problem initially reported by
Gareth McCaughan cmucl-imp 2003-05-08 regarding x86 atan2
... cater for the fact that both arguments may be in fr0
... distilled test case from rtoy
(descriptor-reg
(inst fstp fr0)
(inst fldd (ea-for-df-desc y)))))
+ ((and (sc-is x double-reg) (zerop (tn-offset x))
+ (sc-is y double-reg) (zerop (tn-offset x)))
+ ;; copy x to fr1
+ (inst fst fr1))
;; y in fr0; x not in fr1
((and (sc-is y double-reg) (zerop (tn-offset y)))
(inst fxch fr1)
;; compiler failure
(let ((f (compile nil '(lambda (x) (typep x '(not (member 0d0)))))))
(assert (funcall f 1d0)))
+
+(compile nil '(lambda (x)
+ (declare (double-float x))
+ (let ((y (* x pi)))
+ (atan y y))))
;;; 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.1.22"
+"0.8.1.23"