gnu/gcc/eb738824d502d5f6da77451d5105091b8a7db92d AVR: Add 64-bit fixed-point divisions to libgcc.
This adds 64-bit saturated fixed-point divisions to lib1funcs-fixed.S.
The ordinary divisions are just aliases of the saturating ones.
Rounding is towards zero.
libgcc/
* config/avr/t-avr (FUNCS_notiny): Add _udivuQ64_common, _udivuda3,
_udivuta3, _udivudq3, _divda3, _divta3, _divdq3, _divQ64_tail.
* config/avr/lib1funcs-fixed.S (__udivuta3, __usdivuta3)
(__udivudq3, __usdivudq3, __udivuda3, __usdivuda3)
(__udivuQ64_common, __divda3, __ssdivda3, __divta3, __ssdivta3)
(__divdq3, __ssdivdq3, __divQ64_tail): New functions.
gcc/testsuite/
* gcc.target/avr/fx64-div-1.c: New test.
* gcc.target/avr/fx64-div-2.c: New test.
* gcc.target/avr/fx64-div-3.c: New test.
* gcc.target/avr/fx64-mul.h: Rename to...
* gcc.target/avr/fx64.h: ...this.
* gcc.target/avr/fx64-mul-1.c: Same.
* gcc.target/avr/fx64-mul-2.c: Same.
8 files changed