[movitz-cvs] CVS movitz/losp/muerte

ffjeld ffjeld at common-lisp.net
Sat Apr 7 20:49:17 UTC 2007


Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory clnet:/tmp/cvs-serv30506

Modified Files:
	interrupt.lisp 
Log Message:
Improved error decoding for exception 69.


--- /project/movitz/cvsroot/movitz/losp/muerte/interrupt.lisp	2007/03/26 21:11:43	1.55
+++ /project/movitz/cvsroot/movitz/losp/muerte/interrupt.lisp	2007/04/07 20:49:17	1.56
@@ -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.55 2007/03/26 21:11:43 ffjeld Exp $
+;;;; $Id: interrupt.lisp,v 1.56 2007/04/07 20:49:17 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -342,10 +342,15 @@
 		    $eip $eax $ebx $ecx $edx)
 	      (dotimes (i 100000)
 		(with-inline-assembly (:returns :nothing) (:nop))))
-	  (69 (error 'type-error
-		     :datum (dereference $eax)
-		     :expected-type (aref #(cons function)
-					  (dereference $ecx :unsigned-byte8))))
+	  (69 (let ((expected-type
+                     (aref #(cons function)
+                           (dereference $ecx :unsigned-byte8))))
+                (error 'type-error
+                 :datum (case expected-type
+                          (function
+                           (dereference $edx))
+                          (t (dereference $eax)))
+                 :expected-type expected-type)))
 	  (70 (error "Unaligned memref access."))
 	  ((5 55)
 	   (let* ((old-bottom (prog1 (%run-time-context-slot nil 'stack-bottom)




More information about the Movitz-cvs mailing list