Update of /project/movitz/cvsroot/movitz/losp/muerte In directory common-lisp.net:/tmp/cvs-serv6419
Modified Files: interrupt.lisp Log Message: We _should_ do RET promotion of EIP, I think it was disabled for debugging purposes.
Date: Mon May 9 08:20:55 2005 Author: ffjeld
Index: movitz/losp/muerte/interrupt.lisp diff -u movitz/losp/muerte/interrupt.lisp:1.44 movitz/losp/muerte/interrupt.lisp:1.45 --- movitz/losp/muerte/interrupt.lisp:1.44 Sun May 8 03:18:43 2005 +++ movitz/losp/muerte/interrupt.lisp Mon May 9 08:20:55 2005 @@ -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.44 2005/05/08 01:18:43 ffjeld Exp $ +;;;; $Id: interrupt.lisp,v 1.45 2005/05/09 06:20:55 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -145,13 +145,13 @@
(:locally (:movl 0 (:edi (:edi-offset atomically-continuation)))) - ;; Do RET atomicification -;;; (:movl (:ebp ,(dit-frame-offset :eip)) :ecx) -;;; ((:cs-override) :cmpb ,(realpart (ia-x86:asm :ret)) (:ecx)) -;;; (:jne 'not-at-ret-instruction) -;;; (:globally (:movl (:edi (:edi-offset ret-trampoline)) :ecx)) -;;; (:movl :ecx (:ebp ,(dit-frame-offset :eip))) -;;; not-at-ret-instruction + ;; Do RET promotion of EIP. + (:movl (:ebp ,(dit-frame-offset :eip)) :ecx) + ((:cs-override) :cmpb ,(realpart (ia-x86:asm :ret)) (:ecx)) + (:jne 'not-at-ret-instruction) + (:globally (:movl (:edi (:edi-offset ret-trampoline)) :ecx)) + (:movl :ecx (:ebp ,(dit-frame-offset :eip))) + not-at-ret-instruction (:xorl :eax :eax) ; Ensure safe value (:xorl :edx :edx) ; Ensure safe value