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@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."