Re: [Patch,avr] Remove fixed-point MUL and DIV routines from libgcc build

2013-01-28 Thread Denis Chertykov
2013/1/28 Georg-Johann Lay :
> 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.

Approved.

Denis.


[Patch,avr] Remove fixed-point MUL and DIV routines from libgcc build

2013-01-28 Thread Georg-Johann Lay
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)))