TUESDAY, SEPTEMBER 1, 2026
avr
AVR: Implement 32-bit saturated fract multiplications.
AVR libgcc now supports 32-bit saturated fractional multiplications.
This commit adds support for 32-bit saturated fractional multiplications (SQmode and USQmode) to libgcc for the AVR target. These new multiplication functions, __mulsq3 and __ssmulsq3, adhere to the default AVR ABI.
In Details
libgcc for AVR now includes implementations for 32-bit saturated fractional multiplications (__mulsq3 and __ssmulsq3). These were previously missing and are now provided to align with the AVR ABI, extending the target's support for fractional arithmetic.
For Context
- AVR
- A family of microcontrollers developed by Atmel (now Microchip Technology).
- libgcc
- GCC's runtime library, providing essential functions for compiled programs, such as integer division, exception handling, and support for hardware features.
- saturated multiplication
- A multiplication operation where the result is clamped to the maximum or minimum representable value if it overflows.
- fractional multiplication
- Multiplication of fixed-point or fractional numbers, where the result represents a fraction of the original numbers.