On Tue, May 20, 2025 at 11:29:12AM +0800, Yang Yujie wrote:
> This patch adds support for C23's _BitInt for LoongArch.
> 
> Though there's not an official psABI definition, our plan
> is to have 16-byte alignment for N > 64 and the padding bits
> sign/zero-extended when passed between procedures.
> 
> One exception would be "unsigned _BitInt(32)". To match the
> behavior of "unsigned int" in the current LP64 ABIs, it is
> sign-extended when stored in a 64-bit GPR as a function
> argument or return value.
> 
>       PR target/117599
> 
> gcc/ChangeLog:
> 
>       * config/loongarch/loongarch.h: Define a PROMOTE_MODE case for
>         small _BitInts.
>       * config/loongarch/loongarch.cc (loongarch_promote_function_mode):
>         Same.

8 spaces instead of tab.

>       (loongarch_bitint_type_info): New function.
>       (TARGET_C_BITINT_TYPE_INFO): Declare.
> 
> libgcc/ChangeLog:
> 
>       * config/loongarch/t-softfp-tf: Enable _BitInt helper functions.

You also need to arrange to export the _BitInt support routines from
libgcc_s.so.1.  Before r16-758-g35fd4abd3b9631 some of them would be
exported at GCC_14.0.0 symbol version which is incorrect, GCC 14 nor
15 didn't support _BitInt on loongarch.  And the tf related mode
ones weren't exported anyway.  Please export all the new ones
at GCC_16.0.0.

BTW, does loongarch have HFmode or BFmode support?
If yes, those should be enabled for _BitInt too.

        Jakub

Reply via email to