[Gmp-commit] /var/hg/gmp: Work around register clobbering issue.
mercurial at gmplib.org
mercurial at gmplib.org
Wed May 2 12:37:01 CEST 2012
details: /var/hg/gmp/rev/6daa4e5ce87e
changeset: 14932:6daa4e5ce87e
user: Torbjorn Granlund <tege at gmplib.org>
date: Wed May 02 12:36:58 2012 +0200
description:
Work around register clobbering issue.
diffstat:
ChangeLog | 2 ++
mpn/arm/logops_n.asm | 9 +++++----
2 files changed, 7 insertions(+), 4 deletions(-)
diffs (44 lines):
diff -r 4dd0af1aafa1 -r 6daa4e5ce87e ChangeLog
--- a/ChangeLog Wed May 02 01:40:19 2012 +0200
+++ b/ChangeLog Wed May 02 12:36:58 2012 +0200
@@ -1,5 +1,7 @@
2012-05-02 Torbjorn Granlund <tege at gmplib.org>
+ * mpn/arm/logops_n.asm: Work around register clobbering issue.
+
* mpn/arm/aorscnd_n.asm: New file.
2012-05-01 Torbjorn Granlund <tege at gmplib.org>
diff -r 4dd0af1aafa1 -r 6daa4e5ce87e mpn/arm/logops_n.asm
--- a/mpn/arm/logops_n.asm Wed May 02 01:40:19 2012 +0200
+++ b/mpn/arm/logops_n.asm Wed May 02 12:36:58 2012 +0200
@@ -29,7 +29,9 @@
C Cortex-A9 2.5-2.72 2.75-3
C Cortex-A15 ? ?
-C TODO: It seems that 2.25 c/l and 2.75 c/l is possible for A9.
+C TODO
+C * It seems that 2.25 c/l and 2.75 c/l is possible for A9.
+C * Debug popping issue, see comment below.
define(`rp', `r0')
define(`up', `r1')
@@ -92,7 +94,7 @@
L(skip2):
bics n, n, #3
beq L(rtn)
- push { r5, r6, r7 }
+ push { r4, r5, r6, r7 }
ldmia vp!, { r8, r9, r10, r12 }
b L(mid)
@@ -118,8 +120,7 @@
POSTOP( r7)
stmia rp!, { r4, r5, r6, r7 }
- pop { r4, r5, r6, r7, r8, r9, r10 }
- bx lr
+ pop { r4, r5, r6, r7 } C popping r8-r10 here strangely fails
L(rtn): pop { r8, r9, r10 }
bx r14
More information about the gmp-commit
mailing list