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