[movitz-cvs] CVS update: movitz/losp/muerte/primitive-functions.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Tue Apr 13 13:28:31 UTC 2004
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv24095
Modified Files:
primitive-functions.lisp
Log Message:
Added the same change for undwind-protect as the other dynamic
control-transfer mechanisms: Use a jumper-table index rather than EIP
directly in the on-stack structure.
Date: Tue Apr 13 09:28:31 2004
Author: ffjeld
Index: movitz/losp/muerte/primitive-functions.lisp
diff -u movitz/losp/muerte/primitive-functions.lisp:1.8 movitz/losp/muerte/primitive-functions.lisp:1.9
--- movitz/losp/muerte/primitive-functions.lisp:1.8 Tue Apr 13 09:02:33 2004
+++ movitz/losp/muerte/primitive-functions.lisp Tue Apr 13 09:28:31 2004
@@ -10,7 +10,7 @@
;;;; Author: Frode Vatvedt Fjeld <frodef at acm.org>
;;;; Created at: Tue Oct 2 21:02:18 2001
;;;;
-;;;; $Id: primitive-functions.lisp,v 1.8 2004/04/13 13:02:33 ffjeld Exp $
+;;;; $Id: primitive-functions.lisp,v 1.9 2004/04/13 13:28:31 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -103,7 +103,7 @@
;;; Unwind-protect entry:
;;; 12: parent
-;;; 8: eip
+;;; 8: jumper index (=> eip)
;;; 4: tag = #:unwind-protect-tag
;;; 0: ebp/stack-frame
@@ -176,7 +176,8 @@
(:locally (:movl :ebx (:edi (:edi-offset dynamic-env))))
(:movl (:eax 0) :ebp) ; install clean-up's stack-frame (but keep our ESP)
(:movl (:ebp -4) :esi) ; ..and install clean-up's funobj in ESI
- (:call (:eax 8))
+ (:movl (:eax 8) :edx)
+ (:call (:esi :edx #.(bt:slot-offset 'movitz:movitz-funobj 'movitz::constant0)))
(:popl :edx) ; restoure our EDX
(:popl :ebp) ; restore our EBP
(:subl 4 :edx) ; ..slide EDX to next position inside stack-frame.
More information about the Movitz-cvs
mailing list