Updated from /src/gmp-2.0
authorroland <roland>
Tue, 7 May 1996 21:03:56 +0000 (21:03 +0000)
committerroland <roland>
Tue, 7 May 1996 21:03:56 +0000 (21:03 +0000)
36 files changed:
sysdeps/alpha/add_n.s
sysdeps/alpha/addmul_1.s
sysdeps/alpha/gmp-mparam.h
sysdeps/alpha/lshift.s
sysdeps/alpha/mul_1.s
sysdeps/alpha/rshift.s
sysdeps/alpha/sub_n.s
sysdeps/alpha/submul_1.s
sysdeps/alpha/udiv_qrnnd.S
sysdeps/generic/gmp-mparam.h
sysdeps/generic/lshift.c
sysdeps/generic/mod_1.c
sysdeps/generic/mul.c
sysdeps/generic/mul_1.c
sysdeps/generic/mul_n.c
sysdeps/generic/rshift.c
sysdeps/generic/sub_n.c
sysdeps/generic/submul_1.c
sysdeps/hppa/add_n.s
sysdeps/hppa/lshift.s
sysdeps/hppa/rshift.s
sysdeps/hppa/sub_n.s
sysdeps/hppa/udiv_qrnnd.s
sysdeps/m68k/add_n.S
sysdeps/m68k/lshift.S
sysdeps/m68k/rshift.S
sysdeps/m68k/sub_n.S
sysdeps/m88k/add_n.s
sysdeps/m88k/mul_1.s
sysdeps/m88k/sub_n.s
sysdeps/rs6000/mul_1.s
sysdeps/rs6000/rshift.s
sysdeps/rs6000/sub_n.s
sysdeps/rs6000/submul_1.s
sysdeps/vax/add_n.s
sysdeps/vax/addmul_1.s

index e1ad460..426556e 100644 (file)
@@ -17,7 +17,8 @@
 
  # You should have received a copy of the GNU Library General Public License
  # along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
- # the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ # MA 02111-1307, USA.
 
 
  # INPUT PARAMETERS
index 8b168cb..048238a 100644 (file)
@@ -17,7 +17,8 @@
 
  # You should have received a copy of the GNU Library General Public License
  # along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
- # the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ # MA 02111-1307, USA.
 
 
  # INPUT PARAMETERS
index 05c893f..a3c6697 100644 (file)
@@ -16,7 +16,8 @@ License for more details.
 
 You should have received a copy of the GNU Library General Public License
 along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
 
 #define BITS_PER_MP_LIMB 64
 #define BYTES_PER_MP_LIMB 8
index aa8417b..13bd24a 100644 (file)
@@ -16,7 +16,8 @@
 
  # You should have received a copy of the GNU Library General Public License
  # along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
- # the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ # MA 02111-1307, USA.
 
 
  # INPUT PARAMETERS
index 58a63df..a1f5a94 100644 (file)
@@ -17,7 +17,8 @@
 
  # You should have received a copy of the GNU Library General Public License
  # along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
- # the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ # MA 02111-1307, USA.
 
 
  # INPUT PARAMETERS
index 037b776..389054a 100644 (file)
@@ -16,7 +16,8 @@
 
  # You should have received a copy of the GNU Library General Public License
  # along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
- # the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ # MA 02111-1307, USA.
 
 
  # INPUT PARAMETERS
index 5200025..3c90c11 100644 (file)
@@ -17,7 +17,8 @@
 
  # You should have received a copy of the GNU Library General Public License
  # along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
- # the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ # MA 02111-1307, USA.
 
 
  # INPUT PARAMETERS
index 292b2c1..1ed0c6a 100644 (file)
@@ -17,7 +17,8 @@
 
  # You should have received a copy of the GNU Library General Public License
  # along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
- # the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ # MA 02111-1307, USA.
 
 
  # INPUT PARAMETERS
