re PR target/54222 ([avr] Implement fixed-point support)
authorGeorg-Johann Lay <avr@gjlay.de>
Fri, 25 Jan 2013 09:28:09 +0000 (09:28 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Fri, 25 Jan 2013 09:28:09 +0000 (09:28 +0000)
commit556f9906c548af7332f7f274f9e05cacfaeb64a6
tree918c673cf4287a1ff60b0fbe521ff2d09b487c88
parent1f546bbbc4dcc9cf044310cf0eafb091415df614
re PR target/54222 ([avr] Implement fixed-point support)

gcc/
PR target/54222
* config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
Add NULL LIBNAME argument to existing definitions.
(ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
* config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
* config/avr/avr.c (DEF_BUILTIN): Same.
(avr_init_builtins): Pass down LIBNAME to add_builtin_function.
(avr_expand_builtin): Expand to a vanilla call if a libgcc
implementation is available (DECL_ASSEMBLER_NAME is set).
(avr_fold_absfx): New static function.
(avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
AVR_BUILTIN_ABSLLK.
* config/avr/stdfix.h (abshr, absr, abslr, absllr)
(abshk, absk, abslk, absllk): Provide as static inline functions.

gcc/testsuite/
PR target/54222
* gcc.target/avr/torture/builtins-3-absfx.c: New test.

From-SVN: r195464
gcc/ChangeLog
gcc/config/avr/avr-c.c
gcc/config/avr/avr.c
gcc/config/avr/builtins.def
gcc/config/avr/stdfix.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/avr/torture/builtins-3-absfx.c [new file with mode: 0644]