OSDN Git Service

net: Change x86_64 add32_with_carry to allow memory operand
authorTom Herbert <therbert@google.com>
Fri, 2 May 2014 23:28:40 +0000 (16:28 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 5 May 2014 19:26:29 +0000 (15:26 -0400)
Note add32_with_carry(a, b) is suboptimal, as it forces
a and b in registers.

b could be a memory or a register operand.

Signed-off-by: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/x86/include/asm/checksum_64.h

index 3581761..cd00e17 100644 (file)
@@ -184,7 +184,7 @@ static inline unsigned add32_with_carry(unsigned a, unsigned b)
        asm("addl %2,%0\n\t"
            "adcl $0,%0"
            : "=r" (a)
-           : "0" (a), "r" (b));
+           : "0" (a), "rm" (b));
        return a;
 }