On Thu, Feb 7, 2013 at 11:07 AM, Diego Bernini <diego.bernini@xxxxxxxxx> wrote: > if I not provide any MD statement for multiplication, GCC generates a > > call __mulqi3 > > So I can think to provide an assembly routine "__mulqi3". That is certainly the easiest approach. > But the problem (from my understanding) is how to ensure to save and > restore properly the registers which are used internally by the > routine, and to manage the input and output register sof the routine > properly too. The __mulqi3 function will be called like any function. It can access its parameters and save registers like any function. > I can't find any advice on the web on how to easily implement > multiplication when no a "mul" instruction is provided by the target > architecture ISA. Surely a proper assembly routine must be provided, > but I miss how to "link" it properly. Example: libgcc/config/m68k/lb1sf68.S. It will be used because libgcc/config/m68k/t-floatlib sets LIB1ASMSRC. And libgcc/config.host adds t-floatlib to tmake_file for appropriate targets. Ian