2011/6/28 Georg-Johann Lay <a...@gjlay.de>: > This implements "mulhisi3" and "umulhisi3" widening multiplication > insns if AVR_HAVE_MUL. > > I chose the interface as r25:r22 = r19:r18 * r21:r20 which is ok > because only avr-gcc BE will call respective __* support functions in > libgcc. > > Tested without regression and hand-tested assembler code. > > Johann > > * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3, > _xmulhisi3_exit. > * config/avr/libgcc.S (_xmulhisi3_exit): New Function. > (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp. > (__umulhisi3): Ditto. > * config/avr/avr.md (mulhisi3): New insn expender. > (umulhisi3): New insn expender. > (*mulhisi3_call): New insn. > (*umulhisi3_call): New insn. >
Approved. Denis.