[cmucl-commit] [git] CMU Common Lisp branch master updated. snapshot-2014-01-11-g82b30bf

Raymond Toy rtoy at common-lisp.net
Sun Jan 12 02:12:19 UTC 2014


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  82b30bfd476ba772e56547e05c30ba365f8db802 (commit)
      from  b689cd596007d208b0eee38dfb1452a881e09072 (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 82b30bfd476ba772e56547e05c30ba365f8db802
Author: Raymond Toy <toy.raymond at gmail.com>
Date:   Sat Jan 11 18:11:28 2014 -0800

    Simplify the macros that generate the basic float operations.

diff --git a/src/compiler/x86/float-sse2.lisp b/src/compiler/x86/float-sse2.lisp
index bd82461..bfa6df9 100644
--- a/src/compiler/x86/float-sse2.lisp
+++ b/src/compiler/x86/float-sse2.lisp
@@ -756,10 +756,11 @@
   (frob single-float-op single-reg single-float)
   (frob double-float-op double-reg double-float))
 
-(macrolet ((generate (movinst opinst commutative rtype ea ea-stack)
-	     (let ((stack-sc (if (eq rtype 'single-reg)
-				 'single-stack
-				 'double-stack)))
+(macrolet ((generate (movinst opinst commutative arg-type)
+	     (multiple-value-bind (rtype stack-sc ea ea-stack)
+		 (if (eq arg-type 'single)
+		     (values 'single-reg 'single-stack 'ea-for-sf-desc 'ea-for-sf-stack)
+		     (values 'double-reg 'double-stack 'ea-for-df-desc 'ea-for-df-stack))
 	       `(progn
 		  (cond
 		    ((location= x r)
@@ -810,7 +811,7 @@
 		  (:translate ,op)
                   (:temporary (:sc single-reg) tmp)
                   (:generator ,scost
-                    (generate movss ,sinst ,commutative single-reg ea-for-sf-desc ea-for-sf-stack)))
+                    (generate movss ,sinst ,commutative single)))
                 (define-vop (,dname double-float-op)
 		  (:args (x :scs (double-reg) :target r)
 			 (y :scs (double-reg descriptor-reg)
@@ -818,7 +819,7 @@
                   (:translate ,op)
                   (:temporary (:sc double-reg) tmp)
                   (:generator ,dcost
-                    (generate movsd ,dinst ,commutative double-reg ea-for-df-desc ea-for-df-stack))))))
+                    (generate movsd ,dinst ,commutative double))))))
   (frob + addss +/single-float 2 addsd +/double-float 2 t)
   (frob - subss -/single-float 2 subsd -/double-float 2 nil)
   (frob * mulss */single-float 4 mulsd */double-float 5 t)

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

Summary of changes:
 src/compiler/x86/float-sse2.lisp |   13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)


hooks/post-receive
-- 
CMU Common Lisp


More information about the cmucl-commit mailing list