------- Comment #7 from rguenth at gcc dot gnu dot org  2009-06-21 15:40 -------
Well, for a start your asm code shows that you really shouldn't use inline
asm ;)  But ...


    asm( "movl   %%ebx, %0      " : "=m" (t));

you miss an input constraint for %%ebx.  But really - what are you trying to do
here?  The proper way for you asm is to just keep

    asm( "lodsl                 " );
    asm( "mull   %ebx           " );
    asm( "addl   %ecx,   %eax   " );
    asm( "adcl   $0,     %edx   " );
    asm( "addl   (%edi), %eax   " );
    asm( "adcl   $0,     %edx   " );
    asm( "movl   %edx,   %ecx   " );
    asm( "stosl                 " );

merge it into one asm() and not do register allocation manually at all.

Please consult at least the GCC manual for a start, in the section on
C language extensions you will find inline assembly documentation.

Or better, use an assembly file instead of inline asm if you understand
assembly but not inline asm.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40509

Reply via email to