This removes modules from libgcc that are already supported by avr-specific
fixed-point implementation and avoids duplicate functions like __mulsa3.
Ok for trunk?
Johann
libgcc/
* config/avr/t-avr (LIB2FUNCS_EXCLUDE): Add:
_mulQQ, _mulHQ, _mulHA, _mulSA,
_mulUQQ, _mulUHQ, _mulUHA, _mulUSA,
_divQQ, _divHQ, _divHA, _divSA,
_divUQQ, _divUHQ, _divUHA, _divUSA.
Index: config/avr/t-avr
===
--- config/avr/t-avr (revision 195301)
+++ config/avr/t-avr (working copy)
@@ -164,3 +164,17 @@ LIB2FUNCS_EXCLUDE += \
LIB2FUNCS_EXCLUDE += \
$(foreach func,_usadd _ussub _usneg,\
$(foreach mode,$(usat_modes),$(func_X)))
+
+
+smul_modes = QQ HQ HA SA
+umul_modes = UQQ UHQ UHA USA
+sdiv_modes = QQ HQ HA SA
+udiv_modes = UQQ UHQ UHA USA
+
+LIB2FUNCS_EXCLUDE += \
+ $(foreach func,_mul,\
+ $(foreach mode,$(smul_modes) $(umul_modes),$(func_X)))
+
+LIB2FUNCS_EXCLUDE += \
+ $(foreach func,_div,\
+ $(foreach mode,$(sdiv_modes) $(udiv_modes),$(func_X)))