qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] tci: Detect function argument alignment


From: Stefan Weil
Subject: Re: [Qemu-devel] [PATCH] tci: Detect function argument alignment
Date: Thu, 12 Sep 2013 22:40:56 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130803 Thunderbird/17.0.8

Am 12.09.2013 22:29, schrieb Richard Henderson:
> On 09/12/2013 12:45 PM, Stefan Weil wrote:
>> +cat > $TMPC << EOF
>> +#include <stdbool.h>
>> +#include <stdio.h>
>> +#include <stdint.h>
>> +#include <inttypes.h>
>> +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.




reply via email to

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