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

mercurial at gmplib.org mercurial at gmplib.org
Sun May 1 13:59:56 CEST 2011


details:   /var/hg/gmp-5.0/rev/83ed2f6a5c24
changeset: 13461:83ed2f6a5c24
user:      Torbjorn Granlund <tege at gmplib.org>
date:      Sun May 01 13:39:27 2011 +0200
description:
Fix typo in MULFUNC_PROLOGUE.

details:   /var/hg/gmp-5.0/rev/9832353e5432
changeset: 13462:9832353e5432
user:      Torbjorn Granlund <tege at gmplib.org>
date:      Sun May 01 13:46:05 2011 +0200
description:
Fix mpn_add_n_sub_n usage.

details:   /var/hg/gmp-5.0/rev/e21295dd4ee6
changeset: 13463:e21295dd4ee6
user:      Torbjorn Granlund <tege at gmplib.org>
date:      Sun May 01 13:48:16 2011 +0200
description:
Fix mpn_add_n_sub_n usage.

details:   /var/hg/gmp-5.0/rev/9017e39345c0
changeset: 13464:9017e39345c0
user:      Torbjorn Granlund <tege at gmplib.org>
date:      Sun May 01 13:57:39 2011 +0200
description:
Call mpn_sublsh2_n and mpn_sublsh_n with correct args.

details:   /var/hg/gmp-5.0/rev/d85fe5b8a056
changeset: 13465:d85fe5b8a056
user:      Torbjorn Granlund <tege at gmplib.org>
date:      Sun May 01 13:59:51 2011 +0200
description:
*** empty log message ***

diffstat:

 ChangeLog                           |  15 +++++++++++++++
 mpn/generic/toom33_mul.c            |  12 +++++++-----
 mpn/generic/toom3_sqr.c             |   5 +++--
 mpn/generic/toom63_mul.c            |   6 +++---
 mpn/generic/toom_interpolate_6pts.c |   4 ++--
 mpn/x86/p6/sse2/mod_1_4.asm         |  23 ++++++++++-------------
 6 files changed, 40 insertions(+), 25 deletions(-)

diffs (181 lines):

diff -r 6285e9364044 -r d85fe5b8a056 ChangeLog
--- a/ChangeLog	Sun May 01 12:08:19 2011 +0200
+++ b/ChangeLog	Sun May 01 13:59:51 2011 +0200
@@ -41,6 +41,10 @@
 	* doc/gmp.texi: Remove void return type from constructors. Document
 	explicit constructors. Document mpf_class::mpf_class(mpf_t).
 
+2011-02-24  Torbjorn Granlund  <tege at gmplib.org>
+
+	* mpn/x86/p6/sse2/mod_1_4.asm: Fix typo in MULFUNC_PROLOGUE.
+
 2011-02-04  Torbjorn Granlund  <tege at gmplib.org>
 
 	* mpn/x86_64/core2/popcount.asm: Add a MULFUNC_PROLOGUE.
@@ -74,6 +78,17 @@
 	Solaris assembler bug.
 	* mpn/x86_64/mpn/x86_64/divrem_2.asm: Likewise.
 
+2010-03-25  Torbjorn Granlund  <tege at gmplib.org>
+
+	* mpn/generic/toom33_mul.c: Fix mpn_add_n_sub_n usage.
+	* mpn/generic/toom3_sqr.c: Likewise.
+	* mpn/generic/toom63_mul.c: Likewise.
+
+2010-03-19  Torbjorn Granlund  <tege at gmplib.org>
+
+	* mpn/generic/toom_interpolate_6pts.c: Call mpn_sublsh2_n and
+	mpn_sublsh_n with correct args.
+
 2010-02-26  Torbjorn Granlund  <tege at gmplib.org>
 
 	* mpn/pa64/aors_n.asm: Fix typo in last change.
diff -r 6285e9364044 -r d85fe5b8a056 mpn/generic/toom33_mul.c
--- a/mpn/generic/toom33_mul.c	Sun May 01 12:08:19 2011 +0200
+++ b/mpn/generic/toom33_mul.c	Sun May 01 13:59:51 2011 +0200
@@ -8,7 +8,7 @@
    SAFE TO REACH IT THROUGH DOCUMENTED INTERFACES.  IN FACT, IT IS ALMOST
    GUARANTEED THAT IT WILL CHANGE OR DISAPPEAR IN A FUTURE GNU MP RELEASE.
 
-Copyright 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright 2006, 2007, 2008, 2010 Free Software Foundation, Inc.
 
 This file is part of the GNU MP Library.
 
@@ -121,15 +121,16 @@
   if (cy == 0 && mpn_cmp (gp, a1, n) < 0)
     {
       cy = mpn_add_n_sub_n (as1, asm1, a1, gp, n);
-      as1[n] = 0;
+      as1[n] = cy >> 1;
       asm1[n] = 0;
       vm1_neg = 1;
     }
   else
     {
+      mp_limb_t cy2;
       cy2 = mpn_add_n_sub_n (as1, asm1, gp, a1, n);
       as1[n] = cy + (cy2 >> 1);
-      asm1[n] = cy - (cy & 1);
+      asm1[n] = cy - (cy2 & 1);
     }
 #else
   as1[n] = cy + mpn_add_n (as1, gp, a1, n);
