From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58546) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VKE4Z-0004Pd-2G for qemu-devel@nongnu.org; Thu, 12 Sep 2013 17:05:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VKE4P-0000T5-9Q for qemu-devel@nongnu.org; Thu, 12 Sep 2013 17:05:07 -0400 Received: from mail-oa0-x22d.google.com ([2607:f8b0:4003:c02::22d]:33357) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VKE4P-0000Sy-3l for qemu-devel@nongnu.org; Thu, 12 Sep 2013 17:04:57 -0400 Received: by mail-oa0-f45.google.com with SMTP id m6so384333oag.18 for ; Thu, 12 Sep 2013 14:04:56 -0700 (PDT) Sender: Richard Henderson Message-ID: <52322C74.1010504@twiddle.net> Date: Thu, 12 Sep 2013 14:04:52 -0700 From: Richard Henderson MIME-Version: 1.0 References: <1379015124-21055-1-git-send-email-sw@weilnetz.de> <52322446.9000401@twiddle.net> <523226D8.5010008@weilnetz.de> In-Reply-To: <523226D8.5010008@weilnetz.de> 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: Stefan Weil Cc: Peter Maydell , qemu-devel On 09/12/2013 01:40 PM, Stefan Weil wrote: > 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. Oh, I see that now, sorry. >> 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. Any 64-bit host that doesn't define TCG_TARGET_EXTEND_ARGS has an abi that considers the high bits of a 32-bit parameter to be garbage. Thus extending the value on x86_64 host is unused work, but certainly not harmful. r~