[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