[movitz-cvs] CVS update: movitz/losp/muerte/primitive-functions.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Thu Oct 7 12:44:18 UTC 2004
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv25249
Modified Files:
primitive-functions.lisp
Log Message:
Make dynamic-unwind-next preserve EDX.
Date: Thu Oct 7 14:44:18 2004
Author: ffjeld
Index: movitz/losp/muerte/primitive-functions.lisp
diff -u movitz/losp/muerte/primitive-functions.lisp:1.45 movitz/losp/muerte/primitive-functions.lisp:1.46
--- movitz/losp/muerte/primitive-functions.lisp:1.45 Sat Sep 25 17:51:22 2004
+++ movitz/losp/muerte/primitive-functions.lisp Thu Oct 7 14:44:17 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.45 2004/09/25 15:51:22 ffjeld Exp $
+;;;; $Id: primitive-functions.lisp,v 1.46 2004/10/07 12:44:17 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -113,11 +113,10 @@
(define-primitive-function dynamic-unwind-next (dynamic-env)
"Locate the next unwind-protect entry between here and dynamic-env.
If no such entry is found, return (same) dynamic-env in EAX and CF=0.
-Otherwise return the unwind-protect entry in EAX and CF=1."
+Otherwise return the unwind-protect entry in EAX and CF=1. Preserve EDX."
(with-inline-assembly (:returns :nothing)
(:locally (:bound (:edi (:edi-offset stack-bottom)) :eax))
-
- (:globally (:movl (:edi (:edi-offset unwind-protect-tag)) :edx))
+ (:globally (:movl (:edi (:edi-offset unwind-protect-tag)) :ebx))
(:locally (:movl (:edi (:edi-offset dynamic-env)) :ecx))
search-loop
@@ -127,7 +126,7 @@
(:cmpl :ecx :eax)
(:je 'found-dynamic-env)
- (:cmpl :edx (:ecx 4)) ; unwind-protect entry?
+ (:cmpl :ebx (:ecx 4)) ; unwind-protect entry?
(:je 'found-unwind-protect)
(:movl (:ecx 12) :ecx) ; proceed search
More information about the Movitz-cvs
mailing list