@@ -176,15 +177,16 @@
   if (cy == 0 && mpn_cmp (gp, b1, n) < 0)
     {
       cy = mpn_add_n_sub_n (bs1, bsm1, b1, gp, n);
-      bs1[n] = 0;
+      bs1[n] = cy >> 1;
       bsm1[n] = 0;
       vm1_neg ^= 1;
     }
   else
     {
+      mp_limb_t cy2;
       cy2 = mpn_add_n_sub_n (bs1, bsm1, gp, b1, n);
       bs1[n] = cy + (cy2 >> 1);
-      bsm1[n] = cy - (cy & 1);
+      bsm1[n] = cy - (cy2 & 1);
     }
 #else
   bs1[n] = cy + mpn_add_n (bs1, gp, b1, n);
diff -r 6285e9364044 -r d85fe5b8a056 mpn/generic/toom3_sqr.c
--- a/mpn/generic/toom3_sqr.c	Sun May 01 12:08:19 2011 +0200
+++ b/mpn/generic/toom3_sqr.c	Sun May 01 13:59:51 2011 +0200
@@ -95,14 +95,15 @@
   if (cy == 0 && mpn_cmp (gp, a1, n) < 0)
     {
       cy = mpn_add_n_sub_n (as1, asm1, a1, gp, n);
-      as1[n] = 0;
+      as1[n] = cy >> 1;
       asm1[n] = 0;
     }
   else
     {
+      mp_limb_t cy2;
       cy2 = mpn_add_n_sub_n (as1, asm1, gp, a1, n);
       as1[n] = cy + (cy2 >> 1);
-      asm1[n] = cy - (cy & 1);
+      asm1[n] = cy - (cy2 & 1);
     }
 #else
   as1[n] = cy + mpn_add_n (as1, gp, a1, n);
diff -r 6285e9364044 -r d85fe5b8a056 mpn/generic/toom63_mul.c
--- a/mpn/generic/toom63_mul.c	Sun May 01 12:08:19 2011 +0200
+++ b/mpn/generic/toom63_mul.c	Sun May 01 13:59:51 2011 +0200
@@ -149,7 +149,7 @@
   if (cy == 0 && mpn_cmp (ws, b1, n) < 0)
     {
       cy = mpn_add_n_sub_n (v3, v1, b1, ws, n);
-      v3[n] = 0;
+      v3[n] = cy >> 1;
       v1[n] = 0;
       sign = ~sign;
     }
@@ -157,8 +157,8 @@
     {
       mp_limb_t cy2;
       cy2 = mpn_add_n_sub_n (v3, v1, ws, b1, n);
-      w3[n] = cy + (cy2 >> 1);
-      w1[n] = cy - (cy & 1);
+      v3[n] = cy + (cy2 >> 1);
+      v1[n] = cy - (cy2 & 1);
     }
 #else
   v3[n] = cy + mpn_add_n (v3, ws, b1, n);
diff -r 6285e9364044 -r d85fe5b8a056 mpn/generic/toom_interpolate_6pts.c
--- a/mpn/generic/toom_interpolate_6pts.c	Sun May 01 12:08:19 2011 +0200
+++ b/mpn/generic/toom_interpolate_6pts.c	Sun May 01 13:59:51 2011 +0200
@@ -169,9 +169,9 @@
   /* W2 -= W0<<2 */
 #if HAVE_NATIVE_mpn_sublsh_n || HAVE_NATIVE_mpn_sublsh2_n
 #if HAVE_NATIVE_mpn_sublsh2_n
-  cy = mpn_sublsh2_n(w2, w0, w0n);
+  cy = mpn_sublsh2_n(w2, w2, w0, w0n);
 #else
-  cy = mpn_sublsh_n(w2, w0, w0n, 2);
+  cy = mpn_sublsh_n(w2, w2, w0, w0n, 2);
 #endif
 #else
   /* {W4,2*n+1} is now free and can be overwritten. */
diff -r 6285e9364044 -r d85fe5b8a056 mpn/x86/p6/sse2/mod_1_4.asm
--- a/mpn/x86/p6/sse2/mod_1_4.asm	Sun May 01 12:08:19 2011 +0200
+++ b/mpn/x86/p6/sse2/mod_1_4.asm	Sun May 01 13:59:51 2011 +0200
@@ -1,26 +1,23 @@
 dnl  Intel P6/SSE2 mpn_mod_1_4.
 
-dnl  Copyright 2009 Free Software Foundation, Inc.
+dnl  Copyright 2009, 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  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
-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  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
 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 TODO
-C  * Write P6 specific SSE2 code.
-
-MULFUNC_PROLOGUE(mpn_addmul_1)
+MULFUNC_PROLOGUE(mpn_mod_1s_4p)
 include_mpn(`x86/pentium4/sse2/mod_1_4.asm')


More information about the gmp-commit mailing list