[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