[movitz-cvs] CVS update: movitz/losp/muerte/interrupt.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Wed Sep 22 17:57:33 UTC 2004
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv5503
Modified Files:
interrupt.lisp
Log Message:
Make exceptions 32 through 48 cause a break by default.
Date: Wed Sep 22 19:57:33 2004
Author: ffjeld
Index: movitz/losp/muerte/interrupt.lisp
diff -u movitz/losp/muerte/interrupt.lisp:1.25 movitz/losp/muerte/interrupt.lisp:1.26
--- movitz/losp/muerte/interrupt.lisp:1.25 Tue Sep 21 22:46:06 2004
+++ movitz/losp/muerte/interrupt.lisp Wed Sep 22 19:57:33 2004
@@ -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.25 2004/09/21 20:46:06 ffjeld Exp $
+;;;; $Id: interrupt.lisp,v 1.26 2004/09/22 17:57:33 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -245,7 +245,6 @@
(:movl :ecx (:ebp ,(dit-frame-offset :eip)))
(:jmp 'normal-return)
-
not-restart-continuation
;; Don't know what to do.
(:int 63)
@@ -361,7 +360,10 @@
(112
(let ((*error-no-condition-for-debugger* t)) ; no space..
(error "Out of memory. Please take out the garbage.")))
- (t (funcall (if (< 16 vector 50) #'warn #'error)
+ (t (funcall (cond
+ ((<= 32 vector 48) #'break)
+ ((<= 16 vector 50) #'warn)
+ (t #'error))
"Exception occurred: ~D, EIP: ~@Z, EAX: ~@Z, ECX: ~@Z, ESI: ~@Z"
vector $eip $eax $ecx $esi)))
nil))))
@@ -377,12 +379,10 @@
(setf (svref handlers vector) handler)))
(defun cli ()
- (with-inline-assembly (:returns :nothing)
- (:cli)))
+ (compiler-macro-call cli))
(defun sti ()
- (with-inline-assembly (:returns :nothing)
- (:sti)))
+ (compiler-macro-call sti))
(defun raise-exception (vector &optional (eax 0) (ebx 0))
"Generate a CPU exception, with those values in EAX and EBX."
More information about the Movitz-cvs
mailing list