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).