From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54142) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VKDhV-0002z5-Dn for qemu-devel@nongnu.org; Thu, 12 Sep 2013 16:41:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VKDhO-0002SR-4B for qemu-devel@nongnu.org; Thu, 12 Sep 2013 16:41:17 -0400 Received: from v220110690675601.yourvserver.net ([37.221.199.173]:39797) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VKDhN-0002S5-UT for qemu-devel@nongnu.org; Thu, 12 Sep 2013 16:41:10 -0400 Message-ID: <523226D8.5010008@weilnetz.de> Date: Thu, 12 Sep 2013 22:40:56 +0200 From: Stefan Weil MIME-Version: 1.0 References: <1379015124-21055-1-git-send-email-sw@weilnetz.de> <52322446.9000401@twiddle.net> In-Reply-To: <52322446.9000401@twiddle.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] tci: Detect function argument alignment List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Richard Henderson Cc: Peter Maydell , qemu-devel Am 12.09.2013 22:29, schrieb Richard Henderson: > On 09/12/2013 12:45 PM, Stefan Weil wrote: >> +cat > $TMPC << EOF >> +#include >> +#include >> +#include >> +#include >> +static bool call_align_args(uint32_t arg1, uint64_t arg2) { >> + if (arg2 == 0x000000030000004ULL || arg2 == 0x0000000400000003ULL) { >> + return true; >> + } else if (arg2 == 2) { >> + /* 64 bit host, 64 bit function arguments are not aligned. */ >> + } else if (arg2 == 0x0000000200000003 || arg2 == 0x0000000300000002ULL) { >> + /* 64 bit function arguments are not aligned. */ >> + } else { >> + fprintf(stderr, "unexpected 64 bit function argument 0x%016" PRIx64 "\n", arg2); >> + } >> + return false; >> +} > You will of course be printing that error when run on a 64-bit host. No. See the comment in the code where a 64 bit host is handled. > If you're going to go this way, rather than changing to rely on libffi, > then you'll also need to detect TCG_TARGET_EXTEND_ARGS for 64-bit hosts. Ok. I had not noticed that macro TCG_TARGET_EXTEND_ARGS before, but can try to fix that in a separate patch. For ARM and similar hosts, the current patch does its job. > Or perhaps skip that detection and define it always. It's more likely > to be right than not doing it. This will break if MIPS64 were added, > but then we'd have to extend tcg_gen_callN for that anyway. Would this break x86_64 hosts? They don't define it as far as I could see.