On Thu, Jan 25, 2024 at 05:45:01PM +0000, Andre Vieira wrote: > This patch adds support for C23's _BitInt for the AArch64 port when compiling > for little endianness. Big Endianness requires further target-agnostic > support and we therefor disable it for now. > > gcc/ChangeLog: > > * config/aarch64/aarch64.cc (TARGET_C_BITINT_TYPE_INFO): Declare MACRO. > (aarch64_bitint_type_info): New function. > (aarch64_return_in_memory_1): Return large _BitInt's in memory. > (aarch64_function_arg_alignment): Adapt to correctly return the ABI > mandated alignment of _BitInt(N) where N > 128 as the alignment of > TImode. > (aarch64_composite_type_p): Return true for _BitInt(N), where N > 128. > > libgcc/ChangeLog: > > * config/aarch64/t-softfp: Add fixtfbitint, floatbitinttf and > floatbitinthf to the softfp_extras variable to ensure the > runtime support is available for _BitInt.
I think this lacks some config/aarch64/t-whatever.ver additions. See PR113700 for some more details. We want the support routines for binary floating point <-> _BitInt conversions in both libgcc.a and libgcc_s.so.1 and exported from the latter too at GCC_14.0.0 symver, while decimal floating point <-> _BitInt solely in libgcc.a (as with all the huge dfp/bid stuff). Jakub