From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1CGilN-0002Bz-Vu for qemu-devel@nongnu.org; Sun, 10 Oct 2004 14:49:46 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1CGilN-0002Bk-Gl for qemu-devel@nongnu.org; Sun, 10 Oct 2004 14:49:45 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CGilN-0002BZ-B4 for qemu-devel@nongnu.org; Sun, 10 Oct 2004 14:49:45 -0400 Received: from [213.80.72.10] (helo=kubrik.opensource.se) by monty-python.gnu.org with esmtp (Exim 4.34) id 1CGieR-00009S-HT for qemu-devel@nongnu.org; Sun, 10 Oct 2004 14:42:35 -0400 Received: from kubu (unknown [213.80.72.14]) by kubrik.opensource.se (Postfix) with ESMTP id A985C3752C for ; Sun, 10 Oct 2004 20:30:33 +0200 (CEST) Subject: Re: [Qemu-devel] /* XXX: suppress this hack */ From: Magnus Damm In-Reply-To: References: <1097431180.15742.96.camel@kubu.opensource.se> Content-Type: text/plain Message-Id: <1097434199.15737.111.camel@kubu.opensource.se> Mime-Version: 1.0 Date: Sun, 10 Oct 2004 20:50:00 +0200 Content-Transfer-Encoding: 7bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Hello there, thanks for the reply! [snip] > > I would like to "suppress that hack", ie make sure that AREG4 to AREG11 > > gets defined for i386-softmmu. Someone that knows the code - what needs > > to be done? Just removing the ifdef does not work for sure. Is it some > > issue with setjmp()/longjmp()? I'm willing to set aside some hours to > > fix this if someone who knows points me in the right direction. > > It's all about ABIs: see > > http://www-106.ibm.com/developerworks/linux/library/l-ppc/#h4 > > You want all those registers you use to be volatile, i.e. every function > which wants to use one of those has to make sure that their original > contents gets restored before returning. 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? Thanks! / magnus