diff options
| author | Stefan Agner <stefan@agner.ch> | 2017-08-07 13:31:20 -0400 |
|---|---|---|
| committer | Herbert Xu <herbert@gondor.apana.org.au> | 2017-08-17 04:53:31 -0400 |
| commit | dea632cadd129d1901efde6b1167a6250b2157fb (patch) | |
| tree | 669bf9f93a2f3a59bc6d6834188544f0eb557d5b | |
| parent | 67adc432f424063cb82dfcb56fa883c7d8f7e9e5 (diff) | |
lib/mpi: fix build with clang
Use just @ to denote comments which works with gcc and clang.
Otherwise clang reports an escape sequence error:
error: invalid % escape in inline assembly string
Use %0-%3 as operand references, this avoids:
error: invalid operand in inline asm: 'umull ${1:r}, ${0:r}, ${2:r}, ${3:r}'
Also remove superfluous casts on output operands to avoid warnings
such as:
warning: invalid use of a cast in an inline asm context requiring an l-value
Signed-off-by: Stefan Agner <stefan@agner.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
| -rw-r--r-- | lib/mpi/longlong.h | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/lib/mpi/longlong.h b/lib/mpi/longlong.h index 93336502af08..57fd45ab7af1 100644 --- a/lib/mpi/longlong.h +++ b/lib/mpi/longlong.h | |||
| @@ -176,8 +176,8 @@ extern UDItype __udiv_qrnnd(UDItype *, UDItype, UDItype, UDItype); | |||
| 176 | #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ | 176 | #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ |
| 177 | __asm__ ("adds %1, %4, %5\n" \ | 177 | __asm__ ("adds %1, %4, %5\n" \ |
| 178 | "adc %0, %2, %3" \ | 178 | "adc %0, %2, %3" \ |
| 179 | : "=r" ((USItype)(sh)), \ | 179 | : "=r" (sh), \ |
| 180 | "=&r" ((USItype)(sl)) \ | 180 | "=&r" (sl) \ |
| 181 | : "%r" ((USItype)(ah)), \ | 181 | : "%r" ((USItype)(ah)), \ |
| 182 | "rI" ((USItype)(bh)), \ | 182 | "rI" ((USItype)(bh)), \ |
| 183 | "%r" ((USItype)(al)), \ | 183 | "%r" ((USItype)(al)), \ |
| @@ -185,15 +185,15 @@ extern UDItype __udiv_qrnnd(UDItype *, UDItype, UDItype, UDItype); | |||
| 185 | #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ | 185 | #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ |
| 186 | __asm__ ("subs %1, %4, %5\n" \ | 186 | __asm__ ("subs %1, %4, %5\n" \ |
| 187 | "sbc %0, %2, %3" \ | 187 | "sbc %0, %2, %3" \ |
| 188 | : "=r" ((USItype)(sh)), \ | 188 | : "=r" (sh), \ |
| 189 | "=&r" ((USItype)(sl)) \ | 189 | "=&r" (sl) \ |
| 190 | : "r" ((USItype)(ah)), \ | 190 | : "r" ((USItype)(ah)), \ |
| 191 | "rI" ((USItype)(bh)), \ | 191 | "rI" ((USItype)(bh)), \ |
| 192 | "r" ((USItype)(al)), \ | 192 | "r" ((USItype)(al)), \ |
| 193 | "rI" ((USItype)(bl))) | 193 | "rI" ((USItype)(bl))) |
| 194 | #if defined __ARM_ARCH_2__ || defined __ARM_ARCH_3__ | 194 | #if defined __ARM_ARCH_2__ || defined __ARM_ARCH_3__ |
| 195 | #define umul_ppmm(xh, xl, a, b) \ | 195 | #define umul_ppmm(xh, xl, a, b) \ |
| 196 | __asm__ ("%@ Inlined umul_ppmm\n" \ | 196 | __asm__ ("@ Inlined umul_ppmm\n" \ |
| 197 | "mov %|r0, %2, lsr #16 @ AAAA\n" \ | 197 | "mov %|r0, %2, lsr #16 @ AAAA\n" \ |
| 198 | "mov %|r2, %3, lsr #16 @ BBBB\n" \ | 198 | "mov %|r2, %3, lsr #16 @ BBBB\n" \ |
| 199 | "bic %|r1, %2, %|r0, lsl #16 @ aaaa\n" \ | 199 | "bic %|r1, %2, %|r0, lsl #16 @ aaaa\n" \ |
| @@ -206,19 +206,19 @@ extern UDItype __udiv_qrnnd(UDItype *, UDItype, UDItype, UDItype); | |||
| 206 | "addcs %|r2, %|r2, #65536\n" \ | 206 | "addcs %|r2, %|r2, #65536\n" \ |
| 207 | "adds %1, %|r1, %|r0, lsl #16\n" \ | 207 | "adds %1, %|r1, %|r0, lsl #16\n" \ |
| 208 | "adc %0, %|r2, %|r0, lsr #16" \ | 208 | "adc %0, %|r2, %|r0, lsr #16" \ |
| 209 | : "=&r" ((USItype)(xh)), \ | 209 | : "=&r" (xh), \ |
| 210 | "=r" ((USItype)(xl)) \ | 210 | "=r" (xl) \ |
| 211 | : "r" ((USItype)(a)), \ | 211 | : "r" ((USItype)(a)), \ |
| 212 | "r" ((USItype)(b)) \ | 212 | "r" ((USItype)(b)) \ |
| 213 | : "r0", "r1", "r2") | 213 | : "r0", "r1", "r2") |
| 214 | #else | 214 | #else |
| 215 | #define umul_ppmm(xh, xl, a, b) \ | 215 | #define umul_ppmm(xh, xl, a, b) \ |
| 216 | __asm__ ("%@ Inlined umul_ppmm\n" \ | 216 | __asm__ ("@ Inlined umul_ppmm\n" \ |
| 217 | "umull %r1, %r0, %r2, %r3" \ | 217 | "umull %1, %0, %2, %3" \ |
| 218 | : "=&r" ((USItype)(xh)), \ | 218 | : "=&r" (xh), \ |
| 219 | "=&r" ((USItype)(xl)) \ | 219 | "=&r" (xl) \ |
| 220 | : "r" ((USItype)(a)), \ | 220 | : "r" ((USItype)(a)), \ |
| 221 | "r" ((USItype)(b)) \ | 221 | "r" ((USItype)(b)) \ |
| 222 | : "r0", "r1") | 222 | : "r0", "r1") |
| 223 | #endif | 223 | #endif |
| 224 | #define UMUL_TIME 20 | 224 | #define UMUL_TIME 20 |
