[v2,2/2] powerpc32: add support for csum_add()

christophe leroy christophe.leroy at c-s.fr
Wed Apr 29 05:01:24 AEST 2015



Le 25/03/2015 02:30, Scott Wood a écrit :
> On Tue, Feb 03, 2015 at 12:39:27PM +0100, LEROY Christophe wrote:
>> The C version of csum_add() as defined in include/net/checksum.h gives the
>> following assembly:
>>         0:       7c 04 1a 14     add     r0,r4,r3
>>         4:       7c 64 00 10     subfc   r3,r4,r0
>>         8:       7c 63 19 10     subfe   r3,r3,r3
>>         c:       7c 63 00 50     subf    r3,r3,r0
>>
>> include/net/checksum.h also offers the possibility to define an arch specific
>> function.
>> This patch provides a ppc32 specific csum_add() inline function.
> What makes it 32-bit specific?
>
>
As far as I understand, the 64-bit will do a 64 bit addition, so we will 
have to handle differently the carry, can't just be an addze like in 32-bit.

The generated code is most likely different on ppc64. I have no ppc64 
compiler so I can't check what gcc generates for the following code:

|__wsumcsum_add(__wsum csum,  __wsum addend)
{
	u32 res= (__force u32)csum;
	res+= (__force u32)addend;
	return  (__force __wsum)(res+ (res< (__force u32)addend));
}|


Can someone with a ppc64 compiler tell what we get ?

Christophe


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20150428/9d5ef879/attachment.html>


More information about the Linuxppc-dev mailing list