[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