Hi Segher,you find bug because there is microblaze asm code in generic folder. Big thanks. I'll fix it and I'll look at parameters too.
Michal
+static inline unsigned int+csum_tcpudp_nofold(unsigned long saddr, unsigned long daddr, unsigned short len,+ unsigned short proto, unsigned int sum) +{ + __asm__("add %0, %4, %1\n\t" + "addc %0, %4, %2\n\t" + "addc %0, %4, %3\n\t" + "addc %0, %4, r0\n\t" + : "=d" (sum) + : "d" (saddr), "d" (daddr), "d" (len + proto), + "0"(sum));
"sum" should use an earlyclobber, i.e. "=&d"(sum) , since some inputs are used after %0 is first written to. Also, you can use "+" instead of "=" to say the argument is both input and output, and get rid of %4, if you like. Segher ___________________________ microblaze-uclinux mailing list microblaze-uclinux@xxxxxxxxxxxxxx Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/