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 /lib/mpi | |
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>
Diffstat (limited to 'lib/mpi')
-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 |