mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-28 20:41:52 -06:00
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 464e3671f9
), 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>
This commit is contained in:
parent
9e0e6a7e8e
commit
6479dd74f1
2 changed files with 12 additions and 7 deletions
|
@ -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 */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue