svn commit: r194111 - head/sys/i386/include
Ed Schouten
ed at FreeBSD.org
Sat Jun 13 14:00:12 UTC 2009
Author: ed
Date: Sat Jun 13 14:00:10 2009
New Revision: 194111
URL: http://svn.freebsd.org/changeset/base/194111
Log:
Clobber "cc" instead of using volatile; remove obsolete register keyword.
Submitted by: Christoph Mallon
Modified:
head/sys/i386/include/in_cksum.h
Modified: head/sys/i386/include/in_cksum.h
==============================================================================
--- head/sys/i386/include/in_cksum.h Sat Jun 13 13:56:06 2009 (r194110)
+++ head/sys/i386/include/in_cksum.h Sat Jun 13 14:00:10 2009 (r194111)
@@ -57,9 +57,9 @@
static __inline u_int
in_cksum_hdr(const struct ip *ip)
{
- register u_int sum = 0;
+ u_int sum = 0;
- __asm __volatile (
+ __asm(
"addl %1, %0\n"
"adcl %2, %0\n"
"adcl %3, %0\n"
@@ -72,6 +72,7 @@ in_cksum_hdr(const struct ip *ip)
"g" (((const u_int32_t *)ip)[2]),
"g" (((const u_int32_t *)ip)[3]),
"g" (((const u_int32_t *)ip)[4])
+ : "cc"
);
sum = (sum & 0xffff) + (sum >> 16);
if (sum > 0xffff)
@@ -91,12 +92,12 @@ in_cksum_update(struct ip *ip)
static __inline u_short
in_addword(u_short sum, u_short b)
{
- /* __volatile is necessary because the condition codes are used. */
- __asm __volatile (
+ __asm(
"addw %1, %0\n"
"adcw $0, %0"
: "+r" (sum)
- : "r" (b)
+ : "g" (b)
+ : "cc"
);
return (sum);
}
@@ -104,14 +105,14 @@ in_addword(u_short sum, u_short b)
static __inline u_short
in_pseudo(u_int sum, u_int b, u_int c)
{
- /* __volatile is necessary because the condition codes are used. */
- __asm __volatile (
+ __asm(
"addl %1, %0\n"
"adcl %2, %0\n"
"adcl $0, %0"
: "+r" (sum)
: "g" (b),
"g" (c)
+ : "cc"
);
sum = (sum & 0xffff) + (sum >> 16);
if (sum > 0xffff)
More information about the svn-src-all
mailing list