qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Wrong reset of MIPS hflags EXL after interrupt?


From: Marius Groeger
Subject: Re: [Qemu-devel] Wrong reset of MIPS hflags EXL after interrupt?
Date: Thu, 17 Aug 2006 08:30:18 +0200 (CEST)

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 <address@hidden>
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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]