Update of /project/movitz/cvsroot/movitz/losp/muerte In directory common-lisp.net:/tmp/cvs-serv10528
Modified Files: primitive-functions.lisp Log Message: Changed the run-time-context slot num-values from being lu32 to being a word (i.e. a fixnum).
Date: Mon Jul 12 19:26:28 2004 Author: ffjeld
Index: movitz/losp/muerte/primitive-functions.lisp diff -u movitz/losp/muerte/primitive-functions.lisp:1.26 movitz/losp/muerte/primitive-functions.lisp:1.27 --- movitz/losp/muerte/primitive-functions.lisp:1.26 Thu Jul 8 08:28:57 2004 +++ movitz/losp/muerte/primitive-functions.lisp Mon Jul 12 19:26:28 2004 @@ -10,7 +10,7 @@ ;;;; Author: Frode Vatvedt Fjeld frodef@acm.org ;;;; Created at: Tue Oct 2 21:02:18 2001 ;;;; -;;;; $Id: primitive-functions.lisp,v 1.26 2004/07/08 15:28:57 ffjeld Exp $ +;;;; $Id: primitive-functions.lisp,v 1.27 2004/07/13 02:26:28 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -713,6 +713,9 @@ (:jnz 'push-loop) push-done (:locally (:movl (:edi (:edi-offset num-values)) :ecx)) + (:testb 3 :cl) + (:jnz '(:sub-program () (:int 62))) + (:shrl #.movitz:+movitz-fixnum-shift+ :ecx) (:addl 2 :ecx) done (:jmp :edx))) @@ -736,13 +739,15 @@ (:jmp :edx))) ;; three or more values (:subl 2 :ecx) + (:shll #.movitz:+movitz-fixnum-shift+ :ecx) (:locally (:movl :ecx (:edi (:edi-offset num-values)))) - (:subl 1 :ecx) + (:subl #.movitz:+movitz-fixnum-factor+ :ecx) pop-loop - (:locally (:popl (:edi (:ecx 4) (:edi-offset values)))) - (:subl 1 :ecx) + (:locally (:popl (:edi (:ecx 1) (:edi-offset values)))) + (:subl #.movitz:+movitz-fixnum-factor+ :ecx) (:jnc 'pop-loop) (:locally (:movl (:edi (:edi-offset num-values)) :ecx)) + (:shrl #.movitz:+movitz-fixnum-shift+ :ecx) (:popl :ebx) (:popl :eax) (:addl 2 :ecx)