[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