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

Reply via email to