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

Reply via email to