diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2002-04-26 21:34:58 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2002-04-26 21:34:58 +0000 |
commit | d50c0d253420175d8d2795ba6cd81b6fae0b8ebe (patch) | |
tree | 6354c87e3f8fb930acfea81f612e37ba5ea6c861 /cpukit/libnetworking/netinet/in_cksum_i386.h | |
parent | 2001-04-22 Joel Sherrill <joel@OARcorp.com> (diff) | |
download | rtems-d50c0d253420175d8d2795ba6cd81b6fae0b8ebe.tar.bz2 |
2002-04-26 Eric Norum <eric.norum@usask.ca>
* netinet/in_cksum_i386.c: Add volatile so the more agressive
optimization in gcc 3.1 does not reorder things.
Diffstat (limited to '')
-rw-r--r-- | cpukit/libnetworking/netinet/in_cksum_i386.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/cpukit/libnetworking/netinet/in_cksum_i386.h b/cpukit/libnetworking/netinet/in_cksum_i386.h index 0612c5a7c4..a64bd57832 100644 --- a/cpukit/libnetworking/netinet/in_cksum_i386.h +++ b/cpukit/libnetworking/netinet/in_cksum_i386.h @@ -19,10 +19,14 @@ * Thanks to gcc we don't have to guess * which registers contain sum & w. */ -#define ADD(n) asm("addl " #n "(%2), %0" : "=r" (sum) : "0" (sum), "r" (w)) -#define ADDC(n) asm("adcl " #n "(%2), %0" : "=r" (sum) : "0" (sum), "r" (w)) -#define LOAD(n) asm volatile("movb " #n "(%1), %0" : "=r" (junk) : "r" (w)) -#define MOP asm("adcl $0, %0" : "=r" (sum) : "0" (sum)) +#define ADD(n) __asm__ volatile \ + ("addl " #n "(%2), %0" : "=r" (sum) : "0" (sum), "r" (w)) +#define ADDC(n) __asm__ volatile \ + ("adcl " #n "(%2), %0" : "=r" (sum) : "0" (sum), "r" (w)) +#define LOAD(n) __asm__ volatile \ + ("movb " #n "(%1), %0" : "=r" (junk) : "r" (w)) +#define MOP __asm__ volatile \ + ("adcl $0, %0" : "=r" (sum) : "0" (sum)) int in_cksum(m, len) |