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

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Mon May 23 22:40:56 UTC 2005


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

Modified Files:
	compiler.lisp 
Log Message:
Fixed make-store-lexical for :untagged-fixnum-ecx.

Date: Tue May 24 00:40:55 2005
Author: ffjeld

Index: movitz/compiler.lisp
diff -u movitz/compiler.lisp:1.141 movitz/compiler.lisp:1.142
--- movitz/compiler.lisp:1.141	Mon May 23 18:45:15 2005
+++ movitz/compiler.lisp	Tue May 24 00:40:55 2005
@@ -8,7 +8,7 @@
 ;;;; Created at:    Wed Oct 25 12:30:49 2000
 ;;;; Distribution:  See the accompanying file COPYING.
 ;;;;                
-;;;; $Id: compiler.lisp,v 1.141 2005/05/23 16:45:15 ffjeld Exp $
+;;;; $Id: compiler.lisp,v 1.142 2005/05/23 22:40:55 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -3694,10 +3694,15 @@
 		   "store-lexical argnum can't be ~A." (function-argument-argnum binding))
 		 `((:movl ,source (:ebp ,(argument-stack-offset binding)))))
 		(:untagged-fixnum-ecx
-		 (append (unless (member source '(:ecx :untagged-fixnum-ecx))
-			   `((:movl ,source :ecx)))
-			 (unless (eq source :untagged-fixnum-ecx)
-			   `((:sarl ,+movitz-fixnum-shift+ :ecx)))))))))))))
+		 (cond
+		  ((eq source :untagged-fixnum-ecx)
+		   nil)
+		  ((eq source :eax)
+		   `((,*compiler-global-segment-prefix*
+		      :call (:edi ,(global-constant-offset 'unbox-u32)))))
+		  (t `((:movl ,source :eax)
+		       (,*compiler-global-segment-prefix*
+			:call (:edi ,(global-constant-offset 'unbox-u32)))))))))))))))
 
 (defun finalize-code (code funobj frame-map)
   ;; (print-code 'to-be-finalized code)




More information about the Movitz-cvs mailing list