summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mpi/armv6/mpih-mul1.S10
-rw-r--r--mpi/armv6/mpih-mul2.S2
-rw-r--r--mpi/armv6/mpih-mul3.S7
3 files changed, 11 insertions, 8 deletions
diff --git a/mpi/armv6/mpih-mul1.S b/mpi/armv6/mpih-mul1.S
index ae19a153..0aa41efb 100644
--- a/mpi/armv6/mpih-mul1.S
+++ b/mpi/armv6/mpih-mul1.S
@@ -60,18 +60,18 @@ _gcry_mpih_mul_1:
beq .Lend;
.Large_loop:
- mov %r9, #0;
ldm %r1!, {%r5, %r6, %r7, %r8};
+ mov %r9, #0;
mov %r10, #0;
umlal %r4, %r9, %r5, %r3;
mov %r11, #0;
umlal %r9, %r10, %r6, %r3;
- mov %lr, #0;
+ str %r4, [%r0], #4;
+ mov %r4, #0;
umlal %r10, %r11, %r7, %r3;
subs %r2, #4;
- umlal %r11, %lr, %r8, %r3;
- stm %r0!, {%r4, %r9, %r10, %r11};
- mov %r4, %lr;
+ umlal %r11, %r4, %r8, %r3;
+ stm %r0!, {%r9, %r10, %r11};
bne .Large_loop;
.Lend:
diff --git a/mpi/armv6/mpih-mul2.S b/mpi/armv6/mpih-mul2.S
index 02f7c07e..a7eb8a15 100644
--- a/mpi/armv6/mpih-mul2.S
+++ b/mpi/armv6/mpih-mul2.S
@@ -61,8 +61,8 @@ _gcry_mpih_addmul_1:
beq .Lend;
.Large_loop:
- ldm %r0, {%r4, %r6, %r8, %r10};
ldr %r5, [%r1], #4;
+ ldm %r0, {%r4, %r6, %r8, %r10};
sub %r2, #4;
adcs %r4, %lr;
diff --git a/mpi/armv6/mpih-mul3.S b/mpi/armv6/mpih-mul3.S
index e42fc304..034929e5 100644
--- a/mpi/armv6/mpih-mul3.S
+++ b/mpi/armv6/mpih-mul3.S
@@ -63,20 +63,23 @@ _gcry_mpih_submul_1:
.Large_loop:
ldr %r5, [%r1], #4;
- ldm %r0, {%r4, %r6, %r8, %r10};
-
mov %r9, #0;
+ ldr %r4, [%r0, #0];
+
umlal %lr, %r9, %r5, %r3;
+ ldr %r6, [%r0, #4];
ldr %r5, [%r1], #4;
sbcs %r4, %r4, %lr;
mov %lr, #0;
umlal %r9, %lr, %r5, %r3;
+ ldr %r8, [%r0, #8];
ldr %r5, [%r1], #4;
sbcs %r6, %r6, %r9;
mov %r9, #0;
umlal %lr, %r9, %r5, %r3;
+ ldr %r10, [%r0, #12];
ldr %r5, [%r1], #4;
sbcs %r8, %r8, %lr;