------- Comment #6 from paolo dot bonzini at lu dot unisi dot ch 2007-09-25 14:22 ------- Subject: Re: wrong code for multiple output asm, wrong df?
ubizjak at gmail dot com wrote: > ------- Comment #5 from ubizjak at gmail dot com 2007-09-25 13:58 ------- > (In reply to comment #1) > >> #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ >> __asm__ ("addq %5,%q1\n\tadcq %3,%q0" \ >> : "=r" (sh), "=&r" (sl) \ >> : "0" ((UDItype)(ah)), "rme" ((UDItype)(bh)), \ >> "%1" ((UDItype)(al)), "rme" ((UDItype)(bl))) >> >> marking %0 early-clobbered fixes the problem. > > We also have longlong.h in gcc/ directory, where > > #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ > __asm__ ("addq %5,%1\n\tadcq %3,%0" \ > : "=r" ((UDItype) (sh)), \ > "=&r" ((UDItype) (sl)) \ > : "%0" ((UDItype) (ah)), \ > "rme" ((UDItype) (bh)), \ > "%1" ((UDItype) (al)), \ > "rme" ((UDItype) (bl))) I think that both version ought to work. Paolo -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33552