https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117596
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Georg-Johann Lay from comment #1)
> All I can find is TARGET_C_BITINT_TYPE_INFO.
>
> * Where to specify that addition should be implemented by a libgcc function
> like addbitint3?
Nowhere, the _BitInt lowering code has no support of library calls except for
multiplication, division and conversions to/from floating point (including
decimal floating point).
> * There are libgcc modules like _mulbitint3.o but they are empty. How to add
> them to, say LIB1ASMFUNCS?
They shouldn't be empty if __BITINT_MAXWIDTH__ etc. macros are predefined.
And those macros are predefined when
targetm.c.bitint_type_info (WIDE_INT_MAX_PRECISION - 1, &info)
is true.
> * Where to specify the limb size for libgcc functions?
Just in the bitint_type_info hook.
(In reply to Georg-Johann Lay from comment #2)
> ...what I currently have for trying is this addition to avr.cc:
>
> static bool
> avr_c_bitint_type_info (int n, struct bitint_info *info)
> {
> info->abi_limb_mode = QImode;
> info->limb_mode = QImode;
> info->big_endian = false;
> info->extended = false;
>
> return n <= 1024;
Why? If you just return true; here, it should work (at least perhaps with some
minor libgcc Makefile fragment tweaks so that all the needed routines are
built).