[Gmp-commit] /var/hg/gmp: 2 new changesets
mercurial at gmplib.org
mercurial at gmplib.org
Wed May 31 23:02:37 UTC 2017
details: /var/hg/gmp/rev/9a2ab06d9abb
changeset: 17411:9a2ab06d9abb
user: Torbjorn Granlund <tg at gmplib.org>
date: Thu Jun 01 00:52:06 2017 +0200
description:
Replace with grabber.
details: /var/hg/gmp/rev/f90e2b744030
changeset: 17412:f90e2b744030
user: Torbjorn Granlund <tg at gmplib.org>
date: Thu Jun 01 00:52:20 2017 +0200
description:
Reinstate, grabbing nehalem code.
diffstat:
mpn/x86_64/silvermont/hamdist.asm | 84 ++-----------------------------------
mpn/x86_64/silvermont/popcount.asm | 35 +++++++++++++++
2 files changed, 40 insertions(+), 79 deletions(-)
diffs (137 lines):
diff -r 7473796406af -r f90e2b744030 mpn/x86_64/silvermont/hamdist.asm
--- a/mpn/x86_64/silvermont/hamdist.asm Wed May 31 03:44:21 2017 +0200
+++ b/mpn/x86_64/silvermont/hamdist.asm Thu Jun 01 00:52:20 2017 +0200
@@ -1,6 +1,6 @@
-dnl AMD64 mpn_hamdist -- hamming distance.
+dnl x86-64 mpn_hamdist.
-dnl Copyright 2008, 2010-2012, 2017 Free Software Foundation, Inc.
+dnl Copyright 2017 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -28,82 +28,8 @@
dnl GNU Lesser General Public License along with the GNU MP Library. If not,
dnl see https://www.gnu.org/licenses/.
+
include(`../config.m4')
-C cycles/limb
-C AMD K8,K9 -
-C AMD K10 2.0 =
-C AMD bd1 ~4.4 =
-C AMD bd2 ~4.4 =
-C AMD bd3
-C AMD bd4
-C AMD bobcat 7.55 =
-C AMD jaguar 2.32 +
-C Intel P4 -
-C Intel core2 -
-C Intel NHM 2.16 -
-C Intel SBR 2.30 -
-C Intel IBR 2.22 -
-C Intel HWL 1.64 =
-C Intel BWL 1.51 +
-C Intel SKL 1.52 =
-C Intel atom
-C Intel SLM 2.7 +
-C VIA nano
-
-define(`ap', `%rdi')
-define(`bp', `%rsi')
-define(`n', `%rdx')
-
-ABI_SUPPORT(DOS64)
-ABI_SUPPORT(STD64)
-
-ASM_START()
- TEXT
- ALIGN(16)
-PROLOGUE(mpn_hamdist)
- FUNC_ENTRY(3)
- mov (ap), %r8
- xor (bp), %r8
-
- lea (ap,n,8), ap C point at A operand end
- lea (bp,n,8), bp C point at B operand end
- neg n
-
- test $1, R8(n)
- jz L(2)
-
-L(1): .byte 0xf3,0x49,0x0f,0xb8,0xc0 C popcnt %r8, %rax
- xor R32(%r10), R32(%r10)
- inc n
- js L(top)
- FUNC_EXIT()
- ret
-
- ALIGN(16)
-L(2): mov 8(ap,n,8), %r9
- .byte 0xf3,0x49,0x0f,0xb8,0xc0 C popcnt %r8, %rax
- xor 8(bp,n,8), %r9
- .byte 0xf3,0x4d,0x0f,0xb8,0xd1 C popcnt %r9, %r10
- add $2, n
- js L(top)
- add %r10, %rax
- FUNC_EXIT()
- ret
-
- ALIGN(16)
-L(top): mov (ap,n,8), %r8
- add %r10, %rax
- mov 8(ap,n,8), %r9
- xor (bp,n,8), %r8
- xor 8(bp,n,8), %r9
- .byte 0xf3,0x49,0x0f,0xb8,0xc8 C popcnt %r8, %rcx
- add %rcx, %rax
- .byte 0xf3,0x4d,0x0f,0xb8,0xd1 C popcnt %r9, %r10
- add $2, n
- js L(top)
-
- add %r10, %rax
- FUNC_EXIT()
- ret
-EPILOGUE()
+MULFUNC_PROLOGUE(mpn_hamdist)
+include_mpn(`x86_64/coreinhm/hamdist.asm')
diff -r 7473796406af -r f90e2b744030 mpn/x86_64/silvermont/popcount.asm
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpn/x86_64/silvermont/popcount.asm Thu Jun 01 00:52:20 2017 +0200
@@ -0,0 +1,35 @@
+dnl x86-64 mpn_popcount.
+
+dnl Copyright 2017 Free Software Foundation, Inc.
+
+dnl This file is part of the GNU MP Library.
+dnl
+dnl The GNU MP Library is free software; you can redistribute it and/or modify
+dnl it under the terms of either:
+dnl
+dnl * the GNU Lesser General Public License as published by the Free
+dnl Software Foundation; either version 3 of the License, or (at your
+dnl option) any later version.
+dnl
+dnl or
+dnl
+dnl * the GNU General Public License as published by the Free Software
+dnl Foundation; either version 2 of the License, or (at your option) any
+dnl later version.
+dnl
+dnl or both in parallel, as here.
+dnl
+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 General Public License
+dnl for more details.
+dnl
+dnl You should have received copies of the GNU General Public License and the
+dnl GNU Lesser General Public License along with the GNU MP Library. If not,
+dnl see https://www.gnu.org/licenses/.
+
+
+include(`../config.m4')
+
+MULFUNC_PROLOGUE(mpn_popcount)
+include_mpn(`x86_64/coreinhm/popcount.asm')
More information about the gmp-commit
mailing list