Re: [Qemu-devel] [PATCH 1/5] tcg: Split CONFIG_ATOMIC128

2018-08-20 Thread Richard Henderson
On 08/17/2018 09:42 AM, Emilio G. Cota wrote: >> +/* Through gcc 8, aarch64 has no support for 128-bit at all. */ >> +static inline Int128 atomic16_cmpxchg(Int128 *ptr, Int128 cmp, Int128 new) >> +{ >> +uint64_t cmpl = cmp, cmph = cmp >> 64; >> +uint64_t newl = new, newh = new >> 64; > Her

Re: [Qemu-devel] [PATCH 1/5] tcg: Split CONFIG_ATOMIC128

2018-08-18 Thread Emilio G. Cota
On Wed, Aug 15, 2018 at 19:54:48 -0700, Richard Henderson wrote: > GCC7+ will no longer advertise support for 16-byte __atomic operations > if only cmpxchg is supported, as for x86_64. Fortunately, x86_64 still > has support for __sync_compare_and_swap_16 and we can make use of that. > AArch64 doe

Re: [Qemu-devel] [PATCH 1/5] tcg: Split CONFIG_ATOMIC128

2018-08-17 Thread Emilio G. Cota
On Wed, Aug 15, 2018 at 19:54:48 -0700, Richard Henderson wrote: > GCC7+ will no longer advertise support for 16-byte __atomic operations > if only cmpxchg is supported, as for x86_64. Fortunately, x86_64 still > has support for __sync_compare_and_swap_16 and we can make use of that. > AArch64 doe

[Qemu-devel] [PATCH 1/5] tcg: Split CONFIG_ATOMIC128

2018-08-15 Thread Richard Henderson
GCC7+ will no longer advertise support for 16-byte __atomic operations if only cmpxchg is supported, as for x86_64. Fortunately, x86_64 still has support for __sync_compare_and_swap_16 and we can make use of that. AArch64 does not have, nor ever has had such support, so open-code it. Signed-off-b