diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2001-03-09 20:33:35 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2001-03-09 20:33:35 +0000 |
commit | 116674acc97ba75a720329996877077d988443a2 (patch) | |
tree | 6a3f2ff0b612ae2ee8a3f3509370c9e6333a53b3 /include/asm-s390/checksum.h | |
parent | 71118c319fcae4a138f16e35b4f7e0a6d53ce2ca (diff) |
Merge with Linux 2.4.2.
Diffstat (limited to 'include/asm-s390/checksum.h')
-rw-r--r-- | include/asm-s390/checksum.h | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/include/asm-s390/checksum.h b/include/asm-s390/checksum.h index 487ccc99b..cd0159a5b 100644 --- a/include/asm-s390/checksum.h +++ b/include/asm-s390/checksum.h @@ -141,20 +141,19 @@ csum_tcpudp_nofold(unsigned long saddr, unsigned long daddr, unsigned int sum) { __asm__ __volatile__ ( - " sll %3,16\n" - " or %3,%4\n" /* newproto=proto<<16 in hiword, len in lowword */ - " alr %1,%2\n" /* saddr+=daddr */ - " brc 12,0f\n" - " ahi %1,1\n" /* add carry */ - "0: alr %1,%3\n" /* add saddr+=newproto */ - " brc 12,1f\n" - " ahi %1,1\n" /* add carry again */ - "1: alr %0,%1\n" /* sum+=saddr */ + " alr %0,%1\n" /* sum += saddr */ + " brc 12,0f\n" + " ahi %0,1\n" /* add carry */ + "0: alr %0,%2\n" /* sum += daddr */ + " brc 12,1f\n" + " ahi %0,1\n" /* add carry */ + "1: alr %0,%3\n" /* sum += (len<<16) + (proto<<8) */ " brc 12,2f\n" - " ahi %0,1\n" /* add carry again */ + " ahi %0,1\n" /* add carry */ "2:" : "+&d" (sum) - : "d" (saddr), "d" (daddr), "d" (proto), "d" (len) + : "d" (saddr), "d" (daddr), + "d" (((unsigned int) len<<16) + (unsigned int) proto) : "cc" ); return sum; } |