Browse Source

powerpc: simplify csum_add(a, b) in case a or b is constant 0

Simplify csum_add(a, b) in case a or b is constant 0

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Scott Wood <oss@buserror.net>
Christophe Leroy 10 years ago
parent
commit
5a8847c83c
1 changed files with 6 additions and 0 deletions
  1. 6 0
      arch/powerpc/include/asm/checksum.h

+ 6 - 0
arch/powerpc/include/asm/checksum.h

@@ -119,7 +119,13 @@ static inline __wsum csum_add(__wsum csum, __wsum addend)
 {
 {
 #ifdef __powerpc64__
 #ifdef __powerpc64__
 	u64 res = (__force u64)csum;
 	u64 res = (__force u64)csum;
+#endif
+	if (__builtin_constant_p(csum) && csum == 0)
+		return addend;
+	if (__builtin_constant_p(addend) && addend == 0)
+		return csum;
 
 
+#ifdef __powerpc64__
 	res += (__force u64)addend;
 	res += (__force u64)addend;
 	return (__force __wsum)((u32)res + (res >> 32));
 	return (__force __wsum)((u32)res + (res >> 32));
 #else
 #else