mirror of git://gcc.gnu.org/git/gcc.git
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 |
||
|---|---|---|
| .. | ||
| config | ||
| soft-fp | ||
| ChangeLog | ||
| Makefile.in | ||
| config.host | ||
| config.in | ||
| configure | ||
| configure.ac | ||
| crtstuff.c | ||
| dfp-bit.c | ||
| dfp-bit.h | ||
| divmod.c | ||
| empty.mk | ||
| emutls.c | ||
| enable-execute-stack-empty.c | ||
| enable-execute-stack-mprotect.c | ||
| fixed-bit.c | ||
| fixed-bit.h | ||
| fixed-obj.mk | ||
| floatunsidf.c | ||
| floatunsisf.c | ||
| floatunsitf.c | ||
| floatunsixf.c | ||
| fp-bit.c | ||
| fp-bit.h | ||
| gbl-ctors.h | ||
| gen-fixed.sh | ||
| generic-morestack-thread.c | ||
| generic-morestack.c | ||
| generic-morestack.h | ||
| gstdint.h | ||
| gthr-posix.h | ||
| gthr-single.h | ||
| gthr.h | ||
| libgcc-std.ver.in | ||
| libgcc2.c | ||
| libgcc2.h | ||
| libgcov.c | ||
| longlong.h | ||
| memcmp.c | ||
| memcpy.c | ||
| memmove.c | ||
| memset.c | ||
| mkheader.sh | ||
| mkmap-flat.awk | ||
| mkmap-symver.awk | ||
| shared-object.mk | ||
| siditi-object.mk | ||
| static-object.mk | ||
| sync.c | ||
| udivmod.c | ||
| udivmodsi4.c | ||
| unwind-arm-common.inc | ||
| unwind-c.c | ||
| unwind-compat.c | ||
| unwind-compat.h | ||
| unwind-dw2-fde-compat.c | ||
| unwind-dw2-fde-dip.c | ||
| unwind-dw2-fde.c | ||
| unwind-dw2-fde.h | ||
| unwind-dw2.c | ||
| unwind-dw2.h | ||
| unwind-generic.h | ||
| unwind-pe.h | ||
| unwind-seh.c | ||
| unwind-sjlj.c | ||
| unwind.inc | ||