[Gmp-commit] /home/hgfiles/gmp: Improve atom/32 code selection with some asm ...

mercurial at gmplib.org mercurial at gmplib.org
Fri Jan 28 17:04:24 CET 2011


details:   /home/hgfiles/gmp/rev/43cdbb41a5f1
changeset: 13780:43cdbb41a5f1
user:      Marco Bodrato <bodrato at mail.dm.unipi.it>
date:      Fri Jan 28 17:01:09 2011 +0100
description:
Improve atom/32 code selection with some asm grabbing files.

diffstat:

 ChangeLog                     |  21 +++++++++++++++++++++
 mpn/x86/atom/addlsh1_n.asm    |  24 ++++++++++++++++++++++++
 mpn/x86/atom/aors_n.asm       |  23 +++++++++++++++++++++++
 mpn/x86/atom/aorsmul_1.asm    |  23 +++++++++++++++++++++++
 mpn/x86/atom/bdiv_q_1.asm     |  24 ++++++++++++++++++++++++
 mpn/x86/atom/copyd.asm        |  23 +++++++++++++++++++++++
 mpn/x86/atom/copyi.asm        |  23 +++++++++++++++++++++++
 mpn/x86/atom/dive_1.asm       |  23 +++++++++++++++++++++++
 mpn/x86/atom/divrem_1.asm     |  23 +++++++++++++++++++++++
 mpn/x86/atom/hamdist.asm      |  23 +++++++++++++++++++++++
 mpn/x86/atom/logops_n.asm     |  24 ++++++++++++++++++++++++
 mpn/x86/atom/lshift.asm       |  23 +++++++++++++++++++++++
 mpn/x86/atom/mod_34lsub1.asm  |  23 +++++++++++++++++++++++
 mpn/x86/atom/mul_1.asm        |  23 +++++++++++++++++++++++
 mpn/x86/atom/mul_basecase.asm |  23 +++++++++++++++++++++++
 mpn/x86/atom/popcount.asm     |  24 ++++++++++++++++++++++++
 mpn/x86/atom/rsh1add_n.asm    |  24 ++++++++++++++++++++++++
 mpn/x86/atom/rshift.asm       |  23 +++++++++++++++++++++++
 mpn/x86/atom/sqr_basecase.asm |  29 +++++++++++++++++++++++++++++
 19 files changed, 446 insertions(+), 0 deletions(-)

diffs (truncated from 525 to 300 lines):

diff -r a287ca5262b8 -r 43cdbb41a5f1 ChangeLog
--- a/ChangeLog	Thu Jan 27 22:59:36 2011 +0100
+++ b/ChangeLog	Fri Jan 28 17:01:09 2011 +0100
@@ -1,3 +1,24 @@
+2011-01-28 Marco Bodrato <bodrato at mail.dm.unipi.it>
+
+	* mpn/x86/atom/copyd.asm: New file, grabbing another asm file.
+	* mpn/x86/atom/copyi.asm: Likewise.
+	* mpn/x86/atom/aors_n.asm: Likewise.
+	* mpn/x86/atom/addlsh1_n.asm: Likewise.
+	* mpn/x86/atom/aorsmul_1.asm: Likewise.
+	* mpn/x86/atom/bdiv_q_1.asm: Likewise.
+	* mpn/x86/atom/dive_1.asm: Likewise.
+	* mpn/x86/atom/divrem_1.asm: Likewise.
+	* mpn/x86/atom/hamdist.asm: Likewise.
+	* mpn/x86/atom/logops_n.asm: Likewise.
+	* mpn/x86/atom/lshift.asm: Likewise.
+	* mpn/x86/atom/mod_34lsub1.asm: Likewise.
+	* mpn/x86/atom/mul_1.asm: Likewise.
+	* mpn/x86/atom/mul_basecase.asm: Likewise.
+	* mpn/x86/atom/popcount.asm: Likewise.
+	* mpn/x86/atom/rsh1add_n.asm: Likewise.
+	* mpn/x86/atom/rshift.asm: Likewise.
+	* mpn/x86/atom/sqr_basecase.asm: Likewise.
+	
 2011-01-27  Torbjorn Granlund  <tege at gmplib.org>
 
 	* mpn/x86_64/atom/rsh1aors_n.asm: New file, grabbing another asm file.
