2011/12/13 Georg-Johann Lay <a...@gjlay.de>: > This adds missing 24-Bit multiplication. > > Besides implementing __mulpsi3 in libgcc the patch adds some minor tweaks to > multiply with small numbers and to represent the reduced register footprint of > asm implementations. > > With this patch PR50931 is complete from the target side. > (But there is still a segfault in the frontends, see PR51527) > > Ok for trunk? > > Johann > > libgcc/ > PR target/50931 > * config/avr/t-avr (LIB1ASMSRC): Add _mulpsi3, _mulsqipsi3. > * config/avr/lib1funcs.S (__mulpsi3, __mulsqipsi3): New functions. > gcc/ > PR target/50931 > * config/avr/avr.md (mulpsi3): New expander. > (*umulqihipsi3, *umulhiqipsi3): New insns. > (*mulsqipsi3.libgcc, *mulpsi3.libgcc): New insns. > (mulsqipsi3, *mulpsi3): New insn-and-splits. > (ashlpsi3): Turn to expander. Move insn code to... > (*ashlpsi3): ...this new insn. > testsuite/ > PR target/50931 > * gcc.target/avr/torture/int24-mul.c: New testcase. >
Approved. Denis.