[Gmp-commit] /var/hg/gmp: 3 new changesets
mercurial at gmplib.org
mercurial at gmplib.org
Wed Oct 23 23:20:31 CEST 2013
details: /var/hg/gmp/rev/ac0142e9425d
changeset: 16068:ac0142e9425d
user: Torbjorn Granlund <tege at gmplib.org>
date: Wed Oct 23 23:04:48 2013 +0200
description:
(oplist): New define, data from `regnum'.
(regnum): Use x86_lookup, feed oplist.
details: /var/hg/gmp/rev/2949f4da1277
changeset: 16069:2949f4da1277
user: Torbjorn Granlund <tege at gmplib.org>
date: Wed Oct 23 23:16:26 2013 +0200
description:
Comment fixes.
details: /var/hg/gmp/rev/971c85d53a3e
changeset: 16070:971c85d53a3e
user: Torbjorn Granlund <tege at gmplib.org>
date: Wed Oct 23 23:20:24 2013 +0200
description:
ChangeLog
diffstat:
ChangeLog | 5 +++++
mpn/x86_64/coreihwl/sqr_basecase.asm | 7 ++++---
mpn/x86_64/x86_64-defs.m4 | 19 ++++++++++---------
3 files changed, 19 insertions(+), 12 deletions(-)
diffs (74 lines):
diff -r 5130e25c215c -r 971c85d53a3e ChangeLog
--- a/ChangeLog Tue Oct 22 22:05:20 2013 +0200
+++ b/ChangeLog Wed Oct 23 23:20:24 2013 +0200
@@ -1,3 +1,8 @@
+2013-10-23 Torbjorn Granlund <tege at gmplib.org>
+
+ * mpn/x86_64/x86_64-defs.m4 (oplist): New define, data from `regnum'.
+ (regnum): Use x86_lookup, feed oplist.
+
2013-10-22 Niels Möller <nisse at lysator.liu.se>
* tests/devel/try.c: Support mpn_div_qr_1n_pi1.
diff -r 5130e25c215c -r 971c85d53a3e mpn/x86_64/coreihwl/sqr_basecase.asm
--- a/mpn/x86_64/coreihwl/sqr_basecase.asm Tue Oct 22 22:05:20 2013 +0200
+++ b/mpn/x86_64/coreihwl/sqr_basecase.asm Wed Oct 23 23:20:24 2013 +0200
@@ -34,7 +34,7 @@
C Intel NHM n/a n/a n/a
C Intel SBR n/a n/a n/a
C Intel IBR n/a n/a n/a
-C Intel HWL 1.86 2.15 ?
+C Intel HWL 1.86 2.15 ~2.5
C Intel BWL ? ? ?
C Intel atom n/a n/a n/a
C VIA nano n/a n/a n/a
@@ -44,7 +44,8 @@
C that the sqr_diag_addlsh1 loop was manually written.
C TODO
-C * Replace current unoptimised sqr_diag_addlsh1 loop.
+C * Replace current unoptimised sqr_diag_addlsh1 loop; 1.75 c/l might be
+C possible.
C * Consider splitting outer loop into 2, one for n = 1 (mod 2) and one for
C n = 0 (mod 2). These loops could fall into specific "corner" code.
C * Consider splitting outer loop into 4.
@@ -85,7 +86,7 @@
mov (up), %rdx
mov 8(up), %rcx
mulx( %rcx, %r9, %r10) C v0 * v1 W 1 2
- mulx( %rdx, %rax, %r8) C v0 * v0 W 0 1
+ mulx( %rdx, %rax, %r8) C v0 * v0 W 0 1
mov %rcx, %rdx
mulx( %rdx, %r11, %rdx) C v1 * v1 W 2 3
add %r9, %r9 C W 1
diff -r 5130e25c215c -r 971c85d53a3e mpn/x86_64/x86_64-defs.m4
--- a/mpn/x86_64/x86_64-defs.m4 Tue Oct 22 22:05:20 2013 +0200
+++ b/mpn/x86_64/x86_64-defs.m4 Wed Oct 23 23:20:24 2013 +0200
@@ -287,17 +287,18 @@
dnl ix(op) 0 for reg operand, 1 for plain pointer operand.
dnl
-define(`regnum',
-`ifelse($1,`%rax', 0, $1,`%rcx', 1, $1,`%rdx', 2, $1,`%rbx', 3,
- $1,`%rsp', 4, $1,`%rbp', 5, $1,`%rsi', 6, $1,`%rdi', 7,
- $1,`%r8', 8, $1,`%r9', 9, $1,`%r10', 10, $1,`%r11', 11,
- $1,`%r12', 12, $1,`%r13', 13, $1,`%r14', 14, $1,`%r15', 15,
- $1,`(%rax)',16, $1,`(%rcx)',17, $1,`(%rdx)',18, $1,`(%rbx)',19,
- $1,`(%rsp)',20, $1,`(%rbp)',21, $1,`(%rsi)',22, $1,`(%rdi)',23,
- $1,`(%r8)', 24, $1,`(%r9)', 25, $1,`(%r10)',26, $1,`(%r11)',27,
- $1,`(%r12)',28, $1,`(%r13)',29, $1,`(%r14)',30, $1,`(%r15)',31)')
+define(`regnum',`x86_lookup(`$1',oplist)')
define(`regnumh',`eval(regnum($1)/8 & 1)')
define(`ix',`eval(regnum($1)/16)')
+define(`oplist',
+``%rax', 0, `%rcx', 1, `%rdx', 2, `%rbx', 3,
+ `%rsp', 4, `%rbp', 5, `%rsi', 6, `%rdi', 7,
+ `%r8', 8, `%r9', 9, `%r10', 10, `%r11', 11,
+ `%r12', 12, `%r13', 13, `%r14', 14, `%r15', 15,
+ `(%rax)',16, `(%rcx)',17, `(%rdx)',18, `(%rbx)',19,
+ `(%rsp)',20, `(%rbp)',21, `(%rsi)',22, `(%rdi)',23,
+ `(%r8)', 24, `(%r9)', 25, `(%r10)',26, `(%r11)',27,
+ `(%r12)',28, `(%r13)',29, `(%r14)',30, `(%r15)' 31')
dnl Usage
More information about the gmp-commit
mailing list