qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] /* XXX: suppress this hack */


From: Fabrice Bellard
Subject: Re: [Qemu-devel] /* XXX: suppress this hack */
Date: Tue, 12 Oct 2004 19:56:29 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.2) Gecko/20040803

Johannes Schindelin wrote:
Hi,

On Mon, 11 Oct 2004, Johannes Schindelin wrote:


Hi,

On Sun, 10 Oct 2004, Magnus Damm wrote:


Yeah, registers "r3" to "r12" are "caller save", ie these registers must
be saved before a function is called. But what about "r16" to "r23",
these are currently only used when CONFIG_USER_ONLY is set - I thought
that they were supposed to be saved by the called function prior use,
"callee save". But how does that affect the softmmu code in a bad way
but the user code works? Any ideas?

*scratcheshishead* I cannot think of one way that code should work in user
mode... IMHO there is no protection to those registers when calling libc
or a syscall.


I think I know why: the only calls made from this code (CONFIG_USER_ONLY)
are syscalls. As these happen in the kernel, no registers of the normal
user space are touched except for the return register, which is intended
to be changed. Am I right?

No :-)

The problem is that i386 registers stored in host register has never really worked in case of guest exceptions. In user mode it was not serious, but for full system emulation it is critical.

I am testing a patch which corrects this - it seems to work at least with Linux as guest.

Fabrice.




reply via email to

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