1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-02 22:46:30 +02:00

Fixes submitted by James

This commit is contained in:
Werner Koch 2001-05-06 10:53:36 +00:00
parent 432c230348
commit 24d8a7555f
12 changed files with 2012 additions and 1961 deletions

View file

@ -1,3 +1,7 @@
2001-05-06 Werner Koch <wk@gnupg.org>
* longlong.h: Fixes for ARM by Phil Blundell.
2001-04-17 Werner Koch <wk@gnupg.org>
Updated copyright notices.

View file

@ -200,28 +200,27 @@ extern UDItype __udiv_qrnnd ();
"rI" ((USItype)(bh)), \
"r" ((USItype)(al)), \
"rI" ((USItype)(bl)))
#ifdef __ARM_ARCH_3__
/* SAM This does not work on arm4 */
#if defined __ARM_ARCH_2__ || defined __ARM_ARCH_3__
#define umul_ppmm(xh, xl, a, b) \
__asm__ ("%@ Inlined umul_ppmm
mov %|r0, %2, lsr #16
mov %|r2, %3, lsr #16
bic %|r1, %2, %|r0, lsl #16
bic %|r2, %3, %|r2, lsl #16
mul %1, %|r1, %|r2
mul %|r2, %|r0, %|r2
mul %|r1, %0, %|r1
mul %0, %|r0, %0
adds %|r1, %|r2, %|r1
addcs %0, %0, #65536
adds %1, %1, %|r1, lsl #16
adc %0, %0, %|r1, lsr #16" \
mov %|r0, %2, lsr #16 @ AAAA
mov %|r2, %3, lsr #16 @ BBBB
bic %|r1, %2, %|r0, lsl #16 @ aaaa
bic %0, %3, %|r2, lsl #16 @ bbbb
mul %1, %|r1, %|r2 @ aaaa * BBBB
mul %|r2, %|r0, %|r2 @ AAAA * BBBB
mul %|r1, %0, %|r1 @ aaaa * bbbb
mul %0, %|r0, %0 @ AAAA * bbbb
adds %|r0, %1, %0 @ central sum
addcs %|r2, %|r2, #65536
adds %1, %|r1, %|r0, lsl #16
adc %0, %|r2, %|r0, lsr #16" \
: "=&r" ((USItype)(xh)), \
"=r" ((USItype)(xl)) \
: "r" ((USItype)(a)), \
"r" ((USItype)(b)) \
: "r0", "r1", "r2")
#elif __ARM_ARCH_4__
#else
#define umul_ppmm(xh, xl, a, b) \
__asm__ ("%@ Inlined umul_ppmm
umull %r1, %r0, %r2, %r3" \
@ -230,8 +229,6 @@ extern UDItype __udiv_qrnnd ();
: "r" ((USItype)(a)), \
"r" ((USItype)(b)) \
: "r0", "r1")
#else
#error Untested architecture
#endif
#define UMUL_TIME 20
#define UDIV_TIME 100