aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcus Brinkmann <[email protected]>2017-07-04 21:19:51 +0000
committerMarcus Brinkmann <[email protected]>2017-07-04 21:19:51 +0000
commit782f804765b6f4226fd77843e59f57dcca61b6fb (patch)
treee21652e5a624efd28fb39c31f4f6bc7551eb319d
parentdoc: Fix typo. (diff)
downloadgnupg-782f804765b6f4226fd77843e59f57dcca61b6fb.tar.gz
gnupg-782f804765b6f4226fd77843e59f57dcca61b6fb.zip
mpi: Fix ARM assembler in longlong.h.
* mpi/longlong.h [__arm__] (add_ssaaaa, sub_ddmmss): Add __CLOBBER_CC. [__arm__][__ARM_ARCH <= 3] (umul_ppmm): Add __AND_CLOBBER_CC. -- This is a backport of libgcrypt 8aa4f2161 and 3b1cc9e6c. Signed-off-by: Marcus Brinkmann <[email protected]> GnuPG-bug-id: 3182
-rw-r--r--mpi/longlong.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/mpi/longlong.h b/mpi/longlong.h
index 4905268bd..0a28c670b 100644
--- a/mpi/longlong.h
+++ b/mpi/longlong.h
@@ -189,7 +189,7 @@ extern UDItype __udiv_qrnnd ();
: "%r" ((USItype)(ah)), \
"rI" ((USItype)(bh)), \
"%r" ((USItype)(al)), \
- "rI" ((USItype)(bl)))
+ "rI" ((USItype)(bl)) __CLOBBER_CC)
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
__asm__ ("subs %1, %4, %5\n" \
"sbc %0, %2, %3" \
@@ -198,7 +198,7 @@ extern UDItype __udiv_qrnnd ();
: "r" ((USItype)(ah)), \
"rI" ((USItype)(bh)), \
"r" ((USItype)(al)), \
- "rI" ((USItype)(bl)))
+ "rI" ((USItype)(bl)) __CLOBBER_CC)
#if defined __ARM_ARCH_2__ || defined __ARM_ARCH_3__
#define umul_ppmm(xh, xl, a, b) \
__asm__ ("%@ Inlined umul_ppmm\n" \
@@ -218,7 +218,7 @@ extern UDItype __udiv_qrnnd ();
"=r" ((USItype)(xl)) \
: "r" ((USItype)(a)), \
"r" ((USItype)(b)) \
- : "r0", "r1", "r2")
+ : "r0", "r1", "r2" __AND_CLOBBER_CC)
#else
#define umul_ppmm(xh, xl, a, b) \
__asm__ ("%@ Inlined umul_ppmm\n" \