From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:37775) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TBsP0-0004vU-DK for qemu-devel@nongnu.org; Wed, 12 Sep 2012 15:15:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TBsOy-0003gE-LL for qemu-devel@nongnu.org; Wed, 12 Sep 2012 15:15:10 -0400 Date: Wed, 12 Sep 2012 21:14:51 +0200 From: Aurelien Jarno Message-ID: <20120912191451.GB6791@ohm.aurel32.net> References: <1347473022-17017-1-git-send-email-sw@weilnetz.de> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: Subject: Re: [Qemu-devel] [PATCH] w64: Fix calls of TCG helper functions with 5 arguments List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: Blue Swirl , Stefan Weil , qemu-devel@nongnu.org, qemu-stable@nongnu.org On Wed, Sep 12, 2012 at 07:12:47PM +0100, Peter Maydell wrote: > On 12 September 2012 19:03, Stefan Weil wrote: > > diff --git a/tcg/i386/tcg-target.c b/tcg/i386/tcg-target.c > > index da17bba..43b5572 100644 > > --- a/tcg/i386/tcg-target.c > > +++ b/tcg/i386/tcg-target.c > > @@ -118,7 +118,7 @@ static void patch_reloc(uint8_t *code_ptr, int type, > > static inline int tcg_target_get_call_iarg_regs_count(int flags) > > { > > if (TCG_TARGET_REG_BITS == 64) { > > - return 6; > > + return ARRAY_SIZE(tcg_target_call_iarg_regs); > > } > > > > return 0; > > Hmm. Why can't we just return the array size in all cases? > Is there something special about 32 bit x86? I checked, and > all our other TCG targets return the same value as the size of > the iarg_regs array (either using ARRAY_SIZE or by just returning > the right number)... > On 32-bit x86, all arguments are now being passed on the stack, that's why the function returns 0. On the other hand when the change has been done, the registers haven't been removed from tcg_target_call_iarg_regs. I think this patch is fine enough for 1.2, but a better patch is needed for master. -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurelien@aurel32.net http://www.aurel32.net