[cmucl-cvs] [git] CMU Common Lisp branch master updated. snapshot-2013-02-15-g3c88c09

Raymond Toy rtoy at common-lisp.net
Sat Feb 23 16:17:29 UTC 2013


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMU Common Lisp".

The branch, master has been updated
       via  3c88c09556da4e0f797dc90beba16c76ac972c26 (commit)
      from  ba036ec2f58f8bdd49a3807e32e9f48f72afb133 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 3c88c09556da4e0f797dc90beba16c76ac972c26
Author: Raymond Toy <toy.raymond at gmail.com>
Date:   Sat Feb 23 08:17:19 2013 -0800

    Oops.  Use the pentium version of the log1p vop and remove the other
    one.

diff --git a/src/compiler/x86/float.lisp b/src/compiler/x86/float.lisp
index 4d2ea5e..f8f57e6 100644
--- a/src/compiler/x86/float.lisp
+++ b/src/compiler/x86/float.lisp
@@ -3290,59 +3290,6 @@
      (unless (zerop (tn-offset r))
 	     (inst fstd r))))
 
-(define-vop (flog1p)
-  (:translate %log1p)
-  (:args (x :scs (double-reg) :to :result))
-  (:temporary (:sc double-reg :offset fr0-offset
-		   :from :argument :to :result) fr0)
-  (:temporary (:sc double-reg :offset fr1-offset
-		   :from :argument :to :result) fr1)
-  (:temporary (:sc word-reg :offset eax-offset :from :eval) temp)
-  (:results (y :scs (double-reg)))
-  (:arg-types double-float)
-  (:result-types double-float)
-  (:policy :fast-safe)
-  (:guard (not (backend-featurep :sse2)))
-  (:note _N"inline log1p function")
-  (:ignore temp)
-  (:generator 5
-     ;; x is in a FP reg, not fr0, fr1.
-     (fp-pop)
-     (fp-pop)
-     (inst fldd (make-random-tn :kind :normal
-				:sc (sc-or-lose 'double-reg *backend*)
-				:offset (- (tn-offset x) 2)))
-     ;; Check the range
-     (inst push #x3e947ae1)	; Constant 0.29
-     (inst fabs)
-     (inst fld (make-ea :dword :base esp-tn))
-     (inst fcompp)
-     (inst add esp-tn 4)
-     (inst fnstsw)			; status word to ax
-     (inst and ah-tn #x45)
-     (inst jmp :z WITHIN-RANGE)
-     ;; Out of range for fyl2xp1.
-     (inst fld1)
-     (inst faddd (make-random-tn :kind :normal
-				 :sc (sc-or-lose 'double-reg *backend*)
-				 :offset (- (tn-offset x) 1)))
-     (inst fldln2)
-     (inst fxch fr1)
-     (inst fyl2x)
-     (inst jmp DONE)
-
-     WITHIN-RANGE
-     (inst fldln2)
-     (inst fldd (make-random-tn :kind :normal
-				:sc (sc-or-lose 'double-reg *backend*)
-				:offset (- (tn-offset x) 1)))
-     (inst fyl2xp1)
-     DONE
-     (inst fld fr0)
-     (case (tn-offset y)
-       ((0 1))
-       (t (inst fstd y)))))
-
 ;;; The Pentium has a less restricted implementation of the fyl2xp1
 ;;; instruction and a range check can be avoided.
 (define-vop (flog1p-pentium)

-----------------------------------------------------------------------

Summary of changes:
 src/compiler/x86/float.lisp |   53 -------------------------------------------
 1 files changed, 0 insertions(+), 53 deletions(-)


hooks/post-receive
-- 
CMU Common Lisp




More information about the cmucl-cvs mailing list