[Gmp-commit] /var/hg/gmp: 4 new changesets

mercurial at gmplib.org mercurial at gmplib.org
Tue Apr 2 00:36:08 CEST 2013


details:   /var/hg/gmp/rev/a3aa9aa76206
changeset: 15667:a3aa9aa76206
user:      Torbjorn Granlund <tege at gmplib.org>
date:      Tue Apr 02 00:19:55 2013 +0200
description:
Remove superceded ultrasparc1234 files.

details:   /var/hg/gmp/rev/0412992145e5
changeset: 15668:0412992145e5
user:      Torbjorn Granlund <tege at gmplib.org>
date:      Tue Apr 02 00:27:22 2013 +0200
description:
Misc tweaks.  Support lzcnt instruction.

details:   /var/hg/gmp/rev/5d0c7850420a
changeset: 15669:5d0c7850420a
user:      Torbjorn Granlund <tege at gmplib.org>
date:      Tue Apr 02 00:28:31 2013 +0200
description:
Move FAKE_T3 stuff to generic file.

details:   /var/hg/gmp/rev/b696e5ab9461
changeset: 15670:b696e5ab9461
user:      Torbjorn Granlund <tege at gmplib.org>
date:      Tue Apr 02 00:36:00 2013 +0200
description:
ChangeLog

diffstat:

 ChangeLog                             |   12 ++
 mpn/sparc32/sparc-defs.m4             |   11 ++-
 mpn/sparc64/ultrasparc1234/lshift.asm |  150 ----------------------------------
 mpn/sparc64/ultrasparc1234/rshift.asm |  147 ---------------------------------
 mpn/sparc64/ultrasparct3/aormul_2.asm |   10 --
 mpn/sparc64/ultrasparct3/missing.asm  |   15 +++
 mpn/sparc64/ultrasparct3/missing.m4   |   27 ++++--
 7 files changed, 55 insertions(+), 317 deletions(-)

diffs (truncated from 441 to 300 lines):

diff -r 32463223cb46 -r b696e5ab9461 ChangeLog
--- a/ChangeLog	Mon Apr 01 05:23:29 2013 +0200
+++ b/ChangeLog	Tue Apr 02 00:36:00 2013 +0200
@@ -1,3 +1,15 @@
+2013-04-02  Torbjorn Granlund  <tege at gmplib.org>
+
+	* mpn/sparc64/ultrasparct3/missing.m4: Misc tweaks.
+	 (lzcnt): New.
+	* mpn/sparc64/ultrasparct3/missing.asm (__gmpn_lzcnt): New function.
+
+	* mpn/sparc32/sparc-defs.m4: Put FAKE_T3 stuff here...
+	* mpn/sparc64/ultrasparct3/aormul_2.asm: ...moved from here.
+
+	* mpn/sparc64/ultrasparc1234/lshift.asm: Remove.
+	* mpn/sparc64/ultrasparc1234/rshift.asm: Remove.
+
 2013-04-01  Torbjorn Granlund  <tege at gmplib.org>
 
 	* mpn/sparc64/ultrasparct3/missing.m4 (umulxhi): Don't clobber retaddr,
diff -r 32463223cb46 -r b696e5ab9461 mpn/sparc32/sparc-defs.m4
--- a/mpn/sparc32/sparc-defs.m4	Mon Apr 01 05:23:29 2013 +0200
+++ b/mpn/sparc32/sparc-defs.m4	Tue Apr 02 00:36:00 2013 +0200
@@ -3,7 +3,7 @@
 dnl  m4 macros for SPARC assembler (32 and 64 bit).
 
 
-dnl  Copyright 2002, 2011 Free Software Foundation, Inc.
+dnl  Copyright 2002, 2011, 2013 Free Software Foundation, Inc.
 dnl
 dnl  This file is part of the GNU MP Library.
 dnl
@@ -36,4 +36,13 @@
 `.register `$1',`$2'')')
 
 
