------- 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