Adjust decimal point of signed accum mode to GCC default.
commite13d9d5aebf7198e9b92b909f51ec058b07c2f90
authorGeorg-Johann Lay <avr@gjlay.de>
Thu, 22 Nov 2012 10:00:13 +0000 (22 10:00 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Thu, 22 Nov 2012 10:00:13 +0000 (22 10:00 +0000)
treeeabc8ea539916ca2cfbd3ccf1d3efabdd0791b90
parent5eb4cb476809652a10652ff9577fb7ede71b80e5
Adjust decimal point of signed accum mode to GCC default.

libgcc/
Adjust decimal point of signed accum mode to GCC default.

PR target/54222
* config/avr/t-avr (LIB1ASMFUNCS): Add _fractsfsq _fractsfusq,
_divqq_helper.
* config/avr/lib1funcs-fixed.S (__fractqqsf, __fracthqsf)
(__fractsasf, __fractsfha, __fractusqsf, __fractsfsa)
(__mulha3, __mulsa3)
(__divqq3, __divha3, __divsa3): Adjust to new position of
decimal point of signed accum types.

(__mulusa3_round): New function.
(__mulusa3): Use it.
(__divqq_helper): New function.
(__udivuqq3): Use it.

gcc/
Adjust decimal point of signed accum mode to GCC default.

PR target/54222
* config/avr/avr-modes.def (HA, SA, DA): Remove mode adjustments.
(TA): Move decimal point one bit to the right.
* config/avr/avr.c (avr_out_fract): Rewrite.

From-SVN: r193721
gcc/ChangeLog
gcc/config/avr/avr-modes.def
gcc/config/avr/avr.c
libgcc/ChangeLog
libgcc/config/avr/lib1funcs-fixed.S
libgcc/config/avr/t-avr