gcc/libgcc/config
Georg-Johann Lay 85d768f349 re PR target/54222 ([avr] Implement fixed-point support)
gcc/
	PR target/54222
	* config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
	* config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
	(round<mode>3, round<mode>3_const): New expanders for fixed-mode.
	(*round<mode>3.libgcc): New insns for fixed-modes.
	* config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
	(ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
	(ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
	* config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
	implementations.  Define to __builtin_avr_absFX,
	__builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
	(roundFX, countlsFX): Define to __builtin_avr_roundFX,
	__builtin_avr_countlsFX, respectively.
	* config/avr/avr-c.c (target.h): Include it.
	(enum avr_builtin_id): New enum.
	(avr_resolve_overloaded_builtin): New static function.
	(avr_register_target_pragmas): Use it to set
	targetm.resolve_overloaded_builtin.
	* config/avr/avr.c (avr_init_builtins): Supply myriads of local
	tree nodes used by DEF_BUILTIN.
	(avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
	(avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
	<AVR_BUILTIN_xxBITS>: Same.
	
libgcc/
	PR target/54222
	* config/avr/lib2funcs.c: New C sources for modules for libgcc.a.
	* config/avr/lib2-object.mk: New iterator to build objects from it.
	* config/avr/t-avr: Iterate lib2-object.mk to build objects from
	lib2funcs.c.
	(LIB2FUNCS_EXCLUDE): Add _clrsbdi2.
	(LIB1ASMFUNCS): Add: _ssabs_1, _mask1, _ret, _roundqq3, _rounduqq3,
	_round_s2, _round_u2, _round_2_const, _addmask_2, _round_s4,
	_round_u4, _round_4_const, _addmask_4, _round_x8, _rounddq3
	_roundudq3, _roundda3 _rounduda3, _roundta3 _rounduta3.
	* config/avr/lib1funcs-fixed.S: Implement them.

gcc/testsuite/
	PR target/54222
	* gcc.target/avr/torture/builtins-4-roundfx.c: New test.
	* gcc.target/avr/torture/builtins-5-countlsfx.c: New test.

From-SVN: r195878
2013-02-08 10:13:37 +00:00
..
aarch64 Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
alpha Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
arm Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
avr re PR target/54222 ([avr] Implement fixed-point support) 2013-02-08 10:13:37 +00:00
bfin Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
c6x Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
cr16 Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
cris Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
epiphany Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
fr30 Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
frv Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
h8300 Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
i386 Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
ia64 Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
iq2000 Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
libbid Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
lm32 Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
m32c Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
m32r Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
m68k Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
mcore Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
mep Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
microblaze Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
mips Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
mmix Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
moxie Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
pa Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
pdp11
picochip Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
rl78 Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
rs6000 Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
rx Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
s390 Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
score Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
sh Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
sparc Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
spu Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
stormy16 Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
tilegx
tilepro Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
v850 Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
vax Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
vms Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
xtensa Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
darwin-64.c Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
darwin-crt3.c Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
darwin-crt-tm.c Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
gmon-sol2.c
gthr-lynx.h Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
gthr-rtems.h Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
gthr-vxworks.h Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
libgcc-glibc.ver Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
libgcc-libsystem.ver
no-sfp-machine.h
no-unwind.h
t-crtfm
t-crtstuff-pic
t-darwin
t-dfprules
t-eh-dw2-dip
t-fdpbit
t-fixedpoint-gnu-prefix
t-fpbit
t-freebsd-thread
t-gnu-prefix
t-libgcc-pic
t-libunwind
t-libunwind-elf Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
t-linux
t-openbsd-thread
t-rtems
t-slibgcc Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
t-slibgcc-darwin
t-slibgcc-elf-ver
t-slibgcc-gld
t-slibgcc-gld-nover
t-slibgcc-hpux
t-slibgcc-libgcc Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
t-slibgcc-nolc-override
t-slibgcc-sld
t-slibgcc-vms
t-softfp Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
t-softfp-excl
t-softfp-sfdf
t-softfp-tf
t-sol2 Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
t-stack
t-tls
t-vxworks
unwind-dw2-fde-darwin.c Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
vxlib-tls.c Update copyright in libgcc. 2013-02-04 19:06:20 +00:00
vxlib.c Update copyright in libgcc. 2013-02-04 19:06:20 +00:00