On Wed, 16 Aug 2006, Dirk Behme wrote:
AFAIU qemu maintains an environment stack, I guess popping the
environment restores the old flag contents.
Anybody with a short explanation of the basics of this? I think this would
really help debugging this issue.
I don't think it's really a stack (see translate.c:save_cpu_state()),
but anyway as far as I got it it is used to save the context where the
emulation has to prepare to deliver that context either to an
exception or to the code managing branches (delay slots, likely's
etc.) In some instances you'll see that the "pc" counter of the saved
context is manually incremented by one insn; one obvious example is
the "wait" instruction where you really want to continue with the
following insn once an exception kicks the emulation out of its nap.
I agree, though, that in your debugging, you probably examined a wrong
context. The actual, current context's EXL should be correct, otherwise
things wouldn't be working at all.
Having said that, I'm currently playing with nested interrupts - let's see
how that checks out... :-)
Glad for any correction of my half-understanding of qemu,
Marius
--
Marius Groeger <[EMAIL PROTECTED]>
SYSGO AG Embedded and Real-Time Software
Voice: +49 6136 9948 0 FAX: +49 6136 9948 10
www.sysgo.com | www.elinos.com | www.osek.de | www.pikeos.com
_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel