This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[Patch,avr] Remove fixed-point MUL and DIV routines from libgcc build
- From: Georg-Johann Lay <avr at gjlay dot de>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Denis Chertykov <chertykov at gmail dot com>, Eric Weddington <eric dot weddington at atmel dot com>
- Date: Mon, 28 Jan 2013 18:06:29 +0100
- Subject: [Patch,avr] Remove fixed-point MUL and DIV routines from libgcc build
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)))