Adding a vector type will make it easier to handle i386
have_atomic16 via AVX.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
include/qemu/int128.h | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/include/qemu/int128.h b/include/qemu/int128.h
index f62a46b48c..f29f90e6f4 100644
--- a/include/qemu/int128.h
+++ b/include/qemu/int128.h
@@ -479,16 +479,16 @@ static inline void bswap128s(Int128 *s)
/*
* When compiler supports a 128-bit type, define a combination of
* a possible structure and the native types. Ease parameter passing
- * via use of the transparent union extension.
+ * via use of the transparent union extension. Provide a vector type
+ * for use in atomicity on some hosts.
*/
-#ifdef CONFIG_INT128
typedef union {
Int128 s;
+ uint64_t v __attribute__((vector_size(16)));
+#ifdef CONFIG_INT128
__int128_t i;
__uint128_t u;
-} Int128Alias __attribute__((transparent_union));
-#else
-typedef Int128 Int128Alias;
#endif /* CONFIG_INT128 */
+} Int128Alias __attribute__((transparent_union));
#endif /* INT128_H */