This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Sparc longlong.h enhancements.
From: Eric Botcazou <ebotcazou@adacore.com>
Date: Thu, 31 May 2012 15:06:41 +0200
>> + do { \
>> + UDItype __carry = 0; \
>> + __asm__ ("addcc\t%r5,%6,%1\n\t" \
>> + "add\t%r3,%4,%0\n\t" \
>> + "movcs\t%%xcc, 1, %2\n\t" \
>> + "add\t%0, %2, %0" \
>>
>> : "=r" ((UDItype)(sh)), \
>>
>> - "=&r" ((UDItype)(sl)) \
>> + "=&r" ((UDItype)(sl)), \
>> + "=&r" (__carry) \
>>
>> : "%rJ" ((UDItype)(ah)), \
>>
>> "rI" ((UDItype)(bh)), \
>> "%rJ" ((UDItype)(al)), \
>> - "rI" ((UDItype)(bl)) \
>> - __CLOBBER_CC)
>> + "rI" ((UDItype)(bl)), \
>> + "2" (__carry) \
>> + __CLOBBER_CC); \
>> + } while (0)
>
> If __carry is used as both source and destination for %2, why not use a single
> operand with the + modifier?
Makes sense, I'll make that change and test it, thanks Eric.