[movitz-cvs] CVS movitz

ffjeld ffjeld at common-lisp.net
Mon Feb 19 21:57:34 UTC 2007


Update of /project/movitz/cvsroot/movitz
In directory clnet:/tmp/cvs-serv8062

Modified Files:
	compiler.lisp 
Log Message:
Remove old check for odd keyargs, since the new &key-parser does it
for us.


--- /project/movitz/cvsroot/movitz/compiler.lisp	2007/02/19 20:24:38	1.175
+++ /project/movitz/cvsroot/movitz/compiler.lisp	2007/02/19 21:57:33	1.176
@@ -8,7 +8,7 @@
 ;;;; Created at:    Wed Oct 25 12:30:49 2000
 ;;;; Distribution:  See the accompanying file COPYING.
 ;;;;                
-;;;; $Id: compiler.lisp,v 1.175 2007/02/19 20:24:38 ffjeld Exp $
+;;;; $Id: compiler.lisp,v 1.176 2007/02/19 21:57:33 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -4704,37 +4704,22 @@
 	    eax-ebx-code
 	    (make-stack-setup-code stack-setup-size)
 	    (when need-normalized-ecx-p
-	      (let ((oddeven-ok (gensym "oddeven-ok-")))
-		(append (cond
-			 ;; normalize arg-count in ecx..
-			 ((and max-args (= min-args max-args))
-			  (error "huh?"))
-			 ((and max-args (<= 0 min-args max-args #x7f))
-			  `((:andl #x7f :ecx)))
-			 ((>= min-args #x80)
-			  `((:shrl 8 :ecx)))
-			 (t (let ((normalize (make-symbol "normalize-ecx"))
-				  (normalize-done (make-symbol "normalize-ecx-done")))
-			      `((:testb :cl :cl)
-				(:js '(:sub-program (,normalize)
-				       (:shrl 8 :ecx)
-				       (:jmp ',normalize-done)))
-				(:andl #x7f :ecx)
-				,normalize-done))))
-			(when (and (oddeven-args env)
-				   (optional-vars env))
-			  `((:cmpl ,(length (optional-vars env)) :ecx)
-			    (:jbe ',oddeven-ok)))
-			(case (oddeven-args env)
-			  (:even
-			   `((:testb 1 :cl)
-			     (:jnz '(:sub-program () (:int 102)))))
-			  (:odd
-			   `((:testb 1 :cl)
-			     (:jz '(:sub-program () (:int 102))))))
-			(when (and (oddeven-args env)
-				   (optional-vars env))
-			  (list oddeven-ok)))))
+	      (append (cond
+		       ;; normalize arg-count in ecx..
+		       ((and max-args (= min-args max-args))
+			(error "huh?"))
+		       ((and max-args (<= 0 min-args max-args #x7f))
+			`((:andl #x7f :ecx)))
+		       ((>= min-args #x80)
+			`((:shrl 8 :ecx)))
+		       (t (let ((normalize (make-symbol "normalize-ecx"))
+				(normalize-done (make-symbol "normalize-ecx-done")))
+			    `((:testb :cl :cl)
+			      (:js '(:sub-program (,normalize)
+				     (:shrl 8 :ecx)
+				     (:jmp ',normalize-done)))
+			      (:andl #x7f :ecx)
+			      ,normalize-done))))))
 	    (when edx-needs-saving-p
 	      `((:movl :edx (:ebp ,(stack-frame-offset (new-binding-location (edx-var env) frame-map))))))
 	    eax-ebx-code-post-stackframe




More information about the Movitz-cvs mailing list