+C Testing mechanism for running newer code on older processors
+ifdef(`FAKE_T3',`
+  include_mpn(`sparc64/ultrasparct3/missing.m4')
+',`
+  define(`addxccc',	``addxccc'	$1, $2, $3')
+  define(`addxc',	``addxc'	$1, $2, $3')
+  define(`umulxhi',	``umulxhi'	$1, $2, $3')
+')
+
 divert
diff -r 32463223cb46 -r b696e5ab9461 mpn/sparc64/ultrasparc1234/lshift.asm
--- a/mpn/sparc64/ultrasparc1234/lshift.asm	Mon Apr 01 05:23:29 2013 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
-dnl  SPARC v9 mpn_lshift
-
-dnl  Copyright 1996, 2000, 2001, 2002, 2003, 2010 Free Software Foundation,
-dnl  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 UltraSPARC 1&2:     2
-C UltraSPARC 3:	      2.5
-
-C INPUT PARAMETERS
-define(`rp', `%i0')
-define(`up', `%i1')
-define(`n',  `%i2')
-define(`cnt',`%i3')
-
-define(`u0', `%l0')
-define(`u1', `%l2')
-define(`u2', `%l4')
-define(`u3', `%l6')
-
-define(`tnc',`%i4')
-
-define(`fanop',`fitod %f0,%f2')		dnl  A quasi nop running in the FA pipe
-
-ASM_START()
-	REGISTER(%g2,#scratch)
-	REGISTER(%g3,#scratch)
-PROLOGUE(mpn_lshift)
-	save	%sp,-160,%sp
-
-	sllx	n,3,%g1
-	sub	%g0,cnt,tnc		C negate shift count
-	add	up,%g1,up		C make %o1 point at end of src
-	add	rp,%g1,rp		C make %o0 point at end of res
-	ldx	[up-8],u3		C load first limb
-	subcc	n,5,n
-	srlx	u3,tnc,%i5		C compute function result
-	bl,pn	%xcc,.Lend1234
-	sllx	u3,cnt,%g3
-
-	subcc	n,4,n
-	ldx	[up-16],u0
-	ldx	[up-24],u1
-	add	up,-32,up
-	ldx	[up-0],u2
-	ldx	[up-8],u3
-
-	bl,pn	%xcc,.Lend5678
-	srlx	u0,tnc,%g2
-
-	b,a	.Loop
-	ALIGN(16)
-.Loop:
-	sllx	u0,cnt,%g1
-	or	%g3,%g2,%g3
-	ldx	[up-16],u0
-	fanop
-C --
-	srlx	u1,tnc,%g2
-	subcc	n,4,n
-	stx	%g3,[rp-8]
-	fanop
-C --
-	sllx	u1,cnt,%g3
-	or	%g1,%g2,%g1
-	ldx	[up-24],u1
-	fanop
-C --
-	srlx	u2,tnc,%g2
-	stx	%g1,[rp-16]
-	add	up,-32,up
-	fanop
-C --
-	sllx	u2,cnt,%g1
-	or	%g3,%g2,%g3
-	ldx	[up-0],u2
-	fanop
-C --
-	srlx	u3,tnc,%g2
-	stx	%g3,[rp-24]
-	add	rp,-32,rp
-	fanop
-C --
-	sllx	u3,cnt,%g3
-	or	%g1,%g2,%g1
-	ldx	[up-8],u3
-	fanop
-C --
-	srlx	u0,tnc,%g2
-	stx	%g1,[rp-0]
-	bge,pt	%xcc,.Loop
-	fanop
-C --
-.Lend5678:
-	sllx	u0,cnt,%g1
-	or	%g3,%g2,%g3
-	srlx	u1,tnc,%g2
-	stx	%g3,[rp-8]
-	sllx	u1,cnt,%g3
-	or	%g1,%g2,%g1
-	srlx	u2,tnc,%g2
-	stx	%g1,[rp-16]
-	sllx	u2,cnt,%g1
-	or	%g3,%g2,%g3
-	srlx	u3,tnc,%g2
-	stx	%g3,[rp-24]
-	add	rp,-32,rp
-	sllx	u3,cnt,%g3		C carry...
-	or	%g1,%g2,%g1
-	stx	%g1,[rp-0]
-
-.Lend1234:
-	addcc	n,4,n
-	bz,pn	%xcc,.Lret
-	fanop
-.Loop0:
-	add	rp,-8,rp
-	subcc	n,1,n
-	ldx	[up-16],u3
-	add	up,-8,up
-	srlx	u3,tnc,%g2
-	or	%g3,%g2,%g3
-	stx	%g3,[rp]
-	sllx	u3,cnt,%g3
-	bnz,pt	%xcc,.Loop0
-	fanop
-.Lret:
-	stx	%g3,[rp-8]
-	mov	%i5,%i0
-	ret
-	restore
-EPILOGUE(mpn_lshift)
diff -r 32463223cb46 -r b696e5ab9461 mpn/sparc64/ultrasparc1234/rshift.asm
--- a/mpn/sparc64/ultrasparc1234/rshift.asm	Mon Apr 01 05:23:29 2013 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-dnl  SPARC v9 mpn_rshift
-
-dnl  Copyright 1996, 2000, 2001, 2002, 2003, 2010 Free Software Foundation,
-dnl  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 UltraSPARC 1&2:     2
-C UltraSPARC 3:	      2.5	(for some up/rp alignments)
-
-C INPUT PARAMETERS
-define(`rp', `%i0')
-define(`up', `%i1')
-define(`n',  `%i2')
-define(`cnt',`%i3')
-
-define(`u0', `%l0')
-define(`u1', `%l2')
-define(`u2', `%l4')
-define(`u3', `%l6')
-
-define(`tnc',`%i4')
-
-define(`fanop',`fitod %f0,%f2')		dnl  A quasi nop running in the FA pipe
-
-ASM_START()
-	REGISTER(%g2,#scratch)
-	REGISTER(%g3,#scratch)
-PROLOGUE(mpn_rshift)
-	save	%sp,-160,%sp
-
-	sub	%g0,cnt,tnc		C negate shift count
-	ldx	[up],u3			C load first limb
-	subcc	n,5,n
-	sllx	u3,tnc,%i5		C compute function result
-	bl,pn	%xcc,.Lend1234
-	srlx	u3,cnt,%g3
-
-	subcc	n,4,n
-	ldx	[up+8],u0
-	ldx	[up+16],u1
-	add	up,32,up
-	ldx	[up-8],u2
-	ldx	[up+0],u3
-
-	bl,pn	%xcc,.Lend5678
-	sllx	u0,tnc,%g2
-
-	b,a	.Loop
-	ALIGN(16)
-.Loop:
-	srlx	u0,cnt,%g1
-	or	%g3,%g2,%g3
-	ldx	[up+8],u0
-	fanop
-C --
-	sllx	u1,tnc,%g2
-	subcc	n,4,n
-	stx	%g3,[rp+0]
-	fanop
-C --
-	srlx	u1,cnt,%g3
-	or	%g1,%g2,%g1
-	ldx	[up+16],u1
-	fanop
-C --
-	sllx	u2,tnc,%g2
-	stx	%g1,[rp+8]
-	add	up,32,up
-	fanop
-C --
-	srlx	u2,cnt,%g1
-	or	%g3,%g2,%g3
-	ldx	[up-8],u2
-	fanop
-C --
-	sllx	u3,tnc,%g2
-	stx	%g3,[rp+16]
-	add	rp,32,rp
-	fanop


More information about the gmp-commit mailing list