Commit 5990cdee authored by Nathan Chancellor's avatar Nathan Chancellor Committed by Michael Ellerman

lib/mpi: Fix building for powerpc with clang

0day reports over and over on an powerpc randconfig with clang:

lib/mpi/generic_mpih-mul1.c:37:13: error: invalid use of a cast in a
inline asm context requiring an l-value: remove the cast or build with
-fheinous-gnu-extensions

Remove the superfluous casts, which have been done previously for x86
and arm32 in commit dea632ca ("lib/mpi: fix build with clang") and
commit 7b7c1df2 ("lib/mpi/longlong.h: fix building with 32-bit
x86").
Reported-by: default avatarkbuild test robot <lkp@intel.com>
Signed-off-by: default avatarNathan Chancellor <natechancellor@gmail.com>
Acked-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://github.com/ClangBuiltLinux/linux/issues/991
Link: https://lore.kernel.org/r/20200413195041.24064-1-natechancellor@gmail.com
parent feb8e960
...@@ -722,22 +722,22 @@ do { \ ...@@ -722,22 +722,22 @@ do { \
do { \ do { \
if (__builtin_constant_p(bh) && (bh) == 0) \ if (__builtin_constant_p(bh) && (bh) == 0) \
__asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{aze|addze} %0,%2" \ __asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{aze|addze} %0,%2" \
: "=r" ((USItype)(sh)), \ : "=r" (sh), \
"=&r" ((USItype)(sl)) \ "=&r" (sl) \
: "%r" ((USItype)(ah)), \ : "%r" ((USItype)(ah)), \
"%r" ((USItype)(al)), \ "%r" ((USItype)(al)), \
"rI" ((USItype)(bl))); \ "rI" ((USItype)(bl))); \
else if (__builtin_constant_p(bh) && (bh) == ~(USItype) 0) \ else if (__builtin_constant_p(bh) && (bh) == ~(USItype) 0) \
__asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{ame|addme} %0,%2" \ __asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{ame|addme} %0,%2" \
: "=r" ((USItype)(sh)), \ : "=r" (sh), \
"=&r" ((USItype)(sl)) \ "=&r" (sl) \
: "%r" ((USItype)(ah)), \ : "%r" ((USItype)(ah)), \
"%r" ((USItype)(al)), \ "%r" ((USItype)(al)), \
"rI" ((USItype)(bl))); \ "rI" ((USItype)(bl))); \
else \ else \
__asm__ ("{a%I5|add%I5c} %1,%4,%5\n\t{ae|adde} %0,%2,%3" \ __asm__ ("{a%I5|add%I5c} %1,%4,%5\n\t{ae|adde} %0,%2,%3" \
: "=r" ((USItype)(sh)), \ : "=r" (sh), \
"=&r" ((USItype)(sl)) \ "=&r" (sl) \
: "%r" ((USItype)(ah)), \ : "%r" ((USItype)(ah)), \
"r" ((USItype)(bh)), \ "r" ((USItype)(bh)), \
"%r" ((USItype)(al)), \ "%r" ((USItype)(al)), \
...@@ -747,36 +747,36 @@ do { \ ...@@ -747,36 +747,36 @@ do { \
do { \ do { \
if (__builtin_constant_p(ah) && (ah) == 0) \ if (__builtin_constant_p(ah) && (ah) == 0) \
__asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfze|subfze} %0,%2" \ __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfze|subfze} %0,%2" \
: "=r" ((USItype)(sh)), \ : "=r" (sh), \
"=&r" ((USItype)(sl)) \ "=&r" (sl) \
: "r" ((USItype)(bh)), \ : "r" ((USItype)(bh)), \
"rI" ((USItype)(al)), \ "rI" ((USItype)(al)), \
"r" ((USItype)(bl))); \ "r" ((USItype)(bl))); \
else if (__builtin_constant_p(ah) && (ah) == ~(USItype) 0) \ else if (__builtin_constant_p(ah) && (ah) == ~(USItype) 0) \
__asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfme|subfme} %0,%2" \ __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfme|subfme} %0,%2" \
: "=r" ((USItype)(sh)), \ : "=r" (sh), \
"=&r" ((USItype)(sl)) \ "=&r" (sl) \
: "r" ((USItype)(bh)), \ : "r" ((USItype)(bh)), \
"rI" ((USItype)(al)), \ "rI" ((USItype)(al)), \
"r" ((USItype)(bl))); \ "r" ((USItype)(bl))); \
else if (__builtin_constant_p(bh) && (bh) == 0) \ else if (__builtin_constant_p(bh) && (bh) == 0) \
__asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{ame|addme} %0,%2" \ __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{ame|addme} %0,%2" \
: "=r" ((USItype)(sh)), \ : "=r" (sh), \
"=&r" ((USItype)(sl)) \ "=&r" (sl) \
: "r" ((USItype)(ah)), \ : "r" ((USItype)(ah)), \
"rI" ((USItype)(al)), \ "rI" ((USItype)(al)), \
"r" ((USItype)(bl))); \ "r" ((USItype)(bl))); \
else if (__builtin_constant_p(bh) && (bh) == ~(USItype) 0) \ else if (__builtin_constant_p(bh) && (bh) == ~(USItype) 0) \
__asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{aze|addze} %0,%2" \ __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{aze|addze} %0,%2" \
: "=r" ((USItype)(sh)), \ : "=r" (sh), \
"=&r" ((USItype)(sl)) \ "=&r" (sl) \
: "r" ((USItype)(ah)), \ : "r" ((USItype)(ah)), \
"rI" ((USItype)(al)), \ "rI" ((USItype)(al)), \
"r" ((USItype)(bl))); \ "r" ((USItype)(bl))); \
else \ else \
__asm__ ("{sf%I4|subf%I4c} %1,%5,%4\n\t{sfe|subfe} %0,%3,%2" \ __asm__ ("{sf%I4|subf%I4c} %1,%5,%4\n\t{sfe|subfe} %0,%3,%2" \
: "=r" ((USItype)(sh)), \ : "=r" (sh), \
"=&r" ((USItype)(sl)) \ "=&r" (sl) \
: "r" ((USItype)(ah)), \ : "r" ((USItype)(ah)), \
"r" ((USItype)(bh)), \ "r" ((USItype)(bh)), \
"rI" ((USItype)(al)), \ "rI" ((USItype)(al)), \
...@@ -787,7 +787,7 @@ do { \ ...@@ -787,7 +787,7 @@ do { \
do { \ do { \
USItype __m0 = (m0), __m1 = (m1); \ USItype __m0 = (m0), __m1 = (m1); \
__asm__ ("mulhwu %0,%1,%2" \ __asm__ ("mulhwu %0,%1,%2" \
: "=r" ((USItype) ph) \ : "=r" (ph) \
: "%r" (__m0), \ : "%r" (__m0), \
"r" (__m1)); \ "r" (__m1)); \
(pl) = __m0 * __m1; \ (pl) = __m0 * __m1; \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment