]> gcc.gnu.org Git - gcc.git/commit
aarch64: Add support for _BitInt
authorAndre Vieira <andre.simoesdiasvieira@arm.com>
Wed, 10 Apr 2024 15:29:46 +0000 (16:29 +0100)
committerAndre Vieira <andre.simoesdiasvieira@arm.com>
Wed, 10 Apr 2024 15:47:15 +0000 (16:47 +0100)
commit5aa3fec38cc6f52285168b161bab1a869d864b44
tree240b76a5c4d738f997556a7e8c6f84894b3425e4
parent3a787e038fe3549d6ec9ec9aa6416dcbba664fd9
aarch64: Add support for _BitInt

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 (softfp_extras): Add floatbitinthf,
floatbitintbf, floatbitinttf and fixtfbitint.
* config/aarch64/libgcc-softfp.ver (GCC_14.0.0): Add __floatbitinthf,
__floatbitintbf, __floatbitinttf and __fixtfbitint.

gcc/testsuite/ChangeLog:

* gcc.target/aarch64/bitint-alignments.c: New test.
* gcc.target/aarch64/bitint-args.c: New test.
* gcc.target/aarch64/bitint-sizes.c: New test.
* gcc.target/aarch64/bitfield-bitint-abi.h: New header.
* gcc.target/aarch64/bitfield-bitint-abi-align16.c: New test.
* gcc.target/aarch64/bitfield-bitint-abi-align8.c: New test.
gcc/config/aarch64/aarch64.cc
gcc/testsuite/gcc.target/aarch64/bitfield-bitint-abi-align16.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/bitfield-bitint-abi-align8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/bitfield-bitint-abi.h [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/bitint-alignments.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/bitint-args.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/bitint-sizes.c [new file with mode: 0644]
libgcc/config/aarch64/libgcc-softfp.ver
libgcc/config/aarch64/t-softfp
This page took 0.057847 seconds and 5 git commands to generate.