[Gmp-commit] /var/hg/gmp: 2 new changesets
mercurial at gmplib.org
mercurial at gmplib.org
Fri Apr 27 11:15:39 CEST 2012
details: /var/hg/gmp/rev/2089eb0fd935
changeset: 14900:2089eb0fd935
user: Torbjorn Granlund <tege at gmplib.org>
date: Fri Apr 27 11:10:46 2012 +0200
description:
Avoid v6 instructions.
details: /var/hg/gmp/rev/9068add0d4fb
changeset: 14901:9068add0d4fb
user: Torbjorn Granlund <tege at gmplib.org>
date: Fri Apr 27 11:15:36 2012 +0200
description:
Put new mode1o file in its proper place.
diffstat:
ChangeLog | 2 +-
mpn/arm/mode1o.asm | 10 +++---
mpn/arm/v6/mode1o.asm | 75 -------------------------------------------------
mpn/arm/v6t2/mode1o.asm | 75 +++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 81 insertions(+), 81 deletions(-)
diffs (201 lines):
diff -r 448b5bfea636 -r 9068add0d4fb ChangeLog
--- a/ChangeLog Fri Apr 27 02:17:29 2012 +0200
+++ b/ChangeLog Fri Apr 27 11:15:36 2012 +0200
@@ -6,7 +6,7 @@
* mpn/arm/v6t2/gcd_1.asm: New file.
* mpn/arm/mode1o.asm: New file.
- * mpn/arm/v6/mode1o.asm: New file.
+ * mpn/arm/v6t2/mode1o.asm: New file.
* mpn/arm/arm-defs.m4 (LEA): New define.
* mpn/arm/invert_limb.asm: Use LEA.
diff -r 448b5bfea636 -r 9068add0d4fb mpn/arm/mode1o.asm
--- a/mpn/arm/mode1o.asm Fri Apr 27 02:17:29 2012 +0200
+++ b/mpn/arm/mode1o.asm Fri Apr 27 11:15:36 2012 +0200
@@ -42,9 +42,9 @@
ldr r5, [up], #4 C up[0]
- ubfx r12, d, #1, #7
- ldrb r4, [r4, r12]
- smulbb r12, r4, r4
+ and r12, d, #254
+ ldrb r4, [r4, r12, lsr #1]
+ mul r12, r4, r4
mul r12, d, r12
rsb r12, r12, r4, asl #1
mul r4, r12, r12
@@ -59,12 +59,12 @@
sub n, n, #1
mul r12, r4, cy
tst n, n
- umull r12, cy, r12, d
+ umull r12, cy, d, r12
bne L(top)
L(end): sbcs cy, r5, cy
mul r12, r4, cy
- umull r12, r0, r12, d
+ umull r12, r0, d, r12
addcc r0, r0, #1
ldmfd sp!, {r4, r5}
diff -r 448b5bfea636 -r 9068add0d4fb mpn/arm/v6/mode1o.asm
--- a/mpn/arm/v6/mode1o.asm Fri Apr 27 02:17:29 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-dnl ARM mpn_modexact_1c_odd
-
-dnl Contributed to the GNU project by Torbjorn Granlund.
-
-dnl Copyright 2012 Free Software Foundation, Inc.
-
-dnl This file is part of the GNU MP Library.
-
-dnl The GNU MP Library is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU Lesser General Public License as published
-dnl by the Free Software Foundation; either version 3 of the License, or (at
-dnl your option) any later version.
-
-dnl The GNU MP Library is distributed in the hope that it will be useful, but
-dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-dnl License for more details.
-
-dnl You should have received a copy of the GNU Lesser General Public License
-dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/.
-
-include(`../config.m4')
-
-C cycles/limb
-C StrongARM ?
-C XScale ?
-C Cortex-A8 ?
-C Cortex-A9 9
-C Cortex-A15 ?
-
-define(`up', `r0')
-define(`n', `r1')
-define(`d', `r2')
-define(`cy', `r3')
-
- .protected binvert_limb_table
-ASM_START()
-PROLOGUE(mpn_modexact_1c_odd)
- stmfd sp!, {r4, r5, r6, r7}
-
- LEA( r4, binvert_limb_table)
-
- ldr r6, [up], #4 C up[0]
-
- ubfx r12, d, #1, #7
- ldrb r4, [r4, r12]
- smulbb r12, r4, r4
- mul r12, d, r12
- rsb r12, r12, r4, asl #1
- mul r4, r12, r12
- mul r4, d, r4
- rsb r4, r4, r12, asl #1 C r4 = inverse
-
- subs n, n, #1
- sub r6, r6, cy
- mul r6, r6, r4
- beq L(end)
-
- rsb r5, r4, #0 C r5 = -inverse
-
-L(top): ldr r7, [up], #4
- mov r12, #0
- umaal r12, cy, r6, d
- mul r6, r7, r4
- mla r6, cy, r5, r6
- subs n, n, #1
- bne L(top)
-
-L(end): mov r12, #0
- umaal r12, cy, r6, d
- mov r0, cy
-
- ldmfd sp!, {r4, r5, r6, r7}
- bx r14
-EPILOGUE()
diff -r 448b5bfea636 -r 9068add0d4fb mpn/arm/v6t2/mode1o.asm
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpn/arm/v6t2/mode1o.asm Fri Apr 27 11:15:36 2012 +0200
@@ -0,0 +1,75 @@
+dnl ARM mpn_modexact_1c_odd
+
+dnl Contributed to the GNU project by Torbjorn Granlund.
+
+dnl Copyright 2012 Free Software Foundation, Inc.
+
+dnl This file is part of the GNU MP Library.
+
+dnl The GNU MP Library is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU Lesser General Public License as published
+dnl by the Free Software Foundation; either version 3 of the License, or (at
+dnl your option) any later version.
+
+dnl The GNU MP Library is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+dnl License for more details.
+
+dnl You should have received a copy of the GNU Lesser General Public License
+dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/.
+
+include(`../config.m4')
+
+C cycles/limb
+C StrongARM ?
+C XScale ?
+C Cortex-A8 ?
+C Cortex-A9 9
+C Cortex-A15 ?
+
+define(`up', `r0')
+define(`n', `r1')
+define(`d', `r2')
+define(`cy', `r3')
+
+ .protected binvert_limb_table
+ASM_START()
+PROLOGUE(mpn_modexact_1c_odd)
+ stmfd sp!, {r4, r5, r6, r7}
+
+ LEA( r4, binvert_limb_table)
+
+ ldr r6, [up], #4 C up[0]
+
+ ubfx r12, d, #1, #7
+ ldrb r4, [r4, r12]
+ smulbb r12, r4, r4
+ mul r12, d, r12
+ rsb r12, r12, r4, asl #1
+ mul r4, r12, r12
+ mul r4, d, r4
+ rsb r4, r4, r12, asl #1 C r4 = inverse
+
+ subs n, n, #1
+ sub r6, r6, cy
+ mul r6, r6, r4
+ beq L(end)
+
+ rsb r5, r4, #0 C r5 = -inverse
+
+L(top): ldr r7, [up], #4
+ mov r12, #0
+ umaal r12, cy, r6, d
+ mul r6, r7, r4
+ mla r6, cy, r5, r6
+ subs n, n, #1
+ bne L(top)
+
+L(end): mov r12, #0
+ umaal r12, cy, r6, d
+ mov r0, cy
+
+ ldmfd sp!, {r4, r5, r6, r7}
+ bx r14
+EPILOGUE()
More information about the gmp-commit
mailing list