[movitz-cvs] CVS update: movitz/losp/muerte/interrupt.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Fri Jan 28 08:49:08 UTC 2005
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv439
Modified Files:
interrupt.lisp
Log Message:
Fixed dit-frame-casf according to the (newish) stack discipline.
Date: Fri Jan 28 00:49:07 2005
Author: ffjeld
Index: movitz/losp/muerte/interrupt.lisp
diff -u movitz/losp/muerte/interrupt.lisp:1.36 movitz/losp/muerte/interrupt.lisp:1.37
--- movitz/losp/muerte/interrupt.lisp:1.36 Tue Jan 25 05:50:16 2005
+++ movitz/losp/muerte/interrupt.lisp Fri Jan 28 00:49:07 2005
@@ -10,7 +10,7 @@
;;;; Author: Frode Vatvedt Fjeld <frodef at acm.org>
;;;; Created at: Wed Apr 7 01:50:03 2004
;;;;
-;;;; $Id: interrupt.lisp,v 1.36 2005/01/25 13:50:16 ffjeld Exp $
+;;;; $Id: interrupt.lisp,v 1.37 2005/01/28 08:49:07 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -82,20 +82,17 @@
(let ((ebp (dit-frame-ref stack dit-frame :ebp))
(esp (dit-frame-esp stack dit-frame)))
(cond
- ((null ebp) ; special mode
+ ((null ebp) ; special dynamic control-transfer mode
(stack-frame-ref stack (dit-frame-ref stack dit-frame :dynamic-env) 0))
((< esp ebp)
ebp)
- ((> esp ebp)
- ;; A throw situation
+ ((eq esp ebp)
(let ((next-ebp (stack-frame-ref stack esp 0)))
(check-type next-ebp fixnum)
(assert (< esp next-ebp))
next-ebp))
- (t (let ((next-ebp (stack-frame-ref stack esp 0)))
- (check-type next-ebp fixnum)
- (assert (< esp next-ebp))
- next-ebp)))))
+ (t (error "Undefined CASF for dit-frame ~S with EBP #x~X and ESP #x~X."
+ dit-frame ebp esp)))))
(define-primitive-function (default-interrupt-trampoline :symtab-property t) ()
"Default first-stage/trampoline interrupt handler. Assumes the IF flag in EFLAGS
More information about the Movitz-cvs
mailing list