index ce590ed..d3d2cee 100644 (file)
@@ -16,7 +16,8 @@
 
  # You should have received a copy of the GNU Library General Public License
  # along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
- # the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ # MA 02111-1307, USA.
 
 
         .set noreorder
index 4286ebf..7c88557 100644 (file)
@@ -16,7 +16,8 @@ License for more details.
 
 You should have received a copy of the GNU Library General Public License
 along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
 
 #define BITS_PER_MP_LIMB 32
 #define BYTES_PER_MP_LIMB 4
index 35794e4..e244bc5 100644 (file)
@@ -16,7 +16,8 @@ License for more details.
 
 You should have received a copy of the GNU Library General Public License
 along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
 
 #include "gmp.h"
 #include "gmp-impl.h"
@@ -30,7 +31,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
    2. If the result is to be written over the input, WP must be >= UP.
 */
 
-mp_limb
+mp_limb_t
 #if __STDC__
 mpn_lshift (register mp_ptr wp,
            register mp_srcptr up, mp_size_t usize,
@@ -43,10 +44,10 @@ mpn_lshift (wp, up, usize, cnt)
      register unsigned int cnt;
 #endif
 {
-  register mp_limb high_limb, low_limb;
+  register mp_limb_t high_limb, low_limb;
   register unsigned sh_1, sh_2;
   register mp_size_t i;
-  mp_limb retval;
+  mp_limb_t retval;
 
 #ifdef DEBUG
   if (usize == 0 || cnt == 0)
index 0842f6b..314d11b 100644 (file)
@@ -19,7 +19,8 @@ License for more details.
 
 You should have received a copy of the GNU Library General Public License
 along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
 
 #include "gmp.h"
 #include "gmp-impl.h"
@@ -36,19 +37,19 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
 /* FIXME: We should be using invert_limb (or invert_normalized_limb)
    here (not udiv_qrnnd).  */
 
-mp_limb
+mp_limb_t
 #if __STDC__
 mpn_mod_1 (mp_srcptr dividend_ptr, mp_size_t dividend_size,
-          mp_limb divisor_limb)
+          mp_limb_t divisor_limb)
 #else
 mpn_mod_1 (dividend_ptr, dividend_size, divisor_limb)
      mp_srcptr dividend_ptr;
      mp_size_t dividend_size;
-     mp_limb divisor_limb;
+     mp_limb_t divisor_limb;
 #endif
 {
   mp_size_t i;
-  mp_limb n1, n0, r;
+  mp_limb_t n1, n0, r;
   int dummy;
 
   /* Botch: Should this be handled at all?  Rely on callers?  */
@@ -70,7 +71,7 @@ mpn_mod_1 (dividend_ptr, dividend_size, divisor_limb)
       count_leading_zeros (normalization_steps, divisor_limb);
       if (normalization_steps != 0)
        {
-         mp_limb divisor_limb_inverted;
+         mp_limb_t divisor_limb_inverted;
 
          divisor_limb <<= normalization_steps;
 
@@ -80,7 +81,7 @@ mpn_mod_1 (dividend_ptr, dividend_size, divisor_limb)
 
          /* Special case for DIVISOR_LIMB == 100...000.  */
          if (divisor_limb << 1 == 0)
-           divisor_limb_inverted = ~(mp_limb) 0;
+           divisor_limb_inverted = ~(mp_limb_t) 0;
          else
            udiv_qrnnd (divisor_limb_inverted, dummy,
                        -divisor_limb, 0, divisor_limb);
@@ -110,7 +111,7 @@ mpn_mod_1 (dividend_ptr, dividend_size, divisor_limb)
        }
       else
        {
-         mp_limb divisor_limb_inverted;
+         mp_limb_t divisor_limb_inverted;
 
          /* Compute (2**2N - 2**N * DIVISOR_LIMB) / DIVISOR_LIMB.  The
             result is a (N+1)-bit approximation to 1/DIVISOR_LIMB, with the
@@ -118,7 +119,7 @@ mpn_mod_1 (dividend_ptr, dividend_size, divisor_limb)
 
          /* Special case for DIVISOR_LIMB == 100...000.  */
          if (divisor_limb << 1 == 0)
-           divisor_limb_inverted = ~(mp_limb) 0;
+           divisor_limb_inverted = ~(mp_limb_t) 0;
          else
            udiv_qrnnd (divisor_limb_inverted, dummy,
                        -divisor_limb, 0, divisor_limb);
index 3f3f41e..dcf8cb4 100644 (file)
@@ -16,7 +16,8 @@ License for more details.
 
 You should have received a copy of the GNU Library General Public License
 along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
 
 #include "gmp.h"
 #include "gmp-impl.h"
@@ -41,7 +42,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
 #define KARATSUBA_THRESHOLD 32
 #endif
 
-mp_limb
+mp_limb_t
 #if __STDC__
 mpn_mul (mp_ptr prodp,
         mp_srcptr up, mp_size_t usize,
@@ -56,7 +57,7 @@ mpn_mul (prodp, up, usize, vp, vsize)
 #endif
 {
   mp_ptr prod_endp = prodp + usize + vsize - 1;
-  mp_limb cy;
+  mp_limb_t cy;
   mp_ptr tspace;
   TMP_DECL (marker);
 
@@ -69,8 +70,8 @@ mpn_mul (prodp, up, usize, vp, vsize)
         here immediately.  Huge ones arrive here as this is the base case
         for Karatsuba's recursive algorithm below.  */
       mp_size_t i;
-      mp_limb cy_limb;
-      mp_limb v_limb;
+      mp_limb_t cy_limb;
+      mp_limb_t v_limb;
 
       if (vsize == 0)
        return 0;
index 01fdbbb..2de680a 100644 (file)
@@ -17,22 +17,23 @@ License for more details.
 
 You should have received a copy of the GNU Library General Public License
 along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
 
 #include "gmp.h"
 #include "gmp-impl.h"
 #include "longlong.h"
 
-mp_limb
+mp_limb_t
 mpn_mul_1 (res_ptr, s1_ptr, s1_size, s2_limb)
      register mp_ptr res_ptr;
      register mp_srcptr s1_ptr;
      mp_size_t s1_size;
-     register mp_limb s2_limb;
+     register mp_limb_t s2_limb;
 {
-  register mp_limb cy_limb;
+  register mp_limb_t cy_limb;
   register mp_size_t j;
-  register mp_limb prod_high, prod_low;
+  register mp_limb_t prod_high, prod_low;
 
   /* The loop counter and index J goes from -S1_SIZE to -1.  This way
      the loop becomes faster.  */
index 049f63d..b38e8ad 100644 (file)
@@ -16,7 +16,8 @@ License for more details.
 
 You should have received a copy of the GNU Library General Public License
 along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
 
 #include "gmp.h"
 #include "gmp-impl.h"
@@ -60,8 +61,8 @@ impn_mul_n_basecase (prodp, up, vp, size)
 #endif
 {
   mp_size_t i;
-  mp_limb cy_limb;
-  mp_limb v_limb;
+  mp_limb_t cy_limb;
+  mp_limb_t v_limb;
 
   /* Multiply by the first limb in V separately, as the result can be
      stored (not added) to PROD.  We also avoid a loop for zeroing.  */
@@ -125,7 +126,7 @@ impn_mul_n (prodp, up, vp, size, tspace)
         stack grow a lot less.  */
 
       mp_size_t esize = size - 1;      /* even size */
-      mp_limb cy_limb;
+      mp_limb_t cy_limb;
 
       MPN_MUL_N_RECURSE (prodp, up, vp, esize, tspace);
       cy_limb = mpn_addmul_1 (prodp + esize, up, esize, vp[esize]);
@@ -152,7 +153,7 @@ impn_mul_n (prodp, up, vp, size, tspace)
         Where B = 2**BITS_PER_MP_LIMB.  */
 
       mp_size_t hsize = size >> 1;
-      mp_limb cy;
+      mp_limb_t cy;
       int negflg;
 
       /*** Product H.   ________________  ________________
@@ -229,8 +230,8 @@ impn_sqr_n_basecase (prodp, up, size)
 #endif
 {
   mp_size_t i;
-  mp_limb cy_limb;
-  mp_limb v_limb;
+  mp_limb_t cy_limb;
+  mp_limb_t v_limb;
 
   /* Multiply by the first limb in V separately, as the result can be
      stored (not added) to PROD.  We also avoid a loop for zeroing.  */
@@ -293,7 +294,7 @@ impn_sqr_n (prodp, up, size, tspace)
         stack grow a lot less.  */
 
       mp_size_t esize = size - 1;      /* even size */
-      mp_limb cy_limb;
+      mp_limb_t cy_limb;
 
       MPN_SQR_N_RECURSE (prodp, up, esize, tspace);
       cy_limb = mpn_addmul_1 (prodp + esize, up, esize, up[esize]);
@@ -305,7 +306,7 @@ impn_sqr_n (prodp, up, size, tspace)
   else
     {
       mp_size_t hsize = size >> 1;
-      mp_limb cy;
+      mp_limb_t cy;
 
       /*** Product H.   ________________  ________________
                        |_____U1 x U1____||____U0 x U0_____|  */
index 7ce02e0..804f9be 100644 (file)
@@ -16,7 +16,8 @@ License for more details.
 
 You should have received a copy of the GNU Library General Public License
 along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
 
 #include "gmp.h"
 #include "gmp-impl.h"
@@ -30,7 +31,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
    2. If the result is to be written over the input, WP must be <= UP.
 */
 
-mp_limb
+mp_limb_t
 #if __STDC__
 mpn_rshift (register mp_ptr wp,
            register mp_srcptr up, mp_size_t usize,
@@ -43,10 +44,10 @@ mpn_rshift (wp, up, usize, cnt)
      register unsigned int cnt;
 #endif
 {
-  register mp_limb high_limb, low_limb;
+  register mp_limb_t high_limb, low_limb;
   register unsigned sh_1, sh_2;
   register mp_size_t i;
-  mp_limb retval;
+  mp_limb_t retval;
 
 #ifdef DEBUG
   if (usize == 0 || cnt == 0)
index f3c83d1..9d4b216 100644 (file)
@@ -16,12 +16,13 @@ License for more details.
 
 You should have received a copy of the GNU Library General Public License
 along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
 
 #include "gmp.h"
 #include "gmp-impl.h"
 
-mp_limb
+mp_limb_t
 #if __STDC__
 mpn_sub_n (mp_ptr res_ptr, mp_srcptr s1_ptr, mp_srcptr s2_ptr, mp_size_t size)
 #else
@@ -32,7 +33,7 @@ mpn_sub_n (res_ptr, s1_ptr, s2_ptr, size)
      mp_size_t size;
 #endif
 {
-  register mp_limb x, y, cy;
+  register mp_limb_t x, y, cy;
   register mp_size_t j;
 
   /* The loop counter and index J goes from -SIZE to -1.  This way
index 57122a5..b144283 100644 (file)
@@ -19,23 +19,24 @@ License for more details.
 
 You should have received a copy of the GNU Library General Public License
 along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
 
 #include "gmp.h"
 #include "gmp-impl.h"
 #include "longlong.h"
 
-mp_limb
+mp_limb_t
 mpn_submul_1 (res_ptr, s1_ptr, s1_size, s2_limb)
      register mp_ptr res_ptr;
      register mp_srcptr s1_ptr;
      mp_size_t s1_size;
-     register mp_limb s2_limb;
+     register mp_limb_t s2_limb;
 {
-  register mp_limb cy_limb;
+  register mp_limb_t cy_limb;
   register mp_size_t j;
-  register mp_limb prod_high, prod_low;
-  register mp_limb x;
+  register mp_limb_t prod_high, prod_low;
+  register mp_limb_t x;
 
   /* The loop counter and index J goes from -SIZE to -1.  This way
      the loop becomes faster.  */
index 7f3e323..b4a1428 100644 (file)
@@ -17,7 +17,8 @@
 
 ; You should have received a copy of the GNU Library General Public License
 ; along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-; the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+; MA 02111-1307, USA.
 
 
 ; INPUT PARAMETERS
index 0479f4a..abac6ec 100644 (file)
@@ -16,7 +16,8 @@
 
 ; You should have received a copy of the GNU Library General Public License
 ; along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-; the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+; MA 02111-1307, USA.
 
 
 ; INPUT PARAMETERS
index 18d33f2..c1480e5 100644 (file)
@@ -16,7 +16,8 @@
 
 ; You should have received a copy of the GNU Library General Public License
 ; along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-; the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+; MA 02111-1307, USA.
 
 
 ; INPUT PARAMETERS
index daae46e..04fa3e1 100644 (file)
@@ -17,7 +17,8 @@
 
 ; You should have received a copy of the GNU Library General Public License
 ; along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-; the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+; MA 02111-1307, USA.
 
 
 ; INPUT PARAMETERS
index 0b069bf..9b45eb4 100644 (file)
@@ -17,7 +17,8 @@
 
 ; You should have received a copy of the GNU Library General Public License
 ; along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-; the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+; MA 02111-1307, USA.
 
 
 ; INPUT PARAMETERS
index 754af9f..7ca5b95 100644 (file)
@@ -17,7 +17,8 @@ License for more details.
 
 You should have received a copy of the GNU Library General Public License
 along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
 
 /*
   INPUT PARAMETERS
index c58594a..77184d6 100644 (file)
@@ -16,7 +16,8 @@ License for more details.
 
 You should have received a copy of the GNU Library General Public License
 along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
 
 /*
   INPUT PARAMETERS
index 494dfcb..01dde0a 100644 (file)
@@ -16,7 +16,8 @@ License for more details.
 
 You should have received a copy of the GNU Library General Public License
 along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
 
 /*
   INPUT PARAMETERS
index 39f5161..f94b0c7 100644 (file)
@@ -17,7 +17,8 @@ License for more details.
 
 You should have received a copy of the GNU Library General Public License
 along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
 
 /*
   INPUT PARAMETERS
index d564479..1b09cce 100644 (file)
@@ -17,7 +17,8 @@
 
 ; You should have received a copy of the GNU Library General Public License
 ; along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-; the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+; MA 02111-1307, USA.
 
 
 ; INPUT PARAMETERS
index 6b8492c..26626bf 100644 (file)
@@ -17,7 +17,8 @@
 
 ; You should have received a copy of the GNU Library General Public License
 ; along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-; the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+; MA 02111-1307, USA.
 
 
 ; INPUT PARAMETERS
index cd0b791..7dfffc9 100644 (file)
@@ -17,7 +17,8 @@
 
 ; You should have received a copy of the GNU Library General Public License
 ; along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-; the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+; MA 02111-1307, USA.
 
 
 ; INPUT PARAMETERS
index f4fa894..a72bce6 100644 (file)
@@ -17,7 +17,8 @@
 
 # You should have received a copy of the GNU Library General Public License
 # along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-# the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+# MA 02111-1307, USA.
 
 
 # INPUT PARAMETERS
index 6056acc..30d408a 100644 (file)
@@ -16,7 +16,8 @@
 
 # You should have received a copy of the GNU Library General Public License
 # along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-# the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+# MA 02111-1307, USA.
 
 
 # INPUT PARAMETERS
index c57675b..30d4fee 100644 (file)
@@ -1,7 +1,6 @@
-# IBM POWER __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
-# store difference in a third limb vector.
+# IBM POWER __mpn_sub_n -- Subtract two limb vectors of equal, non-zero length.
 
-# Copyright (C) 1992, 1994, 1995 Free Software Foundation, Inc.
+# Copyright (C) 1992, 1994, 1995, 1996 Free Software Foundation, Inc.
 
 # This file is part of the GNU MP Library.
 
@@ -17,7 +16,8 @@
 
 # You should have received a copy of the GNU Library General Public License
 # along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-# the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+# MA 02111-1307, USA.
 
 
 # INPUT PARAMETERS
@@ -38,18 +38,45 @@ __mpn_sub_n:
        .long .__mpn_sub_n, TOC[tc0], 0
        .csect [PR]
 .__mpn_sub_n:
-       mtctr   6               # copy size into CTR
+       andil.  10,6,1          # odd or even number of limbs?
        l       8,0(4)          # load least significant s1 limb
        l       0,0(5)          # load least significant s2 limb
-       cal     3,-4(3)         # offset res_ptr, it's updated before used
-       sf      7,0,8           # add least significant limbs, set cy
+       cal     3,-4(3)         # offset res_ptr, it's updated before it's used
+       sri     10,6,1          # count for unrolled loop
+       sf      7,0,8           # subtract least significant limbs, set cy
+       mtctr   10              # copy count into CTR
+       beq     0,Leven         # branch if even # of limbs (# of limbs >= 2)
+
+# We have an odd # of limbs.  Add the first limbs separately.
+       cmpi    1,10,0          # is count for unrolled loop zero?
+       bne     1,L1            # branch if not
+       st      7,4(3)
+       sfe     3,0,0           # load !cy into ...
+       sfi     3,3,0           # ... return value register
+       br                      # return
+
+# We added least significant limbs.  Now reload the next limbs to enter loop.
+L1:    lu      8,4(4)          # load s1 limb and update s1_ptr
+       lu      0,4(5)          # load s2 limb and update s2_ptr
+       stu     7,4(3)
+       sfe     7,0,8           # subtract limbs, set cy
+Leven: lu      9,4(4)          # load s1 limb and update s1_ptr
+       lu      10,4(5)         # load s2 limb and update s2_ptr
        bdz     Lend            # If done, skip loop
+
 Loop:  lu      8,4(4)          # load s1 limb and update s1_ptr
        lu      0,4(5)          # load s2 limb and update s2_ptr
-       stu     7,4(3)          # store previous limb in load latency slot
-       sfe     7,0,8           # add new limbs with cy, set cy
+       sfe     11,10,9         # subtract previous limbs with cy, set cy
+       stu     7,4(3)          # 
+       lu      9,4(4)          # load s1 limb and update s1_ptr
+       lu      10,4(5)         # load s2 limb and update s2_ptr
+       sfe     7,0,8           # subtract previous limbs with cy, set cy
+       stu     11,4(3)         # 
        bdn     Loop            # decrement CTR and loop back
-Lend:  st      7,4(3)          # store ultimate result limb
+
+Lend:  sfe     11,10,9         # subtract limbs with cy, set cy
+       st      7,4(3)          # 
+       st      11,8(3)         # 
        sfe     3,0,0           # load !cy into ...
        sfi     3,3,0           # ... return value register
        br
index 2526332..8e5946f 100644 (file)
@@ -17,7 +17,8 @@
 
 # You should have received a copy of the GNU Library General Public License
 # along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-# the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+# MA 02111-1307, USA.
 
 
 # INPUT PARAMETERS
index c89b226..d4764e2 100644 (file)
@@ -17,7 +17,8 @@
 
 # You should have received a copy of the GNU Library General Public License
 # along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-# the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+# MA 02111-1307, USA.
 
 
 # INPUT PARAMETERS
index 8e83204..746d95b 100644 (file)
@@ -17,7 +17,8 @@
 
 # You should have received a copy of the GNU Library General Public License
 # along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-# the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+# MA 02111-1307, USA.
 
 
 # INPUT PARAMETERS