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

Reply via email to