diff options
| author | Richard Henderson <richard.henderson@linaro.org> | 2023-05-24 08:14:41 -0700 |
|---|---|---|
| committer | Richard Henderson <richard.henderson@linaro.org> | 2023-05-30 09:51:11 -0700 |
| commit | 6479dd74f14d51f207509aa1b77b039b7bd32bff (patch) | |
| tree | b2dc0c1ad09c6f5f0488ec031b301a678fbdeef9 /include/qemu/int128.h | |
| parent | 9e0e6a7e8e2351ca757f08f491ef99bbc2afd548 (diff) | |
| download | focaccia-qemu-6479dd74f14d51f207509aa1b77b039b7bd32bff.tar.gz focaccia-qemu-6479dd74f14d51f207509aa1b77b039b7bd32bff.zip | |
meson: Split test for __int128_t type from __int128_t arithmetic
Older versions of clang have missing runtime functions for arithmetic with -fsanitize=undefined (see 464e3671f9d5c), so we cannot use __int128_t for implementing Int128. But __int128_t is present, data movement works, and it can be used for atomic128. Probe for both CONFIG_INT128_TYPE and CONFIG_INT128, adjust qemu/int128.h to define Int128Alias if CONFIG_INT128_TYPE, and adjust the meson probe for atomics to use has_int128_type. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'include/qemu/int128.h')
| -rw-r--r-- | include/qemu/int128.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/qemu/int128.h b/include/qemu/int128.h index 9e46cfaefc..73624e8be7 100644 --- a/include/qemu/int128.h +++ b/include/qemu/int128.h @@ -481,7 +481,7 @@ static inline void bswap128s(Int128 *s) * a possible structure and the native types. Ease parameter passing * via use of the transparent union extension. */ -#ifdef CONFIG_INT128 +#ifdef CONFIG_INT128_TYPE typedef union { __uint128_t u; __int128_t i; @@ -489,6 +489,6 @@ typedef union { } Int128Alias __attribute__((transparent_union)); #else typedef Int128 Int128Alias; -#endif /* CONFIG_INT128 */ +#endif /* CONFIG_INT128_TYPE */ #endif /* INT128_H */ |