[movitz-cvs] CVS update: movitz/compiler.lisp

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Sun Jul 18 23:45:45 UTC 2004


Update of /project/movitz/cvsroot/movitz
In directory common-lisp.net:/tmp/cvs-serv12702

Modified Files:
	compiler.lisp 
Log Message:
Two minor fixes for some edge cases wrt. register allocation.

Date: Sun Jul 18 16:45:45 2004
Author: ffjeld

Index: movitz/compiler.lisp
diff -u movitz/compiler.lisp:1.76 movitz/compiler.lisp:1.77
--- movitz/compiler.lisp:1.76	Thu Jul 15 17:03:42 2004
+++ movitz/compiler.lisp	Sun Jul 18 16:45:45 2004
@@ -8,7 +8,7 @@
 ;;;; Created at:    Wed Oct 25 12:30:49 2000
 ;;;; Distribution:  See the accompanying file COPYING.
 ;;;;                
-;;;; $Id: compiler.lisp,v 1.76 2004/07/16 00:03:42 ffjeld Exp $
+;;;; $Id: compiler.lisp,v 1.77 2004/07/18 23:45:45 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -1331,6 +1331,7 @@
 		      (second (second i))))))
 	 (negate-branch (branch-type)
 	   (ecase branch-type
+	     (:jb :jnb) (:jnb :jb)
 	     (:jbe :ja) (:ja :jbe)
 	     (:jz :jnz) (:jnz :jz)
 	     (:je :jne) (:jne :je)
@@ -3988,6 +3989,10 @@
 			   (decf stack-setup-size)
 			   `((:pushl :ebx)
 			     (:xchgl :eax :ebx)))
+			  ((and (eq :ebx location-0)
+				(eq :edx location-1))
+			   `((:movl :ebx :edx)
+			     (:movl :eax :ebx)))
 			  (t (append
 			      (cond
 			       ((eql 1 location-0)
@@ -6144,12 +6149,13 @@
 		(break "check that this is correct..")
 		`((:addl ,(movitz-immediate-value (car (type-specifier-singleton type0)))
 			 (:ebp ,(stack-frame-offset loc1)))))))
-	   (t (warn "ADD: ~S = ~A + ~A, ~A ~A, ~A ~A"
-		    destination loc0 loc1 type0 type1
-		    (type-specifier-singleton type0)
-		    (eq loc1 destination))
-	      (warn "ADDI: ~S" instruction)
-	      (append (cond
+	   (t
+;;;	    (warn "ADD: ~S = ~A + ~A, ~A ~A, ~A ~A"
+;;;		    destination loc0 loc1 type0 type1
+;;;		    (type-specifier-singleton type0)
+;;;		    (eq loc1 destination))
+;;;	     (warn "ADDI: ~S" instruction)
+	    (append (cond
 		       ((and (eq :eax loc0) (eq :ebx loc1))
 			nil)
 		       ((and (eq :ebx loc0) (eq :eax loc1))





More information about the Movitz-cvs mailing list