diff -r a287ca5262b8 -r 43cdbb41a5f1 mpn/x86/atom/addlsh1_n.asm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpn/x86/atom/addlsh1_n.asm	Fri Jan 28 17:01:09 2011 +0100
@@ -0,0 +1,24 @@
+dnl  Intel Atom mpn_addlsh1_n -- mpn x+2*y.
+
+dnl  Copyright 2011 Free Software Foundation, Inc.
+dnl
+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
+dnl  modify it under the terms of the GNU Lesser General Public License as
+dnl  published by the Free Software Foundation; either version 3 of the
+dnl  License, or (at your option) any later version.
+dnl
+dnl  The GNU MP Library is distributed in the hope that it will be useful,
+dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl  Lesser General Public License for more details.
+dnl
+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')
+
+
+MULFUNC_PROLOGUE(mpn_addlsh1_n)
+include_mpn(`x86/pentium4/sse2/addlsh1_n.asm')
diff -r a287ca5262b8 -r 43cdbb41a5f1 mpn/x86/atom/aors_n.asm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpn/x86/atom/aors_n.asm	Fri Jan 28 17:01:09 2011 +0100
@@ -0,0 +1,23 @@
+dnl  Intel Atom mpn_add_n/mpn_sub_n -- mpn add or subtract.
+
+dnl  Copyright 2011 Free Software Foundation, Inc.
+dnl
+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
+dnl  modify it under the terms of the GNU Lesser General Public License as
+dnl  published by the Free Software Foundation; either version 3 of the
+dnl  License, or (at your option) any later version.
+dnl
+dnl  The GNU MP Library is distributed in the hope that it will be useful,
+dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl  Lesser General Public License for more details.
+dnl
+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')
+
+MULFUNC_PROLOGUE(mpn_add_n mpn_add_nc mpn_sub_n mpn_sub_nc)
+include_mpn(`x86/k7/aors_n.asm')
diff -r a287ca5262b8 -r 43cdbb41a5f1 mpn/x86/atom/aorsmul_1.asm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpn/x86/atom/aorsmul_1.asm	Fri Jan 28 17:01:09 2011 +0100
@@ -0,0 +1,23 @@
+dnl  Intel Atom mpn_addmul_1/mpn_submul_1 -- add or subtract mpn multiple.
+
+dnl  Copyright 2011 Free Software Foundation, Inc.
+dnl
+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
+dnl  modify it under the terms of the GNU Lesser General Public License as
+dnl  published by the Free Software Foundation; either version 3 of the
+dnl  License, or (at your option) any later version.
+dnl
+dnl  The GNU MP Library is distributed in the hope that it will be useful,
+dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl  Lesser General Public License for more details.
+dnl
+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')
+
+MULFUNC_PROLOGUE(mpn_addmul_1 mpn_addmul_1c mpn_submul_1 mpn_submul_1c)
+include_mpn(`x86/k6/aorsmul_1.asm')
diff -r a287ca5262b8 -r 43cdbb41a5f1 mpn/x86/atom/bdiv_q_1.asm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpn/x86/atom/bdiv_q_1.asm	Fri Jan 28 17:01:09 2011 +0100
@@ -0,0 +1,24 @@
+dnl  Intel Atom mpn_bdiv_q_1, mpn_pi1_bdiv_q_1 -- schoolbook Hensel
+dnl  division by 1-limb divisor, returning quotient only.
+
+dnl  Copyright 2011 Free Software Foundation, Inc.
+dnl
+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
+dnl  modify it under the terms of the GNU Lesser General Public License as
+dnl  published by the Free Software Foundation; either version 3 of the
+dnl  License, or (at your option) any later version.
+dnl
+dnl  The GNU MP Library is distributed in the hope that it will be useful,
+dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl  Lesser General Public License for more details.
+dnl
+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')
+
+MULFUNC_PROLOGUE(mpn_bdiv_q_1 mpn_pi1_bdiv_q_1)
+include_mpn(`x86/pentium/bdiv_q_1.asm')
diff -r a287ca5262b8 -r 43cdbb41a5f1 mpn/x86/atom/copyd.asm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpn/x86/atom/copyd.asm	Fri Jan 28 17:01:09 2011 +0100
@@ -0,0 +1,23 @@
+dnl  Intel Atom mpn_copyd -- copy limb vector, decrementing.
+
+dnl  Copyright 2011 Free Software Foundation, Inc.
+dnl
+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
+dnl  modify it under the terms of the GNU Lesser General Public License as
+dnl  published by the Free Software Foundation; either version 3 of the
+dnl  License, or (at your option) any later version.
+dnl
+dnl  The GNU MP Library is distributed in the hope that it will be useful,
+dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl  Lesser General Public License for more details.
+dnl
+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')
+
+MULFUNC_PROLOGUE(mpn_copyd)
+include_mpn(`x86/k7/mmx/copyd.asm')
diff -r a287ca5262b8 -r 43cdbb41a5f1 mpn/x86/atom/copyi.asm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpn/x86/atom/copyi.asm	Fri Jan 28 17:01:09 2011 +0100
@@ -0,0 +1,23 @@
+dnl  Intel Atom mpn_copyi -- copy limb vector, incrementing.
+
+dnl  Copyright 2011 Free Software Foundation, Inc.
+dnl
+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
+dnl  modify it under the terms of the GNU Lesser General Public License as
+dnl  published by the Free Software Foundation; either version 3 of the
+dnl  License, or (at your option) any later version.
+dnl
+dnl  The GNU MP Library is distributed in the hope that it will be useful,
+dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl  Lesser General Public License for more details.
+dnl
+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')
+
+MULFUNC_PROLOGUE(mpn_copyi)
+include_mpn(`x86/k7/mmx/copyi.asm')
diff -r a287ca5262b8 -r 43cdbb41a5f1 mpn/x86/atom/dive_1.asm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpn/x86/atom/dive_1.asm	Fri Jan 28 17:01:09 2011 +0100
@@ -0,0 +1,23 @@
+dnl  Intel Atom mpn_divexact_1 -- mpn by limb exact division.
+
+dnl  Copyright 2011 Free Software Foundation, Inc.
+dnl
+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
+dnl  modify it under the terms of the GNU Lesser General Public License as
+dnl  published by the Free Software Foundation; either version 3 of the
+dnl  License, or (at your option) any later version.
+dnl
+dnl  The GNU MP Library is distributed in the hope that it will be useful,
+dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl  Lesser General Public License for more details.
+dnl
+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')
+
+MULFUNC_PROLOGUE(mpn_divexact_1)
+include_mpn(`x86/pentium/dive_1.asm')
diff -r a287ca5262b8 -r 43cdbb41a5f1 mpn/x86/atom/divrem_1.asm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpn/x86/atom/divrem_1.asm	Fri Jan 28 17:01:09 2011 +0100
@@ -0,0 +1,23 @@
+dnl  Intel Atom mpn_divrem_1 -- mpn by limb division.
+
+dnl  Copyright 2011 Free Software Foundation, Inc.
+dnl
+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
+dnl  modify it under the terms of the GNU Lesser General Public License as
+dnl  published by the Free Software Foundation; either version 3 of the
+dnl  License, or (at your option) any later version.
+dnl
+dnl  The GNU MP Library is distributed in the hope that it will be useful,
+dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl  Lesser General Public License for more details.
+dnl
+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')
+
+MULFUNC_PROLOGUE(mpn_preinv_divrem_1 mpn_divrem_1c mpn_divrem_1)
+include_mpn(`x86/pentium4/sse2/divrem_1.asm')
diff -r a287ca5262b8 -r 43cdbb41a5f1 mpn/x86/atom/hamdist.asm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpn/x86/atom/hamdist.asm	Fri Jan 28 17:01:09 2011 +0100
@@ -0,0 +1,23 @@
+dnl  Intel Atom mpn_hamdist -- hamming distance.
+
+dnl  Copyright 2011 Free Software Foundation, Inc.
+dnl
+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
+dnl  modify it under the terms of the GNU Lesser General Public License as
+dnl  published by the Free Software Foundation; either version 3 of the
+dnl  License, or (at your option) any later version.
+dnl
+dnl  The GNU MP Library is distributed in the hope that it will be useful,
+dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl  Lesser General Public License for more details.
+dnl
+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')
+
+MULFUNC_PROLOGUE(mpn_hamdist)
+include_mpn(`x86/k7/mmx/popham.asm')
diff -r a287ca5262b8 -r 43cdbb41a5f1 mpn/x86/atom/logops_n.asm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpn/x86/atom/logops_n.asm	Fri Jan 28 17:01:09 2011 +0100
@@ -0,0 +1,24 @@
+dnl  Intel Atom mpn_and_n,...,mpn_xnor_n -- bitwise logical operations.
+
+dnl  Copyright 2011 Free Software Foundation, Inc.
+dnl
+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
+dnl  modify it under the terms of the GNU Lesser General Public License as
+dnl  published by the Free Software Foundation; either version 3 of the
+dnl  License, or (at your option) any later version.
+dnl
+dnl  The GNU MP Library is distributed in the hope that it will be useful,
+dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl  Lesser General Public License for more details.
+dnl
+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')
+
+
+MULFUNC_PROLOGUE(mpn_and_n mpn_andn_n mpn_nand_n mpn_ior_n mpn_iorn_n mpn_nior_n mpn_xor_n mpn_xnor_n)


More information about the gmp-commit mailing list