Raymond Toy pushed to branch issue-336-1-fix-compiler-notes at cmucl / cmucl

Commits:

1 changed file:

Changes:

  • src/compiler/x86/float-sse2.lisp
    ... ... @@ -773,10 +773,11 @@
    773 773
     			(inst ,opinst x (,ea y)))
    
    774 774
     		       (,stack-sc
    
    775 775
     			(inst ,opinst x (,ea-stack y)))))
    
    776
    -		    ((and ,commutative (location= y r))
    
    777
    -		     ;; y = r and the operation is commutative, so just
    
    778
    -		     ;; do the operation with r and x.
    
    779
    -		     (inst ,opinst y x))
    
    776
    +		    ,@(when commutative
    
    777
    +                        `(((location= y r)
    
    778
    +		           ;; y = r and the operation is commutative, so just
    
    779
    +		           ;; do the operation with r and x.
    
    780
    +		           (inst ,opinst y x))))
    
    780 781
     		    ((not (location= r y))
    
    781 782
     		     ;; x, y, and r are three different regs.  So just
    
    782 783
     		     ;; move r to x and do the operation on r.
    
    ... ... @@ -1994,8 +1995,9 @@
    1994 1995
            `(cond
    
    1995 1996
     	 ((location= x r)
    
    1996 1997
     	  (inst ,opinst x y))
    
    1997
    -	 ((and ,commutative (location= y r))
    
    1998
    -	  (inst ,opinst y x))
    
    1998
    +	 ,@(when commutative
    
    1999
    +             `(((location= y r)
    
    2000
    +	        (inst ,opinst y x))))
    
    1999 2001
     	 ((not (location= r y))
    
    2000 2002
     	  (inst ,movinst r x)
    
    2001 2003
     	  (inst ,opinst r y))