2015-11-01 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* Version 6.1.0 released.

	* mpz/inits.c [__CHECKER__]: Init limb, not pointer.
	* mpz/init.c [__CHECKER__]: Likewise (spotted by Vicente Benjumea).
	* tests/mpf/t-pow_ui.c: Use another mpf for the size limit.

2015-10-30  Torbjörn Granlund  <torbjorng@google.com>

	* mpf/pow_ui.c: Add log(e) precision bits.

	* doc/gmp.texi (Floating-point): Rewrite mpf introduction.

2015-10-29 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* demos/factorize.c: mpz_div_2exp => mpz_tdiv_q_2exp.
	* demos/perl/GMP.xs: Likewise.
	* tests/mpf/t-pow_ui.c: Use reference value to check the size.

	* mini-gmp/mini-gmp.c: Removed a typo (spotted by Paul Zimmermann).
	* doc/gmp.texi (Floating-point): Remove "infinite precision" claim.

	* gmp-h.in: Update version.

2015-10-28  Torbjörn Granlund  <torbjorng@google.com>

	* tests/mpf/t-pow_ui.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Compile it.

	* mpf/pow_ui.c: Rewrite for accuracy and performance.

2015-10-26 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* configfsf.guess: Updated to version 2015-10-21, for a typo.

	* tests/cxx/t-ops.cc (check_mpq): Compare also with mpz.
	(check_mpf): Compare also with mpz and mpq.

2015-10-25  Torbjörn Granlund  <torbjorng@google.com>

	* configure.ac: Avoid passing ambiguous -march=skylake.

2015-10-21 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* Version 6.1.0-rc1 published.

	* gmp-h.in: Revert version for RC.

2015-10-20  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/x86/pentium4/sse2/popcount.asm: Use LEAL.
	* mpn/x86/k7/invert_limb.asm: Likewise.

2015-10-18  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/arm64/gmp-mparam.h: New file.

2015-10-18 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
	* gmp-h.in: Bump version.

2015-10-17 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/mpf/t-cmp_si.c: Initialise a variable (only when error arise)
	* mpn/generic/toom43_mul.c: Insert parentheses around & expressions.
	* mpn/generic/toom52_mul.c: Likewise.
	* tests/mpn/t-minvert.c: Remove an unused var.
	* tests/mpz/t-cong_2exp.c: Likewise.

2015-10-16  Hans Wennborg <hwennborg at google.com>

	* mpn/generic/div_qr_2.c: Insert parentheses around & expressions.
	* mpn/generic/toom44_mul.c: Likewise.
	* mpn/generic/toom53_mul.c: Likewise.
	* mpn/generic/toom62_mul.c: Likewise.
	* tests/mpn/t-bdiv.c: Simplify conditional printing of whitespace.
	* tests/mpn/t-div.c: Likewise.

2015-10-15 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* configfsf.sub: Updated to version 2015-08-20, from gnulib.
	* configfsf.guess: Updated to version 2015-09-14, from gnulib.

2015-10-14  Torbjörn Granlund  <torbjorng@google.com>

	* demos/pexpr.c (main): Clear out a variable.

	* mpn/generic/sqrlo_basecase.c: Move things before addmul_1 to reduce
	register pressure.

	* .hgignore: Add 'compile' and 'test-driver'.

	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Simplify, add ASSERT.
	* mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise.

	* tune/tuneup.c (tune_mu_bdiv): Start at measured BDIV_DC_ thresholds.

2015-10-13 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpf/clears.c, mpf/inits.c, mpq/clears.c, mpq/inits.c,
	* mpz/clears.c, mpz/inits.c: Keep on supporting empty list.

2015-10-13  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (__GMPP_DEFINE_BINARY_TYPE_FUNCTION): Allow mixed operations.
	(__gmp_cmp_function, __gmp_binary_equal, __gmp_binary_less):
	Handle mixed operations.
	(__gmp_cmp_function): Move before __gmp_binary_equal.

2015-10-13 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpf/pow_ui.c: Increased precision of partial results.

2015-10-12  Torbjörn Granlund  <torbjorng@google.com>

	* configure.ac: Reject AVX for NetBSD.

2015-10-11  Torbjörn Granlund  <torbjorng@google.com>

	* configure.ac (fat_path): Add skylake.

2015-10-10 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gen-fib.c: Correct the name of the program in error message.
	* gen-fac.c: Likewise.

	* mpf/get_str.c: Increase precision of base^e computation.

2015-10-09  Torbjörn Granlund  <torbjorng@google.com>

	* config.guess: Recognise cabylake and goldmont and more versions of
	skylake and silvermont.
	* acinclude.m4 (X86_64_PATTERN): Add cabylake and goldmont.
	* config.sub: Corresponding changes.
	* configure.ac: Corresponding changes.
	* mpn/x86_64/fat/fat.c: Corresponding changes.

2015-09-12  Torbjörn Granlund  <torbjorng@google.com>

	* mpf/clear.c, mpf/clears.c, mpf/inits.c, mpq/clear.c, mpq/clears.c
	* mpq/inits.c, mpz/clear.c, mpz/clears.c, mpz/inits.c:
	Streamline, use macros.

2015-09-27 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/cfdiv_r_2exp.c: Use mpn_neg and MPZ_NEWALLOC.
	* mpz/cfdiv_q_2exp.c: Use MPZ_REALLOC return value.

2015-09-12  Torbjörn Granlund  <torbjorng@google.com>

	* tests/mpf/t-cmp_si.c (check_data): Set precision reflecting data.

2015-09-11 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpf/cmp_z.c: New file implementing mpf_cmp_z.
	* mpf/Makefile.am (libmpf_la_SOURCES): Add it.
	* Makefile.am (MPF_OBJECTS): Add generate object to libs.
	* gmp-h.in: Declare new function.
	* tests/mpf/t-cmp_si.c: Test also the new function.
	* doc/gmp.texi: Document it.

2015-09-06  Torbjörn Granlund  <torbjorng@google.com>

	* Wrap remaining limb allocations in __GMP_ALLOCATE_FUNC_LIMBS.

	* mpn/x86/fat/fat.c (fake_cpuid_table): Add missing commas.
	* mpn/x86_64/fat/fat.c: Likewise.

	* mpn/x86/fat/fat.c (fake_cpuid_table): Improve struct type.
	* mpn/x86/fat/fat.c: Likewise.

2015-09-03 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/mpq/t-cmp_z.c (sizes_test): New function, tests sizes.

2015-09-03  Torbjörn Granlund  <torbjorng@google.com>

	* acinclude.m4 (GMP_C_HIDDEN_ALIAS): New.
	* configure.ac (GMP_C_HIDDEN_ALIAS): Invoke.

2015-09-01 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpq/cmp.c (mpq_cmp_numden): Cast to avoid over/underflow.
	* tests/mpn/t-toom22.c (MIN_AN): Use defined value.
	* tests/mpz/t-fac_ui.c: Check big factorial modulo a larger prime.
	* mpn/generic/bsqrtinv.c: Use sqrlo+mullo_n instead of powlo(,,3,,).
	* mpq/div.c: Move a branch out of the normal flow.

2015-08-31  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/x86/fat/fat.c (fake_cpuid_table): Update similarly to
	corresponding x86_64 code.

2015-08-31 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpq/cmp.c (mpq_cmp_z): New function to compare mpq with mpz,
	asked by Vincent Delecroix for the SageMath project.
	* gmp-h.in: Declare it.
	* doc/gmp.texi: Document it.
	* tests/mpq/t-cmp_z.c: New file to test mpq_cmp_z (from t-cmp.c).
	* tests/mpq/Makefile.am (check_PROGRAMS): Add t-cmp_z.

	* mpn/generic/powlo.c: Use mpn_sqrlo.

2015-08-29  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/x86_64/fat/fat.c (fake_cpuid_table): Add CPU aliases.

2015-08-25 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* configure.ac (AH_VERBATIM): Add HAVE_NATIVE_mpn_mullo_basecase.
	* mpn/generic/sqrlo.c (mpn_sqrlo): Use mullo_basecase when faster.
	* mpn/generic/sqrlo_basecase.c: More readable #defines.

	* tune/tuneup.c (tune_sqrlo): New function to tune sqrlo thresholds.
	(all): Call it, after multiplication and FFT.
	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add sqrlo{,_basecase}.c .
	* gmp-impl.h: Add all SQRLO_*_THRESHOLD* defs, for tuning and default.
	* mpn/generic/sqrlo.c: Remove default threshold definitions.
	* mpn/generic/sqrlo_basecase.c: Use SQRLO_DC_THRESHOLD_LIMIT.
	* mpn/minithres/gmp-mparam.h: New SQRLO_*_THRESHOLDs.

	* tune/tuneup.c (tune_mullo): Set MULLO_MUL_N_THRESHOLD to never
	whenever the FFT threshold does not exist.

	* mpf/cmp.c: Remove some branches.

2015-08-25  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/x86_64/x86_64-defs.m4: Output computed numbers in base-10 instead
	of base-16 to avoid bugs on Solaris, FreeBSD, and old NetBSD.

2015-08-23  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/x86_64/fat/fat.c (fake_cpuid_table): Add more entries, handle
	Broadwell separately.

	* configure.ac (fat_path): Add coreibwl.

2015-08-18 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/rootrem.c (logbased_root): New function.
	(mpn_rootrem_internal): Use it to estimate highest 9 bits of the root.

	* gmp-impl.h (MPQ_PTR_SWAP, MPQ_SRCPTR_SWAP): New macros.

2015-08-17  Torbjörn Granlund  <torbjorng@google.com>

	* acinclude.m4 (X86_64_PATTERN): Add skylake.
	* config.guess: Corresponding changes.
	* config.sub: Corresponding changes.
	* configure.ac: Corresponding changes.
	* mpn/x86_64/skylake/gmp-mparam.h: New file.

2015-08-15  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/generic/mullo_basecase.c: Provide alternative code, make default.

2015-08-04 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/refmpn.c (refmpn_sqrlo): New function.
	* tests/tests.h: Define it.

	* mpn/generic/sqrlo.c: New file, new function.
	* mpn/generic/sqrlo_basecase.c: New file, new function.
	* gmp-impl.h (mpn_sqrlo, mpn_sqrlo_basecase): Declare them.
	* configure.ac (gmp_mpn_functions): Add new files.

	* tests/mpn/t-sqrlo.c: New file, new test.
	* tests/mpn/Makefile.am (check_PROGRAMS): Add new test.
	* tests/devel/try.c: Support mpn_sqrlo and mpn_sqrlo_basecase.

	* tune/common.c (speed_mpn_sqrlo{,_basecase}): New functions.
	* tune/speed.c: Support new functions.
	* tune/speed.h (SPEED_ROUTINE_MPN_MULLO_BASECASE): Update.
	(SPEED_ROUTINE_MPN_SQRLO): New macro.

	* mpn/generic/rootrem.c: Avoid divisions if not needed.

	* tests/mpn/t-broot.c: Test also k=1.
	* mpz/aorsmul_i.c: Move branches out of main line.

2015-07-28 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/sqrtrem.c (mpn_dc_sqrt): Support odd sizes.

2015-07-16  Torbjörn Granlund  <torbjorng@google.com>

	* tune/speed.c: Remove now redundant MPN_FILL.

	* configure.ac (hppa-hpux): Never use O3 optimisation.

2015-07-09  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/ia64/add_n_sub_n.asm: Make it work for HP-UX.
	* mpn/ia64/addmul_2.asm: Likewise.
	* mpn/ia64/aors_n.asm: Likewise.
	* mpn/ia64/aorsorrlshC_n.asm: Likewise.
	* mpn/ia64/cnd_aors_n.asm: Likewise.
	* mpn/ia64/gcd_1.asm: Likewise.
	* mpn/ia64/lshiftc.asm: Likewise.
	* mpn/ia64/mod_34lsub1.asm: Likewise.
	* mpn/ia64/mul_2.asm: Likewise.
	* mpn/ia64/sec_tabselect.asm: Likewise.
	* mpn/ia64/sqr_diag_addlsh1.asm: Likewise.

2015-07-01 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gmp-impl.h (MPN_FILL): New macro, generalise MPN_ZERO.

	* mpn/generic/sqrtrem.c (mpn_dc_sqrt): New function not computing remainder.
	(mpn_dc_sqrtrem): Use tdiv_q instead of divrem, use given scratch space.
	(mpn_sqrtrem): Use mpn_dc_sqrt for both even and odd sizes.

2015-06-24  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/x86_64/fastsse/com.asm: Disalllow zero size operands.

	* mpn/x86_64/fastsse/copyi.asm: Suppress looping in basecase code.

2015-06-23 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/sqrtrem.c (mpn_sqrtrem2): Simplify branches.
	(mpn_dc_sqrtrem): Don't compute remainder if not needed.

2015-06-23  Torbjörn Granlund  <torbjorng@google.com>

	* gmp-impl.h: Remove K&R stringize support.
	* tests/devel/try.c: Likewise.
	* tests/t-constants.c: Likewise.
	* tests/mpf/t-fits.c: Likewise.
	* tests/mpz/t-fits.c: Likewise.

	* configure.ac (AC_C_STRINGIZE): Remove.

2015-06-15 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/devel/try.c: Support mpn_sqrt (sqrtrem with remainder = NULL).
	* mpn/generic/sqrtrem.c: Reorder branches for single limb operands.

2015-06-15  Torbjörn Granlund  <torbjorng@google.com>

	* config.guess: Rewrite code for AVX handling to deal with broken cpuid
	states.

2015-06-11  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/x86/k7/gcd_1.asm: Align stack for calls.
	* mpn/x86/p6/gcd_1.asm: Amend last change: align for PIC and non-PIC.

2015-06-10 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/sqrtrem.c: Use sqrtrem1 for single limb operands.

	* tests/mpz/t-root.c: Check also mpz_root return value.
	* mpn/generic/rootrem.c: Shorten first and last loop.

	* mpn/generic/toom2_sqr.c: Add some ASSERTs.
	* mpn/generic/toom22_mul.c: Likewise.
	* tests/mpn/t-toom22.c: stop testing some unsafe (unused) corner cases.

2015-06-08  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/x86/p6/gcd_1.asm: Align stack for calls.

2015-06-06  Torbjörn Granlund  <torbjorng@google.com>

	* config.sub: Recognise any arm*neon CPU.
	* configure.ac (powerpc): Add p8 directory for power8 and later.
	* mpn/powerpc64/mode64/p8/invert_limb.asm: New file.

2015-06-01  Torbjörn Granlund  <torbjorng@google.com>

	* tune/speed.c (routine): Measure "mpn_sqrt" and "mpn_root", which are
	really the corresponding "rem" functions with NULL remainder argument.

	* tune/speed.h (SPEED_ROUTINE_MPN_SQRTROOT_CALL): New.
	(SPEED_ROUTINE_MPN_SQRTREM, SPEED_ROUTINE_MPN_ROOTREM):	Remove.

	* tune/common.c (speed_mpn_sqrt, speed_mpn_root): New functions.
	(speed_mpn_sqrtrem): Use SPEED_ROUTINE_MPN_SQRTROOT_CALL
	(speed_mpn_rootrem): Likewise.

2015-05-30 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpf/cmp_ui.c: Use macros, remove branches, correct nails.
	* mpf/cmp_si.c: Likewise.
	* mpf/int_p.c: Use a simpler loop to ignore zero limbs.

	* mpf/sqrt_ui.c: Special case for sqrt(1).
	* tests/mpf/t-sqrt_ui.c: Test special cases.

	* gmp-h.in: Declare (and inline) mpn_zero_p.
	* gmp-impl.h: Remove mpn_zero_p.
	* mpn/generic/zero_p: New file to include the function in the library.
	* configure.ac (gmp_mpn_functions): Add it.
	* doc/gmp.texi: Document it.

	* mpz/combit.c: Call mpn_zero_p only if size is not zero.
	* mpz/scan1.c: Likewise.
	* tests/mpn/t-brootinv.c: Likewise.
	* tests/mpn/t-div.c: Likewise.
	* tests/mpn/t-minvert.c: Likewise.

	* mini-gmp/mini-gmp.h: Declare mpn_zero_p.
	* mini-gmp/mini-gmp.c: Define mpn_zero_p as a function, not a macro.

2015-05-28  Niels Möller  <nisse@lysator.liu.se>

	* doc/gmp.texi (Low-level Functions): Document mpn_divexact_1 and
	mpn_cnd_swap (the latter was forgotten for the 2015-02-08 change).

2015-05-28  Linus Nordberg  <linus@nordberg.se>

	* configure.ac: Remove double quotes in help strings, make some
	clarifications.

2015-05-24 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpq/div.c: Reduce memory use.
	* tests/mpq/reuse.c: Test also mpq_FUNCTION (x,x,x).
	* mpz/swap.c: Use _SWAP macros.

2015-05-18  Torbjörn Granlund  <torbjorng@google.com>

	* configure.ac (arm): Let compiler decide about arm vs thumb encoding.

2015-05-18 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gmp-h.in (mpn_neg): Niels' code using mpn_neg.
	* gmp-h.in (mpn_com): Unconditionally declare prototype.

2015-05-17  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/arm/v6/sqr_basecase.asm: Rewrite for speed.

2015-05-16  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/arm/v6/addmul_2.asm: Rewrite for speed and size.

2015-05-15  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/arm/v7a/cora7/gmp-mparam.h: New file.
	* mpn/arm/v7a/cora8/gmp-mparam.h: New file.
	* configure.ac (arm): Point to new directories.

2015-05-15 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/invertappr.c: Reduce memory usage.
	* gmp-impl.h (mpn_invertappr_itch): Update accordingly.
	* tune/tuneup.c (tune_invertappr, tune_invert): Update min_size.

	* mpn/generic/mu_div_qr.c: Pass scratch memory to mpn_invertappr.
	* mpn/generic/mu_divappr_q.c: Likewise.

2015-05-12  Felix Janda  <felix.janda@posteo.de>

	* mpn/powerpc32/elf.m4 (LEA): Adopt to new ABI.

2015-05-09 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/invertappr.c: Reduce memory usage.
	* gmp-impl.h (mpn_invertappr_itch): Update accordingly.

2015-05-01  Torbjörn Granlund  <torbjorng@google.com>

	* tune/tuneup.c (all): Make GCD tuning last since it is not robust.

2015-04-27  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/x86_64/coreibwl/gmp-mparam.h: New file.

2015-04-26  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/x86_64/coreibwl/mul_basecase.asm: New file.
	* mpn/x86_64/coreibwl/sqr_basecase.asm: New file.

2015-04-26 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tune/common.c (speed_mpn_neg, speed_mpz_2fac_ui): New functions.
	(speed_mpn_add_1, speed_mpn_add_1_inplace): New functions.
	(speed_mpn_sub_1, speed_mpn_sub_1_inplace): New functions.
	* tune/speed.h: Declare them all.
        * tune/speed.c (routine): Added mpn_neg, mpn_add_1, mpn_sub_1,
	mpn_add_1_inplace, mpn_sub_1_inplace, and mpz_2fac_ui.

2015-04-25 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/invert.c: Split add in the correction test.
	* mpn/generic/invertappr.c: Cleanup of loops and branches.

	* mpn/generic/hgcd_reduce.c: Use TMP_ALLOC_LIMBS_3.
	* mpn/generic/powm.c: Use TMP_ALLOC_LIMBS_2.
	* mpn/generic/rootrem.c: Likewise.
	* mpn/generic/remove.c: Remove redundant #ifdef.
	* mpn/generic/perfpow.c: Likewise.

2015-04-21  Torbjörn Granlund  <torbjorng@google.com>

	* printf/sprintffuns.c (gmp_sprintf_final): Remove extra parameters.

	* mpn/arm/v6/popham.asm: Add MULFUNC_PROLOGUE.
	* mpn/powerpc64/mode64/rsh1aors_n.asm: Likewise.
	* mpn/powerpc64/mode64/p6/aorsmul_1.asm: Likewise.

2015-04-19  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/x86_64/x86_64-defs.m4 (oplist): Fix typo.
	(mulx): Simplify.
	(adcx, adox): New defines, using helper function adx.
	* mpn/x86_64/coreibwl/mul_1.asm: New file.
	* mpn/x86_64/coreibwl/addmul_1.asm: New file.
	* configure.ac (x86_64): Put coreibwl in appropriate code path.

	* configure.ac (x86_64): Pass more exact Intel CPU options.

2015-04-13  Torbjörn Granlund  <torbjorng@google.com>

	* longlong.h (arm): Rewrite.  Support thumb2; use gcc builtins for
	count_leading_zeros, use accurate code selection critera.

2015-04-13  Marc Glisse  <marc.glisse@inria.fr>

	* configure.ac (x86_64): Extend noavx to ABI=64.

2015-04-10  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/alpha/ev6/mod_1_4.asm: Use LDGP.

2015-04-01  Torbjörn Granlund  <torbjorng@google.com>

	* configure.ac (sparc): Don't use use -xO4, it miscompiles by design.

2015-03-24  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/generic/mul_fft.c (mpn_fft_best_k): Don't make pointers `static'
	just because they point to static (i.e., file-local) data.

2015-03-15  Torbjörn Granlund  <torbjorng@google.com>

	* acinclude.m4 (X86_64_PATTERN): Add CPU code names.

	* config.guess: Add more CPUs, use CPU code names.
	* config.sub: Corresponding changes.
	* configure.ac: Corresponding changes.

2015-02-21  Niels Möller  <nisse@lysator.liu.se>

	* gmp-h.in (mpn_divexact_1): New public declaration.
	* gmp-impl.h: Moved from here.

2015-02-08  Niels Möller  <nisse@lysator.liu.se>

	* doc/gmp.texi (Low-level Functions): Document mpn_cnd_swap.

	* mpn/generic/cnd_swap.c (mpn_cnd_swap): New file, moved function
	here. Also changed cnd argument type from int to mp_limb_t.
	* mpn/generic/sec_invert.c (mpn_cnd_swap): Old location.
	* configure.ac: Added cnd_swap.
	* gmp-h.in (mpn_cnd_swap): Added prototype.

2015-01-19  Torbjörn Granlund  <torbjorng@google.com>

	* configure.ac (arm): Provide architecture specific configs in addition
	to implementation specific configs.

	* config.guess (arm): Use configfsf.guess's guess as default before
	conditionally appending "neon".

2015-01-08  Torbjörn Granlund  <torbjorng@google.com>

	* config.guess: Match POWER8 for AIX.

	* longlong.h: Add many casts inside assembly input operands, this
	insures proper zero extension.

2014-12-27  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (__gmp_unary_expr): Use __gmp_resolve_ref.
	(__gmp_expr): New specialization for unary expressions with
	a builtin argument.

2014-12-26  Marc Glisse  <marc.glisse@inria.fr>

	* gmp-impl.h (tmp_debug_entry_t): Change block to type void*.

2014-12-22  Torbjörn Granlund  <torbjorng@google.com>

	* longlong.h (mips64, mips32): Work around one clang bug.

2014-12-18  Torbjörn Granlund  <torbjorng@google.com>

	* longlong.h (umul_ppmm): Use input temps in more places.

2014-12-10  Marc Glisse  <marc.glisse@inria.fr>

	* tests/cxx/clocale.c (localeconv, nl_langinfo): Match glibc's
	prototype in C++.

2014-12-09  Torbjörn Granlund  <torbjorng@google.com>

	* configure.ac (powerpc): Remove hardwired -mpowerpc, causes clang
	problems.  Optionally pass -m32.

2014-12-08  Marc Glisse  <marc.glisse@inria.fr>

	* config.guess (ultrasparc*-*-*): Update for T4 and T5.
	* config.sub (ultrasparc*-*-*): Update for T5.
	* configure.ac (ultrasparc*-*-*): Update for T5.

	* longlong.h (sparc64): Define COUNT_LEADING_ZEROS_NEED_CLZ_TAB
	with VIS3.

	* tests/misc/t-locale.c (localeconv, nl_langinfo): Match glibc's
	prototype in C++.
	* tests/mpf/t-get_si.c (check_limbdata): Avoid narrowing conversion
	from -1 to unsigned inside {}.

2014-12-02  Torbjörn Granlund  <torbjorng@google.com>

	* config.guess (arm*-*-*): Redirect stderr.

2014-11-26  Torbjörn Granlund  <torbjorng@google.com>

	* configure.ac (arm*-*-*): Optionally pass redundant fpu mode options
	in order to placate clang.

	* mpn/arm/neon/lshiftc.asm: Avoid insn form missing from clang.

2014-11-24  Torbjörn Granlund  <torbjorng@google.com>

	* configure.ac (mips*-*-*): Provide ABI synonyms (for clang pretending
	to be gcc).

2014-11-18  Torbjörn Granlund  <torbjorng@google.com>

	From Hannes Mehnert:
	* config.guess (arm*-*-*): Base guesses on first matching /proc/cpuinfo
	line.

2014-11-17  Torbjörn Granlund  <torbjorng@google.com>

	* longlong.h (__longlong_h_C): New macro.
	(mpn_umul_ppmm, etc): Use it for C++ support.

2014-11-15  Torbjörn Granlund  <torbjorng@google.com>

	* tests/mpz/reuse.c: Make function vectors 'static'.

	* tests/mpn/logic.c (check_one): Make string variable 'const'.

	* tests/mpz/t-perfpow.c (tests): Make 'static'.

	* tune/tuneup.c (fftmes): Remove an unused variable.

2014-11-15  Marc Glisse  <marc.glisse@inria.fr>

	* tests/amd64check.c (calling_conventions_fenv): Mark as extern "C".
	* tests/x86check.c (calling_conventions_fenv): Likewise.

2014-11-13  Hans Wennborg  <hwennborg@google.com>

	* mpn/generic/toom_interpolate_8pts.c: Fix operator precedence in
	ASSERT.

2014-11-13  Torbjörn Granlund  <torbjorng@google.com>

	* tune/speed.h: Add casts for C++ compatibility.
	(speed_cyclecounter): Mark as extern "C".
	(mpn_mod_1_1p_1, mpn_mod_1_1p_2): Correct prototype.

	* tune/tune-gcd-p.c: Add casts for C++ compatibility.

	* tune/tuneup.c:  Add casts for C++ compatibility.
	(mpn_divrem_1_tune, mpn_mod_1_tune): Mark as extern "C".
	(INSERT_FFTTAB): Produce sentinels differently to silence compiler.

2014-11-12  Torbjörn Granlund  <torbjorng@google.com>

	* gen-psqr.c: Add casts for C++ compatibility.

	* tests/misc/t-scanf.c: Include config.h early for HAVE_xxx.

2014-11-08  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/x86/x86-defs.m4 (LEA, LEAL): Make sure to put eip stub code in
	text segment.
	* mpn/x86/darwin.m4: Likewise.

	* tune/speed.h (i386 speed_cyclecounter): Remove inline asm code, rely
	on external version.

2014-11-06  Torbjörn Granlund  <torbjorng@google.com>

	* config.guess: Ignore appended letters such E in POWER8E.
	* configure.ac: Supply cflags for power8, power9.

2014-11-03  Torbjörn Granlund  <torbjorng@google.com>

	* mpn/powerpc32/addmul_1.asm: Avoid negative stack pointer references.
	* mpn/powerpc32/lshift.asm: Likewise.
	* mpn/powerpc32/lshiftc.asm:  Likewise.
	* mpn/powerpc32/p3-p7/aors_n.asm:  Likewise.
	* mpn/powerpc32/rshift.asm:  Likewise.
	* mpn/powerpc32/sec_tabselect.asm:  Likewise.
	* mpn/powerpc32/submul_1.asm:  Likewise.
	* mpn/powerpc32/vmx/mod_34lsub1.asm:  Likewise.

2014-10-13  Torbjörn Granlund  <torbjorng@google.com>

	* acinclude.m4 (freebsd hacked gcc): Test for crash-prone FreeBSD gcc.

2014-10-03  Peter Breitenlohner <peb@mppmu.mpg.de>

	* mpn/generic/sec_tabselect.c: Adjust type to silence compiler.

2014-10-01  Torbjörn Granlund  <torbjorng@google.com>

	* All Makefile.am: INCLUDES => AM_CPPFLAGS.

	* configure.ac (arm64): Set gcc_cflags_maybe to enable Neon (for clang
	pretending to be gcc).

2014-09-24  Marc Glisse  <marc.glisse@inria.fr>

	* longlong.h (arm64 count_trailing_zeros, count_leading_zeros): Use
	gcc's builtins.
	(arm64 umul_ppmm): Use macro arguments only once.

2014-09-22  Marc Glisse  <marc.glisse@inria.fr>

	* mpn/arm64/lshift.asm: Avoid negative immediates.
	* mpn/arm64/rshift.asm: Likewise.

2014-09-13  Marc Glisse  <marc.glisse@inria.fr>

	* mpn/generic/div_qr_1n_pi1.c: Honor NO_ASM.
	* mpn/generic/div_qr_1n_pi2.c: Likewise.
	* mpn/generic/div_qr_1u_pi2.c: Likewise.
	* mpn/generic/div_qr_2.c: Likewise.
	* mpn/generic/mod_1_1.c: Likewise.
	* mpn/generic/redc_2.c: Likewise.

2014-08-31  Torbjörn Granlund  <tege@gmplib.org>

	* mpn/arm64/lshift.asm: New file.
	* mpn/arm64/rshift.asm: New file.

2014-09-01 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gmp-impl.h (TMP_ALLOC_LIMBS_3): New macro to allocate 3 blocks.
	(mpn_remove): Update declaration with mp_srcptr arguments.
	* mpn/generic/remove.c: Use TMP_ALLOC_LIMBS_3. mp_srcptr for args.

	* mpn/generic/perfpow.c (pow_equals): TMP_DECL only where needed.
	(perfpow): Use TMP_ALLOC_LIMBS_3.
	(mpn_perfect_power_p): Skip useless allocations. Use mpn_remove.
	* tests/mpz/t-perfpow.c (check_random): Check more perfect powers.

	* mpn/generic/divis.c: Use TMP_ALLOC_LIMBS_2. Share a count.

2014-08-30  Torbjörn Granlund  <tege@gmplib.org>

	* mpn/arm64/mod_34lsub1.asm: New file.

2014-08-27  Niels Möller  <nisse@lysator.liu.se>

	* mini-gmp/mini-gmp.c (mpz_abs_sub_bit): Do full normalization,
	needed if mpz_clrbit clears the most significant one bit.

2014-08-23  Torbjörn Granlund  <tege@gmplib.org>

	* mpn/arm64/bdiv_dbm1c.asm: New file.

	* mpn/arm64/com.asm: New file.

	* mpn/arm64/sec_tabselect.asm: New file.

	* mpn/arm64/popcount.asm: New file.
	* mpn/arm64/hamdist.asm: New file.

	* configure.ac: Put generic arm/neon earlier in path.

2014-08-14 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpq/canonicalize.c: Earlier check for negative denominator.
	* mpq/set_d.c: Stricter allocation.

2014-08-03  Torbjörn Granlund  <tege@gmplib.org>

	* mpn/x86_64/bobcat/mul_1.asm: Fix typo in offset affecting DOS64.

2014-07-28 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/fib2_ui.c: remove #if HAVE_NATIVE_mpn_rsblsh_n.
	* mpz/fib2_ui.c: Use tabulated values, when available.
	* mpz/fib_ui.c: #if HAVE_NATIVE_mpn_addlsh1_n, use it.

	* mpq/cmp_ui.c: Remove a branch.
	* mpq/cmp_si.c: Likewise.

	* mpn/generic/toom_interpolate_7pts.c: Replace an in-place add
	with add_n + INCR_U.

	* tests/mpf/t-fits.c: use ui_sub instead of sub_ui+neg.

	* mini-gmp/mini-gmp.c: Remove some useless variables.

2014-07-27  Torbjörn Granlund  <tege@gmplib.org>

	* mpn/x86/k7/gcd_1.asm: Use LEAL.

	* mpn/x86/x86-defs.m4 (LEAL): New.
	(LEA): Append to `load_eip' instead of ASM_END, like darwin.m4.
	* mpn/x86/darwin.m4 (LEAL): New.

2014-07-26  Torbjörn Granlund  <tege@gmplib.org>

	* mpn/x86/pentium/mode1o.asm: Add Darwin PIC code.
	* mpn/x86/pentium/bdiv_q_1.asm: Likewise.
	* mpn/x86/pentium/dive_1.asm: Likewise.
	* mpn/x86/pentium/popcount.asm: Likewise.
	* mpn/x86/pentium/hamdist.asm: Likewise.
	* mpn/x86/k6/gcd_1.asm: Likewise.

	* mpn/x86: Append ASM_END to many files.
	* tests/x86call.asm: Append ASM_END.

	* mpn/x86/fat/fat_entry.asm (FAT_ENTRY, FAT_INIT):
	Support Darwin.

	* mpn/x86/darwin.m4 (ASM_END): New, body from EPILOGUE_cpu.
	(EPILOGUE_cpu): Remove.

	* mpn/x86/x86-defs.m4 (LEA): Put `mov_eip_' thunks in ASM_END instead
	of EPILOGUE_cpu.

2014-07-05  Niels Möller  <nisse@lysator.liu.se>

	* doc/gmp.texi (Low-level Functions): Document that scratch need
	for mpn_sec_add_1 and mpn_sec_sub_1 are at most n limbs.
	(Low-level Functions): Document allowed overlap for mpn_addmul_1
	and mpn_submul_1.

2014-07-02  Torbjörn Granlund  <tege@gmplib.org>

	* mpn/x86_64/x86_64-defs.m4: Fix quoting.

	* mpn/x86_64/atom/redc_1.asm: Enforce proper stack allocation.
	* mpn/x86_64/bobcat/redc_1.asm: Likewise.
	* mpn/x86_64/core2/divrem_1.asm: Likewise.
	* mpn/x86_64/core2/gcd_1.asm: Likewise.
	* mpn/x86_64/core2/redc_1.asm: Likewise.
	* mpn/x86_64/coreihwl/redc_1.asm: Likewise.
	* mpn/x86_64/coreinhm/redc_1.asm: Likewise.
	* mpn/x86_64/coreisbr/redc_1.asm: Likewise.
	* mpn/x86_64/divrem_1.asm: Likewise.
	* mpn/x86_64/divrem_2.asm: Likewise.
	* mpn/x86_64/gcd_1.asm: Likewise.
	* mpn/x86_64/mod_1_1.asm: Likewise.
	* mpn/x86_64/mod_1_2.asm: Likewise.
	* mpn/x86_64/mod_1_4.asm: Likewise.

2014-06-30  Torbjörn Granlund  <tege@gmplib.org>

	* config.sub: Generalise x86 patterns.

2014-06-17  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (__gmp_gcd_function, __gmp_lcm_function): New classes.
	(gcd, lcm): New functions.
	* doc/gmp.texi (C++ Interface Integers): Document them.
	* tests/cxx/t-ops2.cc (checkz): Test them.

2014-06-16  Torbjörn Granlund  <tege@gmplib.org>

	* mpf/mul.c: Postpone TMP_MARK.

	* mpn/generic/perfpow.c (perfpow): Combine TMP_ALLOCs.

2014-06-15  Torbjörn Granlund  <tege@gmplib.org>

	* tests/refmpn.c (refmpn_mul): Rewrite to avoid O(n) recursion depth.

2014-06-09  Torbjörn Granlund  <tege@gmplib.org>

	* mpn/generic/mullo_n.c: Remove default THRESHOLDs.
	* gmp-impl.h: Put MULLO THRESHOLDs here.  Improve various THRESHOLD
	defaults.

2014-06-08  Torbjörn Granlund  <tege@gmplib.org>

	* gmp-impl.h (TMP_ALLOC): Decrease limit to about half.

	* mpn/generic/toom53_mul.c: Replace many TMP_SALLOC invocations
	by a single TMP_ALLOC.
	* mpn/generic/toom42_mul.c: Likewise.

	* mpn/generic/sec_sqr.c: Don't unconditionally call mpn_sqr_basecase
	since it fails for non-cryptographic sizes for some obsolete CPUs.

	* mpn/generic/sec_powm.c: Remove own squaring code, instead use
	mpn_mul_basecase.

	* tests/mpn/logic.c (main): Don't use TMP_SALLOC_LIMBS.

	* mpn/generic/dcpi1_div_q.c: Avoid TMP_SALLOC_LIMBS.
	* mpn/generic/dcpi1_div_qr.c: Likewise.

2014-06-08 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/mul.c: Tighter allocation in Toom{2,3}X branches.

2014-06-06  Torbjörn Granlund  <tege@gmplib.org>

	* mpn/generic/mul.c: Swap some TMP_SALLOC_LIMBS for TMP_ALLOC_LIMBS
	and some TMP_ALLOC_LIMBS for TMP_SALLOC_LIMBS.

2014-05-31 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpf/ui_sub.c: Remove buggy code, use a wrapper to mpf_sub.
	* tests/mpf/t-sub.c: More corner cases and strict checking.
	* mpf/sub.c: Use more mpn_ primitives and macros.

	* tests/mpf/t-int_p.c: Test numbers with both integer and
	fractionary parts.

	* mpf/int_p.c: Delay zero branch and use mpn_zero_p.
	* mpf/fits_s.h: No special case for SIZ == 0.
	* mpf/fits_u.h: Likewise.

2014-05-29  Marc Glisse  <marc.glisse@inria.fr>

	* gmp-h.in: Include <limits.h>.
	(__GMP_UINT_MAX, __GMP_ULONG_MAX, __GMP_USHRT_MAX): Remove.
	* gmp-impl.h (ULONG_MAX, UINT_MAX, USHRT_MAX, LONG_MAX, INT_MAX,
	SHRT_MAX): Remove unnecessary redefinition.
	* tests/t-gmpmax.c: Remove file.
	* tests/Makefile.am: Remove t-gmpmax.

2014-05-22 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/mpf/t-sub.c (check_data): Test also ui_sub and sub_ui.

2014-05-20 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gen-fac.c: +1 in the init2 argument before setbit.
	* gen-fib.c: Likewise. (Thanks Niels)
	* mini-gmp/mini-gmp.c: Likewise.
	* rand/randmts.c: Likewise.

	* mpn/generic/invert.c: Remove unused TMP_MARK.
	* mpn/generic/invertappr.c: Avoid a branch.
	* mpz/millerrabin.c (millerrabin): Consider the rare case n is a power.

2014-05-15 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/mini-gmp.c: Micro-optimisations.

	* gen-fib.c: Use mpz_setbit.
	* gen-psqr.c: Skip even numbers when looking for primes.

	* mpn/generic/invert.c: Avoid a branch.
	* mpn/generic/toom2_sqr.c: Avoid a few branches in the odd case.
	* mpn/generic/toom22_mul.c: Likewise.

2014-05-08  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (std::common_type): Remove partial specialization for two
	identical expressions. New partial specialization for a single type.
	* tests/cxx/t-cxx11.cc: Test it.

2014-04-14  Niels Möller  <nisse@lysator.liu.se>

	* doc/gmp.texi (mpz_invert): Clarify behavior in the zero ring.

2014-04-04  Marc Glisse  <marc.glisse@inria.fr>

	* longlong.h (i386): Add comment about "cc" clobber.

2014-04-04  Torbjorn Granlund  <tege@gmplib.org>

	* acinclude.m4 (X86_64_PATTERN): Generalise patterns to allow "noavx"
	suffix.

	* mpn/generic/div_qr_1n_pi1.c: Conditionalise ARM asm on !__thumb__.

2014-04-03  Marc Glisse  <marc.glisse@inria.fr>

	* mpn/arm64/mul_1.asm, mpn/arm64/gcd_1.asm: Use official b.cond syntax.
	* mpn/arm64/invert_limb.asm, mpn/arm64/aorsmul_1.asm: Prefix
	immediates with #.

2014-04-03  Torbjorn Granlund  <tege@gmplib.org>

	* config.guess: Append "noavx" for CPUs which have AVX but where the
	kernel does not support it.
	* configure.ac: Accept "noavx" cpu name suffixes.  Conditionally pass
	-mno-avx.

2014-04-02  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/k8/redc_1.asm: Workaround for Darwin assembler quirk.

2014-03-28  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mod_1_1.c: Conditionalise ARM asm on !__thumb__.

2014-03-31  Marc Glisse  <marc.glisse@inria.fr>

	* mpn/arm/dive_1.asm, mpn/arm/invert_limb.asm: Use RODATA.
	* acinclude.m4 ([long long reliability tests]): Declare functions.
	(GMP_PROG_CC_FOR_BUILD_WORKS, GMP_PROG_EXEEXT_FOR_BUILD,
	GMP_C_FOR_BUILD_ANSI, GMP_CHECK_LIBM_FOR_BUILD): Replace exit(0) with
	return 0, no declaration needed.
	(GMP_CHECK_LIBM_FOR_BUILD): Include <math.h> to declare log.

2014-03-30  Marc Glisse  <marc.glisse@inria.fr>

	* README: Remove mention to Berkeley MP compatibility.

2014-03-26  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/mode64/gcd_1.asm: Provide default for
	BMOD_1_TO_MOD_1_THRESHOLD.

2014-03-24  Torbjorn Granlund  <tege@gmplib.org>

	* Version 6.0.0 released.

	* mpn: Update countless gmp-mparam.h files.

2014-03-22  Torbjorn Granlund  <tege@gmplib.org>

	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
	* gmp-h.in: Bump version.

2014-03-17  Torbjorn Granlund  <tege@gmplib.org>

	* configure.ac: Remove clipper, i960, ns32k, pyr, a29k, z8000.
	* mpn/clipper: Remove directory and all its files.
	* mpn/i960: Likewise.
	* mpn/ns32k: Likewise.
	* mpn/pyr: Likewise.
	* mpn/a29k: Likewise.
	* mpn/z8000: Likewise.
	* mpn/Makefile.am (TARG_DIST): Purge removed directories.
	* doc/gmp.texi: Remove special mentions of removed architectures.

2014-03-12 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/mini-gmp.c (mpz_probab_prime_p): Micro-optimisation.

2014-03-12  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/bd2/gmp-mparam.h: New file.
	* mpn/x86_64/bd2/gmp-mparam.h: New file.

2014-03-06  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpz/t-pprime_p.c (check_composites): New function.
	(check_primes): New function.
	(main): Call them. Also use TESTS_REPS.

	* mini-gmp/mini-gmp.c (gmp_millerrabin): New internal function.
	(mpz_probab_prime_p): New function.
	* mini-gmp/mini-gmp.h (mpz_probab_prime_p): Declare it.
	* mini-gmp/tests/t-pprime_p.c: New test program.
	* mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-pprime_p.

2014-03-03  Niels Möller  <nisse@lysator.liu.se>

	* mini-gmp/mini-gmp.c (mpz_congruent_p): New function.
	* mini-gmp/mini-gmp.h: Declare it.
	* mini-gmp/tests/t-cong.c: New file, based on tests/mpz/t-cong.c.
	* mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-cong.

	* mini-gmp/tests/testutils.c (dump): New function. Deleted static
	functions in other files.
	(mpz_set_str_or_abort): Moved function here, from...
	* mini-gmp/tests/t-cmp_d.c: ... old location.

	* mini-gmp/tests/t-reuse.c (dump3): Renamed, from ...
	(dump): ...old name.

2014-03-01  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/sec_powm.c (mpn_sec_powm): Clarify comment and
	asserts.

2014-02-28  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fat/fat.c (fake_cpuid): Handle id 7, make bold claims.

2014-02-27  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fat/fat_entry.asm: Zero ecx for the benefit of new BMI2
	feature test.

	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Run CPUVEC_SETUP_coreihwl
	conditionally on BMI2 availability.

	* config.guess: Revert "coreihwl" to "coreisbr" if cpuid indicates that
	BMI2 is missing.
	(x86 cpuid, 2 variants): Zero ecx for the benefit of new BMI2 feature
	test.

2014-02-21 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/mini-gmp.c (mpn_sqrtrem): New function.
	* mini-gmp/mini-gmp.h: Declare it.
	* mini-gmp/tests/t-sqrt.c: Test it.

2014-02-17  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/div_qr_1.c (mpn_div_qr_1): Revert yesterday's fix.
	Hopefully no longer needed.

	* mpn/s390_64/gmp-mparam.h (DIV_QR_1_NORM_THRESHOLD): Up to 1.
	* mpn/s390_64/z10/gmp-mparam.h (DIV_QR_1_NORM_THRESHOLD): Up to 1.

	* tune/tuneup.c (tune_div_qr_1): Ensure DIV_QR_1_NORM_THRESHOLD,
	DIV_QR_1_UNNORM_THRESHOLD >= 1.

2014-02-16 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/div_qr_1.c: Disallow DIV_QR_1_NORM_THRESHOLD==0.

2014-02-15  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpn/t-div.c: Fix typo.

2014-02-15 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* doc/gmp.texi (mpz_roinit_n, MPZ_ROINIT_N): Document that
	at least a readable limb is required.
	* mini-gmp/mini-gmp.c (mpz_div_qr): init + set = init_set .

2014-02-14  Niels Möller  <nisse@lysator.liu.se>

	* doc/gmp.texi (Low-level Functions): Update docs for
	mpn_sec_powm, to specify that left-over exponent bits must be
	zero.

2014-02-11  Niels Möller  <nisse@lysator.liu.se>

	* Makefile.am (EXTRA_DIST): Distribute COPYING.LESSERv3,
	COPYINGv2, and COPYINGv3.

	* doc/gmp.texi (Low-level Functions): Updated mpn_sec_powm docs.

	* mpn/generic/sec_powm.c (mpn_sec_powm): Replaced exponent limb
	count argument by bit count. Don't leak high exponent bits, and
	drop the requirement that the most significant exponent limb is
	non-zero.
	(mpn_sec_powm_itch): Analogous interface change.
	* gmp-h.in: Updated prototypes.
	* mpz/powm_sec.c (mpz_powm_sec): Update mpn_sec_powm* calls.
	* tune/tuneup.c (tune_powm_sec): Likewise. Also deleted code
	fiddling with the high exponent bits.

2014-02-10 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/tests/t-limbs.c: New test for mpz_limbs_*.
	* mini-gmp/tests/Makefile (CHECK_PROGRAMS): Add it.

2014-02-09  Niels Möller  <nisse@lysator.liu.se>

	* tune/tuneup.c (tune_powm_sec): Avoid timing of the nonsensical
	parameters nbits = 1, winsize = 2. Decrement tabulated values, to
	better match the > comparison when the table is used.

	* mpn/generic/sec_powm.c (win_size): Comment why we always get
	win_size(eb) <= eb. Make the table const.
	(mpn_sec_powm): Deleted handling of winsize > initial ebi. For
	now, replaced with an ASSERT_ALWAYS.

2014-02-08 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/mini-gmp.c (mpz_realloc2, mpz_limbs_read, mpz_limbs_modify
	mpz_limbs_write, mpz_limbs_finish, mpz_roinit_n): New functions.
	(mpn_perfect_square_p): New function.
	* mini-gmp/mini-gmp.h: Declare them.

	* mini-gmp/tests/t-mul.c: Use roinit and limbs_read to test mpn.
	* mini-gmp/tests/t-sqrt.c: Test also mpn_perfect_square_p.

2014-02-08  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/sec_invert.c (mpn_cnd_neg_itch): #if:ed out unused
	function.

	* mpn/generic/sec_div.c: Simplified code for the normalized case.

	* tests/mpn/t-div.c (main): Test mpn_sec_div_qr and mpn_sec_div_r
	with normalized d.

2014-02-04  Niels Möller  <nisse@lysator.liu.se>

	* doc/gmp.texi (Low-level Functions): Document mpn_sec_add_1 and
	mpn_sec_sub_1.

2014-02-03 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/mini-gmp.c (mpn_rootrem): Allow NULL argument.

	* mini-gmp/mini-gmp.c (mpn_zero): New function.
	(mpz_perfect_square_p): New function.
	* mini-gmp/mini-gmp.h: Declare them.

	* mini-gmp/tests/t-sqrt.c: Test mpz_perfect_square_p.
	* mini-gmp/tests/t-root.c: Test also 1-th root, allow perfect powers.

2014-01-29  Torbjorn Granlund  <tege@gmplib.org>

	* doc/gmp.texi (Floating-point Functions): Revise.

2014-01-29  Niels Möller  <nisse@lysator.liu.se>

	* README: Don't refer to specific COPYING* files, instead refer to
	manual for details.

	* COPYING.LIB: Renamed, to...
	* COPYING.LESSERv3: ... new name.
	* COPYING: Renamed, to...
	* COPYINGv3: ... new name.
	* COPYINGv2: New file, GPLv2.

	* doc/gmp.texi (Copying): Document dual licensing.

2014-01-27  Torbjorn Granlund  <tege@gmplib.org>

	* Update library files license to use LGPL3+ and GPL2+.

2014-01-27 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/mpn/t-aors_1.c: Check sec_aors_1 red zones (not smart).

	* mpn/generic/sec_aors_1.c: Mark the 2nd argument as const.
	* gmp-h.in (mpn_sec_add_1, mpn_sec_sub_1): Likewise.

2014-01-24  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fat/fat.c (fake_cpuid_table): Use proper steamroller and
	excavator values.

	* config.guess: Amend last AMD change.

	* mpn/s390_64/lshift.asm: Align loop.
	* mpn/s390_64/rshift.asm: Likewise.
	* mpn/s390_64/lshiftc.asm: Likewise.
	* mpn/s390_64: Add z10 cycle numbers.

2014-01-23 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* printf/repl-vsnprintf.c: Feed case 'z' in switch (type) with case 'z'
	in switch (fchar).

	* mini-gmp/tests/t-aorsmul.c: New file, test for mpz_{add,sub}mul{,_ui}
	* mini-gmp/tests/Makefile: Add t-aorsmul.

2014-01-21 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* acinclude.m4 (GMP_FUNC_VSNPRINTF): Get rid of varargs.

2014-01-20  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Fix duplicate entries for
	AMD "jaguar".

	* demos/expr: Get rid of varargs code and references.

2014-01-19  Torbjorn Granlund  <tege@gmplib.org>

	* config.guess: Add new AMD CPUs (piledriver, steamroller, excavator,
	jaguar).
	* config.sub: Corresponding updates.
	* configure.ac: Likewise.
	* acinclude.m4 (X86_64_PATTERN): Likewise.
	* mpn/x86_64/fat/fat.c: Likewise.

	* Rename mpn_sec_minvert => mpn_sec_invert, many files affected.
	* mpn/generic/sec_invert.c: New name for sec_minvert.c.

	* doc/gmp.texi: Undocument mpz_array_init.

	* acinclude.m4 (GMP_C_STDARG): Comment out.
	* configure.ac: Suppress GMP_C_STDARG invocation.

	* Get rid of varargs code and references, many file affected.

	* Use mpq_t in favour of MP_RAT, many mpq files affected.

	* Get rid of BYTES_PER_MP_LIMB, most files affected.

	* mpz/iset.c: Avoid overflow in allocation computation.
	* mpz/mul.c: Likewise.
	* mpf/init.c: Likewise.
	* mpf/init2.c: Likewise.
	* mpf/iset.c: Likewise.
	* mpf/iset_d.c: Likewise.
	* mpf/iset_si.c: Likewise.
	* mpf/iset_str.c: Likewise.
	* mpf/iset_ui.c: Likewise.

	* mpz/array_init.c: Avoid two overflow scenarios in allocation
	computation.

	* mpn/s390_64/z10/gmp-mparam.h: New file.

	* mpz/clears.c: Call __gmp_free_func ourselves instead of via
	mpz_clears.
	* mpf/clears.c: Analogous change.
	* mpq/clears.c: Analogous change.

	* mpz/clear.c: Add cast to avoid overflow of (later ignored) argument.
	* mpf/clear.c: Likewise.

2014-01-19 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/mini-gmp.c (mpn_popcount): New function.
	(mpz_popcount): Use it.
	(mpz_addmul_ui, mpz_addmul, mpz_submul_ui, mpz_submul): Added.
	* mini-gmp/mini-gmp.h: Declare them.

2014-01-18  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpn/t-aors_1.c: Test also mpn_sec_add_1 and mpn_sec_sub_1.

	* tests/mpn/t-minvert.c (main): Pass smallest allowed bit_size
	argument to mpn_sec_minvert.

2014-01-18  Marc Glisse  <marc.glisse@inria.fr>

	* doc/gmp.texi (C++ Interface Limitations): Warn against C++11 auto.

2014-01-18 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/t-parity.c: Use 1UL to generate unsigned constants.
	* tests/t-constants.c: Disable a non portable (unneeded) check.

2014-01-18  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/sec_aors_1.c (mpn_sec_add_1, mpn_sec_sub_1): New
	file.

	* mpn/generic/sec_minvert.c (mpn_sec_add_1_itch, mpn_sec_add_1):
	Deleted static definitions.
	(mpn_cnd_swap): Use volatile.

	* configure.ac (gmp_mpn_functions): sec_add_1 and sec_sub_1.
	(GMP_MULFUNC_CHOICES): Set up for sec_aors_1.

2014-01-16  Niels Möller  <nisse@lysator.liu.se>

	* tune/common.c (speed_mpn_sec_minvert): New function.
	* tune/speed.h: Declare it.
	(SPEED_ROUTINE_MPN_SEC_MINVERT): New macro.
	* tune/speed.c (routine): Added mpn_sec_minvert.

	* mini-gmp/mini-gmp.c (mp_bits_per_limb): New const value.
	* mini-gmp/mini-gmp.h: Declare it.

2014-01-12  Marc Glisse  <marc.glisse@inria.fr>

	* demos/expr/expr.h: Add extern "C" for C++.

2014-01-11  Torbjorn Granlund  <tege@gmplib.org>

	* doc/gmp.texi (Notes for Particular Systems): Add items about old
	NetBSD and current FreeBSD m4 problems.  Add item about FreeBSD's
	broken limits.h.

2014-01-05 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gmp-impl.h: Declare all _itch functions using ATTRIBUTE_CONST.

2014-01-05  Torbjorn Granlund  <tege@gmplib.org>

	* configure.ac (alpha): Set extra_functions conditionally.

	* gmp-h.in (mpn_sec_minvert): Remove formal parameters.

	* doc/gmp.texi: Improve doc for several functions.

	* mpn/generic/sec_tabselect.c: Declare input arg using 'const'.
	* gmp-h.in: Analogous change.

	* gmp-h.in: Declare all itch functions using __GMP_ATTRIBUTE_PURE.
	* gmp-impl.h: Likewise.

2014-01-05 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/mpn/t-minvert.c: Always compare with mpz_invert results,
	add red zone to scratch.
	* tests/mpn/t-sizeinbase.c: New test.
	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-sizeinbase.c .
	* tests/mpn/t-div.c: Use mpn_sec_div_*_itch().

	* mpn/generic/pow_1.c: Micro-optimisation.

2014-01-04  Torbjorn Granlund  <tege@gmplib.org>

	* acinclude.m4 (GMP_PROG_M4): Avoid hex output, since case varies.

2014-01-03  Torbjorn Granlund  <tege@gmplib.org>

	* config.guess: Support newer haswell, broadwell, silvermont.
	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Likewise.

	* acinclude.m4 (GMP_PROG_M4): Check that eval's radix argument work.

	* mpz/invert.c: Rely on gcdext for all operands, removing faulty
	special case.
	* tests/mpz/t-invert.c: Enforce correct behaviour for |mod| = 1.

2014-01-02  Niels Möller  <nisse@lysator.liu.se>

	* doc/gmp.texi (Low-level Functions): Document mpn_sizeinbase.

	Enable previously unused mpn_sizeinbase function.
	* configure.ac (gmp_mpn_functions): Added sizeinbase.
	* gmp-h.in (mpn_sizeinbase): New prototype.

2014-01-02  Marc Glisse  <marc.glisse@inria.fr>

	* gmp-impl.h: Always include <limits.h>.
	* tests/mpn/t-get_d.c: Remove comment about <limits.h>

	* gmp-h.in (__GMP_USHRT_MAX): Use the promoted type.
	* gmp-impl.h (USHRT_HIGHBIT, SHRT_MIN, SHRT_MAX): Likewise.
	* tests/t-constants.c: Adapt printf strings.
	* tests/t-gmpmax.c: Likewise.

	* tests/mpn/t-hgcd_appr.c (hgcd_appr_valid_p): Add parentheses.

2014-01-01  Torbjorn Granlund  <tege@gmplib.org>

	* doc/gmp.texi (Low-level Functions for cryptography): Update interface
	for mpn_sec_div_qr and fix typos in mpn_sec_minvert text.

	* mpn/generic/sec_div.c: Rewrite to make mpn_sec_div_qr return high
	quotient limb.
	* gmp-h.in (mpn_sec_div_qr): Update declaration.
	* tests/mpn/t-div.c: Adapt.

2013-12-31  Niels Möller  <nisse@lysator.liu.se>

	* doc/gmp.texi (Low-level Functions for cryptography): Document
	mpn_sec_minvert.

2013-12-30  Marc Glisse  <marc.glisse@inria.fr>

	* doc/gmp.texi (C++ interface internals): Break long line.

2013-12-30  Torbjorn Granlund  <tege@gmplib.org>

	* doc/gmp.texi (Low-level Functions for cryptography): New section.

2013-12-29  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-minvert.
	* tests/mpn/t-minvert.c: New file.

	* configure.ac (gmp_mpn_functions): Added sec_minvert.
	* gmp-h.in (mpn_sec_minvert, mpn_sec_minvert_itch): New
	declarations.
	* mpn/generic/sec_minvert.c (mpn_sec_minvert)
	(mpn_sec_minvert_itch): New functions.
	(mpn_sec_add_1, mpn_cnd_neg, mpn_cnd_swap, mpn_sec_eq_ui): New
	helper functions.

2013-12-28  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/sec_powm.c: Fix an ASSERT.

	* gmp-h.in (mpn_sec_mul, mpn_sec_mul_itch): New declarations.
	* gmp-h.in (mpn_sec_sqr, mpn_sec_sqr_itch): Likewise.
	* mpn/generic/sec_mul.c: New file.
	* mpn/generic/sec_sqr.c: New file.

	* gmp-h.in (mpn_sec_powm, mpn_sec_powm_itch): New declarations.
	* gmp-h.in (mpn_sec_div_qr, mpn_sec_div_qr_itch): Likewise.
	* gmp-h.in (mpn_sec_div_r, mpn_sec_div_r_itch): Likewise.
	* gmp-impl: Remove declarations of above functions.

	* configure.ac (gmp_mpn_functions): Add sec_mul and sec_sqr.

2013-12-26 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* Update many file's encoding to UTF-8.
	* doc/tasks.html: Update <meta content> accordingly.
	* doc/projects.html: Likewise.

2013-12-26  Torbjorn Granlund  <tege@gmplib.org>

	* configure.ac: Rename mpn_blah_sec to mpn_sec_blah.
	* gmp-impl.h: Corresponding changes.
	* mpn/asm-defs.m4: Corresponding changes.
	* tune/Makefile.am: Corresponding changes.
	* tune/common.c: Corresponding changes.
	* tune/speed.c: Corresponding changes.
	* tune/speed.h: Corresponding changes.
	* tune/tuneup.c: Corresponding changes.
	* mpz/powm_sec.c: Update calls.
	* tests/mpn/t-div.c: Likewise.

	* mpn/generic/sec_powm.c: New name for mpn/generic/powm_sec.c.
	* mpn/generic/sec_div.c: New name for mpn/generic/sb_div_sec.c.
	* mpn/generic/sec_pi1_div.c: New name for mpn/generic/sbpi1_div_sec.c.
	* mpn/generic/sec_tabselect.c: New name for mpn/generic/tabselect.c.

	* mpn/alpha/sec_tabselect.asm: New name for tabselect.asm.
	* mpn/arm/neon/sec_tabselect.asm: New name for tabselect.asm.
	* mpn/arm/sec_tabselect.asm: New name for tabselect.asm.
	* mpn/ia64/sec_tabselect.asm: New name for tabselect.asm
	* mpn/powerpc32/sec_tabselect.asm: New name for tabselect.asm
	* mpn/powerpc64/sec_tabselect.asm: New name for tabselect.asm
	* mpn/sparc64/sec_tabselect.asm: New name for tabselect.asm
	* mpn/x86/mmx/sec_tabselect.asm: New name for tabselect.asm
	* mpn/x86/sec_tabselect.asm: New name for tabselect.asm
	* mpn/x86_64/bd1/sec_tabselect.asm: New name for tabselect.asm
	* mpn/x86_64/core2/sec_tabselect.asm: New name for tabselect.asm
	* mpn/x86_64/coreinhm/sec_tabselect.asm: New name for tabselect.asm
	* mpn/x86_64/coreisbr/sec_tabselect.asm: New name for tabselect.asm
	* mpn/x86_64/fastsse/sec_tabselect.asm: New name for tabselect.asm
	* mpn/x86_64/k10/sec_tabselect.asm: New name for tabselect.asm
	* mpn/x86_64/pentium4/sec_tabselect.asm: New name for tabselect.asm
	* mpn/x86_64/sec_tabselect.asm: New name for tabselect.asm

2013-12-25  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/powm_sec.c: Handle 0^e mod m specially.
	* mpn/generic/powm_sec.c: ASSERT that the base is non-zero.

2013-12-23  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/powm_sec.c (redcify): Use passed scratch instead of
	locally allocated.
	(mpn_powm_sec_itch): Accommodate mpn_sb_div_r_sec's scratch needs.

2013-12-20  Mark Sofroniou  <marks@wolfram.com>

	* mpn/generic/mul_fft.c: Major overhaul of types.

2013-12-18  Torbjorn Granlund  <tege@gmplib.org>

	* doc/gmp.texi (Low-level Functions): Rewrite mpn_set_str docs.

2013-12-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* mpn/powerpc32/darwin.m4: Allow (and ignore) optional
	'toc' parameter to PROLOGUE_cpu.
	* mpn/powerpc32/elf.m4: Likewise.

2013-12-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* configure.ac: Check for ELFv2 ABI on PowerPC.
	* mpn/powerpc64/elf.m4: Set assembler ABI version for ELFv2
	and use appropriate PROLOGUE_cpu/EPILOGUE_cpu sequences.
	Support optional 'toc' parameter to PROLOGUE_cpu.
	* mpn/powerpc64/aix.m4: Allow (and ignore) optional
	'toc' parameter to PROLOGUE_cpu.
	* mpn/powerpc64/darwin.m4: Likewise.

	* mpn/powerpc64/mode64/dive_1.asm (mpn_divexact_1): Add 'toc'
	parameter to PROLOGUE.
	* mpn/powerpc64/mode64/divrem_1.asm (mpn_divrem_1): Likewise.
	* mpn/powerpc64/mode64/divrem_2.asm (mpn_divrem_2): Likewise.
	* mpn/powerpc64/mode64/gcd_1.asm (mpn_gcd_1): Likewise.
	* mpn/powerpc64/mode64/invert_limb.asm (mpn_invert_limb): Likewise.
	* mpn/powerpc64/mode64/mod_1_1.asm (mpn_mod_1_1p_cps): Likewise.
	* mpn/powerpc64/mode64/mod_1_4.asm (mpn_mod_1s_4p_cps): Likewise.
	* mpn/powerpc64/mode64/mode1o.asm (mpn_modexact_1c_odd): Likewise.
	* mpn/powerpc64/mode64/p7/gcd_1.asm (mpn_gcd_1): Likewise.
	* mpn/powerpc64/p6/lshift.asm (mpn_lshift): Likewise.
	* mpn/powerpc64/p6/lshiftc.asm (mpn_lshiftc): Likewise.
	* mpn/powerpc64/p6/rshift.asm (mpn_rshift): Likewise.
	* mpn/powerpc64/vmx/popcount.asm (mpn_popcount): Likewise.

2013-12-07  Niels Möller  <nisse@lysator.liu.se>

	* configfsf.sub: Updated to version 2013-10-01, from gnulib.
	* configfsf.guess: Updated to version 2013-11-29, from gnulib.

2013-12-03  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/div_qr_1.c: Make constant args asm inlines become limbs.
	* mpn/generic/div_qr_1n_pi1.c: Likewise.
	* mpn/generic/div_qr_2.c: Likewise.
	* mpn/generic/div_qr_2.c: Likewise.
	* mpn/generic/mod_1_1.c: Likewise.
	* mpn/generic/mod_1_2.c: Likewise.
	* mpn/generic/mod_1_3.c: Likewise.
	* mpn/generic/mod_1_4.c: Likewise.
	* mpn/generic/mulmid_basecase.c: Likewise.
	* mpn/generic/mulmod_bnm1.c: Likewise.
	* mpn/generic/sqrmod_bnm1.c: Likewise.
	* mpn/sparc64/divrem_1.c: Likewise.
	* mpn/sparc64/mod_1_4.c: Likewise.

	* mpn/generic/toom_interpolate_7pts.c (BINVERT_15): Fix typo.

2013-11-11  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/dos64.m4 (CALL): Provide to override default.

2013-11-08  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/x86_64-defs.m4 (CALL): Swap PIC test and macro defn.

	* mpn/generic/div_qr_2.c: Test HAVE_HOST_CPU_FAMILY_x86, not i386.

	* doc/gmp.texi: Update many URLs.

2013-11-04  Torbjorn Granlund  <tege@gmplib.org>

	* configure.ac: Set symbol OPENBSD for x86-openbsd hosts.
	* mpn/x86_64/fat/fat_entry.asm (PRETEND_PIC): New name for
	PIC_OR_DARWIN.
	(PRETEND_PIC): Set also for OPENBSD.

2013-10-29  Torbjorn Granlund  <tege@gmplib.org>

	* printf/doprnt.c (__gmp_doprnt): Use memcpy instead of strcpy.

2013-10-24  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/div_qr_1u_pi2.c: New file.
	* mpn/generic/div_qr_1n_pi2.c: New file.

2013-10-24  Niels Möller  <nisse@lysator.liu.se>

	* mpn/x86_64/div_qr_1n_pi1.asm: Bugfixes, for case n == 1 and
	in-place operation.
	* mpn/x86_64/k8/div_qr_1n_pi1.asm: Likewise.

	* mpn/generic/div_qr_1n_pi1.c (mpn_div_qr_1n_pi1): Bug fixes,
	off-by-one MPN_INCR_U, and support for in-place operation.

2013-10-24  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/fat/fat.c (fake_cpuid_table): Add Haswell.

2013-10-23  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/x86_64-defs.m4 (oplist): New define, data from `regnum'.
	(regnum): Use x86_lookup, feed oplist.

2013-10-22  Niels Möller  <nisse@lysator.liu.se>

	* tests/devel/try.c: Support mpn_div_qr_1n_pi1.

	* mpn/x86_64/k8/div_qr_1n_pi1.asm: Moved the below k10 file here.
	Applied tweak from Torbjörn to get it to run well on k8.

	* mpn/x86_64/k10/div_qr_1n_pi1.asm: New file (renamed above).
	Differs from generic x86_64 version by using cmov.

	* mpn/x86_64/div_qr_1n_pi1.asm: Reordered arguments to second mul.
	Deleted misleading cycle annotations.

2013-10-21  Niels Möller  <nisse@lysator.liu.se>

	* configure.ac: Add HAVE_NATIVE_mpn_div_qr_1n_pi1 to config.in.

	* mpn/generic/div_qr_1n_pi1.c (mpn_div_qr_1n_pi1): Fix typos
	affecting ASSERT.

2013-10-20  Niels Möller  <nisse@lysator.liu.se>

	* mpn/x86_64/div_qr_1n_pi1.asm: New file.

	* tune/div_qr_1_tune.c (__gmpn_div_qr_1n_pi1): Check
	div_qr_1n_pi1_method only when !HAVE_NATIVE_mpn_div_qr_1n_pi1.

	* mpn/asm-defs.m4 (define_mpn): Add div_qr_1n_pi1.

	* tune/common.c (speed_mpn_div_qr_1): New function, replacing...
	(speed_mpn_div_qr_1n, speed_mpn_div_qr_1u): ... deleted functions
	(speed_mpn_div_qr_1n_pi1, speed_mpn_div_qr_1n_pi1_1)
	(speed_mpn_div_qr_1n_pi1_2): New functions.
	* gmp-impl.h [TUNE_PROGRAM_BUILD]: Declare div_qr_1-related tuning
	variables.
	* tune/tuneup.c (speed_mpn_div_qr_1_tune, tune_div_qr_1): New
	functions.
	(div_qr_1n_pi1_method, div_qr_1_norm_threshold)
	(div_qr_1_unnorm_threshold): New globals.
	* tune/speed.c (routine): Replaced mpn_div_qr_1n and mpn_div_qr_1u
	by mpn_div_qr_1, requiring ".r" parameter. Added mpn_div_qr_1n_pi1
	and variants.
	* tune/speed.h (SPEED_ROUTINE_MPN_DIV_QR_1): Use the "r" parameter
	as divisor.
	* tune/div_qr_1n_pi1_2.c: New file.
	* tune/div_qr_1n_pi1_1.c: New file.
	* tune/div_qr_1_tune.c: New file.
	* tune/Makefile.am (libspeed_la_SOURCES): Added div_qr_1n_pi1_1.c,
	div_qr_1n_pi1_2.c, and div_qr_1_tune.c.

	* tune/speed.c (routine): Added mpn_div_qr_1n and mpn_div_qr_1u.
	* tune/speed.h (SPEED_ROUTINE_MPN_DIV_QR_1): New macro.
	(speed_mpn_div_qr_1n, speed_mpn_div_qr_1u): Declare.
	* tune/common.c (speed_mpn_div_qr_1n, speed_mpn_div_qr_1u): New
	functions.

	* gmp-impl.h (mpn_div_qr_1n_pi1): Declare function.
	* gmp-h.in (mpn_div_qr_1): Declare function.
	* configure.ac (gmp_mpn_functions): Added div_qr_1 and
	div_qr_1n_pi1.
	* mpn/generic/div_qr_1.c (mpn_div_qr_1): New file and function.
	* mpn/generic/div_qr_1n_pi1.c (mpn_div_qr_1n_pi1): New file and
	function.
	* tests/mpn/t-div.c (main): Test mpn_div_qr_1.

2013-10-17  Torbjorn Granlund  <tege@gmplib.org>

	* configure.ac (alpha): Pass -mieee via gcc_cflags_maybe.

2013-10-16  Torbjorn Granlund  <tege@gmplib.org>

	* config.guess: Let AMD64 cpuid bit override pessimistic cpu guesses.

	* mpn/alpha/unicos.m4 (DATASTART): Accept optional align parameter.
	* mpn/alpha/divrem_2.asm: Use provided gp mechanisms.
	* mpn/alpha/default.m4 (PROLOGUE): Provide "..ng" post-gp label.
	* mpn/alpha/invert_limb.asm: Align table to 8-byte boundary.  Make code
	work if table is not fully aligned.  Properly test for BWX.

2013-10-15  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/alpha/default.m4 (DATASTART): Use RODATA instead of DATA;
	accept optional align parameter.
	* mpn/alpha/invert_limb.asm: Align table.
	* mpn/alpha/ev5/diveby3.asm: Likewise.

2013-10-11  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/k7/mod_1_1.asm: Use 'subl' form to avoid ambiguity.
	* mpn/x86/k7/mod_1_4.asm: Likewise.

	* configure.ac (X86_64_PATTERN): Append "cc" to cclist_64 and
	cclist_x32.

2013-10-08  Torbjorn Granlund  <tege@gmplib.org>
	    Marc Glisse  <marc.glisse@inria.fr>

	* tests/mpf/reuse.c (main): Compare addresses instead of names.
	Use larger numbers for exponents.

2013-10-08  Marc Glisse  <marc.glisse@inria.fr>

	* doc/mdate-sh, doc/texinfo.tex, install-sh, missing, ylwrap: Remove.
	* .bootstrap: Use autoreconf (and in particular automake -a).

	* gmp-h.in: Remove __need_size_t. Include <stddef.h>, not <cstddef>.

	* tests/mpf/reuse.c (main): Use small numbers as exponents.

2013-10-05  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/atom/aorsmul_1.asm: Slight tweak.

	* doc/gmp.texi (ABI and ISA): Document x32.

	* mpn/sparc64/ultrasparct3/dive_1.asm: Use our register names.

2013-09-24  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/atom/redc_1.asm: New file.

2013-09-23  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/bobcat/redc_1.asm: Make the code for 1 <= n <= 3 work.

2013-09-22  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreisbr/redc_1.asm: Slightly tweak basecase code.

	* mpn/x86_64/core2/redc_1.asm: New file.

	* mpn/x86_64/bobcat/redc_1.asm: New file.

2013-09-21  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreinhm/redc_1.asm: New file.

2013-09-21  Marc Glisse  <marc.glisse@inria.fr>

	* tests/mpn/t-mulmid.c: Cast arguments of printf to int to match %d.
	* tests/rand/t-urbui.c: Use 1UL for unsigned constant.
	* mpn/generic/get_str.c: Avoid temporarily pointing outside an array.

2013-09-20  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreisbr/redc_1.asm: New file.

	* mpn/x86_64/k8/redc_1.asm: Complete rewrite.

	* mpn/x86_64/coreisbr/mullo_basecase.asm: Postpone pushes, short-
	circuit a branch.
	* mpn/x86_64/coreihwl/mullo_basecase.asm: Short-circuit a branch.

	* mpn/x86_64/core2/mullo_basecase.asm: New file.

2013-09-19  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fastsse/copyi-palignr.asm: Allocate more stack under DOS.

2013-09-18  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/core2/mul_basecase.asm: New file.
	* mpn/x86_64/core2/sqr_basecase.asm: New file.

	* mpn/x86_64/coreihwl/mullo_basecase.asm: New file.
	* mpn/x86_64/coreisbr/mullo_basecase.asm: New file.

2013-09-16  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fastsse/copyi-palignr.asm: Preserve xmm6-xmm8 under DOS.

2013-09-15  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/tabselect.asm: Use R8 for bit testing.

	* mpn/x86_64/coreihwl/mul_basecase.asm: Replace mul_1 code.

	* mpn/x86_64/coreisbr/aorsmul_1.asm: Rewrite.

2013-09-12  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/ia64/gcd_1.asm: Use dep for combining table base and low bits.

	* mpn/x86_64/fastsse/com-palignr.asm: Implement temp fix to properly
	handle overlap.

2013-09-10  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fastsse/copyi-palignr.asm: Rewrite rp != up (mod 16) code
	to make it handle any allowed overlap.

2013-09-09  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/atom/com.asm: New file, grabbing fastsse code.

	* mpn/x86_64/bd1/copyi.asm: New file, grabbing fastsse code.
	* mpn/x86_64/bd1/copyd.asm: Likewise.
	* mpn/x86_64/bd1/com.asm: Likewise.

	* mpn/x86_64/fastavx/copyi.asm: New file.
	* mpn/x86_64/fastavx/copyd.asm: New file.

2013-09-05  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreihwl/aorsmul_1.asm: Streamline.

2013-09-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreihwl/sqr_basecase.asm: Implement larger "corner".
	Misc tuning.

2013-09-03  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreihwl/redc_1.asm: New file.

	* mpn/x86_64/x86_64-defs.m4 (mulx): Handle negative offsets.

2013-08-31  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreisbr/sqr_basecase.asm: New file.

	* mpn/x86_64/sqr_diag_addlsh1.asm: New file.

2013-08-30  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fat/mul_basecase.c: New file.
	* mpn/x86_64/fat/sqr_basecase.c: New file.
	* mpn/x86_64/fat/mullo_basecase.c: New file.
	* mpn/x86_64/fat/redc_1.c: New file.

2013-08-29  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/k8/mul_basecase.asm: Move top-level basecase file to k8
	subdir.
	* mpn/x86_64/k8/sqr_basecase.asm: Likewise.
	* mpn/x86_64/k8/redc_1.asm: Likewise.
	* mpn/x86_64/k8/mullo_basecase.asm: Likewise.
	* mpn/x86_64/k8/mulmid_basecase.asm: Likewise.

	* mpn/ia64/aors_n.asm: Clean up some bundlings.

	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Support Haswell.
	(fake_cpuid_table): Likewise.

	* configure.ac (x86): Remove any mulx paths.  Let bwl path = hwl path.
	(fat_path): Add coreihwl.

	* mpn/x86_64/coreihwl/aorsmul_1.asm: Move from `mulx' directory, use
	mulx() macro.
	* mpn/x86_64/coreihwl/mul_1.asm: Likewise.
	* mpn/x86_64/coreihwl/mul_2.asm: Likewise.
	* mpn/x86_64/coreihwl/mul_basecase.asm: Likewise.
	* mpn/x86_64/coreihwl/sqr_basecase.asm: Likewise.

	* mpn/x86_64/x86_64-defs.m4 (mulx): New macro.
	(regnum, regnumh, ix): Supporting macros.

2013-08-28  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreisbr/divrem_1.asm: New file.

2013-08-23  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fastsse/com-palignr.asm: New file, closely based on
	copyi-palignr.asm.

	* mpn/x86_64/fastsse/copyi.asm Use "test R8(reg)" instead of "bt".
	* mpn/x86_64/fastsse/copyd-palignr.asm: Likewise.
	* mpn/x86_64/fastsse/copyi-palignr.asm: Likewise.
	* mpn/x86_64/fastsse/lshift-movdqu2.asm: Likewise.
	* mpn/x86_64/fastsse/lshiftc-movdqu2.asm: Likewise.
	* mpn/x86_64/fastsse/rshift-movdqu2.asm: Likewise.
	* mpn/x86_64/fastsse/tabselect.asm: Likewise.

	* mpn/sparc64/ultrasparct3/sqr_diag_addlsh1.asm: New file.

	* mpn/alpha/aorslsh2_n.asm: New file.
	* mpn/alpha/aorslsh1_n.asm: Rewrite.
	* mpn/alpha/ev6/aorslsh1_n.asm: New file.

2013-08-21  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/alpha/sqr_diag_addlsh1.asm: New file.
	* mpn/alpha/sqr_diagonal.asm: Remove.
	* mpn/alpha/ev6/sqr_diagonal.asm: Remove.

2013-08-20  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc32/sqr_diag_addlsh1.asm: New file.
	* mpn/powerpc32/sqr_diagonal.asm: Remove.

2013-08-15  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreihwl/mulx/sqr_basecase.asm: New file.

2013-08-05  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreisbr/aors_n.asm: Complete rewrite.

2013-08-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreihwl/mulx/mul_basecase.asm: New file.

	* mpn/x86_64/bd1/mul_2.asm: New file.

	* mpn/x86_64/coreihwl/gmp-mparam.h: New file.

2013-08-03  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreihwl/mulx/mul_2.asm: New file.
	* mpn/x86_64/coreihwl/mulx/addmul_2.asm: New file.

	* mpn/x86_64/coreinhm/aorsmul_1.asm: New file.

	* mpn/x86_64/coreisbr/mul_basecase.asm: Save some O(n) and O(1) cycles.

	* mpn/x86_64/coreisbr/mul_2.asm: New file.

2013-08-02  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreisbr/addmul_2.asm: Complete rewrite.

2013-08-01  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/bd1/mul_basecase.asm: New file.

	* mpn/x86_64/coreisbr/mul_basecase.asm: New file.

	* mpn/x86_64/coreihwl/aorsmul_1.asm: New file.

2013-07-31  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/atom/mul_2.asm: New file.
	* mpn/x86_64/atom/addmul_2.asm: New file.
	* mpn/x86_64/atom/mul_1.asm: New file.
	* mpn/x86_64/atom/aorsmul_1.asm: New file.

	* mpn/x86_64/coreihwl/mul_1.asm: New file.

	* configure.ac (x86): Add Haswell-specific path.

	* configure.in (fat_functions): Add cnd_add_n, cnd_sub_n..
	* gmp-impl.h (struct cpuvec_t): Add fields for new fat functions.
	* gmp-impl.h: Adjust corresponding declarations.

	* mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): Add new fat functions.
	* mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): Likewise.
	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec): Likewise.
	* mpn/x86/fat/fat.c (__gmpn_cpuvec): Likewise.

2013-07-30  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreisbr/popcount.asm: New file.

2013-07-23  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/bobcat/aors_n.asm: New file.

	* mpn/x86_64/pentium4/aorslshC_n.asm: Remove a spurious emms insn.

	* mpn/x86_64/bd1/aorrlsh1_n.asm: New file.
	* mpn/x86_64/bd1/sublsh1_n.asm: New file.

2013-07-22  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/mode64/mod_1_1.asm: Handle little-endian mode.
	* mpn/powerpc64/mode64/mod_1_4.asm: Likewise.

2013-07-16  Torbjorn Granlund  <tege@gmplib.org>

	* doc/gmp.texi: Declare countless of function arguments as 'const'.

2013-07-15  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/core2/aors_n.asm: Rewrite.

	* mpn/generic/sb_div_sec.c: Compute inverse as floor(B^2/(dh+1)), per
	Niels' suggestion.
	* mpn/generic/sbpi1_div_sec.c: Remove inverse rounding-up code.

2013-07-14  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/mode64/divrem_1.asm: Remove explicit nop after CALL.
	* mpn/powerpc64/mode64/divrem_2.asm: Likewise.
	* mpn/powerpc64/mode64/mod_1_1.asm:  Likewise.
	* mpn/powerpc64/mode64/mod_1_4.asm:  Likewise.

2013-07-13  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/atom/cnd_add_n.asm: New file.
	* mpn/x86/atom/cnd_sub_n.asm: New file.o

2013-07-12  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/sbpi1_div_sec.c: Partial rewrite.

2013-07-11  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/cnd_aors_n.asm: Tweak for better speed on K8, bobcat, bd1,
	NHM, Atom.

2013-07-05  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/p7/copyi.asm: Handle n = 0.
	* mpn/powerpc64/p7/copyd.asm: Likewise.

2013-07-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/mode64/p7/aormul_2.asm: New file.

	* mpn/powerpc64/darwin.m4 (EXTRA_REGISTER): New define.
	* mpn/powerpc64/aix.m4: New define (actually undefine).
	* mpn/powerpc64/elf.m4: Likewise.

2013-07-03  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/com.asm: Rewrite.

	* mpn/powerpc64/p7/copyi.asm: New file.
	* mpn/powerpc64/p7/copyd.asm: New file.

2013-07-02  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/mode64/gcd_1.asm: New file.
	* mpn/powerpc64/mode64/p7/gcd_1.asm: New file.

2013-07-01  Torbjorn Granlund  <tege@gmplib.org>

	* configure.ac: Comment out AC_PROG_F77.

	* mpn/powerpc64/mode64/rsh1add_n.asm: Remove.
	* mpn/powerpc64/mode64/rsh1sub_n.asm: Remove.
	* mpn/powerpc64/mode64/rsh1aors_n.asm: New file, code not based on
	removed files.

2013-06-28  Marc Glisse  <marc.glisse@inria.fr>

	* cxx/ismpf.cc: Use GMP_DECIMAL_POINT.
	* cxx/osmpf.cc: Likewise.
	* tests/cxx/t-locale.cc: Likewise.

2013-06-28  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/mode64/p7/aorsorrlshC_n.asm: New file.
	* mpn/powerpc64/mode64/p7/aorsorrlsh1_n.asm: New file.
	* mpn/powerpc64/mode64/p7/aorsorrlsh2_n.asm: New file.

	* mpn/powerpc64/mode64/aorsorrlshC_n.asm: Use alias regname.

2013-06-27  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/mode64/p7/aors_n.asm: New file.

2013-06-22  Torbjorn Granlund  <tege@gmplib.org>

	* aorslshC_n.asm, aorslsh2_n.asm, aorslsh1_n.asm: Remove.
	* aorsorrlshC_n.asm, aorsorrlsh1_n.asm, aorsorrlsh2_n.asm: New files.

2013-06-19  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/p6/lshift.asm: Rewrite switching-into-loop code.
	* mpn/powerpc64/p6/rshift.asm: Likewise.
	* mpn/powerpc64/p6/lshiftc.asm: Likewise.

2013-06-17  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/p6/lshift.asm: Fix typo in label reference.
	For 32-bit mode, zero extend `n' argument and split retval.
	* mpn/powerpc64/p6/rshift.asm: Likewise.
	* mpn/powerpc64/p6/lshiftc.asm: Likewise.

2013-06-10  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mu_div_q.c: Remove obsolete comment.

2013-06-09  Marc Glisse  <marc.glisse@inria.fr>

	* mpn/generic/get_d.c (mpn_get_d): Avoid signed overflow.
	* mpz/kronzs.c (mpz_kronecker_si): Use ABS_CAST.

2013-05-31  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mu_div_q.c: Call mpn_mu_divappr_q for entire division,
	never just for tail.  (This fixes performance issues at the expense of
	memory needs.)

2013-05-26  Torbjorn Granlund  <tege@gmplib.org>

	* configure.ac (*sparc*-*-*): Major overhaul.

2013-05-22  Torbjorn Granlund  <tege@gmplib.org>

	* doc/gmp.texi (Reporting Bugs): Ask for configure's output.

	* mpn/ia64/divrem_2.asm: Don't clobber f16-f18.

2013-05-20  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/udiv.asm: Change spacing to work around binutils bug.

2013-05-16  Torbjorn Granlund  <tege@gmplib.org>

	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.

	* tests/misc.c (tests_hardware_getround, tests_hardware_setround):
	Avoid assembly dependency unless WANT_ASSEMBLY.

	* configure.ac (WANT_ASSEMBLY): Conditionally define.

2013-05-14  Torbjorn Granlund  <tege@gmplib.org>

	* configure.ac (arm1156): Don't fall back to plain v6 compiler option.

2013-05-11  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreisbr/mul_1.asm: Handle n = 1 for DOS64.  Streamline.
	* mpn/x86_64/coreisbr/aorsmul_1.asm: Streamline.

2013-05-10  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreisbr/aorsmul_1.asm: Fix, then enable DOS64 support.
	* mpn/x86_64/coreisbr/mul_1.asm: Enable DOS64 support.

	* mpn/x86/p6/mmx/gmp-mparam.h: Set down SQR_TOOM2_THRESHOLD to parent
	directory value.

2013-05-09  Torbjorn Granlund  <tege@gmplib.org>

	* configure.ac (--enable-fake-cpuid): New option.
	* mpn/x86_64/fat/fat.c (WANT_FAKE_CPUID): Remove defaulting.
	* mpn/x86/fat/fat.c (WANT_FAKE_CPUID): Likewise.

	* mpn/x86_64/bd1/mul_1.asm: Fix typo.

2013-05-07  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fat/fat.c (fake_cpuid): Handle 0x80000001 request.
	(fake_cpuid_available): Remove unused function.

	* mpn/generic/mod_1_1.c: Cast constant udiv_rnnd_preinv arguments.
	* mpn/generic/mod_1_2.c: Likewise.
	* mpn/generic/mod_1_3.c: Likewise.
	* mpn/generic/mod_1_4.c: Likewise.
	* mpn/generic/divrem_2.c: Likewise.

2013-05-06  Torbjorn Granlund  <tege@gmplib.org>

	* config.guess (power*): Handle all ppc970 variants.

2013-05-03  David S. Miller  <davem@davemloft.net>

	* tune/common.c (speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
	speed_mpn_rsblsh1_n, speed_mpn_addlsh2_n, speed_mpn_sublsh2_n,
	speed_mpn_rsblsh2_n): Don't define if these routines are macros.
	* tune/speed.c (routine): Likewise don't table if they are macros.

	* mpn/sparc64/ultrasparct3/addmul_1.asm: Add T4 and T3 timings.
	* mpn/sparc64/ultrasparct3/aormul_4.asm: Likewise.
	* mpn/sparc64/ultrasparct3/aorslsh_n.asm: Likewise.
	* mpn/sparc64/ultrasparct3/cnd_aors_n.asm: Likewise.
	* mpn/sparc64/ultrasparct3/submul_1.asm: Likewise.

2013-05-03  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/sparc64/ultrasparct3/aorslsh_n.asm: Invoke INITCY where it has
	effect.

	* gmp-impl.h: Amend last change.
	* tests/devel/try.c (choice_array): Don't try to table addlsh1_n etc if
	a macro.

2013-05-02  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/copyd.asm: Suppress dead pointer update.
	* mpn/arm/copyi.asm: Likewise.
	* mpn/arm/neon/logops_n.asm: Likewise.
	* mpn/arm/neon/tabselect.asm: Likewise.
	* mpn/arm/rshift.asm: Likewise.
	* mpn/arm/tabselect.asm: Likewise.
	* mpn/arm/v6/dive_1.asm: Likewise
	* mpn/arm/v7a/cora15/neon/copyi.asm: Likewise.

	* mpn/arm/v7a/cora15/neon/com.asm: New file.

2013-05-01  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/sparc64/ultrasparct3/aormul_4.asm: New file.

	* configure.ac (GMP_MULFUNC_CHOICES): Support mul_3 + addmul_3 and
	mul_4 + addmul_4.

	* mpn/sparc64/ultrasparct3/aormul_2.asm: Optimise lead-in code.

	* mpn/sparc64/ultrasparct3/missing.m4 (addxccc): Allow g2 as input.
	(umulxhi): Save and restore o7 to allow it as in/out parameter.

2013-04-29  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/v7a/cora15/cnd_aors_n.asm: New file, was mis-named.

	* mpn/sparc64/ultrasparct3/addmul_1.asm: Rewrite.

	* mpn/sparc64/ultrasparct3/submul_1.asm: Rewrite.

	* mpn/sparc64/ultrasparct3/cnd_aors_n.asm: New file.

	* gmp-impl.h: Override mpn_addlsh1_n, mpn_addlsh2_n, mpn_sublsh1_n, etc
	with mpn_addlsh_n, etc when !HAVE_NATIVE the former but HAVE_NATIVE the
	latter.

	* mpn/sparc64/ultrasparct3/aorslsh_n.asm: New file.

	* configure.ac (sparc-*-*): Recognise t5 along with t3 and t4.
	Remove sparc64/ultrasparct1 from path_64 for T3, T3, and T5.

2013-04-27  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac (arm*-*-*): Set up path also for plainest CPU variants.

2013-04-27  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/v6/popham.asm: New file.

	* mpn/arm/v7a/cora15/cnd-aors_n.asm: New file.

2013-04-25  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/mod_34lsub1.asm: Clear carry smarter.

	* mpn/arm/v7a/cora15/logops_n.asm: Conditionally suppress conditionally
	used code.

	* mpn/arm/v7a/cora15/submul_1.asm: New file.

2013-04-24  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/v7a/cora15/com.asm: New file.

	* mpn/arm/v7a/cora15/logops_n.asm: New file.

2013-04-19  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/v7a/cora15/aors_n.asm: New file.

	* mpn/arm/v7a/cora15/addmul_1.asm: Rewrite.

2013-04-18  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/alpha/tabselect.asm: New file.

2013-04-17  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc32/tabselect.asm: New file.

	* longlong.h (arm64 count_trailing_zeros): New.

	* mpn/arm64/invert_limb.asm: New file.

	* mpn/generic/dive_1.c: Rewrite to use Hensel division also for
	size = 1.

	* mpn/generic/mod_1_1.c (add_mssaaaa): Provide VIS3 variant.

	* configure.ac: Remove "missing" from extra_functions_64 for coreibwl.

	* mpn/sparc64/ultrasparct3/mul_1.asm: Decrease loop alignment.
	* mpn/sparc64/ultrasparct3/aormul_2.asm: Likewise.

2013-04-16  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/alpha/invert_limb.asm: Generate table.
	* mpn/powerpc64/mode64/invert_limb.asm: Likewise.
	* mpn/s390_64/invert_limb.asm: Likewise.
	* mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise.
	* mpn/x86_64/invert_limb_table.asm: Likewise.

2013-04-15  David S. Miller  <davem@davemloft.net>

	* mpn/sparc32/sparc-defs.m4 (LEA64): New macro.
	* mpn/sparc64/gcd_1.asm: Use it.
	* mpn/sparc64/ultrasparct3/dive_1.asm: Likewise.
	* mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise.
	* mpn/sparc64/ultrasparct3/mode1o.asm: Likewise.

	* mpn/sparc64/gcd_1.asm: Use RODATA, TYPE, and SIZE.

2013-04-15  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/sparc64/ultrasparct3/invert_limb.asm: Avoid addend for GOT entry,
	it is not portable.

	* mpn/sparc64/tabselect.asm: New file.

	* mpn/x86/mmx/tabselect.asm: New file.
	* configure.ac (x86): Add x86/mmx to path for relevant CPUs.

	* mpn/sparc64/gcd_1.asm: Use rdpc for PIC.
	* mpn/sparc64/ultrasparct3/mode1o.asm: Use rdpc for PIC.
	* mpn/sparc64/ultrasparct3/dive_1.asm: Use rdpc for PIC.
	* mpn/sparc64/ultrasparct3/invert_limb.asm: Handle PIC, use rdpc.

	* Revert remaining parts of recent sparc LEA changes.

2013-04-14  David S. Miller  <davem@davemloft.net>

	* mpn/sparc32/v9/sqr_diagonal.asm: Revert LEA and INT32 changes.
	* mpn/sparc64/gcd_1.asm: Likewise.

2013-04-13  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/bd1/tabselect.asm: New file.
	* mpn/x86_64/coreisbr/tabselect.asm: New file.
	* mpn/x86_64/k10/tabselect.asm: New file.
	* mpn/x86_64/coreinhm/tabselect.asm: New file.
	* mpn/x86_64/core2/tabselect.asm: New file.
	* mpn/x86_64/pentium4/tabselect.asm: New file.

	* mpn/x86_64/fastsse/tabselect.asm: New file.
	* mpn/arm/neon/tabselect.asm: Rewrite.
	* mpn/arm/tabselect.asm: Rewrite.
	* mpn/powerpc64/tabselect.asm: Rewrite.
	* mpn/x86_64/tabselect.asm: Rewrite.

	* tune/speed.h (SPEED_ROUTINE_MPN_TABSELECT): Implement special code,
	making .r argument be table width.

2013-04-11  David S. Miller  <davem@davemloft.net>

	* mpn/sparc32/sparc-defs.m4 (LEA): Remove unused local label.
	(LEA_LEAF): Likewise.

2013-04-11  Niels Möller  <nisse@lysator.liu.se>

	* mpn/arm/v6/submul_1.asm: New file, using the corresponding
	addmul_1 loop + complement trick.

2013-04-10  David S. Miller  <davem@davemloft.net>

	* acinclude.m4 (GMP_ASM_SPARC_GOTDATA,
	GMP_ASM_SPARC_SHARED_THUNKS): New feature tests.
	* configure.ac: Call GMP_ASM_SPARC_GOTDATA and
	GMP_ASM_SPARC_SHARED_THUNKS on sparc.
	* mpn/sparc32/sparc-defs.m4 (LEA, LEA_LEAF, LEA_THUNK): New macros.
	* mpn/sparc32/udiv.asm: Convert over to LEA, LEA_LEAF, and LEA_THUNK.
	* mpn/sparc32/v8/addmul_1.asm: Likewise.
	* mpn/sparc32/v8/mul_1.asm: Likewise.
	* mpn/sparc32/v8/supersparc/udiv.asm: Likewise.
	* mpn/sparc32/v8/udiv.asm: Likewise.
	* mpn/sparc64/gcd_1.asm: Likewise.
	* mpn/sparc64/ultrasparct3/dive_1.asm: Likewise.
	* mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise.
	* mpn/sparc64/ultrasparct3/mode1o.asm: Likewise.
	* mpn/sparc32/v9/sqr_diagonal.asm: Likewise and use INT32.

2013-04-09  Torbjorn Granlund  <tege@gmplib.org>

	* longlong.h (sparc64): Test __VIS__ instead of __sparc_vis3.

	* config.guess (sparc*): Invoke set_cc_for_build to get $dummy.

2013-04-08  Torbjorn Granlund  <tege@gmplib.org>

	* config.guess: Rework tmp file names, make sure to remove tmp files.

	* mpn/arm/dive_1.asm: Rewrite count-trailing-zeros code, using private
	table.

	* mpn/arm: Canonicalise arm assembly to use old style "mov ... lsl" for
	shift ops.

2013-04-07  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/sparc64/ultrasparct3/mod_34lsub1.asm: New file.

	* longlong.h (sparc64): Define umul_ppmm, add_ssaaaa, and
	count_leading_zeros conditionally under the symbol __sparc_vis3.

	* mpn/arm/dive_1.asm: New file.
	* mpn/arm/v6/dive_1.asm: New file.

	* mpn/arm/v6t2/mode1o.asm:  Make trivial change to avoid v6t2...
	* mpn/arm/v6/mode1o.asm: ...instruction, move file accordingly.

	* mpn/powerpc64/mode64/invert_limb.asm: Put all multiplies low-limb first.

2013-04-04  David S. Miller  <davem@davemloft.net>

	* mpn/sparc64/ultrasparct3/add_n.asm: Rewrite.
	* mpn/sparc64/ultrasparct3/sub_n.asm: Rewrite.

	* mpn/sparc64/ultrasparct3/invert_limb.asm: Align table.

2013-04-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/sparc32/sparc-defs.m4: Provide dummy lzcnt.

	* tests/mpn/logic.c: Seed using RANDS, then use mpz_rrandomb.

	* tests/mpn/t-div.c (random_word): Remove.  Let callers invoke urandom.

	* mpn/sparc64/ultrasparct3/mul_1.asm: Rewrite.

	* mpn/sparc64/ultrasparct3/bdiv_dbm1c.asm: New file.
	* mpn/sparc64/ultrasparct3/dive_1.asm: New file.
	* mpn/sparc64/ultrasparct3/invert_limb.asm: New file.
	* mpn/sparc64/ultrasparct3/mod_1_4.asm: New file.
	* mpn/sparc64/ultrasparct3/mode1o.asm: New file.

2013-04-03  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/sparc64/ultrasparct3/aormul_2.asm: Reschedule for better speed.

2013-04-02  Torbjorn Granlund  <tege@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@gmplib.org>

	* mpn/sparc64/ultrasparct3/missing.m4 (umulxhi): Don't clobber retaddr,
	allowing use in functions that does not do save/restore.

	* mpn/sparc64/gcd_1.asm: Tweak for tighter loop.

2013-03-31  David S. Miller  <davem@davemloft.net>

	* mpn/sparc64/lshift.asm: New file.
	* mpn/sparc64/rshift.asm: New file.
	* mpn/sparc64/lshiftc.asm: New file.

2013-03-31  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/sparc64/ultrasparct1/lshift.asm: Remove.
	* mpn/sparc64/ultrasparct1/rshift.asm: Remove.
	* mpn/sparc64/ultrasparct1/lshiftc.asm: Remove.

2013-03-29  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/sparc64/ultrasparct3/aormul_2.asm: Always do mulx before umulxhi.

2013-03-28  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/sparc64/mod_1_4.c (mpn_mod_1s_4p): Make precomputed arg 'const'.
	(mpn_mod_1s_4p_cps): Update from generic code.

2013-03-27  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/trialdiv.c: Make variables 'const' to match tables.

	* mpn/generic/mod_1_1.c (mpn_mod_1_1p): Make precomputed arg 'const'.
	* mpn/generic/mod_1_2.c (mpn_mod_1s_2p): Likewise.
	* mpn/generic/mod_1_3.c (mpn_mod_1s_3p): Likewise.
	* mpn/generic/mod_1_4.c (mpn_mod_1s_4p): Likewise.
	* gmp-impl.h: Update prototypes.

	* mpn/x86_64/mulx/aorsmul_1.asm: New file.
	* mpn/x86_64/mulx/addmul_1.asm: Remove.

2013-03-26  Niels Möller  <nisse@lysator.liu.se>

	Make mpn_cnd_add_n and mpn_cnd_sub_n public.
	* doc/gmp.texi (Low-level Functions): Document mpn_cnd_add_n and
	mpn_cnd_sub_n.
	* gmp-h.in (mpn_cnd_add_n, mpn_cnd_sub_n): Moved prototypes
	here...
	* gmp-impl.h: ... from here.

2013-03-26  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/pentium4/sse2/cnd_add_n.asm: New file.
	* mpn/x86/pentium4/sse2/cnd_sub_n.asm: New file.
	* mpn/x86/cnd_aors_n.asm: New file.

2013-03-25  David S. Miller  <davem@davemloft.net>

	* mpn/sparc64/ultrasparct3/hamdist.asm: New file.
	* mpn/sparc64/ultrasparct3/popcount.asm: New file.

2013-03-25  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/ia64/aorsorrlshC_n.asm: Generalised from aorslshC_n.asm.
	* mpn/ia64/aorsorrlsh1_n.asm: Generalised from aorslsh1_n.asm.
	* mpn/ia64/aorsorrlsh2_n.asm: Generalised from aorslsh2_n.asm.

2013-03-24  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/v7a/cora15/neon/aorsorrlshC_n.asm: New file.
	* mpn/arm/v7a/cora15/neon/aorsorrlsh2_n.asm: New file.
	* mpn/arm/v7a/cora15/neon/aorsorrlsh1_n.asm: New file.
	* mpn/arm/v7a/cora15/neon/rsh1aors_n.asm: New file.

	* configure.ac (GMP_MULFUNC_CHOICES): Support add+sub+rsb lsh files.

	* tests/refmpn.c (refmpn_addlsh_nc, refmpn_sublsh_nc): Remove silly
	assert of mp_limb being non-negative.

2013-03-21  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/neon/lshiftc.asm: New file.

	* mpn/arm/v6/sqr_basecase.asm: Trim 'sqr_diag_addlsh1' loop.

	* gen-trialdivtab.c: Output just raw data, remove actual variables.
	* mpn/generic/trialdiv.c: Put variables from gen-trialdivtab.c here,
	and make them 'const'.

2013-03-20  Torbjorn Granlund  <tege@gmplib.org>

	* config.guess: Rework arm CPU recognition.
	* config.sub: Corresponding updates.
	* configure.ac: Likewise.

	* mpn/x86_64/mulx/adx/addmul_1.asm: Let FAKE_MULXADX be off by default.

	* mpn/arm/v7a/cora15/neon/copyi.asm: Move from "..".
	* mpn/arm/v7a/cora15/neon/copyd.asm: Likewise.

	* config.guess: Tack on "neon" for appropriate arm CPUs.
	* configure.ac (arm*-*-*): Recognise neon suffix for a8, a9, and a15.

2013-03-19 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpf/fits_u.h: Accept numbers truncating to zero before checking the
	sign.
	* tests/mpf/t-fits.c: Check new edges.

2013-03-19  Torbjorn Granlund  <tege@gmplib.org>

	* tests/arm32check.c: Get printing of clobbered register right.

	* mpn/arm/neon/popcount.asm: New file.
	* mpn/arm/neon/hamdist.asm: New file.

	* tests/Makefile.am (EXTRA_libtests_la_SOURCES): Add arm32call.asm and
	arm32check.c.

2013-03-18  Torbjorn Granlund  <tege@gmplib.org>

	* configure.ac (arm*-*-*): Define CALLING_CONVENTIONS_OBJS.

	* tests/arm32call.asm: New file.
	* tests/arm32check.c: New file.

	* mpn/arm/arm-defs.m4 (LEA): Rewrite to properly handle repeated use.
	(EPILOGUE_cpu): Define.

	* mpn/arm/v6/addmul_3.asm: Make code work for PIC.

	* tests/x86call.asm: Modernise asm syntax.
	* tests/amd64call.asm: Likewise.

	* mpn/x86/darwin.m4 (m4append): Move definition from here...
	* mpn/asm-defs.m4: ...to here.

2013-03-18 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* doc/gmp.texi (--enable-fat): No quote in concept index.

	* mpf/swap.c: Reduce the number of variables.

2012-03-17  Marc Glisse  <marc.glisse@inria.fr>

	* tests/cxx/t-do-exceptions-work-at-all-with-this-compiler.cc: New file.
	* tests/cxx/Makefile.am: Add new file. Reorder the tests.

2013-03-17  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mul_fft.c: Use TMP_BALLOC*, but combine several areas.

	* mpz/powm_ui.c (mod): Use TMP_BALLOC in mu code.

	* mpn/arm/v6/addmul_3.asm: New file.

	* mpn/arm/v7a/cora15/copyd.asm: Tweak.

	* mpn/arm64/copyi.asm: New file.
	* mpn/arm64/copyd.asm: New file.

2013-03-16  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/v6/addmul_2.asm: Tweak for better A9 performance.

2013-03-14  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/ia64/cnd_aors_n.asm: New file.

	* mpn/arm64/cnd_aors_n.asm: New file.

	* mpn/arm64/aors_n.asm (ADDSUB): Remove unused definition.

	* mpn/ia64/aors_n.asm: Remove a redundant ASM_START.

	* mpn/arm/cnd_aors_n.asm: Avoid ARM conditional insn execution.

	* mpn/x86_64/missing.asm: Move from mulx/adx since we cannot currently
	prune missing.asm from path.
	* mpn/x86_64/mulx/adx/missing-call.m4: Likewise.
	* mpn/x86_64/mulx/adx/missing-inline.m4: Likewise.
	* mpn/x86_64/mulx/adx/addmul_1.asm: Update hardwired path.

2013-03-13 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/cong_2exp.c: Write loops in a cleaner way.
	* mini-gmp/mini-gmp.c: Likewise.
	* gmp-impl.h (mpz_zero_p): Likewise.

2013-03-12  Niels Möller  <nisse@lysator.liu.se>

	New names mpn_cnd_add_n and mpn_cnd_sub_n.
	* mpn/generic/cnd_add_n.c (mpn_cnd_add_n): Renamed file and
	function, from addcnd.c:mpn_addcnd_n.
	* mpn/generic/cnd_sub_n.c (mpn_cnd_sub_n): Renamed, from
	subcnd.c:mpn_subcnd_n.
	* mpn/arm/cnd_aors_n.asm: Renamed file, from aorscnd.asm, and
	renamed functions.
	* mpn/x86_64/cnd_aors_n.asm: Analogous renaming.
	* mpn/powerpc64/mode64/cnd_aors_n.asm: Analogous renaming.
	* gmp-impl.h (mpn_cnd_add_n, mpn_cnd_add_n): Updated prototypes
	with new names.
	* configure.ac: Updated for new names.
	* tests/refmpn.c (refmpn_cnd_add_n): Renamed, from refmpn_addcnd_n.
	(refmpn_cnd_sub_n): Renamed, from refmpn_subcnd_n.
	* tests/tests.h (refmpn_cnd_add_n, refmpn_cnd_sub_n): Updated
	prototypes with new names.
	* tune/common.c (speed_mpn_cnd_add_n): Renamed, from
	speed_mpn_addcnd_n, call mpn_cnd_add_n.
	(speed_mpn_cnd_sub_n): Renamed, from speed_mpn_subcnd_n, call
	mpn_cnd_sub_n.
	* tune/speed.h (speed_mpn_cnd_add_n, speed_mpn_cnd_sub_n): Updated
	prototypes with new names.
	* tune/speed.c (routine): Updated list with new names.
	* tests/devel/try.c: Updated for new mpn_cnd_* names.
	* mpn/generic/sbpi1_div_sec.c: Likewise.
	* mpn/generic/powm_sec.c: Likewise.

2013-03-12  Torbjorn Granlund  <tege@gmplib.org>

	* configure.ac: Add "missing" to extra_functions_64 for coreibwl.

	* mpn/x86_64/mulx/adx/addmul_1.asm: Simplify.  Make FAKE_MULXADX the
	default awaiting proper qemu behaviour.

2013-03-11  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/aorscnd_n.asm: Read 32 bits for 'n' arguments on DOS64.

	* tests/mpz/t-powm_ui.c: Test larger arguments.  General cleanup.

	* mpz/powm_ui.c (mod): Adhere to mpn_mu_div_qr's overlap requirements.

2013-03-10  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/sbpi1_div_sec.c: Update calls of mpn_addcnd_n and
	mpn_subcnd_n.
	* mpn/generic/powm_sec.c (MPN_REDC_1_SEC, MPN_REDC_2_SEC)
	(mpn_powm_sec): Update calls of mpn_subcnd_n.

	* tests/tests.h (refmpn_addcnd_n, refmpn_subcnd_n): Update
	declarations.
	* tests/refmpn.c (refmpn_addcnd_n, refmpn_subcnd_n): Similar
	reorder of arguments.
	* tests/devel/try.c (call): Pass condition first, for
	TYPE_ADDCND_N and TYPE_SUBCND_N.

	* tune/common.c (speed_mpn_addcnd_n, speed_mpn_subcnd_n): Update
	to pass condition as first argument.

	* gmp-impl.h (mpn_addcnd_n, mpn_subcnd_n): Updated declarations.

	* mpn/generic/addcnd_n.c (mpn_addcnd_n): Reordered arguments, make
	condition the first argument.
	* mpn/generic/subcnd_n.c (mpn_subcnd_n): Likewise.
	* mpn/arm/aorscnd_n.asm: Likewise.
	* mpn/x86_64/aorscnd_n.asm: Likewise.
	* mpn/powerpc64/mode64/aorscnd_n.asm: Likewise.

2013-03-10  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/mulx/adx/missing.asm: Simulate some mulx/adx insns.
	* mpn/x86_64/mulx/adx/missing-call.m4: Call variant.
	* mpn/x86_64/mulx/adx/missing-inline.m4: Inline variant.

	* mpn/sparc64/ultrasparct3/missing.asm: Simulate some v9-2011 insns.
	* mpn/sparc64/ultrasparct3/missing.m4: Inline or invoke missing.asm for
	v9-2011 insn.

	* configure.ac: Strip `haswell' from paths for now.

	* mpn/x86_64/mulx/addmul_1.asm: New.
	* mpn/x86_64/mulx/mul_1.asm: Rewrite file from `haswell' subdir.
	* mpn/x86_64/mulx/adx/addmul_1.asm: Likewise.
	* mpn/x86_64/haswell: Remove.

	* mpn/arm/v7a/cora15/mul_1.asm: New file.
	* mpn/arm/v7a/cora15/addmul_1.asm: New file.

2013-03-09 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/mpz/t-cong_2exp.c: Improve coverage.

2013-03-09  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/sparc64/ultrasparc1234/add_n.asm: Use g5 instead of g4.
	* mpn/sparc64/ultrasparc1234/sub_n.asm: Likewise.

	* mpn/sparc64/ultrasparct3/aormul_2.asm: Fix a typo.

2013-03-07  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/v7a/cora9/gmp-mparam.h: New file.

	* configure.ac (GMP_MULFUNC_CHOICES): Support mul_2 + addmul_2.

	* mpn/sparc64/ultrasparct3/aormul_2.asm: New file.

	* mpn/sparc64/ultrasparct3/submul_1.asm: Optimise out two carry
	propagating adds.

2013-03-06  David Miller  <davem@davemloft.net>

	* config.guess: Recognize UltraSparc T4 under Linux.
	* configure.ac: Add sparc64/ultrasparct3 to path_64 when T3 or T4.
	Append -xarch=v8plusd or -xarch=v9d to command line, as needed.
	* mpn/sparc64/ultrasparct3/mul_1.asm: New file.
	* mpn/sparc64/ultrasparct3/addmul_1.asm: New file.
	* mpn/sparc64/ultrasparct3/submul_1.asm: New file.
	* mpn/sparc64/ultrasparct3/add_n.asm: New file.
	* mpn/sparc64/ultrasparct3/sub_n.asm: New file.

	* mpn/sparc32/ultrasparct1/mul_1.asm: Unroll main loop one time, add
	T2/T3/T4 timings.
	* mpn/sparc32/ultrasparct1/addmul_1.asm: Likewise.
	* mpn/sparc32/ultrasparct1/submul_1.asm: Likewise.

2013-03-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/neon/lorrshift.asm: New file.

2013-03-03  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/v7a/cora15/copyd.asm: New file.
	* mpn/arm/v7a/cora15/copyi.asm: New file.

	* mpn/arm64/logops_n.asm: New file.
	* mpn/arm64/gcd_1.asm: New file.
	* mpn/arm64/aorsmul_1.asm: New file.
	* mpn/arm64/addmul_1.asm: Remove.
	* mpn/arm64/aors_n.asm: Complete rewrite.

	* mpn/arm/tabselect.asm: New file.
	* mpn/arm/neon/tabselect.asm: New file.

	* mpn/arm/copyi.asm: Software pipeline.
	* mpn/arm/copyd.asm: Likewise.

	* config.guess: Rework tmp file handling to resemble configfsf.guess's.

2013-03-03  Niels Möller  <nisse@lysator.liu.se>

	* doc/gmp.texi (Integer Special Functions): Document
	mpz_limbs_read, mpz_limbs_write, mpz_limbs_modify,
	mpz_limbs_finish, mpz_roinit_n and MPZ_ROINIT_N.

	* mpz/roinit_n.c (mpz_roinit_n): Normalize the input.

2013-02-27  Niels Möller  <nisse@lysator.liu.se>

	* tune/common.c (speed_measure): Increase repetition count if we
	get a zero measurement.

2013-02-27 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/mini-gmp.c (mpz_div_q_2exp): Adjust only if needed.
	(mpn_common_scan): New service function to unify scan loops.
	(mpz_scan0, mpz_scan1): Simplify by using mpn_common_scan.
	(mpz_make_odd): Simplify, assume in-place operation on positive.
	(mpn_scan0, mpn_scan1): New functions.
	* mini-gmp/mini-gmp.h (mpn_scan0, mpn_scan1): New declarations.
	* mini-gmp/tests/t-scan.c: Test also mpn_scan0 and mpn_scan1.

2013-02-26  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpz/t-limbs.c (check_roinit): Test MPZ_ROINIT_N only if
	compiler supports c99.

2013-02-25  Niels Möller  <nisse@lysator.liu.se>

	* mini-gmp/tests/t-double.c (testmain): Declare double variables
	as volatile, to drop extended precision.

	* mini-gmp/tests/testutils.c (testfree): New function. Use it
	everywhere where test programs deallocate storage allocated via
	the mini-gmp allocation functions, including uses of mpz_get_str
	for various test failure messages.

	* mpz/limbs_finish.c (mpz_limbs_finish): New file and function.
	* mpz/limbs_modify.c (mpz_limbs_modify): New file and function.
	* mpz/limbs_read.c (mpz_limbs_read): New file and function.
	* mpz/limbs_write.c (mpz_limbs_write): New file and function.
	* mpz/roinit_n.c (mpz_roinit_n): New file and function.
	* gmp-h.in: Declare new functions.
	(MPZ_ROINIT_N): New macro.
	* mpz/Makefile.am (libmpz_la_SOURCES): Added new files.
	* Makefile.am (MPZ_OBJECTS): Added new object files.

	* tests/mpz/t-limbs.c: New testcase.
	* tests/mpz/Makefile.am (check_PROGRAMS): Added t-limbs.

2013-02-22  Torbjorn Granlund  <tege@gmplib.org>

	* configure.ac: Fix typo in adx/mulx path stripping code.
	* config.sub: Match coreibwl.

2013-02-20  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpq/t-get_d.c (check_random): Rewrote to make test less
	dependent on float operations. Fixes problem with m68k-linux and
	extended float precision.

2013-02-20  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/haswell/mulx/adx/addmul_1.asm: New file.

	* configure.ac: Support coreibwl.  Use proper name for ADX extension.
	* acinclude.m4 (GMP_ASM_X86_ADX): Rename from GMP_ASM_X86_ADOX.

	* tests/tests.h (TESTS_REPS): Keep count >= 1.

2013-02-19 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/mini-gmp.c: Move asserts to work-around a compiler bug.
	(mpz_export): Reorder branches.
	(mpz_mul_ui): Avoid temporary allocation (mpn_mul_1 can work in-place).

	* mini-gmp/tests/t-reuse.c: Fix typo causing the same negation
	condition to be applied to all operands. (See 2013-02-03, Torbjorn)

2013-02-17 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gmpxx.h (mpq_class, mpf_class) [init_ui, init_si, assign_si]:
	Optimise _si using _ui for positive arguments.
	(__gmp_hypot_function): Use _mul_ui to square an ui, abs for si.

	* mini-gmp/mini-gmp.c (mpz_mul): Read sizes just once.
	(mpn_set_str_other): Remove a redundant variable.
	(mpz_abs_add): Use SWAP once, to order sizes.
	(mpz_mul_ui): Micro-optimisation.
	(mpz_rootrem): Use _init2 before _setbit.
	(mpz_set_str): Optimise-out a variable.
	(mpz_import): Normalise only if needed.
	(mpn_div_qr_1): Speed-up the d=1 case, delaying a branch.

	* rand/randmts.c: Use init2, as size of variables is known in advance.
	(mangle_seed): Get a single argument.

	* mpz/remove.c: Delay allocation in the generic case; use swap
	instead of set.
	* mpn/generic/remove.c: Delay (possibly smaller) allocation.

2013-02-17  Marc Glisse  <marc.glisse@inria.fr>

	* cxx/osdoprnti.cc: Use <stdarg.h> and <string.h> rather than <cstdarg>
	and <cstring> (revert 2002-12-21).

	* tests/cxx/Makefile.am: Link with libm.
	* tests/cxx/t-ops2.cc: Comment about more tests. Use <math.h> rather
	than <cmath> and using namespace. Don't include <iostream>.

	* gmpxx.h (__GMPXX_BITS_TO_LIMBS, __GMPQ_NUM_DBL_LIMBS,
	__GMPQ_DEN_DBL_LIMBS, __GMPXX_TMPQ_D): New macros.
	(__gmp_binary_plus, __gmp_binary_minus, __gmp_binary_multiplies,
	__gmp_binary_divides, __gmp_binary_equal, __gmp_binary_less,
	__gmp_cmp_function): Use __GMPXX_TMPQ_D.
	* tests/cxx/t-ops2.cc: Test __GMPXX_TMPQ_D on DBL_MIN, DBL_MAX.

	* gmpxx.h (__gmp_binary_multiplies, __gmp_binary_divides): Use
	__GMPXX_CONSTANT_TRUE.

2013-02-16  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h: Include <algorithm>.

2013-02-16  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/Makefile.am (TARG_DIST): Add arm64.

	* mpn/x86_64/x86_64-defs.m4 (PROTECT): Emit '.hidden' instead of
	'.protected" to please Sun's assembler, but also for semantic reasons.

2013-02-15  Torbjorn Granlund  <tege@gmplib.org>

	* configure.ac (arm64*-*-*): Match this.

	* mpn/arm64/aors_n.asm: New file.
	* mpn/arm64/addmul_1.asm: New file.
	* mpn/arm64/mul_1.asm: New file.

2013-02-15  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (__GMPXX_DEFINE_ARITHMETIC_CONSTRUCTORS,
	__GMPXX_DEFINE_ARITHMETIC_ASSIGNMENTS): New macros.
	(mpz_class, mpq_class, mpf_class) [init_ui, init_si, init_d,
	assign_ui, assign_si, assign_d]: New functions.
	(__gmp_expr::__gmp_expr, __gmp_expr::operator=): Replace with macros.
	(__GMPXX_CONSTANT_TRUE): New macro.

2013-02-15 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gmp-impl.h (NEG_CAST, ABS_CAST): Use __GMP_CAST.
	* mpz/fits_s.h: Use NEG_CAST.

2013-02-14  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (__gmp_binary_greater): Forward to __gmp_binary_less.
	(__gmp_binary_equal): Forward to itself after swapping operands.

2013-02-14 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mp_dv_tab.c (__gmp_digit_value_tab): Remove a line of unused values.
	* mpf/set_str.c: Update offset accordingly.
	* mpz/inp_str.c: Likewise.
	* mpz/set_str.c: Likewise.

	* gmp-h.in (mpq_cmp_ui): Optimise comparison with 1/1.
	* tests/mpq/t-cmp_ui.c: Test special comparisons: 0/1, 1/1.

	* mpz/clrbit.c: Reorganise branches.
	* mpz/setbit.c: Likewise.
	* mpz/combit.c: Same micro-optimisations as in set/clr.

	* mpz/aors_ui.h: No realloc if size was zero.
	* mpz/ior.c: Use macros: MPZ_REALLOC and MPN_INCR_U.

	* gmp-impl.h (NEG_CAST): New macro, used by ABS_CAST.
	* mpq/cmp_si.c: Use NEG_CAST.
	* mpz/cmp_si.c: Reorganise branches.

2013-02-13  Torbjorn Granlund  <tege@gmplib.org>

	* acinclude.m4 (GMP_ASM_X86_MULX, GMP_ASM_X86_ADOX): New feature tests.
	* configure.ac: Use new feature tests.

	* mpn/x86_64/haswell/mulx/mul_1.asm: File moved to cope with older
	assemblers.
	* configure.ac: Update haswell path to include "mulx".

2013-02-12  Torbjorn Granlund  <tege@gmplib.org>

	* configure.ac: Recognise haswell.
	* config.guess: Recognise haswell.
	* config.sub: Match haswell.

	* mpn/x86_64/haswell/mul_1.asm: New file, mainly for testing HNI.

2013-02-12 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gmp-impl.h (MPZ_PROVOKE_REALLOC): Remove unused macro.
	* gen-fac.c (gen_consts): Remove obsolete code, use swap instead of set.
	* mini-gmp/mini-gmp.c (fac_ui, bin_uiui): Use shorter and faster code.

	* mpn/generic/mulmod_bnm1.c: Reorganise branches.
	* mini-gmp/mini-gmp.c: Reduce branches.

	* mpz/bin_ui.c: Avoid a copy when n < 0.
	* mpz/mfac_uiui.c: Reduce memory usage.
	* mpz/primorial_ui.c: Use MPZ_NEWALLOC.

	* mpz/import.c: Use BITS_TO_LIMBS and MPZ_NEWALLOC.
	* mpz/inp_raw.c: Likewise.
	* mpz/rrandomb.c: Likewise.
	* mpz/urandomb.c: Likewise.
	* mpn/generic/random2.c: Likewise.

	* mpn/generic/brootinv.c: Micro-optimisation.

	* mpf/set_str.c: Don't chech base==0 when base is strictly positive.

2013-02-10  Torbjorn Granlund  <tege@gmplib.org>

	* Version 5.1.1 released.

2013-02-07 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tune/speed.h (SPEED_ROUTINE_MPN_MUL): Use operands from struct s.
	* tune/README: Document new parameter syntax mpn_mul.<#> .

2013-02-06  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpz/t-jac.c (check_large_quotients): Rewrote. Now uses a
	more efficient method for generating the test inputs.

2013-02-05  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpn/t-div.c: Limit random dbits to avoid an infinite loop.

2013-02-03  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz/reuse.c: Fix typo causing the same negation condition to be
	applied to all operands.  Fix condition for when to invoke mpz_remove.
	Make different-size random operands.

2013-02-02 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/remove.c: Correct the sign in case of reuse.

2013-02-01  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h (DIGITS_IN_BASE_PER_LIMB): Add a cast.
	(LIMBS_PER_DIGIT_IN_BASE): Likewise.

	* tests/refmpn.c (refmpn_mul): Use toom6h instead of toom44 for the
	largest operands.

2013-01-31  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/toom44_mul.c: Revert last change in favour of a simple
	change (thanks Marco!).
	* mpn/generic/toom4_sqr.c: Likewise.

2013-01-30  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/toom44_mul.c (MAYBE_mul_toom44): Take toom6h and toom8h
	into account, using new macro MUL_NEXTALG_THRESHOLD.
	* mpn/generic/toom4_sqr.c (MAYBE_sqr_toom4): Likewise.

2013-01-26 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/remove.c: init+set=init_set, cast before shifting.

	* mpz/cmp_si.c: Use ABS_CAST.

2013-01-26  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpn/logic.c: Set things up to always test library logops, not
	gmp-impl.h's inlined variants.  Test also mpn_com.

	* tests/mpn/t-mod_1.c: Test also mpn_mod_1s_3p.

	* mpn/generic/mod_1_3.c: Swap some lines to make it similar to mod_4.c.

	* tests/mpz/reuse.c: Fix typo in last change.

2013-01-23 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/mini-gmp.c (mpz_cmpabs_d, mpz_cmp_d): Simplify.
	(mpz_set_str): Behaviour more adherent to the real GMP.

	* mini-gmp/tests/t-str.c: Cast size_t to unsigned long, for printf.
	* mini-gmp/tests/t-import.c: Likewise.
	* mini-gmp/tests/t-comb.c: Remove an unused var.
	* mini-gmp/tests/t-div.c: Remove unused args passed to fprintf.
	* mini-gmp/tests/t-double.c: Use float immediates with float vars.

2013-01-22  Torbjorn Granlund  <tege@gmplib.org>

	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
	* gmp-h.in: Bump version.

	* tests/mpz/reuse.c: Delete always zero 'failures' and code depending
	on it.  Replace rotating progress with real measure.

	* Makefile.am (check-mini-gmp): Fix typo in last change.

2013-01-22  Niels Möller  <nisse@lysator.liu.se>

	* mini-gmp/mini-gmp.c (mpz_cmp_d): Simplified, just sort out
	signs, then call mpz_cmpabs_d.

	* mini-gmp/tests/testutils.h: Include stdio.h and stdlib.h.
	(numberof): New define.

	* mini-gmp/tests/t-cmp_d.c: New file, copied from
	tests/mpz/t-cmp_d.c with minor changes.
	* mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-cmp_d,

	* mini-gmp/mini-gmp.c (mpz_cmpabs_d): New function.
	* mini-gmp/mini-gmp.h: Declare it.

2013-01-21  Niels Möller  <nisse@lysator.liu.se>

	* mini-gmp/tests/t-str.c (testmain): Test mpz_out_str, using
	the tmpfile function for i/o.

2013-01-20  Torbjorn Granlund  <tege@gmplib.org>

	* Makefile.am (check-mini-gmp): Set also DYLD_LIBRARY_PATH for the
	benefit of Darwin.

	* tests/mpn/t-div.c: Test mpn_sb_div_qr_sec and mpn_sb_div_r_sec.
	(main): Separate divisor into normalised (dnp) and unnormalised (dup),
	pass appropriate variant to each function.
	(main): Make negative `test' index value mean divisor bits, for better
	small operands coverage.
	(main): Put random junk at qp[] instead of zeroing.

	* tests/mpz/t-remove.c: Back out last change which left `divisor_size'
	uninitialised; achieve change's aim with a parameter tweak.

2013-01-20 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/tests/testutils.c (testhalves): New function, test default
	memory functions.
	* mini-gmp/tests/testutils.h (testhalves): Declare it
	* mini-gmp/tests/t-logops.c: Use testhalves.

	* mini-gmp/mini-gmp.c (mpz_init_set_str): New function.
	* mini-gmp/mini-gmp.h (mpz_init_set_str): Declare it.
	* mini-gmp/tests/t-str.c: Test mpz_init_set_str.

2013-01-20  Torbjorn Granlund  <tege@gmplib.org>

	* tests/memory.c (PTRLIMB): New macro, used for conformant casting.

2013-01-19 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/tests/t-double.c (testmain): Get the current free
	function using mp_get_memory_functions.
	* mini-gmp/tests/t-str.c (testmain): Likewise.

	* mini-gmp/tests/testutils.h (tu_free): Remove declaration.

	* mini-gmp/tests/testutils.c (block_check, tu_free): Mark static.

	* tests/mpz/t-set_str.c: Check also failing conditions.

	* tests/mpz/t-remove.c: Test removal of 1.

2013-01-18  Niels Möller  <nisse@lysator.liu.se>

	* mini-gmp/tests/t-str.c (test_small): New function, exercising
	parsing of whitespace and base prefixes.
	(testmain): Call it.

	* mini-gmp/tests/t-gcd.c (gcdext_valid_p): Fixed memory leak.

	* mini-gmp/tests/t-double.c (testmain): Call tu_free rather than
	free, for storage allocated by mpz_get_str.
	* mini-gmp/tests/t-str.c (testmain): Likewise.

	* mini-gmp/tests/testutils.c (block_init, block_check): New
	functions.
	(tu_alloc, tu_realloc, tu_free): New functions.
	(main): Use mp_set_memory_functions.
	* mini-gmp/tests/testutils.h (tu_free): Declare.

	* mini-gmp/tests/testutils.h: New file, declarations for test
	programs.

	* mini-gmp/tests/testutils.c (main): New file, with shared main
	function for all the test programs. Also includes mini-gmp.c.
	Calls testmain after initialization. All other test programs
	updated to define testmain rather than main.

2013-01-18 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/tests/t-signed.c: Slightly larger coverage.
	* mini-gmp/tests/t-double.c: Test also mpz_init_set_d.

2013-01-18  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/set_str.c (normalization_steps): Eliminate set-but-unused
	variable.

	* mini-gmp/tests/t-div.c: Test mpz_divisible_p and mpz_divisible_ui_p.

	* tests/tests.h (TESTS_REPS): Fix printf argument type clashes.

	* mini-gmp/tests/t-div.c: Test also mpz_mod, mpz_mod_ui.  Compare
	mpz_divisible_p just to ceil, to save time.

	* mini-gmp/mini-gmp.c: Prefix some names with GMP_.

2013-01-16 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/tests/t-double.c: Test mpz_cmp_d.
	* mini-gmp/mini-gmp.c (mpz_cmp_d): Correct multiword comparison.

	* mini-gmp/mini-gmp.c (mpz_set_str): Handle the empty string.
	* mini-gmp/tests/t-str.c: Test base <= 0.

2013-01-15  Niels Möller  <nisse@lysator.liu.se>

	* mini-gmp/tests/t-str.c (main): Use x->_mp_d rather than x[0]._mp_d.
	* mini-gmp/tests/t-invert.c (main): Likewise.

	* mini-gmp/tests/t-mul.c (main): Test mpn_mul_n and mpn_sqr.

	* mini-gmp/tests/hex-random.h (enum hex_random_op): New value
	OP_SQR.

	* mini-gmp/tests/mini-random.c (mini_random_op3): Renamed, from...
	(mini_random_op): ... old name. Updated callers.
	(mini_random_op2): New function.

	* mini-gmp/tests/hex-random.c (hex_random_op3): Renamed, from...
	(hex_random_op): ... old name. Updated callers.
	(hex_random_op2): New function.

2013-01-15 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/tests/t-logops.c: Improve popcount/hamdist testing.
	* mini-gmp/tests/t-signed.c: Test more cases.

2013-01-15  Torbjorn Granlund  <tege@gmplib.org>

	From Mike Frysinger:
	* configure.ac: Add x32 ABI for x86_64.

2013-01-14  Niels Möller  <nisse@lysator.liu.se>

	* mini-gmp/tests/t-str.c (main): Added tests for mpn_get_str and
	mpn_set_str.

2013-01-14 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* doc/gmp.texi (gmp_version): Remove "was used" repetition.
	(Upward compatibility): Mention mpn_bdivmod, GMP 4 -> GMP 5.

2013-01-13  Marc Glisse  <marc.glisse@inria.fr>

	* doc/gmp.texi: Let mpn_sqrtrem reference mpn_perfect_square_p instead
	of mpz_perfect_square_p.

2013-01-11 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/tests/t-comb.c: New test program, testing both
	mpz_fac_ui and mpz_bin_uiui.
	* mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-comb.

	* mini-gmp/mini-gmp.c (mpz_mul_si): Simplify.
	(mpz_mul_ui, mpz_mul, mpz_div_qr): Replace init+REALLOC with init2.

	* mini-gmp/mini-gmp.c (NEG_CAST): New macro.
	(mpz_mul_si, mpz_set_si, mpz_cmp_si): Use NEG_CAST.

	* mini-gmp/mini-gmp.c (mpz_set_si, mpz_cmp_si): Simplify by using
	the _ui variant.

	* mini-gmp/tests/t-root.c: Use mpz_ui_pow_ui, when base fits an ui.

	* mini-gmp/tests/t-mul.c: Test also mpz_mul_si.
	* mini-gmp/tests/t-sub.c: Test also mpz_ui_sub.

	* mini-gmp/mini-gmp.c (mpz_fits_slong_p): Correct range.
	* mini-gmp/tests/t-signed.c: New test program, for get/set/cmp_si.
	* mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-signed.

	* mini-gmp/mini-gmp.c (mpz_hamdist): Handle different sizes.
	* mini-gmp/tests/t-logops.c: Test also popcount and hamdist.

2013-01-10 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/export.c: Less restrictive ASSERTs.
	* mini-gmp/mini-gmp.c (mpz_export, mpz_import): Likewise.
	* mini-gmp/tests/t-import.c: Test also size=0 or count=0.

2013-01-10  Torbjorn Granlund  <tege@gmplib.org>

	* mini-gmp/tests/t-import.c (main): Don't drop off function end.

	* Makefile.am (check-mini-gmp): Set LD_LIBRARY_PATH to allow testing
	with dynamic main GMP build.

2013-01-09 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/mini-gmp.c (mpz_export): Support op=0 countp=NULL.

2013-01-08  Niels Möller  <nisse@lysator.liu.se>

	* mini-gmp/tests/t-import.c: New test program, testing both
	mpz_import and mpz_export.
	* mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-import.

	* mini-gmp/tests/mini-random.c (mini_rrandomb_export): New
	function.
	* mini-gmp/tests/mini-random.h: Declare it.
	* mini-gmp/tests/hex-random.c (hex_rrandomb_export): New function.
	* mini-gmp/tests/hex-random.h: Declare it.

	* mini-gmp/mini-gmp.c (mpz_export): Compute accurate word count up
	front, to avoid generating any high zero words.

2013-01-07 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/README: Document base limitation for conversions.
	* mini-gmp/mini-gmp.c (mpz_set_str): Remove goto.
	(mpz_import, mpz_export): Correctly use order/endianness.

2013-01-05  Torbjorn Granlund  <tege@gmplib.org>

	* longlong.h (aarch64): Make add_ssaaaa and sub_ddmmss actually work.

2013-01-04 Marco Bodrato <bodrato@mail.dm.unipi.it>

	From shuax:
	* mini-gmp/mini-gmp.c (mpz_import): Reset limb after storing it.

2013-01-04  Torbjorn Granlund  <tege@gmplib.org>

	From Marko Lindqvist:
	* configure.ac: Use AC_CONFIG_HEADERS instead of the obsolete
	AM_CONFIG_HEADER.

2013-01-02 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/mpz/bit.c: Wider testing for mpz_combit.
	* tests/mpz/logic.c: Check the -2^n case.

	* mpz/ior.c: Fixed an allocation bug in the -2^n case.

2012-12-31  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/get_d.c: Minor reorg, add vax D code.

	* gmp-impl.h (double_extract): New union type for vax D floats.

	* tests/mpq/t-get_d.c (check_random): Limit exponents on vax.

2012-12-30 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/mpz/bit.c (check_clr_extend): Check _set shrink.

2012-12-29  Torbjorn Granlund  <tege@gmplib.org>

	* demos/calc/calc.c: Remove generated file from repo.
	* demos/calc/calc.h: Likewise.
	* demos/calc/calclex.c: Likewise.

2012-12-27  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/get_d.c: Complete rewrite of non-IEEE code.

	* tests/mpq/t-get_d.c (main): Suppress check_random for vax.

2012-12-25  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/bdiv_q_1.asm: Use LEA for binvert_limb_table.

2012-12-23  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz/t-get_d.c (check_onebit): Decrease vax limit to avoid
	overflow in last, unused 'want' value.

	* config.guess: Recognise AMD family 22 as a future bobcat.

2012-12-21  Torbjorn Granlund  <tege@gmplib.org>

	* configure.ac: Rename configure.in.

2012-12-17  Torbjorn Granlund  <tege@gmplib.org>

	* Version 5.1.0 released.

	* configure.in (none-*-*): Allow this again, but print a warning.

2012-12-17 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/n_pow_ui.c: Fix typos in an ASSERT.

2012-12-16  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mu_div_qr.c (mpn_preinv_mu_div_qr): Explicitly use
	MPN_COPY_INCR for slightly overlapping copy.

2012-12-15 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/mpn/toom-sqr-shared.h: Skip ALLOCs if the test is skipped.

2012-12-13  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/dos64.m4 (PIC): Move definition early.
	(JMPENT): Remove PIC variant.

	* mpn/x86_64/darwin.m4 (JUMPTABSECT): Define to .text, instead of
	something sensible.

2012-12-12  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/x86_64-defs.m4 (JMPENT): New macro.
	* mpn/x86_64/dos64.m4: Likewise.
	* mpn/x86_64/darwin.m4: Likewise.
	* mpn/x86_64/mod_34lsub1.asm: Use JMPENT to properly support PIC.
	* mpn/x86_64/mullo_basecase.asm: Likewise.
	* mpn/x86_64/sqr_basecase.asm: Likewise.

2012-12-11  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/mod_34lsub1.asm: Try different jump table for the benefit
	of broken Apple linkers.

2012-12-09  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Make GMP_NONSTD_ABI ABI specific.

2012-12-08  Torbjorn Granlund  <tege@gmplib.org>

	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
	* gmp-h.in: Bump version.

2012-12-06 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/mpq/reuse.c: New test (adapted from mpf/reuse.c).
	* tests/mpq/Makefile.am (check_PROGRAMS): Add reuse.

	* mpz/abs.c: Use NEWALLOC.
	* mpz/neg.c: Likewise.
	* mpz/com.c: Reduce branches.

2012-12-05  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/brootinv.c (mpn_brootinv): Make valgrind happier, at
	the cost of a redundant MPN_ZERO.

	* mpz/jacobi.c (mpz_jacobi): Check for asize == 0 or bsize == 0
	before using the low limbs.

2012-12-05  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/set_str.c (mpn_dc_set_str): Work around a valgrind issue.

	* mpz/powm_ui.c: Don't assume >= 2 limbs in mod argument.

	* tests/tests.h (TESTS_REPS): Handle float GMP_CHECK_REPFACTOR.

	* longlong.h: Refine cpp test for vax.
	* tests/mpn/t-get_d.c: Likewise.
	* tests/mpz/t-get_d.c: Likewise.
	* tests/mpz/t-cmp_d.c: Likewise.
	* tests/mpz/t-get_d.c: Likewise.
	* tests/mpq/t-get_d.c: Likewise.
	* tests/mpf/t-get_d.c: Likewise.

2012-11-30  Torbjorn Granlund  <tege@gmplib.org>

	* gen-fac.c (gen_consts): Correct printf types.

	* mpn/arm/v7a/cora15/gmp-mparam.h: New file.

	* configure.in (arm*-*-*): New compiler optional "tune".  Pass value for
	selected processors.  Add more specific path components.

2012-11-29  Torbjorn Granlund  <tege@gmplib.org>

	From Andoni Morales Alastruey:
	* longlong.h: Conditionalise ARM asm on !__thumb__.

2012-11-28  Torbjorn Granlund  <tege@gmplib.org>

	* config.guess (arm*-*-*): Support specific ARM processors.
	* config.sub: Match arm CPUs.
	* configure.in (arm*-*-*): Likewise.

	* mpz/powm.c: Move new_b out since it lives on through b.

	* configure.in (arm*-*-*): Pass -marm to deal with compilers defaulting
	to thumb code.

2012-11-26  Torbjorn Granlund  <tege@gmplib.org>

	* tests/cxx/t-ops2.cc (checkz): Reduce huge numbers to avoid vax
	overflow.

2012-11-25  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/get_d.c: Reinsert non-IEEE code.

	* mpn/vax/add_n.asm: New file.
	* mpn/vax/add_n.s: Remove.
	* mpn/vax/addmul_1.asm: New file.
	* mpn/vax/addmul_1.s: Remove.
	* mpn/vax/lshift.asm: New file.
	* mpn/vax/lshift.s: Remove.
	* mpn/vax/mul_1.asm: New file.
	* mpn/vax/mul_1.s: Remove.
	* mpn/vax/rshift.asm: New file.
	* mpn/vax/rshift.s: Remove.
	* mpn/vax/sub_n.asm: New file.
	* mpn/vax/sub_n.s: Remove.
	* mpn/vax/submul_1.asm: New file.
	* mpn/vax/submul_1.s: Remove.

	* mpn/vax/elf.m4: New file.
	* configure.in (vax*-*-*elf*): New case, grabbing vax/elf.m4.

	* tests/mpn/t-get_d.c (check_onebit): Get vax bounds right.
	(main): Switch off check_rand for vax.

2012-11-22  Niels Möller  <nisse@lysator.liu.se>

	* mini-gmp/tests/run-tests: Copied latest version from GNU Nettle.
	Minor fix to the use of $EMULATOR, and proper copyright notice.

2012-11-16  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/powm_sec.c (redcify): Use mpn_sb_div_r_sec.

	* mpn/generic/sb_div_sec.c: New file.
	* mpn/generic/sbpi1_div_sec.c: New file.
	* configure.in (gmp_mpn_functions): Add new files.
	* gmp-impl.h: Declare new functions.

2012-11-12  Torbjorn Granlund  <tege@gmplib.org>

	* longlong.h: Add ARM64 support.
	* longlong.h: Add AVR support.

	* mpn/powerpc64/mode64/divrem_1.asm: Tune, simplify.

	* mpq/md_2exp.c: Use MPN_COPY_INCR, not MPN_COPY_DECR.
	* tests/mpq/t-md_2exp.c (check_random): New function.

2012-11-10  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/remove.c (mpn_bdiv_qr_wrap): Make static.

2012-11-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/powm_ui.c: Rewrite.

2012-11-01  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/brootinv.c (mpn_brootinv): Input size in limbs
	rather than bits. Use single-precision iterations for the first
	limb.
	* mpn/generic/perfpow.c (is_kth_power): Update mpn_brootinv call.
	* tests/mpn/t-brootinv.c (main): Likewise.
	* tune/speed.h (SPEED_ROUTINE_MPN_BROOTINV): Likewise.
	* gmp-impl.h (mpn_brootinv): Updated prototype.

	* mpn/generic/hgcd2.c (mpn_hgcd2): Removed redundant loop exit
	tests in the single-precision loop.

	* mpz/combit.c (mpz_combit): Rewrite, optimizing for the common
	case.

2012-10-31  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-brootinv.
	* tests/mpn/t-brootinv.c: New file

	* mpn/generic/broot.c (mpn_broot_invm1): Avoid a mullo_n in the
	loop, and do powering as a plain mpn_sqr followed by mpn_powlo.

	* tune/speed.c (routine): Added mpn_broot, mpn_broot_invm1,
	mpn_brootinv.

	* tune/common.c (speed_mpn_broot, speed_mpn_broot_invm1)
	(speed_mpn_brootinv): New functions.
	* tune/speed.h (SPEED_ROUTINE_MPN_BROOT)
	(SPEED_ROUTINE_MPN_BROOTINV): New macros.

	* mpn/generic/broot.c (mpn_broot_invm1): Made non-static (mainly
	for benchmarking).
	* gmp-impl.h (mpn_broot_invm1): Declare it.

2012-10-28  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (gmp_mpn_functions): Add new files.
	* gmp-impl.h: Declare new functions.
	* mpn/generic/perfpow.c: Overhaul.
	(binv_root, binv_sqroot): Remove.
	* mpn/generic/brootinv.c: New file, code from overhauled binv_root.
	* mpn/generic/bsqrtinv.c: New file, code from overhauled binv_sqroot.
	* mpn/generic/bsqrt.c: New file.

	* tests/mpn/t-broot.c: Add a forgotten TMP_MARK.

2012-10-28  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/broot.c (mpn_broot): New file and function.
	* configure.in (gmp_mpn_functions): Add broot.
	* gmp-impl.h (mpn_broot): Declare.
	* tests/mpn/t-broot.c: New testcase.
	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-broot.

2012-10-27  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/remove.c: Get remainder allocation right.

2012-10-25  Torbjorn Granlund  <tege@gmplib.org>

	* longlong.h: De-support old POWER asm syntax.

	* tests/mpz/t-remove.c: Run more tests, but use a tad smaller operands.

	* mpn/generic/remove.c (mpn_bdiv_qr_wrap): New function.
	(mpn_remove): Call mpn_bdiv_qr_wrap.
	* mpz/remove.c: Enable suppressed mpn_remove call.

2012-10-17  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/powm_ui.c (mpz_powm_ui): Deflect to mpz_powm for large exponent.

2012-09-10  Torbjorn Granlund  <tege@gmplib.org>

	* demos/factorize.c: Rewrite no more current form.  Implement Lucas
	prime proving, and make its use the default.
	* demos/primes.h: New file.

2012-08-24  Torbjorn Granlund  <tege@gmplib.org>

	* demos/factorize.c: Overhaul.

2012-08-06 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* doc/gmp.texi (mpn_neg): Correctly document returned type.

	* gmp-impl.h (_mpz_newalloc, log_n_max): mark with inline (spotted by Niels).

2012-07-28  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (std::common_type): New partial specializations with builtin
	types.
	* tests/cxx/t-cxx11.cc: Test it.

2012-07-21  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc32/vmx/mod_34lsub1.asm: Fix r0 clobbering issue with
	"large" code affecting elf+darwin PIC.

2012-07-21  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (__GMPXX_CONSTANT): Disable for g++-3.4.

2012-06-26  Torbjorn Granlund  <tege@gmplib.org>

	* Makefile.am (LIBMP_LT_*): Remove these.

2012-06-26  Marc Glisse  <marc.glisse@inria.fr>

	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Update comment for 5.1.0.

2012-06-24 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* configure.in (CALLING_CONVENTIONS_OBJS): Disable any use of
	assembly code with the --disable-assembly option.
	* mpz/oddfac_1.c: Use the ASSERT_CODE macro.
	* gen-trialdivtab.c (mpz_log2): Use mpz_sizeinbase (., 2).

	* gmp-impl.h (MPN_SIZEINBASE_16): Replace with MPN_SIZEINBASE_2EXP
	from mpz/export.c .
	* mpz/export.c (MPN_SIZEINBASE_2EXP): Removed.
	* mpn/generic/sizeinbase.c: Use MPN_SIZEINBASE.

	* mpz/nextprime.c: Use MPN_SIZEINBASE_2EXP to count bits.
	* mpn/generic/perfpow.c: Likewise.
	* mpn/generic/rootrem.c: Likewise.
	* mpz/get_d_2exp.c: Likewise.
	* mpn/generic/powm_sec.c: Likewise, nailify.
	* mpn/generic/powlo.c: Likewise.
	* mpn/generic/powm.c: Likewise.

	* mini-gmp/mini-gmp.c (mpz_div_r_2exp, mpz_div_q_2exp): Improve
	adjustment condition.

2012-06-23  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (numeric_limits): Make content public.
	* cxx/limits.cc: New file, proper declarations.
	* Makefile.am: List new file.
	* cxx/Makefile.am: Likewise.
	* cxx/t-misc.cc: Add minimal test for numeric_limits.

2012-06-09  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (__gmp_resolve_expr::srcptr_type): New typedef.
	(__gmp_temp): Wrapper for mp*_class, the constructor copies the
	precision of its second argument for mpf_t.
	(__gmp_expr::eval(p, prec)): Remove.
	(__gmp_expr::eval(p)): Use __gmp_temp.
	(__gmp_set_expr): Never pass prec to eval().

2012-06-08 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gmp-impl.h (__GMP_WITHIN_CONFIGURE): Use the same #if as in gmp-h.in.
	(MPN_NORMALIZE_NOT_ZERO): Tighter ASSERT.
	(MPZ_NEWALLOC): New macro.
	* mpq: Use the new macro when possible.
	* mpz/bin_uiui.c: Likewise.
	* mpz/oddfac_1.c: Likewise.
	* mpz/prodlimbs.c: Likewise.

	* mini-gmp/mini-gmp.c (mpz_realloc): remove a branch.

2012-06-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/aix.m4 (ASM_START): Claim machine type "any".

2012-06-03  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/gcdext.c (mpn_gcdext): Deleted code for handling
	impossible case u1 == 0, Simplified test for unlikely case u0 == 0.

2012-06-02  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/lshiftc.asm: New file.

2012-06-01  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/aorslsh1_n.asm: Use cmp/cmn instead of subs/adds in more
	places.

	* mpz/get_str.c: Don't strip leading zeros since current mpn_get_str
	won't generate any.  Misc streamlining.
	* mpz/out_str.c: Analogous changes.

	* tests/mpz/io.c: Use a wider range of bases.

	* tests/mpz/t-cong.c (check_random): Rewrite random generation for
	exponentially distributed operand sizes.

2012-06-01 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpq: Use more macros and MPZ_REALLOC return value when possible.

	* gmp-impl.h (LIMBS): Removed, was an alias for PTR.
	* mpz/combit.c: Use PTR and CNST_LIMB.

	* tests/mpn/t-bdiv.c: Test also mpn_bdiv_qr.
	* mpn/generic/bdiv_qr.c: Add an ASSERT.

	* mpn/generic/remove.c: Add a zero limb to use bdiv_qr...

2012-05-31  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (mpq_class::mpq_class): Handle mpq_class(0,1).
	* tests/cxx/t-constr.cc: Test it.

2012-05-30  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64 (FUNC_ENTRY): New name for DOS64_ENTRY.
	* mpn/x86_64 (FUNC_EXIT): New name for DOS64_EXIT.

2012-05-29 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/remove.c: Optimise branches.

	* mpn/generic/toom6h_mul.c: less branches in the LIKELY balanced path.
	* mpn/generic/toom8h_mul.c: Likewise.

2012-05-29  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/v5/mod_1_1.asm: New file.

2012-05-28  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/gcdext.c (compute_v): Simplified carry handling a
	bit, reduced stated scratch need from 2n+1 to 2n. Also comment and
	ASSERT improvements.

2012-05-27  Torbjorn Granlund  <tege@gmplib.org>

	* config.guess: Add new x86 CPUs.
	* mpn/x86/fat/fat.c: Likewise.
	* mpn/x86_64/fat/fat.c: Likewise.

2012-05-27 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86_64/fat/fat.c: abort iff longmode-capable-bit is turned off.

	* mpn/generic/toom8h_mul.c: mark UNLIKELY branches.

2012-05-26  Torbjorn Granlund  <tege@gmplib.org>

	* mpz: Use MPZ_REALLOC return value when possible.

2012-05-25 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/tests/t-div.c: Test all _qr, _q, _r variants.
	* mini-gmp/tests/t-lcm.c: Test the _ui variant.

	* mini-gmp/mini-gmp.c (mpz_mod, mpz_mod_ui): New functions.
	* mini-gmp/mini-gmp.h (mpz_mod, mpz_mod_ui): Prototypes.

	* mpz/scan1.c: Simplify, and add a shortcut for scan1(z, 0).

2012-05-24  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/n_pow_ui.c: Cast non-limb count_leading_zeros argument.

2012-05-24 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/remove.c: Support negative divisor.
	* tests/mpz/t-remove.c: Test negative divisor.

2012-05-23  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz/reuse.c: Major rewrite.

2012-05-23 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/sqrt.c: Further simplify.
	* mpz/sqrtrem.c: Likewise.

	* Mark failing branches with UNLIKELY. Many files affected.

2012-05-22  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/sqrt.c: Allocate less for overlapping operands, simplify.
	* mpz/sqrtrem.c: Likewise.

2012-05-21 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/toom8_sqr.c: Reduce branches for recursion.
	* mpn/generic/toom8h_mul.c: Likewise.

	* tests/mpn/t-toom8h.c: Don't use GMP_NUMB_BITS when not yet defined.

2012-05-20  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz/t-gcd.c: Rewrite.

2012-05-19  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz/t-gcd.c: Generate larger operands for better gcd code
	coverage; distribute size exponentially.

2012-05-17 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpf/pow_ui.c: Simplify.
	* tests/mpf/reuse.c (dsi_func): Exercise pow_ui.

	* tests/mpf/t-set_ui.c (check_data): LONG_HIGHBIT -> ULONG_HIGHBIT.
	* tests/mpf/t-set.c (check_random): New check, both set and init_set.

	* tests/cxx/t-ops.cc (check_mpq): Check squaring.
	* tests/mpq/t-equal.c (check_various): Check different den-size.

	* mpn/generic/mullo_n.c: Disable MAYBE_ if WANT_FAT_BINARY.
	* mpz/cmpabs_d.c: Remove an unused branch.

	* tests/mpz/t-get_d_2exp.c (check_zero): New check.
	* tests/mpz/t-inp_str.c: A few more cases.
	* tests/mpz/t-cmp_d.c: More bases and symbols, a few cases.

	* mpz/rootrem.c: Correctly handle odd roots of negatives.
	* tests/mpz/t-root.c: Test it.

2012-05-16  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpf/t-eq.c (check_random): New function, meat from old main().
	(check_data): New function.

2012-05-13  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/rsh1aors_n.asm: New file.
	* mpn/arm/v5/mod_1_2.asm: New file.

2012-05-11  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (explicit operator bool): New functions.
	* tests/cxx/t-cxx11.cc: Test the above.

2012-05-10 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gmp-impl.h (__gmpn_cpuvec_initialized): Was __gmpn_cpuvec.initialized
	* mpn/x86/fat/fat.c: Use separated _initialized variable.
	* mpn/x86_64/fat/fat.c: Likewise.
	* tests/mpn/t-fat.c: Likewise.

	* mpn/generic/toom2_sqr.c: Override global __gmpn_cpuvec_initialized.
	* mpn/generic/toom22_mul.c: Likewise.
	* mpn/generic/toom3_sqr.c: Likewise.
	* mpn/generic/toom33_mul.c: Likewise.

2012-05-09 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/mini-gmp.c: merge mpz_rootrem and mpz_sqrtrem.

	* mpn/generic/sqrtrem.c (invsqrttab): Reduce size removing common byte.

	* mpz/bin_uiui.c (mul3, mul4, mul8): Remove unneeded shifts.
	(MAXFACS): Redefine, using the shared (safer) log_n_max.

2012-05-08  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/minithres/gmp-mparam.h (REDC_1_TO_REDC_N_THRESHOLD): Up to 9, for
	coherency with ASSERT in mpn/generic/redc_n.c.

2012-05-07 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/minithres/gmp-mparam.h: Updated TOOM6 and FAC_DSC.
	* tests/mpn/toom-sqr-shared.h: Don't test if no range.

	* mpz/oddfac_1.c: Add ASSERTs to warn about small threshold.
	* tune/tuneup.c: Update minimal threshold for FAC_DSC.

2012-05-06  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/v6/sqr_basecase.asm: Simplify n=4 code.

2012-05-05 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/invert.c: Mark a branch UNLIKELY.
	* tune/tuneup.c (tune_fac_u): Update DSC_THRESHOLD minimum.
	* gmp-impl.h (FAC_???_THRESHOLD): Update default values.
	(ABOVE_THRESHOLD): New definition with __builtin_constant_p.

	* mpn/generic/toom22_mul.c: Disable MAYBE_ if WANT_FAT_BINARY.
	* mpn/generic/toom33_mul.c: Likewise.
	* mpn/generic/toom2_sqr.c: Likewise.
	* mpn/generic/toom3_sqr.c: Likewise.

2012-05-04  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c: Measure POWM_SEC_TABLE after the REDC thresholds.

2012-05-03  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/powm_sec.c: Use redc_2.
	(INNERLOOP): Use this mechanism, like plain powm.c.
	(WANT_CACHE_SECURITY): Remove, feature now unconditional.

2012-05-02  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/bin_uiui.c: Make use of CNST_LIMB.

2012-05-02 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/mfac_uiui.c: Support limb != ui.

2012-05-02  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/logops_n.asm: Work around register clobbering issue.

	* mpn/arm/aorscnd_n.asm: New file.

2012-05-01  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Put arm dirs in path in proper prio order.

	* mpn/arm/logops_n.asm: New file.

	* mpz/2fac_ui.c: Fix assumed typo.

	* mpn/arm/v6/gmp-mparam.h: New file.

	* mpn/arm/v5/gcd_1.asm: Hack for undefined BMOD_1_TO_MOD_1_THRESHOLD.
	* mpn/arm/v6t2/gcd_1.asm: Likewise.

2012-04-30  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/v6/sqr_basecase.asm: New file.

2012-04-30 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/comb_tables.c: New file.
	* configure.in: Add it.
	* gen-fac.c: Define table limits.
	* gmp-impl.h: Declare tables.
	(log_n_max): New static function.
	* mpz/2fac_ui.c: Use shared tables.
	* mpz/bin_uiui.c: Likewise.
	* mpz/oddfac_1.c: Likewise.
	* mpz/primorial_ui.c: Likewise.

	* mpz/mfac_uiui.c: New file.
	* Makefile.am: Compile it.
	* mpz/Makefile.am (libmpz_la_SOURCES): Add mpz_mfac_uiui.c
	* gmp-h.in (mpz_mfac_uiui): Declare.

	* tests/mpz/t-mfac_uiui.c: New file.
	* tests/mpz/Makefile.am: Run it.

	* doc/gmp.texi: Document mpz_mfac_uiui, collapsing with other factorial functions.

	* tests/mpz/t-lcm.c: Test zero too.

	* mpz/prodlimbs.c: Simplify threshold (should be tuned, not guessed).

2012-04-29  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/aors_n.asm: Tune for more stable performance.

	* mpn/arm/aorslsh1_n.asm: New file.

	* mpn/arm/mod_34lsub1.asm: New file.

	* mpn/arm/v6t2/divrem_1.asm: New file.

2012-04-28  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/thumb/add_n.asm: New file.
	* mpn/thumb/sub_n.asm: New file.
	* mpn/thumb/add_n.s: Remove broken code.
	* mpn/thumb/sub_n.s: Likewise.

	* mpn/arm/v6/addmul_1.asm: Rewrite for stable speed, smaller size.
	* mpn/arm/v6/mul_1.asm: Likewise.

2012-04-27  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Search arm/v6t2 for arm7.

	* mpn/arm/v5/gcd_1.asm: New file.
	* mpn/arm/v6t2/gcd_1.asm: New file.

	* mpn/arm/mode1o.asm: New file.
	* mpn/arm/v6t2/mode1o.asm: New file.

	* mpn/arm/arm-defs.m4 (LEA): New define.
	* mpn/arm/invert_limb.asm: Use LEA.

2012-04-26 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/bin_uiui.c (bc_bin_uiui): Nail support.
	* tests/cxx/t-ops2.cc: Test 0/3.
	* oddfac_1.c: assume n > 26.
	* tests/mpz/t-jac.c (mpn_jacobi_n): Enlarge tested sizes.

2012-04-24  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/v6/addmul_2.asm: New file.
	* mpn/arm/v6/mul_2.asm: New file.

2012-04-23  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/aorsmul_1.asm: Tweak loop control for a 6% speed increase.

2012-04-22  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Recognise ARM sub-architectures.

	* configfsf.guess: Update to current FSF version.
	* configfsf.sub: Likewise.

	* mpn/arm/bdiv_dbm1c.asm: New file.

	* mpn/arm/v6/mul_1.asm: New file.
	* mpn/arm/v6/addmul_1.asm: New file.

2012-04-22 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gen-fac.c: Renamed, was gen-fac_ui.c .
	* Makefile.am: Renamed gen-fac.c and fac_table.h .
	* gmp-impl.h: #include "fac_table.h".
	* mpz/oddfac_1.c: Use generated constant.
	* mpz/bin_ui.c: Small optimisations.

	* tune/common.c (speed_mpz_bin_ui): New function.
	* tune/speed.h: Declare it.
	* tune/speed.c: Use it.

2012-04-21  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/mul_1.asm: Cleanup.
	* mpn/arm/copyi.asm: Cleanup, assume allocate-on-write cache.
	* mpn/arm/copyd.asm: Likewise.

	* mpn/arm/add_n.asm: Delete.
	* mpn/arm/sub_n.asm: Delete.
	* mpn/arm/aors_n.asm: New file, made from old files.

	* mpn/arm/addmul_1.asm: Delete.
	* mpn/arm/submul_1.asm: Delete.
	* mpn/arm/aorsmul_1.asm: New file, made from old files.

	* mpn/arm/com.asm: New file.
	* mpn/arm/lshift.asm: New file.
	* mpn/arm/rshift.asm: New file.

2012-04-20  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpq/io.c: New file.
	* tests/mpq/Makefile.am: Run it.

	* mpz/clrbit.c: Simplify along the lines of setbit.c.

2012-04-20 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/setbit.c: Simplify.

	* gmp-impl.h (LOG2C): Define.
	* mpz/fac_ui.c (LOG2C): Remove.
	* mpz/2fac_ui.c (LOG2C): Remove.
	* mpz/oddfac_1.c (LOG2C): Remove.
	* mpn/generic/binvert.c (LOG2C): Remove.
	* mpn/generic/invertappr.c (LOG2C): Remove.

	* mpz/bin_uiui.c (mpz_goetgheluck_bin_uiui): Move declarations,
	and assume that n and k are not small.

2012-04-19  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-remove.

	* tests/mpz/t-remove.c: Clear out mpz variables.

	* tests/mpz/t-cong.c (check_random): Use much larger numbers.
	(check_data): Check congruences mod 0.

	* tests/mpz/t-divis.c: Test divisibility by zero.

	* tests/mpz/reuse.c: Test mpz_mod.

	* mpz/setbit.c: Remove dead code.  Use CNST_LIMB.
	* mpz/clrbit.c: Use CNST_LIMB.

2012-04-19 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* primesieve.c: New file, with functions from mpz/oddfac_1.c .
	* mpz/oddfac_1.c (bitwise_primesieve): Re-moved.
	* Makefile.am (libgmp_la_SOURCES): Add primesieve.c .
	* gmp-impl.h (gmp_primesieve): Declare.

	* mpz/bin_uiui.c (mpz_goetgheluck_bin_uiui): New, factor-based
	implementation.
	* tests/mpz/t-bin.c: Extend tests, to cover _goetgheluck.

	* mpz/primorial_ui.c: New file.
	* mpz/Makefile.am (libmpz_la_SOURCES): Add mpz/primorial_ui.c
	* Makefile.am (MPZ_OBJECTS): Add mpz/primorial_ui$U.lo
	* gmp-h.in (mpz_primorial_ui): Declare.
	* tests/mpz/t-primorial_ui.c: New test for the new function.
	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-primorial_ui.
	* doc/gmp.texi: Short documentation for the new function.

2012-04-17  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreisbr/aorsmul_1.asm: Fix some DOS64 issues.
	* mpn/x86_64/coreisbr/mul_1.asm: Likewise.

	* mpn/x86_64/fastsse/lshiftc-movdqu2.asm: Adhere to DOS64 register
	partitioning rules.

	* mpn/x86_64/fastsse/copyi-palignr.asm: Implement temporary workaround
	to overlap issue.

2012-04-17 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/bin_uiui.c: Support small limbs (fallback on bin_ui).

	* tests/mpn/toom-sqr-shared.h: Use a restricted range.
	* tests/mpn/t-toom2-sqr.c: Specify correct range.
	* tests/mpn/t-toom3-sqr.c: Likewise.
	* tests/mpn/t-toom4-sqr.c: Likewise.
	* tests/mpn/t-toom6-sqr.c: Likewise.
	* tests/mpn/t-toom8-sqr.c: Likewise, but extended.
	* tests/mpn/Makefile.am (check_PROGRAMS): Add t-toom?-sqr tests.

	* mpn/generic/sbpi1_bdiv_q.c: Move ASSERTs, to support qp = np.

2012-04-17  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/copyd.asm: Rewrite.
	* mpn/x86_64/copyi.asm: Rewrite.

2012-04-16  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fastsse/lshift-movdqu2.asm: Add DOS entry/exit sequences.
	* mpn/x86_64/fastsse/rshift-movdqu2.asm: Likewise.
	* mpn/x86_64/fastsse/lshiftc-movdqu2.asm: Likewise.

	* mpn/x86_64/x86_64-defs.m4 (palignr): New macro.
	(x86_opcode_regxmm, x86_opcode_regxmm_list): New, made from x86 mmx
	counterparts.
	(x86_lookup): Copy from x86/x86-defs.m4.
	* mpn/x86_64/fastsse/copyd-palignr.asm: Use palignr macro.
	* mpn/x86_64/fastsse/copyi-palignr.asm: Likewise.

2012-04-15 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/mpz/t-bin.c: Add more tests on small values.
	* mpz/bin_uiui.c (mpz_bdiv_bin_uiui): Smaller temporary areas.

2012-04-15  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fastsse/copyd-palignr.asm: New file.
	* mpn/x86_64/fastsse/copyi-palignr.asm: New file.
	* mpn/x86_64/core2/copyd.asm: New file.
	* mpn/x86_64/core2/copyi.asm: New file.
	* mpn/x86_64/nano/copyd.asm: New file.
	* mpn/x86_64/nano/copyi.asm: New file.
	* mpn/x86_64/atom/copyd.asm: New file.
	* mpn/x86_64/atom/copyi.asm: New file.

2012-04-13 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/bin_uiui.c: Rewrite (some parts are Torbjorn's).
	* gen-fac_ui.c: Generate new constants for bin_uiui.

	* mini-gmp/mini-gmp.h (mpz_fac_ui, mpz_bin_uiui): New definitions.
	* mini-gmp/mini-gmp.c (mpz_fac_ui, mpz_bin_uiui): Trivial
	implementation.

	* tests/mpz/t-fac_ui.c: Check Wilson's theorem on a big value.

	* mpn/generic/invert.c: Remove support for scratch == NULL.
	* tune/speed.h (SPEED_ROUTINE_MPN_MUPI_DIV_QR): Allocate scratch
	space for mpn_invert.

	* mpz/mul_i.h: Small clean-up.

	* tests/mpn/toom-sqr-shared.h: New file.
	* tests/mpn/t-toom2-sqr.c: New file.
	* tests/mpn/t-toom3-sqr.c: New file.
	* tests/mpn/t-toom4-sqr.c: New file.
	* tests/mpn/t-toom6-sqr.c: New file.
	* tests/mpn/t-toom8-sqr.c: New file.
	* tests/mpn/Makefile.am (EXTRA_DIST): Add toom-sqr-shared.h .

	* mpn/generic/toom62_mul.c: Use add_n, sub_n, when possible.

2012-04-12  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fastsse/lshift-movdqu2.asm: New file.
	* mpn/x86_64/fastsse/rshift-movdqu2.asm: New file.
	* mpn/x86_64/fastsse/lshiftc-movdqu2.asm: New file.
	* mpn/x86_64/coreisbr/lshift.asm: New file.
	* mpn/x86_64/coreisbr/rshift.asm: New file.
	* mpn/x86_64/coreisbr/lshiftc.asm: New file.
	* mpn/x86_64/k10/lshift.asm: New file.
	* mpn/x86_64/k10/rshift.asm: New file.
	* mpn/x86_64/k10/lshiftc.asm: New file.

	* mpn/x86_64/fastsse/lshift.asm: Simplify to very basic form.

2012-04-11  Niels Möller  <nisse@lysator.liu.se>

	* Makefile.am (check-mini-gmp): Pass -I../.. in EXTRA_CFLAGS, to
	locate gmp.h.

2012-04-11 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mini-gmp/mini-gmp.h (mpz_root, mpz_rootrem): define (correctly).
	* mini-gmp/mini-gmp.c (mpz_rootrem): Extended code from _root.
	(mpz_root): Use mpz_rootrem.
	(mpz_mul_ui): Correctly handle negative operands.

	* mini-gmp/tests/Makefile (CHECK_PROGRAMS): add t-root.
	* mini-gmp/tests/t-root.c: New file.
	* mini-gmp/tests/t-reuse.c: Enable root{,rem} tests.

2012-04-10 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gen-fac_ui.c (mpz_root): Remove.
	* mini-gmp/mini-gmp.c (mpz_root): New, support negative operands.
	* mini-gmp/mini-gmp.h (mpz_root): define.
	(mpz_out_str): Test also __STDIO_LOADED (for VMS).
	* mpz/2fac_ui.c: Cosmetic change.

2012-04-07  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/ia64/gcd_1.asm: Rewrite inner loop to use ctz table.

2012-04-05  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/p7/popcount.asm: Properly extend arg n for mode32.
	* mpn/powerpc64/p7/hamdist.asm: Likewise.

2012-04-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/p7/popcount.asm: New file.
	* mpn/powerpc64/p7/hamdist.asm: New file.

	* longlong.h (ARM count_leading_zeros): Enable for more arch versions.

	* mpn/x86_64/gcd_1.asm: Make room for DOS64 regparm shadow area.
	* mpn/x86_64/core2/gcd_1.asm: Likewise.

2012-04-03  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreisbr/aorrlsh_n.asm: Make it actually work for DOS64.

2012-04-02 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/oddfac_1.c: Initialize size for ASSERT.

2012-04-02  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-h.in (_GMP_H_HAVE_FILE): Test also __STDIO_LOADED (for VMS).

	* gmp-impl.h (doprnt_format_t, etc): Remove bogus __GMP_DECLSPECs.

2012-03-30 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86_64/sqr_basecase.asm: Speed-up for small cases.

2012-03-29  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/sparc64/gcd_1.asm: New file.

2012-03-27  Torbjorn Granlund  <tege@gmplib.org>

	* config.guess: Fix typo in coreisbr recognition.

2012-03-26 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86_64/gcd_1.asm: Reduce latency.
	* mpn/x86_64/mul_basecase.asm: Save one jump.

	* mpz/iset_ui.c: Don't realloc.

2012-03-20 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mp_clz_tab.c: Add __clz_tab[128].
	* longlong.h (count_trailing_zeros): Use it in pure C variant.

2012-03-20  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (x86 fat_path): Add many missing directories.
	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Rewrite.
	(fake_cpuid_table): Add many more CPUs.

	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Minor spacing cleanup.

2012-03-19  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/x86-defs.m4 (CALL, PIC_WITH_EBX): New macros.
	* mpn/x86/darwin.m4: Likewise.
	* mpn/x86/k7/gcd_1.asm: Use new macros to support PIC.
	* mpn/x86/p6/gcd_1.asm: Likewise.

2012-03-19 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gen-fac_ui.c: Generate more constants (possible mini-mpz_root).
	* mpz/oddfac_1.c: Improve ASSERTs.
	(log_n_max): Use precomputed table.

	* longlong.h (_PROTO): Remove.

2012-03-18  Torbjorn Granlund  <tege@gmplib.org>

	* longlong.h (count_trailing_zeros): Write better pure C default
	variant.

	* mpn/x86/p6/gcd_1.asm: Remove forgotten x86_64 reference.

	* mpn/x86/p6/gmp-mparam.h: Update, to get BMOD_1_TO_MOD_1_THRESHOLD
	defined for fat binaries.

2012-03-17  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/k7/gcd_1.asm: Rewrite.
	* mpn/x86/p6/gcd_1.asm: New file.

	* mpn/x86_64/core2/gcd_1.asm: Conditionally suppress reduction calls.
	* mpn/x86_64/gcd_1.asm: Rewrite.

2012-03-15  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/gcd_1.c: Parameterise zerotab code.

	* mpn/x86_64/nano/gcd_1.asm: New file, grabbing core2 asm file.

	* mpn/x86_64/core2/gcd_1.asm: Speed up loop code, simplify non-loop
	code.

2012-03-13  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/core2/gcd_1.asm: Add hack to support fat builds.

	* mpn/x86_64/core2/gcd_1.asm: Shorten critical path.

2012-03-12  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/core2/gcd_1.asm: New file.
	* mpn/x86_64/k10/gcd_1.asm: New file, grabbing core2 asm file.
	* mpn/x86_64/bd1/gcd_1.asm: Likewise.

	* mpn/x86_64/bobcat/sqr_basecase.asm: New file.
	* mpn/x86_64/bobcat/mul_basecase.asm: Minor tuning.

2012-03-10  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (fat_functions): Add addlsh1_n, addlsh2_n, addmul_2,
	mullo_basecase, redc_1, redc_2, sublsh1_n.

	* gmp-impl.h (struct cpuvec_t): Add fields for new fat functions.
	* gmp-impl.h: Adjust corresponding declarations.

	* mpn/generic/redc_2.c (mpn_addmul_2): Make static.

	* mpn/x86_64/fat/fat_entry.asm (FAT_INIT): Expand before fat_init to
	reduce branch offsets.  Pass plain 0,1,3... in %al since we'd else run
	out of 8-bit range.

	* mpn/x86_64/fat/fat_entry.asm (fat_init): Scale passed index value.
	* mpn/x86/fat/fat_entry.asm (fat_init): Use movzbl for expanding index
	value.

	* mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): Add new fat functions.
	* mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): Likewise.
	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec): Likewise.
	* mpn/x86/fat/fat.c (__gmpn_cpuvec): Likewise.

	* mpn/x86_64/fat/redc_2.c: New file.
	* mpn/x86/fat/mullo_basecase.c: New file.
	* mpn/x86/fat/redc_1.c: New file.
	* mpn/x86/fat/redc_2.c: New file.

	* tests/mpn/t-fat.c: Test mullo_basecase.

2012-03-08  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreisbr/addmul_2.asm: Port to DOS64.

2012-02-29  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h: Ignore partial C++11 support in g++-4.6.
	* tests/cxx/t-cxx11.cc: Likewise.

	* gmpxx.h (operator""): New functions.
	* tests/cxx/t-cxx11.cc: Test the above.
	* doc/gmp.texi: Document the above.

2012-03-08 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* acinclude.m4 (GMP_H_ANSI): Remove.
	* configure.in: Don't use GMP_H_ANSI.
	* gmp-h.in (__GMP_HAVE_PROTOTYPES): Remove.

2012-03-08  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fat/fat.c (fake_cpuid_table): Recognise "bulldozer".
	(__gmpn_cpuvec_init): Overhaul to match configure.in.

	* configure.in: Adjust bulldozer path_64.

2012-03-07  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (x86_64 fat_path): List recently added AMD directories.

	* mpn/x86_64/bobcat/copyi.asm: New file.
	* mpn/x86_64/bobcat/copyd.asm: New file.

	* config.guess: Handle AMD 11h correctly.

	* tune/tuneup.c (tune_redc): Better handle situation where redc_2 is
	never faster.

2012-03-06  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/bobcat/mul_basecase.asm: New file.

2012-03-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/bobcat/mul_1.asm: New file.
	* mpn/x86_64/bobcat/aorsmul_1.asm: New file.

2012-03-04 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/invert.c: Remove mod 0 branch.
	* tests/mpz/t-invert.c: Avoid testing mod 0.
	* doc/gmp.texi (mpz_invert): Specify mod 0 is not handled.

	* gmp-h.in (__gmp_signed, __gmp_const): Remove.
	(__GMP_HAVE_TOKEN_PASTE, __GMP_HAVE_CONST): Remove.
	* gmp-impl.h: Strip __GMP_HAVE_TOKEN_PASTE and __GMP_HAVE_CONST.
	* demos/expr/: Strip __gmp_const usage from all files.

	* tests/mpz/t-powm.c (allsizes_seen): Require unsigned*.

2012-03-03  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/k8/gmp-mparam.h: New file.
	* mpn/x86_64/k10/gmp-mparam.h: New file.

	* mpn/generic/hgcd_step.c (mpn_hgcd_step): Remove unused variables.
	* mpn/generic/hgcd_jacobi.c (hgcd_jacobi_step): Likewise.
	* mpn/generic/hgcd_reduce.c (hgcd_matrix_apply): Likewise.
	* mpn/generic/mu_bdiv_qr.c: Likewise.
	* mpz/jacobi.c: Likewise.
	* mpz/mod.c: Likewise.

	* mpn/generic/toom42_mul.c: Remove unread variable.
	* mpn/generic/set_str.c (mpn_set_str_compute_powtab): Likewise.
	* mpn/generic/rootrem.c (mpn_rootrem_internal): Likewise.
	* tests/refmpn.c (refmpn_mul): Likewise.
	* mpn/generic/hgcd_appr.c (mpn_hgcd_appr): Propagate mask computation
	into ASSERT, remove variable.

	* gmp-h.in (__GMP_PROTO): Remove.
	* Strip __GMP_PROTO usage from all files.
	* Strip prototype parameter names from all files.

2012-03-01 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* doc/gmp.texi (mpz_invert): Correctly document result range.
	* tests/mpz/t-invert.c: Small range correction.

2012-03-01  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/mullo_basecase.asm: New file.

2012-02-29  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (std::numeric_limits): New partial specialization.

2012-02-29  Niels Möller  <nisse@lysator.liu.se>

	* mini-gmp/tests/t-reuse.c: New test case, based on
	tests/mpz/reuse.c.

	* mini-gmp/mini-gmp.c (mpz_cdiv_r_ui): New function.
	(mpz_fdiv_r_ui): New function.
	(mpz_tdiv_r_ui): New function.
	(mpz_powm_ui): New function.
	(mpz_pow_ui): New function.
	(mpz_ui_pow_ui): Use mpz_pow_ui.
	(mpz_gcdext): Fixed input/output overlap, for the case of one
	input being zero.
	(mpz_sqrtrem): Fix for the case r NULL, U zero.

	* Makefile.am (check-mini-gmp): Use $(MAKE).
	(clean-mini-gmp): New target.
	(clean-local, distclean-local): New automake targets. Depend on
	clean-mini-gmp.

2012-02-28  Niels Möller  <nisse@lysator.liu.se>

	* Makefile.am (check-mini-gmp): New target, for running the
	mini-gmp testsuite.

	* mini-gmp/tests/Makefile (srcdir, MINI_GMP_DIR): New make
	variables. These can be overridden when using a separate build
	directory.
	(EXTRA_CFLAGS): Renamed, was OPTFLAGS.

	* mini-gmp/mini-gmp.c (mpz_abs_add): Don't cache limb pointers
	over MPZ_REALLOC, since that breaks in-place operation. Bug
	spotted by Torbjörn.
	(mpz_and, mpz_ior, mpz_xor): Likewise.
	(mpz_cmp): Fixed comparison of negative numbers.

2012-02-27  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fastsse/lshiftc.asm: New file.
	* mpn/x86_64/fastsse/com.asm: New file.

	* mpn/x86_64/bd1/popcount.asm: New file.
	* mpn/x86_64/bd1/hamdist.asm: New file.

	* mpn/x86_64/fastsse/copyi.asm: New file.
	* mpn/x86_64/fastsse/copyd.asm: New file.
	* mpn/x86_64/fastsse/lshift.asm: New file.

2012-02-26  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreisbr/addmul_2.asm: New file.

	* tests/devel/try.c (param_init): Don't require addmul_N to handle
	overlap.

	* mpn/x86_64/bd1/mul_1.asm: New file.
	* mpn/x86_64/bd1/aorsmul_1.asm: New file.

2012-02-26 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/2fac_ui.c: New file: implements n!!.
	* Makefile.am (MPZ_OBJECTS): Add mpz/2fac_ui.
	* gmp-h.in: Declare mpz_2fac_ui.
	* tests/mpz/t-fac.c: Test mpz_2fac_ui.
	* doc/gmp.texi: Document mpz_2fac_ui.
	* mpz/Makefile.am (libmpz_la_SOURCES): Add 2fac_ui.c.

	* mpz/oddfac_1.c (mpz_oddfac_1): Use umul_ppmm when size = 2.

2012-02-26  Niels Möller  <nisse@lysator.liu.se>

	* mini-gmp: New subdirectory. For use by GMP bootstrap, and as a
	fallback for applications needing bignums but not high
	performance.

	* bootstrap.c: New file, replacing dumbmp.c. Uses mini-gmp for the
	standard GMP functions, and then defines the few functions
	particular for the bootstrap.
	* dumbmp.c: Deleted file. A few functions moved to bootstrap.c.

	* gen-bases.c: Include bootstrap.c, not dumbmp.c.
	* gen-fac_ui.c: Likewise.
	* gen-trialdivtab.c: Likewise.
	* gen-fib.c: Include bootstrap.c, not dumbmp.c. Use assert rather
	than ASSERT. Deleted casts of xmalloc return value.
	* gen-psqr.c: Likewise.
	(COLLAPSE_ELEMENT): Use memmove rather than mem_copyi.

	* Makefile.am: Replaced all uses of dumbmp.c by bootstrap.c.
	(EXTRA_DIST, dist-hook): Arrange for distribution of the mini-gmp
	files.

2012-02-24 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/invert.c: Use ABSIZ, MPZ_EQUAL_1_P.
	* mpz/abs.c: Collapse MPZ_REALLOC(x,.) and PTR(x).
	* mpz/aors_ui.h: Likewise.
	* mpz/com.c: Likewise.
	* mpz/neg.c: Likewise.

	* mpz/invert.c: Reply "no-inverse" when modulus is zero.
	* tests/mpz/t-invert.c: Add more checks.
	* doc/gmp.texi (mpz_invert): Inverse can not be zero.

2012-02-24  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpn/logic.c: New file.
	* tests/mpn/Makefile.am (check_PROGRAMS): Add logic.

	* tests/mpz/t-invert.c: New file.
	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-invert.

2012-02-24  Marc Glisse  <marc.glisse@inria.fr>

	* tests/mpq/t-cmp.c: Move NUM and DEN macros...
	* tests/mpq/t-cmp_ui.c: Likewise...
	* gmp-impl.h: ... to here.

	* mpq/abs.c: Use NUM, DEN, SIZ, ALLOC, PTR, MPZ_REALLOC.
	* mpq/aors.c: Likewise.
	* mpq/canonicalize.c: Likewise.
	* mpq/clear.c: Likewise.
	* mpq/cmp.c: Likewise.
	* mpq/cmp_si.c: Likewise.
	* mpq/cmp_ui.c: Likewise.
	* mpq/div.c: Likewise.
	* mpq/equal.c: Likewise.
	* mpq/get_d.c: Likewise.
	* mpq/get_den.c: Likewise.
	* mpq/get_num.c: Likewise.
	* mpq/get_str.c: Likewise.
	* mpq/init.c: Likewise.
	* mpq/inp_str.c: Likewise.
	* mpq/inv.c: Likewise.
	* mpq/md_2exp.c: Likewise.
	* mpq/mul.c: Likewise.
	* mpq/neg.c: Likewise.
	* mpq/set.c: Likewise.
	* mpq/set_d.c: Likewise.
	* mpq/set_den.c: Likewise.
	* mpq/set_f.c: Likewise.
	* mpq/set_num.c: Likewise.
	* mpq/set_si.c: Likewise.
	* mpq/set_str.c: Likewise.
	* mpq/set_ui.c: Likewise.
	* mpq/set_z.c: Likewise.
	* mpq/swap.c: Likewise.

	* tests/mpq/t-inv.c: New test file.
	* tests/mpq/Makefile.am: Add the above.

	* gmpxx.h (__gmp_set_expr): Use mpq_set_z.

	* mpq/md_2exp.c: Collapse MPZ_REALLOC(x,.) and PTR(x).
	* mpq/set_d.c: Likewise.
	* mpq/set_f.c: Likewise.

2012-02-24  Niels Möller  <nisse@lysator.liu.se>

	* mpn/x86_64/core2/aorsmul_1.asm: Added mpn_addmul_1c and
	mpn_submul_1c entry points.

2012-02-23  Marc Glisse  <marc.glisse@inria.fr>

	* mpz/abs.c: Use ALLOC, SIZ, ABSIZ, PTR, MPZ_REALLOC.
	* mpz/aors_ui.h: Likewise.
	* mpz/array_init.c: Likewise.
	* mpz/cdiv_q.c: Likewise.
	* mpz/cdiv_qr.c: Likewise.
	* mpz/cdiv_r.c: Likewise.
	* mpz/clear.c: Likewise.
	* mpz/clrbit.c: Likewise.
	* mpz/cmp_si.c: Likewise.
	* mpz/com.c: Likewise.
	* mpz/fdiv_q.c: Likewise.
	* mpz/fdiv_qr.c: Likewise.
	* mpz/fdiv_r.c: Likewise.
	* mpz/get_si.c: Likewise.
	* mpz/get_str.c: Likewise.
	* mpz/init.c: Likewise.
	* mpz/inp_str.c: Likewise.
	* mpz/iset.c: Likewise.
	* mpz/iset_d.c: Likewise.
	* mpz/iset_si.c: Likewise.
	* mpz/iset_str.c: Likewise.
	* mpz/iset_ui.c: Likewise.
	* mpz/mod.c: Likewise.
	* mpz/neg.c: Likewise.
	* mpz/out_str.c: Likewise.
	* mpz/random2.c: Likewise.
	* mpz/set_si.c: Likewise.
	* mpz/set_str.c: Likewise.
	* mpz/set_ui.c: Likewise.
	* mpz/setbit.c: Likewise.
	* mpz/sqrt.c: Likewise.
	* mpz/swap.c: Likewise.
	* mpz/tdiv_r_2exp.c: Likewise.

	* tests/cxx/t-ops.cc: Test mpz_abs reallocation.

2012-02-23  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/core2/rsh1aors_n.asm: Complete rewrite.
	* mpn/x86_64/coreisbr/rsh1aors_n.asm: Move old core2 code here.

	* mpn/x86_64/redc_1.asm: Make it work for DOS64 (broken in last edit).

2012-02-20 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/toom_interpolate_8pts.c: Compute carry iif non-trivial.

	* mpz/gcdext.c: Adapt to relaxed mpn_gcdext's input requirements.

	* mpz/and.c: Use mpn_ logic everywhere. Reduce branches.
	* mpz/ior.c: Likewise.
	* mpz/xor.c: Likewise.

2012-02-20  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreisbr/mul_1.asm: New file.

	* mpn/x86_64/coreisbr/aorsmul_1.asm: New file.

	* mpn/x86_64/mod_34lsub1.asm: Avoid ",pt" branch hint since many
	assemblers don't support it.

2012-02-19  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/redc_1.c: Put back mpn_add_n call, return its carry.
	Reintroduce previously removed RP argument.
	* mpn/x86_64/redc_1.asm: Likewise.

	* mpn/generic/redc_2.c:  Remove mpn_sub_n call, return carry from
	mpn_add_n call.

	* gmp-impl.h (mpn_redc_1, mpn_redc_2): Now return an mp_limb_t.

	* tune/speed.h (SPEED_ROUTINE_REDC_1): Adopt to pass RP argument.

	* tests/refmpn.c (refmpn_redc_1): Adopt to new redc_1 interface.

	* mpn/generic/powm.c (MPN_REDC_1): Pass rp parameter to mpn_redc_1.
	* mpn/generic/powm_sec.c (MPN_REDC_1_SEC): Likewise.
	* mpn/generic/powm.c (MPN_REDC_2): New macro, use for mpn_redc_2.

2012-02-18  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (std::common_type): New partial specialization in C++11.
	* tests/cxx/t-cxx11.cc: Test it.

	* gmpxx.h: Don't declare long double functions that are never defined.

	* gmpxx.h (__gmp_binary_expr): Let things happen in place: q=q*q+z*z
	becomes tmp=z*z, q=q*q, q+=tmp.
	* tests/cxx/t-binary.cc: More variable reuse tests.

2012-02-17  Marc Glisse  <marc.glisse@inria.fr>

	* gmp-h.in (__GMP_WITHIN_GMP): Test with #ifdef instead of #if, for
	the benefit of applications using gcc -Wundef.
	(__GMP_WITHIN_GMPXX): Likewise.

2012-02-16  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (__gmp_binary_expr): Let things happen in place: e=a*b-c*d
	becomes tmp=c*d, e=a*b, e-=tmp.
	* tests/cxx/t-binary.cc: More variable reuse tests.

2012-02-15  Niels Möller  <nisse@lysator.liu.se>

	* tune/tuneup.c (mul_toom43_to_toom54_threshold): New global.
	(tune_mul): Added tuning of MUL_TOOM43_TO_TOOM54_THRESHOLD.
	* tune/speed.h (SPEED_ROUTINE_MPN_TOOM43_FOR_TOOM54_MUL): New macro.
	(SPEED_ROUTINE_MPN_TOOM54_FOR_TOOM43_MUL): New macro.
	Prototypes for corresponding functions.
	* tune/common.c (speed_mpn_toom43_for_toom54_mul): New function.
	(speed_mpn_toom54_for_toom43_mul): New function.

	* gmp-impl.h (MPN_TOOM43_MUL_MINSIZE): Corrected constant.
	(MPN_TOOM53_MUL_MINSIZE): Likewise.
	(MPN_TOOM54_MUL_MINSIZE): New constant.
	(mpn_toom54_mul): Added prototype.
	(MUL_TOOM43_TO_TOOM54_THRESHOLD): New threshold. Default value and
	tuning setup.

2012-02-14  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/toom54_mul.c: New file, originally contributed by
	Marco.
	* gmp-impl.h (mpn_toom54_mul_itch): New function.
	* configure.in (gmp_mpn_functions): Added toom54_mul.
	* tests/mpn/t-toom54.c: New file.
	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-toom54.

2012-02-13  Niels Möller  <nisse@lysator.liu.se>

	* configure.in: Display summary of options.

2012-02-11  Torbjorn Granlund  <tege@gmplib.org>

	* tests/tests.h (TESTS_REPS): Print any non-standard repetitions.

2012-02-11 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* doc/gmp.texi (Factorial): Shortly describe current algorithm.
	(Multiplication Algorithms): Add Toom[68]'n'half, (too) shortly.
	* gmp-impl.h (ASSERT_ALWAYS): Consider failures UNLIKELY.

2012-02-10  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpz/t-gcd.c (gcdext_valid_p): Enforce slightly stricter
	bound for cofactors.

	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_hook): Corrected
	handling of unlikely (maybe impossible?) case u1n < un. Related to
	the 2012-02-05 bugfix of gcdext_subdiv_step.c in the gmp-5.0 repo.

2012-02-09 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gmp-impl.h (mpn_toom3*_itch): Support any recursion depth.
	* tests/refmpn.c (refmpn_mul): Restore tight allocations.

	* mpz/oddfac_1.c (mpz_oddfac_1): Get ready for n!!
	* gmp-impl.h (mpz_oddfac_1): Update signature.
	* mpz/fac_ui.c (mpz_fac_ui): Update call to mpz_oddfac_1.

2012-02-09  Marc Glisse  <marc.glisse@inria.fr>

	* gmp-impl.h (ABS_CAST): New macro.
	* mpf/cmp_si.c: Use ABS_CAST.
	* mpf/get_si.c: Use ABS_CAST.
	* mpf/iset_si.c: Use ABS_CAST.
	* mpf/set_si.c: Use ABS_CAST.
	* mpq/set_si.c: Use ABS_CAST.
	* mpz/cmp_si.c: Use ABS_CAST.
	* mpz/get_si.c: Use ABS_CAST.
	* mpz/iset_si.c: Use ABS_CAST.
	* mpz/mul_i.h: Use ABS_CAST.
	* mpz/set_si.c: Use ABS_CAST.

2012-02-08  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc32/divrem_2.asm: Fix off-by-one condition in invert_limb
	code.

2012-02-08  Niels Möller  <nisse@lysator.liu.se>

	* doc/gmp.texi (mpz_gcdext): Clarified corner cases in cofactor
	canonicalization.

2012-02-07  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/gcdext.c (mpn_gcdext): Fixed assert, related to the
	special case A = (2k+1) G, B = 2 G. Fix copied from gmp-5.0 repo.

2012-02-06  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/hgcd_matrix.c (hgcd_matrix_update_q): Fixed carry
	handling bug. Fix copied from gmp-5.0 repo, where the function is
	found in hgcd.c.

	* tests/mpz/t-gcd.c (main): Use mpz_rrandomb for test operands,
	not mpz_urandomb. Change copied from gmp-5.0 repo.
	* tests/mpn/t-hgcd.c (main): Likewise.

2012-02-04 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/refmpn.c (refmpn_mul): More conservative allocations.

2012-02-03  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/bd1/gmp-mparam.h: New file.

	* longlong.h (udiv_qrnnd from sdiv_qrnnd): Declare udiv_w_sdiv.

	* mpn/generic/udiv_w_sdiv.c: Use c89 function header.

2012-02-03 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/fac_ui.c: mpz_oddfac_1 removed, with many related functions.
	* mpz/oddfac_1.c: New file, mpz_oddfac_1 implementation.
	* gmp-impl.h: mpz_oddfac_1 declaration.
	* Makefile.am (MPZ_OBJECTS): add mpz/oddfac_1$U.lo .
	* mpz/Makefile.am (libmpz_la_SOURCES): add oddfac_1.c .
	* tune/Makefile.am (fac_ui.c): include mpz/oddfac_1.c .

2012-02-02 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/toom_interpolate_16pts.c: Correct an unlikely 32-bit bug.

2012-02-02  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/toom63_mul.c: Allow s+t==n by adjusting an ASSERT.
	* mpn/generic/toom_interpolate_8pts.c: Perform final incr iff s+t!=n.

	* tests/mpn/t-toom6h.c (MIN_BN): Make more consistent with ASSERT in
	tested function.

2012-02-01  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpn/t-mul.c: New file.
	* tests/mpn/Makefile.am: Compile it.

2012-02-01  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h: Remove check for g++ older than 2.91.

2012-02-01  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/mul.c: Added diagram on where toom functions can be
	called.

2012-02-01  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (__gmp_unary_expr): Make the constructor explicit.
	(__gmp_expr(__gmp_expr&&)): New move constructors.
	(__gmp_expr::operator=(__gmp_expr&&)): New move assignments.
	(swap): Mark as noexcept.
	(__GMPXX_USE_CXX11): New macro.
	(__GMPXX_NOEXCEPT): New macro.
	* tests/cxx/t-cxx11.cc: New file.
	* tests/cxx/Makefile.am: Added t-cxx11.

2012-01-31  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/powm_sec.c (SQR_BASECASE_LIM): New name for
	SQR_BASECASE_MAX.
	(SQR_BASECASE_LIM, fat variant): Define to read __gmpn_cpuvec.
	(SQR_BASECASE_LIM, native variant): Define to SQR_TOOM2_THRESHOLD
	straight, without arithmetic.
	(mpn_local_sqr): Use BELOW_THRESHOLD as per Marco's suggestion.

2012-01-30  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz/t-powm.c: Ensure all sizes are seen.

2012-01-30  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (__gmp_binary_expr): Let things happen in place: d=a+b+c
	when d != c.
	* tests/cxx/t-binary.cc: Test variable reuse: c=a+b+c.

2012-01-28  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h: Don't compute -LONG_MIN.

	* doc/gmp.texi (gmp_randclass::get_z_bits): Use mp_bitcnt_t.
	* gmpxx.h: Replace unsigned long with mp_bitcnt_t.

2012-01-27  Torbjorn Granlund  <tege@gmplib.org>

	* Upgrade to libtool 2.4.2.

2012-01-26 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/mpz/t-fac_ui.c: Increase default test cases.

	* mpz/prodlimbs.c: New file, mpz_prodlimbs implementation.
	* gmp-impl.h: mpz_prodlimbs declaration.
	* Makefile.am (MPZ_OBJECTS): add mpz/prodlimbs$U.lo .
	* mpz/Makefile.am (libmpz_la_SOURCES): add prodlimbs.c .
	(fac_ui.h): remove target (moved up one directory).
	* mpz/fac_ui.c: mpz_prodlimbs removed, micro-optimisations.

2012-01-25  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c: Remove unused tuneup variables.

2012-01-20 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/fac_ui.c: Reduce branches in basecases.

2012-01-18  Marc Glisse  <marc.glisse@inria.fr>

	* doc/gmp.texi (mpf_class::mpf_class): Use mp_bitcnt_t.

2012-01-17  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Add ultrasparc T4 support.

	* demos/isprime.c (main): Run 25 millerrabin tests.

2012-01-16 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/fac_ui.c (SIEVE_SEED): Define value for small limb size.
	(mpz_oddswing_1): Reduce the number of divisions.
	(mpz_oddfac_1): Reduce memory usage.
	* mpn/minithres/gmp-mparam.h: Correct minimum for FAC_DSC_.
	* tune/tuneup.c (tune_fac_ui): Likewise.

2012-01-15  Niels Möller  <nisse@lysator.liu.se>

	* mpz/scan0.c (mpz_scan0): Use ~(mp_bitcnt_t) 0, rather than
	ULONG_MAX, when returning "infinity".
	* mpz/scan1.c (mpz_scan1): Likewise.

2012-01-12  Torbjorn Granlund  <tege@gmplib.org>

	* tests/t-popc.c: Test longer bit strings.

2012-01-12 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/divexact.c: Tight realloc, delayed if variables are reused.
	* mpz/lcm.c: Smaller temp space, avoid goto.
	* gmp-impl.h (popc_limb): avoid double & (for 8-bits limb).

2012-01-10 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/minithres/gmp-mparam.h: New FAC_ODD_ and FAC_DSC_ thresholds.
	* tune/tuneup.c (tune_fac_ui): Correct minimum for FAC_DSC_.

2012-01-07  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/mul_2exp.c: Rewrite.
	* mpz/tdiv_q_2exp.c: Rewrite.

2012-01-05 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gen-fac_ui.c: Remove currently unused constants; add new odd
	double factorial table.
	* mpz/fac_ui.c (RECURSIVE_PROD_THRESHOLD): Increase default.
	(mpz_oddfac_1): New function: a merge of _bc_odd and _dsc_odd.
	(mpz_prodlimbs): More in-place computations.

	* tune/tuneup.c (tune_fac_ui): min_is_always for FAC_ODD_.

2012-01-02 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tune/tuneup.c (tune_fac_ui): Compute FAC_DSC before FAC_ODD.

2011-12-31  Torbjorn Granlund  <tege@gmplib.org>

	* Makefile.am (fac_ui.h): Put file in top-level dir, not in mpz.

2011-12-31 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tune/Makefile.am (fac_ui.c): New target.
	(nodist_tuneup_SOURCES,CLEANFILES): Add fac_ui.c.
	* tune/tuneup.c (mpz_fac_ui_tune): Declare prototype.
	(fac_odd_threshold,fac_dsc_threshold): New global variables.
	(speed_mpz_fac_ui_tune,tune_fac_ui): New functions.
	(all): Call tune_fac_ui.
	* gmp-impl.h (FAC_ODD_THRESHOLD,FAC_DSC_THRESHOLD):
	New thresholds: default values, and setup for tuning.
	(FAC_DSC_THRESHOLD_LIMIT): Define (when tuning).
	* mpz/fac_ui.c (FAC_ODD_THRESHOLD,FAC_DSC_THRESHOLD):
	Default values removed.

2011-12-30  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/hamdist.c: Fix typo in a return statement.

	* mpn/generic/powm_sec.c (SQR_BASECASE_MAX): Set safely from
	SQR_TOOM2_THRESHOLD.

2011-12-17  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz/t-perfpow.c: Decrease default # of tests.

2011-12-16  Torbjorn Granlund  <tege@gmplib.org>

	* tests/refmpn.c (AORS_1): Fix typo in variable type.

2011-12-10  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/sbpi1_bdiv_q.c: Delay quotient limb stores in order to
	allow quotient and dividend to completely overlap.
	* mpn/generic/sbpi1_bdiv_qr.c: Likewise.

2011-12-10 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/fac_ui.c: fac_bc_ui inlined in fac_ui.

2011-12-08  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/powm_sec.c: Handle fat binaries better.

	* mpz/fac_ui.c (mpz_bc_fac_1): Fix typo in allocation size.

	* mpn/x86/fat/com.c: New file.

	* mpn/x86_64/pentium4/aors_n.asm: Make it actually work for DOS64.
	* mpn/x86_64/pentium4/rsh1aors_n.asm: Conditionalise jump on DOS64
	to avoid overhead for standard ABIs.

	* mpn/x86_64/gcd_1.asm: Support DOS64.

2011-12-07  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Fix typo making HAVE_NATIVE_mpn_X fail for fat
	functions.

	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Add a missing break.

2011-12-07 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gen-fac_ui.c: Generate two more tables: odd factorial, swing.

	* mpz/fac_ui.c: Rewrite.

2011-12-06  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/hgcd.c (mpn_hgcd): Use hgcd_reduce for first
	recursive call.

2011-12-06  Torbjorn Granlund  <tege@gmplib.org>

	* tune/mod_1_1-1.c: Redefine the mpn_ functions, not __gmpn_ (for the
	benefit of fat builds).
	* tune/mod_1_1-2.c: Likewise.

2011-12-05  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/fat/lshiftc.c: New file.
	* mpn/x86/fat/mod_1_1.c: New file.
	* mpn/x86/fat/mod_1_2.c: New file.
	* mpn/x86/fat/mod_1_4.c: New file.

	* mpn/x86/fat/diveby3.c: Remove no longer fat function.
	* mpn/x86_64/fat/diveby3.c: Likewise.

	* mpn/x86_64/fat/gcd_1.c: Remove since always provided as asm.
	* mpn/x86_64/fat/mode1o.c: Likewise.

	* configure.in (fat_functions): Update to more relevant function set.
	Add special handling for mod_1_N_cps functions.
	* gmp-impl.h (struct cpuvec_t) : Corresponding changes.  Also add
	vrious declarations for new functions.
	* mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): Corresponding changes.
	* mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): Corresponding changes.
	* mpn/x86/fat/fat.c (__gmpn_cpuvec): Corresponding changes.
	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec): Corresponding changes.

	* mpn/x86_64: Port most remaining x86_64 files to DOS64.

	* mpn/x86_64/coreisbr/aors_n.asm: Add forgotten DOS64_EXIT.

	* mpn/x86_64/x86_64-defs.m4 (LEA): Handle non-PIC code.
	* mpn/x86_64/darwin.m4 (LEA): Likewise.

2011-12-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fat/fat.c (MAKE_FMS): Rewrite to handle modern CPUs.
	* mpn/x86/fat/fat.c (MAKE_FMS): Likewise.

	* mpn/x86_64/darwin.m4 (PROTECT): Define to potentially useful value.

2011-12-02  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/invert_limb_table.asm: Use PROTECT.
	* mpn/x86_64/invert_limb.asm: Likewise.

	* mpn/x86_64/darwin.m4 (PROTECT, IFELF): New defines.
	* mpn/x86_64/dos64.m4 (PROTECT, IFELF): New defines.
	* mpn/x86_64/x86_64-defs.m4 (PROTECT, IFELF): New defines.

2011-12-01  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fat/fat.c: Copy fake cpuid code from x86/fat/fat.c.

	* mpn/x86_64 (STD64, IFSTD): New names for ELF64, IFELF (since these
	denote all standard calling conventions).

	* mpn/x86_64: Add DOS64 ABI support to more files.

	* mpn/x86_64/mod_1_1.asm: Finish DOS64 support.
	* mpn/x86_64/mod_1_2.asm: Likewise.
	* mpn/x86_64/mod_1_4.asm: Likewise.

	* configure.in: Add GMP_NONSTD_ABI also for fat builds.

	* mpn/x86_64/fat/fat_entry.asm: Rewrite to support DOS64.

	* mpn/x86_64/dos64.m4 (IFDOS, IFSTD): New defines.
	* mpn/x86_64/x86_64-defs (IFDOS, IFSTD): New defines.

	* mpn/x86_64/dive_1.asm: Add DOS64 ABI support.
	* mpn/x86_64/mode1o.asm: Likewise.

	* mpn/x86_64/mod_34lsub1.asm: Enable for DOS64.

	* mpn/x86_64/invert_limb.asm: Wrap .protected decl.

	* gmp-impl.h (DECL_divexact_1): Fix typo in return type.

	* mpn/x86_64/dos64.m4 (LEA): New define.
	(PIC): Define.

2011-11-29  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64: Add DOS64 ABI support to most files.

2011-11-28  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/mul_basecase.asm: Support ABI DOS64.
	* mpn/x86_64/sqr_basecase.asm: Support ABI DOS64.
	* mpn/x86_64/aorsmul_1.asm: Support ABI DOS64.
	* mpn/x86_64/mul_1.asm: Support ABI DOS64.

	* mpn/x86_64/x86_64-defs.m4 (DOS64_ENTRY, DOS64_EXIT): New, empty defs.

	* mpn/x86_64/dos64.m4: New file.

	* mpn/asm-defs.m4 (ABI_SUPPORT): New dummy macro.

	* configure.in (64-bit mingw/cygwin): Define HOST_DOS64,GMP_NONSTD_ABI.
	No longer clear out path_64.
	(mpn code selection loop): Handle GMP_NONSTD_ABI.

	* mpn/generic/udiv_w_sdiv.c: Use CNST_LIMB for some constants.

2011-11-25  Torbjorn Granlund  <tege@gmplib.org>

	* x86/*: Many new gmp-mparam.h file for 64-bit CPUs in 32-bit mode.

	* configure.in: Overhaul x86/x86_64 support, merging three case
	statements into one.

2011-11-24  Torbjorn Granlund  <tege@gmplib.org>

	* doc/gmp.texi (Formatted Output Strings): Clarify rules for mpf_t
	precision.

	* mpn/powerpc32/p7/gmp-mparam.h: New file.

	* tune/tuneup.c (tune_mu_div, tune_mu_bdiv): Up min_size to karatsuba's
	threshold.

2011-11-22  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/mode64/p6/aorsmul_1.asm: New file.

	* configure.in: Don't fail fat builds under 64-bit DOS.

	* mpn/powerpc64/mode64/aors_n.asm: Align loop for slightly better
	power5 performance.

2011-11-21  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-h.in (__GNU_MP_RELEASE): Renamed from typo name.

2011-11-20  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Split x86 CPUs into more subtypes for more accurate
	passing of gcc flags.

	* mpn/powerpc32/p3-p7/aors_n.asm: New file.

	* configure.in: Pass -m32 for powerpc64 with abi=32, using via _maybe
	mechanism.

	* configure.in: Support powerpc32/p3-p7 directory for affected CPUs.

2011-11-17  Torbjorn Granlund  <tege@gmplib.org>

	* tune/speed.c (routine): Add mpn_tabselect.
	* tune/common.c (speed_mpn_tabselect): New function.
	* tune/speed.h (SPEED_ROUTINE_MPN_COPY_CALL): New macro, made from
	old SPEED_ROUTINE_MPN_COPY.
	(SPEED_ROUTINE_MPN_COPY): Just invoke SPEED_ROUTINE_MPN_COPY_CALL.
	(SPEED_ROUTINE_MPN_TABSELECT): New macro.

2011-11-17  Niels Möller  <nisse@lysator.liu.se>

	* tune/tuneup.c (tune_hgcd_appr): Increase stop_since_change.

2011-11-16  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc32/tabselect.asm: New file.

	* mpn/powerpc64/mode64/aorscnd_n.asm: New file.

2011-11-15  Niels Möller  <nisse@lysator.liu.se>

	* tune/speed.h (speed_mpn_hgcd_appr_lehmer): New prototype.
	(mpn_hgcd_lehmer_itch): Likewise.
	(mpn_hgcd_appr_lehmer): Likewise.
	(mpn_hgcd_appr_lehmer_itch): Likewise.
	(MPN_HGCD_LEHMER_ITCH): Deleted macro.

	* tune/speed.c (routine): Added mpn_hgcd_appr_lehmer.

	* tune/common.c (speed_mpn_hgcd_lehmer): Use mpn_hgcd_lehmer_itch
	rather than similarly named macro.
	(speed_mpn_hgcd_appr_lehmer): New function.

	* tune/Makefile.am (libspeed_la_SOURCES): Added
	hgcd_appr_lehmer.c.

	* tune/hgcd_appr_lehmer.c: New file.

	* tune/tuneup.c (tune_hgcd_appr): Increased min_size to 50; some
	machines got small thresholds which appear to be bogus.

2011-11-15  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/powm_sec.c (mpn_local_sqr): Remove forgotten TMP_* calls.
	(redcify): Likewise.
	(mpn_powm_sec): Likewise.

	* mpn/generic/powm_sec.c (mpn_powm_sec): Rework scratch usage
	(mpn_powm_sec_itch): Rewrite.

	* mpn/generic/powm_sec.c (mpn_powm_sec): Use mpn_tabselect also in
	initialisation.

	* configure.in: Amend 2011-11-03 gcc_cflags change.

	* mpn/powerpc64/tabselect.asm: New file.
	* mpn/x86_64/tabselect.asm: New file.
	* mpn/x86/tabselect.asm: New file.
	* mpn/ia64/tabselect.asm: New file.

	* mpn/asm-defs.m4 (define_mpn): Add tabselect.

	* configure.in (gmp_mpn_functions): Add tabselect.
	(HAVE_NATIVE): Add entries for addncd_n, subcnd_n, tabselect.

	* mpn/generic/powm_sec.c: Remove mpn_tabselect implementation.
	* mpn/generic/tabselect.c: New file with removed code.

2011-11-13  Torbjorn Granlund  <tege@gmplib.org>

	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add powm_sec.c.

	* mpn/generic/powm_sec.c (win_size): Use POWM_SEC_TABLE
	(POWM_SEC_TABLE): Define default.

	* tune/tuneup.c (tune_powm_sec): New function computing POWM_SEC_TABLE.
	(all): Call new function.

	* mpn/generic/powm_sec.c (win_size): Define only when
	TUNE_PROGRAM_BUILD is not set.

2011-11-13  Niels Möller  <nisse@lysator.liu.se>

	* tune/tuneup.c (tune_hgcd_appr): Use default min_size.
	(tune_hgcd_reduce): Increase max_size and step_factor, to 7000
	and 0.04, respectively.

2011-11-11  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/mode64/sqr_diag_addlsh1.asm: Remove.

2011-11-11  Niels Möller  <nisse@lysator.liu.se>

	* tune/hgcd_reduce_2.c: New file.
	* tune/hgcd_reduce_1.c: New file.

	* tune/tuneup.c (hgcd_appr_threshold): New threshold variable.
	(hgcd_reduce_threshold): Likewise.
	(tune_hgcd_appr): New function.
	(tune_hgcd_reduce): New function.
	(all): Call tune_hgcd_appr and tune_hgcd_reduce.

	* tune/speed.h (speed_mpn_hgcd_reduce): Declaration.
	(speed_mpn_hgcd_reduce_[12]): Likewise.
	(mpn_hgcd_reduce_[12]): Likewise.
	(SPEED_ROUTINE_MPN_HGCD_REDUCE_CALL): New macro.

	* tune/speed.c (routine): Added mpn_hgcd_reduce,
	mpn_hgcd_reduce_1, and mpn_hgcd_reduce_2.

	* tune/common.c (speed_mpn_hgcd_reduce): New function.
	(speed_mpn_hgcd_reduce_[12]): Likewise.

	* tune/Makefile.am (libspeed_la_SOURCES): Added hgcd_reduce_1.c
	hgcd_reduce_2.c.
	(TUNE_MPN_SRCS_BASIC): Added hgcd_appr.c and hgcd_reduce.c.

	* mpn/generic/hgcd_appr.c (submul, hgcd_matrix_apply): Deleted
	functions, earlier copied to hgcd_reduce.c.
	(mpn_hgcd_appr): Use hgcd_reduce.

2011-11-09  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/mode64/sqr_basecase.asm: New file.

	* mpn/x86_64/aorscnd_n.asm: New file.

	* tune/speed.c (routine): Add measuring of mpn_addcnd_n, mpn_subcnd_n.
	* tune/common.c (speed_mpn_addcnd_n,speed_mpn_subcnd_n): New functions.
	* tune/speed.h: Declare them.

	* tests/devel/try.c: Add tests for mpn_addcnd_n and mpn_subcnd_n.
	* tests/refmpn.c (refmpn_addcnd_n, refmpn_subcnd_n): New functions.
	* tests/tests.h: Declare them.

	* configure.in (gmp_mpn_functions): Add addcnd_n and subcnd_n.

2011-11-07  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/redc_1.c: Just reduce U operand using Hensel norm, but
	not fully canonically; leave add_n and conditional sub_n to caller.
	Therefore omit R argument.

	* mpn/generic/redc_1_sec.c: Remove.

	* gmp-impl.h (mpn_redc_1): Update declaration.
	(mpn_redc_1_sec): Remove declaration.

	* configure.in (gmp_mpn_functions): Remove redc_1.

	* mpn/x86_64/redc_1.asm: Adopt to new defined functionality/interface.
	* tune/speed.h (SPEED_ROUTINE_REDC_1): Likewise.

	* tests/refmpn.c (refmpn_redc_1): Likewise; also call refmpn_addmul_1
	instead of mpn_addmul_1.

	* mpn/generic/powm.c (MPN_REDC_1): New macro, use for mpn_redc_1.
	* mpn/generic/powm_sec.c (MPN_REDC_1_SEC): New macro, use for
	mpn_redc_1_sec.

2011-11-03  Torbjorn Granlund  <tege@gmplib.org>

	* dumbmp.c (mpz_sub): Abort for non-handled case.

	* mpn/powerpc64/mode64/lshiftc.asm: Move file from here...
	* mpn/powerpc64/lshiftc.asm: ...to here, with trivial modifications.

	* configure.in: Pass -m32 in more cases, using _maybe mechanism.
	Inherit default gcc_cflags in more places.

	* mpn/powerpc64/mode64/p7/gmp-mparam.h: New file.

2011-11-02  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/s390_64/invert_limb.asm: Slight optimisation.

	* configure.in (s390): Set gcc_32_cflags_maybe.

	* mpn/s390_32/gmp-mparam.h: Put in proper data.
	* mpn/s390_32/esame/gmp-mparam.h: New file.

	* mpn/x86_64/bobcat/gmp-mparam.h: New file.

	* mpn/s390_32/lshift.asm: New file.
	* mpn/s390_32/rshift.asm: New file.
	* mpn/s390_32/lshiftc.asm: New file.

2011-10-31  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/sqr_diagonal.asm: Move from here...
	* mpn/powerpc64/mode32/sqr_diagonal.asm: ...to here.

	* mpn/powerpc64/mode64/sqr_diag_addlsh1.asm: New file.

	* mpn/s390_64/sqr_basecase.asm: Rewrite sqr_diag_addlsh1 code.
	* mpn/s390_32/esame/sqr_basecase.asm: Likewise.

2011-10-29  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/s390_64/lshift.asm: Complete rewrite.
	* mpn/s390_64/rshift.asm: Likewise.

	* mpn/s390_64/lshiftc.asm: New file.

2011-10-28  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/s390_32/esame/aors_n.asm: New file, with rewritten add/sub code.

2011-10-27  Torbjorn Granlund  <tege@gmplib.org>

	From Per Olofsson:
	* gmp-impl.h (BSWAP_LIMB): Rename variable to avoid BSWAP_LIMB_FETCH
	clash.

	* mpn/s390_32/esame/mul_basecase.asm: New file.

	* mpn/s390_32/esame/sqr_basecase.asm: New file.

	* mpn/s390_32/logops_n.asm: New file.

	* mpn/s390_64/logops_n.asm: Fix rp=up code.  Remove a leftover insn.

2011-10-26  Niels Möller  <nisse@lysator.liu.se>

	* gmp-impl.h (mpn_hgcd_reduce, mpn_hgcd_reduce_itch): Added
	prototypes.
	(HGCD_APPR_THRESHOLD): Set up threshold for tuning.
	(HGCD_REDUCE_THRESHOLD): Likewise.

	* configure.in (gmp_mpn_functions): Added hgcd_reduce.

	* mpn/generic/hgcd_reduce.c: New file.

2011-10-24  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/sqr_basecase.asm: Put intermediate result into R, don't
	allocate any stack space.

2011-10-23  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/s390_64/logops_n.asm: Use nc, oc, xc when possible.

	* tune/common.c (speed_mpn_and_n, speed_mpn_andn_n, etc):
	Pass correct input args.

	* mpn/s390_64/mod_34lsub1.asm: Use llgfr for zero extensions.

	* mpn/s390_64/mul_basecase.asm: New file.

	* mpn/s390_64/sqr_basecase.asm: New file.
	* mpn/s390_64/sqr_diag_addlsh1.asm: Removed, lives on in sqr_basecase.

	* mpn/s390_64/bdiv_dbm1c.asm: Shave off 1 c/l.

	* mpn/s390_64/aorrlsh1_n.asm: New file, developed from aorslsh1_n.asm.
	* mpn/s390_64/sublsh1_n.asm: New file.
	* mpn/s390_64/aorslsh1_n.asm: Remove file.

2011-10-22  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/s390_64/logops_n.asm: New file.

	* mpn/s390_64/aors_n.asm: New file, with rewritten add/sub code.

2011-10-20  Torbjorn Granlund  <tege@gmplib.org>

	* tune/speed.h (SPEED_ROUTINE_MPN_SQR_DIAL_ADDLSH1_CALL): New macro.
	* tune/common.c (speed_mpn_sqr_diag_addlsh1): New function.
	* tune/speed.c (routine): Measure mpn_sqr_diag_addlsh1.

	* mpn/s390_64/sqr_diag_addlsh1.asm: Rewrite like s390_32/esame code.

	* mpn/s390_32/esame/sqr_diag_addlsh1.asm: Save just needed registers.

2011-10-19  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/s390_32/esame/add_n.asm: Rewrite, similar to s390_64 code.
	* mpn/s390_32/esame/add_n.asm: Likewise.

2011-10-17  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/s390_32/esame/aorslsh1_n.asm: New file.

2011-10-16  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/s390_32/esame/sqr_diag_addlsh1.asm: New file.

	* mpn/s390_32/copyi.asm: New file.
	* mpn/s390_32/copyd.asm: New file.

	* mpn/s390_64/copyd.asm: Optimise.

	* mpn/s390_64/copyi.asm: Rewrite along the lines of glibc memcpy.

	* mpn/s390_64/aorslsh1_n.asm: New file.

	* mpn/s390_64/mod_34lsub1.asm: New file.

	* mpn/s390_64/sqr_diag_addlsh1.asm: New file.

2011-10-15  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (s390): Rewrite support to handle known CPUs.
	* config.guess: Recognise s390 CPUs.
	* config.sub: Match s390 CPUs.
	* acinclude.m4 (S390_PATTERN, S390X_PATTERN): New defines.

2011-10-14  Torbjorn Granlund  <tege@gmplib.org>

	From Per Olofsson:
	* mpn/generic/popham.c: Add __GMP_NOTHROW to make it match gmp.h.
	* mpn/generic/gcd_1.c: Separate declarations and initialisers for the
	benefit of C++.

	* configure.in: AC_DEFINE HAVE_HOST_CPU_s390_zarch.
	* longlong.h (s390): Use it.
	(s390 umul_ppmm): Fix typo in pure C variant.

2011-10-13  Torbjorn Granlund  <tege@gmplib.org>

	* longlong.h (s390): Put back an accidentally deleted #else.

	* configure.in (s390): Unset extra_functions for s390x.

2011-10-12  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/s390_64/lshift.asm: Reduce register usage.
	* mpn/s390_64/rshift.asm: Likewise.

	* longlong.h (s390 umul_ppmm): With new-enough gcc, avoid asm.

	From Andreas Krebbel:
	* longlong.h (s390 umul_ppmm): Support 32-bit limbs with gcc using
	64-bit registers.
	(s390 udiv_qrnnd): Likewise.

2011-10-11  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (s390x): Pass -mzarch to gcc in 32-bit mode.

	* longlong.h (s390x): Add __CLOBBER_CC for relevant asm patterns.
	* mpn/generic/mod_1_1.c (s390x add_mssaaaa): Likewise.

	* mpn/s390_64/copyd.asm: New file.

2011-10-10  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/hgcd_appr.c: Deleted debugging code.

	* tests/mpn/t-hgcd_appr.c (main): Added -v flag.
	(hgcd_appr_valid_p): Increased margin of non-minimality for
	divide-and-conquer algorithm. Display bit counts only if
	-v is used.

	* mpn/generic/hgcd_appr.c (submul): New (static) function.
	(hgcd_matrix_apply): New function.
	(mpn_hgcd_appr_itch): Account for divide-and-conquer algorithm.
	(mpn_hgcd_appr): Implemented divide-and-conquer.

2011-10-10  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mod_1_1.c (add_mssaaaa): Add s390x variant.  Put arm code
	inside __GNUC__.

	* tune/time.c (STCK): Use proper memory constraint.

	From Marco Trudel:
	* tests/mpz/t-scan.c (check_ref): Fix loop end bound.

2011-10-10  Niels Möller  <nisse@lysator.liu.se>

	* gmp-impl.h: (HGCD_APPR_THRESHOLD): New threshold.

	* mpn/generic/hgcd_appr.c (mpn_hgcd_appr): Interface change.
	Destroy inputs, let caller make working copies if needed.
	(mpn_hgcd_appr_itch): Reduced scratch need.
	* gmp-impl.h: Updated mpn_hgcd_appr prototype.
	* tests/mpn/t-hgcd_appr.c (one_test): Make working copies for
	hgcd_appr.
	* tune/common.c (speed_mpn_hgcd_appr): Use SPEED_ROUTINE_MPN_HGCD_CALL.
	* tune/speed.h (SPEED_ROUTINE_MPN_HGCD_APPR_CALL): Deleted.

2011-10-09  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/s390_64/copyi.asm: New file.
	* mpn/s390_64/lshift.asm: New file.
	* mpn/s390_64/rshift.asm: New file.

	* mpn/s390_64/add_n.asm: Rewrite using lmg/stmg.
	* mpn/s390_64/sub_n.asm: Likewise.

	* mpn/s390_64/invert_limb.asm: Save a callee-saves register less.

	* tune/time.c (getrusage_backwards_p): Properly cast printed values.

	* longlong.h (s390x): Put back UDItype casts to make gcc reloading use
	right more for constants.
	(s390x count_leading_zeros): Disable until we support z10 specifically.
	(s390x add_ssaaaa): Remove algsi/slgsi until we support z10.

2011-10-09  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/hgcd_matrix.c (mpn_hgcd_matrix_adjust): Declare
	matrix argument const.

2011-10-08  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpn/t-hgcd_appr.c (hgcd_appr_valid_p): Adjusted the
	allowed margin of non-minimality for hgcd_appr.

	* mpn/generic/hgcd_appr.c (mpn_hgcd_appr): Fixed handling of
	extra_bits, starting at zero, to ensure that we don't produce too
	small remainders. Added a final reduction loop when we we
	otherwise terminate with extra_bits > 0, to make the returned
	remainders closer to minimal.

2011-10-07  Torbjorn Granlund  <tege@gmplib.org>

	* longlong.h (s390): Add 32-bit zarch umul_ppmm and udiv_qrnnd.
	(s390): Overhaul 32-bit and 64-bit code.

2011-10-07  Niels Möller  <nisse@lysator.liu.se>

	* tune/speed.h (speed_mpn_hgcd_appr): New prototype.
	(SPEED_ROUTINE_MPN_HGCD_APPR_CALL): New macro.
	* tune/common.c (speed_mpn_hgcd_appr): New function.
	* tune/speed.c (routine): Added mpn_hgcd_appr.

	* tests/mpn/t-hgcd_appr.c: New file.
	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-hgcd_appr.

	* configure.in (gmp_mpn_functions): Added hgcd_step and hgcd_appr.

	* gmp-impl.h: Added prototypes for mpn_hgcd_step,
	mpn_hgcd_appr_itch and mpn_hgcd_appr.

	* mpn/generic/hgcd_appr.c: New file.

	* mpn/generic/hgcd_step.c: New file, extracted from hgcd.c.
	(mpn_hgcd_step): Renamed, from...
	* mpn/generic/hgcd.c (hgcd_step): ...old name. Renamed and moved
	to hgcd_step.c.
	(hgcd_hook): Also moved to hgcd_step.c.
	(mpn_hgcd): Updated for hgcd_step renaming.

2011-10-06  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/s390_64/invert_limb.asm: New file.

2011-10-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/s390_64/submul_1.asm: New file.
	* mpn/s390_32/esame/submul_1.asm: New file.

	* mpn/generic/mulmid.c (mpn_mulmid): Move a TMP_DECL to block start.

	* mpn/Makefile.am (TARG_DIST): Add s390_32 and s390_64, remove s390 and
	z8000x.

	* doc/gmp.texi (Custom Allocation): Rephrase a paragraph.

	* demos/factorize.c: Run 25 Miller-Rabin tests.

	* mpz/nextprime.c: Run 25 mpz_millerrabin tests (was 10).

2011-10-03  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Support s390x.

	* longlong.h: Add support for 64-bit s390x.

	* mpn/s390_64: New directory.
	* mpn/s390_64/add_n.asm: New file.
	* mpn/s390_64/sub_n.asm: New file.
	* mpn/s390_64/mul_1.asm: New file.
	* mpn/s390_64/addmul_1.asm: New file.
	* mpn/s390_64/bdiv_dbm1c.asm: New file.
	* mpn/s390_64/gmp-mparam.h: New file, taken from x86_64.

	* mpn/s390_32: Directory renamed from mpn/s390.
	* mpn/s390_32/gmp-mparam.h: New file, taken from x86_64.
	* mpn/s390_32/esame/add_n.asm: New file.
	* mpn/s390_32/esame/sub_n.asm: New file.
	* mpn/s390_32/esame/mul_1.asm: New file.
	* mpn/s390_32/esame/addmul_1.asm: New file.
	* mpn/s390_32/esame/bdiv_dbm1c.asm: New file.

2011-10-03  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-mulmid.
	* tests/mpn/t-mulmid.c: New file.

	mulmid-related assembly for x86_64, from David Harvey:
	* mpn/asm-defs.m4 (define_mpn): Added [add,sub]_err[1,2,3]_n and
	mulmid_basecase. Also use m4_not_for_expansion on the
	corresponding OPERATION_* symbols.
	* mpn/x86_64/aors_err1_n.asm: New file.
	* mpn/x86_64/aors_err2_n.asm: Likewise.
	* mpn/x86_64/aors_err3_n.asm: Likewise.
	* mpn/x86_64/mulmid_basecase.asm: Likewise.
	* mpn/x86_64/core2/aors_err1_n.asm: Likewise.
	* mpn/x86_64/gmp-mparam.h (MULMID_TOOM42_THRESHOLD): New value.
	* mpn/x86_64/core2/gmp-mparam.h (MULMID_TOOM42_THRESHOLD): Likewise.

	Tuning of mulmid, from David Harvey:
	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Added mulmid.c
	mulmid_n.c toom42_mulmid.c.
	* tune/speed.h: Prototypes for mulmid-related functions.
	(struct speed_params): Increased max number of sources to 5.
	(SPEED_ROUTINE_MPN_BINARY_ERR_N_CALL): New macro.
	(SPEED_ROUTINE_MPN_BINARY_ERR1_N): Likewise.
	(SPEED_ROUTINE_MPN_BINARY_ERR2_N): Likewise.
	(SPEED_ROUTINE_MPN_BINARY_ERR3_N): Likewise.
	(SPEED_ROUTINE_MPN_MULMID): Likewise.
	(SPEED_ROUTINE_MPN_MULMID_N): Likewise.
	(SPEED_ROUTINE_MPN_TOOM42_MULMID): Likewise.
	* tune/common.c (mpn_[add,sub]_err[1,2,3]_n): New functions.
	(speed_mpn_mulmid_basecase): New function.
	(speed_mpn_mulmid): New function.
	(speed_mpn_mulmid_n): New function.
	(speed_mpn_toom42_mulmid): New function.
	* tune/speed.c (routine): Added mpn_[add,sub]_err[1,2,3]_n,
	mpn_mulmid_basecase, mpn_toom42_mulmid, mpn_mulmid_n, and
	mpn_mulmid.
	* tune/tuneup.c (mulmid_toom42_threshold): New threshold variable.
	(tune_mulmid): New function.
	(all): Call tune_mulmid.

	Testing of mulmid, from David Harvey:
	* tests/refmpn.c (AORS_ERR1_N): New macro.
	(refmpn_add_err1_n, refmpn_sub_err1_n): New functions.
	(AORS_ERR2_N): New macro.
	(refmpn_add_err2_n, refmpn_sub_err2_n): New functions.
	(AORS_ERR3_N): New macro.
	(refmpn_add_err3_n, refmpn_sub_err3_n): New functions.
	(refmpn_mulmid_basecase): New function.
	(refmpn_toom42_mulmid): New function, wrapper for
	refmpn_mulmid_basecase.
	(refmpn_mulmid_n): Likewise.
	(refmpn_mulmid): Likewise.
	* tests/tests.h: Prototypes for new functions.
	* tests/devel/try.c (NUM_SOURCES): Increased to 5.
	(struct try_t): Use NUM_SOURCES and NUM_DESTS constants.
	(SIZE_4, SIZE_6, SIZE_DIFF_PLUS_3, SIZE_ODD): New constants.
	(OVERLAP_NOT_DST2): New flag.
	(param_init): New mulmid-related operation types.
	(mpn_toom42_mulmid_fun): New function.
	(choice_array): Added mulmid-related entries.
	(overlap_array): Extended for larger NUM_SOURCES.
	(OVERLAP_COUNT): Handle OVERLAP_NOT_DST2.
	(call): Support mulmid-related functions.
	(pointer_setup): Handle SIZE_4, SIZE_6, and SIZE_DIFF_PLUS_3.
	(SIZE_ITERATION): Handle SIZE_ODD.
	(SIZE2_FIRST): Handle SIZE_CEIL_HALF.
	(SIZE2_LAST): Likewise.

	Implementation of mulmid, from David Harvey:
	* mpn/generic/add_err1_n.c (mpn_add_err1_n): New file and function.
	* mpn/generic/add_err2_n.c (mpn_add_err2_n): Likewise.
	* mpn/generic/add_err3_n.c (mpn_add_err3_n): Likewise.
	* mpn/generic/sub_err1_n.c (mpn_sub_err1_n): Likewise.
	* mpn/generic/sub_err2_n.c (mpn_sub_err2_n): Likewise.
	* mpn/generic/sub_err3_n.c (mpn_sub_err3_n): Likewise.
	* mpn/generic/mulmid_basecase.c (mpn_mulmid_basecase): Likewise.
	* mpn/generic/mulmid_n.c (mpn_mulmid_n): Likewise.
	* mpn/generic/toom42_mulmid.c (mpn_toom42_mulmid): Likewise.
	* configure.in (gmp_mpn_functions): Added mulmid-related
	functions.
	(GMP_MULFUNC_CHOICES): Handle aors_err1_n, aors_err2_n, and
	aors_err3_n.
	* gmp-impl.h: Added prototypes for mulmid functions.
	(MPN_TOOM42_MULMID_MINSIZE): New constant.
	(MULMID_TOOM42_THRESHOLD): New threshold.
	(mpn_toom42_mulmid_itch): New macro.

2011-10-03  Niels Möller  <nisse@lysator.liu.se>

	* tune/tune-gcd-p.c (main): Fixed broken loop conditions.

2011-09-26  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/sh/sh2/submul_1.asm: Make this old submul_1 implementation
	actually compute intended function.

	* longlong.h (SH): Recognise predefs for all SH processors as defined
	by current gcc versions.

2011-09-25  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/sh: Migrate files to '.asm'.
	* configure.in: Recognise sh3 and sh4.

2011-09-21  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (mpz_class::swap): New function.
	(mpq_class::swap): Likewise.
	(mpf_class::swap): Likewise.
	(swap): New function.
	* tests/cxx/t-assign.cc: Test the above.
	* doc/gmp.texi (swap): Document the above.

2011-08-21  Marc Glisse  <marc.glisse@inria.fr>

	* tests/cxx/t-ops2.cc: check mul-div by 2.

	* gmpxx.h (__GMPXX_CONSTANT): New macro (__builtin_constant_p).
	(__gmp_binary_lshift): Move before multiplication. Optimize x << 0.
	(__gmp_binary_rshift): Move before division. Optimize x >> 0.
	(__gmp_binary_plus): Optimize x + 0. Rewrite rational + integer.
	(__gmp_binary_minus): Optimize x - 0 and 0 - x.
	Rewrite rational - integer.
	(__gmp_binary_multiplies): Optimize x * 2^n.
	(__gmp_binary_divides): Optimize x / 2^n.
	(__gmp_binary_*): Deduplicate code for symmetric operations.

2011-08-18  Torbjorn Granlund  <tege@gmplib.org>

	* printf/doprntf.c (__gmp_doprnt_mpf): For DOPRNT_CONV_FIXED, ask for
	one more digit.

2011-08-17  Torbjorn Granlund  <tege@gmplib.org>

	* mpf/sub.c: Fix typo in copy condition.  Delay an allocation.

2011-08-12  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h (LIMBS_PER_DIGIT_IN_BASE): Fix typo.

2011-08-10  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h (DIGITS_IN_BASEGT2_FROM_BITS): New.
	(DIGITS_IN_BASE_FROM_BITS): Compute more accurate result.
	(MPN_SIZEINBASE): Use DIGITS_IN_BASEGT2_FROM_BITS.

	* tests/rand/t-lc2exp.c (check_bigc): Call abort after reporting error.

2011-08-09  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/out_str.c (mpz_out_str): Reinsert accidentally deleted str_size
	adjustment.

	* gmp-impl.h (DIGITS_IN_BASE_FROM_BITS): Simplify, also avoiding
	overflow for base 2.

2011-08-07  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h (struct bases): Add log2b and logb2 field, remove
	chars_per_limb_exactly field.
	(DIGITS_IN_BASE_FROM_BITS): New.
	(DIGITS_IN_BASE_PER_LIMB): New.
	(LIMBS_PER_DIGIT_IN_BASE): New.
	* gen-bases.c: Generate log2b and logb2 fields; do not generate
	chars_per_limb_exactly field.
	* mpf/get_str.c mpf/out_str.c mpf/set_str.c mpn/generic/get_str.c
	  mpn/generic/sizeinbase.c mpq/get_str.c mpz/inp_str.c mpz/out_str.c
	  mpz/set_str.c printf/doprntf.c tune/speed.h tune/tuneup.c:
	Use new macros.

2011-08-04  Torbjorn Granlund  <tege@gmplib.org>

	* dumbmp.c (mpz_root): Reinsert accidentally removed line.

2011-08-03  Torbjorn Granlund  <tege@gmplib.org>

	* dumbmp.c (mpz_tdiv_qr): Correctly handle dividend value being equal
	to divisor value.
	(mpz_root): Create reasonable starting approximation.
	(mpz_sqrt): New function.
	(mpz_mul_2exp): Add faster block shifting code, disabled for now.

2011-07-15  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/arm/invert_limb.asm: Swap around some registers to silence 'as'
	warnings.

2011-07-14  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/dcpi1_bdiv_q.c (mpn_dcpi1_bdiv_q): Get mpn_sub_1 size
	argument right.

2011-07-04  Torbjorn Granlund  <tege@gmplib.org>

	* tests/misc/t-locale.c: Disable test for mingw.

	* configure.in (x86_64 *-*-mingw*): Handle also cygwin here; clear out
	extra_functions_64.

2011-07-02  Torbjorn Granlund  <tege@gmplib.org>

	* config.guess: Don't print newline in x86 cpuid function.
	Rewrite x86-64 cpu recognition asm code to work under Windoze.

2011-06-16  Torbjorn Granlund  <tege@gmplib.org>

	* acinclude.m4 (GMP_ASM_RODATA): Fix typo in 2011-04-20 change.

	* configure.in: Surround tr ranges with [] for portability.

2011-05-25  Niels Möller  <nisse@lysator.liu.se>

	* tune/tune-gcd-p.c (search): New function to search for minimum.
	(main): Replaced slow linear search.

2011-05-24  Niels Möller  <nisse@lysator.liu.se>

	* tune/Makefile.am (EXTRA_PROGRAMS): Added tune-gcd-p. Also added
	related automake variables.

	* mpn/Makefile.am (tune-gcd-p): Deleted target.

	* tune/tune-gcd-p.c: New file, extracted from mpn/generic/gcd.c
	and updated.
	* mpn/generic/gcd.c: Deleted the corresponding code, including
	main function.

2011-05-23  Niels Möller  <nisse@lysator.liu.se>

	* mpz/jacobi.c (mpz_jacobi): Simplified by swapping operands when
	needed, to get asize >= bsize. Use the reciprocity law generalized
	to work when one operand is even.

2011-05-22  Niels Möller  <nisse@lysator.liu.se>

	* mpz/jacobi.c (mpz_jacobi): Another bugfix for the asize == 1
	case. Sometimes, powers of two in b were taken into account twice.

2011-05-21  Niels Möller  <nisse@lysator.liu.se>

	* mpz/jacobi.c (mpz_jacobi): The handling of asize == 1 was
	broken. Rewrote it.

	* tests/mpz/t-jac.c (mpz_nextprime_step): Sanity check that prime
	candidate and step has no common factor.
	(check_data): Added some test cases related to the asize == 1 case
	in mpz_jacobi.

2011-05-20  Niels Möller  <nisse@lysator.liu.se>

	* gmp-impl.h: Jacobi-related prototypes.

	* configure.in (gmp_mpn_functions): Added jacobi_2, jacobi,
	hgcd2_jacobi, hgcd_jacobi, and removed jacobi_lehmer.

	* mpz/jacobi.c (STRIP_TWOS): Deleted macro.
	(mpz_jacobi): Partially rewritten, to no longer makes the A
	operand odd. Use new mpn_jacobi_n.

	* mpn/generic/jacobi_lehmer.c: Deleted file.

	* mpn/generic/jacobi.c (mpn_jacobi_n): New subquadratic jacobi
	implementation. Supersedes jacobi_lehmer.c.

	* mpn/generic/hgcd_jacobi.c (mpn_hgcd_jacobi): New file and
	function. A copy of mpn_hgcd, using mpn_hgcd2_jacobi, and with calls to
	mpn_jacobi_update when appropriate.

	* mpn/generic/jacobi_2.c (mpn_jacobi_2): New file. Extracted from
	jacobi_lehmer.c.
	* mpn/generic/hgcd2_jacobi.c (mpn_hgcd2_jacobi): Likewise.

	* mpn/generic/hgcd.c (hgcd_hook): Avoid using NULL.

2011-05-19  Niels Möller  <nisse@lysator.liu.se>

	* tune/hgcd_lehmer.c (__gmpn_hgcd_itch): Don't rename symbols for
	the functions moved to hgcd_matrix.c.

	* configure.in (gmp_mpn_functions): Added hgcd_matrix.

	* mpn/generic/hgcd.c (hgcd_matrix_update_1): Deleted. Several other
	helper functions moved to hgcd_matrix.c, see below.
	(hgcd_hook): New function.
	(hgcd_step): Simplified, using mpn_gcd_subdiv_step and hgcd_hook.

	* mpn/generic/hgcd_matrix.c: New file.
	(mpn_hgcd_matrix_init): Moved here, from hgcd.c.
	(mpn_hgcd_matrix_update_q): Likewise.
	(mpn_hgcd_matrix_mul_1): Likewise.
	(mpn_hgcd_matrix_mul): Likewise.
	(mpn_hgcd_matrix_adjust): Likewise.

	* mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): New
	argument s, for use by hgcd.
	* gmp-impl.h (mpn_gcd_subdiv_step): Update declaration.

	* mpn/generic/gcd.c (mpn_gcd): Pass s = 0 to mpn_gcd_subdiv_step.
	* mpn/generic/gcdext.c (mpn_gcdext): Likewise. Also added an ASSERT.
	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Likewise.
	(mpn_gcdext_hook): Added some ASSERTs.
	* mpn/generic/jacobi_lehmer.c (mpn_jacobi_lehmer): Likewise.

2011-05-17  Niels Möller  <nisse@lysator.liu.se>

	* doc/gmp.texi (mpn_gcd, mpn_gcdext): Document input requirements:
	Must have un >= vn > 0, and V normalized.
	* mpn/generic/gcdext.c (mpn_gcdext): Added ASSERT for input
	normalization.
	* mpn/generic/gcd.c (mpn_gcd): Added ASSERTs for input
	requirements.

2011-05-15  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (operator<<): Dedup.
	* tests/cxx/t-iostream.cc: Test on compound types.

	* gmpxx.h (__gmp_binary_expr): Let things happen in place: c=(a+b)/2.

2011-05-10  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (__gmp_unary_expr): Let things happen in place: c=-(a+b).
	(operator>>): Clean the commenting out.
	* tests/cxx/t-iostream.cc: New file.
	* tests/cxx/Makefile.am: Added t-iostream.

2011-05-10  Niels Möller  <nisse@lysator.liu.se>

	* doc/gmp.texi (mpz_gcd): Document that gcd(0,0) = 0.
	(mpz_gcdext): Document range for cofactors.

2011-05-09  Niels Möller  <nisse@lysator.liu.se>

	* mpz/gcdext.c (mpz_gcdext): Increased sp allocation to bsize+1 limbs.
	* doc/gmp.texi (mpn_gcdext): Fixed documentation of allocation
	requirements; one extra limb is still needed for S.

2011-05-09  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/fat/gmp-mparam.h (BMOD_1_TO_MOD_1_THRESHOLD): Define.
	* mpn/x86_64/fat/gmp-mparam.h (BMOD_1_TO_MOD_1_THRESHOLD): Define.

2011-05-08  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h: Replace unsigned long with mp_bitcnt_t in many places.
	* doc/gmp.texi: Likewise.

2011-05-06  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (mpz_class): Make constructor from mp[qf]_class explicit.
	(mpq_class): Make constructor from mpf_class explicit.
	* doc/gmp.texi: Document the above.
	* NEWS: Likewise, and mention the EOF istream fix.
	* tests/cxx/t-mix.cc: New file.
	* tests/cxx/Makefile.am: Added t-mix.

	* tests/cxx/t-assign.cc: Minor tweak.
	* tests/cxx/t-misc.cc: Likewise.

	* gmpxx.h (__gmp_resolve_temp): Remove.
	(__gmp_set_expr): Remove some overloads.
	(mpq_class): mpz_init_set the numerator and denominator instead of
	mpq_init + mpq_set.
	(mpz_class): Dedup the string constructors.
	(mpq_class): Likewise.

	* tests/cxx/t-ops3.cc: New file.
	* tests/cxx/Makefile.am: Added t-ops3.

2011-05-05  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/gcdext.c: Correct sgn computation.
	Use MPZ_REALLOC.

2011-05-05  Marc Glisse  <marc.glisse@inria.fr>

	* mpn/x86_64/fat/fat.c: Update for Sandy Bridge.
	* config.guess: warning to keep it in sync with fat.c.

2011-05-05  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fat/fat_entry.asm (PIC_OR_DARWIN): New symbol.  Use it to
	work around Darwin problems.

2011-05-04  Niels Möller  <nisse@lysator.liu.se>

	* mpz/gcdext.c (mpz_gcdext): Reduced temporary allocations. Use
	mpz_divexact when computing the second cofactor.

2011-05-03  David Harvey  <dmharvey@cims.nyu.edu>

	* configure.in: make invert_limb_table work correctly with
	--disable-assembly (from Niels Möller)

2011-05-02  Marc Glisse  <marc.glisse@inria.fr>

	* .bootstrap: libtoolize doesn't need -c.

	* configfsf.guess: Update to version of 2011-02-02.
	* configfsf.sub: Update to version of 2011-03-23.

2011-05-02  Niels Möller  <nisse@lysator.liu.se>

	* mpz/gcdext.c (mpz_gcdext): Don't allocate extra limbs at the end
	of mpn_gcdext parameters.

	* doc/gmp.texi (mpn_gcdext): Updated doc.

2011-05-01  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/div_qr_2u_pi1.c (mpn_div_qr_2u_pi1): Fixed ASSERT.

2011-04-30  Marc Glisse  <marc.glisse@inria.fr>

	* gmp-h.in (mpz_cdiv_q_2exp): Use mp_bitcnt_t to match the definition
	and the documentation.
	(mpz_remove): Likewise.
	(mpf_eq): Likewise.

	* ltmain.sh: Remove.
	* .bootstrap: Let libtoolize generate ltmain.sh.

	* tests/cxx/t-ops2.cc: Add a couple tests.
	* tests/cxx/t-rand.cc: Likewise.

	* doc/gmp.texi (mpf_urandomb): Explicit the fact that it does not
	change the precision.

	* gmp-h.in (__GMP_EXTERN_INLINE): Recent g++ uses gnu_inline.

2011-04-28  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (x86_64): Support bobcat specifically.
	(x86): Match bobcat and bulldozer, handle like k10.

2011-04-28  David Harvey  <dmharvey@cims.nyu.edu>

	* README.HG: update autotools version numbers.

2011-04-27  Torbjorn Granlund  <tege@gmplib.org>

	* tune/speed.h (speed_cyclecounter): Always use PIC variant when
	compiled with Apple's GCC.

	* mpn/x86/darwin.m4 (LEA): Complete rewrite.
	(m4append): New macro.

2011-04-26  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/sparc32/sparc-defs.m4 (changecom): Don't redefine '!' as it
	interferes with expressions.

2011-04-20  Torbjorn Granlund  <tege@gmplib.org>

	* acinclude.m4 (GMP_ASM_RODATA): Make 'foo' larger to avoid clang
	problems.

2011-04-12  Niels Möller  <nisse@lysator.liu.se>

	* mpn/x86_64/invert_limb.asm [PIC]: Declare mpn_invert_limb_table
	as .protected.

2011-04-11  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/k7/invert_limb.asm: Use deflit for Darwin bug workaround.
	Undo 2011-03-28 change.

	* mpn/asm-defs.m4 (define_mpn): Use deflit.

2011-04-10  Niels Möller  <nisse@lysator.liu.se>

	* mpn/asm-defs.m4 (define_mpn): Added invert_limb_table.

	* configure.in: Add invert_limb_table to extra_functions_64 on
	x86_64.

	* mpn/x86_64/invert_limb.asm: Changed references from approx_tab
	mpn_invert_limb_table.

	* mpn/x86_64/invert_limb_table.asm (mpn_invert_limb_table): New
	file. Extracted approximation table from invert_limb.asm, renamed
	and made global.

2011-03-30  Niels Möller  <nisse@lysator.liu.se>

	* mpn/x86_64/div_qr_2u_pi1.asm: New file.

	* configure.in (gmp_mpn_functions): Add div_qr_2u_pi1.

	* gmp-impl.h (mpn_div_qr_2u_pi1): Declare.

	* mpn/generic/div_qr_2u_pi1.c (mpn_div_qr_2u_pi1): Moved to
	separate file, from...
	* mpn/generic/div_qr_2.c: ... old location.

	* mpn/generic/div_qr_2n_pi1.c: Renamed file, from...
	* mpn/generic/div_qr_2_pi1_norm.c: ...old name.
	* mpn/x86_64/div_qr_2n_pi1.asm: Renamed file, from...
	* mpn/x86_64/div_qr_2_pi1_norm.asm: ...old name.

	* gmp-impl.h (mpn_div_qr_2n_pi1): Use new name in declaration.
	* tune/speed.h (speed_mpn_div_qr_2n): Likewise.
	(speed_mpn_div_qr_2u): Likewise.

	* tune/tuneup.c (tune_div_qr_2): Use new name speed_mpn_div_qr_2n.

	* tune/speed.c (routine): Use new names mpn_div_qr_2n and
	mpn_div_qr_2u, also on the command line.

	* tune/common.c (speed_mpn_div_qr_2n): Renamed, from...
	(speed_mpn_div_qr_2_norm): ... old name.
	(speed_mpn_div_qr_2u): Renamed, from...
	(speed_mpn_div_qr_2_unnorm): ... old name.

	* mpn/generic/div_qr_2_pi1_norm.c (mpn_div_qr_2n_pi1): Renamed,
	from...
	(mpn_div_qr_2_pi1_norm): ...old name.
	* mpn/x86_64/div_qr_2_pi1_norm.asm: Likewise.

	* mpn/generic/div_qr_2.c (mpn_div_qr_2n_pi2): Renamed, from...
	(mpn_div_qr_2_pi2_norm): ... old name.
	(mpn_div_qr_2u_pi1): Renamed, from...
	(mpn_div_qr_2_pi1_unnorm): ... old name.
	(mpn_div_qr_2): Call functions using new names.

	* mpn/asm-defs.m4: Renamed div_qr_2-functions to new names.

2011-03-29  Niels Möller  <nisse@lysator.liu.se>

	* mpn/x86_64/div_qr_2_pi1_norm.asm: Updated to use a separate rp
	argument.

	* gmp-impl.h (mpn_div_qr_2_pi1_norm): Updated declaration.
	* gmp-h.in (mpn_div_qr_2): Likewise.

	* tests/mpn/t-div.c (main): Adapted to new mpn_div_qr2 interface.
	* tune/speed.h (SPEED_ROUTINE_MPN_DIV_QR_2): Likewise.

	* mpn/generic/div_qr_2.c (mpn_div_qr_2_pi2_norm): Added rp
	argument. Don't clobber the input dividend.
	(mpn_div_qr_2_pi1_unnorm): Likewise.
	(mpn_div_qr_2): Likewise.
	* mpn/generic/div_qr_2_pi1_norm.c (mpn_div_qr_2_pi1_norm): Likewise.

2011-03-29  Niels Möller  <nisse@lysator.liu.se>

	* mpn/x86/k7/invert_limb.asm: Use mov rather than push and pop.
	Earlier load of divisor from stack.

2011-03-28  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/k7/invert_limb.asm: Protect movzwl register parameters from
	being interpreted as m4 macro parameters.

2011-03-22  Niels Möller  <nisse@lysator.liu.se>

	* mpn/x86_64/div_qr_2_pi1_norm.asm: Copied optimized inner loop
	from divrem_2.asm.

	* mpn/x86_64/div_qr_2_pi1_norm.asm: First working, but poorly
	optimized, implementation.

	* mpn/asm-defs.m4 (define_mpn): Added div_qr_2_pi[12]_*norm.

	* mpn/generic/div_qr_2_pi1_norm.c (mpn_div_qr_2_pi1_norm): Moved
	to separate file, from...
	* mpn/generic/div_qr_2.c: ... old location.

	* gmp-impl.h (mpn_div_qr_2_pi1_norm): Declare.

	* configure.in (gmp_mpn_functions): Added div_qr_2_pi1_norm.

2011-03-22  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (powerpc): Reinsert lost AIX cpu_path 32-bit handling.
	Reinsert lost linux/bsd cpu_path handling.

	* mpn/generic/mod_1_1.c: Disable powerpc asm for _LONG_LONG_LIMB.
	* mpn/generic/div_qr_2.c: Likewise.

	* mpn/generic/div_qr_2.c: Use asm just for gcc.
	Make powerpc add_sssaaaa work for 32-bit case, and use less strict
	constraints.

2011-03-21  Niels Möller  <nisse@lysator.liu.se>

	* tune/tuneup.c (div_qr_2_pi2_threshold): New global variable.
	(tune_div_qr_2): New function.
	(all): Call tune_div_qr_2.

	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Added div_qr_2.c.

	* gmp-impl.h (DIV_QR_2_PI2_THRESHOLD): Setup for tuning.

	New 4/2 division loop, based on Torbjörn's work:
	* mpn/generic/div_qr_2.c (add_sssaaaa, add_csaac): New macros.
	(udiv_qr_4by2): New macro.
	(invert_4by2): New function.
	(mpn_div_qr_2_pi2_norm): New function.
	(DIV_QR_2_PI2_THRESHOLD): New threshold.
	(mpn_div_qr_2_pi1_norm): Renamed, from...
	(mpn_div_qr_2_norm): ... old name.
	(mpn_div_qr_2_pi1_unnorm): Renamed, from...
	(mpn_div_qr_2_unnorm): ... old name.
	(mpn_div_qr_2): Use mpn_div_qr_2_pi2_norm for large enough
	normalized divisors.

	* gmp-impl.h (udiv_qr_3by2): Avoid a copy.

2011-03-21  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (hppa): Under linux, treat 64-bit processors as if they
	were 32-bit processors.

	* mpn/generic/addcnd_n.c: New file.
	* mpn/asm-defs.m4 (define_mpn): Add addcnd_n and subcnd_n.
	* configure.in (gmp_mpn_functions): Add addcnd_n.
	* gmp-impl.h (mpn_addcnd_n): Declare.

	* mpn/generic/subcnd_n.c: Combine nails and non-nails functions.

	* gmp-impl.h (invert_pi1): Prepend _ to local variables, protect
	parameters within () where necessary.

	* mpn/asm-defs.m4 (define_mpn): Add div_qr_2.
	* configure.in (gmp_mpn_functions): Reinsert mercurial-bug-removed
	line.

2011-03-20  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (powerpc): Add cpu_path for all three ABIs.
	Rename "aix64" to "mode64" for consistency.

2011-03-16  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (__gmp_binary_not_equal): Remove, use !__gmp_binary_equal.
	(__gmp_binary_less_equal): Remove, use !__gmp_binary_greater.
	(__gmp_binary_greater_equal): Remove, use !__gmp_binary_less.
	* tests/cxx/t-ops2.cc: Typo.

2011-03-20  Niels Möller  <nisse@lysator.liu.se>

	* tune/common.c (speed_mpn_div_qr_2_norm): New function.
	(speed_mpn_div_qr_2_unnorm): New function.
	* tune/speed.c (routine): Recognize above functions.
	* tune/speed.h: Declarations for above functions.
	(SPEED_ROUTINE_MPN_DIV_QR_2): New macro.

	* tests/mpn/t-div.c (main): Added tests for mpn_divrem_2 and
	mpn_div_qr_2.

	* mpn/generic/div_qr_2.c (mpn_div_qr_2): New file and function.
	Intended to eventually replace divrem_2.
	* configure.in (gmp_mpn_functions): Add div_qr_2.

2011-03-16  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (__gmp_set_expr): Remove broken declarations.

2011-03-19  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/fac_ui.c (mpz_fac_ui): Use MPZ_REALLOC for standard, conditional
	reallocation.

2011-03-19  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/divrem_2.c (mpn_divrem_2): Fixed comment and assert
	regarding q and n overlap.

2011-03-16  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (__mpz_set_ui_safe): New inline function.
	(__mpz_set_si_safe): Likewise.
	(__GMPXX_TMPZ_UI): Use the new function.
	(__GMPXX_TMPZ_SI): Likewise.
	(__GMPXX_TMPQ_UI): Likewise.
	(__GMPXX_TMPQ_SI): Likewise.
	* tests/cxx/t-ops2.cc: test converting 0 to stack mpq_t.

2011-03-15  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h (__GMPXX_TMPQ_UI): New macro.
	(__GMPXX_TMPQ_SI): New macro.
	(struct __gmp_binary_multiplies): Rewrite, using the new macros.
	(struct __gmp_binary_divides): Likewise.

	* gmpxx.h (__GMPZ_ULI_LIMBS): Rewrite.
	* tests/cxx/t-ops2.cc: test converting ULONG_MIN to stack mpq_t.

2011-03-15 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/toom_interpolate_16pts.c: Remove ambiguity.

2011-03-14  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (tune_mul): Set tuning min size considering print skew.

	* doc/gmp.texi: Make reference to "Formatted I/O" chapters from type
	specific I/O sections.

	* mpn/alpha/add_n.asm: Add _nc entry point.
	* mpn/alpha/sub_n.asm: Likewise.
	* mpn/mips64/add_n.asm: Likewise.
	* mpn/mips64/sub_n.asm: Likewise.
	* mpn/sparc64/ultrasparc1234/add_n.asm: Likewise.
	* mpn/sparc64/ultrasparc1234/sub_n: Likewise.

2011-03-13  Marc Glisse  <marc.glisse@inria.fr>

	* tests/cxx/t-ops2.cc: New file.
	* tests/cxx/Makefile.am: Added t-ops2.

2011-03-13  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/toom32_mul.c (mpn_toom32_mul): Make 'hi' be limb-sized
	for better code.

	* gmp-impl.h (MPN_IORD_U): Handle x86_64 as well as x86_32.  Generate
	no code for incrementing by constant 0.

2011-03-12  Marc Glisse  <marc.glisse@inria.fr>

	* gmpxx.h: Rename __GMPXX_TMP_* to __GMPXX_TMPZ_*. Use in more places.

2011-03-12  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/rshift.asm: Accept/return values correctly also for
	32-bit ABI.
	* mpn/powerpc64/lshift.asm: Likewise.

	* tune/powerpc.asm: Use powerpc syntax, not power syntax.

	* tune/common.c (speed_udiv_qrnnd_preinv1, etc): Remove.
	* tune/speed.c (routine): Remove udiv_qrnnd_preinv1, etc.

2011-03-12  Marc Glisse  <marc.glisse@inria.fr>

	* tests/cxx/t-istream.cc: Restrict mpq test in t-istream -s.

	* gmpxx.h: Remove leftover #undefs.

2011-03-11  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h (udiv_qrnnd_preinv1, udiv_qrnnd_preinv2,
	udiv_qrnnd_preinv2gen): Remove obsolete macros.
	(udiv_qrnnd_preinv): New name for udiv_qrnnd_preinv3.

2011-03-11 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gmp-impl.h: Declare many mpn_{sub,add}lsh*_n_ip[12] functions/macros.
	* mpn/generic/toom_interpolate_5pts.c: Use mpn_sublsh1_n_ip1.

	* tests/devel/try.c: Tests for {add,sub}lsh*_n_ip[12].
	* tests/refmpn.c: New reference for mpn_{add,sub}lsh*_n_ip[12].
	* tests/tests.h: Declarations for reference functions above.

	* tune/common.c: New speed_mpn_{add,sub}lsh*_n_ip[12] functions.
	* tune/speed.h: Prototypes for functions above.
	* tune/speed.c: Support for mpn_{add,sub}lsh*_n_ip[12].

	* mpn/x86/k7/sublsh1_n.asm: Replaced generic sublsh1 code with faster _ip1.
	* mpn/x86/atom/sublsh1_n.asm: Changed PROLOGUE accordingly.

	* configure.in: Define HAVE_NATIVE_mpn_addlsh*_n*_ip[12].
	* mpn/asm-defs.m4: Declare mpn_addlsh*_n*_ip[12].

2011-03-10  Marc Glisse  <marc.glisse@inria.fr>

	* tests/cxx/t-istream.cc: Explicit conversion to streampos.

2011-03-10  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/atom/sse2/mul_basecase.asm: Suppress wind-down rp updates.

	* Move new aorrlsh_n.asm to new k8 dir.  Revert
	mpn/x86_64/aorrlsh_n.asm.
	* configure.in: Setup path for new k8 directory.

2011-03-10 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86/pentium4/sse2/bdiv_dbm1c.asm: New file, was in atom.
	* mpn/x86/atom/sse2/bdiv_dbm1c.asm: Grab file above.

2011-03-09  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/aorrlsh_n.asm: Complete rewrite.

	* mpn/x86_64/core2/aorrlsh_n.asm: New file, grabbing another asm file.

2011-03-09  Marc Glisse  <marc.glisse@inria.fr>

	* tests/cxx/t-ostream.cc: Use bool instead of int.
	* tests/cxx/t-istream.cc: Likewise.
	* tests/cxx/t-misc.cc: Likewise.

	* cxx/ismpznw.cc: Don't clear eofbit.
	* cxx/ismpq.cc: Likewise.
	* cxx/ismpf.cc: Likewise.
	* tests/cxx/t-istream.cc: Test accordingly.

2011-03-09 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86/atom/sse2/bdiv_dbm1c.asm: New file.

2011-03-09  Marc Glisse  <marc.glisse@inria.fr>

	* doc/gmp.texi: Remove void return type from constructors. Document
	explicit constructors. Document mpf_class::mpf_class(mpf_t).

2011-03-07 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86/atom/sse2/sqr_basecase.asm: Postponed pushes. Cleaned
	outer loop exit.

2011-03-07  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/gcd_1.asm: Workaround Oracle assembler bug.

	* mpn/x86/atom/sse2/mul_basecase.asm: Replace addmul_1 loops.
	Tweak outer loop rp updates.

2011-03-06  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/atom/sse2/sqr_basecase.asm: New file.

2011-03-05  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/bdiv_dbm1c.asm: Write proper feed-in code.

2011-03-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/addmul_2.asm: Rewrite for linear performance.

2011-03-03  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mod_1_1.c (add_mssaaaa): Canonicalise layout.  Add arm
	variant.  Enable sparc64 code and powerpc code (the latter for 32-bit
	and 64-bit).

	* mpn/generic/sqrtrem.c (mpn_dc_sqrtrem): Use mpn_addlsh1_n.

	* gmp-impl.h (mpn_addlsh_nc, mpn_rsblsh_nc): Declare.
	* mpn/asm-defs.m4: Likewise.

	* mpn/x86_64/coreisbr/aorrlsh_n.asm: Disable mpn_rsblsh_n due to
	carry-in issues.
	* mpn/x86_64/coreinhm/aorrlsh_n.asm: Likewise.
	* mpn/x86_64/coreisbr/aorrlsh2_n.asm: Likewise.

2011-03-03  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/mod_1_1.c (add_mssaaaa): For x86 and x86_64, treat m
	as in output operand only. Added sparc32 implementation. Also
	added #if:ed out attempts at sparc64 and powerpc64.

	* tune/tuneup.c (tune_mod_1): Record result of MOD_1_1P_METHOD
	measurement for use by mpn_mod_1_tune. And omit measurement if
	mpn_mod_1_1p is native assembly code.

	* mpn/generic/mod_1.c (mpn_mod_1_1p) [TUNE_PROGRAM_BUILD]: Macro
	to check mod_1_1p_method and call the right function.
	(mpn_mod_1_1p_cps) [TUNE_PROGRAM_BUILD]: Likewise.

	* gmp-impl.h (MOD_1_1P_METHOD) [TUNE_PROGRAM_BUILD]: Define macro.
	(mod_1_1p_method) [TUNE_PROGRAM_BUILD]: Declare variable.

2011-03-02  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/coreinhm/aorrlsh_n.asm: New file.
	* mpn/x86_64/coreisbr/aorrlsh_n.asm: New file.

2011-03-01  Niels Möller  <nisse@lysator.liu.se>

	* mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p_cps): Eliminated a neg and
	two mov instructions.

	* mpn/x86/k7/mod_1_1.asm (mpn_mod_1_1p_cps): Simplified
	computation, analogous to recent x86_64/mod_1_1.asm changes.
	(mpn_mod_1_1p): Corresponding changes. Don't shift b.

	* mpn/sparc64/mod_1_4.c (mpn_mod_1s_4p_cps): Use udiv_rnnd_preinv
	rather than udiv_rnd_preinv.
	(mpn_mod_1s_4p): Likewise.

2011-03-01  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/pentium4/sse2/mul_1.asm: Swap entry insns to share more code
	between entry points.
	* mpn/x86/pentium4/sse2/addmul_1.asm: Likewise.

	* mpz/divegcd.c: Rewrite, as per Marc Glisse's suggestion.  Also fix
	problem with passing a longlong limb to a _ui function.

	* gmp-impl.h (udiv_qrnnd_preinv3): Cast truth value to mask's type.
	(udiv_rnnd_preinv): Likewise.
	* mpn/generic/mod_1_1.c (mpn_mod_1_1p): Likewise.

2011-02-28  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/mod_1_1.c (add_mssaaaa): Typo fix, define
	add_mssaaaa, not add_sssaaaa.

	* tune/tuneup.c (tune_mod_1): Measure mpn_mod_1_1_1 and
	mpn_mod_1_1_2, to set MOD_1_1P_METHOD.

	* tune/speed.c (routine): Added mpn_mod_1_1_1 and mpn_mod_1_1_2.

	* tune/speed.h: Declare speed_mpn_mod_1_1_1, speed_mpn_mod_1_1_2,
	mpn_mod_1_1p_1, mpn_mod_1_1p_2, mpn_mod_1_1p_cps_1, and
	mpn_mod_1_1p_cps_2.

	* tune/common.c (speed_mpn_mod_1_1_1): New function.
	(speed_mpn_mod_1_1_2): New function.

	* tune/Makefile.am (libspeed_la_SOURCES): Added mod_1_1-1.c
	mod_1_1-2.c.

	* tune/mod_1_1-1.c: New file.
	* tune/mod_1_1-2.c: New file.

	* mpn/generic/mod_1_1.c: Implemented an algorithm with fewer
	multiplications, configured via MOD_1_1P_METHOD.

	* mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p_cps): Simplified
	computation of B2modb, use B^2 mod (normalized b).
	(mpn_mod_1_1p): Corresponding changes. Don't shift b.

	* mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Use udiv_rnnd_preinv rather
	than udiv_rnd_preinv.
	(mpn_mod_1_1p): Likewise.
	* mpn/generic/mod_1_4.c: Analogous changes.
	* mpn/generic/mod_1_3.c: Analogous changes.
	* mpn/generic/mod_1_2.c: Analogous changes.
	* mpn/generic/mod_1.c: Analogous changes.
	* mpn/generic/pre_mod_1.c: Analogous changes.

	* gmp-impl.h (udiv_qrnnd_preinv3): Eliminated unpredictable branch
	using masking logic. Further optimization of the nl == constant 0
	case, similar to udiv_rnd_preinv.
	(udiv_rnnd_preinv): Likewise.
	(udiv_rnd_preinv): Deleted, use udiv_rnnd_preinv with nl == 0
	instead.

	* tests/mpn/t-divrem_1.c (check_data): Added testcase to exercise
	the nl == constant 0 special case in udiv_qrnnd_preinv3.

2011-02-28  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/rootrem.c (mpn_rootrem): Combine two similar scalar
	divisions.  Misc minor cleanup.

	* mpn/x86/atom/sse2/aorsmul_1.asm: Shorten software pipeline.

	* mpn/x86/atom/mul_basecase.asm: Remove file no longer used.

	* mpn/generic/rootrem.c (mpn_rootrem_internal): Delay O(log(U))
	allocations until they are known to be needed.

2011-02-27 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86/atom/sse2/mul_1.asm: New code.

2011-02-27  Niels Möller  <nisse@lysator.liu.se>

	* gmp-impl.h (udiv_rnnd_preinv): New macro.

2011-02-27  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/atom/sse2/mul_basecase.asm: New file.

2011-02-26 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86/atom/sse2/aorsmul_1.asm: Optimise non-loop code.

2011-02-26  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/mode64/aorsmul_1.asm: Add MULFUNC_PROLOGUE.
	* mpn/m68k/mc68020/aorsmul_1.asm: Likewise.

2011-02-25  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/atom/sse2/aorsmul_1.asm: New file.
	* mpn/x86/atom/aorsmul_1.asm: File removed.

2011-02-25 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86/atom/sse2/divrem_1.asm: New file (was in x86/atom).
	* mpn/x86/atom/sse2/mul_1.asm: Likewise.
	* mpn/x86/atom/sse2/popcount.asm: Likewise.
	* mpn/x86/atom/divrem_1.asm: ReMoved (in sse2/ now).
	* mpn/x86/atom/mul_1.asm: Likewise.
	* mpn/x86/atom/popcount.asm: Likewise.

	* configure.in: Set up mmx path for atom.
	* mpn/x86/atom/mmx/copyd.asm: New file (was in x86/atom).
	* mpn/x86/atom/mmx/copyi.asm: Likewise.
	* mpn/x86/atom/mmx/hamdist.asm: Likewise.
	* mpn/x86/atom/copyd.asm: ReMoved (in mmx/ now).
	* mpn/x86/atom/copyi.asm: Likewise.
	* mpn/x86/atom/hamdist.asm: Likewise.

2011-02-24  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/atom/sse2/mod_1_1.asm: New file.
	* mpn/x86/atom/sse2/mod_1_4.asm: New file.
	* configure.in: Set up sse2 path for atom.

	* mpn/x86/p6/sse2/mod_1_1.asm: New file.
	* mpn/x86/p6/sse2/mod_1_4.asm: Fix typo in MULFUNC_PROLOGUE.

2011-02-24  Niels Möller  <nisse@lysator.liu.se>

	* mpn/x86/k7/mod_1_1.asm (mpn_mod_1_1p): Rewrite using the same
	algorithm as the x86_64 version.

2011-02-23 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86/atom/logops_n.asm: New file (same loop as aors_n).

2011-02-23  Niels Möller  <nisse@lysator.liu.se>

	* mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p): Shaved off one
	instruction and one register in the inner loop. Rearranged
	registers slightly, and no longer needs the callee-save register
	%r12.

2011-02-22  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Export SHLD_SLOW and SHRD_SLOW to config.m4, also
	fixing typo in exporting code.

	* mpn/x86_64/nano/gmp-mparam.h (SHLD_SLOW, SHRD_SLOW): Define.
	* mpn/x86_64/atom/gmp-mparam.h (SHLD_SLOW, SHRD_SLOW): Define.

2011-02-22  Niels Möller  <nisse@lysator.liu.se>

	* mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p): Rewrite.

2011-02-22 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86/atom/lshiftc.asm: New file (a copy of lshift.asm with a handful of neg added).

2011-02-21  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/aors_n.asm: Move _nc entry to after main code.  Align loop
	and _n entry for claimed performance.  Normalise mnemonic usage.

	* mpn/x86/atom/aorrlsh1_n.asm: New file (code from rsblsh_1, slightly
	slower for addlsh_1 for large operands, but much faster for small).
	* mpn/x86/atom/addlsh1_n.asm: Remove.
	* mpn/x86/atom/rsblsh1_n.asm: Remove.

2011-02-20  Marc Glisse  <marc.glisse@inria.fr>

	* mpq/aors.c: Rewrite to remove redundant division.

2011-02-20  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/atom/lshift.asm: New file.
	* mpn/x86/atom/rshift.asm: Normalise mnemonic usage.

	* gmp-impl.h (mpn_divexact_by7): Relax inclusion condition.

	* mpz/divegcd.c (mpz_divexact_by5): New conditionally enabled function.
	(mpz_divexact_by3): Wrap inside appropriate conditions.
	(mpz_divexact_gcd): Rewrite.

	* mpn/x86/bdiv_dbm1c.asm: Save a jump.

2011-02-20 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86/atom/aorslshC_n.asm: New file.
	* mpn/x86/atom/sublsh2_n.asm: New file.

	* mpn/x86/atom/aors_n.asm: New code.
	* mpn/x86/atom/rshift.asm: Atom64 code adapted to 32-bit.
	* mpn/x86/atom/lshift.asm: Likewise.

2011-02-19  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/atom/rsh1aors_n.asm: New file.

	* mpn/x86_64/atom/lshift.asm: New file.
	* mpn/x86_64/atom/rshift.asm: New file.
	* mpn/x86_64/atom/lshiftc.asm: New file.

2011-02-17 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86/atom/aorsmul_1.asm: Small improvements for small sizes.
	* mpn/x86/atom/aorrlshC_n.asm: Tiny size improvements.

2011-02-16  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Fix k8/k10 32-bit path setup problem.

2011-02-16 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86/atom/aorsmul_1.asm: Revive an old k7/aorsmul.

2011-02-14 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gmp-impl.h (mpn_sublsh_n): Declare.
	* mpn/asm-defs.m4: Likewise.

	* mpn/x86/atom/aorrlshC_n.asm: New file (was k7).
	* mpn/x86/k7/aorrlshC_n.asm: ReMoved.
	* mpn/x86/atom/aorrlsh2_n.asm: Grab atom/aorrlshC_n.asm.
	* mpn/x86/atom/rsblsh1_n.asm: Grab atom/aorrlshC_n.asm.

2011-02-13  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/atom/aorrlsh2_n.asm: New file.

2011-02-12  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/aorrlsh_n.asm: Minor tweaks, update c/l numbers.

	* mpn/x86_64/atom/sublsh1_n.asm: New file.

	* mpn/x86_64/atom/aorrlsh1_n.asm: New file.

2011-02-11  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/mode64/mod_1_1.asm: Fix Darwin syntax issues.

2011-02-10  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/mode64/mod_1_4.asm: Tune away a cycle for 970.

2011-02-11 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86/k7/addlsh1_n.asm: Faster core loop (Torbjorn's).

	* configure.in: Add HAVE_NATIVE_{add,sub,rsb}lsh{,1,2}_nc.
	* tests/tests.h: refmpn_{add,sub,rsb}lsh{,1,2}_nc prototypes.
	* tests/refmpn.c: New refmpn_{add,sub,rsb}lsh{,1,2}_nc.
	* tests/devel/try.c: Tests for mpn_{add,sub,rsb}lsh{,1,2}_nc.

	* mpn/x86/k7/aorrlshC_n.asm: New file.
	* mpn/x86/atom/aorrlsh2_n.asm: Grab k7/aorrlshC_n.asm.
	* mpn/x86/atom/rsblsh1_n.asm: Grab k7/aorrlshC_n.asm.

2011-02-06 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86/k7/addlsh1_n.asm: New file.
	* mpn/x86/k7/sublsh1_n.asm: New file.
	* mpn/x86/atom/addlsh1_n.asm: Grab k7/addlsh1_n.asm.
	* mpn/x86/atom/sublsh1_n.asm: Grab k7/sublsh1_n.asm.

2011-02-05  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h (mpn_addlsh1_nc, mpn_addlsh2_nc, mpn_sublsh1_nc,
	mpn_sublsh2_nc, mpn_rsblsh1_nc, mpn_rsblsh2_nc): Declare.
	* mpn/asm-defs.m4: Likewise.

	* mpn/x86_64/coreisbr/aorrlshC_n.asm: New file.
	* mpn/x86_64/coreisbr/aorrlsh1_n.asm: New file.
	* mpn/x86_64/coreisbr/aorrlsh2_n.asm: New file.

	* mpn/x86_64/coreisbr/aors_n.asm: New file, based on old
	atom/aors_n.asm.
	* mpn/x86_64/atom/aors_n.asm: Grab coreisbr/aors_n.asm.

2011-02-05 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gmp-impl.h (mpn_toom6_mul_n_itch): Handle threshold == zero.
	(mpn_toom8_mul_n_itch): Likewise.
	(MPN_TOOM6H_MIN, MPN_TOOM8H_MIN): Define.
	* tests/mpn/t-toom6h.c: No tests below MPN_TOOM6H_MIN.
	* tests/mpn/t-toom8h.c: No tests below MPN_TOOM8H_MIN.

	* mpz/lucnum_ui.c: Use mpn_addlsh2_n.

2011-02-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/atom/rsh1aors_n.asm: Add a MULFUNC_PROLOGUE.
	* mpn/x86_64/atom/dive_1.asm: Likewise.
	* mpn/x86_64/atom/popcount.asm: Likewise.
	* mpn/x86_64/core2/popcount.asm: Likewise.
	* mpn/x86_64/coreinhm/hamdist.asm: Likewise.
	* mpn/x86_64/coreinhm/popcount.asm: Likewise.
	* mpn/x86_64/nano/popcount.asm: Likewise.
	* mpn/x86_64/pentium4/popcount.asm: Likewise.

2011-02-04 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86/atom/mode1o.asm: New file, grabbing another asm file.
	* mpn/x86/atom/mul_1.asm: Claim mul_1c.

2011-02-02  Niels Möller  <nisse@lysator.liu.se>

	* tune/speed.h (SPEED_ROUTINE_MPN_HGCD_CALL): Fixed one
	speed_operand_dst call.

2011-02-01  Torbjorn Granlund  <tege@gmplib.org>

	* tune/speed.h (struct speed_params): Allow for 4 dst operands.
	* tune/common.c (TOLERANCE): Increase from 0.5% to 1%.

	* tune/speed.h (SPEED_ROUTINE_MPN_HGCD_CALL): New macro, mainly based
	on old speed_mpn_hgcd, but with speed_operand_src calls (as suggested
	by Niels).
	* tune/common.c (speed_mpn_hgcd): Invoke SPEED_ROUTINE_MPN_HGCD_CALL.
	(speed_mpn_hgcd_lehmer): Likewise.

	* configure.in: Set up 32-bit x86 paths for new corei* CPU strings.

2011-01-31  Torbjorn Granlund  <tege@gmplib.org>

	* config.guess: Recognise new Intel processors.

	* config.guess: Support 'coreinhm' and 'coreisbr'.
	* config.sub: Likewise.
	* configure.in: Likewise.

2011-01-30  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Support x86/geode.
	* mpn/x86/geode/gmp-mparam.h: New file.

2011-01-29 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86/atom/addlsh1_n.asm: Removed.
	* mpn/x86/atom/rsh1add_n.asm: Likewise.

2011-01-28  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/alpha/ev6/slot.pl: Add some missing insns.

2011-01-28 Marco Bodrato <bodrato@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@gmplib.org>

	* mpn/x86_64/atom/rsh1aors_n.asm: New file, grabbing another asm file.
	* mpn/x86_64/atom/popcount.asm: Likewise.
	* mpn/x86_64/atom/dive_1.asm: Likewise.
	* mpn/x86_64/nano/popcount.asm: Likewise.

2011-01-26  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/alpha/invert_limb.asm: Complete rewrite.

2011-01-25  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc32/invert_limb.asm: New file.

2011-01-25 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86/pentium4/sse2/bdiv_q_1.asm: New file.
	* mpn/x86/k7/bdiv_q_1.asm: New file.

2011-01-24  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (tune_mul_n, tune_sqr): Loop, re-measuring thresholds
	until no tiny ranges remain.

2011-01-23  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/ia64/mul_2.asm: Tweak to 1.5 c/l, less overhead.

	* mpn/ia64/addmul_2.asm: Rewrite, adding mpn_addmul_2s entry point.

2011-01-22  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/ia64/aors_n.asm: Fix some incorrect bundle types.

	* mpn/ia64/sqr_diagonal.asm: Remove.

	* mpn/ia64/sqr_diag_addlsh1.asm: New file.

	* mpn/ia64/ia64-defs.m4: Define some shorter convenience mnemonics.

	* mpn/generic/sqr_basecase.c (MPN_SQR_DIAG_ADDLSH1): New macro, using
	new function mpn_sqr_diag_addlsh1 or defining its equivalent.

	* gmp-impl.h (mpn_addmul_2s): Declare.
	(mpn_sqr_diag_addlsh1): Declare.
	* mpn/asm-defs.m4 (define_mpn): Add addmul_2s and sqr_diag_addlsh1.

	* configure.in: Add HAVE_NATIVEs for mpn_sqr_diag_addlsh1 and
	mpn_addmul_2s.
	(gmp_mpn_functions_optional): Add sqr_diag_addlsh1.

2011-01-21 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/devel/try.c: Initial support for mpn_bdiv_q_1.
	* mpn/x86/pentium/bdiv_q_1.asm: New file.
	* mpn/x86/p6/bdiv_q_1.asm: New file.

2011-01-20  Torbjorn Granlund  <tege@gmplib.org>

	* tune/speed.c (run_gnuplot): Update to current gnuplot syntax.

	* mpn/powerpc64/mode64/aorsmul_1.asm: Trim away 0.5 c/l for submul_1
	for POWER5.

2011-01-19  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/core2/rsh1aors_n.asm: New file.

2011-01-18 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/x86/bdiv_q_1.asm: New file (same core alg. as dive_1).

2011-01-15 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/divexact.c: Avoid COPY if not needed.

2011-01-14  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h (struct cpuvec_t): Add field bmod_1_to_mod_1_threshold.
	* configure.in (fat_thresholds): Add BMOD_1_TO_MOD_1_THRESHOLD.

2011-01-13 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/mul.c: Remove redundant size computation.

2011-01-08  Torbjorn Granlund  <tege@gmplib.org>

	* tests/devel/try.c (types enum): Add TYPE_MUL_5 and TYPE_MUL_6.
	(param_init): Support new types.
	(choice_array): Support testing of mpn_mul_5 and mpn_mul_6.
	(call): Support new routines.

	* tests/refmpn.c (refmpn_mul_5, refmpn_mul_6): New functions.
	* tests/tests.h (refmpn_mul_5, refmpn_mul_6): Declare.
	Remove parameter names from some other functions.

	* gmp-impl.h (mpn_mul_5, mpn_mul_6): Declare.
	* mpn/asm-defs.m4: Likewise, also declare mpn_addmul_5, mpn_addmul_6,
	mpn_addmul_7, and mpn_addmul_8.

	* configure.in (gmp_mpn_functions_optional): Add mul_5 and mul_6.

	* tune/speed.c (routine): Add measuring of mpn_mul_5 and mpn_mul_6.
	* tune/common.c (speed_mpn_mul_5, speed_mpn_mul_6): New functions.
	* tune/speed.h: Declare new functions.

2011-01-03 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpz/aors.h: Remove #ifdef BERKELEY_MP, and cleanup.
	* mpz/cmp.c: Likewise.
	* mpz/gcd.c: Likewise.
	* mpz/mul.c: Likewise.
	* mpz/powm.c: Likewise.
	* mpz/set.c: Likewise.
	* mpz/sqrtrem.c: Likewise.
	* mpz/tdiv_qr.c: Likewise.

2010-12-28  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/minithres/gmp-mparam.h: Update with several recent thresholds.

2010-12-19  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/k7/mod_1_1.asm: Canonicalise cmov forms.
	* mpn/x86/k7/mod_1_4.asm: Likewise.
	* mpn/x86/pentium4/sse2/mod_1_1.asm: Likewise.
	* mpn/x86/pentium4/sse2/mod_1_4.asm: Likewise.
	* mpn/x86_64/core2/divrem_1.asm: Likewise.
	* mpn/x86_64/divrem_1.asm: Likewise.
	* mpn/x86_64/mod_1_1.asm: Likewise.
	* mpn/x86_64/mod_1_2.asm: Likewise.
	* mpn/x86_64/mod_1_4.asm: Likewise.

	* mpn/x86/k7/gcd_1.asm: Rewrite.  Remove slow 'div' loop.  Call
	mpn_mod_1 for operands with mode than BMOD_1_TO_MOD_1_THRESHOLD limbs.
	Misc cleanups.

2010-12-18  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/gcd_1.asm: Call mpn_mod_1 for operands with mode than
	BMOD_1_TO_MOD_1_THRESHOLD limbs.

	* configure.in: Generalise code for putting THRESHOLDs in config.m4.
	Add BMOD_1_TO_MOD_1_THRESHOLD to list.

	* mpn/x86_64/core2/divrem_1.asm: Tweak slightly, correct cycle counts.

	* mpn/x86_64/addmul_2.asm: Remove constant index.
	* mpn/x86_64/lshiftc.asm: Likewise.
	* mpn/x86_64/pentium4/lshift.asm: Likewise.
	* mpn/x86_64/pentium4/lshiftc.asm: Likewise.
	* mpn/x86_64/pentium4/rshift.asm: Likewise.

2010-12-16  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/mod_34lsub1.asm: Complete rewrite.
	* mpn/x86_64/pentium4/mod_34lsub1.asm: New file, old
	mpn/x86_64/mod_34lsub1.asm.

2010-12-15  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/vmx/popcount.asm: Rewrite to use vperm count table.

2010-12-14  Torbjorn Granlund  <tege@gmplib.org>

	* mp-h.in: Remove.
	* configure.in: Remove mp-h.in from AC_OUTPUT invocation.

2010-12-13  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/mod.c: Rewrite.

	* mpn/x86_64/corei/popcount.asm: New file.
	* mpn/x86_64/corei/hamdist.asm: New file.

	* mpn/x86_64/k10/hamdist.asm: New file.

	* configure.in: Amend last change for lame /bin/sh.

2010-12-12  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Comment out M4=m4-not-needed.

	* mpn/x86_64/k10/popcount.asm: New file.
	* configure.in: Setup special path for k10 and later AMD CPUs.
	Remove special x86_64'k8' path, since directory is non-existent.

2010-12-11  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/sparc32/ultrasparct1: New directory.
	* mpn/sparc32/ultrasparct1/add_n.asm: New file.
	* mpn/sparc32/ultrasparct1/sub_n.asm: New file.
	* mpn/sparc32/ultrasparct1/mul_1.asm: New file.
	* mpn/sparc32/ultrasparct1/addmul_1.asm: New file.
	* mpn/sparc32/ultrasparct1/submul_1.asm: New file.
	* mpn/sparc32/ultrasparct1/sqr_diagonal.asm: New file.

	* config.guess: Support Ultrasparc T2 and T3.
	* config.sub: Likewise.
	* configure.in: Likewise.

	* config.guess: Generalise BSD Sparc recognition by allowing any
	caps (needed for OpenBSD which spells things innovatively).

2010-12-01  Torbjorn Granlund  <tege@gmplib.org>

	* config.guess: Match new AMD processors, allow finer distinctions
	among old ones.
	* acinclude.m4 (X86_64_PATTERN): Likewise.
	* config.sub: Likewise.
	* configure.in: Rudimentarily support new AMD processors.

	* configure.in (--enable_assembly): New option.
	(target none-*-*): Disable, give error.

2010-11-29  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/x86-defs.m4 (LEA): Support non-PIC code.
	* mpn/x86/darwin.m4 (LEA): Likewise.

	* tests/amd64call.asm: Rewrite for code size, and to match calls and
	returns.

	* tests/x86call.asm: Rewrite for code size, to support PIC, and to
	match calls and returns.
	* tests/x86check.c: Rewrite.

2010-11-22  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/get_str.c: Make all bases either work or return an error.
	* mpz/out_str.c: Likewise.
	* mpq/get_str.c: Likewise.
	* mpf/get_str.c: Likewise.

2010-11-14  Torbjorn Granlund  <tege@gmplib.org>

	* tests/misc/t-printf.c: Add explicit casts for type conversions.
	* mpn/generic/toom62_mul.c: Likewise.

2010-11-13  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/get_d.c: Misc cleanup.  Fail with a syntax error for
	non-IEEE fp formats.

	* tests/devel/try.c (malloc_region): Add explicit casts for type
	conversions.

	* acinclude.m4 (GMP_ASM_RODATA): Make test code snippet C++ compatible.
	(GMP_C_DOUBLE_FORMAT): Likewise.
	(GMP_FUNC_VSNPRINTF): Likewise.

	* config.guess (x86): Make test C snippet C++ compatible.

2010-11-12  Torbjorn Granlund  <tege@gmplib.org>

	* Makefile.am: Remove mpbsd.
	* configure.in: Remove mpbsd.
	* doc/configuration: Remove mpbsd mentions.
	* doc/gmp.texi: Remove mpbsd docs.
	* tests/Makefile.am: Remove mpbsd.
	* libmp.sym: Remove.
	* mpbsd: Remove directory and files.
	* tests/mpbsd: Remove directory and files.

2010-11-11  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/atom/aors_n.asm: Don't rely on ZF after 'bt' insn.
	Use 64-bit 'test' to support operands of 2^32 limbs and more.

	* rand: New directory, move rand*.c and randmt.h here.
	* rand/Makefile.am: New file.
	* Makefile.am (SUBDIRS): Add rand.
	(RANDOM_OBJECTS): New variable.
	(libgmp_la_SOURCES): Remove random objects.
	(libgmp_la_DEPENDENCIES): Add RANDOM_OBJECTS.
	* configure.in (AC_OUTPUT): Add rand/Makefile.

	* ansi2knr.1: File removed.
	* ansi2knr.c: File removed.

2010-11-10  Torbjorn Granlund  <tege@gmplib.org>

	Make it possible to compile GMP with g++:

	* gmp-impl.h: Declare __gmp_digit_value_tab here.
	* mpbsd/min.c: ...not here.
	* mpbsd/xtom.c: ...nor here.
	* mpf/set_str.c: ...nor here.
	* mpz/inp_str.c: ...nor here.
	* mpz/set_str.c: ...nor here.

	* mpn/generic/toom43_mul.c: Add casts for logical operations on enums.
	* mpn/generic/toom44_mul.c: Likewise.
	* mpn/generic/toom4_sqr.c: Likewise.
	* mpn/generic/toom52_mul.c: Likewise.
	* mpn/generic/toom53_mul.c: Likewise.
	* mpn/generic/toom62_mul.c: Likewise.

	* mpz/clrbit.c: Clean up typing using MPZ_REALLOC.
	* mpz/setbit.c: Likewise.

	* mpz/powm.c: Avoid variable name 'new'.

	* randlc2x.c: Add explicit casts for type conversions.
	* tests/misc/t-printf.c: Likewise.
	* tests/misc/t-scanf.c: Likewise.
	* tests/misc.c: Likewise.
	* tests/mpz/convert.c: Likewise.
	* tests/refmpn.c: Likewise.

	* tests/tests.h: Unconditionally use <sstream> for now.

	* tests/memory.c: Include "tests.h.

	* mp_get_fns.c: Add a __GMP_NOTHROW for coherency with prototype.
	* mp_set_fns.c: Likewise.
	* mpf/cmp.c: Likewise.
	* mpf/cmp_si.c: Likewise.
	* mpf/cmp_ui.c: Likewise.
	* mpf/fits_s.h: Likewise.
	* mpf/fits_u.h: Likewise.
	* mpf/get_dfl_prec.c: Likewise.
	* mpf/get_prc.c: Likewise.
	* mpf/get_si.c: Likewise.
	* mpf/get_ui.c: Likewise.
	* mpf/int_p.c: Likewise.
	* mpf/set_dfl_prec.c: Likewise.
	* mpf/set_prc_raw.c: Likewise.
	* mpf/size.c: Likewise.
	* mpf/swap.c: Likewise.
	* mpq/equal.c: Likewise.
	* mpq/swap.c: Likewise.
	* mpz/cmp.c: Likewise.
	* mpz/cmp_si.c: Likewise.
	* mpz/cmp_ui.c: Likewise.
	* mpz/cmpabs.c: Likewise.
	* mpz/cmpabs_ui.c: Likewise.
	* mpz/cong_2exp.c: Likewise.
	* mpz/divis_2exp.c: Likewise.
	* mpz/fits_s.h: Likewise.
	* mpz/get_si.c: Likewise.
	* mpz/hamdist.c: Likewise.
	* mpz/scan0.c: Likewise.
	* mpz/scan1.c: Likewise.
	* mpz/sizeinbase.c: Likewise.
	* mpz/swap.c: Likewise.
	* mpz/tstbit.c: Likewise.
	* tal-reent.c: Likewise.

2010-11-09  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Get rid of K&R support.
	* Makefile.am: Likewise.
	* mpn/Makefile.am: Likewise.
	* doc/configuration: Update docs wrt K&R support.
	* doc/gmp.texi: Likewise.

	* configure.in (AC_INIT): Amend bug reporting address with manual
	reference.

2010-11-06  Torbjorn Granlund  <tege@gmplib.org>

	* config.guess: If cpuid says we have 32bit-only x86 but
	configfsf.guess return x86_64, return the latter.

	* mpn/x86_64/aors_n.asm: Rewrite not to rely on ZF after 'bt' insn.

2010-10-09  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/trialdiv.c: Update documentation.

2010-10-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/gcd_1.asm: Use m4_lshift to avoid << operator.
	* mpn/x86_64/aorrlshC_n.asm: Likewise.
	* mpn/x86_64/pentium4/aorslshC_n.asm: Likewise.
	* mpn/x86/k7/gcd_1.asm: Likewise.

2010-08-20  Niels Möller  <nisse@lysator.liu.se>

	Suggested by Ozkan Sezer:
	* configure.in: If $M4 is already set in the environment, don't
	touch it. Fixed the case that no assembler files are used, and
	GMP_PROG_M4 is omitted.

2010-08-08  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/fat/fat.c: Recognise many more processors.

2010-06-30  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/divrem_2.asm: Tune.

2010-06-19  Niels Möller  <nisse@lysator.liu.se>

	* tune/speed.h (SPEED_ROUTINE_MPN_MOD_1_1): Pass normalized
	divisor to the benchmarked function.

2010-06-15  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p_cps): Rewrite.
	* mpn/x86_64/mod_1_2.asm (mpn_mod_1s_2p_cps): Rewrite.
	* mpn/x86_64/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite.

	* gmp-impl.h (udiv_rnd_preinv): Simplify.

	* mpn/x86/k7/mod_1_1.asm: New file.
	* mpn/x86/pentium4/sse2/mod_1_1.asm (mpn_mod_1_1p_cps): Rewrite.
	* mpn/x86/k7/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite.
	* mpn/x86/pentium4/sse2/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite.

	* mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Store results as they are
	computed.
	* mpn/generic/mod_1_2.c (mpn_mod_1s_2p_cps): Likewise.
	* mpn/generic/mod_1_4.c (mpn_mod_1s_4p_cps): Likewise.

	* mpn/x86/k7/invert_limb.asm: Moved from mpn/x86/invert_limb.asm.

2010-06-15  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-mod_1.
	* tests/mpn/t-mod_1.c: New file.

2010-05-25  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mu_div_qr.c (mpn_preinv_mu_div_qr_itch): Trim out space
	for inverse, since that is passed in already.

2010-05-24  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mu_div_qr.c (mpn_preinv_mu_div_qr_itch): New function.
	* gmp-impl.h: Declare it.
	* tune/common.c (speed_mpn_mupi_div_qr): Use new itch function.
	* tune/speed.h (SPEED_ROUTINE_MPN_MUPI_DIV_QR): Pass parameters right
	for new itch function.

	* mpn/powerpc32/lshiftc.asm: New file.

2010-05-22  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (tune_mod_1): Revert to version of 2010-05-06.

2010-05-17  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (ia64): Get 32-bit sizeof test right.

	* tune/tuneup.c (tune_mod_1): Undo unintensional change to tuning of
	PREINV_MOD_1_TO_MOD_1_THRESHOLD.

2010-05-16  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/sparc64/mod_1.c: Rewrite.
	* mpn/sparc64/sparc64.h (umul_ppmm_s): New macro.
	* mpn/sparc64/mod_1_4.c: New file.

	* mpn/generic/divrem_1.c: Minor cleanup.
	* mpn/generic/mod_1.c: Likewise.
	* mpn/generic/mod_1_1.c: Likewise.
	* mpn/generic/mod_1_2.c: Likewise.
	* mpn/generic/mod_1_3.c: Likewise.
	* mpn/generic/mod_1_4.c: Likewise.

	* configure.in (ia64-hpux): Do sizeof tests for 32-bit and 64-bit ABI.

	* tune/tuneup.c (tune_mod_1): Completely finish MOD_1_N tuning before
	tuning MOD_1U_TO_MOD_1_1_THRESHOLD.

2010-05-14  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/redc_2.c: Use asm code just for GNU C.

2010-05-13  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/sparc64/ultrasparc1234: New directory.  Move all code that uses
	floating-point into this directory.
	* configure.in: Point to ultrasparc1234 for appropriate CPUs.

	* mpn/sparc64/ultrasparct1/add_n.asm: New file.
	* mpn/sparc64/ultrasparct1/addlsh2_n.asm: New file.
	* mpn/sparc64/ultrasparct1/addmul_1.asm: New file.
	* mpn/sparc64/ultrasparct1/lshift.asm: New file.
	* mpn/sparc64/ultrasparct1/mul_1.asm: New file.
	* mpn/sparc64/ultrasparct1/rsblsh2_n.asm: New file.
	* mpn/sparc64/ultrasparct1/rshift.asm: New file.
	* mpn/sparc64/ultrasparct1/sublsh1_n.asm: New file.
	* mpn/sparc64/ultrasparct1/sublshC_n.asm: New file.
	* mpn/sparc64/ultrasparct1/addlsh1_n.asm: New file.
	* mpn/sparc64/ultrasparct1/addlshC_n.asm: New file.
	* mpn/sparc64/ultrasparct1/lshiftc.asm: New file.
	* mpn/sparc64/ultrasparct1/rsblsh1_n.asm: New file.
	* mpn/sparc64/ultrasparct1/rsblshC_n.asm: New file.
	* mpn/sparc64/ultrasparct1/sub_n.asm: New file.
	* mpn/sparc64/ultrasparct1/sublsh2_n.asm: New file.
	* mpn/sparc64/ultrasparct1/submul_1.asm: New file.
	* mpn/sparc64/ultrasparct1/gmp-mparam.h: New file.

	* configure.in: Give ultrasparct1 and ultrasparct2 special code path.

	* mpn/x86_64/pentium4/gmp-mparam.h: Disable mpn_addlsh_n, mpn_rsblsh_n.

2010-05-12  Niels Möller  <nisse@lysator.liu.se>

	* mpz/jacobi.c (mpz_jacobi): Fixed off-by-one error in use of
	scratch space.

	* tune/common.c (speed_mpz_powm_sec): New function.
	* tune/speed.h: Declare speed_mpz_powm_sec.
	* tune/speed.c (routine): Added speed_mpz_powm_sec.

	* tune/common.c (speed_mpn_addlsh_n, speed_mpn_sublsh_n)
	(speed_mpn_rsblsh_n): New functions.
	* tune/speed.h: Declare new functions.
	* tune/speed.c (routine): Add new functions.

2010-05-12  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/mod_1_4.asm: Tune for more processors.

	* mpn/x86_64/pentium4/lshiftc.asm: New file.

2010-05-11  Niels Möller  <nisse@lysator.liu.se>

	* mpz/jacobi.c (mpz_jacobi): Deleted old implementation.
	Reorganized new implementation, to handle small inputs efficiently.

	* tests/mpz/t-jac.c (check_large_quotients): Reduced test sizes.
	(check_data): One more input pair related to a fixed bug.
	(main): Enable check_large_quotients.

2010-05-10  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/aorrlsh2_n.asm: Fix typo.

2010-05-09  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/aorrlshC_n.asm: New file based on aorrlsh2_n.asm.
	* mpn/x86_64/aorrlsh2_n.asm: Now just include aorrlshC_n.asm.
	* mpn/x86_64/core2/aorrlsh1_n.asm: New file, include ../aorrlshC_n.asm.
	* mpn/x86_64/core2/aorrlsh2_n.asm: Likewise.

	* mpn/x86_64/core2/sublshC_n.asm: New file based on aorslsh1_n.asm.
	* mpn/x86_64/core2/aorslsh1_n.asm: Remove.
	* mpn/x86_64/core2/sublsh1_n.asm: Just include sublshC_n.asm.
	* mpn/x86_64/core2/sublsh2_n.asm: Likewise.

2010-05-08  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/atom/gmp-mparam.h: Disable mpn_rsh1add_n, mpn_rsh1sub_n.

	* mpn/x86_64/pentium4/aorslshC_n.asm: New file based on aorslsh1_n.asm.
	* mpn/x86_64/pentium4/aorslsh1_n.asm: Now just include aorslshC_n.asm.
	* mpn/x86_64/pentium4/aorslsh2_n.asm: New file.

2010-05-07  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/sparc64: Support operands of >= 2^32 limbs.

	* mpn/sparc64/lshiftc.asm: New file.

	* mpn/ia64/divrem_2.asm: Complete rewrite.

2010-05-06  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (all): Don't call tune_divrem_2.

	* mpn/generic/divrem_2.c: Complete rewrite.

	* tune/tuneup.c (tune_mod_1): Fix typo.

2010-05-05  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p): Use macro register names.
	(mpn_mod_1_1p_cps): Rewrite.

	* mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Micro-optimise.

	* longlong.h: Undo 2009-03-01 change for powerpc64, it gives poor code.

	* mpn/x86/pentium4/sse2/mod_1_1.asm: New file.

	* mpn/powerpc64/mode64/mod_1_1.asm: New file.

	* tune/tuneup.c (tune_mod_1): Use more typical divisor, for the benefit
	of machines with early-out multipliers.

2010-05-04  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (tune_mod_1): Fix typo.

	* mpn/generic/mod_1_1.c: Undo last change.
	* mpn/x86_64/mod_1_1.asm: Likewise.

2010-05-03  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/jacobi_lehmer.c (jacobi_hook): New function.
	(mpn_jacobi_subdiv_step): Deleted function.
	(mpn_jacobi_lehmer): Use general mpn_gcd_subdiv_step.

	* mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): Reorganized
	to use a single hook function.
	* mpn/generic/gcdext.c (mpn_gcdext): Adapted to new hook
	interface.
	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_hook): New unified hook
	function.
	* mpn/generic/gcd.c (gcd_hook): Renamed from gcd_done, and adapted
	to new hook interface.
	* gmp-impl.h (gcd_subdiv_step_hook): New typedef, now a function
	type, not a struct.
	(mpn_gcdext_hook): Declare.

2010-05-03  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mod_1_1.c: Avoid multiply for 2 limb feed-in.
	* mpn/generic/mod_1_2.c: Likewise.
	* mpn/generic/mod_1_3.c: Likewise.
	* mpn/generic/mod_1_4.c: Likewise.
	* mpn/x86_64/mod_1_1.asm: Likewise.
	* mpn/x86_64/mod_1_2.asm: Likewise.
	* mpn/x86_64/mod_1_4.asm: Likewise.
	* mpn/x86/k7/mod_1_4.asm: Likewise.
	* mpn/x86/pentium4/sse2/mod_1_4.asm: Likewise.
	* mpn/alpha/ev6/mod_1_4.asm: Likewise.

	* tune/tuneup.c (tune_mod_1): Measure MOD_1_1_TO_MOD_1_2_THRESHOLD and
	MOD_1_2_TO_MOD_1_4_THRESHOLD before MOD_1U_TO_MOD_1_1_THRESHOLD for
	correctness.

	* mpn/powerpc64/sqr_diagonal.asm: Complete rewrite.

	* mpn/powerpc64/mode64/mod_1_4.asm: New file.

2010-05-02  Torbjorn Granlund  <tege@gmplib.org>

	* config.guess: Recognise power7.

	* configure.in: Major overhaul of powerpc support.

	* mpn/powerpc64/p6/lshift.asm: New file.
	* mpn/powerpc64/p6/lshiftc.asm: Likewise.
	* mpn/powerpc64/p6/rshift.asm: Likewise.

2010-04-30  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (powerpc64): Support CPU specific mode-less subdirs.

	* mpn/powerpc64/aix.m4 (PROLOGUE_cpu): Use "named csect" making
	requested alignment actually honoured.

2010-04-30  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/jacobi_lehmer.c (mpn_jacobi_2): Fixed handling of
	the case bl == 1. Fixed missing application of reciprocity.

2010-04-29  Niels Möller  <nisse@lysator.liu.se>

	* configure.in (gmp_mpn_functions): Deleted gcdext_subdiv_step.

	* mpn/generic/gcdext.c (mpn_gcdext): Use new generalized
	mpn_gcd_subdiv_step.

	* mpn/generic/gcdext_lehmer.c (gcdext_update): New function.
	(gcdext_done): New function.
	(gcdext_hook): New const hook struct.
	(mpn_gcdext_lehmer_n): Use new generalized mpn_gcd_subdiv_step.

	* mpn/generic/gcd.c (gcd_done): New function.
	(gcd_hook): New const hook struct.
	(mpn_gcd): Adapted to new mpn_gcd_subdiv_step interface.

	* mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): Reorganized
	function. Added hook function pointers to the argument list, so
	the same function can be used for gcd, gcdext, and jacobi.

	* gmp-impl.h (struct gcd_subdiv_step_hook): New struct.
	(mpn_gcdext_subdiv_step): Deleted prototype.
	(struct gcdext_ctx): New struct.
	(gcdext_hook): Declare const struct.
	(mpn_gcd_subdiv_step): Updated prototype.

	* mpn/generic/gcdext_subdiv_step.c: Deleted file.

2010-04-28  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/lshift.asm: Rewrite.
	* mpn/powerpc64/rshift.asm: Likewise.
	* mpn/powerpc64/mode64/lshiftc.asm: New file.

	* mpn/powerpc64/aix.m4: Align functions to 32-byte boundary.
	* mpn/powerpc64/darwin.m4: Likewise.
	* mpn/powerpc64/elf.m4: Likewise.

2010-04-28  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpz/t-jac.c (check_data): Added some more test cases.

	* mpn/generic/jacobi_lehmer.c (mpn_jacobi_2): Bugfix, count
	trailing zeros, not leading.

2010-04-27  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/mode64/p6/mul_basecase.asm: New file.

2010-04-23  Niels Möller  <nisse@lysator.liu.se>

	* gmp-impl.h (MPN_GCD_LEHMER_N_ITCH): Deleted.
	(mpn_gcd_lehmer_n): Deleted declaration.

	* mpn/generic/gcd.c (gcd_2): Moved from gcd_lehmer.c.
	(mpn_gcd): Inlined the code from mpn_gcd_lehmer_n. Also use
	MPN_GCD_SUBDIV_STEP_ITCH rather than MPN_GCD_LEHMER_N_ITCH.

2010-04-22  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/mode64/bdiv_dbm1c.asm: Swap multiply insns to make them
	consecutive, for the benefit of POWER6.

	* mpn/powerpc64/mode64/p6/gmp-mparam.h: New file.

2010-04-21  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/gcd_lehmer.c: Deleted file.

	* mpn/powerpc64/mode64/divrem_1.asm: Swap multiply insns to make them
	consecutive, for the benefit of POWER6.
	* mpn/powerpc64/mode64/dive_1.asm: Likewise.
	* mpn/powerpc64/mode64/divrem_2.asm: Likewise.
	* mpn/powerpc64/mode64/mul_1.asm: Likewise.
	* mpn/powerpc64/mode64/aorsmul_1.asm: Likewise.

	* mpn/powerpc64/mode64/aorslshC_n.asm: Swap ldx operands as a temporary
	workaround for POWER6 pipeline glitch.

2010-04-19  Niels Möller  <nisse@lysator.liu.se>

	* mpz/jacobi.c (mpz_jacobi): New implementation using
	mpn_jacobi_lehmer. Currently #if:ed out.

	* mpn/generic/jacbase.c (mpn_jacobi_base)
	[JACOBI_BASE_METHOD < 4]: Support inputs with a >= b.

	* gmp-impl.h (mpn_jacobi_lehmer): Added prototype.
	(jacobi_table): Declare.
	(mpn_jacobi_init): New inline function.
	(mpn_jacobi_finish): Likewise.
	(mpn_jacobi_update): Likewise.

	* mpn/generic/jacobi_lehmer.c (mpn_jacobi_lehmer): New file, new
	function.

	* configure.in (gmp_mpn_functions): Added jacobi_lehmer.

2010-04-14  Niels Möller  <nisse@lysator.liu.se>

	* configure.in (gmp_mpn_functions): Added
	matrix22_mul1_inverse_vector.
	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Added
	matrix22_mul1_inverse_vector.c.

	* gmp-impl.h (mpn_matrix22_mul1_inverse_vector): Updated for
	rename of mpn_matrix22_mul1_inverse_vector.
	* mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer_n): Likewise.
	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Likewise.
	* mpn/generic/hgcd.c (hgcd_step): Likewise.

	* mpn/generic/matrix22_mul1_inverse_vector.c
	(mpn_matrix22_mul1_inverse_vector): New file, function moved and
	renamed...
	* mpn/generic/hgcd2.c (mpn_hgcd_mul_matrix1_inverse_vector):
	...from here.

2010-04-12  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpn/t-toom6h.c (SIZE_LOG): Define.
	* tests/mpn/t-toom8h.c (SIZE_LOG): Likewise.

2010-04-10  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/ia64/lorrshift.asm: Rewrite feed-in and wind-down code.

	* mpn/ia64/aorslsh1_n.asm: Adapt to new aorslsh1_n.
	* mpn/ia64/aorslsh1_n.asm: Likewise.

	* mpn/ia64/aors_n.asm: Complete rewrite.
	* mpn/ia64/aorslsh1_n.asm: Likewise.

	* mpn/ia64/add_n_sub_n.asm: Misc cleanups.  Add slotting comments.

	* mpn/ia64/lshiftc.asm: New file.

	* mpn/x86_64/pentium4/gmp-mparam.h: No longer disable rsh1add_n and
	rsh1sub_n; instead disable rsblsh1_n, addlsh2_n, rsblsh2_n.

	* mpn/x86/divrem_2.asm: Use "orb" instead of "or" to work around
	Solaris assembler bug.
	* mpn/x86_64/mpn/x86_64/divrem_2.asm: Likewise.

	* mpn/x86/aors_n.asm: Use operand-less shift-by-1 insn form.
	* mpn/x86/pentium/aors_n.asm: Likewise.
	* mpn/x86_64/invert_limb.asm: Likewise.

	* mpn/x86_64/pentium4/aors_n.asm: Let non-nc code fall into nc code.

	* mpn/x86_64/pentium4/rsh1aors_n.asm: New file.

2010-03-25  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/ia64/add_n_sub_n.asm: New file.

	* mpn/generic/toom33_mul.c: Fix mpn_add_n_sub_n usage.
	* mpn/generic/toom3_sqr.c: Likewise.
	* mpn/generic/toom63_mul.c: Likewise.

	* mpn/generic/add_n_sub_n.c: Renamed from addsub_n.c.

2010-03-23  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/divrem_2.asm: Use mpn_invert_limb instead of div insn.

	* mpn/ia64/aorslshC_n.asm: New file, generalised from last iteration of
	aorslsh1_n.asm.
	* mpn/ia64/aorslsh1_n.asm: Use aorslshC_n.asm.
	* mpn/ia64/aorslsh1_n.asm: New file, use aorslshC_n.asm.

2010-03-20  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/mode64/invert_limb.asm: Rewrite to exploit cancellation
	in the Newton iteration.

2010-03-20 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/toom_interpolate_8pts.c: Use mpn_sublsh2_n.

2010-03-20  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/mode64/aorslshC_n.asm: New file, generalised from
	last iteration of aorslsh1_n.asm.
	* mpn/powerpc64/mode64/aorslsh1_n.asm: Use aorslshC_n.asm.
	* mpn/powerpc64/mode64/aorslsh1_n.asm: New file, use aorslshC_n.asm.

2010-03-19  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/nano/dive_1.asm: New file.

	* mpn/x86_64/divrem_1.asm: Avoid shld since it is slow on several CPU
	types.  Unconditionally provide code for normalised and unnormalised
	divisors.  Cleanup labels.

	* mpn/x86_64/core2/divrem_1.asm: Remove special code for normalised
	divisors.  Cleanup labels.

	* mpn/generic/toom_interpolate_6pts.c: Call mpn_sublsh2_n and
	mpn_sublsh_n with correct args.

	* tests/devel/try.c: Use enum for TYPE_*.

	* tests/devel/try.c: Test mpn_sublsh2_n.
	* tests/refmpn.c (refmpn_sublsh2_n): New function.
	* tests/tests.h (refmpn_sublsh2_n): Declare.

	* mpn/powerpc64/mode64/aorslsh1_n.asm: New file, with faster
	mpn_addlsh1_n and mpn_sublsh1_n.
	* mpn/powerpc64/mode64/addlsh1_n.asm: Delete.
	* mpn/powerpc64/mode64/sublsh1_n.asm: Delete.

2010-03-18  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (*-*-aix): Define gcc_32_cflags_maybe, ar_32_flags and
	nm_32_flags.

	* mpn/x86/pentium4/sse2/addlsh1_n.asm: Tune for slightly better speed.
	Misc cleanups.  Add cycle table.

	* mpn/x86_64/copyi.asm: Update cycle table.
	* mpn/x86_64/copyd.asm: Likewise.
	* mpn/x86_64/rsh1aors_n.asm: Likewise.
	* mpn/x86_64/dive_1.asm: Likewise.

	* mpn/x86/pentium4/sse2/add_n.asm: Misc cleanups.  Add cycle table.
	* mpn/x86/pentium4/sse2/sub_n.asm: Likewise.

2010-03-16  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/divrem_1.asm: Use mpn_invert_limb instead of div insn.
	* mpn/x86_64/core2/divrem_1.asm: Likewise.

	* tune/speed.c (routine): Add FLAG_R_OPTIONAL for many binops.

2010-03-15  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/alpha/ev6/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite.

	* mpn/ia64/aors_n.asm: Insert explicitly typed nops to trigger intended
	bundling.
	* mpn/ia64/aorslsh1_n.asm: Likewise.
	* mpn/ia64/dive_1.asm: Likewise.

2010-03-13  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/pentium4/sse2/submul_1.asm: Rewrite.

	* mpn/powerpc64/mode64/aorsmul_1.asm: New file, faster than old code
	for both mpn_addmul_1 and mpn_submul_1.
	* mpn/powerpc64/mode64/addmul_1.asm: Remove.
	* mpn/powerpc64/mode64/submul_1.asm: Remove.

2010-03-11  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/gcd_lehmer.c (gcd_2): Use sub_ddmmss.

	* mpn/generic/jacbase.c (mpn_jacobi_base): Reorganized the
	JACOBI_BASE_METHOD 4 slightly. Now requires that b > 1.

2010-03-10  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/divrem_1.asm: Make fraction code take documented # of
	cycles.  Annotate code for more CPUs.  Misc cleanups.
	* mpn/x86_64/core2/divrem_1.asm: Annotate code for more CPUs.

	* mpn/alpha/ev6/mod_1_4.asm: New file.

	* mpn/ia64/mod_34lsub1.asm: New file.

	* doc/gmp.texi (Language Bindings): Update Python site, add Ruby.

2010-03-10  Niels Möller  <nisse@lysator.liu.se>

	* tune/tuneup.c (tune_jacobi_base): Consider mpn_jacobi_base_4.
	* tune/speed.c (routine): Added mpn_jacobi_base_4.
	* tune/common.c (speed_mpn_jacobi_base_4): New function.
	* tune/speed.h (speed_mpn_jacobi_base_4): Declare it.
	* tune/Makefile.am (libspeed_la_SOURCES): Added jacbase4.c.
	* tune/jacbase4.c: New file.

	* mpn/generic/jacbase.c (mpn_jacobi_base): New function, for
	JACOBI_BASE_METHOD 4.

2010-03-09  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpz/t-jac.c (check_large_quotients): Also generate inputs
	with large quotients and a large gcd.

2010-03-09 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/mpz/t-bin.c (randomwalk): New test-generator function.

2010-03-07  Torbjorn Granlund  <tege@gmplib.org>

	* tune/speed.c (routine): Force r argument for several mod_1 calls.

2010-03-06  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/divrem_1.asm: Disable SPECIAL_CODE_FOR_NORMALIZED_DIVISOR.
	Misc clean up.

	* mpn/x86_64/mod_1_1.asm: New file.
	* mpn/x86_64/mod_1_2.asm: New file.
	* mpn/x86_64/mod_1_4.asm: Update cycle counts.

	* tests/tests.h (TESTS_REPS): Fix typo.

2010-03-03  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/core2/divrem_1.asm: New file.

2010-02-26  Niels Möller  <nisse@lysator.liu.se>

	* tune/speed.c (routine): Added udiv_qrnnd_preinv3.

	* tune/common.c (speed_udiv_qrnnd_preinv3): New function.
	* tune/speed.h: Added prototype for it.

2010-02-26  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpz/t-jac.c (check_large_quotients): New test. Currently
	disabled, since it's quite slow.
	(mpz_nextprime_step): New function.

2010-02-26  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/pa64/aors_n.asm: Fix typo in last change.

2010-02-25  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpz/t-jac.c (ref_jacobi): New reference implementation,
	using factorization and legendre symbols computed by powm.

	* tests/devel/try.c (param_init, call): Don't pass negative values
	for the second argument to mpz_jacobi and refmpz_jacobi.

	* tests/refmpz.c (refmpz_jacobi): Require that b is odd and positive.

	* tests/devel/try.c (param_init): Support mpz_legendre.
	(choice_array): Added mpz_kronecker (apparently forgotten) and
	mpz_legendre.
	(call): Added TYPE_MPZ_LEGENDRE.
	(try_one): Added support for DATA_SRC1_ODD_PRIME.

	* tests/refmpz.c (refmpz_legendre): Rewrote using powm.

2010-02-25  Torbjorn Granlund  <tege@gmplib.org>

	* config.guess: Make "corei" default for unrecognised Intel P6 CPUs.

	* tests/mpz/t-perfpow.c (check_random): Use mp_limb_t type for limb
	variables.

	* tests/mpn/t-toom6h.c (COUNT): Define.
	* tests/mpn/t-toom8h.c (COUNT): Define.

	* tests/mpn/t-div.c: Cast a switch index to placate HP's cc.
	* tests/mpn/t-bdiv.c: Likewise.

	* mpn/pa64/aors_n.asm: Fix support of the 2.0n ABI.

2010-02-24 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/mpz/t-bin.c (data): Replace (2k,k), tested by twos ().
	* tests/mpf/t-inp_str.c (data): Test also "+" in the exponent.

2010-02-23  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mod_1_3.c: Cast a switch index to placate HP's cc.

	* mpn/generic/sqrtrem.c: Use CNST_LIMB.

2010-02-20  Niels Möller  <nisse@lysator.liu.se>

	* tune/speed.h (mpn_gcd_accel): Deleted prototype.
	(mpn_hgcd_lehmer): New prototype.
	(MPN_HGCD_LEHMER_ITCH): New macro (previously in gmp-impl.h).

	* tune/Makefile.am (libspeed_la_SOURCES): Added hgcd_lehmer.c.
	* tune/hgcd_lehmer.c: New file.
	* tune/gcd_accel.c: Deleted obsolete file.

	* gmp-impl.h (MPN_HGCD_LEHMER_ITCH): Deleted macro.

	* mpn/generic/hgcd.c (mpn_hgcd_lehmer): Deleted function,
	(mpn_hgcd): Don't call mpn_hgcd_lehmer, instead use inlined loop
	around hgcd_step.
	(mpn_hgcd_itch): Substitute n for MPN_HGCD_LEHMER_ITCH (n).

2010-02-19  Niels Möller  <nisse@lysator.liu.se>

	* Makefile.am (mpn/jacobitab.h): Added the rules needed to
	generate this file.

	* gen-jacobitab.c: New file.

2010-02-19  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/powm.c: Honour SQR_BASECASE_THRESHOLD in innerloop
	expansions.

2010-02-16  Niels Möller  <nisse@lysator.liu.se>

	* tune/time.c (cgt_works_p): Added rudimentary sanity check for
	clock_gettime working.

2010-02-15  Niels Möller  <nisse@lysator.liu.se>

	* tune/time.c (speed_time_init): Make use of cycle counter
	configurable, via the speed_option_cycles_broken flag.
	* tune/common.c (speed_option_cycles_broken): New global variable.
	(speed_option_set): Recognize option "cycles-broken".

	* tune/time.c (cycles_works_p): Deleted hack to disable cycle
	counter on linux. Needs to be replaced by something more
	selective.

2010-02-11  Niels Möller  <nisse@lysator.liu.se>

	* tune/time.c (speed_time_init): Fix speed_time_string when using
	clock_gettime.
	(cycles_works_p): On linux, don't use the cycle counter.

	* tune/Makefile.am: Add $(TUNE_LIBS) when linking programs.

	* configure.in: Check if -lrt is needed for clock_gettime, and if
	so, add that flag to TUNE_LIBS.

2010-02-07  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (tune_redc): Set min_size and min_is_always when
	measuring REDC_1_TO_REDC_2_THRESHOLD.
	(tune_mod_1): Set min_size for PREINV_MOD_1_TO_MOD_1_THRESHOLD.

	* mpn/x86_64/aorrlsh_n.asm (cnt): Fix a typo.
	* mpn/x86_64/lshsub_n.asm: Likewise.

2010-02-05  Torbjorn Granlund  <tege@gmplib.org>

	* Version 5.0.1 released.

	* mpn/generic/powm.c: Use rp target area for power table computation in
	order to use less scratch.

	* mpn/generic/binvert.c (mpn_binvert_itch): Enable more economical
	mpn_mulmod_bnm1_itch call.

	* mpn/generic/mu_div_qr.c: Remove always true #if.
	* mpn/generic/mu_divappr_q.c: Likewise.
	* mpn/generic/mu_bdiv_q.c: Likewise.
	* mpn/generic/mu_bdiv_qr.c: Likewise.

2010-02-01  Torbjorn Granlund  <tege@gmplib.org>

	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
	Bump version info.

	* mpn/powerpc64/mode64/gmp-mparam.h: Remove {MUL,SQR}_FFT_TABLE2.
	* mpn/x86/p6/gmp-mparam.h: Likewise.
	* mpn/x86/p6/mmx/gmp-mparam.h: Likewise.
	* mpn/generic/mul_fft.c: Don't depend on FFT_TABLE2, it was broken.

2010-01-29  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mul_fft.c (mpn_mul_fft_internal): Remove arguments n, m,
	k and rec; add argument sqr.  Don't call mpn_mul_fft_decompose here,
	instead do that in all callers.
	(mpn_mul_fft): Trim allocation when squaring, and use TMP_ALLOC*, not
	explicit alloc/free.
	(mpn_fft_div_2exp_modF): Avoid a scalar division.
	(mpn_fft_mul_modF_K): Replace some multiplies by K with shifting by k.
	(mpn_fft_mul_2exp_modF): Make function more symmetrical.

2010-01-27  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mu_div_q.c (mpn_mu_div_q_itch): Rewrite.
	* mpn/generic/mu_div_qr.c (mpn_mu_div_qr_itch): Re-enable
	better mulmod itch estimate.
	* mpn/generic/mu_divappr_q.c (mpn_mu_divappr_q_itch): Likewise.
	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Likewise.
	* mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise.

2010-01-27 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/mu_div_qr.c (mpn_mu_div_qr_itch): Disabled guessed
	estimate, enabled a conservative one.
	* mpn/generic/mu_divappr_q.c (mpn_mu_divappr_q_itch): Likewise.
	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Likewise.
	* mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise.

2010-01-26 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Partial rewrite to
	reduce memory usage.
	* mpn/generic/sqrmod_bnm1.c (mpn_sqrmod_bnm1): Likewise.
	(mpn_sqrmod_bnm1_next_size): New function.

	* gmp-impl.h (mpn_mulmod_bnm1_itch): Accepts 3 parameters now.
	(mpn_sqrmod_bnm1_itch): New inline function.
	(mpn_sqrmod_bnm1_next_size): Declaration and mangling.
	* mpn/generic/nussbaumer_mul.c: Use the new functions.

	* mpn/generic/invertappr.c (mpn_ni_invertappr): Use new syntax for
	mpn_mulmod_bnm1_itch.
	* mpn/generic/mu_divappr_q.c (mpn_mu_divappr_q_itch): Likewise.
	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Likewise.
	* mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise.
	* mpn/generic/mu_div_qr.c (mpn_mu_div_qr_itch): Likewise.
	* mpn/generic/binvert.c (mpn_binvert_itch): Likewise.
	* tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_CALL): Likewise.
	(SPEED_ROUTINE_MPN_MULMOD_BNM1_ROUNDED): Likewise.

	* tests/mpn/t-sqrmod_bnm1.c, tests/mpn/t-mulmod_bnm1.c: Test
	reduced memory usage.

2010-01-25  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (INSERT_FFTTAB): New macro, like old insertion code but
	also inserting a sentinel.
	(fftmes): Use INSERT_FFTTAB for inserting new measurements.
	Limit k range to best_k - 4 ... best_k + 4.

2010-01-23  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-h.in (__GNU_MP_VERSION_PATCHLEVEL): Bump.
	(__GMP_MP_RELEASE): New macro.

	* mpf/div.c: Rewrite to use mpn_div_q.

2010-01-21  Torbjorn Granlund  <tege@gmplib.org>

	* Add FFT_TABLE3 tables for a basic set of machines.

	* configure.in: Use -mtune=nocona for 64-bit pentium4.

	* config.guess: Recognise many more Intel processors.

	* tune/common.c: Whitespace cleanup.
	(speed_mpn_matrix22_mul): Rewrite.

2010-01-21  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/nussbaumer_mul.c (mpn_nussbaumer_mul): Take
	advantage of new mpn_mulmod_bnm1 interface, to reduce allocation.

	* tests/mpn/t-mulmod_bnm1.c (ref_mulmod_bnm1, main): Adapted to
	mpn_mulmod_bnm1 interface change.

	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Interface change,
	in case an + bn < rn, only write an + bn output limbs. New input
	requirement, an + bn > rn/2.
	* mpn/generic/sqrmod_bnm1.c (mpn_sqrmod_bnm1): Corresponding
	changes.

2010-01-19  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (fftmes): Round up initial n according to initial k.
	Limit k to 24 in loop.  Remove an obsolete always-true condition.
	Remove a redundant trace printout.

2010-01-18  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (fftmes): New function
	(fft): Rewrite.
	(mpn_mul_fft_lcm): New function, copied from mpn/generic/mul_fft.c.
	(fftfill): New function, code taken from mul_fft.c (mpn_mul_fft).
	(cached_measure): New function.

	* gmp-impl.h (struct fft_table_nk): Moved from mul_fft.c.
	(MUL_FFT_TABLE3, SQR_FFT_TABLE3): Provide dummy versions for tuneup
	builds.
	(FFT_TABLE3_SIZE): Increase value for tuneup builds.

	* mpn/generic/mul_fft.c: Handle a new FFT threshold table type ("3").
	Misc cleanups to old table type code.

2010-01-16  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/darwin.m4: Fix typo in last change.

2010-01-15  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-h.in (__GMP_EXTERN_INLINE): Remove "extern" for newer Sun C.

	* gmp-impl.h (GMP_LIMB_BYTES): New define.

	* mpn/x86_64/darwin.m4 (LEA): New define.

	* mpn/x86/invert_limb.asm (approx_tab): Use DEF_OBJECT.
	Rename and globalise it to work around Mac OS bug.

	With Philip McLaughlin:
	* mpn/x86_64/gcd_1.asm (ctz_table): Don't use local prefix, but
	use DEF_OBJECT...END_OBJECT.
	Keep stack pointer at ABI mandated alignment over call.

2010-01-12  Torbjorn Granlund  <tege@gmplib.org>

	* tune/speed.c (routine): Remove obsolete mpn_dc_tdiv_qr and
	mpn_dc_div_qr_n.
	* tune/common.c (speed_mpn_dc_tdiv_qr, speed_mpn_dcpi1_div_qr_n):
	Remove now unused functions.
	* tune/speed.h (SPEED_ROUTINE_MPN_DC_DIVREM_N,
	SPEED_ROUTINE_MPN_DC_DIVREM_SB, SPEED_ROUTINE_MPN_DC_TDIV_QR): Remove
	now unused macros.

	* mpn/x86_64/fat/fat_entry.asm (mpn_cpuid_available): Remove function.

	* ltmain.sh: Upgrade from 1.5.24 to 2.2.6b.
	* ylwrap: New file.
	* .bootstrap: Remove explicit versions.

	* doc/gmp.texi (Block-wise Barrett Division): New node.

	* mpn/generic/powm.c: Change some #if to plain 'if' to avoid fat build
	problems.

2010-01-11  Torbjorn Granlund  <tege@gmplib.org>

	* tune/speed.h (SPEED_ROUTINE_MPN_PI1_DIV): Accept arguments for size
	restrictions.
	* tune/common.c (speed_mpn_sbpi1_div_qr, speed_mpn_dcpi1_div_qr,
	(speed_mpn_sbpi1_divappr_q, speed_mpn_dcpi1_divappr_q): Pass size
	limits for SPEED_ROUTINE_MPN_PI1_DIV.

	* tune/speed.c (routine): Allow .r argument for mpn_sbpi1_divappr_q and
	mpn_dcpi1_divappr_q.

2010-01-08  Torbjorn Granlund  <tege@gmplib.org>

	* Version 5.0.0 released.

	* mpn/generic/div_q.c: Handle mpn_*_divappr_q returning high limb
	everywhere.

2010-01-07  Torbjorn Granlund  <tege@gmplib.org>

	* Update MUL_FFT_TABLE2 and SQR_FFT_TABLE2 for many machines.

	* mpn/generic/mu_div_q.c: Account for divisor truncation error as well
	as mpn_mu_divappr_q's error.

	* mpn/generic/mu_div_q.c: Handle mpn_preinv_mu_divappr_q returning a
	high limb.

	* tests/mpn/t-bdiv.c: Move a random call for debugability.
	* tests/mpn/t-div.c: Likewise.

	* mpn/generic/mu_divappr_q.c: Rewrite quotient round-up code.

	* mpn/generic/mu_div_qr.c: Handle carry-out from a carry propagation
	subtract.
	* mpn/generic/mu_divappr_q.c: Likewise.

	* mpn/generic/mu_divappr_q.c
	(mpn_preinv_mu_divappr_q, mpn_mu_divappr_q): Declare dividend constant.
	* gmp-impl.h: Likewise.

	* perfpow.c (mpn_perfect_power_p): Call mpn_divexact instead of
	mpn_bdiv_q (with too little scratch space!).

	From Niels Möller:
	* tests/mpn/t-div.c (check_one): Get rid of the poorly managed variable
	tn.

	* mpn/minithres/gmp-mparam.h: Add all lately defined thresholds.

	* mpn/generic/div_q.c: Use SB division for small quotients as well as
	small divisors.  Fix typo in itch call.

2010-01-06  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpn/t-div.c (check_one): Checking based on multiplication,
	refmpn_mul, rather than refmpn_tdiv_qr.

2010-01-06 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/toom8h_mul.c: Avoid overflows of mp_size_t.

2010-01-06  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-h.in (__GNU_MP__): Bump.
	(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL):
	Bump version info.
	* mp-h.in (__GNU_MP__): Bump.
	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
	Bump version info.

	* doc/gmp.texi: Rewrite mpn_gcdext text.  Remove some out-of-date
	text in Algorithms chapter.

	* mpn/generic/div_q.c: Properly handle np=scratch.  Fix critical typo
	in final adjustment code.  Misc cleanups.

	* mpn/generic/rootrem.c: Use mpn_div_q.
	* mpz/tdiv_q.c: Likewise.

	* tests/mpn/t-div.c: Test mpn_div_q.
	(SIZE_LOG): Up to 17.

	* mpn/generic/div_q.c: New file.
	* configure.in (gmp_mpn_functions): Add div_q.

	* mpn/generic/mu_div_q.c: Actually declare dividend constant.

2010-01-04  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (fft): Separate tuning of modf and full products.
	(struct fft_param_t): New field, mul_modf_function.
	(tune_fft_sqr): Fix typo.
	(tune_fft_mul, tune_fft_sqr): Initialise mul_modf_function field.
	* tune/common.c (speed_mpn_fft_mul, speed_mpn_fft_sqr): New functions.

	* tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_ROUNDED): Clean up.

	* mpn/generic/mul.c: Simplify rational expression.

	* gmp-impl.h: Cleanup threshold variables; remove obsolete ones and
	make all possibly needed definitions for existing ones.
	* tune/tuneup.c (tune_mul): Write fractions-compensated values to
	threshold variables.

2010-01-03 Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tune/common.c, tune/speed.c, tune/speed.h: Support measuring
	mpn_toom43_mul.

	* mpn/generic/toom_interpolate_6pts.c: Small reorganisation.

2010-01-03  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h (MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD): Default to
	INV_MULMOD_BNM1_THRESHOLD/2 instead.

	* gmp-impl.h (INV_APPR_THRESHOLD, INV_MULMOD_BNM1_THRESHOLD): Default
	here...
	* mpn/generic/invert.c, mpn/generic/invertappr.c: ...not here.

	* tests/mpn/t-div.c: Rewrite operand generation code.

2010-01-02  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h (MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD): Default to
	INV_MULMOD_BNM1_THRESHOLD.

2010-01-02  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/dcpi1_div_q.c: Handle divappr approximation problem more
	efficiently.
	* mpn/generic/mu_div_q.c: Likewise.

	* mpn/generic/invert.c: Remove duplicated code.

2010-01-01  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h (MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD): Default to 0.

	* mpn/generic/mu_div_qr.c: Rewrite to use mpn_mulmod_bnm1.  Clean up
	scratch usage.  Improve itch functions.
	* mpn/generic/mu_divappr_q.c: Likewise.
	* mpn/generic/mu_bdiv_qr.c: Likewise.
	* mpn/generic/mu_div_q.c: Likewise.

	* mpn/generic/dcpi1_bdiv_qr.c: Add parameter ASSERTs.
	* mpn/generic/dcpi1_bdiv_q.c: Likewise.

	* tests/mpn/t-bdiv.c: Replace with unit testing code, based on t-div.c.
	Increase COUNT to 500.

	* tests/mpn/t-div.c: Avoid generating too small test operands.
	Move SB suppression limit downwards.  Increase COUNT to 200.

2009-12-31  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/tdiv_qr.c: Handle numerator/remainder overlap in MU case.

	* tests/tests.h (TESTS_REPS): New macro.
	* tests/mpz/dive.c: Use larger operands, decrease default reps, use
	TESTS_REPS.
	* tests/mpz/convert.c: Likewise.
	* tests/mpz/t-sqrtrem.c: Likewise.
	* tests/mpz/reuse: Likewise.
	* tests/mpz/t-root.c: Likewise.
	* tests/mpz/t-tdiv.c: Likewise.
	* tests/mpz/t-gcd.c: Likewise.
	* tests/mpz/t-powm.c: Likewise.

2009-12-31  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/toom8_sqr.c (SQR_TOOM8_MAX): Avoid overflow.
	* mpn/generic/toom6_sqr.c (SQR_TOOM6_MAX): Likewise.

	* mpn/generic/mulmod_bnm1.c: Don't mention MISUSE any more,
	simply consider UNLIKELY any unexpected size.

2009-12-31  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (speed_mpn_sbordcpi1_div_qr): New function.
	(tune_mu_div): Use it.

2009-12-30  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (tune_mu_bdiv, tune_dc_bdiv, tune_mu_div)
	(tune_dc_div): Clear global s.r to make speed functions do 2n/n.

	* tune/speed.c (routine): New entries for mpn_mu_div_qr and
	mpn_mupi_div_qr.  Allow .r parameter for mpn_sbpi1_div_qr,
	mpn_dcpi1_div_qr.
	* tune/speed.h (SPEED_ROUTINE_MPN_PI1_DIV, SPEED_ROUTINE_MPN_MU_DIV_QR)
	(SPEED_ROUTINE_MPN_MUPI_DIV_QR): Handle .r parameter.

	* tests/mpz/t-tdiv.c: Increase operands size again.

	* mpn/generic/tdiv_qr.c: Attempt to choose between DC and MU cleverer.

	* mpn/generic/tdiv_qr.c: Don't overwrite rp with unnecessary temporary
	alloc.

2009-12-29  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (tune_mu_div): Tune MUPI_DIV_QR_THRESHOLD.
	* tune/speed.h (struct speed_params): Allow 3 source operands.
	(SPEED_ROUTINE_MPN_MUPI_DIV_QR): New macro.
	* tune/common.c (speed_mpn_mupi_div_qr): New function.

	* mpn/generic/tdiv_qr.c: Call mpn_mu_div_qr.

	* tests/mpz/t-tdiv.c: Use larger test operands.

	* mpn/generic/mu_div_qr.c (mpn_mu_div_qr2): Remove code for dn==1.

	* mpz/mul.c: Call mpn_sqr directly.  Use PTR,SIZ,ALLOC.

	* tune/tuneup.c (tune_mu_div): Set min_size to 6, DC functions require
	this.

	* tests/mpn/t-div.c: Call mu_div functions with operands that generate
	a high quotient limb.

	* mpn/generic/mu_div_qr.c: Rewrite to return a high quotient limb,
	to let dividend argument be constant, and as a general cleanup.
	* mpn/generic/mu_divappr_q.c: Likewise.
	* mpn/generic/mu_div_q.c: Likewise.
	* gmp-impl.h: Update declarations of changed functions.

	* mpn/generic/invertappr.c (mpn_invertappr): Allocate scratch space
	when caller passed NULL.

2009-12-28  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/toom_couple_handling.c: Prefix name with mpn_.
	* gmp-impl.h: Likewise.
	* mpn/generic/toom63_mul.c: Likewise.
	* mpn/generic/toom6_sqr.c: Likewise.
	* mpn/generic/toom6h_mul.c: Likewise.
	* mpn/generic/toom8_sqr.c: Likewise.
	* mpn/generic/toom8h_mul.c: Likewise.

	* configure.in (gmp_mpn_functions_optional) Move "com" from here...
	(gmp_mpn_functions): ...to here.
	* mpn/generic/com.c: New file.
	* (mpn_com): New name for mpn_com_n.  Make public.
	* (mpn_neg): Analogous changes.

	* tune/tuneup.c (tune_mu_div, tune_mu_bdiv): Set step_factor.

	* tune/common.c, tune/speed.c, tune/speed.h: Support measuring
	mpn_lshiftc.

	* tests/devel/try.c: Test mpn_lshiftc.
	* tests/refmpn.c (refmpn_com): New function.
	(refmpn_lshiftc): Likewise.

	* configure.in (gmp_mpn_functions_optional) Move lshiftc from here...
	(gmp_mpn_functions): ...to here.
	* mpn/generic/lshiftc.c: New file.
	* mpn/x86_64/lshiftc.asm: New file.
	* mpn/x86_64/core2/lshiftc.asm: New file.
	* mpn/generic/mul_fft.c (mpn_lshiftc): Remove.

	* mpn/x86_64/core2/lshift.asm: Tweak for better Core iN performance.
	* mpn/x86_64/core2/rshift.asm: Likewise.

2009-12-27  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/mul.c: Use toom6h and toom8h for almost balanced.

	* mpn/generic/mullo_n.c (mpn_dc_mullo_n): New ratio, to be used in
	Toom-8 range.

2009-12-27  Torbjorn Granlund  <tege@gmplib.org>

	* (mpn_sqr): New name for mpn_sqr_n.  Many files affected.

	* tune/tuneup.c (tune_mullo): Up step_factor for MULLO_MUL_N_THRESHOLD.
	(tune_invertappr, tune_invert, tune_binvert): Let max_size default.

	* tune/tuneup.c (tune_mu_div, tune_mu_bdiv) New functions.
	* tune/speed.h (SPEED_ROUTINE_MPN_MU_DIV_Q): New macro.
	(SPEED_ROUTINE_MPN_MU_DIV_QR): Likewise.
	(SPEED_ROUTINE_MPN_MU_BDIV_Q): Likewise.
	(SPEED_ROUTINE_MPN_MU_BDIV_QR): Likewise.
	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add bdiv_q.c and bdiv_qr.c.
	* tune/common.c (speed_mpn_mu_div_qr): New function.
	(speed_mpn_mu_divappr_q): Likewise.
	(speed_mpn_mu_div_q): Likewise.
	(speed_mpn_mu_bdiv_q): Likewise.
	(speed_mpn_mu_bdiv_qr): Likewise.

	* mpn/*/gmp-mparam.h: Fix incorrect MOD_1U_TO_MOD_1_1_THRESHOLD 0
	values.

	* gmp-impl.h (MODEXACT_1_ODD_THRESHOLD): Remove.
	(BMOD_1_TO_MOD_1_THRESHOLD): New parameter, with the reverse meaning of
	MODEXACT_1_ODD_THRESHOLD.
	(MPN_MOD_OR_MODEXACT_1_ODD): Use BMOD_1_TO_MOD_1_THRESHOLD.
	* mpn/generic/divis.c, mpz/{cong.c,cong_ui.c,divis_ui.c}: Likewise.
	* tune/tuneup.c (tune_modexact_1_odd): Tune BMOD_1_TO_MOD_1_THRESHOLD;
	Do not assume native mpn_modexact_1_odd is faster than mpn_mod_1.
	(tuned_speed_mpn_mod_1): Remove variable.
	(tune_mod_1): Fix thinkos.  Suppress printing of "always" etc.
	(all): Measure for divrem_1, mod_1, divexact_1, etc first, since Toom
	depends on some of them.

	* mpn/generic/toom22_mul.c (TOOM22_MUL_REC): New name for
	TOOM22_MUL_MN_REC.

2009-12-26  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpn/t-toom32.c (MIN_AN, MIN_BN, MAX_BN): Relax
	requirements a bit.

	* mpn/generic/toom32_mul.c (mpn_toom32_mul): Relax requirement on
	input sizes, to support s+t>=n (used to be s+t>=n+2). Keep high
	limbs of the evaluated values in scalar variables.

	* mpn/generic/sbpi1_divappr_q.c (mpn_sbpi1_divappr_q): Remove
	unused variables.

	* mpn/generic/toom32_mul.c (mpn_toom32_mul): Fixed left-over use
	of mpn_addsub_n which should be mpn_add_n_sub_n.

2009-12-26  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add new toom files (spotted by Torbjorn).

	* gmp-impl.h (mpn_toom6_sqr_itch): Rename to mpn_toom6_mul_n_itch and redefine.
	(mpn_toom8_sqr_itch): Rename to mpn_toom8_mul_n_itch and redefine.
	* mpn/generic/mul_n.c: Use renamed _itch macros.

2009-12-25  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpn/t-toom32.c (MIN_AN, MIN_BN, MAX_BN): Tightened requirements.
	* gmp-impl.h (mpn_toom32_mul_itch): Updated. Less scratch needed
	by toom32 itself, and also the pointwise multiplications are
	currently mpn_mul_n with no supplied scratch.
	* mpn/generic/toom32_mul.c (mpn_toom32_mul): Reorganized
	interpolation to use less scratch space. No longer supports the
	most extreme size ratios.

2009-12-25  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (tune_preinv_mod_1): Purge.
	(tune_mod_1): Use speed_mpn_mod_1_tune for
	PREINV_MOD_1_TO_MOD_1_THRESHOLD

	* mpn/generic/dcpi1_divappr_q.c: Handle 2n/n properly.  Don't use full
	precision in mpn_sbpi1_divappr_q call.  Misc cleanup.

	* tune/tuneup.c (tune_mod_1): Add a check_size for
	PREINV_MOD_1_TO_MOD_1_THRESHOLD.

2009-12-24  Torbjorn Granlund  <tege@gmplib.org>

	* tune/mod_1_div.c (MOD_1N_TO_MOD_1_1_THRESHOLD,
	(MOD_1U_TO_MOD_1_1_THRESHOLD): Set.
	* tune/mod_1_inv.c (MOD_1N_TO_MOD_1_1_THRESHOLD,
	(MOD_1U_TO_MOD_1_1_THRESHOLD): Set.

	* gmp-impl.h (USE_PREINV_MOD_1): Remove.
	(MPN_MOD_OR_PREINV_MOD_1): Define to choose functions dynamically in
	terms of PREINV_MOD_1_TO_MOD_1_THRESHOLD (used to choose statically
	using USE_PREINV_MOD_1).
	* mpn/generic/perfsqr.c (PERFSQR_MOD_PP): Corresponding updates.

	* tune/tuneup.c (tune_mod_1): Rewrite.
	* gmp-impl.h (MOD_1N_TO_MOD_1_1_THRESHOLD): New.
	(MOD_1U_TO_MOD_1_1_THRESHOLD): New name for MOD_1_1_THRESHOLD.
	(MOD_1_1_TO_MOD_1_2_THRESHOLD): Mew name for MOD_1_2_THRESHOLD.
	(MOD_1_2_TO_MOD_1_4_THRESHOLD): New name for MOD_1_4_THRESHOLD.
	* mpn/generic/mod_1.c: Corresponding updates.

2009-12-24  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/mul_n.c: Use also toom6h and toom8h.
	* mpn/generic/sqr_n.c: Use also toom6 and toom8.
	* gmp-impl.h: Initial support for tuning of Toom-6half and Toom-8half.
	* tune/tuneup.c: Tune Toom-6half and Toom-8half thresholds.

2009-12-24  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mod_1_4.c: Get ASSERT right.
	* mpn/generic/mod_1_3.c: Likewise.
	* mpn/generic/mod_1_2.c: Likewise.

	* mpn/generic/powm_sec.c: Use SQR_TOOM2_THRESHOLD as limit for a native
	mpn_sqr_basecase, not TUNE_SQR_TOOM2_MAX.

2009-12-23  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tune/common.c, tune/speed.c, tune/speed.h: Support for measuring
	mpn_toom8h_mul and mpn_toom8_sqr speed.

	* mpn/generic/toom_eval_pm2exp.c: Fix ASSERTs.

	* mpn/generic/toom8h_mul.c: New file.
	* mpn/generic/toom8_sqr.c: New file.
	* mpn/generic/toom_interpolate_16pts.c: New file.
	* gmp-impl.h: Provide corresponding declarations.
	* configure.in (gmp_mpn_functions): List toom_interpolate_16pts,
	toom8h_mul, and toom8h_sqr.
	* tests/mpn/t-toom8h.c: New test program.

	* mpn/generic/toom6_sqr.c: New file, was part of toom6h_mul.
	* mpn/generic/toom6h_mul.c: Removed _sqr.

	* mpn/generic/mulmod_bnm1.c: Nailify CRT.
	* mpn/generic/sqrmod_bnm1.c: Likewise.

	* mpn/generic/mullo_n.c: Split dc_mullo_n function;
	ALLOC memory at once.

	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Update.

	* mpn/generic/toom6h_mul.c: Add prefix to toom_interpolate_12pts.
	* mpn/generic/toom_interpolate_12pts.c: Likewise.

	* mpn/generic/invertappr.c (mpn_bc_invertappr): Use mpn_divrem_2.
	* mpn/generic/invert.c: Faster basecase, use mpn_sbpi1_div_q.

	* mpn/generic/toom_eval_pm2exp.c: Assert support for degree 3.
	* mpn/generic/toom6h_mul.c: Avoid obsolete _itch function.

2009-12-23  Torbjorn Granlund  <tege@gmplib.org>

	* tune/common.c, tune/speed.c, tune/speed.h: Support for measuring
	mpn_mod_1_1p, mpn_mod_1s_2p, mpn_mod_1s_3p, mpn_mod_1s_4p.

	* tests/mpz/t-powm.c: Test mpz_powm_sec.

	* mpz/powm_sec.c: New file.
	* gmp-h.in: Declare it.
	* Makefile.am, mpz/Makefile.am: Compile it.
	* doc/gmp.texi: Document it.

	* mpn/generic/powm_sec.c (mpn_powm_sec_itch): New function.
	(mpn_powm_sec): Use passed scratch, no local allocation.
	Allow exp argument = 1.
	(win_size): Start loop from 1.

	* mpn/generic/powm.c (win_size): Start loop from 1.

2009-12-22  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpn/t-div.c: New file.
	* tests/mpn/Makefile.am: Compile it.

	* mpn/generic/mu_divappr_q.c: Handle quotient overflow.

	* mpn/generic/mu_div_q.c (mpn_mu_div_q_itch): New function.

2009-12-22  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/sbpi1_div_q.c: Use udiv_qr_3by2.  Intended to change
	nothing after preprocessing.

	* mpn/generic/sbpi1_divappr_q.c: For the last call to udiv_qr_3by2,
	avoid using memory locations as output parameters, and revert to
	explicitly copying n1 and n0 to memory.

	* gmp-impl.h (udiv_qr_3by2): Tweaked to expand to precisely the
	same code as was used before the introduction of this macro.
	Eliminated some local variables, instead do multiple updates to
	the output parameters.

2009-12-22  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpn/t-toom6h.c (MIN_AN): Set to MUL_TOOM6H_THRESHOLD to avoid
	invalid recursive sizes.

	* tests/mpn/t-bdiv.c: Get itch function calls right.

	* mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Rewrite.
	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Simplify.

	* mpn/generic/bdiv_qr.c (mpn_bdiv_qr): Simplify, don't allocate.
	(mpn_bdiv_qr_itch): Conditionalise on MU_BDIV_QR_THRESHOLD.

2009-12-18  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpn/t-bdiv.c: Add red-zones.

2009-12-21  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/sbpi1_div_q.c: Fix fixup code to work for qn = 0.

	* mpn/generic/dcpi1_divappr_q.c: Handle qn = 1 and qn = 2 for initial
	quotient block (code block copied from dcpi1_div_qr.c).

	* mpn/generic/dcpi1_div_qr.c: Rewrite singular case giving q limb of
	GMP_NUMB_MAX.  Remove an impossible qn = 0 case.

	* mpn/generic/dcpi1_bdiv_q.c: Remove a spurious mpn_sub_1.

	* mpn/generic/mul.c: Put back call to mpn_mul_n.

	* tune/tuneup.c (all): Call tune_mulmod_bnm1 before tuning fft due to
	dependency on mulmod_bnm1 from both mul_fft_mul and from mullo_n.

	* mpn/generic/dcpi1_divappr_q.c: ASSERT that dn >= 6 and nn > dn.
	* mpn/generic/dcpi1_div_q.c: ASSERT that dn >= 6 and nn-dn >= 3.
	* mpn/generic/dcpi1_div_qr.c: ASSERT that dn >= 6 and nn-dn >= 3.

	* mpn/generic/bdiv_q_1.c (mpn_pi1_bdiv_q_1): Renamed from
	mpn_bdiv_q_1_pi1.
	* All references changed.

	* configure.in: Add --enable-old-fft-full.
	* tune/speed.c (routine): Conditionalise mpn_mul_fft_full references on
	WANT_OLD_FFT_FULL.
	* tune/common.c (speed_mpn_mul_fft_full)
	(speed_mpn_mul_fft_full_sqr): Likewise.
	* mpn/generic/mul_fft.c (mpn_mul_fft_full): Include iff
	WANT_OLD_FFT_FULL.

2009-12-21  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gmp-impl.h (mpn_toom6h_mul_itch): New inline function.
	(MUL_TOOM6H_THRESHOLD): Default value.
	(SQR_TOOM6_THRESHOLD): Default value.
	* mpn/generic/toom6h_mul.c: Remove definitions moved to gmp-impl.h.
	* tune/common.c, tune/speed.c, tune/speed.h: Support for measuring
	mpn_toom6h_mul and mpn_toom6_sqr speed.

	* mpn/generic/toom63_mul.c: Remove unused TMP_*.

	* mpn/generic/toom_eval_pm2rexp.c: New file.
	* gmp-impl.h: Provide corresponding declaration.
	* configure.in (gmp_mpn_functions): List toom_eval_pm2rexp.
	* mpn/generic/toom6h_mul.c: Use shared toom_eval_pm2rexp.

	* mpn/generic/toom_couple_handling.c: New file, helper function
	for high degree Toom.
	* gmp-impl.h: Provide corresponding declaration.
	* configure.in (gmp_mpn_functions): List toom_couple_handling.
	* mpn/generic/toom6h_mul.c: Use shared toom_couple_handling.
	* mpn/generic/toom63_mul.c: Likewise.

	* mpn/generic/toom6h_mul.c: New file.
	* mpn/generic/toom_interpolate_12pts.c: New file.
	* gmp-impl.h: Provide corresponding declarations.
	* configure.in (gmp_mpn_functions): List toom_interpolate_12pts,
	toom6h_mul.
	* tests/mpn/t-toom6h.c: New test program.

	* tests/mpn/t-mulmod_bnm1.c (ref_mulmod_bnm1): Use ref_mul.
	* tests/mpn/t-sqrmod_bnm1.c (ref_sqrmod_bnm1): Likewise.

2009-12-20  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): New CRT.
	* mpn/generic/sqrmod_bnm1.c (mpn_sqrmod_bnm1): Likewise.

2009-12-20  Torbjorn Granlund  <tege@gmplib.org>

	* Change all bit counts for bignums to use mp_bitcnt_t.

	* mpn/generic/bdivmod.c: File removed.  All references purged.

	* mpn/generic/mul_fft.c (mpn_mul_fft_full): Disable.

	* gmp-impl.h: Define mpn_fft_mul as an alias for mpn_nussbaumer_mul.
	* mpn/generic/mul.c: Refer mpn_fft_mul.
	* mpn/generic/mul_n.c: Likewise.
	* mpn/generic/sqr_n.c: Likewise.
	* mpn/generic/mullo_n.c: Likewise.

	* mpn/generic/mul.c: Loop also over mpn_nussbaumer_mul, as suggested by
	Marco.  Use TMP_SALLOC_LIMBS in more places.  Clean up ws allocation.

2009-12-19  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/toom_interpolate_8pts.c: Nailify.

2009-12-19  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mul.c: Major rewrite.  Use toom43, toom53, toom63.
	Call mpn_nussbaumer_mul for largest operands.

	* tune/speed.h (SPEED_ROUTINE_MPN_TOOM32_FOR_TOOM43_MUL): New macro.
	(SPEED_ROUTINE_MPN_TOOM43_FOR_TOOM32_MUL): New macro.
	(SPEED_ROUTINE_MPN_TOOM32_FOR_TOOM53_MUL): New macro.
	(SPEED_ROUTINE_MPN_TOOM53_FOR_TOOM32_MUL): New macro.
	(SPEED_ROUTINE_MPN_TOOM42_FOR_TOOM53_MUL): New macro.
	(SPEED_ROUTINE_MPN_TOOM53_FOR_TOOM42_MUL): New macro.
	* tune/common.c (speed_mpn_toom63_mul): New function.
	(speed_mpn_toom32_for_toom43_mul): New function.
	(speed_mpn_toom43_for_toom32_mul): New function.
	(speed_mpn_toom32_for_toom53_mul): New function.
	(speed_mpn_toom53_for_toom32_mul): New function.
	(speed_mpn_toom42_for_toom53_mul): New function.
	(speed_mpn_toom53_for_toom42_mul): New function.
	* tune/tuneup.c (tune_mul_n): New name for old tune_mul.
	(tune_sqr_n): New name for old tune_sqr.
	(tune_mul): New function, for unbalanced multiplication.
	* gmp-impl.h: Provide declarations for corresponding threshold vars.

	* gmp-impl.h (mpn_rsh1add_nc, mpn_rsh1sub_nc): Declare.
	* mpn/asm-defs.m4: Likewise.
	* configure.in: Add corresponding HAVE_NATIVEs.
	* mpn/x86_64/rsh1aors_n.asm: Add _nc entry point.

2009-12-18  Niels Möller  <nisse@lysator.liu.se>

	* mpz/divexact.c: Rewrite to use mpn_divexact.

	* mpn/generic/bdiv_q_1.c (mpn_bdiv_q_1): Deleted some unused
	variables.

	* mpn/generic/toom52_mul.c (mpn_toom52_mul)
	[HAVE_NATIVE_mpn_add_n_sub_n]: Moved declaration of cy to avoid a
	compiler warning.

	* gmp-impl.h (gmp_pi1_t): Eliminated inv21 member.
	(invert_pi1): ...and don't store it here.

	* mpn/generic/toom63_mul.c (mpn_toom63_mul): Simplified
	calculation of block size n.
	* gmp-impl.h (mpn_toom63_mul_itch): Likewise.

	* mpn/generic/toom_eval_pm2exp.c (mpn_toom_eval_pm2exp): Fixed
	output asserts.

2009-12-18  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpn/t-toom63.c: New test program.

2009-12-18  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/invert.c: Nailify.
	* mpn/generic/invertappr.c: Nailify.
	* mpn/generic/mulmod_bnm1.c: Nailify.
	* mpn/generic/sqrmod_bnm1.c: Nailify.

	* tests/mpn/t-invert.c: New test program.

	* mpn/generic/toom63_mul.c: New file.
	* mpn/generic/toom_interpolate_8pts.c: New file.
	* gmp-impl.h: Provide corresponding declarations.
	* configure.in (gmp_mpn_functions): List toom_interpolate_8pts and
	toom63_mul.

2009-12-17  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mul.c: Move allocation of ws to where it is used.
	Identify toom22, 32, 42, in that order (in two places).  Use midline
	between toom22, 32, 42.
	* mpn/generic/toom22_mul.c (TOOM22_MUL_MN_REC): Call also
	mpn_toom32_mul.

	* doc/gmp.texi: Update References section.  Update Contributors
	section.  Misc updates.

	* gmp-impl.h: Renew default values for all THRESHOLDs.

2009-12-17  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/divexact.c (mpn_divexact): Don't require that the
	dividend is normalized. Use MPN_DIVREM_OR_PREINV_DIVREM_1. When
	shifting, allocate and process only the low qn+1 limbs. Eliminated
	code for the impossible case nn < qn.

	* mpn/generic/dcpi1_div_qr.c (mpn_dcpi1_div_qr): Added some input
	asserts.

	* mpn/generic/dcpi1_div_qr.c (mpn_dcpi1_div_qr): In the case that
	the initial quotient block is a single limb, use 3/2 division,
	thereby eliminating the only use of gmp_pi1_t->inv21.

2009-12-17  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/invert.c: Added some comment.
	* mpn/generic/invertappr.c: Slightly better threshold handling.
	* gmp-impl.h (INV_NEWTON_THRESHOLD): Default to 200.

	* mpn/generic/nussbaumer_mul.c: New file.
	* configure.in (gmp_mpn_functions): Add nussbaumer_mul.
	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add nussbaumer_mul.
	* gmp-impl.h (mpn_nussbaumer_mul): Added prototype and name-mangling.
	* tune/speed.h (speed_mpn_nussbaumer_mul): Declare function.
	* tune/common.c (speed_mpn_nussbaumer_mul): New function.
	* tune/speed.c (routine): Add speed_mpn_nussbaumer_mul.

	* mpn/generic/sqrmod_bnm1.c: New file.
	* configure.in (gmp_mpn_functions): Add sqrmod_bnm1.
	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add sqrmod_bnm1.
	* gmp-impl.h (mpn_sqrmod_bnm1): Added prototype and name-mangling.
	(SQRMOD_BNM1_THRESHOLD): support for the new threshold.
	* tune/speed.h (speed_mpn_sqrmod_bnm1): Declare function.
	* tune/common.c (speed_mpn_sqrmod_bnm1): New function.
	* tune/speed.c (routine): Add speed_mpn_sqrmod_bnm1.
	* tests/mpn/t-mulmod_bnm1.c: Attribution.
	* tests/mpn/t-sqrmod_bnm1.c: New test file.
	* tests/mpn/Makefile.am (check_PROGRAMS): Add t-sqrmod_bnm1.

	* tune/tuneup.c: Tune SQRMOD_BNM1_THRESHOLD.

	* mpn/generic/nussbaumer_mul.c (mpn_nussbaumer_mul): Mimic fft_mul,
	use squaring if operands coincide.
	* tune/speed.h (speed_mpn_nussbaumer_mul_sqr): Declare function.
	* tune/common.c (speed_mpn_nussbaumer_mul_sqr): New function.
	* tune/speed.c (routine): Add speed_mpn_nussbaumer_mul_sqr.

2009-12-17  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/bdiv_q.c (mpn_bdiv_q_itch): Rewrite.

2009-12-16  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpn/t-bdiv.c (bdiv_q_valid_p, bdiv_qr_valid_p): Call refmpn_mul
	instead of refmpn_mul_basecase.
	* tests/mpn/toom-shared.h: Likewise.
	* tests/refmpn.c (refmpn_mullo_n,refmpn_sqr,refmpn_mul_any): Likewise.

	* minithres/gmp-mparam.h: Add new thresholds, trim old values.

	* mpn/generic/powm.c: Use mp_bitcnt_t for bit counts.
	Handle REDC_1_TO_REDC_N_THRESHOLD < MUL_TOOM22_THRESHOLD in
	non-WANT_REDC_2 INNERLOOP expansion code.
	* mpn/generic/powm_sec.c: Use mp_bitcnt_t for bit counts.

2009-12-16  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpz/t-gcd.c (main): Added test case to exercise the
	unlikely u0 == u1 case in mpn_gcdext_lehmer_n.

	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Get ASSERT
	right.

2009-12-16  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz/t-mul.c: Misc cleanups.
	(mul_basecase): Remove.
	(ref_mpn_mul): Remove.
	* tests/refmpn.c (refmpn_mul): New function, mainly from t-mul.c's
	ref_mpn_mul.
	(refmpn_mullo_n): Add a missing free.

	* tune/speed.c (routine): Measure speed_mpn_{sb,dc}pi1_div_qr,
	mpn_{sb,dc}pi1_divappr_q, mpn_{sb,dc}pi1_bdiv_qr, and
	mpn_{sb,dc}pi1_bdiv_q.

	* mpn/generic/invertappr.c: New file, meat from invert.c.
	* mpn/generic/invert.c: Leave just mpn_invert.c.
	* configure.in (gmp_mpn_functions): Add invertappr.
	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add invertappr.c.
	* gmp-impl.h (mpn_invert_itch, mpn_invertappr_itch): New macros.

2009-12-15  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/gcdext_subdiv_step.c: Get an ASSERT right.

2009-12-15  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/sbpi1_div_qr.c (mpn_sbpi1_div_qr): A very small step
	towards nail support.

2009-12-15  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gmp-impl.h (mpn_ni_invertappr): Added prototype and name-mangling.
	* mpn/generic/mulmod_bnm1.c: Comment representation of class [0].

2009-12-14  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/sbpi1_divappr_q.c (mpn_sbpi1_divappr_q): Use
	udiv_qr_3by2.

2009-12-14  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (tune_binvert): Remove BINV_MULMOD_BNM1_THRESHOLD
	tuning, it was always zero and caused BINV_NEWTON_THRESHOLD to be
	wrong (as pointed out by Marco).
	* (BINV_MULMOD_BNM1_THRESHOLD): Clean from other files too.

2009-12-14  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/invert.c: Improved comments.
	(mpn_bc_invertappr): Conditionally re-enable mpn_dcpi1_divappr_q.

2009-12-14  Niels Möller  <nisse@lysator.liu.se>

	* gmp-impl.h (udiv_qr_3by2): Fix typo in argument list.

2009-12-13  Niels Möller  <nisse@lysator.liu.se>

	* gmp-impl.h (udiv_qr_3by2): New macro.
	* mpn/generic/sbpi1_div_qr.c (mpn_sbpi1_div_qr): Use udiv_qr_3by2.

2009-12-13  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/dcpi1_divappr_q.c (mpn_dcpi1_divappr_q): Avoid a buffer
	overrun.

	* mpn/generic/mul_fft.c (mpn_mul_fft_full): Handle carry-out from 2nd
	mpn_mul_fft, add an ASSERT for the 1st mpn_mul_fft.  Replace some
	comments on cc's range with ASSERTs.

	* mpn/generic/gcdext.c (compute_v): Normalise tp[] after mpn_mul.

	* mpz/powm.c: Rework buffer handling.

2009-12-13  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpn/toom-shared.h (main): Use refmpn_mul_basecase to check
	results (slow!). Iteration counts of all toom tests reduced
	considerably.

2009-12-13  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/invert.c (mpn_invertapp): Split in _bc and _ni.
	(mpn_bc_invertappr): New function, the basecase.
	(mpn_ni_invertapp): New function, Newton iteration.
	(mpn_invert): Use mpn_ni_invertapp.
	* tune/tuneup.c (tune_invert): Min for INV_APPR_THRESHOLD.
	(tune_invertappr): Min for INV_NEWTON_THRESHOLD.

	* tune/speed.h (SPEED_ROUTINE_MPN_NI_INVERTAPPR): New macro.
	(speed_mpn_ni_invertappr): Declare function.
	* tune/common.c (speed_mpn_ni_invertappr): New function.
	* tune/speed.c (routine): Add speed_mpn_ni_invertappr.

	* tune/tuneup.c (tune_invertappr): Use speed_mpn_ni_invertappr to
	tune INV_MULMOD_BNM1_THRESHOLD.

2009-12-12  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Rewrite.

2009-12-12  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/mpn/t-mulmod_bnm1.c (main): Disable B^n+1 stressing test
	for odd sizes.

	* mpn/generic/invert.c: Complete rewrite. Uses Newton iterations.
	* gmp-impl.h (mpn_invertappr): Added prototype and name-mangling.
	(mpn_invertappr_itch): Added prototype and name-mangling.
	(INV_APPR_THRESHOLD): Support for a new tunable const.
	* tune/speed.h (SPEED_ROUTINE_MPN_INVERTAPPR): New macro.
	(speed_mpn_invertappr): Declare function.
	* tune/common.c (speed_mpn_invertappr): New function.
	* tune/speed.c (routine): Add speed_mpn_invertappr.
	* tune/tuneup.c (tune_invertappr): New function: was tune_invert.
	(tune_invert): Now tune only INV_APPR_THRESHOLD.
	(all): Enable call to tune_invert and tune_invertappr.

2009-12-11  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/binvert.c: Use mpn_mulmod_bnm1 instead of FFT wrapping.
	Old, evidently broken wrapping code removed.
	* tune/tuneup.c (tune_binvert): Tune BINV_MULMOD_BNM1_THRESHOLD.
	* gmp-impl.h: Provide declarations for corresponding threshold var.

	* tests/mpn/t-bdiv.c (COUNT): Decrease to keep run time reasonable.

	* tune/tuneup.c (tune_invert): Tune INV_MULMOD_BNM1_THRESHOLD.
	* gmp-impl.h: Provide declarations for corresponding threshold var.

	* tests/mpn/t-mulmod_bnm1.c: Avoid a division by zero.

	* configure.in: Set up different paths for different 64-bit sparc
	processors.
	* mpn/sparc64/ultrasparc34/gmp-mparam.h: New file.

2009-12-10  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/*/gmp-mparam.h: Regenerate many of these files.

2009-12-10  Niels Möller  <nisse@lysator.liu.se>

	* gmp-impl.h (mpn_divexact): Removed scratch pointer from
	prototype.
	* mpn/generic/gcdext.c (divexact): Deleted, moved to...
	* mpn/generic/divexact.c (mpn_divexact): New implementation (moved
	from gcdext.c). The bidirectional divexact is kept but #if:ed out.
	Interface change, since the new code doesn't take a scratch
	argument.

	* tests/mpn/t-mulmod_bnm1.c (main): Ensure that an >= bn. Lowered
	MIN_N to 1. Various fixes to handle n == 1 properly.

	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Small interface
	change, require an >= bn.

	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Fixed non-recursive
	case to not write beyond end of result area.

2009-12-09  Torbjorn Granlund  <tege@gmplib.org>

	* tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_CALL): New macro, made
	from now deleted SPEED_ROUTINE_MPN_MULMOD_BNM1.
	* tune/common.c (speed_mpn_bc_mulmod_bnm1): New function.
	(speed_mpn_mulmod_bnm1): Use SPEED_ROUTINE_MPN_MULMOD_BNM1_CALL.
	* tune/speed.c (routine): Add mpn_bc_mulmod_bnm1.

	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1_next_size): Rewrite.

	* tune/tuneup.c (tune_mulmod_bnm1): Rewrite.

2009-12-08  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/mulmod_bnm1.c (mpn_bc_mulmod_bnm1,
	mpn_bc_mulmod_bnp1): Added a parameter for scratch area, possibly
	same as result area (as suggested by Niels Möller).
	(mpn_mulmod_bnm1): Calls changed accordingly.

2009-12-08  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]: Use
	table lookup for count_trailing_zeros. Binary algorithm still
	disabled by default.

	* mpn/generic/gcdext.c (divexact): Local definition of divexact,
	using mpn_bdiv_q.
	(compute_v): Use it.

	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-bdiv.

	* tests/mpn/t-bdiv.c: New file.

	* mpn/generic/bdiv_q.c (mpn_bdiv_q): Fixed bad quotient length,
	should have qn == nn.

	* mpn/generic/bdiv_qr.c (mpn_bdiv_qr): Pass correct nn length to
	the lower-level functions.

2009-12-08  Torbjorn Granlund  <tege@gmplib.org>

	* tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_ROUNDED): New define.
	* tune/common.c (speed_mpn_mulmod_bnm1_rounded): New function.
	* tune/speed.c (routine): Add mpn_mulmod_bnm1_rounded for measuring
	mpn_mulmod_bnm1 at recommended sizes.

	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1_next_size): Rewrite.
	(mpn_bc_mulmod_bnm1): Use mpn_add_n instead of mpn_add.

	* tune/speed.c (routine): Add mpn_invert.

	* tune/tuneup.c (tune_invert): New function.
	* tune/speed.h (SPEED_ROUTINE_MPN_INVERT): New macro.
	* tune/common.c (speed_mpn_invert): New function.
	* gmp-impl.h: Provide declarations for corresponding threshold var.
	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add invert.c.

2009-12-08  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/devel/try.c: Test mpn_addlsh2_n and mpn_{add,sub}lsh_n;
	mpn_rsblsh_n now tests all shift values.
	* tests/refmpn.c (refmpn_addlsh_n, refmpn_sublsh_n): New functions.
	(refmpn_addlsh1_n): Use generic refmpn_addlsh_n.
	(refmpn_sublsh1_n): Use generic refmpn_sublsh_n.
	(refmpn_addlsh2_n): New function.
	* tests/tests.h: Declare new functions.

2009-12-06  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (tune_mulmod_bnm1): Up min_size to 12.

	* Globally: Rename *mullow* to *mullo*, *MULLOW* to *MULLO*.

	* configure.in: Don't include ev5 directory for ev6* and ev7.  Misc
	alpha path cleanups.
	* mpn/alpha/add_n.asm: Replaced by mpn/alpha/ev5/add_n.asm.
	* mpn/alpha/sub_n.asm: Replaced by mpn/alpha/ev5/sub_n.asm.
	* mpn/alpha/lshift.asm: Replaced by mpn/alpha/ev5/lshift.asm.
	* mpn/alpha/rshift.asm: Replaced by mpn/alpha/ev5/rshift.asm.
	* mpn/alpha/com_n.asm: New, moved from mpn/alpha/ev5/rshift.asm.
	* mpn/alpha/ev5/diveby3.asm: New, moved from mpn/alpha/diveby3.asm.

	* mpn/powerpc64/mode64/diveby3.asm: Remove, it is slower than
	mpn_bdiv_dbm1c on all hardware.

	* mpn/generic/powm_sec.c: Rework logic for mpn_sqr_basecase size limit.

	* gmp-impl.h (mpn_redc_1_sec): Declare.
	* configure.in (gmp_mpn_functions): Add redc_1_sec.

2009-12-06  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/devel/try.c (try_one): DATA_SRC0_HIGHBIT sets the high bit.

2009-12-05  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/toom_eval_dgr3_pm1.c: Change return value: 0 or ~0.
	* mpn/generic/toom_eval_dgr3_pm2.c: Likewise.
	* mpn/generic/toom_eval_pm1.c: Likewise.
	* mpn/generic/toom_eval_pm2exp.c: Likewise.
	* mpn/generic/toom_eval_pm2.c: Rewrite to use mpn_addlsh2_n.

	* mpn/generic/toom_interpolate_5pts.c: Param sa is a flag, not a sign.

	* mpn/generic/toom33_mul.c: Adapt to changes above.
	* mpn/generic/toom3_sqr.c: Likewise.
	* mpn/generic/toom42_mul.c: Likewise.
	* mpn/generic/toom43_mul.c: Reduce branches.
	* mpn/generic/toom44_mul.c: Likewise.
	* mpn/generic/toom53_mul.c: Likewise.
	* mpn/generic/toom62_mul.c: Likewise.

	* mpn/generic/toom52_mul.c: Use toom_eval_ functions.

	* mpn/generic/toom4_sqr.c: Avoid C99 construct.
	* mpn/generic/toom_interpolate_7pts.c: Likewise.

2009-12-05  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/redc_1_sec.c: New file.
	* mpn/generic/powm_sec.c: Use redc_1_sec.  Use dummy full subtract
	instead of mpn_cmp since the latter leaks to the side channel.
	(mpn_local_sqr_n): New function, with associated macros.
	(mpn_powm_sec): Use mpn_local_sqr_n.

	* configure.in (HAVE_NATIVE): Add missing functions, then sort.

2009-12-04  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (tune_dc_div): Up min_size to 6.
	(tune_mod_1): Set MOD_1_1_THRESHOLD min_size to 2.

	* tune/speed.h: Negate "binvert"-type inverses, as required.

	* mpn/generic/redc_1.c: Add ASSERTs.
	* mpn/generic/redc_2.c: Likewise.

	* mpn/generic/sbpi1_bdiv_q.c: Simplify loops, indexing.

2009-12-03  Yann Droneaud  <yann@droneaud.fr>

	* acinclude.m4 ([long long reliability test 1]): Add a "static" for C99
	inline semantics compatibility.

2009-12-03  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Move intptr_t test into common AC_CHECK_TYPES.

	* mpn/generic/gcdext.c: Add a TMP_FREE.

2009-12-03  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]:
	Added various masking tricks.

	* mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]:
	Reimplemented binary gcdext, with proper canonicalization.

	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Handle v == 0
	from mpn_gcdext_1.
	* mpn/generic/gcdext_1.c (mpn_gcdext_1): Allow inputs with a < b,
	assertions fixed accordingly.

2009-12-03  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c: Tune DC_DIVAPPR_Q_THRESHOLD.  Rewrite
	DC_DIV_QR_THRESHOLD tuning code.
	(tune_dc_div): Rewrite.
	* tune/speed.h (SPEED_ROUTINE_MPN_PI1_DIV): New macro.
	* tune/common.c (speed_mpn_sbpi1_div_qr, speed_mpn_dcpi1_div_qr,
	speed_mpn_sbpi1_divappr_q, speed_mpn_sbpi1_bdiv_qr): New functions.
	* gmp-impl.h: Provide declarations for corresponding threshold vars.
	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add dcpi1_divappr_q.c.

	* tune/tuneup.c (tune_binvert): Up max_size.

2009-12-02  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/devel/try.c: Test mpn_rsblsh2_n and mpn_rsblsh_n.
	* tests/refmpn.c (refmpn_rsblsh_n, refmpn_rsblsh2_n): New functions.
	(refmpn_rsblsh1_n): Use generic refmpn_rsblsh_n.
	* tests/tests.h: Declare new functions.

2009-12-03  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/gcdext_subdiv_step.c (mpn_gcdext_subdiv_step):
	Select the right cofactor in the cases A == B or A == 2B.

	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Deleted
	handling of ap[0] == 0 and bp[0] == 0; these cases don't happen.
	Select the right cofactor in the case ap[0] == bp[0].
	* mpn/generic/gcdext.c (mpn_gcdext): Analogous changes.

2009-12-02  Niels Möller  <nisse@lysator.liu.se>

	* gmp-h.in (mpn_gcdext_1): Updated prototype.
	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Updated for
	signed cofactors from gcdext_1.
	* mpn/generic/gcdext_1.c (mpn_gcdext_1): Use Euclid's algorithm,
	and return signed cofactors.

2009-12-02  Torbjorn Granlund  <tege@gmplib.org>

	* doc/gmp.texi (Low-level Functions): Document mpn_sqr_n.

	* tune/speed.c (routine): Add mpn_binvert.

	* tune/tuneup.c: Tune BINV_NEWTON_THRESHOLD.
	(tune_binvert): New function.
	* tune/speed.h (SPEED_ROUTINE_MPN_BINVERT): New macro.
	* tune/common.c (speed_mpn_binvert): New function.
	* gmp-impl.h: Provide declarations for corresponding threshold var.
	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add binvert.c.

	* tune/tuneup.c: Tune DC_BDIV_QR_THRESHOLD and DC_BDIV_Q_THRESHOLD.
	(tune_dc_bdiv): New function.
	(tune_dc_div): New name for tune_dc.
	* tune/speed.h (SPEED_ROUTINE_MPN_PI1_BDIV_QR,
	SPEED_ROUTINE_MPN_PI1_BDIV_Q): New macros.
	* tune/common.c (speed_mpn_sbpi1_bdiv_qr, speed_mpn_dcpi1_bdiv_qr,
	speed_mpn_sbpi1_bdiv_q, speed_mpn_dcpi1_bdiv_q): New functions.
	* gmp-impl.h: Provide declarations for corresponding threshold vars.
	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add dcpi1_bdiv_qr.c and
	dcpi1_bdiv_q.c.

2009-12-01  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/toom53_mul.c: Removed double computation of vinf.

	* mpn/x86_64/aorrlsh_n.asm: Correct return value for rsblsh_n.
	* mpn/asm-defs.m4 (define_mpn): Add rsblsh_n.
	* gmp-impl.h (mpn_rsblsh_n): Added prototype and name-mangling.

	* mpn/generic/fib2_ui.c: Reduce the amount of temporary storage.
	Use mpn_rsblsh_n.

2009-12-01  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/redc_n.c: Rework temp allocation.

	* mpn/generic/dcpi1_bdiv_qr.c (mpn_dcpi1_bdiv_qr_n_itch): Add pi1 also
	to this function.

	* mpn/generic/dcpi1_bdiv_q.c: Get the mpn_sbpi1_bdiv_q call right.
	Misc cleanups.

	* tune/speed.c (routine): Fix typo in last change.
	Add mpn_redc_2.

	* tune/speed.h (SPEED_ROUTINE_REDC_N): Set min size properly.

2009-12-01  Niels Möller  <nisse@lysator.liu.se>

	* tune/speed.c (routine): Added mpn_toom42_mul and mpn_redc_n.
	* tune/speed.h (SPEED_ROUTINE_MPN_TOOM42_MUL): New macro.
	(speed_mpn_toom42_mul): Declare function.
	* tune/common.c (speed_mpn_toom42_mul): New function.
	* gmp-impl.h (MPN_TOOM42_MUL_MINSIZE): New constant.

2009-11-30  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/fib2_ui.c: Use mpn_rsblsh2_n.

2009-11-29  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/pentium4/gmp-mparam.h
	(HAVE_NATIVE_mpn_addlsh1_n, HAVE_NATIVE_mpn_sublsh1_n): Don't undef.

	* Makefile.am (EXTRA_DIST): Remove macos.

2009-11-28  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (tune_redc): Set min_size to 16 for redc_n tuning.

	* mpn/x86_64/sqr_basecase.asm (SQR_TOOM2_THRESHOLD_MAX): Avoid quoting
	to allow configure.in parse it more easily.  Trim from 120 to 80.

2009-11-28  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/mulmod_bnm1.c: Basecases made simpler, this also corrects
	a bug affecting previous version.

2009-11-28  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Handle atom also in 32-bit mode.
	* mpn/x86/atom/gmp-mparam.h: New file.

	* gmp-impl.h (MULMOD_BNM1_THRESHOLD): Default.

	* mpn/generic/redc_n.c: Use mpn_mulmod_bnm1 instead of mpn_mul_n.

	* Use TMP_ALLOC_LIMBS consistently.
	* Finish renaming BITS_PER_MP_LIMB to GMP_LIMB_BITS.

	* macos: Remove entire directory.

2009-11-27  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/corei/gmp-mparam.h: New file.
	* mpn/x86_64/core2/gmp-mparam.h: Now for just core2.
	* mpn/powerpc64/mode64/p3/gmp-mparam.h: New file.
	* mpn/powerpc64/mode64/p4/gmp-mparam.h: New file.
	* mpn/powerpc64/mode64/p5/gmp-mparam.h: New file.

	* config.guess: Return "corei" for core i7 and core i5.
	* config.sub: Recognise "corei".
	* acinclude.m4 (X86_64_PATTERN): Add corei.
	* configure.in (powerpc): Set up more CPU-specific paths.
	(x86): Handle corei.

	* mpz/powm.c: Allow input operand overlap also when exponent = 1.
	Misc cleanups.

2009-11-26  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* tests/mpn/t-mulmod_bnm1.c: New test file.
	* tests/mpn/Makefile.am (check_PROGRAMS): Add t-mulmod_bnm1.

	* mpn/generic/mullow_n.c: Comments on Mulders' trick implementation.

2009-11-26  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/powm.c: Make comments reflect current code state.

	* tests/devel/try.c: Make mpn_mullow_n testing actually work.

2009-11-25  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/powm.c: Clean up unused defs.

2009-11-24  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (tune_redc): Rewrite.
	* mpn/generic/powm.c: Use REDC_1_TO_REDC_2_THRESHOLD,
	REDC_1_TO_REDC_N_THRESHOLD, and REDC_2_TO_REDC_N_THRESHOLD.
	Get rid of previous REDC params, including LOCAL_REDC_N_THRESHOLD.
	(WANT_REDC_2): Define.
	* gmp-impl.h: Corresponding changes.

2009-11-23  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/powm.c: Fix typo.
	Define LOCAL_REDC_N_THRESHOLD, use in REDC_2_THRESHOLD...
	REDC_N_THRESHOLD chain.

2009-11-22  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (tune_mullow): Set min_size to 1.

	* mpn/generic/powm_sec.c: Use just mpn_mul_basecase and
	mpn_sqr_basecase for multiplication and squaring.

	* tune/tuneup.c: Tune REDC_2_THRESHOLD and REDC_N_THRESHOLD.
	(tune_redc): New function.
	(tune_powm): Remove function.
	* tune/speed.h (SPEED_ROUTINE_REDC_2, SPEED_ROUTINE_REDC_N): New.
	* tune/common.c (speed_mpn_redc_2, speed_mpn_redc_n): New.

	* mpz/powm.c: Complete rewrite.  Use mpn_powm and mpn_powlo.
	* mpn/generic/powm.c: Rewrite.
	* mpn/generic/redc_n.c: New file.
	* configure.in (gmp_mpn_functions): Add redc_n.
	* gmp-impl.h (REDC_2_THRESHOLD, REDC_N_THRESHOLD): Default, and define
	for tuneup.

2009-11-21  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/mullow_n.c: Disable Mulders' trick for small operands,
	use fft for bigger ones.
	* tests/mpn/t-mullo.c: New test file.

2009-11-22  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (tune_mullow): Rewrite.

2009-11-21  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* gmp-impl.h: Removed unused macros (CACHED_ABOVE_THRESHOLD and
	CACHED_BELOW_THRESHOLD).

	* mpn/generic/mullow_n.c: Use Mulders' trick.
	* tune/tuneup.c (tune_mullow): MULLOW_MUL_N_THRESHOLD range of
	search depends on FFT tuning;
	(all): Anticipate tune_fft_{mul,sqr}.

	* tune/speed.c (routine): Add entry related to mpn_mulmod_bnm1.

2009-11-19  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/toom_eval_dgr3_pm2.c (mpn_toom_eval_dgr3_pm2)
	[HAVE_NATIVE_mpn_add_n_sub_n]: Fixed typo in mpn_add_n_sub_n call
	(spotted by Marco Bodrato).
	* mpn/generic/toom_eval_pm2.c (mpn_toom_eval_pm2): Likewise.
	* mpn/generic/toom_eval_pm2exp.c (mpn_toom_eval_pm2exp): Likewise.

	* mpn/generic/toom_eval_pm2.c (mpn_toom_eval_pm2) [HAVE_NATIVE_mpn_addlsh_n]:
	Fixed missing declaration.

	* mpn/asm-defs.m4 (define_mpn): Add addlsh_n.
	* gmp-impl.h (mpn_addlsh_n): Added prototype and name-mangling.

2009-11-19  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/toom_eval_pm2.c (mpn_toom_eval_pm2): New file.
	* mpn/generic/toom53_mul.c (mpn_toom53_mul): Use mpn_toom_eval_pm2.
	* mpn/generic/toom62_mul.c (mpn_toom62_mul): Likewise.
	* configure.in (gmp_mpn_functions): Added toom_eval_dgr3_pm2.

2009-11-18  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h (mpn_and_n, etc): Adapt to now-public logic functions.

	* config.guess: Recognise VIA nano.
	* config.sub: Likewise.
	* configure.in: Generalise x86_64 support; recognise VIA nano.

2009-11-16  Torbjorn Granlund  <tege@gmplib.org>

	* tune/speed.c (routine): Add measurement of mpn_addlsh2_n,
	mpn_sublsh2_n, mpn_rsblsh2_n.
	* tune/common.c: Add speed routines for lsh2 functions.

	* mpn/generic/divis.c: Use MU_BDIV_QR_THRESHOLD.

	* configure.in (gmp_mpn_functions_optional): Add *lsh_n functions.

	* mpn/generic/toom_eval_pm2exp.c: Make HAVE_NATIVE_mpn_addlsh_n code
	work.

	* mpn/x86_64/aorrlsh2_n.asm: Optimise inner loop.

	* configure.in (gmp_mpn_functions_optional): Remove copyi,copyd, they
	are now in gmp_mpn_functions.  Analogously move logical functions.

2009-11-16  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/toom53_mul.c: Use addlsh2 for evaluation (and fix typo).
	* mpn/generic/toom_eval_dgr3_pm2.c: Likewise (affects toom44 and 43).

	* mpn/asm-defs.m4: Fix comments for op_lsh2 new functions.
	* gmp-impl.h: Likewise.
	* tests/mpz/t-fac_ui.c: Fix a comment.

2009-11-15  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/aorrlsh2_n.asm: New file.
	* configure.in: Add support for addlsh2_n, sublsh2_n, and rsblsh2_n,
	including mulfuncs.
	* gmp-impl.h (mpn_addlsh2_n, mpn_sublsh2_n, mpn_rsblsh2_n): Declare.
	* mpn/asm-defs.m4: Likewise.

	* mpn/generic/copyi.c: New file.
	* mpn/generic/copyd.c: Likewise.
	* mpn/generic/zero.c: Likewise.
	* gmp-h.in: Declare new functions.
	* configure.in (gmp_mpn_functions): Add new functions.

2009-11-15  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1_next_size): fix typo

	* mpn/generic/toom33_mul.c: Use rsblsh1 for evaluation.
	* mpn/generic/toom3_sqr.c: Likewise.

2009-11-14  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/toom52_mul.c: Use mpn_addlsh1_n.

	* mpn/generic/toom52_mul.c: Toggle the right flag bit in an
	HAVE_NATIVE_mpn_add_n_sub_n arm.

	* tests/mpz/t-remove.c: New file.

	* mpn/generic/remove.c: Major overhaul.  Add parameter 'cap'.

	* mpn/generic/binvert.c: Fix typo in last change.

	* mpn/generic/bdiv_qr.c: Make it actually work.  Also use passed-in
	scratch space.

	* mpn/generic/mu_bdiv_qr.c: Reset FFT parameters for each call.

2009-11-12  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/k7/gcd_1.asm (MASK): Compute from MAXSHIFT.

2009-11-11  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/binvert.c: Simplify, fix comments.

	* tests/devel/try.c: Test mpn_invert and mpn_binvert.

	* tests/refmpn.c (refmpn_invert, refmpn_binvert): New functions.
	* tests/tests.h: Declare new functions.

2009-11-10  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Supply compiler options for atom in 32-bit mode.

	* acinclude.m4 (X86_64_PATTERN): New.
	* configure.in: Setup and use X86_64_PATTERN.

	* mpn/x86_64/fat/fat.c: New file.
	* mpn/x86_64/fat/fat_entry.asm: New file.
	* mpn/x86_64/fat: Copy C placeholder files from mpn/x86/fat.
	* mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): New, copied from
	mpn/x86/x86-defs.m4.
	* configure.in: Move down x86 fat setup code until after ABI has been
	determined; generalise to handle x86_64.

2009-11-09  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/fat/mod_1.c: New file.

	* acinclude.m4 (GMP_C_FOR_BUILD_ANSI): Avoid poor quoting.

2009-11-08  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h (MPN_LOGOPS_N_INLINE): Rewrite, update interface.  Callers
	updated.
	* mpn/generic/logops_n.c: New file.
	* doc/gmp.texi (Low-level Functions): Document logical mpn functions.

2009-11-07  Torbjorn Granlund  <tege@gmplib.org>

	* tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1): Adapt to new
	mpn_mulmod_bnm1 interface.

2009-11-07  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/mulmod_bnm1.c: New interface, with size
	specified for all operands in mpn_mulmod_bnm1.
	* gmp-impl.h: Changed mpn_mulmod_bnm1 prototype.

2009-11-05  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/k7/gcd_1.asm: Actually use div-reduced value.
	Mnemonic cleanup.

	* mpn/x86_64/gcd_1.asm: New file.

2009-11-03  Torbjorn Granlund  <tege@gmplib.org>

	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add sqr_n.c.

2009-11-03  Marco Bodrato <bodrato@mail.dm.unipi.it>

	* mpn/generic/toom_interpolate_6pts.c: removed an addmul_1 and cleanup.

2009-11-02  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (gmp_mpn_functions): Remove obsolete functions
	dc_divrem_n and sb_divrem_mn.
	* gmp-impl.h: Misc cleanup.
	(mpn_sb_divrem_mn, mpn_dc_divrem_n): Remove.
	(DIV_DC_THRESHOLD): Remove.
	* mpn/generic/dc_divrem_n.c: Remove.
	* mpn/generic/sb_divrem_mn.c: Remove.
	* mpn/generic/tdiv_qr.c: Use DC_DIV_QR_THRESHOLD, not DIV_DC_THRESHOLD.

	* tests/devel/try.c: Replace mpn_sb_divrem_mn by mpn_sbpi1_div_qr.
	* tests/refmpn.c (refmpn_sb_div_qr): New name for refmpn_sb_divrem_mn.

	* tune/Makefile.am (libspeed_la_SOURCES): Remove sb_div.c and sb_inv.c.
	(TUNE_MPN_SRCS_BASIC): Remove sb_divrem_mn.c.
	* tune/common.c (speed_mpn_dcpi1_div_qr_n): New function.
	Remove mpn_sb_divrem_mn related functions.
	* tune/speed.c (routine): Remove entries related to mpn_dc_divrem and
	mpn_sb_divrem.
	(routine): New entry for mpn_dc_div_qr_n.
	* tune/speed.h (SPEED_ROUTINE_MPN_DC_DIVREM_CALL): Compute inverse
	needed by pi1 calls.
	(SPEED_ROUTINE_MPN_SB_DIVREM_M3): Remove.
	* tune/tuneup.c (tune_sb_preinv): Remove.
	(tune_dc): Update to measure DC_DIV_QR_THRESHOLD.

	* mpn/generic/sb_divappr_q.c: Remove.

2009-11-01  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h: Misc minor cleanups.

2009-10-31  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h (toom itch functions): Simplify, make some into macros.
	(MPN_KARA_MUL_N_TSIZE, MPN_KARA_SQR_N_TSIZE): Remove.
	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove.
	* mpn/generic/mul_n.c (mpn_sqr_n): Move from here...
	* mpn/generic/sqr_n.c: ...to this new file.
	* configure.in (gmp_mpn_functions): Add sqr_n.

	* Globally change
	  MUL_TOOM3_THRESHOLD => MUL_TOOM33_THRESHOLD,
	  MUL_KARATSUBA_THRESHOLD => MUL_TOOM22_THRESHOLD,
	  SQR_KARATSUBA_THRESHOLD => SQR_TOOM2_THRESHOLD,
	and associated names analogously.

2009-10-31  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/toom_interpolate_7pts.c: Changed evaluation points,
	replacing -1/2 by -2.
	* mpn/generic/toom44_mul.c: Updated to use new evaluation points,
	and use mpn_toom_eval_dgr3_pm2.
	* mpn/generic/toom4_sqr.c (mpn_toom4_sqr): Likewise.
	* mpn/generic/toom53_mul.c (mpn_toom53_mul): Updated to use new
	evaluation points, and use mpn_toom_eval_pm1 and
	mpn_toom_eval_pm2exp.
	* mpn/generic/toom62_mul.c (mpn_toom62_mul): Likewise.

	* mpn/generic/toom_eval_pm2exp.c: New file.
	* mpn/generic/toom_eval_pm1.c: New file.

	* mpn/generic/toom43_mul.c (mpn_toom43_mul): Use
	mpn_toom_eval_dgr3_pm2.

2009-10-30  Torbjorn Granlund  <tege@gmplib.org>

	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add toom2* and toom3* files.

2009-10-30  Niels Möller  <nisse@lysator.liu.se>

	* configure.in (gmp_mpn_functions): Added toom_eval_dgr3_pm2.
	* gmp-impl.h: Added prototype for mpn_toom_eval_dgr3_pm2.
	* mpn/generic/toom_eval_dgr3_pm2.c: New file.

2009-10-29  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/toom43_mul.c (mpn_toom43_mul): Use
	mpn_toom_eval_dgr3_pm1.
	* mpn/generic/toom42_mul.c (mpn_toom42_mul): Likewise.

2009-10-29  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mulmod_bnm1.c: Replace some add_1 by INCR.

	* gmp-impl.h (mpn_mulmod_bnm1_itch): New macro.

	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Call mpn_mul_fft.
	(mpn_mulmod_bnm1_next_size): Adopt to SS FFT.

	* mpn/generic/mul_fft.c (mpn_mul_fft): Make it return high limb.
	(mpn_mul_fft_internal): Likewise.

	* mpn/generic/mulmod_bnm1.c: New file, by Niels Möller.
	* configure.in (gmp_mpn_functions): Add mulmod_bnm1.
	* gmp-impl.h: Add related declarations.
	* tune/tuneup.c: Tune MULMOD_BNM1_THRESHOLD.
	* tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1): New macro.
	* tune/common.c (speed_mpn_mulmod_bnm1): New function.
	* Makefile.am (TUNE_MPN_SRCS_BASIC): Add mulmod_bnm1.c.

	* gmp-impl.h (mpn_kara_mul_n, mpn_kara_sqr_n): Remove declarations.
	* tune/common.c: Remove/rename kara functions.
	* tune/speed.h: Likewise.

	* tests/devel/try.c: Clean up usage of %p printf arguments.

	* gmp-impl.h: Update MUL/SQR MINSIZE macros to reflect new function
	names and limitations
	* tune/tuneup.c: Use updated macro names.
	* tune/speed.h: Likewise.
	* tests/devel/try.c: Test new mul/sqr functions, remove old tests.

2009-10-29  Niels Möller  <nisse@lysator.liu.se>

	* tune/speed.c: Added support for mpn_toom4_sqr,

	* tune/speed.h (SPEED_ROUTINE_MPN_TOOM4_SQR): New macro.
	(SPEED_ROUTINE_MPN_KARA_MUL_N): Deleted.
	(SPEED_ROUTINE_MPN_TOOM3_MUL_N): Deleted.
	(SPEED_ROUTINE_MPN_TOOM2_SQR): Use mpn_toom2_sqr_itch.

	* gmp-impl.h (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove
	declarations.
	(mpn_toom2_sqr_itch): Add margin for recursive calls.

2009-10-28  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/mul_n.c (mpn_kara_mul_n): Deleted old Karatsuba
	implementation.
	(mpn_kara_sqr_n): Likewise deleted.

	* mpn/generic/mul_n.c (mpn_sqr_n): Use mpn_toom2_sqr and
	mpn_toom3_sqr, not the old implementations.

	* gmp-impl.h (MPN_TOOM3_MUL_N_TSIZE): Deleted, replaced by
	mpn_toom33_mul_itch.
	(MPN_TOOM3_SQR_N_TSIZE): Deleted, replaced by
	mpn_toom3_sqr_itch.
	(mpn_toom33_mul_itch): Needs more scratch.
	(mpn_toom3_sqr_itch): Likewise.
	* tune/speed.h (SPEED_ROUTINE_MPN_TOOM3_MUL_N): Use
	mpn_toom33_mul_itch.
	(SPEED_ROUTINE_MPN_TOOM3_SQR_N): Use mpn_toom3_sqr_itch.
	* mpn/generic/mul_n.c (mpn_mul_n): Use mpn_toom33_mul_itch.
	(mpn_sqr_n): Use mpn_toom3_sqr_itch.

	* mpn/generic/toom33_mul.c (mpn_toom33_mul): Avoid TMP_ALLOC. Needs
	some more supplied scratch instead.
	* mpn/generic/toom3_sqr.c (mpn_toom3_sqr): Likewise.

2009-10-26  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h (invert_pi1): Streamline, as suggested by Niels.

2009-10-24  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/bdiv_q.c: Update to call new functions.
	* mpn/generic/bdiv_qr.c: Likewise.
	* mpn/generic/binvert.c: Likewise.
	* mpn/generic/divexact.c: Likewise.
	* mpn/generic/divis.c: Likewise.
	* mpn/generic/perfpow.c: Likewise.
	* mpn/generic/tdiv_qr.c: Likewise.
	* mpn/generic/dcpi1_bdiv_q.c: New file.
	* mpn/generic/dcpi1_bdiv_qr.c: New file.
	* mpn/generic/dcpi1_div_q.c: New file.
	* mpn/generic/dcpi1_div_qr.c: New file.
	* mpn/generic/dcpi1_divappr_q.c: New file.
	* mpn/generic/sbpi1_bdiv_q.c: New file.
	* mpn/generic/sbpi1_bdiv_qr.c: New file.
	* mpn/generic/sbpi1_div_q.c: New file.
	* mpn/generic/sbpi1_div_qr.c: New file.
	* mpn/generic/sbpi1_divappr_q.c: New file.
	* mpn/generic/dc_bdiv_q.c: Removed.
	* mpn/generic/dc_bdiv_qr.c: Removed.
	* mpn/generic/dc_div_q.c: Removed.
	* mpn/generic/dc_div_qr.c: Removed.
	* mpn/generic/dc_divappr_q.c: Removed.
	* mpn/generic/sb_bdiv_q.c: Removed.
	* mpn/generic/sb_bdiv_qr.c: Removed.
	* mpn/generic/sb_div_q.c: Removed.
	* mpn/generic/sb_div_qr.c: Removed.

	* configure.in (gmp_mpn_functions): Add new division functions, remove
	obsolete division functions.

	* gmp-impl.h: Add declarations of new division functions, remove
	corresponding obsolete declarations.
	(gmp_pi1_t, gmp_pi2_t): New types.
	(invert_pi1): New macro for computing 2/1 and 3/2 inverses.

2009-10-23  Niels Möller  <nisse@lysator.liu.se>

	* gmp-impl.h (mpn_toom62_mul_itch): New function.

	* tests/mpn/t-toom53.c: New test program.
	* tests/mpn/t-toom62.c: New test program.

2009-10-23  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/get_d.c: Fix code handling denorms for 64-bit machines.
	* tests/mpf/t-get_d.c (test_denorms): New function.

2009-10-23  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/toom52_mul.c (mpn_toom52_mul): Use supplied scratch
	space, not TMP_ALLOC. Interface change, now requires input sizes
	such that s + t >= 5.

	* gmp-impl.h (mpn_toom52_mul_itch): New function.

	* tests/mpn/t-toom52.c: New test program.

2009-10-22  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/sqr_basecase.asm: Tune for speed and a 7% size decrease.

2009-10-22  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpn/t-toom44.c: New test program.
	* tests/mpn/t-toom33.c: New test program.

	* tests/mpn/toom-shared.h (main): Reorganized input generation.
	Users are now supposed to define macros MAX_AN, MIN_BN and MAX_BN.
	Updated existing toom test programs.

2009-10-22  Torbjorn Granlund  <tege@gmplib.org>

	* tests/devel/try.c: Fix typos in last change.

2009-10-21  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/asm-defs.m4 (define_mpn): Add mullow_basecase.

	* tests/devel/try.c: Test mpn_mullow_n.

	* tests/refmpn.c (refmpn_mullow_n): New function.
	* tests/tests.h: Declare it.

2009-10-21  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpn/toom-shared.h (main): Check for writes outside of the
	product or scratch area.

	* gmp-impl.h (mpn_toom43_mul_itch): New function.

	* mpn/generic/toom43_mul.c (mpn_toom43_mul): Use supplied scratch
	space, not TMP_ALLOC. Interface change, now requires input sizes
	such that s + t >= 5.

2009-10-20  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpn/toom-shared.h (MIN_BLOCK): New constant, which can be
	overridden by users. Needed by t-toom42 and t-toom43.

	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-toom32,
	t-toom42 and t-toom43.
	* tests/mpn/t-toom43.c: New test program.
	* tests/mpn/t-toom42.c: New test program.
	* tests/mpn/t-toom32.c: New test program.

	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-toom22.
	* tests/mpn/t-toom22.c: New test file.
	* tests/mpn/toom-shared.h: New file. Test framework for Toom
	functions.

2009-10-14  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/hgcd.c (mpn_hgcd_itch): Thanks to the new
	mpn_matrix22_mul_strassen, the scratch need is reduced by 16%.

2009-10-14  Marco Bodrato  <bodrato@mail.dm.unipi.it>

	* mpn/generic/matrix22_mul.c (mpn_matrix22_mul_strassen): New
	Strassen-like algorithm, to reduce the amount of temporary
	storage.
	(mpn_matrix22_mul_itch): Updated to reflect the reduced storage
	need.

2009-10-03  Torbjorn Granlund  <tege@gmplib.org>

	* Rename mpn_addsub_n to mpn_add_n_sub_n.

2009-10-01  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/tdiv_qr.c: Call mpn_divrem_1 and mpn_dc_div_qr instead of
	old functions.

	* mpn/generic/mul_n.c: Call toom22 and toom33 instead of old functions.

	* mpn/generic/toom42_mul.c (TOOM42_MUL_N_REC): Renamed from
	TOOM22_MUL_N_REC.  Unconditionally call the generic mpn_mul_n.
	* mpn/generic/toom32_mul.c: Analogous changes.

2009-09-28  Niels Möller  <nisse@lysator.liu.se>

	* mpn/x86_64/invert_limb.asm: Rewrite. Exploit cancellation in the
	Newton iteration.

2009-09-27  Niels Möller  <nisse@lysator.liu.se>

	* mpn/x86/invert_limb.asm: Reduce register usage. Eliminated $1
	arguments to add, sub and shift.

2009-09-25  Niels Möller  <nisse@lysator.liu.se>

	* mpn/x86/invert_limb.asm: New file.

2009-09-24  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/toom33_mul.c: Use new toom functions for all recursive
	products.
	* mpn/generic/toom3_sqr.c: Likewise.
	* mpn/generic/toom44_mul.c: Likewise.
	* mpn/generic/toom4_sqr.c: Likewise.

	* mpn/generic/add_n.c: Relax operand overlap ASSERTs.
	* mpn/generic/sub_n.c: Likewise.

2009-09-15  Torbjorn Granlund  <tege@gmplib.org>

	Suggested by Uwe Mueller:
	* printf/doprnt.c: Use "%ld" for exponent printing.
	* printf/doprntf.c (__gmp_doprnt_mpf): Make expval "long".

2009-09-14  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Handle mingw64.
	* gmp-impl.h (gmp_intptr_t): Declare.
	* tests/amd64check.c (calling_conventions_values): Use CNST_LIMB.
	* tests/memory.c: Use gmp_intptr_t; print pointers using C90 "%p".
	* tests/misc.c: Use gmp_intptr_t.
	* tests/mpq/t-get_str.c: Print pointers using C90 "%p".

2009-08-12  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Remove silly ASSERT code.

	* mpn/asm-defs.m4 (define_mpn): Remove mod_1s_1p, add mod_1_1p.

	* mpn/arm/invert_limb.asm: Complete rewrite.

	* longlong.h: Document LONGLONG_STANDALONE and NO_ASM.

2009-08-05  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz/dive_ui.c (check_random): Avoid zero divisors.

2009-07-31  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mod_1_1.c: Tweak to handle any modulus (possibility
	pointed out by Per Austrin).
	(mpn_mod_1_1p): Renamed from mpn_mod_1s_1p.
	(mpn_mod_1_1p_cps): Renamed from mpn_mod_1s_1p_cps.
	*mpn/generic/mod_1.c (mpn_mod_1): Reorganise to call mpn_mod_1_1p for
	any modulus.

2009-07-28  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Pass arch for x86 also in 64-bit mode.

2009-07-26  Torbjorn Granlund  <tege@swox.com>

	* config.guess (_cpuid): Recognise more Intel "Core" processors.

2009-07-13  Torbjorn Granlund  <tege@gmplib.org>

	* mpf/eq.c: Rewrite.

	* tests/mpf/t-eq.c: New test.

2009-07-06  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h (__mp_bases): Remove this alias.

	* mpf/get_str.c: Use less overflow prone expression for computing limb
	allocation.
	* mpz/inp_str.c: Likewise.
	* mpf/set_str.c: Likewise.
	* mpz/set_str.c: Likewise.

2009-07-03  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/gcd_1.c (mpn_gcd_1): Use masking tricks to reduce
	the number of branches in the loop.

2009-06-28  Torbjorn Granlund  <tege@gmplib.org>

	* demos/factorize.c (factor_using_pollard_rho): Rewrite.

	* mpz/clears.c: New file.
	* mpq/clears.c: New file.
	* mpf/clears.c: New file.
	* gmp-h.in (mpz_clears, mpq_clears, mpf_clears): Declare.
	* mpz/Makefile.am: Add clears.c.
	* mpq/Makefile.am: Add clears.c.
	* mpf/Makefile.am: Add clears.c.
	* Makefile.am: Add these also to respective OBJECTS variables.
	* doc/gmp.texi: Document inits function and clears functions.

2009-06-20  Torbjorn Granlund  <tege@gmplib.org>

	* mp-h.in (mp_bitcnt_t): Declare here too.

2009-06-19  Torbjorn Granlund  <tege@gmplib.org>

	* mpq/inits.c: New file.
	* mpf/inits.c: New file.
	* gmp-h.in (mpz_inits, mpq_inits, mpf_inits): Declare .

	* mpn/generic/remove.c: New file.
	* configure.in (gmp_mpn_functions): Add remove.
	* gmp-impl.h (mpn_remove): Declare.

	* gmp-h.in (mp_bitcnt_t): New basic type.
	* mpn/generic/perfpow.c (mp_bitcnt_t): Remove private definition.

	* mpn/generic/bdiv_qr.c: Make it actually work.

	* mpn/x86_64/core2/aorsmul_1.asm: Rewrite to use shorter pipeline and
	to need fewer registers.

2009-06-17  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/rsh1aors_n.asm: New file.
	* mpn/x86_64/rsh1add_n.asm: Remove.
	* mpn/x86_64/rsh1sub_n.asm: Remove.

	* mpz/inits.c: New file.

	* gen-trialdivtab.c: Wrap limb constants into CNST_LIMB.

	With Martin Boij:
	* mpn/generic/perfpow.c (binv_root, binv_sqroot): Change from being
	recursive to being iterative.
	(mpn_perfect_power_p): Reorganise temp memory usage to avoid a buffer
	overrun.  Trim allocation of next and prev.  Never create oversize
	products in the multiplicity binary search.

	* mpn/generic/dc_div_q.c: Add missing TMP_FREE.

2009-06-16  Torbjorn Granlund  <tege@gmplib.org>

	Revert:
	* mpn/generic/perfpow.c (perfpow): Test exponents up to ub, inclusive.

2009-06-16  Martin Boij  <mboij@kth.se>

	* mpn/generic/perfpow.c (logs): Use more conservative table.

2009-06-15  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/pa64/aors_n.asm: New file.
	* mpn/pa64/add_n.asm: Remove.
	* mpn/pa64/sub_n.asm: Remove.

	* mpn/generic/perfpow.c (perfpow): Test exponents up to ub, inclusive.

2009-06-14  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/bdiv_q_1.asm: Optimise away a mov insn.
	* mpn/x86_64/dive_1.asm: Likewise.

	* mpn/generic/perfpow.c (binv_root): Use mpn_bdiv_q_1, not
	mpn_divexact_itch for 2-adic division.
	(all functions): Micro optimise.

	* Makefile.am (libmp_la_SOURCES): Add nextprime.c.

2009-06-13  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-h.in (mpn_perfect_power_p): Declare.
	* configure.in (gmp_mpn_functions): Add perfpow.
	* mpz/perfpow.c: Now trivial, simply calls mpn_perfect_power_p.

2009-06-13  Martin Boij  <mboij@kth.se>

	* mpn/generic/perfpow.c: New file.
	* tests/mpz/t-perfpow.c: Rewrite.

2009-06-12  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/bdiv_qr.c: New file.
	* mpn/generic/bdiv_q.c: New file.
	* configure.in (gmp_mpn_functions): Add bdiv_qr and bdiv_q.
	* gmp-impl.h: Declare new functions.

	* nextprime.c: New file.
	* gmp-impl.h (gmp_primesieve_t, gmp_init_primesieve, gmp_nextprime):
	Declare.
	* Makefile.am (libgmp_la_SOURCES): Add nextprime.c.

2009-06-11  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/trialdiv.c: New file.
	* gen-trialdivtab.c: New file.
	* configure.in (gmp_mpn_functions): Add trialdiv.
	* gmp-impl.h (mpn_trialdiv): Declare
	* Makefile.am: Add rules for gen-trialdivtab and trialdiv.

	* longlong.h (arm count_leading_zeros): Define for armv5.

	* gmp-impl.h: Move down toom itch functions to after we've #defined
	all THRESHOLDs.

	* dumbmp.c (isprime): Replace with slightly less inefficient code.
	(mpz_tdiv_r): New function.

2009-06-11  Niels Möller  <nisse@lysator.liu.se>

	Support for mpn_toom32_mul in speed:
	* tune/speed.c (routine): Added mpn_toom32_mul.
	* tune/speed.h (SPEED_ROUTINE_MPN_TOOM32_MUL): New macro.
	* tune/common.c (speed_mpn_toom32_mul): New function.

	* gmp-impl.h (mpn_toom32_mul_itch): Count scratch space needed
	for the calls to mpn_toom22_mul.
	(ABOVE_THRESHOLD): Moved this and related macros so it can be used
	by mpn_toom32_mul_itch.
	(mpn_toom22_mul_itch): Count scratch space for recursive calls.

2009-06-11  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/k7/mod_1_4.asm: New file, mainly for k7, but perhaps useful
	also for k6 and non-sse p6.

2009-06-10  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/mod_1_4.asm: Minor size reducing tweaks.

	* mpn/x86/mod_1.asm: Remove obsolete file.
	* mpn/x86/k7/mmx/mod_1.asm: Likewise.
	* mpn/x86/pentium4/sse2/mod_1.asm: Likewise.
	* mpn/x86/p6/mod_1.asm: Likewise.
	* mpn/x86/pentium/mod_1.asm: Likewise.

2009-06-08  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/toom4_sqr.c (mpn_toom4_sqr): Reorganized, to reduce
	the need for scratch space, and get rid of TMP_ALLOC. Also use
	mpn_toom_eval_dgr3_pm1.

	* mpn/generic/toom_interpolate_6pts.c (mpn_toom_interpolate_6pts):
	Stricter ASSERTs based on maximum size of polynomial coefficients.
	Improved comments on the signedness of intermediate values.

2009-06-07  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/toom2_sqr.c: Make it actually work.

	* mpn/generic/toom3_sqr.c: Reduce local scratch space.

2009-06-05  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mul_fft.c (FFT_TABLE2_SIZE): Default to 200.
	(MUL_FFT_TABLE2_SIZE, SQR_FFT_TABLE2_SIZE): Let these decide
	FFT_TABLE2_SIZE if they are defined.
	(struct nk): Use bit field.

2009-06-05  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/toom44_mul.c (mpn_toom44_mult): Use
	mpn_toom_eval_dgr3_pm1.

	* mpn/generic/toom_eval_dgr3_pm1.c: New file.

	* mpn/generic/toom_interpolate_7pts.c (mpn_toom_interpolate_7pts):
	Minor cleanup, use mpn_add rather than mpn_add_n + MPN_INCR_U.

	* mpn/generic/toom44_mul.c (mpn_toom44_mul): Reorganized, to
	reduce the need for scratch space, and get rid of TMP_ALLOC.

2009-06-05  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/toom_interpolate_7pts.c: Fall back mpn_divexact_byN to
	mpn_bdiv_q_1_pi1, if the latter is NATIVE.

2009-06-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/bdiv_q_1.asm: New file.

	* configure.in (HAVE_NATIVE): Add recently added functions.
	(GMP_MULFUNC_CHOICES): Handle addlsh_n, sublsh_n, rsblsh_n.

	* tune/common.c (speed_mpn_bdiv_q_1, speed_mpn_bdiv_q_1_pi1):
	New functions.
	* tune/speed.c (routine): Add mpn_bdiv_q_1 and mpn_bdiv_q_1_pi1.
	* tune/speed.h (SPEED_ROUTINE_MPN_BDIV_Q_1_PI1): New #define.
	(SPEED_ROUTINE_MPN_BDIV_Q_1): Mew #define.

	* configure.in (gmp_mpn_functions): Add bdiv_q_1.
	* mpn/generic/bdiv_q_1.c: New file.
	* mpn/asm-defs.m4 (define_mpn): Add mpn_bdiv_q_1 and mpn_bdiv_q_1_pi1.
	* gmp-impl.h (mpn_bdiv_q_1, mpn_bdiv_q_1_pi1): Declare.

	* mpn/x86_64/lshift.asm: Cleanup.
	* mpn/x86_64/rshift.asm: Cleanup.

	* mpn/x86_64/addlsh1_n.asm: Removed.
	* mpn/x86_64/aorrlsh1_n.asm: Generalised addlsh1_n.asm to handle
	addlsh1_n and rsblsh1_n functionality.

	* tests/refmpn.c (refmpn_rsblsh1_n): New function.
	* tests/devel/try.c: Test mpn_rsblsh1_n.
	* tests/tests.h: Declare refmpn_rsblsh1_n.
	* tune/common.c (speed_mpn_rsblsh1_n): New function.
	* tune/speed.c (routine): Add mpn_rsblsh1_n.
	* tune/speed.h (mpn_rsblsh1_n): Declare.

	* configure.in (gmp_mpn_functions_optional): Add rsblsh1_n.
	(GMP_MULFUNC_CHOICES): Handle rsblsh1_n defined with a mulfunc.
	* mpn/asm-defs.m4 (define_mpn): Add rsblsh1_n.
	* gmp-impl.h (mpn_rsblsh1_n): Declare.

	* mpn/generic/toom32_mul.c: Consistently use TOOM22_MUL_N_REC.

2009-06-03  Marco Bodrato  <bodrato@mail.dm.unipi.it>

	* mpn/generic/toom43_mul.c: New file.
	* mpn/generic/toom52_mul.c: New file.
	* mpn/generic/toom_interpolate_6pts.c: New file.

2009-06-03  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (gmp_mpn_functions): Add toom43_mul, toom52_mul, and
	toom_interpolate_6pts, but also some previously forgotten functions.
	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Likewise.
	* gmp-impl.h: Declare new functions. Sort toom function declarations.

	* gmp-impl.h: Rename  toom4_* flags enum to toom7_*.  Relevant C files
	updated.

	* mpn/generic/toom_interpolate_7pts (divexact_2exp): Remove.

2009-06-02  Torbjorn Granlund  <tege@gmplib.org>

	* demos/factorize.c: Add -q command line option.

2009-06-02  Marco Bodrato  <bodrato@mail.dm.unipi.it>

	* mpn/generic/toom_interpolate_7pts.c: Streamline, resulting in speed
	improvements.

	* mpn/generic/toom_interpolate_5pts.c: Likewise, but also completely
	do away with explicit scratch space.
	* gmp-impl.h (mpn_toom_interpolate_5pts): Update prototype.

	* mpn/generic/mul_n.c (mpn_toom3_sqr_n, mpn_toom3_mul_n):
	Update toom_interpolate_5pts call without scratch space parameter.
	* mpn/generic/toom3_sqr.c: Likewise.
	* mpn/generic/toom42_mul.c: Likewise.
	* mpn/generic/toom33_mul.c: Likewise.

	* mpn/generic/toom33_mul.c: Reduce local scratch space.
	* mpn/generic/toom32_mul.c: Rewrite to not use local scratch space.

2009-06-02  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/toom22_mul.c (TOOM22_MUL_MN_REC): New macro, use it for
	oo point.

2009-06-01  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mul.c: Loop to avoid excessive recursion in toom33 and
	toom44 slicing code.

	* mpz/remove.c: Correctly handle multiplicity that does not fit an int.

	* Makefile.am (dist-hook): Check library version consistency.

	* mpn/generic/mul.c: Rewrite.

2009-05-29  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz/t-divis.c (check_random): Create huge test operands.

	* mpn/generic/toom44_mul.c: Allocate temp space using one TMP_ALLOC
	call, not multiple TMP_SALLOC.
	* mpn/generic/toom4_sqr.c: Likewise.

	* gmp-impl.h (mpn_toom22_mul_itch): Replace totally wrong code.

	* mpn/generic/mullow_n.c: Relax overlap requirement implied by ASSERT.

	* mpn/generic/divis.c: Rewrite.

	* gmp-impl.h (mpn_mu_bdiv_qr): Now returns mp_limb_t.
	(mpn_toom2_sqr_itch): Simplify.

	* mpn/generic/mu_bdiv_qr.c: Implement properly.

2009-05-27  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mod_1_1.c: Add proper ASSERT functionality cps function.
	* mpn/generic/mod_1_2.c: Likewise.
	* mpn/generic/mod_1_3.c: Likewise.
	* mpn/generic/mod_1_4.c: Likewise.

	* tune: Add speed measuring of toom22, toom33, and toom44.

	* mpn/generic/toom22_mul.c: Handle potentially unbalanced coefficient
	product better.

2009-05-26  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz/t-mul.c (ref_mpn_mul): Use mpn_toom44_mul in FFT range for
	better huge-operands performance.

2009-05-24  Torbjorn Granlund  <tege@gmplib.org>

	* acinclude.m4 (GMP_ASM_LSYM_PREFIX): Try "$L" too, before "$".

2009-05-23  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h (mpn_mod_1s_1p,mpn_mod_1s_2p,mpn_mod_1s_3p,mpn_mod_1s_4p):
	Declare using __GMP_ATTRIBUTE_PURE.

	* tune/tuneup.c (tune_mod_1): Specify check_size for measuring mod_1_N
	functions.
	(one): Remove redundant size loop exit condition.

2009-05-20  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/pentium4/sse2/mod_1_4.asm: New file.
	* mpn/x86/p6/sse2/mod_1_4.asm: New file (grabbing pentium4 code).

2009-05-18  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-h.in (__GNU_MP_VERSION_MINOR): Bump to 4.
	(__GNU_MP_VERSION_PATCHLEVEL): Set to -1.

	* mpn/x86_64/mod_1_4.asm: New file.

	* mpn/asm-defs.m4: Correct names for mod_1_N functions.
	Add defines for corresponding cps functions.

	* mpn/generic/mod_1_2.c: Support any sizes > 1.
	* mpn/generic/mod_1_3.c: Likewise.
	* mpn/generic/mod_1_4.c: Likewise.

2009-05-12  Torbjorn Granlund  <tege@gmplib.org>

	* Version 4.3.1 released.

2009-05-11  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-h.in (__GNU_MP_VERSION_MINOR): Bump.

	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
	Bump version info.

2009-05-09  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz: Add MPZ_CHECK_FORMAT to many tests.

2009-05-07  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/pentium4/sse2/mul_basecase.asm: Avoid L(ret), "ret" is
	defined in x86-defs.m4.

2009-05-06  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/p6/aors_n.asm: Use L() for labels.
	* mpn/x86/pentium4/sse2/addmul_1.asm: Likewise.
	* mpn/x86/pentium4/sse2/mul_1.asm: Likewise.
	* mpn/x86/pentium4/sse2/mul_basecase.asm: Likewise.
	* mpn/x86/pentium4/sse2/sqr_basecase.asm: Likewise.
	* mpn/x86_64/lshift.asm: Likewise.
	* mpn/x86_64/rshift.asm: Likewise.

	* tests/cxx/t-locale.cc (point_string): Declare as extern "C" to
	placate compilers that mangle variable names.

2009-05-04  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz/t-gcd.c: Generate operands that are multiple of each other.

2009-05-01  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-h.in (__GMP_EXTERN_INLINE): Support for more systems.
	(gmp_randinit_set): Add missing __GMP_DECLSPEC.

2009-04-28  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/neg_n.c: New file.
	* configure.in (gmp_mpn_functions): Add neg_n.
	* mpn/asm-defs.m4 (define_mpn): Add neg_n.
	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Add neg_n.c.
	* gmp-h.in: Handle mpn_neg_n properly.

	* mpn/generic/toom_interpolate_7pts.c (divexact_2exp): Nailify.

	* mpn/generic/gcdext.c: Change some MPN_NORMALIZE to
	MPN_NORMALIZE_NOT_ZERO.
	* mpn/generic/gcdext_lehmer.c: Likewise.
	Add a MPN_NORMALIZE_NOT_ZERO.

	* mpn/generic/binvert.c: Remove own mpn_neg_n.

	* tests/mpz/t-gcd.c: Add some MPZ_CHECK_FORMAT calls.

2009-04-27  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/Makefile.am (TARG_DIST): Add minithres.

	* mpn/generic/bdiv_dbm1c.c: Handle nails.

2009-04-26  Torbjorn Granlund  <tege@gmplib.org>

	* config.guess: Recognise more POWER processor types.

2009-04-25  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/pentium4/sse2/popcount.asm: Work around Apple reloc bug.
	* mpn/x86/darwin.m4: Define symbol "DARWIN".

2009-04-19  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/powm.c (mpn_redc_n): Use ASSERT_ALWAYS, not abort().
	* mpn/generic/powm_sec.c: Likewise.

	* mpn/powerpc64/aix.m4 (EXTERN_FUNC): New define.  Add dummy variants
	for other m4 files.
	* mpn/powerpc64/mode64/divrem_1.asm: Use EXTERN_FUNC.
	* mpn/powerpc64/mode64/divrem_1.asm: Likewise.

2009-04-16  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/x86_64-defs.m4 (JUMPTABSECT): New define.
	* mpn/x86_64/darwin.m4: Likewise.
	* mpn/x86_64/sqr_basecase.asm: Rework switch code using JUMPTABSECT.

	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer):
	Remove an unused variable.

	* mpn/x86/x86-defs.m4 (LEA): Get SIZE arguments right.

2009-04-14  Torbjorn Granlund  <tege@gmplib.org>

	* Version 4.3.0 released.

	* scanf/doscan.c (__gmp_doscan): Pad 3-operand scanf call with dummy
	argument.
	* scanf/sscanffuns.c (scan): Disable vsscanf variant for now.

2009-04-13  Torbjorn Granlund  <tege@gmplib.org>

	* scanf/sscanffuns.c (scan): Rewrite to use stdarg.

	* tests/mpz/t-root.c: Rewrite.  Add unconditional gcc 4.3.2 tests.

2009-04-09  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/powm.c: New file.
	* mpn/generic/powlo.c: New file.
	* mpn/generic/powm_sec.c: New file.
	* configure.in (gmp_mpn_functions): List new functions.

2009-04-08  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/urandomm.c: Amend last fix.

2009-04-06  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Support Sun cc for x86_64.

	* mpz/urandomm.c: Handle operand overlap.

2009-03-11  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (powerpc): Brave removing -Wa,-mppc64, in the hope that
	GCC now passes the proper options.

2009-03-09  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/divrem_1.asm: Add a nop to save a cycle in unnormalised
	case.

2009-03-05  Torbjorn Granlund  <tege@gmplib.org>

	* ia64/gmp-mparam.h, arm/gmp-mparam.h, x86/p6/mmx/gmp-mparam.h,
	pa32/hppa2_0/gmp-mparam.h sparc32/v9/gmp-mparam.h: Update.

2009-03-03  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/ia64/bdiv_dbm1c.asm: Accept/return carry.

2009-03-02  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (64-bit sparc/solaris): Pass -xO3, not -O3 to solaris
	system compiler.

2009-03-01  Torbjorn Granlund  <tege@gmplib.org>

	* longlong.h (mips, powerpc): Provide assembly-free umul_ppmm for newer
	gcc.

2009-02-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/redc_2.c: Remove code for testing and timing.  Update
	to current FSF header.
	* mpn/generic/redc_1.c: Update to current FSF header.

2009-01-21  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/powm.c (redc): Remove.
	(mpz_powm): Use mpn_redc_1 instead of redc.

	* tests/mpz/t-powm.c: Rewrite reference code.

2009-01-18  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz: Increase reps for many tests.

	* mpn/generic/rootrem.c (mpn_rootrem_internal): Use MPN_DECR_U instead of
	mpn_sub_1 (works around gcc 4.3 bugs and is also faster).

2009-01-16  Torbjorn Granlund  <tege@gmplib.org>

	* tests/tests.h: Declare refmpn_divrem_2.

2009-01-15  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/perfpow.c: Add TMP_FREE before every return statement.

	* mpn/generic/rootrem.c (mpn_rootrem_internal): Add a missing TMP_FREE.

	* configure.in (gcc_cflags, gcc_64_cflags): Revert from -O3 to -O2,
	the change was accidental and cause too much miscompilation.

2009-01-14  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (tune_mod_1): Run MOD_1_x_THRESHOLD tests also when
	longlong.h specified UDIV_PREINV_ALWAYS.

	* mpn/generic/mod_1.c (mpn_mod_1): Properly check for normalisation
	divisor.

2009-01-13  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (tune_mod_1): Tune for MOD_1_1_THRESHOLD,
	MOD_1_2_THRESHOLD, and MOD_1_4_THRESHOLD.

	* mpn/generic/mod_1.c: Rewrite.
	* mpn/generic/mod_1_1.c: New file.
	* mpn/generic/mod_1_2.c: New file.
	* mpn/generic/mod_1_3.c: New file.
	* mpn/generic/mod_1_4.c: New file.
	* configure.in (gmp_mpn_functions): Add mod_1_*.
	* mpn/asm-defs.m4 (define_mpn): Add mod_1_*.
	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Add mod_1_*.c.
	* gmp-impl.h: Declare new mpn_mod_1s_* functions and associated
	THRESHOLD macros.
	(udiv_rnd_preinv): New macro.

2009-01-12  Torbjorn Granlund  <tege@gmplib.org>

	* tune/tuneup.c (tune_gcd_dc,tune_gcdext_dc): Lower step_factor to 0.1.

2009-01-08  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz/t-nextprime.c: New test file.
	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-nextprime.

	From Niels Möller:
	* mpz/nextprime.c: Handle large prime gaps by limiting incr.

2009-01-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/and.c, mpz/ior.c, mpz/xor.c: Re-read only necessary source
	pointers after reallocation.  Misc cleanup.

	* gmp-impl.h (MPN_TOOM44_MAX_N): New define, replaces MPN_TOOM3_MAX_N.

	* mpn/x86/fat/diveby3.c: New file.

2008-12-30  Niels Möller  <nisse@lysator.liu.se>

	* doc/gmp.texi (Greatest Common Divisor Algorithms): Updated
	section on GCD algorithms.

2008-12-29  Torbjorn Granlund  <tege@gmplib.org>

	* doc/gmp.texi (Multiplication Algorithms): Add descriptions of Toom-4
	and unbalanced multiplication.
	(Radix to Binary): Add warning that text is outdated,
	(Contributors): Fix typos.

	* mpn/generic/toom*.c: Use coherent MAYBE_ macros for trimming
	unreachable recursive functions.
	* gmp-impl.h: Update toom itch functions.

	* mpn/x86_64/sqr_basecase.asm: Slightly increase stack allocation, to
	placate tuneup.

2008-12-28  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/pentium4/aors_n.asm: Tune prologue code.

	* mpn/x86_64/pentium4/aorslsh1_n.asm: New file.

	* mpn/x86_64/darwin.m4: Define symbol "DARWIN".
	* mpn/x86_64/invert_limb.asm: Work around darwin quirks.

	* mpn/x86_64/sqr_basecase.asm: Further optimize, support Darwin.

	* mpn/x86_64/invert_limb.asm: New file.

2008-12-27  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/core2/aorslsh1_n.asm: New file.

2008-12-26  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/perfpow.c: Handle negative arguments properly.
	* tests/mpz/t-perfpow.c: New file.
	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-perfpow.

2008-12-23  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz/t-mul.c (dump_abort): Improve error message.

	* gcd.c gcd_subdiv_step.c gcdext.c gcdext_subdiv_step.c:
	Remove private mpn_zero_p.

	* tune/tuneup.c (tune_mul): Tune for MUL_TOOM44_THRESHOLD.
	(tune_sqr): Tune for SQR_TOOM4_THRESHOLD.

	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add toom44_mul.c and
	toom4_sqr.c.

	* configure.in (gmp_mpn_functions): Toom function updates.

	* Rename mpn/mul_toomMN.c to mpn/toomMN_mul.c.  Function names changed
	accordingly.

	* mpn/toomMN_mul.c: Add scratch parameter.  Do recursive multiplies
	properly.  Misc tuning.  Remove CHECK and TIMING code.

	* mpn/toom2_sqr.c, mpn/toom3_sqr.c, mpn/toom4_sqr.c: New files.

	* gmp-impl.h (mpn_toomMN_mul_itch): Several new functions.
	(mpn_zero_p): New functions.
	Add various TOOM4/TOOM44 related parameters.
	Update mpn_toomMN_mul prototypes.

	* mpn/generic/mul_n.c (mpn_mul_n): Call mpn_toom44_mul.  Use TMP_BALLOC
	instead of malloc.
	(mpn_sqr_n): Analogous changes.

	* mpn/generic/mul.c: Update unbalanced toom code to pass scratch space.

2008-12-21  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/nextprime.c: Add TMP_SDECL/MARK/FREE.

2008-12-20  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/sqrtrem.c (mpn_sqrtrem1): Rewrite, improve interface.
	(invsqrttab): New table, remove table approx_tab.
	(mpn_sqrtrem2): Optimize, update mpn_sqrtrem1 call.
	(mpn_sqrtrem): Update mpn_sqrtrem1 call.

2008-12-18  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/nextprime.c: Run 10 mpz_millerrabin tests (was 5).
	Give credit to authors.

	* mpn/x86_64/redc_1.asm: Align stack as mandated by ABI.

	* mpn/x86_64/divrem_2.asm: Add some comments.

	* mpn/x86_64/darwin.m4: New file.
	* configure.in: Use x86_64/darwin.m4.

2008-12-15  Torbjorn Granlund  <tege@gmplib.org>

	* doc/projects.html: Remove GCD and division projects, update text on
	multiplication.

	* doc/tasks.html: Add a caution about that the file is somewhat
	outdated.

2008-12-14  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/alpha/ev6/aorsmul_1.asm: New file (same code for mpn_addmul_1,
	much improved for mpn_submul_1).
	* mpn/alpha/ev6/addmul_1: File removed.
	* mpn/alpha/ev6/submul_1: File removed.

2008-12-09  Torbjorn Granlund  <tege@gmplib.org>

	From David Harvey:
	* mpn/x86_64/mul_basecase.asm: Further tweaks for code size and speed.

	* mpn/powerpc64/mode64/divrem_1.asm: Rewrite.

	* mpn/powerpc64/mode64/mul_basecase.asm: New file.

2008-12-08  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/powerpc64/mode64/gmp-mparam.h: New file.

	* gmp-impl.h: Additional cleanups.
	(mpn_set_str_compute_powtab): New prototype.
	(mpn_powm, mpn_powlo): New prototypes.

	* mpz/pow_ui.c: Handle some small exponents locally.

2008-12-07  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/set_str.c: Remove prototypes (they are in gmp-impl.h).

	* tune/set_strs.c, tune/set_strb.c: Make prototypes effective by moving
	the #define mpn_set_str* before including gmp-impl.h.

	* All files: Change _PROTO => __GMP_PROTO.

	* tune/speed.c (routine): Remove non-working choice mpn_set_str_subquad.
	* tune/common.c (speed_mpn_dc_set_str): Remove, it is broken.

	* mpn/generic/toom_interpolate_7pts.c (divexact_2exp): Make this static,
	and inline it.

	* gmp-impl.h: Major cleanup.
	(Remove formal parameter names.  Use __GMP_PROTO consistently.  Move
	__GMP_PROTO and __MPN use to adjacent lines for declared function.
	Fix typos.  Remove code inside #if 0.)

	* configure.in (gmp_mpn_functions): Add mul_toom33.  Reformat.

2008-12-05  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/redc_1.c: New file.
	* mpn/generic/redc_2.c: New file.

	* configure.in (gmp_mpn_functions): List redc_1 and redc_2.
	(HAVE_NATIVE): Likewise.

	* tune/common.c (speed_mpn_redc_1): Renamed from speed_redc.
	* tune/speed.c (routine): Remove "redc", and "mpn_redc_1".
	* tune/speed.h (SPEED_ROUTINE_REDC_1): Renamed from SPEED_ROUTINE_REDC.
	Updated call.
	* tune/tuneup.c (tune_powm): Update redc call.

2008-12-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/sqr_basecase.asm: Inline a combined diagonal product code
	and addlsh1 loop.  Misc cleanup.

2008-12-02  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/sqr_basecase.asm: New file.

2008-11-30  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/sqr_basecase.c: Fix typo in mpn_addmul_2s variant.

2008-11-28  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/redc_1.asm: Rewrite.

2008-11-27  Torbjorn Granlund  <tege@gmplib.org>

	* tests/refmpn.c (refmpn_redc_1): New function.

2008-11-25  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/k7/aorsmul_1.asm: Actually handle mpn_submul_1.

2008-11-23  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/divrem_1.asm: Rewrite.

	* alpha/divrem_2.asm: New file.
	* powerpc32/divrem_2.asm: New file.
	* powerpc64/mode64/divrem_2.asm: New file.
	* x86/divrem_2.asm: New file.
	* x86_64/divrem_2.asm: New file.
	* tests/refmpn.c (refmpn_divrem_2): New function.

2008-11-22  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/k7/mul_1.asm: Rewrite for smaller size and better speed.
	* mpn/x86/k7/aorsmul_1.asm: Likewise.

	* acinclude.m4 (GMP_VERSION): Include last component even when zero.

2008-11-21  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/README: Rewrite.

	* tests/devel/try.c (malloc_region, mprotect_maybe): Add casts for
	printf type correctness.

	* gmp-h.in (__GNU_MP_VERSION_MINOR): Bump.

	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
	Bump version info.

2008-11-20  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h: Rename modlimb_invert to binvert_limb.
	* tune/speed.h: Likewise.
	* tune/modlinv.c: Likewise.
	* tune/common.c: Likewise.
	* tests/t-modlinv.c: Likewise.
	* tests/t-constants.c: Likewise.
	* mpn/sparc64/mode1o.c: Likewise.
	* mpn/alpha/dive_1.c: Likewise.
	* mpn/sparc64/dive_1.c: Likewise.
	* mpn/generic/mode1o.c: Likewise.
	* mpn/generic/dive_1.c: Likewise.
	* mpn/generic/bdivmod.c: Likewise.
	* mpn/alpha/mode1o.asm: Likewise.
	* mpn/asm-defs.m4: Likewise.
	* mpn/ia64/mode1o.asm: Likewise.
	* mpn/powerpc32/README: Likewise.
	* mpn/powerpc32/mode1o.asm: Likewise.
	* mpn/powerpc64/mode64/dive_1.asm: Likewise.
	* mpn/powerpc64/mode64/mode1o.asm: Likewise.
	* mpn/x86/dive_1.asm: Likewise.
	* mpn/x86/k6/mmx/dive_1.asm: Likewise.
	* mpn/x86/k6/mode1o.asm: Likewise.
	* mpn/x86/k7/dive_1.asm: Likewise.
	* mpn/x86/k7/mode1o.asm: Likewise.
	* mpn/x86/p6/dive_1.asm: Likewise.
	* mpn/x86/p6/mode1o.asm: Likewise.
	* mpn/x86/pentium/dive_1.asm: Likewise.
	* mpn/x86/pentium/mode1o.asm: Likewise.
	* mpn/x86/pentium4/sse2/dive_1.asm: Likewise.
	* mpn/x86/pentium4/sse2/mode1o.asm: Likewise.
	* mpn/x86_64/dive_1.asm: Likewise.
	* mpn/x86_64/mode1o.asm: Likewise.

	* mpn/x86_64/aors_n.asm: Replace with slightly faster, more alignment
	neutral loop.

2008-11-18  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Remove gcd_finda related declarations.
	* gmp-impl.h (mpn_gcd_finda): Remove declaration.
	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Remove gcd_finda.
	* mpn/asm-defs.m4: Remove define_mpn(gcd_finda).
	* mpn/x86/k6/gcd_finda.asm: Remove file.
	* tests/devel/try.c (param_init): Remove mpn_gcd_finda.
	(choice_array): Remove mpn_gcd_finda.
	* tests/mpn/t-instrument.c (check): Remove testing of mpn_gcd_finda.
	* tests/refmpn.c (refmpn_gcd_finda): Remove.
	* tests/tests.h (refmpn_gcd_finda): Remove declaration.
	* tune/common.c (speed_mpn_gcd_finda): Remove.
	* tune/gcd_finda_gen.c: Remove file.
	* tune/speed.h (speed_mpn_gcd_finda): Remove declaration.
	* tune/speed.c (routine): Remove mpn_gcd_finda entry.

	* tests/mpz/t-powm.c: Print test number when failing a test.

	* mpn/x86_64/redc_1.asm (CALL): Move from here...
	* mpn/x86_64/x86_64-defs.m4: ...to here.

	* gmp-impl.h (mpn_jacobi_base): Remove parameter names.

2008-11-11  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpf/t-conv.c: Add some specific tests, supplementing the random
	tests.

2008-11-09  Torbjorn Granlund  <tege@gmplib.org>

	* mpf/set_str.c: Default 'base' before letting exp_base inherit it.

	* tests/cxx/t-prec.cc: Use the right precision for all float constants.

2008-11-08  Torbjorn Granlund  <tege@gmplib.org>

	* doc/gmp.texi (Float Comparison): Update mpf_eq documentation.

	* mpf/eq.c: Compare the right number of bits.

2008-11-02  Torbjorn Granlund  <tege@gmplib.org>

	Undo, it made testing too slow:
	* tests/mpz/t-mul.c: Use slower geometric progression for operand
	sizes.

	* mpn/x86/k7/mod_34lsub1.asm: Use movzb for masking low 8 bits.

2008-10-31  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/hgcd2.c (div1): New function (taken from old gcdext
	implementation)
	(mpn_hgcd2): Use single precision for the second half of the work.

2008-10-30  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/p6/sse2/gmp-mparam.h: New file.

2008-10-29  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (x86 fat_path): Add "x86/p6/sse2".

	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Recognize sse2 capable p6
	(pentiumm, core2).

	* mpn/x86/p6/sse2/mul_1.asm: New file.
	* mpn/x86/p6/sse2/addmul_1.asm: New file.
	* mpn/x86/p6/sse2/submul_1.asm: New file.
	* mpn/x86/p6/sse2/mul_basecase.asm: New file.
	* mpn/x86/p6/sse2/sqr_basecase.asm: New file.
	* mpn/x86/p6/sse2/popcount.asm: New file.

	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Handle "extended" fields for
	model and family.

2008-10-28  Torbjorn Granlund  <tege@gmplib.org>

	From Mickael Gastineau:
	* gmp-h.in (gmp_urandomm_ui, gmp_urandomb_ui): Add __GMP_DECLSPEC.

2008-10-27  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-h.in (mpn_gcdext_1): Remove bogus __GMP_ATTRIBUTE_PURE.

2008-10-27  Niels Möller  <nisse@lysator.liu.se>

	* tune/common.c (speed_mpn_hgcd): Call mpn_hgcd_matrix_init once
	for each call to mpn_hgcd.
	(speed_mpn_hgcd_lehmer): Likewise.

2008-10-26  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Point to p6/sse2 for pentiumm and core2.

	* gmp-impl.h (mpn_add_nc, mpn_sub_nc): Move these macros to after fat
	definitions.

	* tune/common.c, tune/speed.c, tune/speed.h:
	Add speed measurement of mpn_bdiv_dbm1c.

2008-10-24  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/gmp-mparam.h (MUL_FFT_TABLE2, SQR_FFT_TABLE2): Extend.

	* mpz/nextprime.c: Move declarations to function beginning.

2008-10-23  Niels Möller  <nisse@lysator.liu.se>

	* gmp-impl.h (DECL_gcdext_1): Deleted.

2008-10-22  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/atom/aors_n.asm: New file.
	* mpn/x86_64/atom/gmp-mparam.h: New file.

2008-10-21  Torbjorn Granlund  <tege@gmplib.org>

	With Neils Möller:
	* mpz/nextprime.c: Rewrite.

	* tests/devel/try.c (main): Use strtol for 's' and 'S' optargs.

	* mpn/x86_64/pentium4/rshift.asm: Misc cleanups.
	* mpn/x86_64/pentium4/lshift.asm: Likewise.

	* mpn/x86_64/pentium4/aors_n.asm: Use fewer registers.

	* configure.in: Set up specific path for x86_64/atom.

2008-10-21  Niels Möller  <nisse@lysator.liu.se>

	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Removed
	qstack.c.
	* mpn/generic/qstack.c: Deleted obsolete file.

2008-10-20  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/core2/aorsmul_1.asm: New file.

2008-10-19  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/aors_n.asm: Remove redundant MULFUNC_PROLOGUE.

	* gmp-impl.h (popc_limb): Remove redundant checks of GMP_LIMB_BITS
	inside several of these macros.

2008-10-17  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz/t-mul.c: Use slower geometric progression for operand
	sizes.  Do every other tests for same size operands.

2008-10-15  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/mul_basecase.asm: Simplify addressing in epilogue.

	* mpn/mips64/divrem_1.asm: Remove file, it is n32-only, and uses an old
	algorithm.

	* config.guess, config.sub, configure.in: Support Intel Atom processor.

2008-10-10  Torbjorn Granlund  <tege@gmplib.org>

	* mpq/mul.c: Fix typo in last change.

2008-10-09  Torbjorn Granlund  <tege@gmplib.org>

	* tests/refmpn.c (refmpn_sb_divrem_mn): Work around a gcc bug.

2008-10-08  Torbjorn Granlund  <tege@gmplib.org>

	* mpq/mul.c: Use TMP_ALLOC.  Cleanup.
	* mpq/div.c: Likewise.

	* mpn/x86_64/mul_basecase.asm: Use lea directly for loading entry point
	addresses.

2008-10-09  Niels Möller  <nisse@lysator.liu.se>

	* mpn/x86/k7/gmp-mparam.h: Updated GCD-related values.

2008-10-05  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mul_fft.c (mpn_mul_fft_internal): Do store
	mpn_fft_norm_modF return value, if (rec).

2008-10-04  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/aorsmul_1.asm: Replace with faster code.
	* mpn/x86_64/mul_1.asm: Likewise.
	* mpn/x86_64/addmul_2.asm: Likewise.
	* mpn/x86_64/mul_2.asm: Likewise.
	* mpn/x86_64/mul_basecase.asm: Likewise.

2008-10-02  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/minithres/gmp-mparam.h: Update FFT values.

2008-10-02  Niels Möller  <nisse@lysator.liu.se>

	* hgcd.c (mpn_hgcd_matrix_mul): Fixed normalization bug.

2008-09-24  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Handle --enable-minithres.
	* mpn/minithres/gmp-mparam.h: Update all values.

2008-09-22  Torbjorn Granlund  <tege@gmplib.org>

	* tune/speed.c (routine): New entry for mpn_mul.
	* tune/speed.h (SPEED_ROUTINE_MPN_MUL): Renamed from
	SPEED_ROUTINE_MPN_MUL_BASECASE.
	(speed_mpn_mul): Renamed from speed_mpn_mul_basecase.
	(SPEED_ROUTINE_MPN_MUL): Allocate our own memory of xp operand.

	* tune/common.c: Corresponding changes.

2008-09-22  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/gcdext.c (hgcd_mul_matrix_vector): New function,
	replaces addmul2_n. Needs less copying.
	(mpn_gcdext): Use hgcd_mul_matrix_vector. Updated for interface
	change in mpn_gcdext_subdiv_step

	* mpn/generic/hgcd.c (hgcd_matrix_mul_1): Rewritten to use
	mpn_hgcd_mul_matrix1_vector.
	(hgcd_step): Updated for interface change in
	mpn_hgcd_mul_matrix1_inverse_vector.

	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Updated for
	interface changes in mpn_hgcd_mul_matrix1_vector,
	mpn_hgcd_mul_matrix1_inverse_vector and mpn_gcdext_subdiv_step.

	* mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer_n): Updated for
	interface change in mpn_hgcd_mul_matrix1_inverse_vector.

	* mpn/generic/gcdext_subdiv_step.c (mpn_gcdext_subdiv_step): Use
	separate scratch arguments for the quotient and for the cofactor
	update.

	* mpn/generic/hgcd2.c (mpn_hgcd_mul_matrix1_vector): Interface
	change. Store first element in rp and leave ap unmodified. No
	additional scratch space or copying needed. Callers that require
	modification in place still need to copy one of the inputs.
	(mpn_hgcd_mul_matrix1_inverse_vector): Likewise.

2008-09-22  Niels Möller <nisse@lysator.liu.se>  <nisse@king.swox.se>

	* mpn/generic/hgcd.c (hgcd_matrix_mul_1): Use mpn_addaddmul_1msb0.
	* mpn/generic/hgcd2.c (mpn_hgcd_mul_matrix1_vector): Likewise.

	* mpn/generic/gcd.c: Use libspeed for timing measurements.

	* gmp-impl.h: Declare mpn_addaddmul_1msb0.
	* mpn/asm-defs.m4: Added addaddmul_1msb0.
	* mpn/x86_64/addaddmul_1msb0.asm: New file.
	* configure.in (gmp_mpn_functions_optional): Added
	addaddmul_1msb0.
	(HAVE_NATIVE): List addaddmul_1msb0.

2008-09-21  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/get_str.c (GET_STR_DC_THRESHOLD): Remove default.
	(GET_STR_PRECOMPUTE_THRESHOLD): Likewise.
	Misc code cleanups.

	* gmp-impl.h (mpn_dc_set_str_itch): Allocate GMP_LIMB_BITS more limbs.

	Revert:
	* mpn/generic/set_str.c:
	(mpn_dc_set_str): Remove impossible case, replace by an ASSERT.

2008-09-18  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/alpha/ev6/gmp-mparam.h (DIVEXACT_BY3_METHOD): Define.

	* mpn/ia64/diveby3.asm: Remove.
	* mpn/x86/diveby3.asm: Remove.
	* mpn/x86/k6/diveby3.asm: Remove.
	* mpn/x86/k7/diveby3.asm: Remove.
	* mpn/x86/p6/diveby3.asm: Remove.
	* mpn/x86/pentium/diveby3.asm: Remove.
	* mpn/x86_64/diveby3.asm: Remove.
	* mpn/x86/pentium4/sse2/diveby3.asm: Remove.

	* configure.in (HAVE_NATIVE): List divexact_by3c.

	* gmp-impl.h (mpn_divexact_by3c): Override gmp-h.in's definition.
	(DIVEXACT_BY3_METHOD): Don't default to 0 if
	HAVE_NATIVE_mpn_divexact_by3c.

2008-09-18  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/gcd.c (main): Added code for tuning of CHOOSE_P.

	* mpn/generic/hgcd.c (mpn_hgcd_matrix_mul): Assert that inputs are
	normalized.

2008-09-17  Niels Möller <nisse@lysator.liu.se>  <nisse@king.swox.se>

	* mpn/generic/gcdext.c (mpn_gcdext): p = n/5 caused a
	slowdown for large inputs. As a compromise, use p = n/2 for the
	first iteration, and p = n/3 for the rest. Handle the first
	iteration specially, since the initial u0 and u1 are trivial.

	* mpn/x86_64/gmp-mparam.h (GCDEXT_DC_THRESHOLD): Reduced threshold
	from 409 to 390.

	* mpn/generic/gcdext.c (CHOOSE_P): New macro. Use p = n/5.
	(mpn_gcdext): Use CHOOSE_P, and generalized the calculation of
	scratch space.

	* tune/tuneup.c (tune_hgcd): Use default step factor.

	* mpn/x86_64/gmp-mparam.h: (GCD_DC_THRESHOLD): Reduced from 493 to
	412.

	* mpn/generic/gcd.c (CHOOSE_P): New macro, to determine the
	split when calling hgcd. Use p = 2n/3, as that seems better than
	the more obvious split p = n/2.
	(mpn_gcd): Use CHOOSE_P, and generalized the calculation of
	scratch space.

2008-09-16  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/toom_interpolate_7pts.c: Use new mpn_divexact_byN
	functions.

	* gmp-impl.h (mpn_divexact_by3, mpn_divexact_by5, mpn_divexact_by7,
	mpn_divexact_by9, mpn_divexact_by11, mpn_divexact_by13,
	mpn_divexact_by15): New macros, defined in terms of mpn_bdiv_dbm1.

	* configure.in (gmp_mpn_functions): List bdiv_dbm1c.
	(HAVE_NATIVE): Likewise.
	* mpn/asm-defs.m4: Define bdiv_dbm1c.
	* gmp-impl.h (mpn_bdiv_dbm1c): Declare.
	(mpn_bdiv_dbm1): New macro.
	* mpn/generic/bdiv_dbm1c.c: New file.
	* mpn/alpha/bdiv_dbm1c.asm: New file.
	* mpn/ia64/bdiv_dbm1c.asm: New file.
	* mpn/powerpc32/bdiv_dbm1c.asm: New file.
	* mpn/powerpc64/mode64/bdiv_dbm1c.asm: New file.
	* mpn/x86/bdiv_dbm1c.asm: New file.
	* mpn/x86_64/bdiv_dbm1c.asm: New file.

	* mpn/generic/diveby3.c: Add mpn_bdiv_dbm1c based function.
	Choose function depending on DIVEXACT_BY3_METHOD.
	* gmp-impl.h (DIVEXACT_BY3_METHOD): Provide default.

2008-09-16  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/hgcd.c (mpn_hgcd_addmul2_n): Moved function to
	gcdext.c, where it is used.
	* mpn/generic/gcdext.c (addmul2_n): Moved and renamed, was
	mpn_hgcd_addmul2_n. Made static. Deleted input normalization.
	Deleted rn argument.
	(mpn_gcdext): Updated calls to addmul2_n, and added assertions.

	* gmp-impl.h (MPN_HGCD_MATRIX_INIT_ITCH): Increased storage by 4 limbs.
	(MPN_HGCD_LEHMER_ITCH): Reduced storage by one limb.
	(MPN_GCD_SUBDIV_STEP_ITCH): Likewise.
	(MPN_GCD_LEHMER_N_ITCH): Likewise.

	* mpn/generic/hgcd.c (mpn_hgcd_matrix_init): Use two extra limbs.
	(hgcd_step): Use overlapping arguments to mpn_tdiv_qr.
	(mpn_hgcd_matrix_mul): Deleted normalization code. Tighter bounds
	for the element size of the product. Needs two extra limbs of
	storage for the elements.
	(mpn_hgcd_itch): Updated storage calculation.

	* mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): Use
	overlapping arguments to mpn_tdiv_qr. Use mpn_zero_p.

	* mpn/generic/gcd.c (mpn_gcd): Use mpn_zero_p.

2008-09-15  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/hgcd.c (mpn_hgcd_matrix_init): Updated for deleted
	tp pointer.
	(hgcd_matrix_update_q): Likewise.
	(mpn_hgcd_matrix_mul): Likewise.
	(mpn_hgcd_itch): Updated calculation of scratch space.

	* gmp-impl.h (struct hgcd_matrix): Deleted tp pointer.
	(MPN_HGCD_MATRIX_INIT_ITCH): Reduced storage.
	(mpn_hgcd_step, MPN_HGCD_STEP_ITCH): Deleted declarations.

2008-09-15  Niels Möller <nisse@lysator.liu.se>  <nisse@king.swox.se>

	* mpn/x86_64/gmp-mparam.h (MATRIX22_STRASSEN_THRESHOLD): New
	threshold.

	* mpn/generic/hgcd.c (mpn_hgcd_matrix_mul): Use mpn_matrix22_mul.
	(mpn_hgcd_itch): Updated calculation of scratch space. Use
	count_leading_zeros to get the recursion depth.

	* mpn/generic/gcd.c (mpn_gcd): Fixed calculation of scratch space,
	and use mpn_hgcd_itch.

2008-09-15  Niels Möller  <nisse@lysator.liu.se>

	* tune/tuneup.c (tune_matrix22_mul): New function.
	(all): Use it.

	* tune/common.c (speed_mpn_matrix22_mul): New function.

	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Added matrix22_mul.c.

	* tests/mpn/t-matrix22.c: Use MATRIX22_STRASSEN_THRESHOLD to
	select sizes for tests.

	* gmp-impl.h (MATRIX22_STRASSEN_THRESHOLD): New threshold

	* configure.in (gmp_mpn_functions): Added matrix22_mul.
	* gmp-impl.h: Added declarations for mpn_matrix22_mul and related
	functions.

	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Added
	matrix22_mul.c.
	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-matrix22.

	* tests/mpn/t-matrix22.c: New file.
	* mpn/generic/matrix22_mul.c: New file.

2008-09-11  Niels Möller  <nisse@king.swox.se>

	* tune/tuneup.c: Updated tuning of gcdext.

	* mpn/x86_64/gmp-mparam.h (GCDEXT_DC_THRESHOLD): Reduced threshold
	from 713 to 409.

2008-09-11  Niels Möller  <nisse@lysator.liu.se>

	* gmp-impl.h: Updated for gcdext changes.
	(GCDEXT_DC_THRESHOLD): New constant, renamed from
	GCDEXT_SCHOENHAGE_THRESHOLD.

	* mpn/generic/gcdext.c (compute_v): Accept non-normalized a and b
	as inputs.
	(mpn_gcdext): Rewrote and simplified. Now uses the new mpn_hgcd
	interface.

	* mpn/generic/hgcd.c (mpn_hgcd_addmul2_n): Renamed from addmul2_n
	and made non-static. Changed interface to take non-normalized
	inputs, and only two size arguments.
	(mpn_hgcd_matrix_mul): Simplified using new mpn_hgcd_addmul2_n.

	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_itch): Deleted
	function.
	(mpn_gcdext_lehmer_n): Renamed from mpn_gcd_lehmer. Now takes
	inputs of equal size. Moved the code for the division step to a
	separate function...
	* mpn/generic/gcdext_subdiv_step.c (mpn_gcdext_subdiv_step): New
	file, new function.

	* configure.in (gmp_mpn_functions): Added gcdext_subdiv_step.

2008-09-10  Torbjorn Granlund  <tege@gmplib.org>

	* tests/devel/anymul_1.c: Include <string.h>.

	* gmp-h.in: Unconditionally include <cstdio>.

2008-09-10  Niels Möller  <nisse@lysator.liu.se>

	* tune/common.c: #if:ed out speed_mpn_gcd_binary and
	speed_mpn_gcd_accel.
	* tune/speed.c (routine): #if:ed out mpn_gcd_binary, mpn_gcd_accel
	and find_a.
	* tune/Makefile.am (libspeed_la_SOURCES): Removed gcd_bin.c
	gcd_accel.c gcd_finda_gen.c.
	* tune/tuneup.c: Enable tuning of GCD_DC_THRESHOLD.

	* mpn/generic/gcd.c (mpn_gcd): Rewrote and simplified. Now uses
	the new mpn_hgcd interface.

	* */gmp-mparam.h: Renamed GCD_SCHOENHAGE_THRESHOLD to
	GCD_DC_THRESHOLD.

	* mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer_n): Renamed (was
	mpn_gcd_lehmer). Now takes inputs of equal size.

	* mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer): Reintroduced gcd_2,
	to get better performance for small inputs.

	* mpn/generic/hgcd.c: Don't hardcode small HGCD_THRESHOLD.
	* mpn/x86_64/gmp-mparam.h (HGCD_THRESHOLD): Reduced from 145 to
	120.
	* */gmp-mparam.h: Renamed HGCD_SCHOENHAGE_THRESHOLD to
	HGCD_THRESHOLD.

2008-09-09  Torbjorn Granlund  <tege@gmplib.org>

	* doc/gmp.texi: Fix a typo and clarify mpn_gcdext docs.

2008-09-09  Niels Möller  <nisse@lysator.liu.se>

	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): Adapted
	to new hgcd interface.

	* gmp-impl.h (MPN_HGCD_LEHMER_ITCH): New macro.

	* hgcd.c (mpn_hgcd_lehmer): Renamed function, from hgcd_base. Made
	non-static.

	* gcd_lehmer.c (mpn_gcd_lehmer): Use hgcd2 also for n == 2.

	* gcdext_lehmer.c (mpn_gcdext_lehmer): Simplified code for
	division step. Added proper book-keeping of swaps, which affect
	the sign of the returned cofactor.

	* tests/mpz/t-gcd.c (one_test): Display co-factor when mpn_gcdext
	fails.

	* gcd_lehmer.c (mpn_gcd_lehmer): At end of loop, need to handle
	the special case n == 1 correctly.

	* gcd_subdiv_step.c (mpn_gcd_subdiv_step): Simplified function.
	The special cancellation logic is not needed here.

2008-09-08  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/invert.c: Add working but slow code.

	* mpn/x86_64/x86_64-defs.m4 (R32, R8): New macros.

	* mpn/ia64/submul_1.asm: Move some labels for broader assembler
	compatibility.

	* gmp-impl.h (mpn_mul_3, mpn_mul_4): Declare.
	* tests/tests.h (refmpn_mul_3, refmpn_mul_4): Declare.
	* tests/try.c (param_init): Set things up for mpn_mul_3 and mpn_mul_4.
	(choice_array): Likewise.
	(call): Likewise.
	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES):
	Add mul_3.c and mul_4.
	* mpn/asm-defs.m4: Define mul_3 and mul_4.
	* tests/refmpn.c (refmpn_mul_N): New function.
	(refmpn_mul_2): Remove old definition, call refmpn_mul_N.
	(refmpn_mul_3, refmpn_mul_4): New functions.
	* tune/common.c (speed_mpn_mul_3, speed_mpn_mul_4): New functions.
	* tune/speed.h (speed_mpn_mul_3, speed_mpn_mul_4): Declare.
	* tune/speed.c (routine): New entries for mpn_mul_2 and mpn_mul_3.

	* ltmain.sh: Update to libtool 1.5.24.

	* mpn/generic/mul_toom22.c: Compute s and t more cleverly.

2008-09-08  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpn/t-hgcd.c: Updated tests. Rewrite of hgcd_ref.

	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_itch): New function.
	(mpn_gcdext_lehmer): Various bugfixes.

	* gcdext.c (mpn_gcdext): Allocate scratch space for gcdext_lehmer.

	* mpn/generic/gcd_lehmer.c (gcd_2): ASSERT that inputs are odd.
	(mpn_gcd_lehmer): Added tp argument, for scratch space. Make both
	arguments odd before calling gcd_2.

	* mpn/generic/hgcd.c (mpn_hgcd): Allow the trivial case n <= 2,
	and return 0 immediately.

	* gmp-impl.h (MPN_EXTRACT_NUMB): New macro.

	* configure.in (gmp_mpn_functions): Added gcdext_lehmer.

2008-09-05  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/toom_interpolate_7pts.c: Use mpn_divexact_by3c instead of
	divexact_odd.

	* doc/texinfo.tex: Update to 2007-06-29.13.

	* doc/gmp.texi: Update GMP site URL.  Fix some typos.

	* demos/pexpr.c (main): Allow bases up to 62.

	* gmp-impl.h: Remove formal parameter names from function prototypes.

	* config.guess: Recognize recent AMD and Itanium CPUs.
	Default X86 CPU recognition to configfsf.guess' value.

	* configure.in: Handle core2 separately from athlon64.

2008-09-05  Niels Möller  <nisse@lysator.liu.se>

	* */Makefile.in, configure, aclocal.m4, config.in: Removed files
	from repository. They're instead generated by automake and
	autoconf before distribution.

2008-08-25  Torbjorn Granlund  <tege@gmplib.org>

	* mpf/set_str.c: Allocate mantissa space based on mantissa size,
	not on destination variable space.
	* mpf/set_str.c: Accept unary plus before exponent.

2008-08-06  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mul_toom22.c: Add statistics gathering functionality,
	triggered by cpp predef STAT.

	From David Harvey:
	* mpn/generic/mul_toom22.c: Decrease scratch space usage.

2008-08-02  Torbjorn Granlund  <tege@gmplib.org>

	* tests/misc/t-scanf.c: Avoid negative arguments to _ui functions.
	* tests/misc/t-printf.c: Likewise.

	* acinclude.m4 (X86_PATTERN): Add geode.

	* acinclude.m4 (CL_AS_NOEXECSTACK): Avoid -q flag to grep.

2008-08-01  Torbjorn Granlund  <tege@gmplib.org>

	* acinclude.m4 (CL_AS_NOEXECSTACK): New.
	* configure.in: Use CL_AS_NOEXECSTACK.
	* mpn/Makeasm.am: Use ASM_FLAGS (defined by CL_AS_NOEXECSTACK).

	* gmpxx.h (__GMP_DBL_LIMBS): Use DBL_MAX_EXP instead of
	std::numeric_limits<double>::max_exponent for better portability.

2008-07-29  Torbjorn Granlund  <tege@gmplib.org>

	* gmpxx.h (__GMP_DBL_LIMBS): New #define.
	(__GMP_ULI_LIMBS): New #define.
	(__GMPXX_TMP_UI): New macro.
	(__GMPXX_TMP_SI): New macro.
	(__GMPXX_TMP_D): New macro.
	(struct __gmp_binary_and): Rewrite, using the new macros.
	(struct __gmp_binary_ior): Likewise.
	(struct __gmp_binary_xor): Likewise.

2008-07-28  Torbjorn Granlund  <tege@gmplib.org>

	* tests/cxx/t-binary.cc: Add some tests for logical operations.

2008-07-24  Torbjorn Granlund  <tege@gmplib.org>

	* gmpxx.h: Use __GMPZ_* instead of __GMPZZ_* for bitwise ops, remove
	__GMPZZ_*.
	Remove repeated #undefs.
	(__gmp_alloc_cstring): Declare freefunc as extern "C".

2008-07-23  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-h.in (__GMP_CC): New define, undocumented for now.
	(__GMP_CFLAGS): Likewise.

2008-07-21  Torbjorn Granlund  <tege@gmplib.org>

	* tests/amd64check.c: Fix a printf type clash.

	* mpz/realloc.c: Amend last fix.

	* gmp-h.in: Include <cstdlib> for C++.
	* gmp-h.in: Handle new gcc 4.3 inline semantics defaults.

	* configfsf.guess: Update to version of 2008-04-14.
	* configfsf.sub: Update to version of 2008-06-16.

	* configure.in: Separate core2 and athlon64 flags handling.

2008-06-19  Torbjorn Granlund  <tege@gmplib.org>

	* config.guess: Recognize pentiumm and AMD geode.
	* config.sub: Likewise.
	* configure.in: Likewise.

2008-06-02  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in: Disallow odd nails sizes.
	* configure.in: Inherit default gcc_cflags/gcc_64_cflags everywhere.

2008-05-23  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/init2.c: Rewrite to avoid internal overflow and to detect mpz_t
	overflow.
	* mpz/realloc2.c: Likewise.
	* mpz/realloc.c: Detect mpz_t overflow.

2008-05-22  Torbjorn Granlund  <tege@gmplib.org>

	* configure.in (sparc): Remove -fast, it causes documented
	miscompilation.

	* config.guess: Properly handle the "extended" variants of x86 cpuid.

2008-05-09  Torbjorn Granlund  <tege@gmplib.org>

	* gmp-impl.h (mpn_mul_fft): Now void.
	(udiv_qrnnd_preinv3): Special case for constant (nl).

2008-05-08  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/generic/mul_fft.c: Clean up types in TRACE (printf (...)).
	(TRACE): Redefine to allow command line control.
	(mpn_mul_fft_internal): Now void, remove return value.
	(mpn_mul_fft): Likewise.
	(MPN_FFT_TABLE2_SIZE): Up size fro 256 to 512.
	(mpn_fft_fft): Call mpn_fft_mul_2exp_modF just once instead of twice,
	then add/subtract result.  Get rid of temp allocation as a result.
	Remove some redundant CNST_LIMB.
	(mpn_fft_fftinv): Analogous changes.
	(mpn_fft_sub_modF): Re-enable, now needed by mpn_fft_fft and
	mpn_fft_fftinv.

2008-03-10  Torbjorn Granlund  <tege@gmplib.org>

	* tests/mpz/t-mul.c (main): Let GMP_CHECK_FFT mean largest allowed
	power-of-2 of test operands.

2008-02-28  Torbjorn Granlund  <tege@gmplib.org>

	* tests/cxx/t-binary.cc (check_mpz): Expect floor rounding for right
	shift.

2008-02-27  Torbjorn Granlund  <tege@gmplib.org>

	* mpz/mul_i.h: Check sml's size (not the signed small_mult).

	* longlong.h (umul_ppmm) [alpha]: Define using __builtin_alpha_umulh
	when possible.

	* longlong.h (count_trailing_zeros): Force destination register mode.

	* gmpxx.h (struct __gmp_binary_rshift): Use floor rounding, not
	truncation.

	* gmpxx.h (__gmp_binary_and, __gmp_binary_ior, __gmp_binary_xor):
	Add variants with unsigned long int argument.

	* config.sub: Recog geode.
	* config.guess: Likewise.
	* acinclude.m4 (X86_PATTERN): Likewise.

2008-02-10  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/p6/aors_n.asm: Use Zdisp to work around GNU as bug.
	* mpn/x86/x86-defs.m4 (Zdisp): Add more instructions.

2008-02-08  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86_64/aors_n.asm: New file.
	* mpn/x86_64/add_n.asm: Delete.
	* mpn/x86_64/sub_n.asm: Delete.

2008-02-07  Torbjorn Granlund  <tege@gmplib.org>

	* mpn/x86/k6/mmx/dive_1.asm: Fix typo in last change.

2007-12-10  Torbjorn Granlund  <tege@swox.com>

	* mpf/set_str.c (mpf_set_str): Write own code for converting the
	exponent, avoids strtol base < 36 limitation.

2007-10-28  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (mpn_dc_get_str_itch): New macro.
	(mpn_dc_get_str_powtab_alloc): New macro.
	(struct powers): Add field "shift".

	* mpn/generic/get_str.c: Compute powers without low zero limbs; all
	functions modified.  Correct temporary allocation.  Misc cleanups.

	* mpn/generic/set_str.c: Compute powers without low zero limbs; all
	functions modified.
	(mpn_dc_set_str): Remove impossible case, replace by an ASSERT.

2007-10-26  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/set_str.c: Remove default thresholds, not in gmp-impl.h.
	(mpn_dc_set_str): Insert ASSERT_ALWAYS in a presumably dead code arm.

2007-10-22  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (mpn_add_nc): Define as inline function, unless NATIVE.
	(mpn_sub_nc): Likewise.

2007-10-17  Torbjorn Granlund  <tege@swox.com>

	* tests/misc/t-printf.c: Fix a printf type clash.
	* tests/mpq/t-get_str.c: Likewise.
	* tests/mpz/t-import.c: Likewise.

	* acinclude.m4: Conditionally disable some tests when compiled by a C++
	compiler.

	* gmp-impl.h (udiv_qrnnd_preinv3): Remove an unused variable.

	* mpn/generic/hgcd.c: Add some WANT_ASSERTs to shut up warnings.

2007-10-08  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/elf.m4 (LEAL): Define as an alias for LEA.
	* mpn/powerpc32/darwin.m4 (LEAL): Likewise.
	* mpn/powerpc64/aix.m4: Likewise.

	* mpn/powerpc64/vmx/popcount.asm: Use LEAL.

	* mpn/powerpc64/darwin.m4 (LEAL): New name for LEA, since it is only
	usable for local symbols.
	(LEA): Replace with code for external references.

	* mpn/powerpc32/vmx/mod_34lsub1.asm: Use LEAL.

2007-10-07  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/dive_1.asm: Use LEA, remove explicit movl_eip_*.
	* mpn/x86/k6/mode1o.asm: Likewise.
	* mpn/x86/k6/mmx/dive_1.asm: Likewise.
	* mpn/x86/k7/dive_1.asm: Likewise.
	* mpn/x86/k7/mode1o.asm: Likewise.
	* mpn/x86/p6/dive_1.asm: Likewise.
	* mpn/x86/p6/mode1o.asm: Likewise.
	* mpn/x86/pentium4/sse2/dive_1.asm: Likewise.
	* mpn/x86/pentium4/sse2/mode1o.asm: Likewise.
	* mpn/x86/pentium4/sse2/popcount.asm: Likewise.

	* mpn/x86/p6/aors_n.asm: Table cycle counts.

	* mpn/x86/k7/mod_34lsub1.asm: Fix over-optimistic cycle count claims.

	* mpn/x86/x86-defs.m4 (DEF_OBJECT, END_OBJECT): New define's.

	* mpn/x86/darwin.m4 (LEA): Put also movl_eip_XX into EPILOGUE_cpu.
	Expect target register to have prepended %.

	* mpn/x86_64/add_n.asm: Use L() for labels.
	* mpn/x86_64/addlsh1_n.asm: Likewise.
	* mpn/x86_64/addmul_2.asm: Likewise.
	* mpn/x86_64/aorrlsh_n.asm: Likewise.
	* mpn/x86_64/aorsmul_1.asm: Likewise.
	* mpn/x86_64/com_n.asm: Likewise.
	* mpn/x86_64/copyd.asm: Likewise.
	* mpn/x86_64/copyi.asm: Likewise.
	* mpn/x86_64/diveby3.asm: Likewise.
	* mpn/x86_64/logops_n.asm: Likewise.
	* mpn/x86_64/lshsub_n.asm: Likewise.
	* mpn/x86_64/mul_1.asm: Likewise.
	* mpn/x86_64/mul_2.asm: Likewise.
	* mpn/x86_64/mul_basecase.asm: Likewise.
	* mpn/x86_64/popham.asm: Likewise.
	* mpn/x86_64/redc_1.asm: Likewise.
	* mpn/x86_64/rsh1add_n.asm: Likewise.
	* mpn/x86_64/rsh1sub_n.asm: Likewise.
	* mpn/x86_64/rshift.asm: Likewise.
	* mpn/x86_64/sub_n.asm: Likewise.
	* mpn/x86_64/sublsh1_n.asm Likewise.
	* mpn/x86_64/pentium4/aors_n.asm: Likewise.
	* mpn/x86_64/pentium4/lshift.asm: Likewise.
	* mpn/x86_64/pentium4/rshift.asm: Likewise.

	* mpn/x86_64/x86_64-defs.m4: New file, defining LEA, DEF_OBJECT, and
	END_OBJECT.

	* mpn/generic/mul.c: Put TMP_DECL as last decl.

2007-10-06  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/pentium4/sse2/popcount.asm: New file.

2007-09-26  Torbjorn Granlund  <tege@swox.com>

	* mpz/get_str.c: Cast a char index to int to shut up compilers.

	* mpn/generic/dc_div_qr.c: Pass dummy scratch argument to mpn_invert.
	* mpn/generic/dc_divappr_q.c: Likewise.
	* mpn/generic/mu_div_qr.c: Likewise.
	* mpn/generic/mu_divappr_q.c: Likewise.
	* mpn/generic/mu_div_q.c: Likewise.
	* mpn/generic/divexact.c: Likewise.

	* mpn/generic/invert.c: New file, placeholder for now.

2007-09-24  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/toom_interpolate_5pts.c: New file, contents from
	mpn/generic/mul_n.c
	* mpn/generic/mul_n.c (mpn_toom3_interpolate): Function removed.

	* mpn/generic/toom_interpolate_7pts.c: New file.

	* mpn/x86/k7/mmx/popham.asm: Table cycle counts.

	* mpn/x86/k6/README: Update URLs.

	* mpn/powerpc32/README: Update URL's, company names.

	* mpn/generic/get_d.c: Complete rewrite.

	* mpn/generic/mul_toom33.c: New file.

	* mpn/generic/mul_toom22.c: Make orthogonal with other toomXY files.
	* mpn/generic/mul_toom32.c: Likewise.
	* mpn/generic/mul_toom42.c: Likewise.

	* mpn/alpha/invert_limb.asm: Update cycle counts.  Fix a comment typo.

	* mpf/get_str.c: Include stdlib.h, not stdio.h for NULL.

	* doc/gmp.texi: Fix a typo.

	* memory.c (__gmp_default_allocate, __gmp_default_reallocate):
	Cast size operands in error fprintf's.

	* longlong.h (sub_ddmmss) [powerpc 64]: Add more variants for constant
	args.

	* gmp-impl.h (udiv_qrnnd_preinv3): New define.
	* gmp-impl.h (ULONG_PARITY): Exclude masquerading __INTEL_COMPILER from
	ia64 asm.

	* gmp-h.in (mpn_neg_n): New function.

2007-09-18  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c (main): Add -v option.
	(enum op_t): New tag TIMING.
	(mpz_eval_expr): Execute TIMING.
	(fns): Add TIMING entry.

	* gmp-impl.h: Add decls and THRESHOLDs for new toom multiplication
	functions and division functions.

2007-09-10  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/addlsh1_n.asm: Use L() for labels.
	* mpn/powerpc32/sublsh1_n.asm: Likewise.

2007-09-09  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/x86-defs.m4 (LEA): New define.
	* mpn/x86/darwin.m4: New file, for now just defining LEA.
	* configure.in: Pick up x86/darwin.m4.
	* mpn/x86/*: Use LEA for PIC references.

	* configure.in: For X86/32, treat core2 like pentium3.

2007-09-06  Torbjorn Granlund  <tege@swox.com>

	* tests/amd64check.c (calling_conventions_values): Put constants,
	dynamic values in this array (was in scalars).
	(calling_conventions_check): Corresponding changes.
	* tests/amd64call.asm: Rewrite to be PIC, smaller, using amd64check.c's
	array.

2007-09-04  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/pentium4/sse2/mul_basecase.asm: Misc cleanups.
	* mpn/x86/pentium4/sse2/sqr_basecase.asm: Likewise.

	* mpn/x86_64/mod_34lsub1.asm: Optimize loop, reduce code size.

	* tests/amd64call.asm: Remove bogus no-op moves.

2007-09-03  Torbjorn Granlund  <tege@swox.com>

	From Richard Guenther:
	* gmp-h.in (__GMP_EXTERN_INLINE): Declare conditionally on
	__GNUC_STDC_INLINE__.

	* tests/cxx/t-locale.cc: #include <cstdlib>, for abort.

	* mpn/x86_64/core2/popcount.asm: New file.
	* mpn/x86_64/pentium4/popcount.asm: New file.

	* mpn/x86_64/addmul_2.asm: New file.
	* mpn/x86_64/mul_2.asm: New file.

	* mpn/x86_64/aorsmul_1.asm: Use 32-bit mov for zeroing registers
	(saves space).

2007-09-01  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Handle athlon64, core2, and pentium4 separately for
	64-bit ABI.

	* config.sub: Recog athlon64, core2, and opteron.

	* config.guess: Do two x86 variants, for 32-bit ABI and 64-bit ABI.
	Return "athlon64" and "core2", not x86_64.

2007-08-31  Torbjorn Granlund  <tege@swox.com>

	From Patrick Pelissier:
	* gmp-h.in: Don't refer to FILE from C++ unless we've seen FILE.

2007-08-30  Torbjorn Granlund  <tege@swox.com>

	* demos/isprime.c: Include string.h for strcmp.

	* demos/factorize.c (main): Declare to int.

2007-06-22  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86_64/pentium4/lshift.asm: Minor tuning.
	* mpn/x86_64/pentium4/rshift.asm: Likewise.

2007-05-30  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/mode64/aors_n.asm: Add _nc entry points.

2007-05-22  Torbjorn Granlund  <tege@swox.com>

	* tests/memory.c: Cast calls to new mem* calls to avoid unaligned ops.

2007-05-16  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/convert.c: Tweak operand sizes for best coverage.

	* tests/memory.c: Add red zones around allocations.

2007-05-15  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/mul_1.asm: Make mul_1c entry point actually work.

	* mpn/generic/set_str.c (mpn_dc_set_str): Avoid calling mpn_add_n when
	ln == 0.

	* tests/mpz/convert.c (string_urandomb): New function.
	(main): Use it by enabling ifdef'ed out code.

2007-04-30  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86_64/mul_basecase.asm: Complete rewrite.

	* mpn/x86_64/copyi.asm: Use short shift-by-one form.  Misc cleanups.
	* mpn/x86_64/copyi.asm: Likewise.
	* mpn/x86_64/popham.asm: Likewise.

	* mpn/x86_64/aorsmul_1.asm: Cleanup formatting.

2007-04-25  Torbjorn Granlund  <tege@swox.com>

	* mpz/divexact.c: Handle undefined case of |N| < |D| to avoid segfaults.

2007-02-24  Torbjorn Granlund  <tege@swox.com>

	* doc/gmp.texi (Toom 3-Way Multiplication): Fix typo.
	(mpz_scan0, mpz_scan1): Fix typos.
	(Float Internals): Rewrite paragraph about struct types.

2007-02-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/pentium4/sse2/sqr_basecase.asm: Complete rewrite (except
	diagonal code).

2007-02-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_fft.c (mpn_fft_fft): New name for mpn_fft_fft_sqr,
	old mpn_fft_fft removed.
	(mpn_mul_fft_internal): Call mpn_fft_fft separately for each operand.
	(mpn_fft_add_modF): Rewrite to avoid random branches.
	(mpn_fft_sub_modF): Likewise.

	* mpn/x86/pentium4/sse2/addmul_1.asm: Complete rewrite.
	* mpn/x86/pentium4/sse2/mul_1.asm: Complete rewrite.
	* mpn/x86/pentium4/sse2/mul_basecase.asm: Complete rewrite, based on
	new addmul and mul code.

2007-01-31  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/get_str.c (mpn_sb_get_str): Get loop count for frac
	development right.

	* mpn/powerpc32/vmx/mod_34lsub1.asm: New file.

	* mpn/powerpc32/aors_n.asm: New file, complete rewrite.
	* mpn/powerpc32/add_n.asm: Remove.
	* mpn/powerpc32/sub_n.asm: Remove.

2007-01-25  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86_64/core2/aors_n.asm: Add _nc entry points, minor cleanups.

	* mpn/x86_64/core2/lshift.asm: Rewrite.
	* mpn/x86_64/core2/rshift.asm: Rewrite.

	* mpn/x86_64/pentium4/lshift.asm: Swap some loop insns for a small
	speedup.
	* mpn/x86_64/pentium4/rshift.asm: New file, based on lshift.asm.

	* mpn/x86_64/pentium4/gmp-mparam.h: New file.

	* mpn/x86_64/pentium4/aors_n.asm: Complete rewrite of add/subtract
	code.
	* mpn/x86_64/pentium4/add_n.asm: Remove.
	* mpn/x86_64/pentium4/sub_n.asm: Remove.

2007-01-20  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86_64/lshift.asm: Add special case for cnt=1.

2007-01-19  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86_64/aorsmul_1.asm: New file, written from scratch, finally at
	3.0 c/l on K8 (addmul_1 was 3.3; submul_1 was 3.5).
	* mpn/x86_64/addmul_1.asm: Remove.
	* mpn/x86_64/submul_1.asm: Remove.

2006-12-29  Torbjorn Granlund  <tege@swox.com>

	* randmt.c (__gmp_randclear_mt): Initialize ALLOC field, like in
	__gmp_randinit_mt_noseed.
	(__gmp_randclear_mt, __gmp_randinit_mt_noseed): Make similar functions
	look similar.
	(__gmp_randclear_mt): Pass actually allocated size.

	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Add mul_toom22.c,
	mul_toom32.c, mul_toom42.c.

	* configure.in: Recognize athlon64 and core2 as alternatives to x86_64.
	Provide special settings for core2.

	* configure.in (gmp_mpn_functions): Add mul_toom22, mul_toom32,
	mul_toom42.

	* mpn/generic/mul_toom22.c: New file.
	* mpn/generic/mul.c: Use mpn_mul_toom22.  Trim cutoff points between
	the mpn_mul_toomN2 functions.  Handle balanced operands at function
	entry.

2006-12-29  Marco Bodrato  <bodrato@mail.dm.unipi.it>

	* mpn/generic/mul_n.c: Rewrite interpolation code.

2006-12-28  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_toom32.c: New file.
	* mpn/generic/mul_toom42.c: New file.
	* mpn/generic/mul.c: Use mpn_mul_toom32 and mpn_mul_toom42 for
	unbalanced operands.

2006-12-17  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86_64/aorrlsh_n.asm: New file.
	* mpn/x86_64/lshsub_n.asm: New file.

	* mpn/x86_64/core2/aors_n.asm: New file.
	* mpn/x86_64/core2/lshift.asm: New file.
	* mpn/x86_64/core2/rshift.asm: New file.

	* mpn/x86/p6/aors_n.asm: Replace K7 grabbing code with P6 specific
	code.

	* mpn/x86/p6/lshsub_n.asm: New file.

2006-11-23  Torbjorn Granlund  <tege@swox.com>

	* tune/speed.h (SPEED_ROUTINE_MPN_MUL_BASECASE): Allocate space for xp
	locally, s->xp might be insufficient.

2006-11-22  Torbjorn Granlund  <tege@swox.com>

	* randmt.c (__gmp_randinit_mt_noseed): Initialize ALLOC field of result
	param.

2006-11-06  Torbjorn Granlund  <tege@swox.com>

	* tune/set_strp.c: New file.

2006-11-04  Torbjorn Granlund  <tege@swox.com>

	* extract-dbl.c: Rewrite to handle nails better, and for general
	optimization.

	* mpz/bin_uiui.c: Simplify.

	* longlong.h (umul_ppmm) [mmix]: New.

	* tune/tuneup.c, tune/common.c, tune/speed.c, tune/speed.h,
	tune/set_strb.c, tune/set_strs.c: Add tuning and speed measurements
	of separate SET_STR_DC_THRESHOLD and SET_STR_PRECOMPUTE_THRESHOLD.
	Add tuning and speed measurement of mpn_addsub_n.

2006-10-31  Torbjorn Granlund  <tege@swox.com>

	* gmpxx.h: Remove ternary stuff, it is hardly an optimization and it
	writes to destination before reading all source operands.

2006-10-25  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/set_str.c: Complete rewrite.
	* mpn/generic/get_str.c: Likewise.

	* gmp-impl.h (struct powers, powers_t): New types.
	Restructure GET_STR_* and SET_STR_* thresholds.

2006-09-21  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/rootrem.c: Remove some redundant casts.

2006-07-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/nails/addmul_2.asm: Make it run at claimed speed.
	* mpn/alpha/ev6/nails/addmul_4.asm: Likewise.

	* mpf/get_str.c: Avoid copying result when not needed.  Misc cleanups.

	* tests/amd64call.asm: Use jmp instead of jmpq to placate Solaris.

2006-06-30  Torbjorn Granlund  <tege@swox.com>

	* configure.in (powerpc-*): Remove repeated path component.

2006-06-15  Torbjorn Granlund  <tege@swox.com>

	* configure.in: (ia64-*-linux*): Don't use -O3.

2006-06-14  Torbjorn Granlund  <tege@swox.com>

	* mpq/get_str.c: Fix upper base limit boundary in an ASSERT.

	* tests/refmpn.c (refmpn_sb_divrem_mn): Use ASSERT_CARRY for add-back.

2006-05-31  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-set_d.c (check_data): Add more data points.

	* mpz/set_d.c: Handle negative return values from __gmp_extract_double.

2006-05-17  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Clear out gcc_cflags_cpu and gcc_cflags_arch for a fat
	build.

2006-05-16  Torbjorn Granlund  <tege@swox.com>

	* demos/primes.c (find_primes): Increase mpz_probab_prime_p cnt to 10.

	* mpn/generic/addsub_n.c: Fix criteria form when to call _nc functions.

2006-05-12  Torbjorn Granlund  <tege@swox.com>

	* config.guess: Recognize more ppc processor types.

2006-05-11  Torbjorn Granlund  <tege@swox.com>

	* tune/speed.c (usage): Update URL for gnuplot and quickplot.

2006-05-10  Torbjorn Granlund  <tege@swox.com>

	* configure.in (powerpc-*-*): Pass -maltivec to assembler for
	appropriate CPUs.

2006-05-08  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/aix.m4 (LEA): Remove [RW] attribute.

2006-05-03  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/vmx/popcount.asm: Conditionally zero extend n.

2006-04-27  Torbjorn Granlund  <tege@swox.com>

	* mpz/divexact.c: Call mpz_tdiv_q for large operands.

	* configure.in (powerpc-*-darwin): Remove -fast, it affects PIC.

2006-04-26  Torbjorn Granlund  <tege@swox.com>

	* config.guess: Try to recognize Ultrasparc T1 (as ultrasparct1).
	* config.sub: Handle ultrasparct1.

2006-04-25  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/gmp-mparam.h: Retune, without separation of GNUC and
	non-GNUC data.

2006-04-20  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/convert.c: Increase operands range.

2006-04-19  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Support powerpc eABI.
	* mpn/powerpc32/eabi.m4: New file.

	* configure.in: Support powerpc *bsd.
	* mpn/powerpc64/elf.m4: New name for mpn/powerpc64/linux64.m4.
	* mpn/powerpc32/elf.m4: New name for mpn/powerpc32/linux.m4.

	* mpn/powerpc64/linux64.m4 (ASM_END): Quote TOC_ENTRY.

2006-04-18  Torbjorn Granlund  <tege@swox.com>

	* configure.in (gmp_mpn_functions_optional): Add lshiftc.
	(HAVE_NATIVE): Add lshiftc.

	* mpn/powerpc64/mode64/invert_limb.asm: Use LEA, not LDSYM.
	* mpn/powerpc64/mode64/mode1o.asm: Likewise.
	* mpn/powerpc64/mode64/dive_1.asm: Likewise.

	* mpn/powerpc64/linux64.m4 (TOC_ENTRY): Define to empty.
	* mpn/powerpc64/aix.m4 (TOC_ENTRY): Likewise.
	* mpn/powerpc32/aix.m4 (TOC_ENTRY): Likewise.

	* mpn/powerpc32/aix.m4 (EXTERN): New, copied form powerpc64/aix.m4.
	* mpn/powerpc32/mode1o.asm: Use EXTERN.
	* mpn/powerpc32/linux.m4 (EXTERN): Provide dummy definition.
	* mpn/powerpc32/darwin.m4 (EXTERN): Likewise.

2006-04-13  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_fft.c: Use new thresholds mechanism if MUL_FFT_TABLE2
	is defined.
	(mpn_lshiftc): New name for mpn_lshift_com (for consistency with some
	stuff already in 4.1.4.
	(mpn_fft_mul_2exp_modF): Reorganize initial operand reductions to avoid
	divisions.

	* tests/devel/try.c (choice_array): Add mpn_addsub_n[c].

2006-04-11  Torbjorn Granlund  <tege@swox.com>

	* aclocal.m4: Regenerate with patched libtool.

	* mpn/asm-defs.m4 (ASM_END): Provide (empty) default.

2006-04-08  Torbjorn Granlund  <tege@swox.com>

	* configure.in (gmp_mpn_functions_optional): Add addsub.

	* gmpxx.h: Remove missed MPFR references.

	* gmp-impl.h (LIMBS_PER_DOUBLE): Adjust formula to not be pessimistic.

	* gmp-impl.h (TMP_*, WANT_TMP_DEBUG): Don't expect marker argument;
	define TMP_SALLOC and TMP_BALLOC.

	* mpn/minithres/gmp-mparam.h: New file.

	* tests/mpz/t-io_raw.c: Fix printf type/arg mismatches.
	* tests/mpz/t-export.c: Likewise.
	* tests/mpz/io.c: Likewise.
	* tests/t-constants.c: Likewise.

	* mpn/ia64/popcount.asm: Append "cond.dptk" to conditional branches to
	placate icc.
	* mpn/ia64/hamdist.asm: Likewise.
	* mpn/ia64/lorrshift.asm: Likewise.
	* mpn/ia64/dive_1.asm: Likewise.

2006-04-05  Torbjorn Granlund  <tege@swox.com>

	* tal-notreent.c (__gmp_tmp_mark): Add "struct" tag for tmp_marker.
	(__gmp_tmp_free): Likewise.

	* mpn/generic/mul_fft.c: Optimize many scalar divisions and mod
	operations into masks and shifts.
	(mpn_fft_mul_modF_K): Fix a spurious ASSERT_NOCARRY.

2006-03-26  Torbjorn Granlund  <tege@swox.com>

	* Version 4.2 released.

	* mpn/powerpc64/aix.m4 (LEA): Renamed from LDSYM.
	* mpn/powerpc64/darwin.m4: Likewise.
	* mpn/powerpc64/linux64.m4: Likewise.
	* mpn/powerpc64/vmx/popcount.asm: Use LEA, not LDSYM.

2006-03-23  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h: (class gmp_allocated_string): Prefix strlen with std::.

	* gmpxx.h (__GMP_DEFINE_TERNARY_EXPR2): Remove for now.
	(struct __gmp_ternary_addmul2): Likewise.
	(struct __gmp_ternary_submul2): Likewise.

	* gmpxx.h: #include <cstring>.
	(struct __gmp_alloc_cstring): Prefix strlen with std::.

	* mpn/x86/pentium/com_n.asm: Add TEXT and ALIGN.
	* mpn/x86/pentium/copyi.asm: Likewise.
	* mpn/x86/pentium/copyd.asm: Likewise.

2006-03-22  Torbjorn Granlund  <tege@swox.com>

	* gmp-h.in: Add a "using std::FILE" for C++.
	(_GMP_H_HAVE_FILE): Check also _ISO_STDIO_ISO_H.

	* gmpxx.h: Remove mpfr code.
	* tests/cxx: Likewise.

	* gmp-impl.h (FORCE_DOUBLE): Rename a tempvar to avoid a clash with
	GNU/Linux public include file.

	* configure.in (powerpc64, darwin): New optional, gcc_cflags_subtype.
	Grab powerpc32/darwin.m4 for ABI=mode32.

	* configure.in: Use host_cpu whenever just the cpu type is needed.

2006-03-08  Torbjorn Granlund  <tege@swox.com>

	* mpz/get_si.c: Fix a typo.

	* tests/mpq/t-get_d.c (check_random): Improve random generation for
	nails.

2006-02-28  Torbjorn Granlund  <tege@swox.com>

	* tests/mpq/t-get_d.c (check_random): New function.
	(main): Call check_random.

	* mpq/set_d.c: Make choices based on LIMBS_PER_DOUBLE, not
	BITS_PER_MP_LIMB.  Make it work for LIMBS_PER_DOUBLE == 4.
	Use MPZ_REALLOC.

	* mpz/set_d.c: Make it work for LIMBS_PER_DOUBLE == 4.

	* extract-dbl.c: Make it work for LIMBS_PER_DOUBLE > 3.

2006-02-27  Torbjorn Granlund  <tege@swox.com>

	* mpz/cmp_d.c: Declare `i'.
	* mpz/cmpabs_d.c: Likewise.

2006-02-23  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/vmx/copyd.asm: Set right VRSAVE bits.
	* mpn/powerpc32/vmx/copyi.asm: Likewise.

2006-02-22  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/vmx/logops_n.asm: New file.

	* mpn/powerpc32/diveby3.asm: Rewrite.

2006-02-21  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/vmx/copyi.asm: New file.
	* mpn/powerpc32/vmx/copyd.asm: New file.

2006-02-17  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/nails/aors_n.asm (CYSH): Import proper setting from
	deleted mpn_sub_n.

2006-02-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/addmul_1.asm: Correct slotting comments.

2006-02-15  Torbjorn Granlund  <tege@swox.com>

	* tests/devel/anymul_1.c: Copy error reporting code from addmul_N.c.

	* tests/devel/addmul_N.c: New file.
	* tests/devel/mul_N.c: New file.

	* mpn/alpha/default.m4 (PROLOGUE_cpu): Align functions at 16-byte
	boundary.

	* mpn/alpha/ev6/nails/aors_n.asm: New file.
	* mpn/alpha/ev6/nails/add_n.asm: Remove.
	* mpn/alpha/ev6/nails/sub_n.asm: Remove.

	* mpn/alpha/ev6/nails/addmul_1.asm: Rewrite.
	* mpn/alpha/ev6/nails/submul_1.asm: Likewise.
	* mpn/alpha/ev6/nails/mul_1.asm: Likewise.

	* mpn/alpha/ev6/nails/addmul_2.asm: Use L() for labels.
	* mpn/alpha/ev6/nails/addmul_3.asm: Use L() for labels.
	* mpn/alpha/ev6/nails/addmul_4.asm: Use L() for labels.

2006-02-13  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/diveby3.asm: Trivially reorder loop insns to save
	1 c/l.

	* mpn/x86_64/dive_1.asm: Use movabsq to support large model non-PIC.

	* mpn/x86_64/rsh1add_n.asm: Replace high register with rbx.
	* mpn/x86_64/rsh1sub_n.asm: Likewise.

2006-02-10  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/sqr_diagonal.asm: Software pipeline.

	* mpn/powerpc64/vmx/popcount.asm: Add prefetching.

2006-02-07  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/mode64/diveby3.asm: Rewrite.

2006-02-04  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/vmx/popcount.asm: Remove mpn_hamdist partial code.
	Move compare for huge n so that it is always executed.

2006-02-03  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/linux.m4 (LEA): Add support for PIC.

	* configure.in (powerpc): New optional, gcc_cflags_subtype.

	* mpn/x86_64/pentium4/add_n.asm: New file.
	* mpn/x86_64/pentium4/sub_n.asm: New file.
	* mpn/x86_64/pentium4/lshift.asm: New file.

	* mpn/powerpc64/linux64.m4 (PROLOGUE_cpu): Align function start to
	16-multiple.
	* mpn/powerpc64/aix.m4: Likewise.
	* mpn/powerpc64/darwin.m4: Likewise.

	* mpn/powerpc64/copyi.asm: Align loop to 16-multiple.
	* mpn/powerpc64/copyd.asm: Likewise

	* configure.in (powerpc): Add vmx to relevant paths.

	* mpn/powerpc64/linux64.m4 (DEF_OBJECT): Accept 2nd argument, for
	alignment.
	* mpn/powerpc64/aix.m4: Likewise.
	* mpn/powerpc64/darwin.m4: Likewise.

	* mpn/powerpc32/linux.m4 (DEF_OBJECT, END_OBJECT): New macros,
	inherited from powerpc64 versions.
	* mpn/powerpc32/aix.m4: Likewise.
	* mpn/powerpc32/darwin.m4: Likewise.

	* mpn/powerpc64/vmx/popcount.asm: New file, for ppc32 and ppc64.
	* mpn/powerpc32/vmx/popcount.asm: New file, grabbing above file.

2006-01-22  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Generalize OS-dependent patterns for powerpcs.

2006-01-20  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86_64/popham.asm: Optimize.

	* config.guess: Recognize power4 and up under linux-gnu.
	* config.sub: Generalize power recognition code.
	* acinclude.m4 (POWERPC64_PATTERN): Add 64-bit powerpc processors.
	* configure.in: Recognize powerpc processors masquerading as power
	processors.

2006-01-19  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86_64/logops_n.asm: Rewrite for more stable speed and smaller
	code.
	* mpn/x86_64/com_n.asm: Likewise.

2006-01-18  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86_64/addlsh1_n.asm: Rewrite to use indexed addressing.
	* mpn/x86_64/sublsh1_n.asm: Likewise.

2006-01-17  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/diveby3.c: Use GMP standard parameter names.  Nailify
	alternative code.  Use restrict for params.

	* configure.in: Recognize andn_n as not needing nailification.

	* tests/mpq/t-equal.c (check_various): Disable a test that gives common
	factors for GMP_NUMB_BITS == 62.

2006-01-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/get_str.c (mpn_sb_get_str): Fix digit count computation,
	was inaccurate for nails.

2006-01-15  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86_64/mode1o.asm: Remove unneeded carry register zeroing.

2006-01-08  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/sqr_diagonal.asm: New file.

2006-01-06  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/mode64/mod_34lsub1.asm: Tune to 1.5 c/l.

	* mpn/generic/mullow_n.c (MUL_BASECASE_ALLOC): New #define.
	(mpn_mullow_n): Use it.

	* mpn/powerpc64/mode64/dive_1.asm: Use EXTERN.
	* mpn/powerpc64/mode64/mode1o.asm: Likewise.

	* mpn/powerpc64/aix.m4 (EXTERN): Define to import symbol.
	(LDSYM): Remove [RW] attribute.
	* mpn/powerpc64/linux64.m4 (EXTERN): Dummy definition.
	* mpn/powerpc64/darwin.m4 (EXTERN): Likewise.

2006-01-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/mode64/mode1o.asm: New file.

	* mpn/powerpc64/mode64/dive_1.asm: Use L() for labels.  Invoke ASM_END.

	* mpn/powerpc64/mode64/invert_limb.asm: Invoke ASM_END.

	* mpn/powerpc64/linux64.m4: Move toc entry generation from direct at
	DEF_OBJECT to delayed via LDSYM, define ASM_END to output it.
	* mpn/powerpc64/aix.m4: Likewise.
	* mpn/powerpc64/darwin.m4: Define a dummy ASM_END.

	* mpn/powerpc64/mode64/addmul_1.asm: Add POWER5 timings.
	* mpn/powerpc64/mode64/mul_1.asm: Likewise.

	* mpn/powerpc64/mode64/submul_1.asm: Tweak to save 1.5 c/l for POWER5.

2006-01-04  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/mode64/dive_1.asm: New file.

	* mpn/powerpc64/mode64/invert_limb.asm: Add missing ASM_START.

	* mpn/powerpc64/mode64/addmul_1.asm: Fix a comment typo.

	* mpn/x86_64/diveby3.asm: Rewrite.

2006-01-03  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Update bugs reporting address.

	* mpn/powerpc64/mode64/diveby3.asm: Trim a cycle off of POWER4 timing.
	Misc cleanup.

2006-01-02  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/linux64.m4 (CALL): New macro.
	* mpn/powerpc64/aix.m4: Likewise.
	* mpn/powerpc64/darwin.m4: Likewise, also define macro "DARWIN".

2005-12-28  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/mode64/mod_34lsub1.asm: New file.

2005-12-26  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86_64/mod_34lsub1.asm: New file.

2005-12-20  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86_64/submul_1.asm: Save a push/pop by not using register r12.
	Use addq instead of leaq for pointer updates; schedule them.  (These
	changes shaves one cycle of overhead and 0.25 c/l.)

2005-12-18  Torbjorn Granlund  <tege@swox.com>

	* mpf/ui_div.c: Implement workaround for GCC bug triggered on alpha.
	* mpf/set_q.c: Likewise.

2005-12-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/tdiv_qr.c: Remove statement with no effect.
	Rename dead variable to `dummy'.

2005-12-15  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c (setup_error_handler): Add a missing ";".

2005-11-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul.c: Crudely call mpn_mul_fft_full before checking
	for unbalanced operands.

	* mpn/generic/mul_fft.c: Remove many scalar divisions.
	(mpn_mul_fft_lcm): Simplify.
	(mpn_mul_fft_decompose): Rewrite to handle arbitrarily unbalanced
	operands.

2005-11-22  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Properly recognize all 32-bit Solaris releases.

2005-11-10  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_fft.c: Inline mpn_fft_mul_2exp_modF,
	mpn_fft_add_modF and mpn_fft_normalize.

2005-11-02  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/reuse.c: Increase operand size, decrease # of reps.

	* mpz/rootrem.c: Adapt to new mpn_rootrem.
	* mpz/root.c: Likewise.

	* tests/mpz/reuse.c: Test mpz_rootrem.

	With Paul Zimmermann:
	* mpn/generic/rootrem.c: Complete rewrite.

2005-10-31  Torbjorn Granlund  <tege@swox.com>

	* mpz/pprime_p.c (mpz_probab_prime_p): Considerably limit trial
	dividing.

	* mpz/perfpow.c (mpz_perfect_power_p): Use mpz_divisible_ui_p instead
	of mpz_tdiv_ui.

	* mpz/divegcd.c: Correct probability number for GCD == 1.

	* mpn/x86_64/mul_basecase.asm: Remove an obsolete comment.

	* mpn/x86: Add cycle counts for array of x86 processors.

	* mpn/x86/k7/mod_34lsub1.asm: Remove spurious mentions of ebp.

	* mpn/powerpc32: Add POWER5 timings.

	* mpn/powerpc32/README: Describe global reference variations.

	* mpn/ia64/divrem_2.asm: Add some comments.

	* mpn/ia64/divrem_1.asm: Reformat.

	* mpn/ia64/addmul_2.asm: Correct a comment on slotting.
	* mpn/ia64/logops_n.asm: Likewise.

	* mpn/ia64/addmul_1.asm: Remove a redundant preg mutex decl.

	* mpn/generic/dive_1.c: Whitespace cleanup.

	* mpn/alpha/ev6/nails/addmul_1.asm: Correct comments on slotting.
	* mpn/alpha/ev6/nails/addmul_2.asm: Likewise.
	* mpn/alpha/ev6/nails/addmul_4.asm: Likewise.

	* mpf/out_str.c: List some allocation improvement ideas.

	* doc/gmp.texi: Update many URLs and email addresses.

	* gmp-h.in (_GMP_H_HAVE_FILE): Check also _STDIO_H_INCLUDED.

2005-10-26  Torbjorn Granlund  <tege@swox.com>

	* tune/tuneup.c (tune_mullow): Update param.max_size for each threshold
	measurement.

	* configure.in (POWERPC64_PATTERN/*-*-darwin*): Set
	SPEED_CYCLECOUNTER_OBJ_mode64 and cyclecounter_size_mode64.
	(POWERPC64_PATTERN/*-*-linux*): Likewise.

2005-10-03  Torbjorn Granlund  <tege@swox.com>

	* demos/factorize.c (factor_using_division_2kp): Honor verbose flag.
	(factor_using_pollard_rho): Divide out new factor before it's
	clobbered.  Don't stop factoring after a composite factor was found.

2005-09-17  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c (fns): Add factorial keywords.

2005-08-16  Torbjorn Granlund  <tege@swox.com>

	* tune/Makefile.am (EXTRA_DIST): Change "amd64" => "x86_64".
	* mpn/Makefile.am (TARG_DIST): Change "amd64" => "x86_64".

2005-08-15  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Change "amd64" => "x86_64".

2005-06-13  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/pre_mod_1.c: Canonicalize variable names.

	* mpn/generic/divrem.c: Rate qxn test as UNLIKELY.

	* mpn/generic/gcdext.c (sanity_check_row): Invoke TMP_MARK.

	* tune/tuneup.c (tune_mullow): Fix all max_size fields.

	* gmp-impl.h (SQR_TOOM3_THRESHOLD_LIMIT): New #define.
	* tune/tuneup.c (tune_sqr): Use SQR_TOOM3_THRESHOLD_LIMIT.
	(sqr_toom3_threshold): Initialize from SQR_TOOM3_THRESHOLD_LIMIT.

	* mpn/generic/mul_n.c (mpn_sqr_n): Use SQR_TOOM3_THRESHOLD_LIMIT.

	* gmp-impl.h (mpn_nand_n, mpn_iorn_n, mpn_nior_n, mpn_xnor_n):
	Handle nails.

2005-06-13  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/gcdext.c (gcdext_schoenhage): Check for the
	(unlikely) case that one of the hgcd/euclid steps results in two
	remainders of one limb each. Then use gcdext_1.

2005-06-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/sub_n.asm: Analogous changes as to add_n.asm last.

2005-06-11  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/add_n.asm: Rewrite inner loop to load later.
	Add mpn_add_nc entry.

	* mpn/alpha/ev6/addmul_1.asm: Remove redundant initial loads.

2005-06-09  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/dive_1.asm: Fix issues with HP-UX.

2005-06-08  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/diveby3.asm: Update TODO list.

	* mpn/ia64/mode1o.asm: Fix comment typos.

	* mpn/ia64/dive_1.asm: New file.

2005-06-07  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/mode1o.asm: Add prefetching.

	* mpn/generic/dive_1.c: Use variable h for upper umul_ppmm result.

2005-06-06  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/hamdist.asm: Complete rewrite.
	* mpn/ia64/popcount.asm: Rewrite to use multi-pronged feed-in.

	* mpn/ia64/aors_n.asm: Rewrite feed-in code.
	* mpn/ia64/rsh1aors_n.asm: Likewise.
	* mpn/ia64/aorslsh1_n.asm: Likewise.
	* mpn/ia64/lorrshift.asm: Likewise.

2005-06-04  Torbjorn Granlund  <tege@swox.com>

	* tests/devel/try.c (choice_array): Exclude mpn_preinv_mod_1 unless
	USE_PREINV_MOD_1.
	(choice_array): Exclude mpn_sqr_basecase if SQR_KARATSUBA_THRESHOLD
	is zero.

2005-06-03  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/addmul_1.asm: Prefix all labels with "$".
	* mpn/alpha/ev6/mul_1.asm: Likewise.

2005-06-02  Torbjorn Granlund  <tege@swox.com>

	* tests/refmpn.c (refmpn_divmod_1c_workaround): Implement workaround
	to gcc 3.4.x bug triggered on powerpc64 with 32-bit ABI.

2005-06-01  Torbjorn Granlund  <tege@swox.com>

	* tests/devel/try.c (main): Fix a typo.

2005-05-31  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/addmul_1.asm: Rewrite for L1 cache, add prefetch.

2005-05-30  Torbjorn Granlund  <tege@swox.com>

	* tests/misc.c (tests_rand_start): Mask random seed to 32 bits.

2005-05-29  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/mode32/mul_1.asm: Handle BROKEN_LONGLONG_PARAM.
	* mpn/powerpc64/mode32/addmul_1.asm: Likewise.
	* mpn/powerpc64/mode32/submul_1.asm: Likewise.

	* mpn/powerpc32/mode1o.asm: Rewrite to actually work.

	* mpn/powerpc32/aix.m4 (LEA): New macro.
	(ASM_END): New macro.

	* mpn/powerpc32/linux.m4: New file.
	* mpn/powerpc32/darwin.m4: New file.
	* configure.in: Use linux.m4 and darwin.m4.
	(powerpc64-linux-gnu): Add support for mode32.

2005-05-25  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mullow_n.c: Remove FIXME mentioning fixed flaw.

	* tests/mpz/t-cmp_d.c (check_one): Fix printf fmt string typo.

	* demos/isprime.c: #include stdlib.h.
	* tests/rand/t-urbui.c: Likewise.
	* tests/rand/t-urmui.c: Likewise.

	* tests/mpz/t-popcount.c (check_random): Remove spurious printf arg.

	* mpn/ia64/lorrshift.asm: Cleanup code layout.
	* mpn/ia64/popcount.asm: Likewise.

2005-05-24  Torbjorn Granlund  <tege@swox.com>

	* tests/devel/try.c (param_init) [TYPE_GET_STR]: Set retval field.
	(compare): Handle SIZE_GET_STR as SIZE_RETVAL.

	* tests/refmpn.c (refmpn_get_str): Rewrite to make it work.

2005-05-23  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/add_n.asm: Add mpn_add_nc entry point.
	* mpn/amd64/sub_n.asm: Add mpn_sub_nc entry point.

	* longlong.h (many places): Remove lvalue casts.

	* gmp-impl.h (MPF_SIGNIFICANT_DIGITS): Cast prec to avoid overflow
	for > 4G digits.

	* mpn/alpha/ev6/add_n.asm: Prefetch using ldl.
	* mpn/alpha/ev6/sub_n.asm: Likewise.

	* mpn/alpha/ev6/slot.pl (optable): Recognize negq and ldl.

	* mpn/ia64/aors_n.asm: Prefetch using lfetch.
	* mpn/ia64/lorrshift.asm: Likewise.
	* mpn/ia64/popcount.asm: Likewise.
	* mpn/ia64/diveby3.asm: Likewise.

2005-05-22  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev67/popcount.asm: Prefetch.
	* mpn/alpha/ev67/hamdist.asm: Prefetch.

	* longlong.h (add_ssaaaa) [x86]: Remove lvalue casts.
	(sub_ddmmss) [x86]: Likewise.

	* tests/devel/try.c (param_init) [TYPE_MPZ_JACOBI]: Add DATA_SRC1_ODD.
	(param_init) [TYPE_MPZ_KRONECKER]: Clear inherited DATA_SRC1_ODD.
	(param_init) [TYPE_DIVEXACT_1]: Use symbolic name DIVISOR_LIMB.

2005-05-21  Torbjorn Granlund  <tege@swox.com>

	* tests/devel/try.c (param_init) [TYPE_MPZ_JACOBI]: Initialize divisor
	field according to UDIV_NEEDS_NORMALIZATION.

	* mpz/mul_i.h: Remove left-over TMP_XXXX marker arguments.

2005-05-20  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/pentium4/sse2/addmul_1.asm (mpn_addmul_1c): Put carry in
	proper register.

	* mpn/generic/sqr_basecase.c (mpn_sqr_basecase, addmul_2 version):
	Avoid accesses out-of-bound in MPN_SQR_DIAGONAL applicate code.

2005-05-19  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/diveby3.asm: Make it actually work.

	* gmp-impl.h (MULLOW_BASECASE_THRESHOLD_LIMIT): New #define.
	* mpn/generic/mullow_n.c: Use fixed stack allocation for the smallest
	operands; use TMP_S* allocation for medium operands.

	* gmp-impl.h: Remove nested TUNE_PROGRAM_BUILD test.

2005-05-18  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_n.c: Make squaring and multiplication code more
	similar.  Use TMP_S* functions.

	* gmp-impl.h (TMP_DECL, TMP_MARK, TMP_FREE): Get rid of argument.
	(TMP_SALLOC): New macro for "small" allocations.
	(TMP_BALLOC): New macro for "big" allocations.
	(TMP_SDECL, TMP_SMARK, TMP_SFREE): New macros for functions that use
	just TMP_SALLOC.
	(WANT_TMP_ALLOCA): Make default functions choose alloca or reentrant
	functions, depending on size.

	* *.c: Remove TMP_XXXX marker arguments.

	* acinclude.m4 (WANT_TMP): Want tal-reent.lo also for alloca case.

2005-05-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/gmp-mparam.h: Further extend FFT tables.

2005-05-15  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (udiv_qrnnd_preinv2): Pull an add into add_ssaaaa.
	(udiv_qrnnd_preinv2gen): Likewise.

2005-05-14  Torbjorn Granlund  <tege@swox.com>

	* longlong.h (add_ssaaaa) [x86_64]: Restrict allowed immediate
	operands.
	* (sub_ddmmss) [x86_64]: Likewise.

2005-05-02  Torbjorn Granlund  <tege@swox.com>

	* acinclude.m4 (GMP_HPC_HPPA_2_0): Make gmp_tmp_v1 sed pattern handle
	version numbers like B.11.X.32509-32512.GP.

	* mpn/m68k/aors_n.asm: Correct MULFUNC_PROLOGUE.

	* mpn/powerpc64/mode64/aors_n.asm: Add a MULFUNC_PROLOGUE.

	* mpf/inp_str.c: Use plain int for mpf_set_str return value (works
	around gcc 4 bug).

	* acinclude.m4 (GMP_ASM_POWERPC_PIC_ALWAYS): Handle darwin's assembly
	syntax.
	(long long reliability test 1): New GMP_PROG_CC_WORKS_PART test.
	(long long reliability test 2): New GMP_PROG_CC_WORKS_PART test.

	* configure.in: Add mode64 support for darwin.  Use darwin.m4.
	Add cflags_opt flags for mode32 darwin.

	* mpn/powerpc64: Use L() for all asm files.

	* mpn/asm-defs.m4 (PIC_ALWAYS): Define PIC just iff PIC_ALWAYS = "yes".

	* mpn/powerpc64/darwin.m4: New file.

	* mpn/powerpc64/linux64.m4: Remove TOCREF, add LDSYM.
	Rework DEF_OBJECT to need just one argument.
	* mpn/powerpc64/aix.m4: Likewise.

	* mpn/powerpc64/mode64/invert_limb.asm: Load approx_tab address with
	LDSYM.  Optimize somewhat.  Remove 2nd DEF_OBJECT operand.

2005-05-01  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/popham.c: Compute final summation differently for 64-bit.

	* tests/mpz/t-popcount.c (check_random): New function.
	(main): Call it.

2005-04-28  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/add_n.asm: Use r9 instead of rbx to save push/pop.
	* mpn/amd64/sub_n.asm: Likewise.

2005-04-09  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/copyi.asm: If HAVE_ABI_mode32, ignore upper 32 bits of
	mp_size_t argument.
	* mpn/powerpc64/copyd.asm: Likewise.
	* mpn/powerpc64/sqr_diagonal.asm: Likewise.
	* mpn/powerpc64/lshift.asm: Likewise.
	* mpn/powerpc64/rshift.asm: Likewise.
	* mpn/powerpc64/logops_n.asm: Likewise.
	* mpn/powerpc64/com_n.asm: Likewise.

2005-04-08  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/rootrem.c: Allocate PP_ALLOC limbs also for qp.

2005-04-07  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/add_n.asm: Add nc entry point.
	* mpn/powerpc32/sub_n.asm: Likewise.

	* mpn/amd64/*.asm: Add Prescott/Nocona cycle/limb numbers.

	* mpn/alpha/add_n.asm: Add correct cycle/limb numbers.
	* mpn/alpha/sub_n.asm: Likewise.
	* mpn/alpha/ev5/add_n.asm: Likewise.
	* mpn/alpha/ev5/sub_n.asm: Likewise.

2005-03-31  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/k7/gmp-mparam.h: Fix typo in last change.

2005-03-19  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/gmp-mparam.h: Update.

	* mpn/alpha/gmp-mparam.h: Update.
	* mpn/alpha/ev5/gmp-mparam.h: Update.
	* mpn/alpha/ev6/gmp-mparam.h: Update.

	* mpn/ia64/gmp-mparam.h: Update.

	* mpn/x86/p6/mmx/gmp-mparam.h: Update.
	* mpn/x86/pentium4/sse2/gmp-mparam.h: Update.
	* mpn/x86/k7/gmp-mparam.h: Update.

	* tests/mpz/t-gcd.c (main): Honor command line reps argument.

	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Simplify and correct code
	for generating test operands.

2005-03-17  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/hgcd.c (qstack_adjust): New argument d, saying how much
	to adjust the top quotient.
	(hgcd_adjust): The quotient can be off by either 1 or 2.

2005-03-16  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-gcd.c (MAX_SCHOENHAGE_THRESHOLD): Set to largest of
	gcd,gcdext thresholds.

2005-03-15  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/gcdext.c (gcdext_schoenhage): When calling gcdext_lehmer,
	reuse all temporary limb storage, including the storage used for the
	qstack.

2005-03-09  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/logops_n.asm: Add MULFUNC_PROLOGUE.

2005-03-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/gmp-mparam.h: Extend MUL_FFT_TABLE and SQR_FFT_TABLE.
	* mpn/ia64/gmp-mparam.h: Likewise.

2005-02-17  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/divrem_1.asm: Add preinv entry point.

2005-01-13  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (MPN_SIZEINBASE): Count bits in type size_t.
	(MPN_SIZEINBASE_16): Likewise.

2004-12-17  Torbjorn Granlund  <tege@swox.com>

	* tune/speed.c (run_gnuplot): Use lines, not linespoints.
	Output a reset gnuplot command initially.

2004-12-04  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/random2.c (gmp_rrandomb): Rework again.
	* mpz/rrandomb.c (gmp_rrandomb): Likewise.

	* mpn/amd64/redc_1.asm: Call via PLT when PIC.

2004-11-29  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/divrem_1.asm: Add preinv entry point.
	* mpn/amd64/gmp-mparam.h: Set USE_PREINV_DIVREM_1 to 1.

2004-11-24  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/diveby3.asm: Use correct prefetch instruction.

2004-11-19  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/diveby3.asm: Add ",gp" glue in PROLOGUE.
	Add r31 dummy operand to `br' instruction.

2004-11-17  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/mode64/addmul_1.asm: Rewrite.
	* mpn/powerpc64/mode64/mul_1.asm: Rewrite.

	* configure.in: Invoke AC_C_RESTRICT.

2004-11-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/diveby3.asm: New file.

2004-11-13  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/popham.asm: New file.

2004-11-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/add_n.asm: Correct cycle count.
	* mpn/amd64/sub_n.asm: Likewise.

	* mpn/amd64/dive_1.asm: Speed divisors with many factors of 2.

2004-11-11  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/dive_1.asm: New file.

2004-11-10  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/popham.c: Add comment.

2004-11-09  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/com_n.asm: New file.

	* mpn/amd64/logops_n.asm: New file.

2004-11-08  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/com_n.asm: New file.

2004-11-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/diveby3.asm: New file.

	* config.guess: Strip any PPC string in /proc/cpuinfo.
	Recognize 970 in that code.

2004-11-01  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/mul_basecase.asm: New file.

	* mpn/amd64/redc_1.asm: New file.

2004-10-25  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/mode64/addlsh1_n.asm: Correct cycle counts.

	* mpn/powerpc64/README: Update POWER5/PPC970 pipeline information.

	* mpn/generic/mul_basecase.c (MAX_LEFT): Add comment.

	* doc/gmp.texi: Consistently use "x86" denotation.
	(Assembler SIMD Instructions): Mention SSE2 usage.

	* demos/pexpr.c (main): Handle "negative" base in mpz_sizeinbase call.

2004-10-18  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/mode64/submul_1.asm: Shave 2 cycles/limb with new carry
	inversion trick.

2004-10-16  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Support icc under x86.
	(ia64-*-linux*): Pass -no-gcc to icc.

2004-10-15  Torbjorn Granlund  <tege@swox.com>

	* longlong.h (ia64 umul_ppmm): Add version for icc.

	* configure.in: Support icc under ia64-*-linux*.

	* acinclude.m4: New "compiler works" test for icc 8.1 bug.
	(GMP_PROG_CC_IS_GNU): Don't let Intel's icc fool us it is GCC.

2004-10-14  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/gcdext.c: Add a few missing TMP_MARK.

2004-10-14  Torbjorn Granlund  <tege@swox.com>

	* acinclude.m4 (GMP_ASM_W32): Try also "data4".

	* mpn/ia64/logops_n.asm: Don't use naked "br", rejected by Intel
	assembler.
	* mpn/ia64/aors_n.asm: Likewise.

	* mpn/ia64/divrem_2.asm: Add ".prologue".

	* mpn/ia64/hamdist.asm: Put alloc first in bundle, enforced by the
	Intel assembler.

	* longlong.h: Exclude masquerading __INTEL_COMPILER from ia64 asm.
	* gmp-impl.h: Likewise.

2004-10-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/mul_2.asm: Rewrite function entry code, write new code for
	n=2.
	* mpn/ia64/addmul_2.asm: Likewise.

	* tests/devel/try.c: Handle mpn_mul_2 like mpn_addmul_2.

	* tune/speed.c (routine): Make R parameter optional for mpn_mul_2.

2004-10-11  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/addmul_1.asm: Update a comment.

	* tests/devel/aors_n.c: #include tests.h.
	* tests/devel/anymul_1.c: Likewise.
	* tests/devel/shift.c: Likewise.
	* tests/devel/copy.c: Likewise.

	* tests/devel/aors_n.c: Handle also mpn_addlsh1_n, mpn_sublsh1_n,
	mpn_rsh1add_n, and mpn_rsh1sub_n.

	* mpn/ia64/submul_1.asm: Add TODO item.

	* mpn/ia64/aors_n.asm: Rewrite function entry code (again).
	* mpn/ia64/aorslsh1_n.asm: Likewise.
	* mpn/ia64/logops_n.asm: Likewise.

	* mpn/ia64/rsh1aors_n.asm: Tune function entry and feed-in code.
	* mpn/ia64/lorrshift.asm: Likewise.  Remove several spurious loads.

	* tests/devel/Makefile.am (EXTRA_PROGRAMS): Updates for yesterday's
	file removals and additions.

2004-10-10  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/copyi.asm: Tune function entry code.
	* mpn/ia64/copyd.asm: Likewise.

	* mpn/ia64/logops_n.asm: Tune function entry and feed-in code for speed
	and size.
	* mpn/ia64/aors_n.asm: Likewise.

	* mpn/powerpc64/logops_n.asm: Correct cycles counts.
	* mpn/powerpc64/mode64/aors_n.asm: Likewise.

	* tests/devel/copy.c: Handle both MPN_COPY_INCR and MPN_COPY_DECR.

	* tests/devel/logops_n.c: New file, handle all logical operations.

	* tests/devel/anymul_1.c: New file, handle mpn_mul_1, mpn_addmul_1, and
	mpn_submul_1
	* tests/devel/mul_1.c: Remove.
	* tests/devel/addmul_1.c: Remove.
	* tests/devel/submul_1.c: Remove.

	* tests/devel/shift.c: New file, handle mpn_lshift and mpn_rshift.
	* tests/devel/lshift.c: Remove.
	* tests/devel/rshift.c: Remove.

	* tests/devel/aors_n.c: New file, handle mpn_add_n and mpn_sub_n.
	* tests/devel/add_n.c: Remove.
	* tests/devel/sub_n.c: Remove.

2004-10-09  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/linux64.m4: Define DEF_OBJECT, END_OBJECT, and TOCREF.
	* mpn/powerpc64/aix.m4: Likewise.
	* mpn/powerpc64/mode64/invert_limb.asm: Use DEF_OBJECT, END_OBJECT, and
	TOCREF for approx_tab.

	* mpn/amd64/mul_1.asm: Add mpn_mul_1c entry point.

2004-10-08  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/copyi.asm: New file.
	* mpn/powerpc64/copyd.asm: New file.
	* gmp-h.in: Remove PPC MPN_COPY variants.
	* gmp-impl.h: Likewise.

	* mpn/powerpc64/logops_n.asm: New file.

	* mpn/powerpc64/mode64/invert_limb.asm: New file.

2004-10-07  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/mode64/aors_n.asm: New file, optimized for POWER4 and
	its derivatives.
	* mpn/powerpc64/mode64/add_n.asm: Delete.
	* mpn/powerpc64/mode64/sub_n.asm: Delete.

	* configfsf.guess: Patch HP-UX code to accommodate HP compiler's new
	inability to read from stdin.

	* mpn/powerpc64/mode64/addsub_n.asm: Remove accidentally added file.

2004-10-02  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/README: Update for new developments, fix typos.

	* mpn/amd64/mul_1.asm: Tweak addressing (3.25 => 3.0 cycles/limb).

	* mpn/amd64/addmul_1.asm: Remove unreachable code block.

2004-09-30  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/addmul_1.asm: Rewrite, now 3.25 cycles/limb.

	* mpn/ia64/addmul_1.asm: Slightly enhance cross-jumping for code
	density.
	* mpn/ia64/mul_1.asm: Analogous changes.

2004-09-29  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (x86 ULONG_PARITY): Work around GCC change of "q" register
	flag.

2004-09-28  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/divrem_1.asm: Add cycle counts to loop.

	* mpn/ia64/divrem_2.asm: New file.

2004-09-28  Paul Zimmermann  <Paul.Zimmermann@loria.fr>

	* mpn/generic/mul_fft.c (mpn_mul_fft): Fix a bug in the choice of the
	recursive fft parameters.

2004-09-20  Torbjorn Granlund  <tege@swox.com>

	* tests/misc.c (tests_rand_start): Default to strtoul for re-seeding.

	* tests/mpz/t-mul.c (ref_mpn_mul): Fudge tmp allocation for toom3.

2004-09-19  Torbjorn Granlund  <tege@swox.com>

	* tests/misc.c (tests_rand_start): Shift tv_usec for better seeding.

2004-09-18  Torbjorn Granlund  <tege@swox.com>

	* tests/misc.c (tests_rand_start): Invoke fflush after printing seed.

	* tests/mpz/t-mul.c (main): Check environment for GMP_CHECK_FFT, run
	extra FFT tests if set.
	(ref_mpn_mul): Use library code for kara and toom, but skewded so that
	we never use the same algorithm that we're testing.
	(mul_kara): Delete.
	(debug_mp): Print just one line of large numbers.
	(ref_mpn_mul): Rework usage of tp temporary space.

2004-09-15  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/mul_2.asm: For HAVE_ABI_32, convert vp.
	* mpn/ia64/addmul_2.asm: Likewise.

2004-09-13  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/invert_limb.asm: Rewrite.

	* mpn/ia64/logops_n.asm: Insert some more stops.

2004-09-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/gmp-mparam.h: Update.
	* mpn/amd64/gmp-mparam.h: Update.

	* mpn/ia64/sqr_diagonal.asm: Shave off a few cycles.

2004-09-11  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/mul_2.asm: New file.
	* mpn/ia64/addmul_2.asm: New file.

	* mpn/ia64/addmul_1.asm: Tune a cycle from prologue.

	* mpn/ia64/lorrshift.asm: Insert stops after several branches.
	* mpn/ia64/aorslsh1_n.asm: Likewise.
	* mpn/ia64/rsh1aors_n.asm: Likewise.

	* mpn/generic/sqr_basecase.c: In variant for HAVE_NATIVE_mpn_addmul_2,
	accumulate carry also for when HAVE_NATIVE_mpn_addlsh1_n.

2004-09-07  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/submul_1.asm: Rewrite.

	* mpn/ia64/addmul_1.asm: Format to placate HP-UX assembler.
	* mpn/ia64/mul_1.asm: Likewise.

2004-09-02  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/mul_1.asm: Optimize feed-in code.
	* mpn/ia64/addmul_1.asm: Rewrite feed-in code.

2004-08-29  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-sizeinbase.c: Disable mpz_fake_bits and check_sample.

2004-07-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/addmul_1.asm: Format to placate HP-UX assembler.

2004-06-17  Kevin Ryde  <kevin@swox.se>

	* doc/gmp.texi: Use @. when sentence ends with a capital, for good
	spacing in tex.
	(Language Bindings): Add gmp-d, reported by Ben Hinkle.  Update SWI
	Prolog URL, reported by Jan Wielemaker.

2004-06-09  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Handle --enable-fat.  Use that to enable x86 fat
	builds, remove magic meaning of i386-*-*.

2004-06-03  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (memset): Use a local char* pointer, in case parameter is
	something else (eg. tune/common.c).  Reported by Emmanuel Thomé.

2004-06-01  Kevin Ryde  <kevin@swox.se>

	* config.guess (i?86-*-*): Avoid "Illegal instruction" message which
	goes to stdout on 80386 freebsd4.9.

2004-05-23  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/gcdext.c (gcdext_1_u): New function.
	(mpn_gcdext): Use it.

2004-05-23  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/gcdext.c (gcdext_1_odd): Use masking to avoid jumps.

2004-05-22  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/pentium4/sse2/addmul_1.asm: Add Prescott cycle numbers.

	* mpn/amd64/divrem_1.asm: Shave a cycle from fraction development code.

	* mpn/powerpc32/lshift.asm: Add more cycle numbers.
	* mpn/powerpc32/rshift.asm: Likewise.

	* mpn/ia64/addmul_1.asm: Reformat.

2004-05-21  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (mpn_mullow_n, mpn_mullow_basecase): Declare.

	* tune/Makefile.am: Compile gcdext.c.

	* gmp-impl.h (GET_STR_THRESHOLD_LIMIT): Lower outrageous value to 150.
	(GCDEXT_SCHOENHAGE_THRESHOLD): Set reasonable default.  Override when
	TUNE_PROGRAM_BUILD.
	(GCDEXT_THRESHOLD): Remove.

	* tune/tuneup.c (gcdext_schoenhage_threshold): New variable.
	(gcdext_threshold): Remove variable.
	(tune_gcd_schoenhage): Lower step_factor to 0.1.
	(tune_gcdext_schoenhage): New function, based on tune_gcd_schoenhage.
	(tune_gcdext): Remove function.
	(all): Corresponding changes.

2004-05-21  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/gcdext.c: Complete rewrite.  Uses fast Lehmer code for
	small operands, and Schoenhage code for large operands.

	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Ensure first operand is
	not smaller than 2nd operand.

2004-05-17  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in (mpz_get_ui): Use #if instead of plain if, and for nails
	use ?: same as normal case, to avoid warnings from Borland C++ 6.0.
	Reported by delta trinity.

2004-05-15  Kevin Ryde  <kevin@swox.se>

	* tune/time.c (getrusage_backwards_p): New function
	(speed_time_init): Use it to exclude broken netbsd1.4.1 getrusage.
	* configure.in (m68*-*-netbsd1.4*): Remove code pretending getrusage
	doesn't exist.
	* tune/README (NetBSD 1.4.1 m68k): Update notes.

	* configure.in (mips*-*-* ABI=n32): Remove gcc_n32_ldflags and
	cc_n32_ldflags, libtool knows to put the linker in n32 mode.

2004-05-15  Torbjorn Granlund  <tege@swox.com>

	* config.guess (powerpc*-*-*): Add more processor types to mfpvr code.
	* configure.in: Generalize powerpc subtype matching code.

	* mpz/fac_ui.c: Misc cleanups, spelling corrections.

2004-05-14  Kevin Ryde  <kevin@swox.se>

	* mpf/sub.c: When one operand cancels high limbs of the other, strip
	high zeros on the balance before truncating to destination precision.
	Truncating first loses accuracy and can lead to a result 0 despite
	operands being not equal.  Reported by John Abbott.
	Also, ensure exponent is zero when result is zero, for instance if
	operands are exactly equal.
	* tests/mpf/t-sub.c (check_data): New function, exercising these.

2004-05-12  Kevin Ryde  <kevin@swox.se>

	* configure.in (AC_PROG_RANLIB): New macro, supposedly required by
	automake, though it doesn't complain.

	* demos/expr/Makefile.am (ARFLAGS): Add a default setting, to
	workaround an automake bug.

2004-05-10  Kevin Ryde  <kevin@swox.se>

	* */Makefile.in, install-sh, aclocal.m4: Update to automake 1.8.4.

	* doc/gmp.texi (Demonstration Programs): Add a remark about expression
	evaluation in the main gmp library.

	* demos/expr/exprfa.c (mpf_expr_a): Correction to mpX_init, use
	mpf_init2 to follow requested precision.
	* demos/expr/exprza.c, demos/expr/exprqa.c: Use wrappers for mpX_init,
	to make parameters match.

	* demos/expr/run-expr.c: Don't use getopt, to avoid needing configury
	for optarg declaration.  Remove TRY macro, rename foo and bar to var_a
	and var_b, for clarity.
	* demos/expr/expr-impl.h: Don't use expr-config.h.
	* configure.in (demos/expr/expr-config.h): Remove.
	* demos/expr/expr-config.in: Remove file.

2004-05-08  Kevin Ryde  <kevin@swox.se>

	* doc/configuration (Configure): Update for current automake not
	copying acinclude.m4 into aclocal.m4.

	* configure.in, Makefile.am, doc/gmp.texi, doc/configuration,
	tests/cxx/Makefile.am, demos/expr/Makefile.am, demos/expr/README,
	demos/expr/expr.c, demos/expr/expr.h, demos/expr/expr-config-h.in,
	demos/expr/expr-impl.h, demos/expr/run-expr.c, demos/expr/t-expr.c:
	MPFR now published separately, remove various bits.
	* mpfr/*, tests/cxx/t-headfr.cc, demos/expr/exprfr.c,
	demos/expr/exprfra.c: Remove.

2004-05-07  Kevin Ryde  <kevin@swox.se>

	* tests/cxx/Makefile.am (TESTS_ENVIRONMENT): Amend c++ shared library
	path hack, on k62-unknown-dragonfly1.0 /usr/bin/make runs its commands
	"set -e", so we need an "|| true" in case there's nothing to copy (for
	instance in a static build).

2004-05-06  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/mode1o.c: Remove, in favour of ...
	* mpn/alpha/mode1o.asm: New file.
	* mpn/alpha/alpha-defs.m4 (bwx_available_p): New macro.

	* tune/amd64.asm: Save rbx in r10 rather than on the stack.

	* configure.in (x86_64-*-*): Try also "-march=k8 -mno-sse2", in case
	we're in ABI=32 on an old OS not supporting xmm regs.
	(GMP_GCC_PENTIUM4_SSE2, GMP_OS_X86_XMM): Run these tests under
	-march=k8 too, and not under ABI=64.

	* doc/gmp.texi (Converting Integers): For mpz_get_d, note truncation
	and overflows.  For mpz_get_d_2exp note truncation, note result if
	OP==0, and cross reference libc frexp.
	(Rational Conversions): For mpq_get_d, note truncation and overflows.
	(Converting Floats): For mpf_get_d, note truncation and overflows.
	For mpf_get_d_2exp, note truncation, note result if OP==0.
	(Assembler Code Organisation): Note nails subdirectories.
	Clarification of get_d_2exp OP==0 reported by Sylvain Pion.

2004-05-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mullow_n.c, mpn/generic/mullow_basecase.c: New files
	(mainly by Niels Möller).
	* configure.in, mpn/Makefile.am: Add them.

	* gmp-impl.h (MULLOW_BASECASE_THRESHOLD, MULLOW_DC_THRESHOLD,
	MULLOW_MUL_N_THRESHOLD): Override for TUNE_PROGRAM_BUILD.

	* tune/Makefile.am: Compile mullow_n.c.
	* tune/common.c (speed_mpn_mullow_n, speed_mpn_mullow_basecase):
	New functions.
	* tune/speed.c (routine): Add entries for mpn_mullow_n and
	mpn_mullow_basecase.
	* tune/speed.h (SPEED_ROUTINE_MPN_MULLOW_N_CALL,
	SPEED_ROUTINE_MPN_MULLOW_BASECASE): New #defines.
	* tune/tuneup.c (tune_mullow): New function.

	* gmp-impl.h (invert_limb): Compute branch-freely.

2004-05-02  Kevin Ryde  <kevin@swox.se>

	* mpn/amd64/mode1o.asm: Use movabsq to support large model non-PIC.
	Use 32-bit insns to save code bytes, and to save a couple of cycles on
	the initial setup multiplies.

2004-05-01  Kevin Ryde  <kevin@swox.se>

	* doc/gmp.texi (References): Update gcc online docs url to
	gcc.gnu.org.

	* configure.in (mips*-*-irix[6789]*): Correction to m4 quoting of this
	pattern.  (Believe the mips64*-*-* part also used picks up all current
	irix6 tuples anyway.)  Reported by Rainer Orth.

2004-04-30  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_PROG_CC_X86_GOT_EAX_EMITTED,
	GMP_ASM_X86_GOT_EAX_OK): New macros.
	(GMP_PROG_CC_WORKS): Use them to detect an old gas bug tickled by
	recent gcc.  Reported by David Newman.

	* doc/gmp.texi (Reentrancy): Note also gmp_randinit_default as an
	alternative to gmp_randinit.

2004-04-29  Torbjorn Granlund  <tege@swox.com>

	* configfsf.guess: Update to 2004-03-12.
	* configfsf.sub: Likewise.

2004-04-27  Torbjorn Granlund  <tege@swox.com>

	* mpz/rrandomb.c (gmp_rrandomb): Rework to avoid extra limb allocation
	and to generate even numbers.
	* mpn/generic/random2.c (gmp_rrandomb): Likewise.

2004-04-25  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (FORCE_DOUBLE): Don't use an asm with a match constraint
	on a memory output, apparently not supported and provokes a warning
	from gcc 3.4.

2004-04-24  Kevin Ryde  <kevin@swox.se>

	* longlong.h (count_leading_zeros_gcc_clz,
	count_trailing_zeros_gcc_ctz): New macros.
	(count_leading_zeros, count_trailing_zeros) [x86]: Use them on gcc
	3.4.

	* configure.in (x86-*-* gcc_cflags_cpu): Give a -mtune at the start of
	each option list, for use by gcc 3.4 to avoid deprecation warnings
	about -mcpu.

	* mpz/aorsmul.c, mpz/aorsmul_i.c, mpz/cfdiv_q_2exp.c,
	mpz/cfdiv_r_2exp.c, mpq/aors.c, mpf/ceilfloor.c: Give REGPARM_ATTR()
	on function definition too, as demanded by gcc 3.4.

2004-04-22  Kevin Ryde  <kevin@swox.se>

	* tests/rand/t-lc2exp.c (check_bigc1): New test.

	* doc/fdl.texi: Tweak @appendixsubsec -> @appendixsec to match our
	preference for this in an @appendix, and because texi2pdf doesn't
	support @appendixsubsec directly within an @appendix.

2004-04-20  Kevin Ryde  <kevin@swox.se>

	* doc/texinfo.tex: Update to 2004-04-07.08 from texinfo 4.7.
	* doc/gmp.texi, mpfr/mpfr.texi (@copying): Don't put a line break in
	@ref within @copying, recent texinfo.tex doesn't like that.

	* demos/perl/GMP.xs (static_functable): Treat cygwin the same as mingw
	DLLs.

	* */Makefile.in, install-sh: Update to automake 1.8.3.
	* ltmain.sh, aclocal.m4, configure: Update to libtool 1.5.6.

	* gmp-impl.h (LIMB_HIGHBIT_TO_MASK): Use a compile-time constant
	expression, rather than a configure test.
	* acinclude.m4, configure.in (GMP_C_RIGHT_SHIFT): Remove, no longer
	needed.
	* tests/t-hightomask.c: New file.
	* tests/Makefile.am (check_PROGRAMS): Add it.

	* macos/configure (parse_top_configure): Look for PACKAGE_NAME and
	PACKAGE_VERSION now used by autoconf.
	(what_objects): Only demand 9 object files, as for instance occurs in
	the scanf directory.
	(asm files): Transform labels L(foo) -> Lfoo.  Take func name from
	PROLOGUE to support empty "EPILOGUE()".  Recognise and substitute
	register name "define()"s.
	* macos/Makefile.in (CmnObjs): Add tal-notreent.o.

2004-04-19  Torbjorn Granlund  <tege@swox.com>

	* tune/speed.h (SPEED_ROUTINE_MPN_ROOTREM): New #define.
	(speed_mpn_rootrem): Declare.
	* tune/common.c (speed_mpn_rootrem): New function.
	* tune/speed.c (routine): Add entry for mpn_rootrem.

2004-04-16  Kevin Ryde  <kevin@swox.se>

	* doc/fdl.texi: Update from FSF, just fixing a couple of typos.

	* macos/configure, macos/Makefile.in: Add printf and scanf directories.

	* tests/mpz/t-gcd.c (check_data): New function, exercising K6
	gcd_finda bug.

2004-04-14  Kevin Ryde  <kevin@swox.se>

	* doc/gmp.texi (Reentrancy, Random State Initialization): Note
	gmp_randinit use of gmp_errno is not thread safe.  Reported by Vincent
	Lefèvre.

	* doc/gmp.texi (Random State Initialization): Add index entries for
	gmp_errno and constants.

	* mpn/m68k/README: Update _SHORT_LIMB -> __GMP_SHORT_LIMB.

	* configure.in (--enable-mpbsd): Typo Berkley -> Berkeley in help msg.

2004-04-12  Kevin Ryde  <kevin@swox.se>

	* demos/perl/GMP.xs (static_functable): New macro, use it for all
	function tables, to support mingw DLL builds.
	* demos/perl/INSTALL (NOTES FOR PARTICULAR SYSTEMS): Remove note on
	DLLs, should be ok now.

	* demos/perl/sample.pl: Print the module and library versions in use.

	* demos/perl/GMP.pm, Makefile.PL (VERSION): Set to '2.00'.
	* demos/perl/GMP.pm (COPYRIGHT): New in the doc section.

	* Makefile.am: Note 4.1.3 libtool versioning info, and REVISION policy.

	* tal-debug.c: Add <stdlib.h> for abort.

2004-04-07  Torbjorn Granlund  <tege@swox.com>

	* tests/refmpf.c (refmpf_add_ulp): Adjust exponent when needed.

	* mpn/generic/random2.c: Rewrite (clone mpz/rrandomb.c).

2004-04-07  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/k6/gcd_finda.asm: Correction jbe -> jb in initial setups.
	Zero flag is wrong here, it relects only the high limb of the compare,
	leading to n1>=n2 not satisfied and wrong results.  cp[1]==0x7FFFFFFF
	with cp[0]>=0x80000001 provokes this.

	* doc/gmp.texi (BSD Compatible Functions): Note "pow" name clash under
	the pow function description too.
	(Language Bindings): Add XEmacs (betas at this stage).  Reported by
	Jerry James.

	* tests/refmpn.c (refmpn_mod2): Correction to ASSERTs, r==a is allowed.

	* gen-psqr.c (generate_mod): Cast mpz_invert_ui_2exp args, for K&R.
	* gen-bases.c, gen-fib.c, gen-psqr.c: For mpz_out_str, use stdout
	instead of 0, in case a K&R treats int and FILE* params differently.

2004-04-04  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (BSWAP_LIMB) [amd64]: New macro.
	(FORCE_DOUBLE): Use this for amd64 too.

	* tests/amd64check.c, tests/amd64call.asm: New files, derived in part
	from x86check.c and x86call.asm.
	* tests/Makefile.am (EXTRA_libtests_la_SOURCES): Add them.
	* configure.in (x86_64-*-* ABI=64): Use them.

2004-04-03  Kevin Ryde  <kevin@swox.se>

	* mpn/amd64/mode1o.asm: New file.
	* mpn/amd64/amd64-defs.m4 (ASSERT): New macro.

	* mpn/x86/k7/mmx/divrem_1.asm, mpn/x86/pentium4/sse2/divrem_1.asm: Add
	note on how "dr" part of algorithm is handled.

	* mpn/x86/k7/dive_1.asm, mpn/x86/k7/mod_34lsub1.asm,
	mpn/x86/k7/mode1o.asm: Note Hammer (32-bit mode) speeds.

2004-03-31  Kevin Ryde  <kevin@swox.se>

	* doc/gmp.texi (Language Bindings): Add GOO, MLGMP and Numerix.

	* mpf/mul_2exp.c, mpf/div_2exp.c: Rate u==0 as UNLIKELY.

2004-03-28  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/divrem_1.asm: Trim a few cycles.

2004-03-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/sublsh1_n.asm: Fix typo.

	* mpn/generic/divrem_1.c: Fix typo.

	* mpn/generic/sqr_basecase.c: Fix typo.

	* mpn/amd64/divrem_1.asm: New file.

2004-03-20  Kevin Ryde  <kevin@swox.se>

	* longlong.h (power, powerpc): Add comments on how we select this code.

	* gmp-h.in (mpz_get_ui): Use ?: instead of mask style, gcc treats the
	two identically but ?: is a bit clearer.

	* insert-dbl.c: Remove file, no longer used, scaling is now integrated
	in mpn_get_d.
	* Makefile.am (libgmp_la_SOURCES): Remove insert-dbl.c.
	* gmp-impl.h (__gmp_scale2): Remove prototype.

2004-03-17  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init, fake_cpuid_table): Add x86_64.

	* mpq/get_d.c: Use mpn_tdiv_qr, demand den>0 per canonical form.

2004-03-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/sqr_basecase.c: Add versions using mpn_addmul_2 and
	mpn_addmul_2s.

2004-03-14  Kevin Ryde  <kevin@swox.se>

	* mpf/mul_ui.c: Incorporate carry from low limbs, for exactness.
	* tests/mpf/t-mul_ui.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.

	* mpf/div.c: Use mpn_tdiv_qr.  Use just one TMP_ALLOC.  Use full
	divisor, since truncating can lose accuracy.
	* tests/mpf/t-div.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.

	* tests/mpf/t-set_q.c, tests/mpf/t-ui_div.c (check_various): Amend
	bogus 99/4 test.
	* tests/mpf/t-ui_div.c (check_rand): Exercise r==v overlap.

	* tests/refmpf.c, tests/tests.h (refmpf_set_overlap): New function.

	* mpf/cmp_si.c [nails]: Correction, cast vval in exp comparisons, for
	when vval=-0x800..00 and limb==longlong.

	* mpf/cmp_si.c [nails]: Correction, return usign instead of 1 when
	uexp==2 but value bigger than an mp_limb_t.
	* tests/mpf/t-cmp_si.c (check_data): Add test cases.

	* tests/trace.c (mpf_trace): Use ABS(mp_trace_base) to allow for
	negative bases used for upper case hex in integer traces.

2004-03-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/sb_divrem_mn.c: Correct header comment.

2004-03-11  Kevin Ryde  <kevin@swox.se>

	* aclocal.m4, configure, ltmain.sh: Downgrade to libtool 1.5, version
	1.5.2 doesn't remove .libs/*.a files when rebuilding, which is bad for
	development when changing contents or with duplicate named files like
	we have.

	Revert this, ie restore AR_FLAGS=cq:
	* acinclude.m4 (GMP_PROG_AR): Remove AR_FLAGS=cq, libtool 1.5.2 now
	does this itself on detecting duplicate object filenames in piecewise
	linking mode.

	* randbui.c, randmui.c [longlong+nails]: Correction to conditionals
	for second limb.

	* mpz/aors_ui.h, mpz/cdiv_q_ui.c, mpz/cdiv_qr_ui.c, mpz/cdiv_r_ui.c,
	mpz/cdiv_ui.c, mpz/fdiv_q_ui.c, mpz/fdiv_qr_ui.c, mpz/fdiv_r_ui.c,
	mpz/fdiv_ui.c, mpz/gcd_ui.c, mpz/iset_ui.c, mpz/lcm_ui.c,
	mpz/set_ui.c, mpz/tdiv_q_ui.c, mpz/tdiv_qr_ui.c, mpz/tdiv_r_ui.c,
	mpz/tdiv_ui.c, mpz/ui_sub.c, mpf/div_ui.c, mpf/mul_ui.c
	[longlong+nails]: Amend #if to avoid warnings about shift amount.

2004-03-07  Kevin Ryde  <kevin@swox.se>

	* mpf/reldiff.c: Use rprec+ysize limbs for d, to ensure accurate
	result.  Inline mpf_abs(d,d) and mpf_cmp_ui(x,0), and rate the latter
	UNLIKELY.

	* mpf/ui_div.c: Use mpn_tdiv_qr.  Use just one TMP_ALLOC.  Use full
	divisor, since truncating can lose accuracy.
	* tests/mpf/t-ui_div.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.

	* mpf/set_q.c: Expand TMP_ALLOC_LIMBS_2, to make conditional clearer
	and avoid 1 limb alloc when not wanted.

	* gmp-impl.h (WANT_TMP_DEBUG): Define to 0 if not defined.
	(TMP_ALLOC_LIMBS_2): Use "if" within macro rather than "#if", for less
	preprocessor conditionals.

	* mpf/mul_2exp.c, mpf/div_2exp.c: Add some comments.

	* tests/refmpn.c (refmpn_sb_divrem_mn, refmpn_tdiv_qr): Nailify.

2004-03-04  Kevin Ryde  <kevin@swox.se>

	* gen-psqr.c (print): Add CNST_LIMB in PERFSQR_MOD_TEST, for benefit
	of K&R.
	* tests/mpn/t-perfsqr.c (PERFSQR_MOD_1): Use CNST_LIMB for K&R.

	* doc/configuration (Configure): Remove mkinstalldirs, no longer used.

	* acinclude.m4 (GMP_PROG_AR): Remove AR_FLAGS=cq, libtool 1.5.2 now
	does this itself on detecting duplicate object filenames in piecewise
	linking mode.

	* configure.in (hppa2.0*-*-*): Test sizeof(long) == 4 or 8 to verify
	ABI=2.0n versus ABI=2.0w.  In particular this lets CC=cc_bundled
	correctly fall back to ABI=2.0n (we don't automatically add CC=+DD64
	to that compiler, currently).

	* doc/gmp.texi (Reentrancy): Note C++ mpf_class constructors using
	global default precision.
	(Random State Miscellaneous): Describe gmp_urandomb_ui as giving N
	bits.
	(C++ Interface Floats): Describe operator= copying the value, not the
	precision, and what this can mean about copy constructor versus
	default constructor plus assignment.

	* mpf/set_q.c: Use mpn_tdiv_qr rather than mpn_divrem, so no shifting.
	Don't truncate the divisor, it can make the result inaccurate.
	* tests/mpf/t-set_q.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.

	* mpf/set.c: Use MPN_COPY_INCR, in case r==u and ABSIZ(u) > PREC(r)+1.
	No actual bug here, because MPN_COPY has thusfar been an alias for
	MPN_COPY_INCR, only an ASSERT failure.
	* tests/mpf/t-set.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.

	* mpf/set.c, mpf/iset.c: Do MPN_COPY last, for possible tail call.

	* mpf/set_d.c: Rate d==0 as UNLIKELY.  Store size before extract call,
	to shorten lifespan of "negative".

	* mpf/init.c, mpf/init2.c, mpf/iset_d.c, mpf/iset_si.c,
	mpf/iset_str.c, mpf/iset_ui.c: Store prec before alloc call, for one
	less live quantity across that call.
	* mpf/init.c, mpf/init2.c, mpf/iset_str.c: Store size and exp before
	alloc call, to overlap with other operations.

	* tests/refmpf.c, tests/tests.h (refmpf_fill, refmpf_normalize,
	refmpf_validate, refmpf_validate_division): New functions.

	* tests/refmpn.c, tests/tests.h (refmpn_copy_extend,
	refmpn_lshift_or_copy_any, refmpn_rshift_or_copy_any): New functions.

	* tal-debug.c: Add <string.h> for strcmp.

	* tests/cxx/t-istream.cc (check_mpz, check_mpq, check_mpf): Use size_t
	for loop index, to quieten g++ warning.

2004-03-02  Kevin Ryde  <kevin@swox.se>

	* tests/mpn/t-hgcd.c: Use __GMP_PROTO on prototypes.

2004-03-01  Torbjorn Granlund  <tege@swox.com>

	With Karl Hasselström:
	* mpn/generic/dc_divrem_n.c (mpn_dc_div_2_by_1): New function, with
	meat from old mpn_dc_divrem_n.  Accept scratch parameter.  Rewrite to
	avoid a recursive call.
	(mpn_dc_div_3_by_2): New function, with meat from old
	mpn_dc_div_3_halves_by_2.  Accept scratch parameter.
	(mpn_dc_divrem_n): Now just allocate scratch space and call new
	mpn_dc_div_2_by_1.

2004-02-29  Kevin Ryde  <kevin@swox.se>

	* longlong.h (count_leading_zeros) [alpha gcc]: New version, inlining
	mpn/alpha/cntlz.asm cmpbge technique.

	* aclocal.m4, configure, install-sh, missing, ltmain.sh,
	*/Makefile.in: Update to automake 1.8.2 and libtool 1.5.2.

	* doc/gmp.texi (C++ Interface Integers): Note / and % rounding follows
	C99 / and %.
	(Exact Remainder): Index entries for divisibility testing algorithm.

	* tune/time.c (speed_endtime): Return 0.0 for negative time measured.
	Revise usage comments for clarity.
	* tune/common.c (speed_measure): Recognise speed_endtime 0.0 for
	failed measurement.

	* tests/mpn/t-get_d.c (check_rand): Correction to nhigh_mask setup.

2004-02-27  Torbjorn Granlund  <tege@swox.com>

	* tune/tuneup.c (tune_dc, tune_set_str): Up param.step_factor.

	* tests/mpz/t-gcd.c: Decrease # of tests to 50.

2004-02-27  Kevin Ryde  <kevin@swox.se>

	* tests/devel/try.c: Add a comment that this is not for Cray systems.

	* mpf/set_q.c: Don't support den(q)<0, demand canonical form in the
	usual way.

2004-02-24  Torbjorn Granlund  <tege@swox.com>

	From Kevin:
	* mpn/generic/mul_fft.c (mpn_fft_add_modF): Loop until normalization
	criterion met.

2004-02-22  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_PROG_CC_WORKS, GMP_OS_X86_XMM, GMP_PROG_CXX_WORKS):
	Remove files that might look like compiler output, so our "||"
	alternatives are not fooled.

	* acinclude.m4 (GMP_PROG_CC_WORKS): Add test for lshift_com code
	mis-compiled by certain IA-64 HP cc at +O3.

	* gmp-impl.h (USE_LEADING_REGPARM): Disable under prof or gprof, for
	the benefit of freebsd where .mcount clobbers registers.  Spotted by
	Torbjorn.
	* configure.in (WANT_PROFILING_PROF, WANT_PROFILING_GPROF): New
	AC_DEFINEs.

2004-02-21  Kevin Ryde  <kevin@swox.se>

	* configure.in (sparc64-*-*bsd*): Amend -m32 setup for ABI=32, so it's
	not used in ABI=64 on the BSD systems.

2004-02-18  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpz/t-gcd.c (gcdext_valid_p): New function.
	(ref_mpz_gcd): Deleted function.
	(one_test): Rearranged to call mpz_gcdext first, so that the
	returned value can be validated.
	(main): Don't use ref_mpz_gcd.

2004-02-18  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (MPN_TOOM3_MAX_N): Move to !WANT_FFT section.

	* tests/mpz/t-mul.c: Exclude special huge operands unless WANT_FFT.

	* mpz/rrandomb.c (gmp_rrandomb): Rewrite.

	* mpn/generic/mul_n.c (mpn_toom3_sqr_n): Remove write-only variable c5.

2004-02-18  Kevin Ryde  <kevin@swox.se>

	* mpf/iset_si.c, mpf/iset_ui.c, mpf/set_si.c, mpf/set_ui.c [nails]:
	Always store second limb, to avoid a conditional.

	* tests/mpf/t-get_ui.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
	* tests/mpf/t-get_si.c (check_limbdata): Further tests.
	* gmp-impl.h (MP_EXP_T_MAX, MP_EXP_T_MIN): New defines.

	* mpf/get_ui.c, mpf/get_si.c: Remove size==0 test, it's covered by
	other conditions.  Attempt greater clarity by expressing conditions as
	based on available data range.
	* mpf/get_si.c [nails]: Correction, don't bail on exp > abs_size,
	since may still have second limb above radix point available.
	* mpf/get_ui.c: Nailify.

2004-02-16  Kevin Ryde  <kevin@swox.se>

	* mpz/scan0.c, mpz/scan1.c: Use count_trailing_zeros, instead of
	count_leading_zeros on limb&-limb.

	* mpf/sqrt.c: Use "/ 2" for exp, avoiding C undefined behaviour on
	">>" of negatives.  Correction to comment, exp is rounded upwards.
	SIZ(r) always prec now, no need for tsize expression.  Store EXP(r)
	and SIZ(r) where calculated to reduce variable lifespans.  Make tsize
	mp_size_t not mp_exp_t, though of course those are currently the same.

	* gmp-h.in (GMP_ERROR_ALLOCATE, GMP_ERROR_BAD_STRING,
	GMP_ERROR_UNUSED_ERROR): Remove, never used or documented, and we
	don't want to use globals for communicating error information.

	* mpz/gcd_ui.c [nails]: Correction, actually return a value.

	* mpn/generic/addmul_1.c, mpn/generic/submul_1.c [nails==1]: Add code.

2004-02-15  Kevin Ryde  <kevin@swox.se>

	* tests/mpz/t-jac.c (check_data): Remove unnecessary variable
	"answer".

2004-02-14  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/aors_n.asm: Break a group with a RAW conflict.

2004-02-14  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_C_RIGHT_SHIFT): Note that it's "long"s which we're
	concerned about.

	* mpn/generic/mul_n.c: Add some remarks about toom3 high zero
	stripping.

	* mpn/generic/scan0.c, mpn/generic/scan1.c: Remove design issue
	remarks.  What to do about going outside `up' space is a problem, but
	anything to address it would be an incompatible change.

2004-02-12  Torbjorn Granlund  <tege@swox.com>

	* tests/mpn/t-hgcd.c: Remove unused variables.

	* mpn/ia64/hamdist.asm: Remove bundling incompatible with HP-UX
	assembler.  Misc HP-UX changes.
	* mpn/ia64/gcd_1.asm: Add some syntax to placid the HP-UX assembler.

2004-02-11  Kevin Ryde  <kevin@swox.se>

	* longlong.h (power, powerpc): Use HAVE_HOST_CPU_FAMILY_power and
	HAVE_HOST_CPU_FAMILY_powerpc rather than various cpp defines.

	* gmp-impl.h: Add remarks about limits.h and Cray etc.

	* mpn/ia64/mul_1.asm: Don't put .pred directives on labelled lines,
	hpux 11.23 assembler doesn't like that.
	* mpn/ia64/README: Add a note on this.

	* dumbmp.c (mpz_mul): Set ALLOC(r) for new data block used.  Reported
	by Jason Moxham.

	* mpn/pa32/README, mpn/pa64/README (REFERENCES): New sections.

2004-02-10  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-gcd.c: Decrease # of tests run.

	* mpn/*/gmp-mparam.h: Add HGCD values, update TOOM values.

2004-02-01  Torbjorn Granlund  <tege@swox.com>

	From Kevin:
	* config.guess: Recognize AMD's hammer processors, return x86_64.

2004-01-31  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/hgcd.c (mpn_cmp_sum3): Declare static.

2004-01-25  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpn/Makefile.am (check_PROGRAMS): Add t-hgcd.

	* mpn/generic/hgcd.c (hgcd_jebelean): Simplify, use mpn_cmp_sum3.
	(mpn_cmp_sum3): New function.
	(mpn_diff_smaller_p): Remove.
	(hgcd_final, hgcd_jebelean, hgcd_small_1, hgcd_small_2, euclid_step):
	Remove tp,talloc arguments.  Callers changed.

2004-01-25  Torbjorn Granlund  <tege@swox.com>

	* tune/tuneup.c (all): Reenable calls of tune_gcd_schoenhage and
	tune_hgcd.

	* mpn/generic/gcd.c: Reenable Schoenhage code.

	With Niels Möller:
	* mpn/generic/hgcd.c: Add const and inline to several functions.
	(qstack_push_start qstack_push_end qstack_push_quotient): Remove.
	(euclid_step): Insert removed functions here.
	(hgcd_adjust): Simplify, don't handle d != 1.
	(qstack_adjust): Corresponding changes.
	(mpn_hgcd2_lehmer_step): Remove redundant tests for bh against zero.
	(hgcd_start_row_p): Tweak.
	(hgcd_final): Shorten life of ralloc.

2004-01-24  Kevin Ryde  <kevin@swox.se>

	* tests/mpf/t-sqrt.c (check_rand1): Further diagnostic printouts.

	* mpn/generic/sqrtrem.c (mpn_sqrtrem): Add ASSERT_MPN.
	(mpn_dc_sqrtrem): Add casts for K&R.

	* mpf/sqrt_ui.c: Nailify.

	* mpf/set_z.c: Do MPN_COPY last, for possible tail call.

	* doc/gmp.texi (Miscellaneous Float Functions): For mpf_random2, note
	exponent is in limbs.

	* mpn/ia64/README: Add remark about concentrating on itanium-2.

2004-01-22  Kevin Ryde  <kevin@swox.se>

	* mpf/sqrt.c: Change tsize calculation to get prec limbs result
	always, previously got prec+1 when exp was odd.
	* tests/mpf/t-sqrt.c (check_rand1): New function, code from main.
	(check_rand2): New function.

	* mpf/sqrt_ui.c: Change rsize calculation to get prec limbs result,
	previously got prec+1.
	* tests/mpf/t-sqrt_ui.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.

	* tests/refmpf.c, tests/tests.h (refmpf_add_ulp,
	refmpf_set_prec_limbs): New functions.

	* mpz/get_d_2exp.c, mpf/get_d_2exp.c: Remove x86+m68k force to double,
	mpn_get_d now does this.  Remove res==1.0 check for round upwards,
	mpn_get_d now rounds towards zero.  Move exp store to make mpn_get_d a
	tail call.

	* configure.in (x86-*-*): Use ABI=32 rather than ABI=standard.
	Use gcc -m32 when available, to force mode on bi-arch amd64 gcc.
	* configure.in, acinclude.m4 (x86_64-*-*): Merge into plain x86 setups
	as ABI=64.  Support ABI=32, using athlon code.  Use gcc -mcpu=k8,
	-march=k8.
	(amd64-*-*): Remove pattern, config.sub only gives x86_64.
	* doc/gmp.texi (ABI and ISA): Add x86_64 dual ABIs.

	* mpn/amd64/README: Add reference to ABI spec.

2004-01-17  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/hgcd.c (hgcd_adjust): Backed out mpn_addlsh1_n
	change for now.

	* mpn/generic/hgcd.c (hgcd_adjust): Fixed calls of mpn_addlsh1_n.

2004-01-17  Kevin Ryde  <kevin@swox.se>

	* tune/README: Remove open/mpn versions of toom3, no longer exist.
	* tune/powerpc64.asm: Remove unused L(again).
	* tune/time.c (mftb): Note single mftb possible for powerpc64.

	* mpn/generic/mode1o.c: Use "c<s" to do underflow detection in last
	step, for better parallelism.

	* mpn/generic/get_d.c: Preserve comments about hppa fcnv,udw,dbl from
	previous mpz_get_d code.

	* tune/freq.c: Add some comments about systems not covered.

	* gmp-h.in (_GMP_H_HAVE_FILE): Add _MSL_STDIO_H for Metrowerks.
	Reported by Tomas Zahradnicky.

2004-01-16  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/hgcd.c (mpn_diff_smaller_p): Use MPN_DECR_U.
	(hgcd_adjust): Use mpn_addlsh1_n when available.

2004-01-16  Kevin Ryde  <kevin@swox.se>

	* configure.in (powerpc64-*-linux*): Try gcc64.  Try -m64 with
	"cflags_maybe" to get it used in all probing.  Add sizeof-long-8 test
	to check the mode is right if -m64 is not applicable.

2004-01-15  Kevin Ryde  <kevin@swox.se>

	* configure.in (--with-readline=detect): Check for readline/readline.h
	and readline/history.h.  Report result of detection.

2004-01-14  Niels Möller  <nisse@lysator.liu.se>

	* tune/speed.c (routine): Disabled speed_mpn_hgcd_lehmer.
	* tune/common.c (speed_mpn_hgcd_lehmer): Disabled function.

	* mpn/generic/hgcd.c (mpn_hgcd_lehmer_itch, mpn_hgcd_lehmer)
	(mpn_hgcd_equal): Deleted functions.

	* mpn/generic/gcd.c (hgcd_start_row_p): Deleted function.
	(gcd_schoenhage): Deleted assertion code using mpn_hgcd_lehmer.

	* mpn/generic/hgcd.c (hgcd_final): Fixed ASSERT typos.
	(mpn_hgcd): To use Lehmer's algorithm, call hgcd_final directly,
	not mpn_hgcd_lehmer.

	* mpn/generic/gcd.c (gcd_schoenhage): Updated for changes to
	mpn_hgcd and mpn_hgcd_fix. (Schoenhage code is still disabled).

	* gmp-impl.h (mpn_hgcd_fix): Updated prototype.

	* mpn/generic/hgcd.c (mpn_hgcd_fix): Replaced a bunch of arguments
	by a pointer const struct hgcd_row *s. Updated callers.

	* mpn/generic/hgcd.c (hgcd_start_row_p): Use const for the input.
	Moved function definition before hgcd_jebelean.
	(hgcd_jebelean): Interface change, analogous to hgcd2.
	(mpn_hgcd_fix): Normalize v. Require that v > 0.
	(hgcd_adjust): Fix bug in carry update.
	(mpn_hgcd): Reorganized again, to adapt to mpn_hgcd/hgcd_jebelean
	now sometimes returning 1. Reintroduced hgcd_adjust.

	* mpn/generic/hgcd.c (hgcd_final): Streamlined logic for the first
	hgcd2 call.

	* mpn/generic/hgcd2.c (mpn_hgcd2): Interface change. Return 1
	instead of 2, in the no progress case r0=A, r1=B.

	* mpn/generic/hgcd.c (hgcd_adjust): Changed arguments and return
	value. Now takes a struct hgcd_row * and the uv size, and returns
	updated uvsize.
	(hgcd_final): Special handling of the case hgcd2 returning 1. Now
	uses hgcd_adjust, instead of a full Euclid division.

2004-01-13  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/hgcd.c (euclid_step, hgcd_case0): Merged into a
	single function euclid_step.
	(mpn_hgcd): Reorganized the logic for the second recursive call.
	Avoid unnecessary Euclid steps.

	* tests/mpn/t-hgcd.c (hgcd_values): One more test value.

	* tests/mpn/t-hgcd.c (hgcd_values): Added values that trigged the
	hgcd_jebelean bug.

	* mpn/generic/hgcd.c (hgcd_jebelean): Fixed off by one error.
	(mpn_hgcd): Simplified the logic for the first recursive call. Now
	it uses only the correct values from the recursive call, and
	doesn't do tricks with hgcd_adjust (hgcd_adjust will probably be
	reintroduced later, though).

	* tests/mpn/t-hgcd.c (mpz_mpn_equal, hgcd_ref_equal)
	(hgcd_ref_init, hgcd_ref_clear): New functions.
	(hgcd_ref): Reference implementation of hgcd, using mpz.
	(one_test): Use hgcd_ref. Don't use mpn_hgcd_lehmer.
	(main): Skip one_step if both input values are zero.

2004-01-12  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/hgcd.c (hgcd_final): Rewritten, now uses Lehmer
	steps instead of a division loop.
	(mpn_hgcd_lehmer): Deleted old Lehmer code, instead just
	initialize and then call hgcd_final.

	* tests/tests.h: Added refmpn_free_limbs prototype.
	* tests/refmpn.c (refmpn_free_limbs): New function.

	* tests/mpn/t-hgcd.c: Try the same kind of random inputs as for
	mpz/t-gcd.

2004-01-11  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/hgcd.c (mpn_hgcd_lehmer): Rewritten, after some more
	analysis of the size reduction for one Lehmer step.

	* tests/mpn/t-hgcd.c: New file.

2004-01-11  Torbjorn Granlund  <tege@swox.com>

	With Niels Möller:
	* mpn/generic/hgcd.c (hgcd_normalize): Fix ASSERTs.
	(hgcd_mul): Normalize R[1].uvp[1].  Add some more ASSERTs.
	(hgcd_update_uv): Streamline.  ASSERT that input and output is
	normalized.

2004-01-11  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/ev6/slot.pl: New file, derived in part from
	mpn/x86/k6/cross.pl.

	* mpn/alpha/alpha-defs.m4 (ASSERT): New macro.

	* mpn/asm-defs.m4 (m4_ifdef): New macro, avoiding OSF 4.0 m4 bug.
	(m4_assert_defined): Use it.

	* mpn/alpha/default.m4, mpn/alpha/unicos.m4 (LDGP): New macro.
	* mpn/alpha/ev67/gcd_1.asm: Use it to re-establish gp after jsr.

	* configure.in, demos/calc/Makefile.am: Use -lcurses or -lncurses with
	readline, when available.

	* longlong.h (sub_ddmmss) [generic]: Use al<bl for the borrow rather
	than __x>al, since the former can be done without waiting for __x,
	helping superscalar chips, in particular alpha ev5 and ev6.

	* longlong.h (sub_ddmmss) [ia64]: New macro.

	* tests/t-sub.c: New file.
	* tests/Makefile.am (check_PROGRAMS): Add it.
	* tests/refmpn.c, tests/tests.h (refmpn_sub_ddmmss): New function.

2004-01-09  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/p6/mod_34lsub1.asm: New file, derived in part from
	mpn/x86/mod_34lsub1.asm.

	* configure.in (IA64_PATTERN): Use -mtune on gcc 3.4.

2004-01-07  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in, mp-h.in (__GMP_SHORT_LIMB): Renamed from _SHORT_LIMB, to
	keep in our namespace.  (Not actually used anywhere currently.)
	Reported by Patrick Pelissier.

	* mp-h.in: Use "! defined (__GMP_WITHIN_CONFIGURE)" in the same style
	as gmp-h.in (though mp-h.in is not actually used during configure).

	* mp-h.in (__GMP_DECLSPEC_EXPORT, __GMP_DECLSPEC_IMPORT) [__GNUC__]:
	Use __dllexport__ and __dllimport__ to keep out of application
	namespace.  Same previously done in gmp-h.in.

2004-01-06  Kevin Ryde  <kevin@swox.se>

	* configfsf.sub, configfsf.guess: Update to 2004-01-05.
	* configure.in (amd64-*-* | x86_64-*-*): Update comments on what
	configfsf.sub does.

2004-01-04  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/README (REFERENCES): Add tru64 assembly manuals.
	(ASSEMBLY RULES): Note what gcc says about !literal! etc.

2004-01-03  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/ev67/gcd_1.asm: New file.

	* mpn/x86/pentium4/sse2/rsh1add_n.asm: New file, derived in part from
	mpn/x86/pentium4/sse2/addlsh1_n.asm.

	* mpn/x86/p6/p3mmx/popham.asm: Note measured speeds.

	* mpn/ia64/hamdist.asm: Correction to inputs vs locals in alloc (makes
	no difference to the generated code).  Corrections to a couple of
	comments.

	* mpn/x86/pentium4/sse2/addlsh1_n.asm (PARAM_CARRY): Remove macro, not
	used, no such parameter.

	* mpn/generic/gcd.c: Use <stdio.h> for NULL.

	* doc/gmp.texi (Single Limb Division): Correction to tex expression
	for (1/2)x1.  And minor wording tweaks elsewhere.

	* gmp-impl.h (mpn_rsh1add_n, mpn_rsh1sub_n): Correction to comments
	about how carries returned.

	* longlong.h (umul_ppmm) [generic]: Add comments about squaring
	(dropped from tasks list)

2003-12-31  Kevin Ryde  <kevin@swox.se>

	* demos/perl/GMP.xs (scan0, scan1): Return ~0 for not-found.
	* demos/perl/GMP.pm: Describe this, remove the note about ULONG_MAX
	being the same as ~0 (which is not true in old perl).
	* demos/perl/test.pl: Update tests.
	* demos/perl/typemap (gmp_UV): New type.

	* demos/perl/test.pl (fits_slong_p): Comment out uv_max test, it won't
	necessarily exceed a long.

	* demos/perl/GMP.pm: Add a remark about get_str to the bugs section.

	* mpn/generic/sqrtrem.c, mpz/fac_ui.c, tests/mpf/reuse.c: Add casts
	for K&R.
	* tests/mpf/t-muldiv.c: Make ulimb, vlimb into ulongs, which is how
	they're used, for the benefit of K&R calling.

	* doc/gmp.texi (Square Root Algorithm): Add a summary of the algorithm.
	And add further index entries in various places.

	* mpz/lucnum_ui.c, mpz/lucnum2_ui.c: Use mpn_addlsh1_n when available.

	* gmp-impl.h, mpn/generic/mul_n.c (mpn_addlsh1_n, mpn_sublsh1_n,
	mpn_rsh1add_n, mpn_rsh1sub_n): Move descriptions to gmp-impl.h with
	the prototypes, for ease of locating.

2003-12-30  Torbjorn Granlund  <tege@swox.com>

	* tune/tuneup.c (all): Disable calls of tune_gcd_schoenhage and
	tune_hgcd for now.

2003-12-29  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-gcd.c: Rewrite, based on suggestions by Kevin.

	* mpn/ia64/mul_1.asm: Amend TODO list.

	* mpn/sparc64/README: Remove mpn_Xmul_2, done.
	Add blurb about L1 cache conflicts.

	* mpn/generic/gcd.c: Disable Schoenhage code for now.

2003-12-29  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/mul_fft.c, mpz/root.c, mpq/cmp_ui.c: Add casts for K&R.

2003-12-27  Kevin Ryde  <kevin@swox.se>

	* tests/mpz/t-mul.c (mul_kara, mul_basecase): Use __GMP_PROTO.

	* mpn/generic/gcd.c (NHGCD_SWAP4_2, NHGCD_SWAP3_LEFT),
	mpn/generic/hgcd.c (HGCD_SWAP4_LEFT, HGCD_SWAP4_RIGHT, HGCD_SWAP4_2,
	HGCD_SWAP3_LEFT): Aggregate initializers for automatics is an
	ANSI-ism, avoid.

	* Makefile.am (AUTOMAKE_OPTIONS): Restore this, giving no directory on
	ansi2knr to avoid a circular build rule.
	* configure.in (AM_INIT_AUTOMAKE): Note options also in Makefile.am.

	* configure.in (cflags_maybe): Don't loop adding cflags_maybe if the
	user has set CFLAGS.

2003-12-24  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/gcd.c (gcd_schoenhage_itch): Avoid unary "+".
	(mpn_gcd): Allocate scratch space on heap for gcd_schoenhage.
	(mpn_gcd): Don't invoke MPN_NORMALIZE on input operands.

2003-12-23  Kevin Ryde  <kevin@swox.se>

	* configure.in (*sparc*-*-*): Test sizeof(long)==4 or 8 for ABIs, to
	get the right mode when the user sets the CFLAGS.
	(testlist): Introduce "any_<abi>_testlist" to apply to all compilers.

	* demos/perl/typemap (MPZ_ASSUME, MPQ_ASSUME, MPF_ASSUME): Remove
	output rules, these are only meant for inputs.
	(MPZ_MUTATE): Remove, not used since changes for magic.

	* demos/perl/GMP.xs (mpz_class_hv, mpq_class_hv, mpf_class_hv): New
	variables, initialized in BOOT.
	* demos/perl/GMP.xs, demos/perl/typemap: Use them and explicit
	sv_bless, to save a gv_stashpv for every new object.

2003-12-22  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/mode1o.c, mpn/alpha/dive_1.c: Moved from ev5/mode1o.c and
	ev5/dive_1.c, these are good for ev4, and would like them in a generic
	alpha build.

2003-12-21  Kevin Ryde  <kevin@swox.se>

	* doc/gmp.texi (Integer Logic and Bit Fiddling): Say "bitwise" in
	mpz_and, mpz_ior and mpz_xor, to avoid any confusion with what C means
	by "logical".  Reported by Rüdiger Schütz.

	* gmp-h.in (_GMP_H_HAVE_FILE): Note why defined(EOF) is not good.

2003-12-20  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/hgcd.c (mpn_diff_smaller_p): Use mpn_cmp instead of
	mpn_sub_n where possible.  Use mp_size_t for relevant variables.

2003-12-20  Kevin Ryde  <kevin@swox.se>

	* tune/speed.h (SPEED_TMP_ALLOC_LIMBS): Correction to last change,
	don't want "- 1" on the TMP_ALLOC_LIMBS.

	* demos/expr/expr.h: Test #ifdef MPFR_VERSION_MAJOR for when mpfr.h is
	included, not GMP_RNDZ which is now an enum.

	* demos/expr/exprfra.c (e_mpfr_ulong_p): Use mpfr_integer_p and
	mpfr_fits_ulong_p.
	(e_mpfr_get_ui_fits): Use mpfr_get_ui.

	* mpfr/*: Update to mpfr cvs head 2003-12-20.

	* configure, config.in: Update to autoconf 2.59.
	* */Makefile.in, configure, aclocal.m4, ansi2knr.c, install-sh,
	doc/mdate-sh: Update to automake 1.8.

	* mkinstalldirs: Remove, not required by automake 1.8.
	* doc/gmp.texi (Build Options): HTML is a usual target in automake 1.8.

	* configure.in (AC_PREREQ): Require autoconf 2.59.
	(AM_INIT_AUTOMAKE): Require automake 1.8.
	(AC_C_INLINE): Use rather than GMP_C_INLINE, now has #ifndef
	__cplusplus we want.
	(gettimeofday): Use AC_CHECK_FUNCS rather than our workaround code,
	autoconf now ok.

	* acinclude.m4 (GMP_C_INLINE): Remove.
	(GMP_H_EXTERN_INLINE): Use AC_C_INLINE.
	(GMP_PROG_AR): Comment on automake $ARFLAGS.

2003-12-19  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/hgcd.c (mpn_diff_smaller_p): Rewrote function. Tried
	to explain how it works.
	(slow_diff_smaller_p, wrap_mpn_diff_smaller_p) [WANT_ASSERT]: Use
	CPP to wrap assertion checks around all calls to
	mpn_diff_smaller_p.

	* mpn/generic/hgcd.c (mpn_addmul2_n_1) [nails]: Fixed carry handling.

	* mpn/generic/hgcd.c (mpn_diff_smaller_p) [nails]: Use
	GMP_NUMB_MAX, not MP_LIMB_T_MAX.
	(mpn_hgcd_itch): Improved size calculation.
	(mpn_hgcd_max_recursion): Moved function from qstack.c. Should to
	be recompiled when HGCD_SCHOENHAGE_THRESHOLD is tuned.

	* mpn/generic/qstack.c (mpn_hgcd_max_recursion): ... moved from
	here.

2003-12-19  Torbjorn Granlund  <tege@swox.com>

	* tests/mpf/t-get_d.c: Print message before aborting.

	* mpn/generic/hgcd2.c (mpn_hgcd2): Substitute always-zero variable
	with 0.  Remove bogus comment.

	* mpn/generic/get_d.c: Make ONE_LIMB case actually work for nails.

2003-12-18  Niels Möller  <niels@lysator.liu.se>

	* mpn/generic/hgcd.c (hgcd_update_r): Assert that the output r2 is
	smaller than the input r1.

2003-12-18  Torbjorn Granlund  <tege@swox.com>

	* mpz/get_d.c: Don't include longlong.h.

	* tests/mpz/t-mul.c (ref_mpn_mul): Handle un == vn specially, to avoid
	a dummy r/w outside of allocated area.

2003-12-18  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/unicos.m4 (ALIGN): Add comments on what GCC does.

	* configure.in (fat setups), acinclude.m4 (GMP_INIT): Obscure
	include() from automake 1.8 aclocal.
	* acinclude.m4: Quote names in AC_DEFUN, for automake 1.8 aclocal.

2003-12-17  Niels Möller  <nisse@lysator.liu.se>

	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer) [nails]:
	Enabled code also for GMP_NAIL_BITS > 0.
	* tune/speed.c [nails]: Enable speed_mpn_hgcd and
	speed_mpn_hgcd_lehmer.
	* tune/tuneup.c (tune_hgcd) [nails]: Likewise.

	* mpn/generic/gcd.c [nails]: Use Schönhage's algorithm also for
	GMP_NAIL_BITS > 0.

	* mpn/generic/hgcd.c [nails]: Enable the code for GMP_NAIL_BITS > 0.
	(MPN_EXTRACT_LIMB) [nails]: Handle nails.
	(__gmpn_hgcd_sanity): Allocate temporaries on the heap, not on the
	stack. Also check that r[i] >= r[i+1].
	(mpn_hgcd2_lehmer_step) [nails]: Handle nails.
	(mpn_hgcd_lehmer): When we temporarily have r3 > r2, avoid
	trigging that assert in __gmpn_hgcd_sanity.
	(mpn_hgcd): Likewise.

	* mpn/generic/hgcd2.c (div2) [nails]: Alternative nail-aware
	version.
	(SUB_2): New macro of Kevin's, which reduces do sub_ddmmss in the
	non-nail case.
	(HGCD2_STEP): Use SUB_2, not sub_ddmmss. Added alternative version
	for K&R compilers.
	(mpn_hgcd2) [nails]: Use SUB_2, not sub_ddmmss. New nail-aware
	code for checking Jebelean's condition.

2003-12-13  Kevin Ryde  <kevin@swox.se>

	* mpq/get_d.c: Amend comments per mpn_get_d change.
	(limb2dbl): Remove, no longer used.

	* gmp-impl.h (DIVREM_1_NORM_THRESHOLD etc) [nails]: Correction to
	comments, MP_SIZE_T_MAX means preinv never.

	* gmp-impl.h (DIVEXACT_1_THRESHOLD, MODEXACT_1_ODD_THRESHOLD) [nails]:
	Remove overrides, divexact_1 and modexact_1 have been nailified.

	* mpz/inp_str.c (mpz_inp_str_nowhite): Use ASSERT_ALWAYS for EOF value
	requirement.

	* tests/refmpn.c (refmpn_rsh1add_n, refmpn_rsh1sub_n): Parens around
	GMP_NUMB_BITS - 1 with ">>", to quieten gcc -Wall.
	* tests/t-constants.c (main), tests/t-count_zeros.c (check_clz),
	tests/t-modlinv.c (one), tests/mpz/t-jac.c (try_si_zi),
	tests/mpq/t-get_d.c (check_onebit): : Correction to printfs.
	* tests/mpn/t-fat.c: Add <string.h> for memcpy.
	* tests/mpz/t-scan.c (check_ref): Remove unused variable "isigned".
	* tests/mpq/t-get_d.c (check_onebit): Remove unused variable "limit".
	* tests/mpf/t-set_si.c, tests/mpf/t-set_ui.c (check_data): Braces for
	initializers.
	* tests/devel/try.c (mpn_divexact_by3_fun, mpn_modexact_1_odd_fun):
	Correction to return values.

	* doc/gmp.texi (Miscellaneous Integer Functions): Note mpz_sizeinbase
	can be used to locate the most significant bit.  Reword a bit for
	clarity.

2003-12-12  Niels Möller  <niels@lysator.liu.se>

	* mpn/generic/hgcd.c (__gmpn_hgcd_sanity): Fixed stack buffer
	overrun.
	* mpn/generic/hgcd.c: Improved comments.

2003-12-11  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h: Change asm => __asm__, tabify.
	* mpz/get_d_2exp.c: Likewise.
	* mpf/get_d_2exp.c: Likewise.

	* tests/cxx/t-ops.cc: #if .. #endif out tests that cause ambiguities.

2003-12-10  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-gcd.c: Generate operands with sizes as a geometric
	progression, to allow for larger operands and less varying timing.

	* tune/tuneup.c (tune_gcd_schoenhage): Set param.step_factor.
	(tune_hgcd): Likewise.

2003-12-10  Kevin Ryde  <kevin@swox.se>

	* demos/perl/test.pl: Should be $] for perl version in old perl.

	* configure.in (sparc64-*-*): Single block of gcc configs for all
	systems, on unknown systems try both ABI 32 and 64.

	* configure.in (LIBGMP_LDFLAGS, LIBGMPXX_LDFLAGS): New AC_SUBSTs with
	options to generate .def files with windows DLLs.
	* Makefile.am (libgmp_la_LDFLAGS, libgmpxx_la_LDFLAGS): Use them.

	* mpn/generic/gcd.c: Use ABOVE_THRESHOLD / BELOW_THRESHOLD, to follow
	convention and cooperate with tune/tuneup.c.

	* tune/tuneup.c (tune_gcd_schoenhage): Increase max_size to 3000, side
	default 1000 is approx the crossover point on athlon.

	* tune/common.c, tune/speed.c, tune/speed.h, tune/speed-ext.c,
	tune/tuneup.c (SPEED_TMP_ALLOC_LIMBS): Take variable as parameter
	rather than returning a value, avoids alloca in a function call.
	* tune/common.c, tune/speed.h (speed_tmp_alloc_adjust): Remove, now
	inline in SPEED_TMP_ALLOC_LIMBS, and using ptr-NULL for alignment
	extraction.

	* gmpxx.h (__gmp_binary_equal, __gmp_binary_not_equal,
	__gmp_binary_less, __gmp_binary_less_equal, __gmp_binary_greater,
	__gmp_binary_greater_equal, __gmp_cmp_function): Use mpfr_cmp_si and
	mpfr_cmp_d.
	* tests/cxx/t-ops.cc: Exercise this.

	* demos/perl/Makefile.PL: Don't install sample.pl and test2.pl.

	* demos/perl/GMP.xs (use_sv): Prefer PV over IV or NV to avoid any
	rounding.
	* demos/perl/test.pl: Exercise this.

	* demos/perl/GMP/Mpf.pm (overload_string): Corrections to $# usage.
	* demos/perl/test.pl: Exercise this.

2003-12-08  Kevin Ryde  <kevin@swox.se>

	* demos/perl/GMP.pm: Correction to canonicalize example.

	* demos/perl/GMP.xs: New type check scheme, support magic scalars,
	support UV when available.  Remove some unused local variables.
	(coerce_long): Check range of double.
	(get_d_2exp): Remove stray printf.

	* demos/perl/test.pl: Exercise magic, rearrange to make it clearer
	what's being tested.

2003-12-07  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/hgcd.c (mpn_hgcd): Use BELOW_THRESHOLD, to follow the
	convention of N<THRESH for the lower algorithm, not <=.  Fixes
	algorithm selection in tuneup.c.

	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): Use intended
	align_xp, align_yp.

	* tune/tuneup.c (mul_toom3_threshold): Use MUL_TOOM3_THRESHOLD_LIMIT,
	for the benefit of ASSERT in mpn_mul_n.

	* tune/tuneup.c (tune_mul): Correction to toom3 param.min_size, should
	use MPN_TOOM3_MUL_N_MINSIZE.

	* tune/speed.c (check_align_option): Correction to printf format.
	* tune/freq.c (freq_sysctl_hw_model): Remove unused "i" variable.

	* scanf/doscan.c: Correction to a couple of trace printfs.
	Add <stdlib.h> for strtol.

	* tests/misc/t-scanf.c (test_sscanf_eof_ok): New function.
	(check_misc): Use it to suppress tests broken by libc.
	And should be EOF rather than -1 in various places.

2003-12-06  Torbjorn Granlund  <tege@swox.com>

	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer):
	Move SPEED_TMP_ALLOC_LIMBS invocations out from calls.

	* mpn/generic/get_str.c (mpn_get_str, POW2_P case):
	Don't append extra '\0' byte.

2003-12-05  Niels Möller  <niels@lysator.liu.se>

	* tune/common.c (speed_mpn_hgcd_lehmer, speed_mpn_hgcd):
	Updated for the renaming hgcd_sanity -> ASSERT_HGCD.

	* mpn/generic/gcd.c (gcd_schoenhage): TMP_DECL must be the final
	declaration in the declaration section of a block.

	* tune/speed.h (mpn_gcd_accel): Added prototype.

2003-12-05  Torbjorn Granlund  <tege@swox.com>

	* randmt.c (__gmp_mt_recalc_buffer): Put parens around "&" expressions
	inside "!=".

	* mpf/get_str.c: Remove unused variable "fracn".

2003-12-03  Kevin Ryde  <kevin@swox.se>

	* configure.in, Makefile.am (LIBGMP_LDFLAGS, LIBGMPXX_LDFLAGS): New
	AC_SUBSTs, use them to create .def files with Windows DLLs.
	* doc/gmp.texi (Notes for Particular Systems): Update notes on mingw
	DLL with MS C.

	* mpz/export.c: Allow NULL for countp.
	* doc/gmp.texi (Integer Import and Export): Describe this.
	Suggested by Jack Lloyd.

	* mpn/x86/p6/aors_n.asm: New file, grabbing the K7 code.
	Superiority of this reported by Patrick Pelissier.

2003-11-30  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/ev67/popcount.asm, mpn/alpha/ev67/hamdist.asm: New files.

	* mpn/alpha/ev67: New directory.
	* configure.in (alphaev67, alphaev68, alphaev7*): Use it.

	* doc/gmp.texi (GMPrefu, GMPpxrefu): Change back to plain ref and
	pxref, remove macros.
	(GMPreftopu, GMPpxreftopu): Remove URL parameter, rename to GMPreftop
	and GMPpxreftop.
	(Debugging): Remove debauch, seems to have disappeared.
	(Language Bindings): Corrections to URLs for CLN, Omni F77, Pike.

2003-11-29  Kevin Ryde  <kevin@swox.se>

	* demos/perl/GMP/Mpf.pm (overload_string): Use $OFMT to avoid warnings
	about $#.

	* demos/perl/GMP.xs (fits_slong_p): Use LONG_MAX+1 to avoid possible
	rounding of 0x7F..FF in a double on 64-bit systems.

	* configure.in (ppc601-*-*): Remove this case, it never matched
	anything, the name adopted is powerpc601.
	(powerpc601-*-*): Use gcc -mcpu=601, xlc -qarch=601.

	* configure.in: Introduce ${cc}_cflags_maybe, used if they work.
	(*sparc*-*-*) [ABI=32]: Add gcc_cflags_maybe=-m32 to force that mode.

	* doc/gmp.texi (Introduction to GMP): Add AMD64 to optimizations list.
	(Build Options): Add cpu types alphaev7 and amd64.  Update texinfo
	html cross reference.

2003-11-28  Niels Möller  <nisse@lysator.liu.se>

	* tune/tuneup.c (tune_hgcd): Disable if GMP_NAIL_BITS > 0.
	* tune/speed.c (routine): Likewise.
	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): Likewise.

	* mpn/generic/gcd.c, mpn/generic/hgcd.c, mpn/generic/hgcd2.c
	[GMP_NAIL_BITS]: Disabled new code if we have nails.

	* mpn/generic/gcd.c (MPN_LEQ_P): Copied macro definition (needed
	for compilation with --enable-assert).

	* tune/tuneup.c (hgcd_schoenhage_threshold,
	gcd_schoenhage_threshold): New variables.
	(tune_hgcd, tune_gcd_schoenhage): New functions.
	(all): Call tune_hgcd and tune_gcd_schoenhage.

	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer)
	(speed_mpn_gcd_accel): New functions.
	* tune/speed.c (routine): Added mpn_hgcd, mpn_hgcd_lehmer and
	mpn_gcd _accel.
	* tune/speed.h: Added corresponding prototypes.

	* tune/gcd_accel.c: New file.

	* tune/gcd_bin.c (GCD_SCHOENHAGE_THRESHOLD): Set to MP_SIZE_T_MAX.

	* tune/Makefile.am (libspeed_la_SOURCES): Added gcd_accel.c.
	(TUNE_MPN_SRCS_BASIC): Added hgcd.c.

	* mpn/x86/k7/gmp-mparam.h (HGCD_SCHOENHAGE_THRESHOLD)
	(GCD_SCHOENHAGE_THRESHOLD): Tuned values.

	* mpn/generic/gcd.c (mpn_gcd, gcd_binary_odd): Renamed the
	old mpn_gcd function (which implements accelerated binary gcd) to
	gcd_binary_odd.
	(gcd_binary): New function, with the additional book keeping
	needed when using gcd_binary_odd to compute the gcd of non-odd
	numbers.
	(hgcd_tdiv): New function.
	(gcd_lehmer): New function, currently #if:ed out.
	(hgcd_start_row_p): New function, duplicated from hgcd.c.
	(gcd_schoenhage_itch): New function.
	(gcd_schoenhage): New function.
	(mpn_gcd): New advertised gcd function, which calls
	mpn_gcd_binary_odd or mpn_gcd_schoenhage, depending on the size of
	the input.

	* mpn/generic/hgcd.c (mpn_hgcd2_lehmer_step): Renamed function
	(was lehmer_step), and made non-static. Updated callers.

	* gmp-impl.h (GCD_LEHMER_THRESHOLD): #if:ed out this macro.
	(mpn_hgcd2_lehmer_step): Added prototype.

2003-11-27  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpz/t-gcd.c (gcd_values): Moved definition, so that we
	don't need to forward declare the array.

2003-11-26  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/hgcd.c (mpn_hgcd2_fix): Deleted duplicate definition
	(the function belongs to hgcd2.c).

2003-11-26  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-gcd.c: Generate random operands up to 32767 bits;
	decrease # of test to 1000.
	(gcd_values): Remove oversize test case.

2003-11-26  Niels Möller  <niels@lysator.liu.se>

	* gmp-impl.h: Added name mangling for hgcd-related functions. Also
	use __GMP_PROTO.
	(MPN_LEQ_P, MPN_EXTRACT_LIMB): Moved macros to hgcd.c.
	* mpn/generic/hgcd.c, mpn/generic/hgcd2.c, mpn/generic/qstack.c:
	Adapted to name changes.

	* tests/mpz/t-gcd.c (main): Added some tests with non-random
	input.

2003-11-25  Niels Möller  <nisse@lysator.liu.se>

	* gmp-impl.h (MPN_LEQ_P, MPN_EXTRACT_LIMB): New macros.
	(struct qstack, struct hgcd2_row, struct hgcd2, struct hgcd_row)
	(struct hgcd): New structs. Also added prototypes for new hgcd,
	hgcd2, qstack and gcd functions.

	* configure.in (gmp_mpn_functions): Added hgcd2, hgcd and qstack.

	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Added hgcd2.c,
	hgcd.c and qstack.c.

	* mpn/generic/hgcd.c, mpn/generic/hgcd2.c, mpn/generic/qstack.c:
	New files, needed for the sub-quadratic gcd.

2003-11-25  Kevin Ryde  <kevin@swox.se>

	* doc/gmp.texi (Language Bindings): Add Axiom.

2003-11-22  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/README: More notes on assembler syntax variations.

	* mpn/alpha/alpha-defs.m4, mpn/alpha/unicos.m4 (unop): Should be ldq_u
	not bis, and move to alpha-defs.m4 since it can be happily used
	everywhere.

	* mpn/alpha/alpha-defs.m4, mpn/alpha/default.m4, mpn/alpha/unicos.m4
	(bigend): Move to alpha-defs.m4 and base it on HAVE_LIMB_BIG_ENDIAN or
	HAVE_LIMB_LITTLE_ENDIAN, so as not to hard code system endianness.

	* mpn/alpha/alpha-defs.m4: New file.
	* configure.in (alpha*-*-*): Use it.

2003-11-21  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr-2-0-2-branch 2003-11-21.

	* mpn/alpha/ev5/com_n.asm: Change "not" to "ornot r31", since "not"
	isn't recognised by on Cray Unicos.  Add missing "gp" to PROLOGUE.
	* mpn/alpha/README: Add a note on "not".

2003-11-19  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/aorslsh1_n.asm: Slightly rework feed-in code, avoiding
	spurious reads beyond operand limits.

	* mpn/alpha/ev5/com_n.asm: Add ASM_START/ASM_END.

	* mpn/generic/mul_fft.c (mpn_fft_zero_p): Remove unused function.
	(mpn_lshift_com): Make static, nailify properly.

2003-11-19  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/diveby3.c: Use a "q" variable to make it clearer what
	the code is doing.

	* mpn/powerpc32/750/lshift.asm, mpn/powerpc32/750/rshift.asm: New
	files.

	* mpn/alpha/ev5/com_n.asm: New file.

	* doc/gmp.texi (Assembler Functional Units, Assembler Writing Guide):
	New sections by Torbjorn, tweaked by me.

2003-11-17  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32: Add power4/powerpc970 cycle counts.
	Use cmpwi instead of cmpi to placate darwin.

2003-11-15  Kevin Ryde  <kevin@swox.se>

	* config.guess: Add comments on MacOS "machine" command.

	* tests/devel/try.c (main): Use gmp_randinit_default explicitly on
	__gmp_rands, since RANDS doesn't allow seeding.

	* doc/gmp.texi (Assigning Integers): Remove notes on possible change
	to disallow whitespace, this would be an incompatible change and
	really can't be made.
	(Toom 3-Way Multiplication): Updates for Paul's new code.

	* mpn/generic/mul_n.c (toom3_interpolate, mpn_toom3_mul_n): Put
	if/else braces around whole of #if code, for readability.

	* tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n,
	refmpn_rsh1add_n, refmpn_rsh1sub_n): Add ASSERTs for operand overlaps
	etc.

	* mpfr/*: Update to mpfr-2-0-2-branch 2003-11-15.

2003-11-14  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/aorslsh1_n.asm: Use Cray-friendly syntax for "br".

2003-11-13  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/aorslsh1_n.asm: New file.

2003-11-12  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_PROG_CC_WORKS): Add case provoking AIX power2
	assembler, test code by Torbjorn.
	* configure.in (power*-*-*): Add a comment about -mcpu=rios2 fallback.

	* tune/speed.c (main): Use gmp_randinit_default explicitly on
	__gmp_rands, since RANDS doesn't allow seeding.

	* mpfr/*: Update to mpfr-2-0-2-branch 2003-11-12.

	* gmp-impl.h, randmt.h (__gmp_randinit_mt_noseed): Move prototype to
	gmp-impl.h, for use by RANDS.

	* mpn/Makeasm.am (.s, .S, .asm): Quote $< in test -f, per automake.
	(.obj): Use test -f and $(CYGPATH_W) as per automake.

2003-11-11  Kevin Ryde  <kevin@swox.se>

	* configure.in: Make umul and udiv standard-optional objects, rather
	than under various extra_functions.

	* mpn/pa32/hppa1_1/pa7100/add_n.asm,
	mpn/pa32/hppa1_1/pa7100/addmul_1.asm,
	mpn/pa32/hppa1_1/pa7100/lshift.asm,
	mpn/pa32/hppa1_1/pa7100/rshift.asm,
	mpn/pa32/hppa1_1/pa7100/sub_n.asm,
	mpn/pa32/hppa1_1/pa7100/submul_1.asm: Use LDEF for labels.

	* mpf/set_str.c: Don't use memcmp for decimal point testing, just a
	loop is enough and avoids any chance of memcmp reading past the end of
	the given string.

	* randmts.c, randmt.h: New files.
	* Makefile.am (libgmp_la_SOURCES): Add them.
	* randmt.c: Move seeding to randmts.c, common defines in randmt.h.
	* gmp-impl.h (RANDS): Use __gmp_randinit_mt_noseed.
	* tests/misc.c (tests_rand_start): Use gmp_randinit_default
	explicitly, not RANDS.

	* mpn/ia64/ia64-defs.m4 (PROLOGUE_cpu): Use 32-byte alignment, for the
	benefit of itanium 2.
	* mpn/ia64/gcd_1.asm: Remove own .align 32.

	* mpn/ia64/ia64-defs.m4 (ALIGN): New define, using IA64_ALIGN_OK.
	* mpn/ia64/hamdist.asm: Use ALIGN instead of .align.

	* acinclude.m4 (GMP_ASM_IA64_ALIGN_OK): New macro.
	* configure.in (IA64_PATTERN): Use it.
	* mpn/ia64/README: Add notes on gas big endian align problem.

2003-11-10  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/mul_1.asm: Rewrite.

2003-11-08  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/aors_n.asm: Align loop to a multiple of 16.  Also align
	M4_function_n to a multiple of 16, to minimize alignment padding.
	Update P6 cycle counts reflecting improvements with new alignment.

2003-11-07  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (HAVE_HOST_CPU_alpha_CIX): New define.
	(ULONG_PARITY, popc_limb): Use it, to pick up ev7 as well as 67 and 68.
	* longlong.h (count_leading_zeros, count_trailing_zeros): Ditto.

	* doc/gmp.texi (Notes for Package Builds): Add notes on multi-ABI
	system packaging.
	(ABI and ISA): Add GNU/Linux ABI=64.
	(Binary GCD): Add notes on 1x1 GCD algorithms.

	* mpn/alpha/README: Add some literature references.

	* mpn/ia64/mode1o.asm: Various corrections to initial checkin.
	* mpn/ia64/ia64-defs.m4 (ASSERT): Correction to arg quoting.

2003-11-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/linux64.m4: New file.
	* configure.in (POWERPC64_PATTERN): Handle *-*-linux*.
	Use linux64.m4.

	* mpn/ia64/logops_n.asm: New file.

2003-11-05  Kevin Ryde  <kevin@swox.se>

	* tune/freq.c (freq_sysctl_hw_model): Relax to just look for "%u MHz",
	for the benefit of sparc cypress under netbsd 1.6.1.

	* mpfr/*: Update to mpfr-2-0-2-branch 2003-11-05.

	* mpn/alpha/ev5/dive_1.c: New file.

	* configure.in (x86_64-*-*): Accept together with amd64-*-*.

	* tune/speed.c: Check range of -x,-y,-w,-W alignment specifiers.
	* tune/speed.h (CACHE_LINE_SIZE): Amend comments.

2003-11-04  Torbjorn Granlund  <tege@swox.com>

	* tune/speed.c: Fix typo in testing HAVE_NATIVE_mpn_modexact_1_odd.

2003-11-03  Kevin Ryde  <kevin@swox.se>

	* mpn/ia64/hamdist.asm: New file.
	* mpn/ia64/mode1o.asm: New file.
	* mpn/ia64/ia64-defs.m4 (ASSERT): New macro.

	* tests/mpz/t-set_d.c (check_2n_plus_1): New test.

2003-11-01  Kevin Ryde  <kevin@swox.se>

	* mpz/fac_ui.c (BSWAP_ULONG) [limb==2*long]: Remove this case, it
	provokes code gen problems on HP cc.
	(BSWAP_ULONG) [generic]: Rename __dst variable to avoid conflicts with
	BITREV_ULONG.
	Fix by Jason Moxham.

	* mpn/powerpc32/mode1o.asm: Use 16-bit i*i for early out, no need to
	truncate divisor.  Amend stated 750/7400 speeds, and note operands
	that give the extremes.

	* mpz/set_d.c: Don't use a special case for d < MP_BASE_AS_DOUBLE, gcc
	3.3 -mpowerpc64 on darwin gets ulonglong->double casts wrong.

	* mpn/generic/diveby3.c: Show a better style carry handling in the
	alternative pipelined sample code.

	Revert this, the longlong.h macros need -mpowerpc64:
	* acinclude.m4 (GMP_GCC_POWERPC64): New macro.
	* configure.in (powerpc64-*-darwin*): Use it to exclude -mpowerpc64
	when bad.

2003-10-31  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/mode64/submul_1.asm: Move an instruction to save a
	cycle on POWER4.

	* mpn/powerpc64/mode64/divrem_1.asm: Fix several syntax problems
	revealed on Mac OS X.

	* mpn/powerpc64/mode64/*.asm: Add cycle counts for POWER4.

	* mpn/powerpc64/sqr_diagonal.asm: Rewrite to save a cycle on POWER4.

2003-10-31  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr-2-0-2-branch 2003-10-31.

	* mpn/powerpc64/README: Add subdirectory organisation notes.

	* tests/mpn/t-get_d.c: Don't use limits.h, LONG_MIN is wrong on gcc
	2.95 with -mcpu=ultrasparc.

	* acinclude.m4 (GMP_GCC_POWERPC64): New macro.
	* configure.in (powerpc64-*-darwin*): Use it to exclude -mpowerpc64
	when bad.

	* configure.in (powerpc64-*-darwin*) [ABI=mode32]: Use gcc -mcpu flags.

	* mpn/ia64/divrem_1.asm, mpn/ia64/gcd_1.asm: Use "C" for comments.
	* mpn/ia64/README, mpn/ia64/ia64-defs.m4: Note this.

	* mpn/ia64/ia64-defs.m4: Renamed from default.m4, per other defs files.
	* configure.in (IA64_PATTERN): Update GMP_INCLUDE_MPN.

	* doc/gmp.texi (Notes for Particular Systems): Remove m68k ABI notes
	for -mshort and PalmOS, now works.
	(References): Correction, GMP Square Root proof already there, just
	wanting URL from RRRR 4475.

2003-10-29  Kevin Ryde  <kevin@swox.se>

	* configure.in (sparc*-*-*): Use gcc -m32 when that option works, to
	force 32-bit mode on dual 32/64 configurations like GNU/Linux.
	(sparc64-*-linux*): Add support for ABI=64.

	* mpn/generic/pre_divrem_1.c: In fraction part, use CNST_LIMB(0) with
	udiv_qrnnd_preinv to avoid warning about shift > type.

	* mpfr/*: Update to mpfr-2-0-2-branch 2003-10-29.

	* tests/cxx/t-istream.cc: Avoid tellg() checks if putback() doesn't
	update that, avoids certain g++ 2.96 problems.

	* tests/mpn/t-fat.c: New file.
	* tests/mpn/Makefile.am (check_PROGRAMS): Add it.

	* configure.in (CPUVEC_INSTALL, ITERATE_FAT_THRESHOLDS): New macros
	for fat.h.
	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Use CPUVEC_INSTALL instead
	of memcpy.  Correction to location of "initialized" set.  Improve
	various comments.

2003-10-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/mul_1.asm: Change addcc => add in a few places.
	* mpn/sparc64/addmul_1.asm: Likewise.

	* mpn/sparc32/v9/mul_1.asm: Apply cross-jumping.
	* mpn/sparc32/v9/addmul_1.asm: Likewise.
	* mpn/sparc32/v9/submul_1.asm: Likewise.
	* mpn/sparc32/v9/sqr_diagonal.asm: Likewise.

2003-10-27  Kevin Ryde  <kevin@swox.se>

	* tests/cxx/t-misc.cc: Don't use <climits>, on g++ 2.95.4 (debian 3.0)
	-mcpu=ultrasparc LONG_MIN is wrong and kills the compile.

	* tests/cxx/t-istream.cc: Correction to tellg tests, don't assume
	streampos is zero based.

	* configure.in (HAVE_HOST_CPU_FAMILY_alpha): New define for config.h.
	* mpn/generic/get_d.c: Use it instead of __alpha for alpha workaround,
	since Cray cc doesn't define __alpha.

	* mpn/x86/README: Revise PIC coding notes a bit, add gcc visibility
	attribute.

2003-10-25  Kevin Ryde  <kevin@swox.se>

	* mpn/ia64/gcd_1.asm: New file.

	* tune/many.pl: Allow for PROLOGUE(fun,...), as used on alpha.

	* doc/gmp.texi (C++ Formatted Input): Describe base indicator handling.

	* tests/cxx/t-istream.cc: New file.
	* tests/cxx/Makefile.am: Add it.

	* cxx/ismpznw.cc: New file, integer input without whitespace ...
	* cxx/ismpz.cc: ... from here.
	* gmp-impl.h (__gmpz_operator_in_nowhite): Add prototype.
	* cxx/ismpq.cc: Rewrite using mpz input routines.  Change to accept a
	separate base indicator on numerator and denominator.  Fix base
	indicator case where "123/0456" would stop at "123/0".
	* Makefile.am, cxx/Makefile.am: Add cxx/ismpznw.cc.

	* tests/mpz/t-set_d.c: New file, derived from tests/mpz/t-set_si.c
	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.

	* mpn/m68k/lshift.asm, mpn/m68k/rshift.asm: Support 16-bit int and
	stack alignment.
	* mpn/m68k/README: Add notes on this.
	* configure.in (SIZEOF_UNSIGNED): New define in config.m4.
	* mpn/m68k/m68k-defs.m4 (m68k_definsn): Add cmpw, movew.
	Reported by Patrick Pelissier.

	* mpn/m68k/t-m68k-defs.pl: Don't use -> with hashes, to avoid
	deprecation warnings from perl 5.8.

	* configure.in (viac3-*-*): Use just x86/pentium in $path not x86/p6.
	If gcc is to be believed the old C3s don't have cmov.

	* Makefile.am: Amend comments about not building from libtool
	convenience libraries.

	* mpn/asm-defs.m4 (PROLOGUE): Use m4_file_seen, for correct filename
	in missing EPILOGUE error messages.
	(m4_file_seen): Amend comments about where used.

	* Makefile.am (CXX_OBJECTS): Remove $U, C++ files are not subject to
	ansi2knr rules.

	* gmp-h.in (mpn_divmod_1): Use __GMP_CAST, to avoid warnings in
	applications using g++ -Wold-style-cast.

	* mpn/z8000/README: New file.

2003-10-22  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/get_d.c (CONST_1024, CONST_NEG_1023,
	CONST_NEG_1022_SUB_53): Replace ALPHA_WORKAROUND with a non-gcc-ism,
	and use on Cray Unicos alpha too, which has the same problem.

	* configure.in (powerpc64-*-darwin*): Make ABI=32 available as the
	final fallback, remove mode64 until we know how it will work.

	* doc/gmp.texi (Build Options): Add powerpc970 to available CPUs.
	(ABI and ISA): Add mode32 for Darwin.

	* configure.in (gettimeofday): Use an explicit AC_TRY_LINK, to avoid
	known autoconf 2.57 problems with gettimeofday in AC_CHECK_FUNCS on
	HP-UX.

	* configure.in (powerpc*-*-*): Use ABI=32 instead of ABI=standard for
	the default 32-bit ABI.  Fixes powerpc64-*-aix* which is documented as
	choices "aix64 32" but had "aix64 standard".

	* mpfr/*: Update to mpfr-2-0-2-branch 2003-10-22.

	* doc/gmp.texi (Notes for Particular Systems): Note m68k gcc -mshort
	and PalmOS calling conventions not supported.  Reported by Patrick
	Pelissier.
	(References): Add Paul Zimmermann's Inria 4475 paper.

2003-10-21  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/submul_1.asm: Slightly reschedule loop to accommodate
	Itanium 2 getf.sig latency.

2003-10-21  Kevin Ryde  <kevin@swox.se>

	* tests/mpn/t-instrument.c: Add mpn_addlsh1_n, mpn_rsh1add_n,
	mpn_rsh1sub_n, mpn_sub_nc, mpn_sublsh1_n.  Typo in mpn_preinv_divrem_1
	conditional.

2003-10-20  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/mode32/add_n.asm: New file.
	* mpn/powerpc64/mode32/sub_n.asm: New file.
	* mpn/powerpc64/mode32/mul_1.asm: New file.
	* mpn/powerpc64/mode32/addmul_1.asm: New file.
	* mpn/powerpc64/mode32/submul_1.asm: New file.

2003-10-19  Torbjorn Granlund  <tege@swox.com>

	* longlong.h (AMD64): __x86_64__ => __amd64__.
	(64-bit powerpc): Only define carry-dependent macros if
	!_LONG_LONG_LIMB.

	* acinclude.m4 (POWERPC64_PATTERN): Add powerpc970-*-*.

	* configure.in (POWERPC64_PATTERN): Handle *-*-darwin*.
	(POWERPC64_PATTERN, *-*-aix*): Prepend powerpc64/mode64 to path_aix64.

	* mpn/powerpc64/mode64/mul_1.asm: Change cal => addi.
	* mpn/powerpc64/mode64/addmul_1.asm: Likewise.
	* mpn/powerpc64/mode64/submul_1.asm: Likewise.
	* mpn/powerpc64/sqr_diagonal.asm: Likewise.

	* mpn/powerpc64/mode64/mul_1.asm: Move from "..".
	* mpn/powerpc64/mode64/addmul_1.asm: Likewise.
	* mpn/powerpc64/mode64/submul_1.asm: Likewise.
	* mpn/powerpc64/mode64/divrem_1.asm: Likewise.
	* mpn/powerpc64/mode64/rsh1sub_n.asm: Likewise.
	* mpn/powerpc64/mode64/add_n.asm: Likewise.
	* mpn/powerpc64/mode64/addsub_n.asm: Likewise.
	* mpn/powerpc64/mode64/sub_n.asm: Likewise.
	* mpn/powerpc64/mode64/addlsh1_n.asm: Likewise.
	* mpn/powerpc64/mode64/diveby3.asm: Likewise.
	* mpn/powerpc64/mode64/rsh1add_n.asm: Likewise.
	* mpn/powerpc64/mode64/sublsh1_n.asm: Likewise.

	* mpn/powerpc64/lshift.asm: Handle mode32 ABI.
	* mpn/powerpc64/rshift.asm: Likewise.
	* mpn/powerpc64/umul.asm: Likewise.

	* tune/powerpc64.asm: Make it actually work.

2003-10-19  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/get_d.c: Add a workaround for alpha gcc signed constant
	comparison bug.

	* gmpxx.h (gmp_randclass gmp_randinit_lc_2exp_size constructor): Throw
	std::length_error if size is too big.
	* tests/cxx/t-rand.cc (check_randinit): Exercise this.

	* mpn/x86/pentium4/sse2/addlsh1_n.asm: New file, derived in part from
	mpn/x86/pentium4/sse2/add_n.asm.

	* doc/gmp.texi (C++ Interface Integers, C++ Interface Rationals, C++
	Interface Floats): Note std::invalid_argument exception for invalid
	strings to constructors and operator=.
	(C++ Interface Random Numbers): Note std::length_error exception for
	size too big in gmp_randinit_lc_2exp_size.

2003-10-18  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr-2-0-2-branch 2003-10-18.

	* gmpxx.h (mpz_class, mpq_class, mpf_class, mpfr_class constructors
	and operator= taking string or char*): Throw std::invalid_argument if
	string cannot be converted.
	* tests/cxx/t-constr.cc, tests/cxx/t-assign.cc: Exercise this.

	* cxx/ismpz.cc, cxx/ismpq.cc, cxx/ismpf.cc: Use istream std::locale
	ctype facet for isspace when available.  Only accept space at the
	start of the input, same as g++ libstdc++.  Use ASSERT_NOCARRY to
	check result of mpz_set_str etc.
	* cxx/ismpf.cc: Don't accept "@" for exponent indicator.

	* tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Remove
	_open and _mpn variants of mpn_toom3_mul_n, only one style now.
	* tune/mul_n_open.c, tune/mul_n_mpn.c: Remove files.

	* gmp-impl.h (LIMB_HIGHBIT_TO_MASK): New macro.
	(udiv_qrnnd_preinv2, udiv_qrnnd_preinv2gen): Use it.

	* tests/mpz/t-import.c, tests/mpz/t-export.c: Use octal for character
	constants, hex is an ANSI-ism.

	* mpn/alpha/ev5/mode1o.c: Corrections to ASSERTs, as per
	mpn/generic/mode1o.c.

	* mpn/generic/diveby3.c: Add commented out alternative code and notes
	for taking the multiply off the dependent chain.  Amend/clarify some
	of the other comments.

	* configure.in (powerpc970-*-*): Use gcc -mcpu=970 when available.
	(powerpc7400-*-*): Fallback on gcc -mcpu=750 if -mcpu=7400 not
	available.

	* doc/gmp.texi (C++ Formatted Input): Note locale digit grouping not
	supported.
	(C++ Formatted Input, C++ Formatted Output): Cross reference class
	interface on overloading.

	* mpn/m68k/README: Add various ideas from doc/tasks.html.

	* mpn/m88k/README: New file.

2003-10-16  Torbjorn Granlund  <tege@swox.com>

	* config.sub: Recognize powerpc970.

2003-10-15  Torbjorn Granlund  <tege@swox.com>

	* config.guess: Recognize powerpc970 under MacOS.

2003-10-15  Kevin Ryde  <kevin@swox.se>

	* configure.in, acinclude.m4 (GMP_C_RIGHT_SHIFT): New test.
	* gmp-impl.h (LIMB_HIGHBIT_TO_MASK): New macro.
	(udiv_qrnnd_preinv2, udiv_qrnnd_preinv2gen): Use it.

	* mpn/amd64/amd64-defs.m4: New file, with a non-aligning PROLOGUE.
	* configure.in (amd64-*-*): Use it.
	* mpn/amd64/addlsh1_n.asm: Add ALIGN(16).

	* mpfr/*: Update to mpfr cvs 2003-10-15.

	* mpn/generic/get_d.c: Rewrite, simplifying and truncating towards
	zero unconditionally.
	* tests/mpn/t-get_d.c: Add various further tests.
	* gmp-impl.h (FORCE_DOUBLE): New macro.

	* gmp-h.in (__mpz_struct): Add comment on __mpz_struct getting into
	C++ mangled function names.

	* doc/gmp.texi (Build Options): Update notes for new doc subdir.
	(Low-level Functions): Note mpn functions don't check for zero limbs
	etc, it's up to an application to strip.

	* doc/configuration (Configure): mdate-sh now in doc subdir, add
	generated fat.h.

2003-10-14  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/lorrshift.asm: Rewrite.

	* mpn/ia64/diveby3.asm: Remove explicit bundling; add branch hints.

2003-10-13  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/diveby3.asm: New file.

2003-10-13  Kevin Ryde  <kevin@swox.se>

	* mpn/powerpc32/mod_34lsub1.asm: New file.

	* mpn/powerpc32/diveby3.asm, mpn/powerpc64/diveby3.asm: src[] in
	second operand of mullw, to allow possible early-out, which the
	0xAA..AB inverse cannot give.  This improvement noticed by Torbjorn.

	* acinclude.m4 (GMP_ASM_LSYM_PREFIX): Print to config.log whether
	local label is purely temporary or appears in object files, for
	development purposes.

	* doc/gmp.texi, doc/fdl.texi, doc/texinfo.tex, doc/mdate-sh: Moved
	from top-level.
	* doc/Makefile.am: New file.
	* configure.in (AC_OUTPUT): Add doc/Makefile.
	* Makefile.am (SUBDIRS): Move doc subdirectory from EXTRA_DIST.
	(info_TEXINFOS, gmp_TEXINFOS): Moved to doc/Makefile.am.
	* mpfr/Makefile.am (mpfr_TEXINFOS): fdl.texi now in doc subdir.
	(TEXINFO_TEX): texinfo.tex now in doc subdir.
	(AM_MAKEINFOFLAGS): Set -I to doc subdir.

	* mpz/and.c: For positive/positive, use mpn_and_n, rate a realloc as
	UNLIKELY.

	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Don't test
	for high zero limbs.

2003-10-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/diveby3.asm: New file (trivial edits of
	powerpc32/diveby3.asm).

	* mpn/powerpc32/diveby3.asm: Update cycle counts with more processors.
	* mpn/powerpc32/sqr_diagonal.asm: Likewise.

	* mpn/pa64/add_n.asm: Correct PA8500 cycle counts.
	* mpn/pa64/sub_n.asm: Likewise.

	* mpn/m68k/aors_n.asm (INPUT PARAMETERS): Fix typo.
	* mpn/m68k/lshift.asm: Likewise.
	* mpn/m68k/rshift.asm: Likewise.

	* mpn/m68k/README: Correct an URL; add some STATUS comments.

	* mpn/ia64/aorslsh1_n.asm: Avoid shrp when shl/shr works just as well.

	* mpn/powerpc32/addlsh1_n.asm: New file.
	* mpn/powerpc32/sublsh1_n.asm: New file.

2003-10-12  Kevin Ryde  <kevin@swox.se>

	* mpn/sparc64/divrem_1.c, mpn/sparc64/mod_1.c: New files.
	* mpn/sparc64/sparc64.h (HALF_ENDIAN_ADJ, count_leading_zeros_32,
	invert_half_limb, udiv_qrnnd_half_preinv): New macros.

	* gmp-impl.h (udiv_qrnnd_preinv2): Use a ? : for getting the n1 bit,
	so as not to depend on signed right shifts being arithmetic.

	* mpn/powerpc32/diveby3.asm: New file.

	* mpn/generic/divrem_1.c: Use CNST_LIMB(0) to avoid warnings from
	udiv_qrnnd_preinv about shift count when int<long.  Do the same with
	udiv_qrnnd, for consistency.

	* Makefile.am (install-data-hook): Print a warning recommending "make
	check" to watch out for compiler bugs.  Proposed by Torbjorn.

	* mpn/ia64/README (mpn_lshift, mpn_rshift): Amend prospective itanium2
	speed, 0.75 c/l with shrp plus shl/shr.

	* mpn/ia64/popcount.asm: Add comment on optimality.

2003-10-11  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/rsh1aors_n.asm: New file.

	* mpn/asm-defs.m4: Handle rsh1aors_n.

	* configure.in (tmp_mulfunc): Handle rsh1aors_n.

2003-10-11  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium4/sse2/diveby3.asm: Remove non-PIC RODATA memory
	access for 0xAAAAAAAB constant.

	* gmp-impl.h (popc_limb, ULONG_PARITY) [ev67, ev68]: Add gcc asm
	versions using ctpop.

	* mpn/x86/k6/aorsmul_1.asm: Tweak some comments, remove M4_description
	and M4_desc_retval used only in comments.

	* mpn/x86/k6/mul_basecase.asm: Add comment on using mpn_mul_1.

2003-10-09  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/addlsh1_n.asm: Tweak for 0.25 c/l better loop speed.
	* mpn/powerpc64/sublsh1_n.asm: Likewise.

2003-10-09  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-10-09.

	* tests/devel/try.c (_SC_PAGESIZE): Define from _SC_PAGE_SIZE on
	systems which use that, eg. hpux 9.

2003-10-07  Kevin Ryde  <kevin@swox.se>

	* tune/freq.c (freq_sysctl_hw_model): Correction to last sscanf change.

	* configure.in: Check for psp_iticksperclktick in struct pst_processor.
	* tune/freq.c (freq_pstat_getprocessor): Use this.

	* tests/devel/try.c (divisor_array): Add a couple of half-limb values.

	* acinclude.m4 (GMP_PROG_CC_WORKS): Correction to last change, need to
	set result "yes" when cross compiling.

2003-10-06  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_n.c: Use __GMPN_ADD_1/_GMPN_SUB_1 instead of
	mpn_add_1 and mpn_sub_1.

	* mpn/pa64/aorslsh1_n.asm: Schedule register save and restore code.

2003-10-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/pa64/mul_1.asm: Misc comment cleanups.
	* mpn/pa64/addmul_1.asm: Likewise.
	* mpn/pa64/submul_1.asm: Likewise.

	* mpn/pa64/README: Correct cycle counts.

	* mpn/pa64/aorslsh1_n.asm: New file.

2003-10-04  Kevin Ryde  <kevin@swox.se>

	* tune/freq.c (freq_sysctl_hw_model, freq_sunos_sysinfo,
	freq_sco_etchw, freq_bsd_dmesg, freq_irix_hinv): Demand matching of
	MHz etc at end of sscanf format string.  In particular need this for
	freq_bsd_dmesg on i486-pc-freebsd4.7 to avoid the 486 cpu being used
	for the frequency.

	* tests/misc.c, tests/tests.h (tests_setjmp_sigfpe,
	tests_sigfpe_handler, tests_sigfpe_done, tests_sigfpe_target,
	tests_dbl_mant_bits): New.

	* configure.in (viac3*-*-*): Add gcc VIA c3 options.

	* mpfr/*: Update to mpfr cvs 2003-10-04.

	* tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n,
	refmpn_rsh1add_n, refmpn_rsh1sub_n): Add ASSERTs for operand overlaps.
	* tests/tests.h (refmpn_addlsh1_n, refmpn_sublsh1_n, refmpn_rsh1add_n,
	refmpn_rsh1sub_n): Add prototypes.

	* tests/devel/try.c, tune/many.pl: Add mpn_addlsh1_n, mpn_sublsh1_n,
	mpn_rsh1add_n, mpn_rsh1sub_n.

2003-10-03  Torbjorn Granlund  <tege@swox.com>

	* tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n, refmpn_rsh1add_n,
	refmpn_rsh1sub_n): New functions.

2003-10-03  Paul Zimmermann  <Paul.Zimmermann@loria.fr>

	* mpn/generic/mul_n.c (toom3_interpolate): Use mpn_add_1/mpn_sub_1
	instead of MPN_INCR_/MPN_DECR_U.

2003-10-02  Torbjorn Granlund  <tege@swox.com>

	* configure.in (ia64*-*-hpux*): Fall back to +O1, not +O.

2003-10-02  Kevin Ryde  <kevin@swox.se>

	* configure.in (ia64*-*-hpux*): For cc, let +O optimization level
	fallback if +O3 doesn't work.

	* acinclude.m4 (GMP_PROG_CC_WORKS): Add a test of __builtin_alloca
	when available, to pick up Itanium HP-UX cc internal errors in +O2.
	Provoking code by Torbjorn.

2003-10-01  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/gmp-mparam.h: Retune.

	* mpn/asm-defs.m4: Handle aorslsh1_n.

	* configure.in (tmp_mulfunc): Handle aorslsh1_n.

	* mpn/ia64/aorslsh1_n.asm: New file.

	* mpn/ia64/aors_n.asm: New file, complete rewrite of mpn_add_n and
	mpn_sub_n.
	* mpn/ia64/add_n.asm: Replace by aors_n.asm.
	* mpn/ia64/sub_n.asm: Replace by aors_n.asm.

2003-10-01  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Make bad ARM last byte into a
	separate case and consider it non-IEEE, since it looks like this is
	due to some sort of restricted or incorrect software floats.

	* demos/calc/Makefile.am: Use automake yacc/lex support, seems fine in
	separate objdir now.

	* cxx/dummy.cc: Moved from top-level dummy.cc.
	* Makefile.am (libgmpxx_la_SOURCES): Update to cxx/dummy.cc,
	correction to comment about this.

2003-09-30  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c: Correct documentation of -split.
	(TIME): Remove cast of result to double.
	(main): Change timing variables to int.
	(main): #ifdef LIMIT_RESOURCE_USAGE, don't convert numbers of more than
	100000 digits.

2003-09-28  Torbjorn Granlund  <tege@swox.com>

	* mpn/*/*.asm: Clean up spacing, tabify.

	* mpn/alpha/rshift.asm: Table cycle counts.
	* mpn/alpha/lshift.asm: Likewise.
	* mpn/alpha/ev5/rshift.asm: Likewise.
	* mpn/alpha/ev5/lshift.asm: Likewise.
	* mpn/alpha/ev6/add_n.asm: Likewise.
	* mpn/alpha/ev6/sub_n.asm: Likewise.

	* mpn/ia64/lorrshift.asm: Amend comments about performance.

	* mpn/pa64/mul_1.asm: Fix comment typo.
	* mpn/pa64/addmul_1.asm: Likewise.
	* mpn/pa64/submul_1.asm: Likewise.

	* mpn/amd64/addlsh1_n.asm: Save/restore carry using two insn to break
	recurrency.  Add remarks about possible further speedup.
	* mpn/amd64/sublsh1_n.asm: Likewise.

	* mpn/amd64/rsh1add_n.asm: Add remarks about possible further speedup.
	* mpn/amd64/rsh1sub_n.asm: Likewise.

2003-09-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/README: Update with POWER4/PPC970 pipeline info.

	* mpn/powerpc64/rsh1add_n.asm: New file.
	* mpn/powerpc64/rsh1sub_n.asm: New file.
	* mpn/powerpc64/rshift.asm: Rewrite.
	* mpn/powerpc64/lshift.asm: Rewrite.

2003-09-26  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/addlsh1_n.asm: New file.
	* mpn/powerpc64/sublsh1_n.asm: New file.

2003-09-25  Torbjorn Granlund  <tege@swox.com>

	* tune/common.c (speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
	speed_mpn_rsh1add_n, speed_mpn_rsh1sub_n): Conditionalize on
	corresponding HAVE_NATIVE_*.

2003-09-25  Kevin Ryde  <kevin@swox.se>

	* mpz/combit.c: Use GMP_NUMB_BITS not BITS_PER_MP_LIMB.

	* demos/expr/exprfr.c: Allow for mpfr_inf_p, mpfr_nan_p and
	mpfr_number_p merely returning non-zero, rather than 1 or 0.

	* demos/expr/exprfr.c, demos/expr/t-expr.c: Add erf, integer_p, zeta.

	* demos/expr/Makefile.am (LDADD): Update comments on $(LIBM).

2003-09-24  Torbjorn Granlund  <tege@swox.com>

	* tune/speed.c (routine): Add entries for mpn_addlsh1_n, mpn_sublsh1_n,
	mpn_rsh1add_n, and mpn_rsh1sub_n.

	* tune/speed.h: Declare speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
	speed_mpn_rsh1add_n, and speed_mpn_rsh1sub_n.

	* tune/common.c (speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
	speed_mpn_rsh1add_n, speed_mpn_rsh1sub_n): New functions.

	* gmp-impl.h: Declare mpn_addlsh1_n, mpn_sublsh1_n, mpn_rsh1add_n, and
	mpn_rsh1sub_n.

	* mpn/asm-defs.m4: Add define_mpn's for addlsh1_n, sublsh1_n,
	rsh1add_n, and rsh1sub_n.

	* mpn/powerpc64/*.asm: Add cycle counts in consistent style.  Misc
	styling edits.

	* mpn/amd64/gmp-mparam.h: Retune.

	* configure.in: Add #undefs for HAVE_NATIVE_mpn_addlsh1_n,
	HAVE_NATIVE_mpn_sublsh1_n, HAVE_NATIVE_mpn_rsh1add_n,
	HAVE_NATIVE_mpn_rsh1sub_n.
	(gmp_mpn_functions_optional): List addlsh1_n, sublsh1_n, rsh1add_n,
	and rsh1sub_n.

	* mpn/amd64/addlsh1_n.asm: New file.
	* mpn/amd64/sublsh1_n.asm: New file.
	* mpn/amd64/rsh1add_n.asm: New file.
	* mpn/amd64/rsh1sub_n.asm: New file.

2003-09-24  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-09-24.

	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Remove conftest* temporary files.

2003-09-23  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (MUL_TOOM3_THRESHOLD, SQR_TOOM3_THRESHOLD): Now 128.

2003-09-23  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in (gmp_randinit_set): Use __gmp_const rather than const.

2003-09-22  Torbjorn Granlund  <tege@swox.com>

	* tune/mul_n_mpn.c: (__gmpn_sqr_n): New #define.
	* tune/mul_n_open.c (__gmpn_sqr_n): New #define.

	* mpn/generic/mul.c (mpn_sqr_n): Move from here...
	* mpn/generic/mul_n.c (mpn_sqr_n): ...to here.
	(mpn_sqr_n): Allocate workspace for toom3 using TMP_* mechanism except
	for very large operands when !WANT_FFT.

	* mpn/generic/mul_n.c: Add a missing ";". Misc comment fixes.

	* mpn/generic/mul.c: Remove spurious #include <stdio.h>.

	* mpn/x86/k7/gmp-mparam.h: Retune.

	* mpn/generic/mul_n.c (mpn_mul_n): Allocate workspace for toom3 using
	TMP_* mechanism except for very large operands when !WANT_FFT.

	* gmp-impl.h (MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_SQR_N_TSIZE):
	Define conditionally on WANT_FFT and HAVE_NATIVE_mpn_sublsh1_n.
	(MPN_TOOM3_MAX_N): New #define.

	* mpn/amd64/gmp-mparam.h: Retune.

	* mpn/Makefile.am (TARG_DIST): Add amd64.

	* mpn/generic/sqr_basecase.c: Use mpn_addlsh1_n when available.

	* mpn/generic/mul_n.c: Use proper form for HAVE_NATIVE macros.

2003-09-22  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-09-22.

2003-09-21  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium4/sse2/gmp-mparam.h (USE_PREINV_DIVREM_1,
	USE_PREINV_MOD_1): Set to 1 for new asm versions.

	* mpfr/*: Update to mpfr cvs 2003-09-21.

2003-09-21  Paul Zimmermann  <Paul.Zimmermann@loria.fr>

	* mpn/generic/mul_n.c (mpn_toom3_mul_n): Conditionally use
	mpn_sublsh1_n, mpn_rsh1add_n and mpn_rsh1sub_n, in addition to
	mpn_addlsh1_n.  Avoid all copying, at the expense of some additional
	workspace.

	* gmp-impl.h (MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_SQR_N_TSIZE): Accommodate
	latest toom3 code.

2003-09-19  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium4/sse2/divrem_1.asm, mpn/x86/pentium4/sse2/mod_1.asm:
	New files.

2003-09-16  Kevin Ryde  <kevin@swox.se>

	* tune/speed.c (run_one): Don't scale the -1.0 not-available return.
	Print "n/a" for times not-available.

2003-09-13  Paul Zimmermann  <Paul.Zimmermann@loria.fr>

	* mpn/generic/mul_n.c (toom3_interpolate): New function.
	(mpn_toom3_mul_n, mpn_toom3_sqr_n): Call toom3_interpolate.

2003-09-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove unused
	variables.
	(mpn_toom3_mul_n, mpn_toom3_sqr_n): Use offset `+ 1', not `+ 2' in last
	MPN_DECR_U calls.

2003-09-12  Paul Zimmermann  <Paul.Zimmermann@loria.fr>

	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Rewrite.

2003-09-12  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (MPN_KARA_MUL_N_TSIZE, MPN_KARA_SQR_N_TSIZE): Reformulate
	to use the same form as MPN_TOOM3_MUL_N_TSIZE.
	(MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_SQR_N_TSIZE): Update for new Toom3
	code requirements.
	* mpn/generic/mul_n.c (evaluate3, interpolate3, add2Times): Remove.
	(USE_MORE_MPN): Remove.

2003-08-31  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-08-31.

2003-08-30  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-08-30.

2003-08-29  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/copyi.asm: New file.
	* mpn/amd64/copyd.asm: New file.
	* mpn/amd64/README: New file.

2003-08-28  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/lshift.asm: New file.
	* mpn/amd64/rshift.asm: New file.
	* mpn/amd64/gmp-mparam.h: Retune.

2003-08-23  Kevin Ryde  <kevin@swox.se>

	* tune/freq.c (freq_getsysinfo): Correction to speed_cycletime value
	established.

	* mpz/rootrem.c, gmp-h.in, gmp.texi (mpz_rootrem): Don't return
	exactness indication, can get that from testing the remainder.

	* mpn/x86/k7/aors_n.asm, mpn/x86/k7/mmx/copyi.asm: Amend to comments
	about loads and stores and what speed should be possible.

2003-08-22  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/add_n.asm: New file.
	* mpn/amd64/sub_n.asm: New file.
	* mpn/amd64/mul_1.asm: New file.
	* mpn/amd64/addmul_1.asm: New file.
	* mpn/amd64/submul_1.asm: New file.

2003-08-19  Kevin Ryde  <kevin@swox.se>

	* longlong.h (add_ssaaaa, sub_ddmmss) [hppa 64]: Move down into main
	__GNUC__ block.  Exclude for _LONG_LONG_LIMB (ie. ABI=2.0n) since
	these forms are only for ABI=2.0w.

	* longlong.h (count_leading_zeros) [__mcpu32__]: Check __mcpu32__ to
	avoid bfffo on GCC 3.4 in CPU32 mode.  Reported by Bernardo Innocenti.

	* longlong.h (count_trailing_zeros) [x86_64]: Use "%q0" to force
	64-bit register destination.  Pointed out by Torbjorn.

	* mpz/combit.c: Correction to carry handling when extending a
	negative, and use __GMPN_ADD_1.  Correction to complement limb for a
	negative when there's a non-zero low limb.
	* tests/mpz/bit.c (check_clr_extend, check_com_negs): Exercise these.

	* demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/test.pl: Add
	get_d_2exp.
	* demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/GMP/Rand.pm,
	demos/perl/test.pl: Add gmp_urandomb_ui, gmp_urandomm_ui.
	(GMP::Rand::randstate): Accept a randstate object to copy.
	* demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/GMP/Mpz.pm,
	demos/perl/test.pl: Add combit, rootrem.

2003-08-19  Torbjorn Granlund  <tege@swox.com>

	* tune/Makefile.am (EXTRA_DIST): Add amd64.asm.

2003-08-17  Kevin Ryde  <kevin@swox.se>

	* gmpxx.h [__MPFR_H]: Include full <iostream> for inlines.
	* tests/cxx/t-headfr.cc: New file, exercising this.
	* tests/cxx/Makefile.am: Add it.

	* tests/cxx/t-constr.cc: Include config.h for WANT_MPFR.

	* gmpxx.h: Correction to temp variable type in mpf -> mpfr assignment.
	Reported by Derrick Bass.
	* tests/cxx/t-assign.cc (check_mpfr): Exercise this.

	* configure.in (WANT_MPFR): AC_DEFINE this, for the benefit of
	tests/cxx/t-*.cc.  (Was always meant to have been defined.)
	* tests/cxx/Makefile.am (INCLUDES): Add -I$(top_srcdir)/mpfr.

	* gmpxx.h: __gmp_default_rounding_mode -> __gmpfr_default_rounding_mode
	(struct __gmp_hypot_function): Correction to mpfr_hypot addition.
	* tests/cxx/t-misc.cc (check_mpfr_hypot): Corrections to mpfr/long
	tests.

2003-08-16  Torbjorn Granlund  <tege@swox.com>

	* configure.in (amd64): New.

	* mpn/amd64/gmp-mparam.h: New file.

	* tune/amd64.asm: New file, derived in part from tune/pentium.asm.

2003-08-15  Kevin Ryde  <kevin@swox.se>

	* tune/freq.c (freq_irix_hinv): Reinstate, for the benefit of IRIX 6.2.
	(freq_attr_get_invent): Conditionalize on INFO_LBL_DETAIL_INVENT too.

2003-08-14  Kevin Ryde  <kevin@swox.se>

	* mpq/get_d.c: Use mpn_get_d.
	* tests/mpq/t-get_d.c (check_onebit): New test.

	* gmp.texi (Notes for Particular Systems): Under x86 cpu types, note
	i386 is a fat binary, remove pentium4 recommendation since i386 is now
	quite reasonable for p4.
	(Notes for Particular Systems): Under Windows DLLs, remove caveat
	about --enable-cxx now ok, update .lib creation for new libtool,
	remove .exp not needed for MS C.
	(Notes for Package Builds): i386 is a fat binary.
	(Reentrancy): Remove SCO ctype.h note, don't want to list every system
	misfeature, and was quite possibly for non-threading mode anyway.
	(Autoconf): Remove notes on gmp 2 detection, too old to want to
	encourage anyone to use.
	(Karatsuba Multiplication): Correction to threshold increase/decrease
	for a and b terms.  Reported by Richard Brent and Paul Zimmermann.
	Also add various further index entries.

	* tune/freq.c (freq_attr_get_invent): New function.
	(freq_irix_hinv): Remove, in favour or freq_attr_get_invent.
	* configure.in (AC_CHECK_FUNCS): Add attr_get.
	(AC_CHECK_HEADERS): Add invent.h, sys/attributes.h, sys/iograph.h.

2003-08-03  Kevin Ryde  <kevin@swox.se>

	* tune/tuneup.c (tune_mul): Use MUL_KARATSUBA_THRESHOLD_LIMIT.

2003-08-02  Kevin Ryde  <kevin@swox.se>

	* mpn/asm-defs.m4: Tweak some comments, add hpux11 to m4wrap 0xFF
	problem systems.

	* configure.in (*-*-sco3.2v5*): Remove lt_cv_archive_cmds_need_lc=no,
	since libtool no longer uses it.  This was a workaround fixing ctype.h
	in SCO 5 shared libraries; not sure if libtool now gets it right on
	its own, let's hope so.

	* configure.in, acinclude.m4 (GMP_PROG_HOST_CC): Remove, libtool no
	longer demands HOST_CC.

	* configure.in: When C or C++ compiler not found, refer user to
	config.log.

	* configure.in (i386-*-*): Turn i386 into a fat binary build.
	* mpn/x86/fat/fat.c, mpn/x86/fat/fat_entry.asm,
	mpn/x86/fat/gmp-mparam.h, mpn/x86/fat/gcd_1.c, mpn/x86/fat/mode1o.c:
	New files.
	* gmp-impl.h (struct cpuvec_t) [x86 fat]: New structure.
	* longlong.h (COUNT_LEADING_ZEROS_NEED_CLZ_TAB) [x86 fat]: Define.
	* mpn/asm-defs.m4 (foreach): New macro.
	* mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): New define.
	* mpn/x86/sqr_basecase.asm: New file, primarily as a fallback for fat
	binaries.
	* mpn/x86/p6/gmp-mparam.h, mpn/x86/p6/mmx/gmp-mparam.h: Add comments
	about fat binary SQR_KARATSUBA_THRESHOLD for p6 and p6/mmx.

	* configure.in: Add various supports for fat binaries, via fat_path,
	fat_functions and fat_thresholds variables.
	* acinclude.m4 (GMP_STRIP_PATH): Mung $fat_path too.
	(GMP_FAT_SUFFIX, GMP_REMOVE_FROM_LIST): New macros.
	* gmp-impl.h: Add various supports for fat binaries.
	(DECL_add_n etc): New macros.
	(mpn_mul_basecase etc): Define only if not already defined.
	* mpn/asm-defs.m4 (m4_config_gmp_mparam): Mention fat binary.
	(MPN): Use m4_unquote, for the benefit of fat binary name expansion.
	* doc/configuration: Notes on fat binaries.
	* gmp-impl.h (MUL_TOOM3_THRESHOLD_LIMIT): Define always.
	(MUL_KARATSUBA_THRESHOLD_LIMIT): New define.
	* mpn/generic/mul.c, mpn/generic/mul_n.c: Use these.
	* tune/divrem1div.c, tune/divrem1inv.c, tune/mod_1_div.c,
	tune/mod_1_inv.c: Define OPERATION_divrem_1 and OPERATION_mod_1, to
	tell fat.h what's being done.

	* config.guess (alpha-*-*): Update comments on what configfsf.guess
	does and doesn't do for us.

2003-07-31  Kevin Ryde  <kevin@swox.se>

	* config.guess: Remove $dummy.o files everywhere, in case vendor
	compilers produce that even when not asked.

	* demos/perl/GMP.xs (class_or_croak): Rename "class" parameter to
	avoid C++ keyword.
	(coerce_ulong, coerce_long): Move croaks to stop g++ 3.3 complaining
	about uninitialized variables.

	* demos/perl/INSTALL: Add notes on building with a DLL.

	* longlong.h (count_trailing_zeros) [x86_64]: Ensure bsfq destination
	is a 64-bit register.  Diagnosed by Francois G. Dorais.

2003-07-31  Torbjorn Granlund  <tege@swox.com>

	* longlong.h [ppc]: Remove nested test for vxworks.

2003-07-24  Kevin Ryde  <kevin@swox.se>

	* gmpxx.h (struct __gmp_binary_multiplies): Use mpz_mul_si for
	mpz*long and long*mpz.
	* tests/cxx/t-ops.cc (check_mpz): Exercise mpz*long and mpz*ulong.

	* cxx/ismpf.cc: Use std::locale decimal point when available.  Expect
	localeconv available always.
	* tests/cxx/t-locale.cc: Enable check_input tests.

	* gmpxx.h (struct __gmp_hypot_function): Use mpfr_hypot.
	* tests/cxx/t-misc.cc (check_mpfr_hypot): New tests.

	* tests/cxx/t-assign.cc, tests/cxx/t-binary.cc, tests/cxx/t-ops.cc,
	tests/cxx/t-prec.cc, tests/cxx/t-ternary.cc, tests/cxx/t-unary.cc:
	Include config.h for WANT_MPFR.

	* tests/mpz/bit.c (check_single): Correction to a diagnostic print.

2003-07-24  Niels Möller  <nisse@lysator.liu.se>

	* mpz/combit.c: New file.
	* Makefile.am, mpz/Makefile.am: Add it.
	* gmp-h.in (mpz_combit): Add prototype.
	* tests/mpz/bit.c (check_single): Exercise mpz_combit.

2003-07-16  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/get_d.c: Correction to infinity handling for large exp.

2003-07-14  Kevin Ryde  <kevin@swox.se>

	* mpz/get_d.c, mpz/get_d_2exp.c, mpf/get_d.c, mpf/get_d_2exp.c: Use
	mpn_get_d.

	* mpn/generic/get_d.c: New file, based on mpz/get_d.c and insert-dbl.c.
	* configure.in, mpn/Makefile.am: Add it.
	* gmp-impl.h (mpn_get_d): Add prototype.

	* tests/mpn/t-get_d.c: New file.
	* tests/mpn/Makefile.am: Add it.

	* tests/mpz/t-get_d_2exp.c (check_onebit, check_round): Test negatives.
	(check_onebit): Add a few more bit sizes.

	* tests/misc.c, tests/tests.h (tests_isinf): New function.

2003-07-12  Kevin Ryde  <kevin@swox.se>

	* configure.in (GMP_PROG_CXX_WORKS): Include $CPPFLAGS, same as
	automake does in the actual build.

	* acinclude.m4 (GMP_PROG_CXX_WORKS): In the namespace test, declare
	namespace before trying to use.  In std iostream test, provoke a
	failure from Compaq C++ in pre-standard mode.

2003-07-08  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_PROG_CC_WORKS): Use separate compiles for various
	known problems, and indicate to the user the reason for rejecting.
	(GMP_PROG_CXX_WORKS): Ditto, and insist on being able to execute each
	compiled program.

2003-07-05  Kevin Ryde  <kevin@swox.se>

	* config.sub: Add comments to our alias transformations.

	* configfsf.sub, configfsf.guess: Update to 2003-07-04.

	* acinclude.m4 (GMP_PROG_CC_WORKS, GMP_PROG_CC_WORKS_LONGLONG): Show
	failing program in config.log, per other autoconf tests.

	* configure.in (i786-*-*): Recognise as pentium4, per configfsf.sub.

2003-06-28  Kevin Ryde  <kevin@swox.se>

	* mpz/get_d_2exp.c, mpf/get_d_2exp.c: Avoid res==1.0 when floats round
	upwards.

	* tests/mpz/t-get_d_2exp.c: New file.
	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
	* tests/mpf/t-get_d_2exp.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
	* tests/x86call.asm, test/tests.h (x86_fldcw, x86_fstcw): New
	functions.
	* tests/misc.c, tests/tests.h (tests_hardware_getround,
	tests_hardware_setround): New functions.

2003-06-25  Kevin Ryde  <kevin@swox.se>

	* mpn/sparc64/dive_1.c: New file.

	* mpn/sparc64/sparc64.h: New file.
	* mpn/sparc64/mode1o.c: Remove things now in sparc64.h.

	* mpfr/*: Update to mpfr cvs 2003-06-25.

	* acinclude.m4 (GMP_PROG_CC_WORKS): In last change provoking gnupro
	gcc, don't use ANSI style function definition.

2003-06-22  Kevin Ryde  <kevin@swox.se>

	* mpn/pa32/hppa1_1/udiv.asm: Remove .proc, .entry, .exit and .procend,
	handled by PROLOGUE and EPILOGUE.  Comment out .callinfo, per other
	asm files.

	* gmpxx.h (mpz_class __gmp_binary_divides, __gmp_binary_modulus): Fix
	long/mpz and long%mpz for dividend==LONG_MIN divisor==-LONG_MIN.
	(mpz_class __gmp_binary_modulus): Fix mpz%long for negative dividend.
	* tests/cxx/t-ops.cc (check_mpz): Add test cases for these, merging
	operator/ and operator% sections for clarity.

2003-06-21  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-06-21.

	* acinclude.m4 (GMP_PROG_CC_WORKS): Add code by Torbjorn provoking an
	ICE from gcc 2.9-gnupro-99r1 under -O2 -mcpu=ev6.
	* configure.in (alpha*-*-* gcc_cflags_cpu): Fallback on -mcpu=ev56 for
	this compiler.

	* gmpxx.h (get_d): Remove comments about long double, double is
	correct for get_d, a future long double form would be get_ld.

2003-06-19  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-06-19.

	* mpn/generic/dive_1.c: Share src[0] fetch among all cases.  No need
	for separate final umul_ppmm in even case, make it part of the loop.

	* mpz/get_d_2exp.c, mpq/set_si.c, mpq/set_ui.c: Nailify.

	* mpf/iset_si.c: Rewrite using mpf/set_si.c code, in particular this
	nailifies it.
	* tests/mpf/t-set_si.c: Nailify tests.

	* mpf/iset_ui.c: Nailify, as per mpf/set_ui.c
	* tests/mpf/t-set_ui.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.

2003-06-15  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-06-15.

	* mpn/x86/k6/mode1o.asm: Remove a bogus ASSERT.

2003-06-12  Kevin Ryde  <kevin@swox.se>

	* configure.in (--enable-assert): Emit WANT_ASSERT to config.m4.
	* mpn/powerpc32/powerpc-defs.m4, mpn/x86/x86-defs.m4 (ASSERT): Check
	WANT_ASSERT is defined.

	* mpn/sparc32/v9/udiv.asm: Amend heading, this file is for sparc v9.

	* tests/cxx/Makefile.am (TESTS_ENVIRONMENT): In libtool openbsd hack,
	discard error messages from cp, for the benefit of --disable-shared or
	systems not using names libgmp.so.*.

	* tests/devel/try.c (try_one): When overlapping, copy source data
	after filling dst.  Previously probably used only DEADVAL in
	overlapping cases.

2003-06-11  Torbjorn Granlund  <tege@swox.com>

	* mpf/random2.c: Rewrite.  Ignore sign of exp parameter.

2003-06-10  Kevin Ryde  <kevin@swox.se>

	* mpn/sparc64/mode1o.c: New file.

2003-06-09  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/lshift.asm: Add more cycle counts.
	* mpn/powerpc32/rshift.asm: Add more cycle counts.

	* mpn/ia64/addmul_1.asm: Reformat comments for 80 columns.

	* gmp-impl.h (udiv_qrnnd_preinv1): New name for udiv_qrnnd_preinv.
	(udiv_qrnnd_preinv2): New name for udiv_qrnnd_preinv2norm.
	(udiv_qrnnd_preinv): New #define, making udiv_qrnnd_preinv2
	the default.
	* tune/speed.c: Corresponding changes.
	* tune/speed.h: Likewise.
	* tune/common.c: Likewise.

	* mpf/get_str.c: Simplify `off' computation.

	* longlong.h: Tabify.

2003-06-09  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (ABI and ISA): FreeBSD has sparc64 too, just say "BSD" to
	cover all flavours.
	* configure.in: Ditto in some comments.

	* mpfr/*: Update to mpfr cvs 2003-06-09.

	* tests/cxx/Makefile.am (LDADD): Add -L$(top_builddir)/$(LIBS), for
	the benefit of gcc 3.2 on itanium2-hp-hpux11.22.

	* tune/many.pl (mul_2): Add speed routine settings.
	(MAKEFILE): Close when done, for the benefit of development hackery.

2003-06-08  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-06-08.

	* mpn/x86/x86-defs.m4 (femms): Remove fallback to emms.
	(cmovCC, psadbw): Remove simulated versions.
	(cmov_available_p, psadbw_available_p): Remove.
	This trickery was only ever for development purposes on machines
	without those instructions.  Removing it simplifies gmp and in
	particular avoids complications for fat binary builds.  Development
	can be done with a wrapper around "as" if really needed.

	* mpn/x86/divrem_1.asm: Don't use loop_or_decljnz, now K6 has its own
	mpn/x86/k6/divrem_1.asm.  Amend K6 comments now moved to there.
	* mpn/x86/x86-defs.m4 (loop_or_decljnz): Remove, no longer used.

	* mpn/x86/k6/divrem_1.asm: New file, derived from mpn/x86/divrem_1.asm.

	* mpn/x86/k6/pre_mod_1.asm: Remove comments now in mpn/x86/mod_1.asm.

	* mpn/x86/mod_1.asm: Put mpn_mod_1c after mpn_mod_1 for better branch
	prediction.  Put done_zero at end for less wastage in alignment.  Use
	decl+jnz unconditionally since in fact it's ok on k6.  Amend comments.

2003-06-07  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/mode1o.c: Fix ASSERTs on return value.

	* gmp.texi (Build Options): Add viac3 and viac32 cpu types.
	(ABI and ISA): Note on sparcv9 ABI=32 vs ABI=64 speed.  More indexing.

	* configfsf.guess, configfsf.sub: Update to 2003-06-06.
	* config.guess: Remove $RANDOM hack supporting netbsd 1.4, not needed
	by new configfsf.guess.

2003-06-06  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/submul_1.asm: Add branch over .align block.

2003-06-05  Torbjorn Granlund  <tege@swox.com>

	* longlong.h (add_ssaaaa) [pa64]: Output zero operand as register 0.
	Allow more immediate operands.
	(sub_ddmmss) [pa64]: Likewise.
	(add_ssaaaa) [pa32]: Likewise.
	(sub_ddmmss) [pa32]: Likewise.

	* mpn/pa64: Change ".level 2.0W" to ".level 2.0w" to please
	picky GNU assembler.

2003-06-05  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Integer Special Functions): In mpz_array_init, fix type
	shown for integer_array and give an example use.

2003-06-04  Torbjorn Granlund  <tege@swox.com>

	* mpf/set_str.c (mpf_set_str): Work around gcc 2 bug triggered on
	alpha.

2003-06-03  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium/README: Add 7 c/l mmx mul_1, tweak wordings.

	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Use octal char constants in test
	program, hex is not supported by K&R.

2003-06-02  Torbjorn Granlund  <tege@swox.com>

	* mpn/mips64/divrem_1.asm: New file.

2003-06-01  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/lshift.asm: Reformat code.
	* mpn/powerpc32/rshift.asm: Reformat code.

2003-05-30  Kevin Ryde  <kevin@swox.se>

	* tests/misc.c (tests_start): Set stdout and stderr to unbuffered, to
	avoid any chance of losing output on segv etc.

2003-05-28  Torbjorn Granlund  <tege@swox.com>

	* mpf/get_str.c: Move label `done' to match TMP_MARK and TMP_FREE.
	Remove redundant variable prec.

2003-05-26  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/convert.c: Test bases up to 62.

	* tests/mpf/t-conv.c: Test bases up to 62.

	* demos/pexpr.c: Don't iterate to get accurate timing.

	* mpf/set_str.c (mpn_pow_1_highpart): Cleanup.

	* mp_dv_tab.c: Fix typo.

	* mpf/get_str.c: Rewrite (now sub-quadratic).

2003-05-22  Kevin Ryde  <kevin@swox.se>

	* tests/mpn/t-divrem_1.c: New file.
	* tests/mpn/Makefile.am: Add it.

2003-05-22  Torbjorn Granlund  <tege@swox.com>

	* config.sub: Recognize viac3* processors.

2003-05-20  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/addmul_2.asm: New file.

2003-05-19  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Recognize alphaev7* as alphaev67.

	* config.guess: Recognize viac3* processors.
	* configure.in: Set up path for viac3* processors.
	* acinclude.m4 (X86_PATTERN): Include viac3* processors.

2003-05-19  Kevin Ryde  <kevin@swox.se>

	* tune/freq.c (freq_pstat_getprocessor): New function.
	(freq_all): Use it.
	* configure.in (AC_CHECK_HEADERS): Add sys/pstat.h.
	(AC_CHECK_FUNCS): Add pstat_getprocessor.

2003-05-15  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/mul_fft.c (mpn_mul_fft_decompose): Remove "inline",
	since the code is a bit too big.  gcc doesn't actually inline when
	alloca (TMP_ALLOC) is used anyway.

2003-05-13  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Notes for Particular Systems): Libtool directory is .libs
	not _libs for mingw dll.  Reported by Andreas Fabri.

2003-05-07  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_PROG_CC_WORKS): Add code to generate sse2/xmm code
	from gcc -march=pentium4, to check the assembler supports that.
	(GMP_GCC_PENTIUM4_SSE2, GMP_OS_X86_XMM): New macros.
	* configure.in (pentium4-*-*): Use them to see if gcc -march=pentium4
	(with sse2) is ok.

2003-05-06  Kevin Ryde  <kevin@swox.se>

	* mpz/com.c: Rate size==0 as UNLIKELY, fix comment to mpn_add_1.

	* tune/freq.c (<sys/sysinfo.h>): Include only when needed for
	getsysinfo(), to avoid a problem with this file on AIX 5.1.

2003-05-03  Torbjorn Granlund  <tege@swox.com>

	* mpf/set_str.c: Do not ignore supposedly superfluous digits (in part
	reverting last change).

2003-05-03  Kevin Ryde  <kevin@swox.se>

	* gmp.texi: Use @code for files in @cindex entries, it looks nicer
	than @file.

	* Makefile.am: Note gmp 4.1.1 and 4.1.2 version info.

	* configure.in, acinclude.m4 (GMP_CRAY_OPTIONS): New macro for Cray
	system setups, letting AC_REQUIRE do its job instead of a hard coded
	AC_PROG_EGREP.

	* config.guess: Amend fake RANDOM to avoid ". configfsf.guess" which
	segfaults on Debian "ash" 0.4.16.

2003-05-01  Kevin Ryde  <kevin@swox.se>

	* configure.in (AC_CHECK_FUNCS): Add getsysinfo.
	(AC_CHECK_HEADERS): Add sys/sysinfo.h and machine/hal_sysinfo.h.
	* tune/freq.c (freq_getsysinfo): New function.
	(freq_all): Use it.
	(freq_sysctlbyname_i586_freq, freq_sysctlbyname_tsc_freq,
	freq_sysctl_hw_cpufrequency, freq_sysctl_hw_model): Set
	speed_cycletime before trying to print it, when verbose.

2003-04-28  Torbjorn Granlund  <tege@swox.com>

	* mpf/set_str.c: Major overhaul.
	(mpn_pow_1_highpart): New helper function, meat extracted from
	mpf_set_str.

2003-04-24  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_GCC_ARM_UMODSI): Quote result string against m4.

	* configure, ltmain.sh, aclocal.m4: Update to libtool 1.5.

	* longlong.h (add_ssaaaa) [all]: Remove first "%" commutative in each,
	since gcc only supports one per asm.

	* printf/doprnt.c: Add M for mp_limb_t.
	* tests/misc/t-printf.c: Exercise this.

	* tests/mpz/t-cmp_d.c: Test infinities.
	* tests/mpf/t-cmp_d.c: New file.
	* tests/mpf/Makefile.am: Add it.

	* mpz/cmp_d.c, mpz/cmpabs_d.c, mpf/cmp_d.c: NaN invalid, Inf bigger
	than any value.
	* mpz/set_d.c, mpq/set_d.c, mpf/set_d.c: Nan or Inf invalid.

	* configure.in (AC_CHECK_FUNCS): Add raise.
	* invalid.c: New file.
	* Makefile.am: Add it.
	* gmp-impl.h (__gmp_invalid_operation): Add prototype.
	(DOUBLE_NAN_INF_ACTION): New macro.

	* tests/trace.c, tests/tests.h (d_trace): New function.
	* tests/misc.c, tests/tests.h (tests_infinity_d): New function.
	* tests/misc.c (mpz_erandomb, mpz_errandomb): Use gmp_urandomm_ui.

	* tune/tuneup.c, tune/common.c, tests/devel/try.c: Cast various
	mp_size_t values for printf %ld in case mp_size_t==int.  Use
	gmp_printf for mp_limb_t values.

	* gmp.texi (Nomenclature and Types): Add mp_exp_t, mp_size_t,
	gmp_randstate_t.  Note ulong for bit counts and size_t for byte
	counts.  Don't bother with @noindent.
	(Debugging): New valgrind is getting MMX/SSE.
	(Integer Comparisons): mpz_cmp_d and mpz_cmpabs_d on NaNs and Infs.
	(Float Comparison): mpf_cmp_d behaviour on NaNs and Infs.
	(Low-level Functions): Note with mpn_hamdist what hamming distance is.
	(Formatted Output Strings): Add type M.
	(Internals): Remove remarks on ulong bits and size_t bytes.  Move int
	field remarks to ...
	(Integer Internals, Float Internals): ... here.

2003-04-19  Kevin Ryde  <kevin@swox.se>

	* configure.in (*sparc*-*-* ABI=32): Add umul to extra_functions.

	* mpn/x86/p6/mul_basecase.asm: New file.

2003-04-18  Kevin Ryde  <kevin@swox.se>

	* configure.in (m68060-*-*): Fallback to gcc -m68000 when -m68060 not
	available, and don't use mpn/m68k/mc68020 asm routines.  (Avoids 32x32
	mul and 64/32 div which trap to the kernel on 68060.  Advice by
	Richard Zidlicky.)
	* mpn/m68k/README: Update notes on directory usage.

	* tests/cxx/Makefile.am (TESTS_ENVIRONMENT): Add a hack to let the
	test programs run with a shared libgmpxx on openbsd 3.2.

	* gmp.texi (Language Bindings): Add Guile.

2003-04-12  Kevin Ryde  <kevin@swox.se>

	* configure.in (cygwin*, mingw*, pw32*, os2*): Add
	-Wl,--export-all-symbols to GMP_LDFLAGS, no longer the default in
	latest mingw and libtool.

	* acinclude.m4 (GMP_ASM_COFF_TYPE): New macro.
	* configure.in (x86s): Use it.
	* mpn/x86/x86-defs.m4 (COFF_TYPE): New macro.
	(PROLOGUE_cpu): Use it, for the benefit of mingw DLLs.

	* gmp-impl.h (mpn_copyi, mpn_copyd): Add __GMP_DECLSPEC.

	* gmp.texi (Known Build Problems): Remove windows test program .exe
	repeated built, fixed by new libtool.  Remove MacOS C++ shared library
	creation, fixed by new libtool.
	(Notes for Package Builds, Known Build Problems): Remove DESTDIR notes
	on libgmpxx, fixed in new libtool.

2003-04-10  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Match turbosparc.
	* config.guess: Recognize turbosparc (just for *bsd for now).

2003-04-09  Kevin Ryde  <kevin@swox.se>

	* mpf/mul_ui.c [nails]: Call mpf_mul to handle v > GMP_NUMB_MAX.

	* tests/mpz/t-mul.c (main): Don't try FFT sizes when FFT disabled via
	MP_SIZE_T_MAX, eg. for nails.

	* tests/cxx/t-ternary.cc: Split up tests to help compile speed and
	memory usage.

	* tests/devel/try.c: Print seed under -R, add -E to reseed, use ulong
	for seed not uint.

	* gmp.texi: Add @: after various abbreviations, more index entries.
	(leftarrow): New macro, for non-tex.
	(Random State Initialization): Remove commented gmp_randinit_lc, not
	going to be implemented.
	(Random Number Algorithms): New section.
	(References): Add Matsumoto and Nishimura on Mersenne Twister, add
	Bertot, Magaud and Zimmermann on GMP Square Root.

2003-04-06  Kevin Ryde  <kevin@swox.se>

	* tests/mpz/t-gcd_ui.c: New file.
	* tests/mpz/Makefile.am: Add it.

	* mpz/gcd_ui.c: Correction to return value on longlong limb systems,
	limb might not fit a ulong.

2003-04-04  Kevin Ryde  <kevin@swox.se>

	* configure, aclocal.m4, ltmain.sh: Update to libtool cvs snapshot
	2003-04-02.

2003-04-02  Kevin Ryde  <kevin@swox.se>

	* configure.in (*-*-cygwin*): No longer force lt_cv_sys_max_cmd_len,
	libtool has addressed this now.
	(AC_PROVIDE_AC_LIBTOOL_WIN32_DLL): Remove this, libtool _LT_AC_LOCK
	no longer needs it.

	* acinclude.m4 (GMP_PROG_AR): Also set ac_cv_prog_AR and
	ac_cv_prog_ac_ct_AR when adding flags to AR, so they're not lost by
	libtool's call to AC_CHECK_TOOL.

2003-04-01  Kevin Ryde  <kevin@swox.se>

	* configure, aclocal.m4, ltmain.sh: Update to libtool cvs snapshot
	2003-03-31.

	* configure.in (AC_PROG_F77): Add a dummy AC_PROVIDE to stop libtool
	running F77 probes.

	* randlc2x.c (gmp_rand_lc_struct): Add comments about what exactly is
	in each field.
	(randseed_lc): Rename seedp to seedz to avoid confusion with seedp in
	the lc function.  Suggested by Pedro Gimeno.
	(gmp_randinit_lc_2exp): Use __GMP_ALLOCATE_FUNC_TYPE.  No need for
	"+1" in mpz_init2 of _mp_seed.  Don't bother with mpz_init2 for _mp_a.

2003-03-29  Kevin Ryde  <kevin@swox.se>

	* configure.in (m68k-*-*): Use -O2, no longer need to fallback to -O.
	* acinclude.m4 (GMP_GCC_M68K_OPTIMIZE): Remove macro.

	* configure.in (AC_CHECK_TYPES): Add notes on why tested.

	* gmp.texi (GMPrefu, GMPpxrefu, GMPreftopu, GMPpxreftopu): New macros,
	use them for all external references to get URLs into HTML output.
	(Random State Initialization): Add gmp_randinit_set.
	(Random State Miscellaneous): New section.

2003-03-29  Kevin Ryde  <kevin@swox.se>

	* randbui.c, randmui.c: New files.
	* Makefile.am: Add them.
	* gmp-h.in (gmp_urandomb_ui, gmp_urandomm_ui): Add prototypes.
	* tests/rand/t-urbui.c, tests/rand/t-urmui.c: New files.
	* tests/rand/Makefile.am: Add them.

	* gmp-impl.h (gmp_randstate_srcptr): New typedef.
	(gmp_randfnptr_t): Add randiset_fn.
	* randiset.c: New file.
	* Makefile.am: Add it.
	* gmp-h.in (gmp_randinit_set): Add prototype.
	* randlc2x.c, randmt.c: Add gmp_randinit_set support.
	* tests/rand/t-iset.c: New file.
	* tests/rand/Makefile.am: Add it.

	* tests/misc.c, tests/tests.h (call_rand_algs): New function.

2003-03-27  Kevin Ryde  <kevin@swox.se>

	* mpz/bin_uiui.c: Use plain "*" for kacc products rather than
	umul_ppmm since high not needed, except for an ASSERT now amended.

2003-03-26  Kevin Ryde  <kevin@swox.se>

	* demos/expr/exprfr.c (cbrt, cmpabs, exp2, gamma, nextabove,
	nextbelow, nexttoward): New functions.
	* demos/expr/t-expr.c: Exercise these.

	* mpfr/*: Update to mpfr cvs 2003-03-26.

	* gmp-impl.h (MPZ_REALLOC): Use UNLIKELY, to expect no realloc.

	* tune/time.c (cycles_works_p): Scope variables down to relevant part
	to avoid warnings about unused.

	* configfsf.guess, configfsf.sub: Update to 2003-02-22.
	* config.guess: Fake a $RANDOM variable when running configfsf.guess,
	to workaround a problem on m68k NetBSD 1.4.1.

	* mpz/fac_ui.c: Remove unused variable "z1".

	* tune/freq.c (freq_irix_hinv): Allow "Processor 0" line from IRIX 6.5.

2003-03-24  Torbjorn Granlund  <tege@swox.com>

	* randlc2x.c (randget_lc): Remove write-only variable rn.
	* mpf/eq.c: Remove write-only variable usign.
	* gen-psqr.c (main): Remove write-only variable numb_bits.

2003-03-17  Torbjorn Granlund  <tege@swox.com>

	* Makefile.am (libgmp_la_SOURCES): Add mp_dv_tab.c.
	(libmp_la_SOURCES): Add mp_dv_tab.c.

	* mpn/alpha/invert_limb.asm: Add a few comments.

	* mp_dv_tab.c: New file, defining __gmp_digit_value_tab.

	* mpz/set_str.c: Get rid of function digit_value_in_base and use table
	__gmp_digit_value_tab instead.
	* mpz/inp_str.c: Likewise.
	* mpf/set_str.c: Likewise.
	* mpbsd/min.c: Likewise.
	* mpbsd/xtom.c: Likewise.

	* mpz/set_str.c: Allow bases <= 62.  Return error for invalid bases.
	* mpz/inp_str.c: Likewise.
	* mpf/set_str.c: Likewise.
	* mpz/out_str.c: Likewise.
	* mpz/get_str.c: Likewise.
	* mpf/get_str.c: Likewise.

	* mpz/inp_str.c: Restructure to allocate more string space just
	before needed.
	* mpbsd/min.c: Likewise.

	* longlong.h (__udiv_qrnnd_c): Remove redundant casts.
	(32-bit sparc): Test HAVE_HOST_CPU_supersparc in addition to various
	sparc_v8 spellings.

2003-03-17  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-03-17.

2003-03-15  Kevin Ryde  <kevin@swox.se>

	* Makefile.am (EXTRA_libgmp_la_SOURCES): Use this for TMP_ALLOC
	sources, instead of a libdummy.la.

2003-03-16  Torbjorn Granlund  <tege@swox.com>

	* config.guess: Recognize supersparc and microsparc for *BSD systems.
	Generalize some superscalar recognition patterns.

2003-03-14  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/udiv.asm: New file.

2003-03-13  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64: Table cycle counts.  Update some comments.

	* mpn/powerpc64/divrem_1.asm: New file.

2003-03-10  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul.c (mpn_mul): Don't blindly expect
	MUL_KARATSUBA_THRESHOLD to be a constant.

2003-03-07  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul.c (mpn_mul): New operand splitting code for
	avoiding cache misses when un >> MUL_KARATSUBA_THRESHOLD > vn.
	(MUL_BASECASE_MAX_UN): New #define, default to 500 for now.

2003-03-07  Kevin Ryde  <kevin@swox.se>

	* Makefile.am: Put gmp.h and mp.h under $(exec_prefix)/include.
	* gmp.texi (Build Options): Add notes on this.
	Reported by Vincent Lefèvre.

2003-03-06  Kevin Ryde  <kevin@swox.se>

	* configure.in (alpha*-*-* gcc): Add asm option before testing -mcpu,
	for the benefit of gcc 2.9-gnupro-99r1 on alphaev68-dec-osf5.1 which
	doesn't otherwise put the assembler in the right mode for -mcpu=ev6.

2003-03-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/powerpc-defs.m4: Set up renaming for v registers.

	* mpz/powm.c (redc): Instead of repeated mpn_incr_u invocations,
	accumulate carries and add at the end.
	(mpz_powm): Trim tp allocation, now as redc doesn't need carry guard.

2003-02-25  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/pentium4/copyd.asm: Correct header comment.

	* mpn/arm/addmul_1.asm: Correct cycle counts.
	* mpn/arm/submul_1.asm: Likewise.

2003-02-20  Kevin Ryde  <kevin@swox.se>

	* demos/factorize.c (factor_using_pollard_rho): Test k>0 to avoid
	infinite loop if k=0 and gcd!=1 reveals a factor.  Reported by John
	Pongsajapan.

	* gmp.texi, fdl.texi: Update to FDL version 1.2.

2003-02-18  Torbjorn Granlund  <tege@swox.com>

	* mpn/arm/mul_1.asm: Fix typo introduced in last change.

2003-02-17  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/gmp-mparam.h: Retune.

	* mpn/sparc64/copyi.asm: Add some header comments.
	* mpn/sparc64/copyd.asm: Likewise.

	* mpn/arm/mul_1.asm: Put vl operand last for umull/umlal.
	Add some header comments.
	* mpn/arm/addmul_1.asm: Rewrite.
	* mpn/arm/submul_1.asm: Rewrite.
	* mpn/arm/gmp-mparam.h: Retune.

2003-02-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/arm/copyi.asm: New file.
	* mpn/arm/copyd.asm: New file.

2003-02-16  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Tolerate incorrect last data
	byte seen on an arm system.

2003-02-15  Torbjorn Granlund  <tege@swox.com>

	* mpn/arm/gmp-mparam.h: Retune.

2003-02-13  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/750/com_n.asm: Add more cycle counts.

2003-02-13  Kevin Ryde  <kevin@swox.se>

	* configure.in (AC_PREREQ): Bump to 2.57.

	* configure.in, acinclude.m4 (GMP_GCC_WA_OLDAS): New macro, applying
	-Wa,-oldas only when necessary.

	* configure.in (powerpc*-*-*): Don't use -Wa,-mppc with gcc, it
	overrides options recent gcc adds for -mcpu, making generated code
	fail to assemble.

	* tune/tuneup.c (mpn_fft_table): Remove definition, it's in mul_fft.c.

2003-02-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/pentium4/sse2/gmp-mparam.h: Retune.
	* mpn/x86/k7/gmp-mparam.h: Retune.
	* mpn/x86/k6/gmp-mparam.h: Retune.
	* mpn/x86/p6/gmp-mparam.h: Retune.
	* mpn/x86/p6/mmx/gmp-mparam.h: Retune.

	* tests/mpz/t-mul.c (main): Rewrite FFT testing code.

2003-02-10  Torbjorn Granlund  <tege@swox.com>

	* config.guess: Recognize "power2" systems.

	* mpn/powerpc64/gmp-mparam.h: Fix indentation.
	* mpn/power/gmp-mparam.h: Retune.
	* mpn/alpha/ev6/nails/gmp-mparam.h: Retune.
	* mpn/sparc64/gmp-mparam.h: Retune.
	* mpn/pa64/gmp-mparam.h: Retune.
	* mpn/sparc32/v8/supersparc/gmp-mparam.h: Retune.
	* mpn/sparc32/v8/gmp-mparam.h: Retune.
	* mpn/mips64/gmp-mparam.h: Retune.
	* mpn/alpha/ev6/gmp-mparam.h: Retune.
	* mpn/powerpc32/gmp-mparam.h: Retune.
	* mpn/powerpc32/750/gmp-mparam.h: Retune.
	* mpn/alpha/ev5/gmp-mparam.h: Retune.
	* mpn/m68k/gmp-mparam.h: Retune.
	* mpn/cray/gmp-mparam.h: Set GET_STR_PRECOMPUTE_THRESHOLD.

	* configure.in: Undo this, problem doesn't happen any more:
	(mips64*-*-*): Pass just -O1 to cc, to work around compiler bug.

2003-02-03  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (MPN_NORMALIZE, MPN_NORMALIZE_NOT_ZERO): Add parens
	around macro parameters.  Reported by Jason Moxham.

2003-02-01  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Low-level Functions): No overlap permitted by mpn_mul_n.
	Reported by Jason Moxham.
	(Formatted Input Strings): Correction to strtoul cross reference
	formatting.
	(BSD Compatible Functions): Add index entry for MINT.

2003-01-29  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (mpn_mul_fft): Now returns int.

2003-01-29  Paul Zimmermann  <Paul.Zimmermann@loria.fr>

	* mpn/generic/mul_fft.c: Major rewrite.

2003-01-25  Kevin Ryde  <kevin@swox.se>

	* config.guess (powerpc*-*-*): Remove $dummy.core file when mfpvr
	fails on NetBSD.
	(trap): Remove $dummy.core on abnormal termination too.

	* mpfr/*: Update to mpfr cvs 2003-01-25.

2003-01-24  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/README: Update cycle counts to match current code.

2003-01-18  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-01-18.

2003-01-17  Torbjorn Granlund  <tege@swox.com>

	* gmp.texi: Canonicalize URLs.

2003-01-15  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Notes for Particular Systems): Add hardware floating point
	precision mode.

	* mpfr/*, configure, aclocal.m4, config.in: Update to mpfr cvs
	2003-01-15.

2003-01-11  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-01-11.

2003-01-09  Kevin Ryde  <kevin@swox.se>

	* mpfr/get_str.c: Update to mpfr cvs 2003-01-09.

	* doc/configuration: Various updates.

2003-01-06  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/copyi.asm: Avoid `nop' mnemonic, unsupported on Cray.
	* mpn/alpha/copyd.asm: Likewise.

2003-01-05  Kevin Ryde  <kevin@swox.se>

	* demos/expr/t-expr.c (check_r): Tolerate mpfr_set_str new return
	value.

	* configure, aclocal.m4 (*-*-osf4*, *-*-osf5*): Regenerate with
	libtool patch to avoid bash printf option problem when building shared
	libraries with cxx.

	* configure.in (pentium4-*-*): Use "-march=pentium4 -mno-sse2" since
	sse2 causes buggy code from gcc 3.2.1 and is only supported on new
	enough kernels.

	* acinclude.m4 (GMP_PROG_NM): Add some notes about failures, per
	report by Krzysztof Kozminski.

	* gmp-h.in (mpz_mdivmod_ui, mpz_mmod_ui): Add parens around "r".

	* gmp-h.in (__GMP_CAST): New macro, clean to g++ -Wold-style-cast.
	(GMP_NUMB_MASK, mpz_cmp_si, mpq_cmp_si, mpz_odd_p, mpn_divexact_by3,
	mpn_divmod): Use it.  Reported by Krzysztof Kozminski.
	(mpz_odd_p): No need for the outermost cast to "int".
	* tests/cxx/t-cast.cc: New file.
	* tests/cxx/Makefile.am: Add it.

2003-01-04  Kevin Ryde  <kevin@swox.se>

	* mpfr/set_str.c: Update to mpfr cvs 2003-01-04.

	* demos/expr/exprfra.c (e_mpfr_number): Tolerate recent mpfr_set_str
	returning count of characters accepted.

2003-01-03  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/copyi.asm: New file.
	* mpn/alpha/copyd.asm: New file.

2003-01-03  Kevin Ryde  <kevin@swox.se>

	* demos/expr/t-expr.c: Use __gmpfr on some mpfr internals that have
	changed.

	* mpfr/*, aclocal.m4, config.in, configure: Update to mpfr cvs
	2003-01-03.

	* gmp.texi (Introduction to GMP): Mention release announcements
	mailing list, and put home page and ftp before mailing lists.

2002-12-28  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_fft.c (mpn_fft_next_size): Simplify.

2002-12-28  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (M68K_PATTERN): New macro.
	(GMP_GCC_M68K_OPTIMIZE): Use it to avoid m6811 and friends.
	* configure.in: Ditto.

	* tests/mpz/t-import.c, tests/mpz/t-export.c: Use '\xHH' to avoid
	warnings about char overflows.
	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Ditto.

2002-12-28  Pedro Gimeno  <pggimeno@wanadoo.es>

	* randmt.c (randseed_mt, default_state): Fix off-by-one bug on padding.
	(randseed_mt): Add ASSERT checking result of mpz_export.

2002-12-24  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Integer Import and Export): Clarify treatment of signs,
	reported by Kent Boortz.

	* randmt.c: Use gmp_uint_least32_t.
	(randseed_mt): Add nails to mpz_export in case mt[i] more than 32 bits.

	* gmp-impl.h (gmp_uint_least32_t): New typedef, replacing GMP_UINT32.
	* configure.in (AC_CHECK_TYPES): Add uint_least32_t.
	(AC_CHECK_SIZEOF): Add unsigned short.

2002-12-22  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (ULONG_PARITY) [generic C]: Mask result to a single bit.
	(ULONG_PARITY) [_CRAY, __ia64]: New macros.
	* tests/t-parity.c: New test.
	* tests/Makefile.am (check_PROGRAMS): Add it.

	* longlong.h (count_trailing_zeros) [ia64]: New macro.

	* tests/t-count_zeros.c (check_various): Remove unused variable "n".

	* mpn/x86/README: Revise notes on PIC, PLT and GOT.

	* demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/test.pl: Add "mt"
	to GMP::Rand::randstate.

2002-12-22  Pedro Gimeno  <pggimeno@wanadoo.es>

	* randmt.c (randseed_mt): Fix bug that might cause the generator to
	return all zeros with certain seeds.  Fix WARM_UP==0 case.
	(gmp_randinit_mt): Initialize to a known state by default.
	(randget_mt): Remove check for uninitialized buffer: no longer needed.
	(recalc_buffer): Use ?: instead of two-element array.

	* tests/rand/t-mt.c: New test.
	* tests/rand/Makefile.am (check_PROGRAMS): Add it.

2002-12-21  Kevin Ryde  <kevin@swox.se>

	* cxx/osdoprnti.cc: Use <cstdarg> and <cstring> rather than <stdarg.h>
	and <string.h>.  No need for <stdio.h>.

	* demos/expr/expr.c, demos/expr/exprfa.c, demos/expr/exprfra.c,
	demos/expr/exprza.c: Use mp_get_memory_functions, not
	__gmp_allocate_func etc.
	* demos/expr/t-expr.c: Don't use gmp-impl.h.
	(numberof): New macro.

	* gmp-h.in, gmp-impl.h (__gmp_allocate_func, __gmp_reallocate_func,
	__gmp_free_func): Move declarations to gmp-impl.h

	* mp_get_fns.c: New file.
	* Makefile.am (libgmp_la_SOURCES, libmp_la_SOURCES): Add it.
	* gmp-h.in (mp_get_memory_functions): Add prototype.
	* gmp.texi (Custom Allocation): Add mp_get_memory_functions, refer to
	"free" not "deallocate" function.
	* gmpxx.h (struct __gmp_alloc_cstring): Use mp_get_memory_functions,
	not __gmp_free_func.

	* gmp-impl.h [__cplusplus]: Add <cstring> for strlen.
	(gmp_allocated_string): Hold length in a field.
	* cxx/osdoprnti.cc, cxx/osmpf.cc: Use this.

2002-12-20  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-perfsqr.c (check_sqrt): Print more variables upon
	failure.

	* mpn/generic/rootrem.c: In Newton loop, pad qp with leading zero.

2002-12-19  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/rootrem.c: Allocate 1.585 (log2(3)) times more space
	for pp temporary to allow for worst case overestimate of root.
	Add some asserts.

	* tests/mpz/t-root.c: Generalize and speed up.

2002-12-19  Kevin Ryde  <kevin@swox.se>

	* tests/cxx/t-rand.cc (check_randinit): Add gmp_randinit_mt test.

	* gmp-h.in: Don't bother trying to support Compaq C++ in pre-standard
	I/O mode.
	* gmp.texi (Notes for Particular Systems): Compaq C++ must be used in
	"standard" iostream mode.

2002-12-18  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/mod_34lsub1.asm: Add code for big-endian, using existing
	little-endian code only if HAVE_LIMB_LITTLE_ENDIAN is defined.

2002-12-18  Kevin Ryde  <kevin@swox.se>

	* configure.in (HAVE_LIMB_BIG_ENDIAN, HAVE_LIMB_LITTLE_ENDIAN): New
	defines in config.m4.

2002-12-17  Torbjorn Granlund  <tege@swox.com>

	* printf/printffuns.c (gmp_fprintf_reps): Make it actually work
	for padding > 256.

2002-12-17  Kevin Ryde  <kevin@swox.se>

	* tune/freq.c: Add <string.h> for memcmp.

	* mpz/pprime_p.c: Use MPN_MOD_OR_MODEXACT_1_ODD.

	* gmp.texi (Formatted Output Strings): %a and %A are C99 not glibc.
	(Formatted Input Strings): Type "l" is for double too.  Hex floats are
	accepted for mpf_t.
	(Formatted Input Functions): Describe tightened parse rule, clarify
	return value a bit.

	* scanf/doscan.c: Add hex floats, tighten matching to follow C99, for
	instance "0x" is no longer acceptable to "%Zi".
	Rename "invalid" label to avoid "invalid" variable, SunOS cc doesn't
	like them the same.
	* tests/misc/t-scanf.c: Update tests.
	* tests/misc/t-locale.c (check_input): Don't let "0x" appear from fake
	decimal point.

	* config.guess (sparc*-*-*): Look at BSD sysctl hw.model to recognise
	ultrasparcs.

	* mpfr/tests/dummy.c: New file.
	* mpfr/tests/Makefile.am (libfrtests_a_SOURCES): Add it.

2002-12-14  Kevin Ryde  <kevin@swox.se>

	* mpbsd/Makefile.am (nodist_libmpbsd_la_SOURCES): Move these mpz
	sources to libmpbsd_la_SOURCES directly, automake 1.7.2 now gets the
	ansi2knr setups right for sources in other directories.

	* mpfr/tests/Makefile.am: Add libfrtests.a in preparation for new mpfr.

2002-12-13  Kevin Ryde  <kevin@swox.se>

	* mpfr/Makefile.am (mpfr_TEXINFOS, AM_MAKEINFOFLAGS): Allow for
	fdl.texi in recent mpfr.

	* configure.in (AC_PROG_EGREP): Ensure this is run outside the Cray
	conditional AC_EGREP_CPP.

	* configure.in (alpha*-*-*): Use gcc -Wa,-oldas if it works, to avoid
	problems with new compaq "as" on OSF 5.1.

	* mpn/Makefile.am (EXTRA_DIST): Remove Makeasm.am, automake 1.7.2 does
	it automatically.

	* acinclude.m4 (AC_LANG_FUNC_LINK_TRY(C)): Remove this hack, fixed by
	autoconf 2.57.

	* configure.in (AC_CONFIG_LIBOBJ_DIR): Set to mpfr, for the benefit of
	new mpfr using LIBOBJ.

	* configure.in: (AM_INIT_AUTOMAKE): Use "gnu no-dependencies
	$(top_builddir)/ansi2knr".
	* */Makefile.am (AUTOMAKE_OPTIONS): Remove, now in configure.in.

	* configure, config.in, INSTALL.autoconf: Update to autoconf 2.57.
	* */Makefile.in, configure, aclocal.m4, install-sh, mkinstalldirs:
	Update to automake 1.7.2.

	* gmp.texi (Build Options): Add hppa64 to cpu types.
	(ABI and ISA): Add gcc to hppa 2.0.
	(Debugging): Add maximum debuggability config options.
	(Language Bindings): Add Arithmos, reported by Johan Vervloet.
	(Formatted Output Strings): 128 bits is about 40 digits, ll is only
	for long long not long double.
	(Formatted Input Strings): ll is only for long long not long double.

	* mpz/divis.c, mpz/divis_ui.c, mpz/cong.c, mpz/cong_ui.c: Allow d=0,
	under the rule n==c mod d iff exists q satisfying n=c+q*d.
	* gmp.texi (Integer Division): Describe this.
	Suggested by Jason Moxham.

2002-12-13  Pedro Gimeno  <pggimeno@wanadoo.es>

	* randlc2x.c (lc): Remove check for seedn < an, which is now
	superfluous.  Add ASSERT to ensure it's correct.  Add ASSERT to check
	precondition of __GMPN_ADD.
	(gmp_randinit_lc_2exp): Avoid reallocation by allocating one extra bit
	for both seed and a.  Simplify seedn < p->_cn case.

	* tests/rand/t-lc2exp.c (check_bigs): Test negative seeds.

2002-12-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/pa32/pa-defs.m4 (PROLOGUE_cpu): Zap spurious argument to `.proc'.
	Add empty `.callinfo'.

2002-12-11  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/pentium4/sse2/addmul_1.asm: Don't reuse `ret' symbol for a
	label.

2002-12-11  Kevin Ryde  <kevin@swox.se>

	* configure.in (hppa*-*-*): Don't use gcc -mpa-risc-2-0 in ABI=1.0.

	* mpn/pa32/pa-defs.m4: New file, arranging for .proc/.procend.
	* configure.in (hppa*-*-*): Use it.

	* printf/doprnt.c: Comments on "ll" versus "L".

	* tests/mpz/t-div_2exp.c: Reduce tests, especially the random ones.

2002-12-11  Torbjorn Granlund  <tege@swox.com>

	* mpz/get_d.c (limb2dbl): New macro for conversion to `double'.
	Define it to something non-trivial for 64-bit hppa.
	* mpq/get_d.c: Likewise.
	* mpf/get_d.c: Likewise.

	* mpn/x86/pentium4/sse2/addmul_1.asm: Unroll to save one c/l.

2002-12-09  Kevin Ryde  <kevin@swox.se>

	* tune/Makefile.am: Don't use -static under --disable-static, it tends
	not to work.
	* configure.in (ENABLE_STATIC): New AM_CONDITIONAL.

	* gmp-h.in: Use <iostream> instead of <iosfwd> with Compaq C++ in
	pre-standard I/O mode.

	* tests/mpz/t-jac.c, tests/mpz/t-scan.c: Reduce tests.

2002-12-08  Kevin Ryde  <kevin@swox.se>

	* configure.in (*-*-ultrix*): Remove forcible --disable-shared,
	believe this was a generic problem with libtool, now gone.

2002-12-08  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (USE_LEADING_REGPARM): Disable for PIC code generation.

2002-12-07  Torbjorn Granlund  <tege@swox.com>

	* tests/cxx/t-misc.cc (check_mpq): Use 0/1 for canonical 0 in
	mpq_cmp_ui calls.

	* configure.in (hppa2.0*-*-*): Pass +O2 instead of +O3 to work around
	compiler bug with mpfr/tests/tdiv.

2002-12-07  Kevin Ryde  <kevin@swox.se>

	* configure.in (hppa2.0*-*-* ABI=2.0n): Make -mpa-risc-2-0 optional.
	New hppa-level-2.0 test using GMP_HPPA_LEVEL_20 to detect assembler
	support for 2.0n.
	* acinclude.m4 (GMP_PROG_CC_WORKS): Add code that provokes an error
	from gcc -mpa-risc-2-0 if the assembler doesn't know 2.0 instructions.
	(GMP_HPPA_LEVEL_20): New macro.

2002-12-07  Pedro Gimeno  <pggimeno@wanadoo.es>

	* gmp-impl.h (gmp_randfnptr_t.randseed_fn) Return void.
	(LIMBS_PER_ULONG, MPN_SET_UI): New macros.
	(MPZ_FAKE_UI): Rename couple of parameters.

	* randlc2x.c (gmp_rand_lc_struct): _mp_c and _mp_c_limbs replaced
	with mpn style _cp and _cn.  All callers changed.
	(randseed_lc): Fix limbs(seed) > bits_to_limbs(m2exp) case.
	Remove return value.
	(gmp_randinit_lc_2exp): Attempt to avoid redundant reallocation.

	* randmt.c (mangle_seed): New function by Kevin.
	(randseed_mt): Use it instead of mpz_powm, for performance.  Remove
	return value.  Remove commented out code (an inferior alternative to
	mpz_export).

	* randsdui.c (gmp_randseed_ui): Use MPZ_FAKE_UI.

	* tests/rand/t-lc2exp.c (check_bigm, check_bigs): New tests.
	* tests/rand/t-urndmm.c: Add L to constants in calls, for K&R.

2002-12-06  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Remove -g.
	(hppa*-*-*): Pass -Wl,+vnocompatwarnings with +DA2.0.

2002-12-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/pa64/sqr_diagonal.asm: Remove .entry, .proc, .procend.
	* mpn/pa64/udiv.asm: Likewise.

2002-12-05  Kevin Ryde  <kevin@swox.se>

	* mpn/pa64/sub_n.asm: Remove space in "sub, db" which gas objects to.
	* mpn/pa64/*.asm, tune/hppa2.asm: Use ".level 2.0" for 2.0n, since gas
	doesn't like ".level 2.0N".

	* configure.in (hppa*-*-*): Group path and flags choices, for clarity.
	(hppa1.0*-*-*): Use gcc -mpa-risc-1-0 when available.
	(hppa2.0*-*-*): Ditto -mpa-risc-2-0.
	(*-*-hpux*): Exclude ABI=2.0w for hpux[1-9] and hpux10, rather than
	the converse of allowing it for hpux1[1-9]; ie. list the bad systems
	rather than try to guess the good systems.
	(hppa2.0*-*-*) [ABI=2.0n ABI=2.0w]: Add gcc to likely compilers.
	(hppa*-*-*) [gcc]: Test sizeof(long) to differentiate a 32-bit or
	64-bit build of the compiler.
	(hppa64-*-*): Add this as equivalent to hppa2.0-*-*.
	* acinclude.m4 (GMP_C_TEST_SIZEOF): New macro.

	* tests/tests.h (ostringstream::str): Must null-terminate
	ostrstream::str() for the string constructor.

2002-12-04  Torbjorn Granlund  <tege@swox.com>

	* mpn/pa32/hppa1_1/udiv.asm: Don't wrap symbol to INT64 in L() stuff.

	* longlong.h (mpn_udiv_qrnnd_r based udiv_qrnnd): Fix typo.

	* mpn/powerpc32/powerpc-defs.m4: Define float registers with `f'
	prefix.

2002-12-04  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Floating-point Functions): Note the mantissa is binary and
	decimal fractions cannot be represented exactly.  Suggested by Serge
	Winitzki.
	(Known Build Problems): Note libtool stripping options when linking.
	Reported by Vincent Lefevre.

	* acinclude.m4 (GMP_ASM_LABEL_SUFFIX): Don't make an empty result a
	failure, that's a valid result.
	(GMP_ASM_GLOBL): Establish this from the host cpu type.
	(IA64_PATTERN): New macro.
	(GMP_PROG_EXEEXT_FOR_BUILD, GMP_C_FOR_BUILD_ANSI,
	GMP_CHECK_LIBM_FOR_BUILD): Remove temporary files created.
	* configure.in: Use IA64_PATTERN.

2002-12-03  Torbjorn Granlund  <tege@swox.com>

	* tune/hppa.asm: Use config.m4.
	* tune/hppa2.asm: Likewise.
	* tune/hppa2w.asm: Likewise.

	* mpn/pa64: Use LDEF.

2002-12-03  Kevin Ryde  <kevin@swox.se>

	* INSTALL: Use return rather than exit in the example programs.
	Suggested by Richard Dawe.

	* gmp.texi (Build Options): Move non-unix notes to ...
	(Notes for Particular Systems): ... here.  Mention MS Interix,
	reported by Paul Leyland.
	(C++ Interface Random Numbers): Add gmp_randinit_mt to examples.

	* acinclude.m4 (GMP_ASM_LABEL_SUFFIX): Must test empty suffix first,
	for the benefit of hppa hp-ux.
	(GMP_ASM_UNDERSCORE): Grep the output of "nm" instead of trying to
	construct an asm file, and in case of failure fallback on no
	underscore and a warning.

	* longlong.h (count_leading_zeros, count_trailing_zeros) [ev67, ev68]:
	Restrict __asm__ ctlz and cttz to __GNUC__.

	* gen-psqr.c (HAVE_CONST, const): New macros.

	* tests/cxx/t-rand.cc (check_randinit): Add gmp_randinit_mt.

2002-12-02  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h: Split popc_limb again, combined version gives too many
	compiler warnings.

2002-12-01  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/gcdext.c (div1): Disable unused function.

	* mpz/root.c: Don't include stdlib.h or longlong.h.
	* mpz/rootrem.c: Likewise.

	* extract-dbl.c: abort => ASSERT_ALWAYS.
	* mpz/set_d.c: Likewise.
	* mpn/generic/tdiv_qr.c: Likewise.

	* gen-psqr.c (f_cmp_fraction, f_cmp_divisor): Change parameter to
	`const void *', to match qsort spec.

2002-12-01  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Integer Division): Fix a couple of @math's for tex.
	Use @dots in more places.

	* tests/cxx/t-locale.cc: Test non std::locale systems too.
	* tests/cxx/clocale.c: New file, reinstating what was localeconv.c,
	and subverting nl_langinfo too.
	* tests/cxx/Makefile.am (t_locale_SOURCES): Add it.

	* tests/tests.h (ostringstream, istringstream): Provide fakes of these
	if <sstream> not available.
	* tests/cxx/t-locale.cc, tests/cxx/t-ostream.cc: Remove <sstream>.
	* configure.in (AC_CHECK_HEADERS) [C++]: Add <sstream>.

2002-11-30  Torbjorn Granlund  <tege@swox.com>

	* printf/doprnt.c (__gmp_doprnt): Comment out a `break' to shut up
	compiler warnings.

	* mpn/ia64/invert_limb.asm: Add `many' hints to return insns.

	* mpn/ia64/divrem_1.asm: Allocate more local registers; put b0 in
	one of them.

	* mpn/ia64/popcount.asm: Properly restore register ar.lc.

	* longlong.h (umul_ppmm) [ia64]: Form both product parts in asm.

	* mpz/bin_uiui.c: Cast umul_ppmm operands.

	* scanf/doscan.c (gmpscan): Remove unused label store_get_digits.

	* gmp-impl.h: #undef MIN and MAX before #defining.

	* mpn/ia64/copyi.asm: Add `;' after bundle declarators.
	* mpn/ia64/copyd.asm: Likewise.

	* mpn/ia64/divrem_1.asm: Add some syntax to placid the HP-UX assembler.

2002-11-30  Kevin Ryde  <kevin@swox.se>

	* configure.in (AC_CHECK_HEADERS): Add nl_types.h.
	* tests/misc/t-locale.c: Use this, for nl_item on netbsd 1.4.1.

2002-11-29  Torbjorn Granlund  <tege@swox.com>

	* tests/devel/addmul_1.c: Provide prototype for mpn_print.
	(OPS): Account for function overhead.
	* tests/devel/{submul_1.c,mul_1.c,add_n.c,sub_n.c}: Likewise.

	* mpn/ia64/addmul_1.asm: Rewrite.

2002-11-28  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/sqr_diagonal.asm: Don't allocate any registers.

	* mpn/ia64/submul_1.asm: Adapt to Itanium 2.

	* mpn/ia64/mul_1.asm: Fix typo in HAVE_ABI_32 code.

	* mpn/ia64/add_n.asm: Rewrite.
	* mpn/ia64/sub_n.asm: Rewrite.

2002-11-28  Kevin Ryde  <kevin@swox.se>

	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Use this rather
	than libdummy.
	* tests/Makefile.am (EXTRA_libtests_la_SOURCES): Use this for
	x86call.asm and x86check.c rather than libdummy.

2002-11-27  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-mul.c: Implement reference Karatsuba multiplication.
	Rewrite testing scheme to run fewer really huge tests.

2002-11-26  Torbjorn Granlund  <tege@swox.com>

	* tests: Decrease repetition count for some of the slowest tests.

	* mpn/ia64/divrem_1.asm: New file.

2002-11-25  Torbjorn Granlund  <tege@swox.com>

	* mpfr/tests/tdiv.c: Decrease number of performed tests.

2002-11-23  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/mul_1.asm: Rewrite.

2002-11-23  Kevin Ryde  <kevin@swox.se>

	* mpn/ia64/README: Add some references.

	* gmp.texi (Build Options): Add itanium and itanium2, mention DocBook
	and XML from makeinfo, add texinfo top level cross reference.
	(Integer Division): Try to clarify 2exp functions a bit.
	(C++ Interface Floats): Giving bad string to constructor is undefined.
	(C++ Interface Integers, C++ Interface Rationals): Ditto, and show
	default base in prototype, not the description.

	* config.sub, config.guess, configure.in (itanium, itanium2): New cpu
	types.

	* tests/misc/t-printf.c, tests/misc/t-scanf.c (check_misc): Suppress
	%zd test on glibc prior to 2.1, it's not supported.

2002-11-22  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/copyi.asm: Optimize for Itanium 2.
	* mpn/ia64/copyd.asm: Likewise.

2002-11-20  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/sqr_diagonal.asm: New file.

	* mpn/ia64/submul_1.asm: Handle vl == 0 specially.

2002-11-20  Kevin Ryde  <kevin@swox.se>

	* tests/cxx/t-locale.cc: Test with locales imbued into stream, use
	<sstream>, eliminated some C-isms.  istream tests disabled, not yet
	locale-ized.
	* tests/cxx/Makefile.am (t_locale_SOURCES): Remove localeconv.c.
	* tests/cxx/localeconv.c: Remove file.

	* configure.in (AC_CHECK_TYPES) [C++]: Add std::locale.
	* printf/doprntf.c: Add decimal point parameter, remove localeconv use.
	* gmp-impl.h (__gmp_doprnt_mpf): Update prototype, bump symbol to
	__gmp_doprnt_mpf2 to protect old libgmpxx.
	* cxx/osmpf.cc: Use this with ostream locale decimal_point facet.
	* printf/doprnt.c: Ditto, with GMP_DECIMAL_POINT.

	* gmp-h.in: More comments on __declspec for windows DLLs.

	* mpf/set_str.c, scanf/doscan.c: Cast through "unsigned char" for
	decimal point string, same as input chars.

	* configure.in (AC_CHECK_HEADERS): Add langinfo.h.
	(AC_CHECK_FUNCS): Add nl_langinfo.
	* gmp-impl.h (GMP_DECIMAL_POINT): New macro.
	* mpf/out_str.c, mpf/set_str.c, scanf/doscan.c: Use it, and don't
	bother with special code for non-locale systems.
	* tests/misc/t-locale.c: Subvert nl_langinfo too.

	* configure.in, acinclude.m4 (GMP_ASM_X86_GOT_UNDERSCORE): New macro.
	* mpn/x86/x86-defs.m4 (_GLOBAL_OFFSET_TABLE_): New macro, inserting
	extra underscore for OpenBSD.
	* mpn/x86/README (_GLOBAL_OFFSET_TABLE_): Update notes.
	Reported by Christian Weisgerber.

	* tests/cxx/t-rand.cc (check_randinit): New function, collecting up
	constructor tests.

	* tests/cxx/t-ostream.cc: Use <sstream> instead of <strstream>, use
	compare instead of strcmp.

	* gmpxx.h (__gmp_randinit_lc_2exp_size_t): Return type is int.

2002-11-18  Kevin Ryde  <kevin@swox.se>

	* tune/speed.c (r_string): Use CNST_LIMB with <N>bits, spotted by
	Torbjorn.

2002-11-19  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/mul_1.asm: Remove redundant cmp from prologue code.
	Streamline prologue.
	* mpn/ia64/addmul_1.asm: Likewise.
	* mpn/ia64/submul_1.asm: New file.
	* mpn/ia64/submul_1.c: Remove.

2002-11-17  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/popham.c: New file, using new faster algorithm.
	* mpn/generic/popcount.c: Remove.
	* mpn/generic/hamdist.c: Remove.

	* mpn/ia64/addmul_1.asm: Don't clobber callee-saves register f16.
	* mpn/ia64/mul_1.asm: Likewise.

	* mpn/ia64/addmul_1.asm: Add pred.rel declarations.  Resolve RAW
	hazards for condition code registers, duplicating code as needed.  Add
	prediction to all branches.
	* mpn/ia64/mul_1.asm: Likewise.
	* mpn/ia64/add_n.asm: Likewise.
	* mpn/ia64/sub_n.asm: Likewise.
	* mpn/ia64/copyi.asm: Likewise.
	* mpn/ia64/copyd.asm: Likewise.

	* mpn/generic/random2.c: Add a cast to silence some compilers.

2002-11-16  Torbjorn Granlund  <tege@swox.com>

	* mpz/powm.c: Cap allocation by limiting k to 10 (512 precomputed
	values).

2002-11-16  Kevin Ryde  <kevin@swox.se>

	* configure.in, gmp.texi: Remove powerpc64 ABI=32L, doesn't work and
	is unlikely to ever do so.
	* configure.in: Allow ABI=32 for powerpc64.
	Reported by David Edelsohn.

2002-11-14  Kevin Ryde  <kevin@swox.se>

	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add addmul_2.c
	addmul_3.c addmul_4.c addmul_5.c addmul_6.c addmul_7.c addmul_8.c.

	* gmp-h.in (__GMP_DECLSPEC_EXPORT, __GMP_DECLSPEC_IMPORT) [__GNUC__]:
	Use __dllexport__ and __dllimport__ to keep out of application
	namespace.

2002-11-14  Gerardo Ballabio <gerardo.ballabio@unimib.it>

	* gmpxx.h (__gmp_randinit_default_t, __gmp_randinit_lc_2exp_t,
	__gmp_randinit_lc_2exp_size_t): Use extern "C" { typedef ... }, for
	the benefit of g++ prior to 3.2.

2002-11-12  Kevin Ryde  <kevin@swox.se>

	* gmpxx.h (gmp_randclass constructors): Patch from Roberto Bagnara to
	use extern "C" on C function pointer arguments.

2002-11-09  Kevin Ryde  <kevin@swox.se>

	* configure.in, Makefile.am, printf/Makefile.am,
	printf/repl-vsnprintf.c: Handle vsnprintf replacement with C
	conditionals.

	* acinclude.m4 (AC_LANG_FUNC_LINK_TRY(C)): Workaround troubles recent
	HP cc +O3 causes for AC_CHECK_FUNCS.

	* gmp.texi (Notes for Particular Systems): Add Sparc app regs.
	(Debugging): Note gcc -fstack options to detect overflow.
	(Formatted Output Strings, Formatted Input Strings): Format strings
	are not multibyte.

2002-11-06  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/tdiv_qr.c: Remove a bogus assert.

2002-11-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/tdiv_qr.c: Remove two dead mpn_divrem_2 calls.

2002-11-04  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_C_INLINE): Don't define "inline" for C++.

	* demos/expr/expr-impl.h (stdarg.h): Test __DECC same as gmp.h.

	* mpbsd/mtox.c, printf/obprintf.c, printf/obvprintf.c,
	scanf/vsscanf.c, demos/expr/expr.c, demos/expr/exprf.c,
	demos/expr/exprfa.c, demos/expr/exprfr.c, demos/expr/exprq.c,
	demos/expr/exprz.c, demos/expr/exprza.c: Add <string.h> for strlen and
	memcpy.

2002-11-02  Kevin Ryde  <kevin@swox.se>

	* longlong.h: Test __x86_64__ not __x86_64.  Reported by Andreas
	Jaeger.

	* mpz/import.c, mpz/export.c: Use char* subtract from NULL to get
	pointer alignment, for the benefit of Cray vector systems.

	* cxx/ismpf.cc: Use <clocale>.
	* tests/cxx/t-locale.cc: No need to conditionalize <clocale>.

	* scanf/doscan.c: Don't use isascii, rely on C99 ctype.h.

	* gmp.texi (Build Options): Describe CC_FOR_BUILD, cross reference
	texinfo manual.
	(ABI and ISA): Add powerpc620 and powerpc630 to powerpc64, add NetBSD
	and OpenBSD sparc64.
	(Notes for Package Builds): Cross reference libtool manual.
	(Notes for Particular Systems): Add OpenBSD to non-MMX versions of gas.
	(Known Build Problems): Add MacOS X C++ shared libraries.

2002-10-31  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h, tune/speed.c, tune/speed.h, tune/common.c, tune/many.pl,
	tests/devel/try.c, tests/tests.h, tests/refmpn.c (mpn_addmul_5,
	mpn_addmul_6, mpn_addmul_7, mpn_addmul_8): Add testing and measuring.
	* configure.in (config.in): Add #undefs of HAVE_NATIVE_mpn_addmul_5,
	HAVE_NATIVE_mpn_addmul_6, HAVE_NATIVE_mpn_addmul_7,
	HAVE_NATIVE_mpn_addmul_8.
	(gmp_mpn_functions_optional): Add addmul_5 addmul_6 addmul_7 addmul_8.

	* tests/devel/try.c (ASSERT_CARRY): Remove, now in gmp-impl.h
	(try_one): Do dest setups after sources, for benefit of
	dst0_from_src1.

2002-11-01  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/tdiv_qr.c: Avoid quadratic behaviour for
	sub-division when numerator is more than twice the size of the
	denominator.  Simplify loop logic for the same case.  Clean up a
	few comments.

2002-10-29  Torbjorn Granlund  <tege@swox.com>

	* configure.in (*-cray-unicos*): Pass -hnofastmd again.

2002-10-25  Torbjorn Granlund  <tege@swox.com>

	* tests/tadd.c: Disable test of denorms.

2002-10-23  Linus Nordberg  <linus@swox.se>

	* gmp.texi (Introduction to GMP): Update section about mailing
	lists.

2002-10-23  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in (__GMP_ATTRIBUTE_PURE): Suppress this when
	__GMP_NO_ATTRIBUTE_CONST_PURE is defined.
	* gmp-impl.h (ATTRIBUTE_CONST): Ditto.
	* tune/common.c: Use __GMP_NO_ATTRIBUTE_CONST_PURE.

	* tune/speed.h, tune/many.pl: Remove ATTRIBUTEs from prototypes.
	* tune/speed.h: Remove various "dummy" variables attempting to keep
	"pure" calls live, no longer necessary.  They weren't sufficient for
	recent MacOS cc anyway.

2002-10-21  Torbjorn Granlund  <tege@swox.com>

	* mpn/cray/ieee/addmul_1.c: Handle overlap as in mul_1.c.
	* mpn/cray/ieee/submul_1.c: Likewise.

2002-10-19  Kevin Ryde  <kevin@swox.se>

	* configure.in (sparcv9 etc -*-*bsd*): Add support for NetBSD and
	OpenBSD sparc64.  Reported by Christian Weisgerber.
	(AC_CHECK_HEADERS): Add sys/param.h for sys/sysctl.h on *BSD.

	* demos/calc/calc.y: Change ={ to {, needed for bison 1.50.

	* longlong.h (count_leading_zeros, count_trailing_zeros) [x86_64]:
	Should be UDItype.

	* mpz/set_str.c, mpf/set_str.c, mpbsd/xtom.c, scanf/sscanffuns.c: Cast
	chars through "unsigned char" to zero extend, required by C99 ctype.h.

2002-10-18  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-root.c: Test also mpz_rootrem.

	* mpn/generic/rootrem.c: Avoid overflow problem when n is huge.

	* mpz/root.c: Avoid overflow problems in allocation computation; also
	simplify it.  Misc cleanups.

	* mpz/rootrem.c: New file.
	* Makefile.am, mpz/Makefile.am, gmp-h.in: Add them.

2002-10-17  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (popc_limb): Combine variants.

2002-10-14  Kevin Ryde  <kevin@swox.se>

	* configure.in (AC_CHECK_HEADERS): Add sys/time.h for sys/resource.h
	test, needed by SunOS, and next autoconf will insist headers actually
	compile.

2002-10-08  Kevin Ryde  <kevin@swox.se>

	* tune/time.c (speed_time_init): Allow for Cray times() apparently
	being a cycle counter.

	* dumbmp.c (mpz_get_str): Fix buf size allocation.

	* tests/trace.c, tests/tests.h (mp_limb_trace): New function.

	* tune/speed-ext.c (SPEED_EXTRA_PROTOS): Use __GMP_PROTO.
	* tests/devel/try.c (malloc_region): Add a cast for SunOS cc.

	* configure.in (AC_CHECK_FUNCS): Add strerror.
	(AC_CHECK_DECLS): Add sys_errlist, sys_nerr.
	* tune/time.c, tests/devel/try.c: Use them.

2002-10-05  Kevin Ryde  <kevin@swox.se>

	* configure.in (AC_CHECK_HEADERS): Test float.h, not in SunOS cc.
	* printf/repl-vsnprintf.c: Use this.

	* configure.in (*sparc*-*-*): Collect up various options for clarity,
	use gcc -mcpu=supersparc and ultrasparc3, use cc -xchip, don't use
	-xtarget=native, use cc configs with acc, merge SunOS bundled cc and
	SunPRO cc configs.

	* gmp-impl.h (gmp_randfnptr_t): Use __GMP_PROTO.
	(MPZ_REALLOC): Cast _mpz_realloc return value to mp_ptr, for the
	benefit of SunOS cc which requires pointers of the same type on the
	two legs of a ?:.

	* dumbmp.c (mpz_realloc): Add a cast to avoid a warning from SunOS cc.

	* acinclude.m4: Allow for i960 b.out default cc output.

	* gmp.texi (Random State Initialization): Add gmp_randinit_mt.
	(Perfect Square Algorithm): Describe new mpn_mod_34lsub1 use.
	(Factorial Algorithm): Describe Jason's new code.
	(Binomial Coefficients Algorithm): Ideas about improvements
	moved to doc/projects.html.
	(Contributors): Add Jason Moxham and Pedro Gimeno.

2002-10-03  Kevin Ryde  <kevin@swox.se>

	* gen-psqr.c: New file.
	* Makefile.am, mpn/Makefile.am: Use it to generate mpn/perfsqr.h.
	* mpn/generic/perfsqr.c: Use generated data, put mod 256 data into
	limbs to save space, use mpn_mod_34lsub1 when good.
	* tests/mpn/t-perfsqr.c: New file.
	* tests/mpn/Makefile.am (check_PROGRAMS): Add it.
	* tests/mpz/t-perfsqr.c (check_modulo): New test.
	(check_sqrt): New function holding current tests.

	* configure.in (AC_INIT): Modernize to package name and version here
	rather than AM_INIT_AUTOMAKE, add bug report email.
	(AC_CONFIG_SRCDIR): New macro.

	* gmp-impl.h (ROUND_UP_MULTIPLE): Fix for non-power-of-2 moduli (not
	normal in current uses), clarify the comments a bit.

2002-09-30  Kevin Ryde  <kevin@swox.se>

	* mpn/Makeasm.am (.s.lo): Add --tag=CC for the benefit of CCAS!=CC,
	same as .S.lo and .asm.lo.

	* Makefile.am (gen-fac_ui, gen-fib, gen-bases): Quote source files in
	test -f stuff to avoid Sun make rewriting them.

2002-09-28  Kevin Ryde  <kevin@swox.se>

	* tests/devel/try.c, tune/speed.c: Avoid strings longer than C99
	guarantees.

	* tests/refmpn.c, tests/tests.h (refmpn_zero_extend, refmpn_normalize,
	refmpn_sqrtrem): New functions.
	* tests/devel/try.c (TYPE_SQRTREM): Use refmpn_sqrtrem.
	(compare): Correction to tr->dst_size subscripting.

	* dumbmp.c: Add several new functions, allow for initial n<d in
	mpz_tdiv_q (now in mpz_tdiv_qr actually).

	* gen-bases.c (chars_per_limb): Get GMP_NUMB_BITS for base==2,
	similarly other powers of 2, which this was in the past.
	* tests/refmpn.c (refmpn_chars_per_limb): Ditto.
	* tests/mpn/t-mp_bases.c: Test chars_per_limb for power-of-2 bases too.

	* Makefile.am, mpz/Makefile.am: Setups for gen-fac_ui.c generating
	mpz/fac_ui.h.

2002-09-28  Jason Moxham <J.L.Moxham@maths.soton.ac.uk>

	* dumbmp.c (mpz_pow_ui, mpz_addmul_ui, mpz_root): New functions.
	* gen-fac_ui.c: New file.
	* mpz/fac_ui.c: Rewrite.

2002-09-26  Kevin Ryde  <kevin@swox.se>

	* tests/cxx/localeconv.c: New file, split from t-locale.cc.
	* tests/cxx/t-locale.cc: Use it.
	* tests/cxx/Makefile.am (t_locale_SOURCES): Add it.

	* tests/cxx/Makefile.am: Updates for Gerardo's new test programs.

2002-09-26  Gerardo Ballabio <gerardo.ballabio@unimib.it>

	* gmpxx.h (__gmp_cmp_function): Bug fixes in double/mpq and
	double/mpfr comparisons.

	* tests/cxx/t-assign.cc, tests/cxx/t-binary.cc, tests/cxx/t-constr.cc,
	tests/cxx/t-ternary.cc, tests/cxx/t-unary.cc: Revise and add various
	tests, including some for mpfr, some split from t-expr.cc.
	* tests/cxx/t-locale.cc: Modernize include files.
	* tests/cxx/t-ostream.cc: Modernize include files, use cout rather
	than printf for diagnostics.
	* tests/cxx/t-misc.cc, tests/cxx/t-rand.cc: New file, split from
	t-allfuns.cc.
	* tests/cxx/t-ops.cc: New file, some split from t-allfuns.cc.
	* tests/cxx/t-prec.cc: New file.
	* tests/cxx/t-allfuns.cc, tests/cxx/t-expr.cc: Remove files.

2002-09-25  Torbjorn Granlund  <tege@swox.com>

	* configure.in (*-cray-unicos*): Remove -hscalar0, it causes too much
	performance loss.  Let's trust Cray to fix their compilers.

2002-09-24  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/add_n.asm: Rewrite.
	* mpn/powerpc32/sub_n.asm: Rewrite.

2002-09-24  Pedro Gimeno  <pggimeno@wanadoo.es>

	* randlc2x.c: Prepare for nails by changing type of _mp_c to mpz_t,
	make _mp_seed fixed-size, disallow SIZ(a)==0 to optimize comparisons
	for mpn_mul.
	* gmp-impl.h (MPZ_FAKE_UI): New macro.

	* randmt.c: Some constants made long for K&R compliance; remove UL at
	the end of other constants; use mp_size_t where appropriate; use
	mpz_export to split the seed.

	* gmp-impl.h: Remove type cast in RNG_FNPTR and RNG_STATE, to allow
	them to be used as lvalues.
	* randclr.c, randlc2x.c, randmt.c, randsd.c: All callers changed.

	* mpz/urandomm.c: Replace mpn_cmp with MPN_CMP.

	* tests/rand/gen.c: Get rid of gmp_errno.

2002-09-24  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Custom Allocation): Keep allocate_function etc out of the
	function index by using @deftypevr.
	More index entries.

2002-09-24  Gerardo Ballabio <gerardo.ballabio@unimib.it>

	* gmpxx.h (mpfr_class constructors from strings): Precision was set
	incorrectly, fixed.

2002-09-23  Torbjorn Granlund  <tege@swox.com>

	* mpf/urandomb.c: Don't crash for overlarge nbits argument.
	Let nbits==0 mean to fill number with random bits.

2002-09-21  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/mod_34lsub1.asm: Add r31 dummy operand to `br' instruction.

2002-09-20  Gerardo Ballabio <gerardo.ballabio@unimib.it>

	* gmpxx.h (__gmp_binary_equal, __gmp_binary_not_equal): Fix broken
	mpq/double functions.

2002-09-18  Torbjorn Granlund  <tege@swox.com>

	* randmt.c (randget_mt): Fix typo.

2002-09-18  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (_gmp_rand): Avoid evaluating "state" more than once, for
	the benefit places calling it with RANDS.

	* randmt.c (randseed_mt): Use mpz_init for mod and seed1, for safety.

	* tune/tuneup.c (sqr_karatsuba_threshold): Initialize to
	TUNE_SQR_KARATSUBA_MAX so mpn_sqr_n works for randmt initialization.

	* gmp.texi (Integer Comparisons): Remove mention of non-existent
	mpz_cmpabs_si, reported by Conrad Curry.

	* tune/speed.c, tune/speed.h, tune/common.c: Add gmp_randseed,
	gmp_randseed_ui and mpz_urandomb.

2002-09-18  Pedro Gimeno  <pggimeno@wanadoo.es>

	* tests/rand/gen.c: Add mt, remove lc and bbs.

	* Makefile.am (libgmp_la_SOURCES): Add randmt.c, remove randlc.c and
	randraw.c.

	* randmt.c: New file.
	* gmp-h.in (gmp_randinit_mt): Add prototype.
	* randdef.c: Use gmp_randinit_mt.

	* gmp-impl.h (RNG_FNPTR, RNG_STATE): New macros.
	(gmp_randfnptr_t): New structure.
	(_gmp_rand): Now a macro not a function.
	* gmp-h.in (__gmp_randata_lc): Remove, now internal to randlc2x.c.
	(__gmp_randstate_struct): Revise comments on field usage.
	* randsd.c, randclr.c: Use function pointer scheme.
	* randsdui.c: Use gmp_randseed.
	* randraw.c: Remove file.
	* randlc2x.c: Collect up lc_2exp related code from randsd.c, randclr.c
	and randraw.c, use function pointer scheme, integrate seed==0/a==0
	into main case and fix case where bits(a) < m2exp.

	* randlc.c: Remove file, never documented and never worked.
	* gmp-h.in (gmp_randinit_lc): Remove prototype.

2002-09-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/mod_34lsub1.asm: New file.

2002-09-16  Kevin Ryde  <kevin@swox.se>

	* configure.in, acinclude.m4 (GMP_C_RESTRICT): Remove this, not
	currently used, and #define restrict upsets Microsoft C headers on
	win64.  Reported by David Librik.

	* configure.in (x86): Add gcc 3.2 -march and -mcpu flags, remove some
	unnecessary -march=i486 fallbacks.

	* gmp.texi (Notes for Particular Systems): Note cl /MD is required for
	Microsoft C and MINGW to cooperate on I/O.  Explained by David Librik.
	(Language Bindings): Add linbox.
	* gmp.texi (Language Bindings):

2002-09-12  Kevin Ryde  <kevin@swox.se>

	* mpz/aorsmul_i.c: Allow for w==x overlap with nails.  Test
	BITS_PER_ULONG > GMP_NUMB_BITS rather than GMP_NAIL_BITS != 0.
	* tests/mpz/t-aorsmul.c: Test this.

	* tune/common.c: mpn_mod_34lsub1 only exists for GMP_NUMB_BITS%4==0
	* tune/speed.c: Add mpn_mod_34lsub1.

2002-09-10  Pedro Gimeno  <pggimeno@wanadoo.es>

	* rand.c: Remove old disabled BBS code.
	* mpf/urandomb.c: Use BITS_TO_LIMBS.

2002-09-10  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Multiplication Algorithms): FFT is now enabled by default.

2002-09-10  Pedro Gimeno  <pggimeno@wanadoo.es>

	* mpz/urandomm.c: Use mpn level functions, avoid an infinite loop if
	_gmp_rand forever returns all "1" bits.
	* tests/rand/t-urndmm.c: New file
	* tests/rand/Makefile.am (check_PROGRAMS): Add it.

	* gmp-impl.h (BITS_TO_LIMBS): New macro.
	* mpz/urandomb.c: Use it, and use MPZ_REALLOC.

2002-09-08  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_GCC_WA_MCPU): New macro.
	* configure.in (alpha*-*-*): Use it to avoid -Wa,-mev67 if gas isn't
	new enough to know ev67.  Reported by David Bremner.

2002-07-30  Gerardo Ballabio <gerardo.ballabio@unimib.it>

	* gmpxx.h (__gmpz_value etc): Remove, use mpz_t etc instead.
	(__gmp_expr): Reorganise specializations, use __gmp_expr<T,T> not
	mpz_class etc.
	(mpfr evals): Remove mode parameter, was always
	__gmp_default_rounding_mode anyway.

2002-09-07  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in, mp-h.in: Use #ifdef for tests, for the benefit of
	applications using gcc -Wundef.

	* longlong.h: Define COUNT_LEADING_ZEROS_NEED_CLZ_TAB for all alphas,
	since mpn/alpha/cntlz.asm always goes into libgmp.so, even for ev67
	and ev68 which don't need it.  Reported by David Bremner.

	* gmp.texi (Demonstration Programs): New section, expanding on what
	was under "Build Options".
	(Converting Floats): Don't need \ for _ in @var within @math.
	Add and amend various index entries.

	* demos/qcn.c: Add -p prime limit option.

2002-08-30  Kevin Ryde  <kevin@swox.se>

	* mpz/pprime_p.c: Handle small negatives with isprime, in particular
	must do so for n==-2.
	* tests/mpz/t-pprime_p.c: New file.
	* tests/mpz/Makefile.am: Add it.

2002-08-26  Torbjorn Granlund  <tege@swox.com>

	* gmp.texi (Converting Floats): Fix typo in mpf_get_d_2exp docs,
	reported by Paul Zimmermann.

2002-08-26  Kevin Ryde  <kevin@swox.se>

	* configure.in: Echo the ABI being tried for the compilers.
	(powerpc*-*-*): Use powerpc64/aix.m4 for ABI=aix64 too.
	(AC_CHECK_FUNCS): Add strtol, for tests/rand/gen.c.

2002-08-24  Kevin Ryde  <kevin@swox.se>

	* configure.in (HAVE_HOST_CPU_, HAVE_HOST_CPU_FAMILY_, HAVE_NATIVE_):
	Setup templates for these using AH_VERBATIM rather than acconfig.h,
	preferred by latest autoconf.  Prune lists to just things used.
	* acconfig.h: Remove file.

	* mpn/powerpc32/mode1o.asm: Forgot ASM_START.

	* tune/time.c (have_cgt_id): Renamed from HAVE_CGT_ID so avoid
	confusion with autoconf outputs, and turn it into a "const" variable.

2002-08-23  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Choose powerpc32/aix.m4 or powerpc64/aix.m4 based on
	ABI, not configuration triple.

	* mpz/pprime_p.c: Partially undo last change--handle small and
	negative numbers in the same test.

2002-08-22  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (MUL_FFT_THRESHOLD, SQR_FFT_THRESHOLD): Note
	mpn/generic/mul_fft.c is not nails-capable, and don't bother setting
	other FFT data for nails.

	* configfsf.guess: Update to 2002-08-19.
	* configfsf.sub: Update to 2002-08-20.

	* config.guess (powerpc*-*-*): Use a { } construct to suppress SIGILL
	message on AIX.

2002-08-20  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Build Options): Add ia64 under cpu types.
	(ABI and ISA): Describe IRIX 6 ABI=o32.
	(Notes for Particular Systems): Remove -march=pentiumpro, now ok.
	(Known Build Problems): Binutils 2.12 is ok for libgmp.a.
	(Emacs): New section.
	(Language Bindings): Update MLton URL, reported by Stephen Weeks.
	(Prime Testing Algorithm): New section.
	Don't put a blank line after @item in @table since it can make a page
	break between the heading and the entry.
	Misc tweaks elsewhere, in particular more index entries.

	* mpz/millerrabin.c: Need x to be size+1 for change to urandomm.

	* gmp-impl.h: Comments on the use of __GMP_DECLSPEC.

	* tune/time.c (freq_measure_mftb_one): Use struct_timeval, for the
	benefit of mingw.

	* tests/refmpn.c, tests/tests.h (ref_addc_limb, ref_subc_limb):
	Renamed from add and sub, following gmp-impl.h ADDC_LIMB and SUBC_LIMB.

2002-08-17  Kevin Ryde  <kevin@swox.se>

	* mpn/powerpc32/mode1o.asm: New file.
	* configure.in, acinclude.m4 (GMP_ASM_POWERPC_PIC_ALWAYS): New macro.
	* mpn/asm-defs.m4: Use it to help setting up PIC.

	* configure.in (AC_PREREQ): Bump to 2.53.

	* mpn/powerpc32/powerpc-defs.m4 (ASSERT): New macro.
	(PROLOGUE_cpu): New macro, giving ALIGN(4) not 8.

2002-08-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/m68k/lshift.asm: Fix typo in !scale_available_p code.
	* mpn/m68k/rshift.asm: Likewise.

2002-08-16  Kevin Ryde  <kevin@swox.se>

	* configure.in (--enable-profiling=instrument): New option.
	* gmp.texi (Profiling): Describe it.
	* mpn/x86/x86-defs.m4 (PROLOGUE_cpu, call_instrument, ret_internal):
	Add support.
	(call_mcount): Share PIC setups with call_instrument.
	* mpn/x86/*.asm: Use ret_internal.
	* mpn/asm-defs.m4 (m4_unquote): New macro.
	* tests/mpn/t-instrument.c: New file.
	* tests/mpn/Makefile.am: Add it.

	* mpn/alpha/umul.asm: Add ASM_END.

2002-08-12  Kevin Ryde  <kevin@swox.se>

	* mpz/pprime_p.c: Fake up a local mpz_t to take abs(n), rather than
	using mpz_init etc.

	* mpz/millerrabin.c: Use mpz_urandomm for uniform selection of x,
	reported by Jason Moxham.  Exclude x==n-1, ie. -1 mod n.  Use
	gmp_randinit_default.

	* mpn/alpha/umul.asm: Use "r" registers, for the benefit of Unicos.

	* tests/devel/try.c: Add mpn_copyi and mpn_copyd.

2002-08-09  Kevin Ryde  <kevin@swox.se>

	* Makefile.am: Remove configure.lineno from DISTCLEANFILES and gmp.tmp
	from MOSTLYCLEANFILES, automake does these itself now.

	* */Makefile.in, aclocal.m4, configure, install-sh, missing,
	mkinstalldirs: Update to automake 1.6.3.

	* mpn/ia64/README: Some notes on assembler syntax.

	* mpn/ia64/add_n.asm, mpn/ia64/sub_n.asm: Add .body.
	* mpn/ia64/add_n.asm, mpn/ia64/addmul_1.asm, mpn/ia64/mul_1.asm,
	mpn/ia64/sub_n.asm: Position .save ar.lc just before relevant
	instruction.
	* mpn/ia64/addmul_1.asm, mpn/ia64/mul_1.asm: Add .save ar.pfs and pr.
	* mpn/ia64/copyd.asm, mpn/ia64/copyi.asm: Correction to .body position.
	* mpn/ia64/lorrshift.asm: Add .prologue stuff.

	* configure.in (*-*-unicos*): Remove forcible --disable-shared,
	libtool gets this right itself now.

2002-08-07  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium/mmx/hamdist.asm: New file, adapted from
	mpn/x86/pentium/mmx/popham.asm.
	* mpn/x86/pentium/mmx/popham.asm: Remove file, not faster than plain
	mpn/x86/pentium/popcount.asm for the popcount.

	* mpn/alpha/umul.asm: Use PROLOGUE/EPILOGUE, rename it mpn_umul_ppmm.
	* configure.in (alpha*-*-*): Add umul to extra_functions.

	* mpz/remove.c: Make src==0 return 0, not do DIVIDE_BY_ZERO.

2002-08-05  Torbjorn Granlund  <tege@swox.com>

	* acconfig.h: Remove spurious undefs for mpn_divrem_newton and
	mpn_divrem_classic.

2002-08-05  Kevin Ryde  <kevin@swox.se>

	* tests/refmpn.c, tests/tests.h, tests/misc/t-printf.c,
	tests/mpf/t-trunc.c, tests/mpn/t-mp_bases.c, tests/mpn/t-scan.c,
	tests/mpq/t-cmp_ui.c, tests/mpz/bit.c, tests/mpz/t-aorsmul.c,
	tests/mpz/t-powm_ui.c tests/mpz/t-root.c, tests/mpz/t-scan.c: More
	care with long and mp_size_t parameters, for the benefit of K&R.

	* demos/perl/GMP.pm, demos/perl/GMP.xs, demos/perl/GMP/Mpz.pm,
	demos/perl/test.pl: Add mpz_import and mpz_export.
	* demos/perl/GMP.pm: Remove "preliminary" warning.

	* mpn/lisp/gmpasm-mode.el: Set add-log-current-defun-header-regexp to
	pick up m4 defines etc.

	* Makefile.am (libgmpxx_la_DEPENDENCIES): libgmp.la should be here,
	not libgmpxx_la_LIBADD, for the benefit of "make -j2".

	* mpn/ia64/*.asm [hpux ABI=32]: Extend 32-bit operands to 64-bits, not
	optimal and might not be sufficient, but seems to work.

2002-08-03  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Profiling): Use a table and expand for clarity.
	(Integer Special Functions): New section for mpz_array_init,
	_mpz_realloc, mpz_getlimbn and mpz_size, to discourage their use.

	* configure.in (*-*-msdosdjgpp*): Remove forcible --disable-shared,
	libtool gets this right itself now.

2002-07-30  Kevin Ryde  <kevin@swox.se>

	* mpn/powerpc32/lshift.asm, mpn/powerpc32/rshift.asm: Lose final mr,
	and make final stwu into an stw.

	* gmp.texi (Known Build Problems): An easier workaround for DESTDIR,
	using LD_LIBRARY_PATH.
	(C++ Interface MPFR): Remove mpfrxx.h.

	* mpfrxx.h: Remove file.
	* Makefile.am: Remove mpfrxx.h.
	* tests/cxx/Makefile.am: Add Gerardo's new test programs.

2002-07-30  Gerardo Ballabio <gerardo.ballabio@unimib.it>

	* gmpxx.h: Use mpz_addmul etc for ternary a+b*c etc.  Reorganise some
	macros for maintainability.  Merge mpfrxx.h.
	* tests/cxx/t-constr.cc, tests/cxx/t-expr.cc: Various updates.
	* tests/cxx/t-assign.cc, tests/cxx/t-binary.cc,
	tests/cxx/t-ternary.cc, tests/cxx/t-unary.cc: New files.

2002-07-27  Kevin Ryde  <kevin@swox.se>

	* longlong.h (count_trailing_zeros) [ia64 __GNUC__]: Don't use
	__builtin_ffs for now, doesn't seem to work.

	* configure.in: Establish CONFIG_SHELL to avoid a problem with
	AC_LIBTOOL_SYS_MAX_CMD_LEN on ia64-*-hpux*.

	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_FINDA): Don't let calls to
	mpn_gcd_finda go dead.

	* mpn/generic/tdiv_qr.c: Inline mpn_rshift and MPN_COPY of 2 limbs.

2002-07-24  Kevin Ryde  <kevin@swox.se>

	* demos/primes.c: Use __GMP_PROTO and don't use signed, for the
	benefit of K&R.

	* demos/calc/calclex.l: Add <string.h> for strcmp.

	* mpn/ia64/invert_limb.asm: Use .rodata which works on ia64-*-hpux*
	and should be standard, rather than worrying about RODATA.

	* gmp.texi (Function Classes): Add cross references.
	(Integer Import and Export): Fix return value grouping.

	* mpn/lisp/gmpasm-mode.el (gmpasm-comment-start-regexp): Add // for
	ia64.  Add notes on what the various styles are for.

	* mpn/ia64/default.m4 (ASM_START): Define to empty, not dnl, so as not
	to kill text on the same line.
	(EPILOGUE_cpu): Force a newline after "#", so as not to suppress macro
	expansion in the rest of the EPILOGUE line.

2002-07-21  Kevin Ryde  <kevin@swox.se>

	* tune/speed.h: Fix some missing _PROTOs.

	* Makefile.am (DISTCLEANFILES): Add configure.lineno.

	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Define
	HAVE_DOUBLE_IEEE_BIG_ENDIAN and HAVE_DOUBLE_IEEE_LITTLE_ENDIAN in
	config.m4 too.
	* mpn/ia64/invert_limb.asm: Add big-endian data.

	* tests/mpz/t-jac.c (try_si_zi): Correction to "a" parameter type.

2002-07-20  Kevin Ryde  <kevin@swox.se>

	* mpz/bin_ui.c, mpz/jacobi.c, mpz/pprime_p.c, mpn/generic/divis.c:
	More care with long and mp_size_t parameters, for the benefit of K&R.

	* gmp-impl.h (invert_limb): Use parens around macro arguments.
	(mpn_invert_limb): Give prototype and define unconditionally.

	* gmp-impl.h (CACHED_ABOVE_THRESHOLD, CACHED_BELOW_THRESHOLD): New
	macros.
	* mpn/generic/sb_divrem_mn.c: Use them to help gcc let preinv code go
	dead when not wanted.

2002-07-17  Kevin Ryde  <kevin@swox.se>

	* tests/refmpz.c (refmpz_hamdist): Ensure mp_size_t parameters are
	that type, for the benefit of hpux ia64 bundled cc ABI=64.

	* configure.in (ia64*-*-hpux*): Need +DD64 in cc_64_cppflags to get
	the right headers for ansi2knr.

	* acinclude.m4 (GMP_TRY_ASSEMBLE, GMP_ASM_UNDERSCORE): Use $CPPFLAGS
	with $CCAS and when linking, as done by the makefiles.
	(GMP_ASM_X86_MMX, GMP_ASM_X86_SSE2): Show $CPPFLAGS in diagnostics.

	* gmp-impl.h (ieee_double_extract): Setup using HAVE_DOUBLE_IEEE_*.
	(GMP_UINT32): New define, 32 bit type for ieee_double_extract.
	* configure.in: Add AC_CHECK_SIZEOF unsigned.
	* configure.in, acinclude.m4 (GMP_IMPL_H_IEEE_FLOATS): Remove.
	(GMP_C_DOUBLE_FORMAT): Instead warn about unknown float here.

	* configure.in, acinclude.m4 (GMP_C_SIZES): Remove.
	* acinclude.m4 (GMP_INCLUDE_GMP_H_BITS_PER_MP_LIMB): Remove this
	scheme, not required.
	* configure.in (unsigned long, mp_limb_t): Run AC_CHECK_SIZEOF for
	these unconditionally, check mp_limb_t against gmp-mparam.h values.
	* gmp-impl.h (BYTES_PER_MP_LIMB, BITS_PER_MP_LIMB): Define based on
	SIZEOF_MP_LIMB_T if not provided by gmp-mparam.h.
	(BITS_PER_ULONG): Define here now.

	* gmp.texi (ABI and ISA): Add HP-UX IA-64 choices.
	(Random State Initialization): Typo in m2exp described for
	gmp_randinit_lc_2exp_size.
	(Formatted Output Functions): Clarify gmp_obstack_printf a bit.
	(Formatted Input Strings): Typo in %n summary.

	* mpz/inp_raw.c (NTOH_LIMB_FETCH): Use simple generic default, since
	endianness detection is now cross-compile friendly.
	* mpz/out_raw.c (HTON_LIMB_STORE): Ditto.

	* mpz/fib_ui.c: Nailify.
	* mpz/random.c: Nailify.

	* mpfr/acinclude.m4 (MPFR_CONFIGS): Patch by Vincent for an apparent
	float rounding gremlin on powerpc.

2002-07-15  Kevin Ryde  <kevin@swox.se>

	* Makefile.am (PRINTF_OBJECTS): Avoid ending in a backslash, hpux ia64
	make doesn't like that.

	* mpn/ia64/*.asm: Add .sptk to unconditional branches, add ";" after
	.mib etc, for the benefit of hpux.

	* configure.in (ia64*-*-*): Use ABI=64 on non-HPUX systems, for
	consistency.

	* gmp-impl.h (ieee_double_extract): Test __sparc__, used by gcc 3.1.
	Reported by nix@esperi.demon.co.uk.
	* mpfr/mpfr-math.h (_MPFR_NAN_BYTES etc): Ditto.

2002-07-13  Kevin Ryde  <kevin@swox.se>

	* mpn/powerpc32/rshift.asm: Rewrite, transformed from lshift.asm.

	* tune/tuneup.c (DIVEXACT_1_THRESHOLD, MODEXACT_1_ODD_THRESHOLD):
	Always zero for native mpn_divexact_1, mpn_modexact_1_odd.

	* gmp-h.in (__GMP_EXTERN_INLINE): Don't use this during configure,
	ie. __GMP_WITHIN_CONFIGURE, to avoid needing dependent routines.
	* acinclude.m4 (GMP_H_EXTERN_INLINE): Consequent changes.

	* gmp-impl.h, mpn/asm-defs.m4 (mpn_addmul_2, mpn_addmul_3,
	mpn_addmul_4): Add prototypes and defines.

	* gmp.texi (Number Theoretic Functions): Clarify return value.
	Reported by Peter Keller.

2002-07-10  Kevin Ryde  <kevin@swox.se>

	* configure.in, acinclude.m4 (GMP_PROG_LEX): Remove this in favour of
	AM_PROG_LEX, now ok when lex is missing.

	* longlong.h (count_leading_zeros) [pentiummmx]: Don't use __clz_tab
	variant under LONGLONG_STANDALONE.
	(count_trailing_zeros) [ia64 __GNUC__]: Use __builtin_ffs.

	* gmp-impl.h (popc_limb): Add an ia64 asm version.
	(DItype): Use HAVE_LONG_LONG to choose long long, avoiding _LONGLONG
	which is in gcc but means something unrelated in MS Visual C 7.0.
	Reported by David Librik.

	* mpz/divexact.c: Add an ASSERT that den divides num.

	* mpn/asm-defs.m4 (LDEF): New macro.
	(INT32, INT64): Use it.
	* mpn/pa32/*.asm: Use it.
	* mpn/pa32/README: Update notes on labels.

	* tests/refmpn.c, tests/tests.h, tests/t-bswap.c (ref_bswap_limb):
	Renamed from refmpn_bswap_limb.
	* tests/t-bswap.c: Add tests_start/tests_end for randomization.

	* tests/refmpn.c, tests/tests.h (ref_popc_limb): New function.
	* tests/t-popc.c: New file.
	* tests/Makefile.am: Add it.

	* mpn/ia64/invert_limb.asm: Use RODATA since ".section .rodata" is not
	accepted by ia64-*-hpux*.

	* acinclude.m4 (GMP_ASM_BYTE): New macro.
	(GMP_ASM_ALIGN_LOG, GMP_ASM_W32): Use it.
	(GMP_ASM_LABEL_SUFFIX): Use test compiles, not $host.
	(GMP_ASM_GLOBL): Ditto, and add .global for ia64-*-hpux*.
	(GMP_ASM_GLOBL_ATTR): Use GMP_ASM_GLOBL result, not $host.
	(GMP_ASM_LSYM_PREFIX): Allow any "a-z" nm symbol code, add ".text" to
	test program, required by ia64-*-hpux*.
	(GMP_ASM_LABEL_SUFFIX): Make LABEL_SUFFIX just the value, not a "$1:",
	the former being how it's currently being used in fact.

	* configure.in, acinclude.m4 (GMP_PROG_CC_WORKS_LONGLONG): New macro.
	* configure.in (ia64-*-hpux*): Add 32 and 64 bit ABI modes.

2002-07-06  Kevin Ryde  <kevin@swox.se>

	* tests/cxx/t-allfuns.cc: New file.
	* tests/cxx/Makefile.am: Add it.

	* mpz/clrbit.c, mpz/setbit.c: Only MPN_NORMALIZE if high limb changes
	to zero.  Use _mpz_realloc return value.

	* gmp.texi (Build Options, C++ Formatted Output, C++ Formatted Input):
	Cross reference to Headers and Libraries for libgmpxx stuff.
	(Low-level Functions): mpn_divexact_by3 result based on GMP_NUMB_BITS.
	mpn_set_str takes "unsigned char *", reported by Mark Sofroniou.
	(C++ Interface General): Describe linking with libgmpxx and libgmp.

2002-07-01  Kevin Ryde  <kevin@swox.se>

	* tune/tuneup.c, gmp-impl.h: Eliminate the array of thresholds in
	one(), tune just one at a time and let the callers hand dependencies.
	Eliminate the second_start_min hack, handle SQR_KARATSUBA_THRESHOLD
	oddities in tune_sqr() instead.

	* mpn/pa64/umul.asm, mpn/pa64/udiv.asm, mpn/asm-defs.m4, acconfig.h,
	longlong.h, tune/speed.c, tune/speed.h, tune/common.c, tune/many.pl,
	tests/devel/try.c: Introduce mpn_umul_ppmm_r and mpn_udiv_qrnnd_r
	rather than having variant parameter order for mpn_umul_ppmm and
	mpn_udiv_qrnnd on pa64.

	* gmp-h.in (mpz_export): Remove a spurious parameter name.
	* gmp-impl.h (mpn_rootrem): Use __MPN.

2002-06-29  Kevin Ryde  <kevin@swox.se>

	* longlong.h (udiv_qrnnd) [hppa32]: Remove mpn_udiv_qrnnd version, the
	general mechanism for that suffices.

	* mpf/inp_str.c: Fix returned count of chars read, reported by Paul
	Zimmermann.  Also fix a memory leak for invalid input.
	* tests/mpf/t-inp_str.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.

	* tests/devel/try.c (mpn_mod_34lsub1): Only exists for
	GMP_NUMB_BITS%4==0.
	(SIZE2_FIRST): Respect option_firstsize2 for "fraction" case.

	* mpn/generic/diveby3.c: Further nailifications.
	* gmp-impl.h (MODLIMB_INVERSE_3): Allow for GMP_NUMB_BITS odd.
	(GMP_NUMB_CEIL_MAX_DIV3, GMP_NUMB_CEIL_2MAX_DIV3): New constants.
	* tests/t-constants.c: Check them.

	* gmp-h.in (__GMP_CRAY_Pragma): New macro.
	(__GMPN_COPY_REST): Use it.
	* gmp-impl.h (CRAY_Pragma): Use it.

2002-06-25  Kevin Ryde  <kevin@swox.se>

	* mpz/import.c, mpz/export.c: Cast data pointer through "char *" in
	alignment tests, for the benefit of Cray vector systems.

	* configure.in (x86-*-*): Remove -march=pentiumpro check, seems ok
	with current code.
	* acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO, GMP_GCC_VERSION_GE): Remove
	macros, no longer needed

	* acinclude.m4 (GMP_ASM_RODATA): Remove temporary files.

	* configure.in (GMP_ASM_GLOBL_ATTR): Reposition to avoid duplication
	through AC_REQUIRE.

2002-06-23  Kevin Ryde  <kevin@swox.se>

	* tests/mpz/t-fib_ui.c (check_fib_table): Check table values, not just
	that they're non-zero.

	* acinclude.m4 (GMP_GCC_ARM_UMODSI): Match bad "gcc --version" output
	exactly, rather than parsing it with GMP_GCC_VERSION_GE.
	(GMP_ASM_UNDERSCORE): Use GLOBL_ATTR.

	* mpn/pa32/udiv.asm, mpn/pa32/hppa1_1/udiv.asm, mpn/pa64/udiv.asm:
	Renamed from udiv_qrnnd.asm, for consistency with other udiv's.
	* mpn/pa64/umul.asm: Renamed from umul_ppmm.asm likewise.
	* configure.in (hppa*-*-*): Update extra_functions.
	(NAILS_SUPPORT): Remove umul_ppmm, udiv_qrnnd, udiv_fp, udiv_nfp from
	nails-neutral list, no longer needed.

	* gmp-h.in (__DECC): Add notes on testing this for ANSI-ness.
	(__GMP_EXTERN_INLINE): Add static __inline for DEC C.
	(mpz_mod_ui): Move up to main section, it's still documented.

2002-06-22  Kevin Ryde  <kevin@swox.se>

	* mpz/jacobi.c, mpz/kronsz.c, mpz/kronuz.c, mpz/kronzs.c,
	mpz/kronzu.c: Allow for odd GMP_NUMB_BITS, tweak a few variable setups.
	* gmp-impl.h (JACOBI_STRIP_LOW_ZEROS): New macro.

	* mpn/generic/mod_34lsub1.c: Nailify.
	* tests/devel/try.c (CNST_34LSUB1): Nailify.
	* gmp-impl.h (ADDC_LIMB): New macro.

	* gmpxx.h (mpf_class::get_str): Make exponent mp_exp_t&, default
	base=10 and ndigits=0.
	(mpz_class::set_str, mpq_class::set_str, mpf_class::set_str): Add
	versions accepting "const char *".
	* mpfrxx.h (mpfr_class::get_str, mpfr_class::set_str): Ditto, and
	uncommenting set_str and operator=.
	* gmp.texi (C++ Interface Integers, C++ Interface Rationals)
	(C++ Interface Floats): Update.

	* gmp-impl.h (modlimb_invert): Merge the <=64bits and general versions.
	(const, signed): Move to near top of file, fixes --enable-alloca=debug
	on K&R.

	* gen-fib.c: New file, derived from mainline in mpn/generic/fib2_ui.c.
	* dumbmp.c (mpz_init_set_ui): New function.
	* Makefile.am, mpn/Makefile.am: Generate fib_table.h, mpn/fib_table.c.
	* gmp-impl.h: Use fib_table.h, add __GMP_DECLSPEC to __gmp_fib_table
	(for the benefit of tests/mpz/t-fib_ui.c).
	* mpn/generic/fib2_ui.c: Remove __gmp_fib_table and generating code.

	* Makefile.am: Add mp.h to BUILT_SOURCES, distclean all BUILT_SOURCES,
	use += more.

	* acinclude.m4 (GMP_ASM_M68K_INSTRUCTION, GMP_ASM_M68K_BRANCHES):
	Don't let "unknown" get into the cache variables.
	(GMP_ASM_TEXT): See what assembles, don't hard-code hpux and aix.
	(GMP_PROG_EXEEXT_FOR_BUILD): Add ,ff8 for RISC OS, per autoconf cvs.
	(GMP_PROG_CPP_FOR_BUILD): Restructure per AC_PROG_CPP, print correct
	result if CPP_FOR_BUILD overrides the cache variable.
	(GMP_PROG_CC_FOR_BUILD_WORKS): New macro split from
	GMP_PROG_CC_FOR_BUILD.  Allow for "conftest" default compiler output.
	* configure.in, acinclude.m4 (GMP_PROG_HOST_CC): Reinstate this,
	separating HOST_CC establishment from GMP_PROG_CC_FOR_BUILD.

	* configure.in (mpn_objs_in_libgmp): Move mpn/mp_bases.lo ...
	* Makefile.am (MPN_OBJECTS): ... to here, add $U, and arrange
	MPN_OBJECTS to be common between libgmp and libmp.

2002-06-20  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_n.c (TOOM3_MUL_REC, TOOM3_SQR_REC): Don't check if
	basecase is to be invoked when *_TOOM3_THRESHOLD is more than 3 times
	the corresponding *_THRESHOLD.

2002-06-20  Kevin Ryde  <kevin@swox.se>

	* mpn/ia64/submul_1.c: Add missing TMP_DECL, TMP_MARK, TMP_FREE.
	Reported by Paul Zimmermann.

	* configure.in, acinclude.m4 (AC_DEFINE): Make templates read "Define
	to 1", for clarity as per autoconf.
	* acinclude.m4 (GMP_OPTION_ALLOCA): Group WANT_TMP templates.

2002-06-20  Gerardo Ballabio <gerardo.ballabio@unimib.it>

	* gmpxx.h, mpfrxx.h: Remove mpz_classref, let mpq_class::get_num and
	mpq_class::get_den return mpz_class& as per the documentation.
	Reported by Roberto Bagnara.

2002-06-18  Kevin Ryde  <kevin@swox.se>

	* tests/rand/t-lc2exp.c: New file.
	* tests/rand/Makefile.am: Add it, and use tests/libtests.la.

	* randraw.c (lc): Pad seed==0 case with zero limbs, return same
	(m2exp+1)/2 bits as normal, right shift "c" result as normal.

	* configure.in: Don't bother with line numbers in some diagnostics.
	(*-*-mingw*): Use -mno-cygwin if it works, suggested by delta trinity.

	* tests/mpz/Makefile.am, tests/mpq/Makefile.am,
	tests/misc/Makefile.am, (CLEANFILES): Set to *.tmp for test program
	temporaries, to get t-scanf.tmp and reduce future maintenance.

2002-06-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/get_str.c (mpn_dc_get_str): Pass scratch memory area in
	new `tmp' parameter.  Trim allocation needs by reusing input parameter.

2002-06-15  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc32/v9/udiv.asm: New file.

2002-06-15  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_GCC_VERSION_GE): Correction to recognising mingw
	gcc 3.1 version number.  Reported by Jim Fougeron.

	* configure.in (AC_PROVIDE_AC_LIBTOOL_WIN32_DLL): New define, to make
	AC_LIBTOOL_WIN32_DLL work with autoconf 2.53.

	* acinclude.m4 (GMP_C_SIZES): Establish BITS_PER_MP_LIMB as a value,
	not an expression, for the benefit of the gen-bases invocation.

	* config.guess (CC_FOR_BUILD): Try c99, same as configfsf.guess.

2002-06-15  Paul Zimmermann  <Paul.Zimmermann@loria.fr>

	* mpfr/set_q.c: Allow for 1 bit numerator or denominator.

2002-06-14  Kevin Ryde  <kevin@swox.se>

	* configure.in (AC_C_BIGENDIAN): Use new style action parameters.

	* randlc2x.c: Allow for a<0, allow for c>=2^m2exp.
	* randraw.c (lc): Allow for a==0.

	* mpn/sparc32/udiv.asm: Renamed from udiv_fp.asm.  Don't know if float
	is the best way for v7, but it's what configure has chosen since gmp 3.
	* configure.in (*sparc*-*-* ABI=32): extra_functions="udiv" for all,
	in particular sparc32/v8/udiv.asm is faster (on ultrasparc2) than
	udiv_fp previously used for v9 chips.

	* gen-bases.c: New file, derived from mpn/mp_bases.c.
	* dumbmp.c: New file, mostly by Torbjorn, some by me.
	* configure.in, acinclude.m4 (GMP_PROG_CC_FOR_BUILD,
	GMP_PROG_CPP_FOR_BUILD, GMP_PROG_EXEEXT_FOR_BUILD,
	GMP_C_FOR_BUILD_ANSI, GMP_CHECK_LIBM_FOR_BUILD): New macros.
	(GMP_PROG_HOST_CC): Remove, superceded by GMP_PROG_CC_FOR_BUILD.
	* Makefile.am: Run gen-bases to create mp_bases.h and mpn/mp_bases.c.
	* gmp-impl.h: Use mp_bases.h.
	* mpn/mp_bases.c: Remove file.
	* mpn/Makefile.am: mp_bases.c now in nodist_libmpn_la_SOURCES.

	* tests/mpz/t-cmp_d.c (check_one_2exp): Use volatile to force to
	double, fixes gcc 3.1 with -O4.  Reported by Michael Lee.
	* configure.in (AC_C_VOLATILE): New macro.

	* tests/misc/t-scanf.c: (fromstring_gmp_fscanf): Add missing va_end.
	Don't mix varargs and fixed args functions, not good on x86_64.
	Reported by Marcus Meissner.

	* Makefile.am (EXTRA_DIST): Remove mpfr/README, now in mpfr/Makefile.in

	* configure, config.in, INSTALL.autoconf: Update to autoconf 2.53.
	* */Makefile.in, install-sh, mdate-sh, missing, aclocal.m4, configure:
	Update to automake 1.6.1.
	* configfsf.guess, configfsf.sub: Update to 2002-05-29.

2002-06-12  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_GCC_VERSION_GE): Recognise mingw gcc 3.1 version.
	(GMP_PROG_CC_WORKS): Allow for a_out.exe, as per autoconf.
	(GMP_GCC_NO_CPP_PRECOMP, GMP_ASM_UNDERSCORE): Ditto, plus a.exe.

2002-06-09  Torbjorn Granlund  <tege@swox.com>

	* randraw.c (lc): Remove broken ASSERT_ALWAYS.

	* mpn/x86: Update gmp-mparam.h files with current measures *_THRESHOLD
	values.
	* mpn/x86/p6/mmx/gmp-mparam.h: New file.

2002-06-09  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/*/gmp-mparam.h (USE_PREINV_DIVREM_1): Add tuned settings.

	* acconfig.h (HAVE_NATIVE_mpn_preinv_divrem_1): New template.

	* tests/refmpn.c, tests/tests.h (refmpn_chars_per_limb,
	refmpn_big_base): New functions.
	* tests/mpn/t-mp_bases.c: Use them, and don't test big_base_inverted
	unless it's being used.

	* gmp.texi (Notes for Particular Systems): Using Microsoft C with DLLs.
	(Known Build Problems): Notes on MacOS and GCC.
	(Integer Logic and Bit Fiddling): Use ULONG_MAX for maximum ulong.
	(Low-level Functions): mpn_get_str accepts base==256.
	(Formatted Output Functions): Note output is not atomic.
	(Internals): Note mp_size_t for limb counts.

	* mp-h.in, gmp-h.in (mp_ptr, mp_srcptr, mp_size_t, mp_exp_t): Remove
	these types from mp.h, not needed.

	* mpfr/tests/tadd.c, mpfr/tests/tmul.c (check): Apply a hack to the
	parameter order to make sparc gcc 2.95.2 happy.

	* doc/configuration: Notes on bootstrapping.

2002-06-08  Kevin Ryde  <kevin@swox.se>

	* mpfr/tests/tsqrt.c, mpfr/tests/tsqrt_ui.c: Suppress tests if sqrt is
	not affected by mpfr_set_machine_rnd_mode.

	* mpfr/mul_2si.c: Workaround a mips gcc 2.95.3 bug under -O2 -mabi=n32.

	* configure.in (alphev56): Fix to use ev5 path.

2002-06-06  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in: Use __gmp_const not const, in a number of places.

	* configure.in (sparc): Use ABI=32 instead of ABI=standard on v7 and
	v8, for consistency with v9 choices.
	(sparc64): Restrict GMP_ASM_SPARC_REGISTER to ABI=64.
	(x86): Move MMX $path munging to before printout.
	(CCAS): Move upward to support this.

	* gmp-impl.h (modlimb_invert): Merge macros for specific limb sizes,
	add a version for arbitrary limb size, use GMP_NUMB_BITS.
	(modlimb_invert, MODLIMB_INVERSE_3): Fix comments to say GMP_NUMB_BITS.

	* gmp-h.in (__GMP_LIKELY, __GMP_UNLIKELY): New macros.
	(mpz_getlimbn, mpz_perfect_square_p, mpz_popcount): Use them, make the
	fetch or mpn call likely, unconditionally calculate the alternative so
	as to avoid an "else" clause.
	* gmp-impl.h (LIKELY, UNLIKELY): Aliases.

	* configure.in, mpfr/tests/Makefile.am: Add $LIBM to $LIBS for
	MPFR_CONFIGS so it detects fesetround, and let it go through to
	$MPFR_LIBS.
	* mpfr/rnd_mode.c: Use gmp-impl.h to get MPFR_HAVE_FESETROUND.

	* tests/mpz/t-sizeinbase.c: Disable fake bits test, such pointer
	setups are bogus and have been seen failing on hppa.

	* tests/misc.c, tests/refmpz.c, tests.tests.h, tests/mpz/t-cong.c:
	Rename mpz_flipbit to refmpz_combit and move from misc.c to refmpz.c.

2002-06-05  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-powm_ui.c Print proper routine name in error message.

2002-06-03  Kevin Ryde  <kevin@swox.se>

	* tune/time.c, tune/freq.c, tune/speed.h: Add powerpc mftb support.
	(FREQ_MEASURE_ONE): Move to speed.h, fix tv_sec factor.
	(freq_measure): Use for mftb measuring too.
	* tune/powerpc.asm, tune/powerpc64.asm: New files.
	* configure.in, tune/Makefile.am: Add them.

	* gmp-impl.h (popc_limb): Add versions for Cray and fallback for
	arbitrary limb size.

	* mpn/sparc32/sparc-defs.m4: New file.
	* configure.in (sparc*-*-*): Use it.
	* acinclude.m4 (GMP_ASM_SPARC_REGISTER): New macro.
	* configure.in (sparc64): Use it.  Also, use -Wc,-m64 for linking.
	* mpn/sparc64/add_n.asm, mpn/sparc64/addmul_1.asm,
	mpn/sparc64/copyd.asm, mpn/sparc64/copyi.asm, mpn/sparc64/lshift.asm,
	mpn/sparc64/mul_1.asm, mpn/sparc64/rshift.asm,
	mpn/sparc64/sqr_diagonal.asm, mpn/sparc64/sub_n.asm,
	mpn/sparc64/submul_1.asm: Use REGISTER for .register.

2002-06-01  Kevin Ryde  <kevin@swox.se>

	* mpz/powm_ui.c: Fix for result range in certain circumstances.

	* mpn/x86/k6/diveby3.asm: Speedup to 10 c/l, same as divexact_1.
	Anomaly pointed out by Alexander Kruppa.

2002-05-31  Torbjorn Granlund  <tege@swox.com>

	* mpz/export.c: Cast pointer via `unsigned long' when checking
	alignment to avoid compiler warnings.

2002-05-29  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (BSWAP_LIMB): Versions for m68k, powerpc, and arbitrary
	limb size.
	* configure.in, acconfig.h (HAVE_HOST_CPU_FAMILY_m68k): New define.

2002-05-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_basecase.c: Improve MAX_LEFT handling, returning
	when possible.  Add code for mpn_addmul_5 and mpn_addmul_6.

2002-05-25  Kevin Ryde  <kevin@swox.se>

	* tune/tuneup.c: Misc nailifications, and disable preinv thresholds
	with nails.
	* tune/speed.h: Use GMP_NUMB_HIGHBIT with mpn_sb_divrem_mn and
	mpn_divrem_2.
	* mpz/powm.c (redc): Nailify q.

	* tests/mpn/t-scan.c: Reduce the amount of testing, to go faster.

2002-05-23  Torbjorn Granlund  <tege@swox.com>

	* Version 4.1 released.

	* mpn/alpha/ev6/nails/gmp-mparam.h: New file.

	* tests/devel/add_n.c (refmpn_add_n): Nailify.
	* tests/devel/sub_n.c (refmpn_sub_n): Nailify.
	* tests/devel/addmul_1.c (refmpn_addmul_1): Nailify.
	* tests/devel/submul_1.c (refmpn_submul_1): Nailify.

	* mpn/alpha/ev6/nails/add_n.asm: New file.
	* mpn/alpha/ev6/nails/sub_n.asm: New file.
	* mpn/alpha/ev6/nails/mul_1.asm: New file.
	* mpn/alpha/ev6/nails/submul_1.asm: New file.

2002-05-22  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/nails/addmul_1.asm: New file.

	* mpz/inp_str.c (mpz_inp_str_nowhite): Nailify.

	* mpn/generic/mul_basecase.c: Update pointers before conditional
	MAX_LEFT break statements.

2002-05-21  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-gcd.c: Test mpz_gcd_ui.

	* mpz/lcm_ui.c: Nailify.

	* mpz/gcd_ui.c: Nailify.  Make it work as documented, allowing
	NULL to be passed for result parameter.  Fix gcd(0,0) case.

	* mpz/set_str.c: Nailify.

	* randlc2x.c (gmp_randinit_lc_2exp): Nailify.

	From Jakub Jelinek:
	* longlong.h (add_ssaaaa,sub_ddmmss) [64-bit sparc]:
	Make it actually work.

2002-05-18  Torbjorn Granlund  <tege@swox.com>

	* mpf/ui_div.c: Shut up compiler warning.

	* mpn/generic/mul_basecase.c: Use mpn_addmul_2, mpn_addmul_3, and
	mpn_addmul_4, as available.

	* mpn/alpha/ev6/nails/addmul_2.asm: Adjust NAILS_SUPPORT decls.
	* mpn/alpha/ev6/nails/addmul_3.asm: Likewise
	* mpn/alpha/ev6/nails/addmul_4.asm: Likewise.

	* configure.in (*-cray-unicos*): Back again to -hscalar0.
	(gmp_mpn_functions_optional): Add mul_3, mul_4, addmul_2, addmul_3,
	and addmul_4.
	* acconfig.h: Add #undefs for new optional mpn functions.

2002-05-18  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Integer Import and Export): Mention Cray unfilled words.

	* mpz/set_d.c, mpq/set_d.c: Use LIMBS_PER_DOUBLE for the output of
	__gmp_extract_double.  Reported by Henrik Johansson.

2002-05-17  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/nails/addmul_2.asm: New file.
	* mpn/alpha/ev6/nails/addmul_3.asm: New file.
	* mpn/alpha/ev6/nails/addmul_4.asm: New file.

	* mpn/generic/dump.c: Rewrite and nailify.

2002-05-16  Kevin Ryde  <kevin@swox.se>

	* mpfr/Makefile.am (EXTRA_DIST): Add BUGS file.

2002-05-15  Torbjorn Granlund  <tege@swox.com>

	* configure.in (*-cray-unicos*): Remove -hscalar0, add -hnofastmd
	as workaround for compiler bug.
	(mips64*-*-*): Pass just -O1 to cc, to work around compiler bug.

2002-05-14  Torbjorn Granlund  <tege@swox.com>

	* configure.in (*-cray-unicos*): Pass -hscalar0 to work around
	compiler bug for mpz/import.c.

2002-05-11  Torbjorn Granlund  <tege@swox.com>

	* mpz/import.c: Cast pointer via `unsigned long' when checking
	alignment to avoid compiler warnings.

	* mpn/generic/rootrem.c: Adjust allocation of qp temporary area.

2002-05-09  Kevin Ryde  <kevin@swox.se>

	* mpz/import.c: Corrections to size store, special case tests, and
	general case ACCUMULATE.
	* tests/mpz/t-import.c, tests/mpz/t-export.c: More test data.

2002-05-09  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/rootrem.c: Use temp space for root, copy value in place
	before returning.
	* mpz/root.c: Don't allocate extra limb for root value.
	* mpz/perfpow.c: Undo last change.

2002-05-08  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (powerpc BSWAP_LIMB_FETCH): Rename local variable to make
	it not clash with caller.

	* mpn/generic/rootrem.c: New file.
	* configure.in (gmp_mpn_functions): Add rootrem and pow_1.
	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add rootrem.c and
	pow_1.c
	* gmp-impl.h (mpn_rootrem): Add declaration.
	* mpz/perfpow.c: Amend allocations for mpn_rootrem requirements.
	* mpz/root.c: Rewrite to use mpn_rootrem.

2002-05-08  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (MUL_KARATSUBA_THRESHOLD etc): Remove forced nail values.

	* mpf/fits_u.h, mpf/fits_s.h, tests/mpf/t-fits.c: Ignore fraction
	part, making the code match the documentation.

	* gmpxx.h (struct __gmp_binary_minus): Use mpz_ui_sub.

2002-05-07  Kevin Ryde  <kevin@swox.se>

	* mpn/powerpc32/README: New file.

	* mpz/root.c: Use unsigned long with mpz_sub_ui not mp_limb_t.

	* tune/README: Misc updates including sparc32/v9 smoothness, low res
	timebase, and mpn_add_n operand overlaps.
	* tune/many.pl: Add udiv.asm support.

	* gmp.texi (Build Options): A couple of --build better as --host.
	(Known Build Problems, Notes for Package Builds): Add DESTDIR problem.
	(Compatibility with older versions): Compatible with 4.x versions.
	(Converting Integers): Remove mpz_get_ui + mpz_tdiv_q_2exp decompose.
	(Integer Import and Export): New section.
	(Miscellaneous Integer Functions): Clarify mpz_sizeinbase returns 1
	for operand of 0.
	(Language Bindings): Add GNU Pascal.
	(Low-level Functions): Add GMP_NUMB_MAX.

	* tests/mpz/t-import.c, tests/mpz/t-export.c, tests/mpz/t-get_d.c:
	New tests.
	* tests/mpz/Makefile.am: Add them.

	* mpz/import.c, mpz/export.c: New files.
	* Makefile.am, mpz/Makefile.am, gmp-h.in: Add them.

	* gmp-h.in, gmp-impl.h (GMP_NUMB_MAX): Move to gmp.h.
	* gmp-impl.h (CNST_LIMB): Add cast to mp_limb_t to ensure unsigned.
	(CRAY_Pragma, MPN_REVERSE, MPN_BSWAP, MPN_BSWAP_REVERSE,
	ASSERT_ALWAYS_LIMB, ASSERT_ALWAYS_MPN): New macros.
	(MPZ_CHECK_FORMAT): Use ASSERT_ALWAYS_MPN.

2002-05-07  Torbjorn Granlund  <tege@swox.com>

	* mpz/aors_ui.h: Nailify.

	* tests/mpz/t-addsub.c: New file.
	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-addsub.

	* mpz/ui_sub.c: New file.
	* mpz/Makefile.am (libmpz_la_SOURCES): Add ui_sub.c.
	* Makefile.am (MPZ_OBJECTS): Ditto.
	* gmp-h.in (mpz_ui_sub): Add declaration.

	* gmp-impl.h (MPZ_REALLOC): Rewrite to allow the use of _mpz_realloc
	return value.

	* gmp-h.in (mpn_pow_1): Add declaration.

	* mpn/generic/pow_1.c: Handle exp <= 1.  Reverse rp/tp parity scheme
	for bn == 1 arm.

	* Rename MP_LIMB_T_HIGHBIT => GMP_LIMB_HIGHBIT.

2002-05-06  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c (main): Don't call mpz_sizeinbase with negative base.

	* randraw.c (lc): Remove an unused variable.

	* mpn/generic/get_str.c: Clarify an algorithm description.

	* tests/mpf/t-trunc.c: Nailify.
	* tests/mpf/t-set_si.c: Disable for nails.

	* mpf/cmp_si.c: Nailify.
	* mpf/cmp_ui.c: Nailify.
	* mpf/div.c: Nailify.
	* mpf/div_2exp.c: Nailify.
	* mpf/div_ui.c: Nailify.
	* mpf/eq.c: Nailify.
	* mpf/get_d.c: Nailify.
	* mpf/get_d_2exp.c: Nailify.
	* mpf/get_si.c: Nailify.
	* mpf/get_str.c: Nailify.
	* mpf/get_ui.c: Nailify.
	* mpf/mul_2exp.c: Nailify.
	* mpf/random2.c: Nailify.
	* mpf/set_q.c: Nailify.
	* mpf/set_si.c: Nailify.
	* mpf/set_str.c: Nailify.
	* mpf/set_ui.c: Nailify.
	* mpf/sub.c: Nailify.
	* mpf/ui_div.c: Nailify.
	* mpf/ui_sub.c: Nailify.
	* mpf/urandomb.c: Nailify.

	* gmp-impl.h (__GMPF_BITS_TO_PREC, __GMPF_PREC_TO_BITS): Nailify.

	* mpz/get_si.c: Misc variable name changes.

	* mpf/fits_u.h: Rewrite - nailify.
	* mpf/fits_s.h: Likewise.

	* mpz/mod.c: Disambiguate if-statement with extra {}.

	* mpf/int_p.c: Fix type of size variables.
	* mpf/get_ui: Likewise.
	* mpf/get_si: Likewise.
	* mpq/equal.c: Likewise.
	* mpq/get_d.c: Likewise.
	* mpz/cmp_d.c: Likewise.
	* mpz/cmpabs_d.c: Likewise.
	* mpz/divis_2exp.c: Likewise.
	* mpz/kronuz.c: Likewise.
	* mpz/kronzu.c: Likewise.
	* mpz/kronzs.c: Likewise.
	* mpz/kronsz.c: Likewise.
	* mpz/scan0.c: Likewise.
	* mpz/scan1.c: Likewise.
	* mpz/tstbit.c: Likewise.
	* mpz/cong_2exp.c: Likewise.
	* mpz/divis.c: Likewise.

2002-05-04  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/gcd.c: Additional nailify changes.

2002-05-04  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in (__GNU_MP_VERSION): Set to 4.1.
	* Makefile.am (-version-info): Bump for new release.

2002-04-30  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/divrem_1.c: Additional nailify changes.
	* mpn/generic/mod_1.c: Likewise.

	* tests/mpq/t-get_d.c: Print floats with all 16 digits.

	* mpq/get_d.c: Nailify.

	* tests/mpq/t-set_f.c: Disable for nails.

	* mpz/get_d.c: Nailify.

	* gmp-impl.h (LIMBS_PER_DOUBLE, MP_BASE_AS_DOUBLE): Nailify.

	* gmp-h.in (__GMPZ_FITS_UTYPE_P): Cast maxval to before shifting it.

	* extract-dbl.c: Nailify.

2002-04-29  Torbjorn Granlund  <tege@swox.com>

	* mpq/md_2exp.c (mord_2exp): Nailify.

	* mpq/cmp_ui.c: Nailify.

	* mpq/cmp.c (mpq_cmp): Nailify.

	* mpn/generic/gcd.c: Nailify.  GNUify code layout.

	* mpn/generic/gcdext.c: Nailify.  Misc changes.

	* tests/mpz/t-sqrtrem.c: Let argv[1] mean # of repetitions.
	* tests/mpz/t-gcd.c: Likewise.

	* mpz/gcd.c: Nailify.

	* mpn/generic/random.c: Nailify.

	* gmp-impl.h (modlimb_invert): Nailify.

2002-04-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/gcdext.c (div2): Remove qh parameter.
	(mpn_gcdext): Streamline double-limb code.
	Move GCDEXT_THRESHOLD check to after initial division.

2002-04-27  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (JACOBI_MOD_OR_MODEXACT_1_ODD): Allow for odd
	GMP_NUMB_BITS.

	* tune/time.c (sgi_works_p): Allow for 64-bit counter, and fix
	SGI_CYCLECNTR_SIZE handling.

	* demos/expr/exprfr.c: Add nan and inf constants.
	* demos/expr/t-expr.c: Exercise them.

2002-04-26  Torbjorn Granlund  <tege@swox.com>

	* mpz/cmp_ui.c: Fix overflow conditions for nails.

	* gmp-h.in (mpz_get_ui): Fix typo from last change.

	* mpz/n_pow_ui.c: Adjust allocation for nails.
	(GMP_NUMB_HALFMAX): Renamed from MP_LIMB_T_HALFMAX.
	Fix umul_ppmm invocation for for nails.

2002-04-24  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/gcdext.c: Simplify by using mpn_tdiv_qr instead of
	mpn_divmod.

2002-04-24  Kevin Ryde  <kevin@swox.se>

	* configure.in (*-*-cygwin*): Give a sensible default command line
	limit, to avoid blowups reported by Jim Fougeron on windows 9x.
	(--enable-nails): Make the default 2, since mp_bases has data for that.

	* mpfr/mpfr-math.h (__mpfr_nan): Use a "double" for the bytes, to
	avoid a mis-conversion on alpha gcc 3.0.2.
	(_MPFR_INFP_BYTES, _MPFR_INFM_BYTES): Should be a zero mantissa.

2002-04-23  Torbjorn Granlund  <tege@swox.com>

	* mpz/dive_ui.c: Fix typo.

	* mpz/fits_s.h: Rewrite.

	* mpz/jacobi.c: Nailify.
	* mpz/kronuz.c: Additional nailify changes.
	* mpz/kronsz.c: Likewise.

2002-04-23  Kevin Ryde  <kevin@swox.se>

	* demos/expr/Makefile.am (LDADD): Add $(LIBM) for the benefit of mpfr.

	* mpz/divis_ui.c, mpz/cong_ui.c: Nailify.
	* mpn/generic/bdivmod.c, mpz/divexact.c, mpz/dive_ui.c: Nailify.
	* mpn/generic/sb_divrem_mn.c, mpn/generic/divrem.c,
	mpn/generic/divrem_2.c: Nailify ASSERTs.
	* mpn/x86/k6/mmx/logops_n.asm, mpn/x86/k6/mmx/com_n.asm: Nailify.
	* mpz/inp_raw.c, mpz/out_raw.c: Nailify.
	* mpz/kronzu.c, mpz/kronuz.c, mpz/kronzs.c, mpz/kronsz.c: Nailify.
	* mpn/generic/divis.c, mpz/cong.c, mpz/cong_2exp.c: Nailify.
	* gmp-impl.h (NEG_MOD): Nailify.

	* gmp-impl.h, mpn/mp_bases.c: Add back GMP_NUMB_BITS==30 bases data.

	* mpfr/get_d.c: Patch from Paul to avoid problem with constant folding
	in gcc on OSF.

	* mpn/lisp/gmpasm-mode.el: Remove mention of defunct LF macro.

2002-04-22  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c: Handle "binomial" operator.

	* mpz/cmp_ui.c: Move assignments of `up' out of conditionals.

	* mpn/generic/gcdext.c: Fix fencepost error in STAT code.

	* gmp-impl.h (mpn_com_n): Nailify.

	* tests/mpz/t-cdiv_ui.c: New file.
	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-cdiv_ui.
	* mpz/cdiv_qr_ui.c: Nailify.
	* mpz/cdiv_q_ui.c: Nailify.
	* mpz/cdiv_r_ui.c: Nailify.
	* mpz/cdiv_ui.c: Nailify.

	* tests/misc/t-printf.c (CHECK_N): Add cast to allow `char' to be an
	unsigned type.
	* tests/misc/t-scanf.c: Likewise.

	* mpz/mul_i.h: Rework nails code to handle parameter overlap.

	* tests/mpz/t-set_f.c: Disable for nails.

2002-04-21  Torbjorn Granlund  <tege@swox.com>

	* mpz/set_si.c: Add cast to support LONG_LONG_LIMB.
	* mpz/iset_si.c: Likewise.

	* mpz/bin_ui.c: Nailify.
	* mpz/bin_uiui.c: Nailify.

	* mpz/cmpabs_ui.c: Nailify.

	* tests/mpz/t-aorsmul.c: Nailify.
	* mpz/aorsmul_i.c (mpz_addmul_ui, mpz_submul_ui): Nailify better.

2002-04-20  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-fdiv_ui.c: Check mpz_fdiv_ui.
	* tests/mpz/t-tdiv_ui.c: Check mpz_tdiv_ui.

	* mpz/tdiv_ui.c: Rewrite nails code.
	* mpz/fdiv_ui.c: Nailify.

	* tests/mpz/t-tdiv_ui.c: Check returned remainders.
	* tests/mpz/t-fdiv_ui.c: Merge in recent t-tdiv_ui changes.

	* mpz/tdiv_q_ui.c: Remove spurious TMP_* calls.

	* mpz/fdiv_qr_ui.c: Nailify.
	* mpz/fdiv_q_ui.c: Nailify.
	* mpz/fdiv_r_ui.c: Nailify.

	* mpz/get_si.c: Misc nailify changes to shut up compiler warnings.

	* mpz/ui_pow_ui.c: Fix typo in last change.

2002-04-20  Kevin Ryde  <kevin@swox.se>

	* tests/misc/t-printf.c, tests/misc/t-scanf.c: Check all %n types.

	* mpn/x86/k7/mmx/divrem_1.asm, mpn/x86/p6/mmx/divrem_1.asm
	(mpn_preinv_divrem_1): New entrypoint.
	(mpn_divrem_1): Avoid a branch when testing high<divisor.
	* mpn/asm-defs.m4: Add define_mpn(preinv_divrem_1).
	* configure.in: Allow divrem_1.asm to provide mpn_preinv_divrem_1.

	* gmp-impl.h [nails]: Add #undefs of MUL_KARATSUBA_THRESHOLD etc, to
	override CPU gmp-mparam.h.  Remove JACOBI_BASE_METHOD override since
	it's nails-neutral.

	* tests/mpn/t-mp_bases.c: New file.
	* tests/mpn/Makefile.am (check_PROGRAMS): Add it.
	* tests/t-constants.c: Move MP_BASES constants checks to it.

	* mpn/mp_bases.c: Fix big_base_inverted values for nails.
	* gmp-impl.h (MP_BASES_BIG_BASE_INVERTED_10,
	MP_BASES_NORMALIZATION_STEPS_10): Fix nails values.
	(MP_BASES_*): Remove GMP_NUMB_BITS == 30 data.

	* mpn/x86/pentium/com_n.asm, mpn/x86/pentium/logops_n.asm: Add
	NAILS_SUPPORT indicators.

	* configure.in: Grep for NAILS_SUPPORT in cpu-specific code, and look
	in "nails" subdirectories, print path used.
	* mpn/asm-defs.m4 (NAILS_SUPPORT): New macro.

	* mpfr/mpfr-test.h: Include config.h, for the benefit of test programs
	not using gmp-impl.h.

2002-04-19  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-scan.c: Nailify.

	* mpz/tdiv_qr_ui.c: Nailify.
	* mpz/tdiv_q_ui.c: Nailify.
	* mpz/tdiv_r_ui.c: Nailify.
	* mpz/tdiv_ui.c: Nailify.

	* mpz/cmp_ui.c: Nailify.

	* mpz/ui_pow_ui.c: Misc nailify changes to shut up compiler warnings.

	* mpz/scan0.c: Nailify.
	* mpz/scan1.c: Nailify.

	* tests/mpz/t-sizeinbase.c (mpz_fake_bits): Nailify.

2002-04-18  Torbjorn Granlund  <tege@swox.com>

	* mpz/aorsmul_i.c: Nailify.

	* mpz/cmp_si.c: Nailify (botched).

	* mpz/ui_pow_ui.c: Nailify.

	* gmp-h.in (__GMPZ_FITS_UTYPE_P): Nailify.

	* mpz/fits_s.h: Nailify.

	* tests/mpz/bit.c (check_tstbit): Nailify.

	From Paul Zimmermann:
	* mpn/generic/sqrtrem.c: Nailify.

	* mpz/n_pow_ui.c: Nailify.

	* mpz/cfdiv_r_2exp.c: Nailify.

	* randraw.c (lc): Undo: Let mpn_rshift put result in place to avoid
	extra MPN_COPY.

2002-04-17  Torbjorn Granlund  <tege@swox.com>

	* mpz/clrbit.c: Add two GMP_NUMB_MASK masks after addition.

	* mpn/generic/random2.c (LOGBITS_PER_BLOCK): Decrease to 4.

	* gmp-impl.h (nail DIV_DC_THRESHOLD): Decrease to 50 to allow fast
	division.

	* mpn/generic/random2.c: Nailify.

	* mpz/fac_ui.c: Nailify.

	* mpz/mul_i.h: #if ... #endif code block to shut up gcc warnings.

	* mpn/generic/sqrtrem.c: Adopt to GNU coding standards.
	(mpn_dc_sqrtrem): New name for mpn_dq_sqrtrem.
	Partial nailification.

	* configure.in: As a temporary hack, clear extra_functions for nails
	builds.

	* gmp-h.in (mpz_get_ui): #if ... #endif else code block to shut up gcc
	warnings.

2002-04-17  Kevin Ryde  <kevin@swox.se>

	* texinfo.tex: Update to 2002-03-26.08 per texinfo 4.2.
	* gmp.texi: Must have @top in @ifnottex (or @contents doesn't come out
	in one run).

	* mpn/generic/scan0.c, mpn/generic/scan1.c: Nailify.

	* tests/mpn/t-scan.c: New file.
	* tests/mpn/Makefile.am (check_PROGRAMS): Add it.

	* tests/refmpn.c, tests/tests.h (refmpn_tstbit): Use unsigned long for
	bit index.
	(refmpn_setbit, refmpn_clrbit, refmpn_scan0, refmpn_scan1): New
	functions.

	* mpfr/cmp_ui.c (mpfr_cmp_si_2exp): Fix b==0 i!=0 case.

2002-04-17  Gerardo Ballabio <gerardo.ballabio@unimib.it>

	* gmpxx.h, mpfrxx.h: Remove mpfr_class bool combinations, remove
	mpfr_class::get_str2, use mp_rnd_t for rounding modes, use
	8*sizeof(double) for mpfr_t's holding doubles.

2002-04-17  Torbjorn Granlund  <tege@swox.com>

	* mpz/powm.c: Nailify.
	* mpz/powm_ui.c: Nailify.

2002-04-16  Torbjorn Granlund  <tege@swox.com>

	* mpz/hamdist.c: Nailify.
	* tests/misc.c (urandom): Nailify.

	* mpz/get_si.c: Nailify.
	* gmp-h.in (mpz_get_ui): Nailify.  Streamline (and probably upset
	memory checkers).

	* gmp-impl.h (mp_bases[10] values): Add versions for GMP_NUMB_BITS
	being 28, 60, and 63.
	* mpn/mp_bases.c: Add tables for GMP_NUMB_BITS being 28, 60, and 63.

	* mpz/iset_si.c: Nailify.
	* mpz/iset_ui.c: Nailify

	* tests/mpz/convert.c (main): Print test number in error message.

	* mpn/generic/get_str.c (mpn_sb_get_str): Shift up `frac' into nails
	field after bignum division.

2002-04-16  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in, gmp-impl.h (GMP_NAIL_MASK): Move to gmp.h.

	* gmp.texi: Use @documentdescription and @copying, per texinfo 4.2.
	(Low-level Functions): Clarify mpn_gcd overlap requirements, rewrite
	mpn_set_str description, add nails section.
	(C++ Interface General): Remove bool from types that mix with classes.
	(Language Bindings): Add STklos, GNU Smalltalk, Regina.
	(Binary to Radix, Radix to Binary): Describe new code.
	(Assembler Cache Handling): More notes, mostly by Torbjorn.

	* macos/configure (%vars): Remove __GMP from substitutions, per change
	to main configure.

	* mpn/generic/dive_1.c: Nailify.
	* mpn/generic/mode1o.c: Nailify, remove bogus ASSERT in commented-out
	alternate implementation.
	* gmp-impl.h (SUBC_LIMB): New macro.

	* tests/devel/try.c (validate_divexact_1): Correction to compare.
	(udiv_qrnnd): New testing.
	(SHIFT_LIMIT): Nailify.
	(-b): New option, remove spurious "H" from getopt string.

	* mpz/clrbit.c: Nailify.
	* tests/mpz/t-hamdist.c: Nailify.
	* gmp-impl.h (MPN_FIB2_SIZE): Nailify.
	(PP): Nailify conditionals.
	* tests/mpz/t-fib_ui.c (MPZ_FIB_SIZE_FLOAT): Nailify.

	* configure.in, acinclude.m4: Establish GMP_NAIL_BITS and
	GMP_LIMB_BITS for gmp-h.in configure tests.

	* mpfr/*, configure.in: Update to final mpfr 2.0.1.
	* mpfr/acinclude.m4 (MPFR_CONFIGS): Use $host, not uname stuff.
	* mpfr/tests/tout_str.c: Patch from Paul for denorm fprintf tests.

2002-04-15  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/divrem_1.c (EXTRACT): Remove.

	* tests/mpz/t-tdiv_ui.c (dump_abort): Accept argument for error string.

	* mpz/rrandomb.c: Nailify.  Needs further work.

	* mpn/generic/mod_1.c: Nailify.

	* gmp-impl.h: Set various *_THRESHOLD values to be used for nails to
	avoid not yet qualified algorithms.
	(MPZ_CHECK_FORMAT): Check that nail part is zero.

	* tests/mpz/t-mul.c (main): Test squaring even for huge operands.
	(base_mul): Nailify.
	(dump_abort): Accept argument for error string.  Print product
	difference.

	* mpn/generic/set_str.c: Nailify.

	* gmp-h.in (__GMPN_ADD, __GMPN_SUB): Nailify.

2002-04-14  Torbjorn Granlund  <tege@swox.com>

	* randraw.c (lc): Return non-nonsense return value for seed=0 case.
	Check for m2exp being non-zero early; remove all other tests of m2exp.
	Remove redundant MPN_ZERO call.
	Let mpn_rshift put result in place to avoid extra MPN_COPY.
	Remove confusing comment before function `lc' describing BBS algorithm.
	Misc simplification and cleanups.
	Nailify.  Needs further work.

	* mpz/set_si.c: Nailify.
	* mpz/set_ui.c: Nailify.
	* mpz/mul_i.h: Nailify.

	* tests/mpz/t-mul_i.c: Actually test _ui routines.  Add some more test
	values.

	* mpn/generic/mul_n.c: Finish nailifying toom3 code.

2002-04-13  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to another new mpfr 2.0.1.
	* configure.in, Makefile.am, mpfr/Makefile.am, mpfr/tests/Makefile.am:
	Use MPFR_CONFIGS macro, establish separate MPFR_CFLAGS for mpfr build.

	* mpfr/tests/Makefile.am: Correction to convenience rule for libmpfr.a.

2002-04-11  Kevin Ryde  <kevin@swox.se>

	* mpfr/set_q.c: gmp-impl.h before mpfr.h to avoid _PROTO redefine.

	* mpfr/*, configure.in: Update to new mpfr 2.0.1.

	* tests/refmpn.c (refmpn_udiv_qrnnd, refmpn_divmod_1c_workaround):
	Fixes for nails.

	* tests/t-constants.c (MODLIMB_INVERSE_3): Nailify tests.
	(MP_BASES_BIG_BASE_INVERTED_10, MP_BASES_NORMALIZATION_STEPS_10): Only
	check these under USE_PREINV_DIVREM_1.
	* tests/t-modlinv.c: Nailify tests.

2002-04-11  Gerardo Ballabio <gerardo.ballabio@unimib.it>

	* gmpxx.h: Remove bool combinations, remove mpf_class::get_str2, only
	need <iosfwd> now.

2002-04-11  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/diveby3.c: Nailify.
	* gmp-impl.h (MODLIMB_INVERSE_3): Nailify.

	* mpn/generic/mul_n.c: Nailify Toom3 code.

2002-04-10  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (MPN_KARA_MUL_N_MINSIZE, MPN_KARA_SQR_N_MINSIZE): Set to
	3, as needed by nails case.

	* mpn/generic/addmul_1.c, mpn/generic/submul_1.c [nails]: Fix vl
	assert, add rp,n and up,n asserts.

	* mpfr/Makefile.am: Add new mpfr-math.h, install mpf2mpfr.h.

2002-04-10  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/divrem_1.c: Nailify.  Update mp_size_t variables to use
	`n' suffix instead of `size' suffix.
	* mpn/generic/divrem_2.c: Likewise.
	* mpn/generic/sb_divrem_mn.c: Nailify.
	* mpn/generic/tdiv_qr.c: Nailify.
	(SHL): Remove silly macro.

	* mpn/generic/mul_n.c (mpn_kara_mul_n): Replace open-coded increment by
	mpn_incr_u call.  Handle nails in ws[n] increment.
	* mpn/generic/mul_n.c (mpn_kara_sqr_n): Likewise.

	* gmp-h.in (GMP_NUMB_MASK): New #define.
	(__GMPN_AORS_1): Add version for nails.

	* gmp-impl.h (GMP_NUMB_MASK): Comment out, now in gmp.h.
	(mpn_incr_u): Don't assume `incr' is non-zero.
	(mpn_decr_u): Similarly.

2002-04-09  Kevin Ryde  <kevin@swox.se>

	* mpfr/*, configure.in: Update to mpfr 2.0.1.

	* tests/refmpn.c (refmpn_mul_1c, lshift_make): Corrections for nails.
	* tssts/refmpn.c, tests/tests.h (refmpn_cmp_allowzero): New function.

	* mpn/generic/mul_1.c [nails]: Fix vl assert, add {up,n} assert.

	* mpn/pa32/hppa1_1/pa7100/addmul_1.asm,
	mpn/pa32/hppa1_1/pa7100/submul_1.asm: Rename "size" define, to avoid
	ELF .size directive.  Reported by LaMont Jones.

	* tests/mpz/t-set_si.c: Add nails support.

2002-04-05  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h: Replace nail mpn_incr_u, mpn_decr_u with faster versions.
	(mp_bases[10] values): Check GMP_NUMB_BITS instead of BITS_PER_MP_LIMB.
	Add GMP_NUMB_BITS == 30 version.
	(__gmp_doprnt, etc): Remove parameter names.

	* mpn/generic/mul_n.c: Nailify Karatsuba code.
	* mpn/generic/get_str.c: Nailify.
	* mpn/generic/sqr_basecase.c: Nailify.
	* mpn/generic/lshift.c: Nailify.
	* mpn/generic/rshift.c: Likewise.
	* mpn/generic/add_n.c: Nailify.  Revamp non-nail code.
	* mpn/generic/sub_n.c: Likewise.
	* mpn/generic/mul_1.c: Likewise.
	* mpn/generic/addmul_1.c: Likewise.
	* mpn/generic/submul_1.c: Likewise.

2002-04-02  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (BSWAP_LIMB_FETCH, BSWAP_LIMB_STORE) [powerpc]:
	Corrections to constraints, and restrict to bigendian.

2002-03-31  Kevin Ryde  <kevin@swox.se>

	* tests/mpz/dive.c: Better diagnostics.

	* tests/devel/try.c (mpn_get_str, mpn_umul_ppmm_r): New tests.

	* tests/misc.c, tests/tests.h (byte_diff_lowest, byte_diff_highest):
	New functions.

	* tests/t-bswap.c: New file.
	* tests/Makefile.am (check_PROGRAMS): Add it.

	* tests/mpn/t-aors_1.c, tests/mpn/t-iord_u.c: Add nails support.

	* gmp-impl.h (MPN_IORD_U) [x86]: Eliminate unnecessary jiord and iord,
	rename "n" to incr per generic versions, restrict to nails==0.
	(mpn_incr_u, mpn_decr_u): Add nails support.
	(GMP_NAIL_LOWBIT, GMP_NUMB_MAX): New macros.

	* tests/trace.c, tests/tests.h (byte_trace, byte_tracen): New
	functions.
	* tests/trace.c: Handle NULL operands.

	* tests/refmpn.c, tests/devel/try.c, tune/speed.c: Add preliminary
	nail support.

	* tests/refmpn.c, test/tests.h (byte_overlap_p, refmpn_equal_anynail,
	refmpn_umul_ppmm_r, refmpn_udiv_qrnnd_r, refmpn_get_str,
	refmpn_bswap_limb, refmpn_random, refmpn_random2, refmpn_bswap_limb):
	New functions.

	* gmp-impl.h, tests/refmpn.c (ASSERT_LIMB): Renamed from
	ASSERT_MP_LIMB_T.

	* mpn/x86/*/*.asm, mpn/powerpc32/*/*.asm, mpn/powerpc64/*/*.asm: Put
	speeds after the copyright notice, so as to keep that clear.

2002-03-29  Kevin Ryde  <kevin@swox.se>

	* configure.in (powerpc*-*-aix*): Correction to xlc -qarch selection,
	for 32-bit mode.

2002-03-28  Torbjorn Granlund  <tege@swox.com>

	* mpn: Fix spacing in many files.

	* mpn/generic/aorsmul_1.c: Split into addmul_1.c and submul_1.c.
	* mpn/generic/aors_n.c: Split into add_n.c and sub_n.c.

	* mpn/pa64/add_n.asm: Trim another 0.125 cycle/limb.  Fix a comment.
	* mpn/pa64/sub_n.asm: Likewise.

	* mpn/pa64/mul_1.asm: Change comclr, comb to proper forms cmpclr, cmpb.
	* mpn/pa64/addmul_1.asm: Likewise.
	* mpn/pa64/submul_1.asm: Likewise.

2002-03-28  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Converting Integers): Fix type of exp in mpz_get_d_2exp,
	reported by epl@unimelb.edu.au.
	(References): Update Burnikel and Ziegler URL, reported by Keith
	Briggs.

	* gmp-h.in, mp-h.in, configure.in, acinclude.m4: Remove __GMP from
	AC_SUBSTs, since autoconf says leading "_" in makefile variables is
	not portable.

	* demos/expr/run-expr.c: Declare optarg, optind, opterr if necessary.
	* configure.in, demos/expr/expr-config-h.in: Configs for this.

2002-03-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/Makefile.am (TARG_DIST): Remove pa64w and hppa, add pa32.

	* configure.in (path_20w): Remove pa64w.

	* mpn/pa64/udiv_qrnnd.asm: Tweak for PA8000 performance comparative to
	that on PA8500.

2002-03-26  Torbjorn Granlund  <tege@swox.com>

	* mpn/pa32: New name for mpn/hppa.
	* configure.in: Corresponding changes.

	* mpn/pa64/umul_ppmm.asm: New file, generalized for both 2.0N and 2.0W.
	* mpn/pa64/umul_ppmm.S: Remove.

	* mpn/pa64/udiv_qrnnd.asm: Generalize for both 2.0N and 2.0W.
	* mpn/pa64w/udiv_qrnnd.asm: Remove.

2002-03-26  Kevin Ryde  <kevin@swox.se>

	* mpfr/tests/tdiv.c, mpfr/tests/tui_div.c: Don't depend on nan and inf
	handling in "double", for the benefit of alpha.

	* configure (hppa2.0w): Set path to "pa64w pa64".

	* acinclude.m4, configure.in (GMP_C_INLINE): New macro.
	* acinclude.m4 (GMP_H_EXTERN_INLINE): Use it, and fix "yes" handling.

2002-03-25  Torbjorn Granlund  <tege@swox.com>

	* mpn/pa64w/add_n.s: Remove.
	* mpn/pa64w/sub_n.s: Remove.
	* mpn/pa64w/lshift.s: Remove.
	* mpn/pa64w/rshift.s: Remove.
	* mpn/pa64w/mul_1.S: Remove.
	* mpn/pa64w/addmul_1.S: Remove.
	* mpn/pa64w/submul_1.S: Remove.
	* mpn/pa64w/sqr_diagonal.asm: Remove.

	* mpn/pa64/mul_1.asm: New file with twice faster code; generalized
	for both 2.0N and 2.0W.
	* mpn/pa64/submul_1.asm: Likewise.
	* mpn/pa64/mul_1.S: Remove.
	* mpn/pa64/submul_1.S: Remove.

	* mpn/pa64/sqr_diagonal.asm: Generalize for both 2.0N and 2.0W.

	* mpn/pa64/add_n.asm: New file, generalized for both 2.0N and 2.0W.
	* mpn/pa64/sub_n.asm: Likewise.
	* mpn/pa64/lshift.asm: Likewise.
	* mpn/pa64/rshift.asm: Likewise.
	* mpn/pa64/add_n.s: Remove.
	* mpn/pa64/sub_n.s: Remove.
	* mpn/pa64/lshift.s: Remove.
	* mpn/pa64/rshift.s: Remove.

2002-03-24  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (BSWAP_LIMB_FETCH, BSWAP_LIMB_STORE): New macros.
	* mpz/inp_raw.c, mpz/out_raw.c: Use them.
	* acconfig.h (HAVE_HOST_CPU): Add some powerpc types.

	* mpn/powerpc32/750/com_n.asm: New file.

	* mpfr/tests/tout_str.c: Disable random tests, since they fail on
	alphaev56-unknown-freebsd4.1 and do nothing by default.

	* mpfr/tests/tsqrt.c: Don't depend on nan, inf or -0 in "double", for
	the benefit of alpha.
	* mpfr/sqrt.c: Clear nan flag on -0.

	* demos/factorize.c: Use mpn_random() instead of random(), to avoid
	portability problems.

	* demos/isprime.c (print_usage_and_exit): Declare as "void" to avoid
	warnings.

	* demos/pexpr.c (setup_error_handler): Corrections to sigstack code.

	* demos/calc/calc.y: Add some `;'s to make bison 1.34 happy.

2002-03-23  Torbjorn Granlund  <tege@swox.com>

	* mpn/pa64/addmul_1.asm: New file with twice faster code; generalized
	for both 2.0N and 2.0W.

2002-03-22  Kevin Ryde  <kevin@swox.se>

	* tune/time.c: Add SGI hardware counter measuring method, change some
	abort()s into ASSERT_FAIL()s.

	* configure.in (AC_CHECK_HEADERS): Add fcntl.h and sys/syssgi.h.
	(AC_CHECK_FUNCS): Add syssgi.

	* configure.in, mpfr/Makefile.am, mpfr/tests/Makefile.am: Use
	-mieee-with-inexact or -ieee_with_inexact for mpfr on alpha, so
	denorms work.

	* mpfr/isinteger.c: Fix a memory leak.

2002-03-21  Torbjorn Granlund  <tege@swox.com>

	* tune/speed.c (struct choice_t): Make `r' an mp_limb_t.

2002-03-21  Kevin Ryde  <kevin@swox.se>

	* configure.in (HAVE_LIMB_BIG_ENDIAN, HAVE_LIMB_LITTLE_ENDIAN): Use an
	AH_VERBATIM and better explanation.
	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Similarly for the HAVE_DOUBLE
	constants.

	* gmp.texi (Number Theoretic Functions): Clarify sign of GCD returned
	by mpz_gcdext.

	* demos/pexpr.c, demos/pexpr-config-h.in, configure.in: Use an
	autoconf test for stack_t.

	* configure.in, gmp-h.in, mp-h.in, macos/configure, tests/mpz/reuse.c,
	tests/mpf/reuse.c: Use __GMP_LIBGMP_DLL to enable windows declspec,
	don't require _WIN32 (etc), remove __GMP_LIBGMP_SHARED and
	__GMP_LIBGMP_STATIC.

	* gmp-impl.h (mp_bases): Add __GMP_DECLSPEC, for the benefit of
	tests/t-constants.c.

	* tune/many.pl, tune/speed.h: Remove suffix hack for back.asm.

2002-03-21  Paul Zimmermann  <Paul.Zimmermann@loria.fr>

	* mpfr/sin_cos.c (mpfr_sin_cos): New file.
	* mpfr/mpfr.h, mpfr/mpfr.texi, mpfr/Makefile.am: Add it.
	* mpfr/tan.c: Fix sign in 2nd and 4th quadrants.

	* mpfr/log10.c: Fix hangs on certain inputs.

2002-03-20  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c (setup_error_handler): Declare `s', the first
	sigaltstack parameter, using `stack_t' just on AIX.

2002-03-19  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/mul_1.asm: Use free caller-saves registers instead
	of the callee-saves r30 and r31.

2002-03-19  Kevin Ryde  <kevin@swox.se>

	* tune/freq.c (freq_proc_cpuinfo): Recognise powerpc "clock", where
	previously got the wrong result from "bogomips".

	* mpn/powerpc32/add_n.asm, mpn/powerpc32/sub_n.asm: Rewrite, faster on
	750, and smaller too.
	* mpn/powerpc32/*.asm: Use L(), add some measured speeds.

	* longlong.h (count_trailing_zeros) [vax]: Add a version using ffs,
	but commented out.

2002-03-17  Kevin Ryde  <kevin@swox.se>

	* tune/speed.c, tune/speed.h, tune/common.c, many.pl: Use optional
	".r" to specify operand overlaps for mpn_add_n, mpn_sub_n and logops.
	Remove mpn_add_n_inplace and mpn_add_n_self.
	* tune/many.pl: Fix MULFUNC_PROLOGUE parsing.

	* gmp.texi (Known Build Problems): Note `make' problem with long
	libgmp.la dependencies list.

	* printf/doprnt.c, scanf/doscan.c (%zn): Remove test of non-existent
	HAVE_SIZE_T, just use size_t unconditionally.
	* printf/doprnt.c (%zd etc): Fix 'z' type parsing.
	* tests/misc/t-printf.c, tests/misc/t-scanf.c: More tests.

	* configure.in: Use AC_COPYRIGHT.
	Add m4_pattern_allow(GMP_MPARAM_H_SUGGEST).

	* tune/Makefile.am (libdummy.la): Remove this, sqr_basecase.c already
	gets an ansi2knr rule from nodist_tuneup_SOURCES.

	* longlong.h (count_leading_zeros) [pentiumpro gcc<3]: Test
	HAVE_HOST_CPU_i686 too.

	* mpz/out_raw.c (HTON_LIMB_STORE): Fix a typo in big endian #if.

2002-03-14  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium/com_n.asm, mpn/x86/pentium/logops_n.asm,
	mpn/x86/k6/mmx/com_n.asm: Add nails support.

	* texinfo.tex: Update to 2002-03-01.06 (per texinfo 4.1).
	* gmp.texi (@ma): Remove, @math does this now.

	* mpfr/tests/reuse.c: Clear op1 and op2 flags only in their respective
	outer loops.

	* configure.in (--enable-cxx): Correction to the default stated in the
	help string.
	(power*-*-aix*, not powerpc): Use aix.m4, don't run
	GMP_ASM_POWERPC_R_REGISTERS or use powerpc-defs.m4.

2002-03-13  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc32/gmp-mparam.h: New file.

2002-03-13  Kevin Ryde  <kevin@swox.se>

	* demos/expr/exprfr.c: More mpfr functions, corrections to agm, cos,
	sin, rename log2 constant to loge2 to make room for log2 function.
	* demos/expr/t-expr.c: More tests.

	* mpz/inp_raw.c (NTOH_LIMB_FETCH) [generic 16bit]: Remove spurious "+".

	* mpfr/acos.c: Avoid a memory leak for certain operands.

	* acinclude.m4, configure.in (GMP_C_DOUBLE_FORMAT): New macro.

	* acinclude.m4 (GMP_HPC_HPPA_2_0, GMP_ASM_UNDERSCORE,
	GMP_ASM_ALIGN_LOG, GMP_ASM_LSYM_PREFIX, GMP_ASM_W32, GMP_ASM_X86_MMX):
	Change ac_objext to OBJEXT, which is the documented variable.

	* config.guess (powerpc*-*-*): Use #ifdef on constants POWER_630 etc
	in the AIX test, since old versions don't have them all.

2002-03-11  Kevin Ryde  <kevin@swox.se>

	* configure.in (LIBC211): New AC_DEFINE, for mpfr.

	* configure.in (mips*-*-*): Support ABI=o32 on irix 6, allow gcc 2.7.2
	to fall back on it, but detect it doesn't work with gcc 2.95.  Use
	single mips-defs.m4 for both mips32 and mips64.
	* acinclude.m4 (GMP_GCC_MIPS_O32): New macro.
	* mpn/mips32/mips-defs.m4: Renamed from mips.m4.
	* mpn/mips64/mips.m4: Remove (was a copy of mips32/mips.m4).

	* mpn/powerpc32/750: New directory.
	* configure.in (powerpc740, powerpc750, powerpc7400): Use it.
	* mpn/powerpc32/750/gmp-mparam.h: New file.

	* config.sub, gmp.texi (ultrasparc1): Remove this, just use plain
	"ultrasparc".

2002-03-10  Kevin Ryde  <kevin@swox.se>

	* mpfr: Update to 20020301, except internal_ceil_exp2.c,
	internal_ceil_log2.c, internal_floor_log2.c renamed to i_ceil_exp2.c,
	i_ceil_log2.c, i_floor_log2.c to be unique in DOS 8.3.  And sqrtrem.c
	removed since no longer required.
	* mpfr/mpfr.texi: Fix some formatting.
	* mpfr/tests/reuse.c: Patch by Paul to fix test4 variable handling.
	* mpfr/sinh.c: Patch by Paul to fix err calculation when t==0.
	* mpfr/tests/tget_d.c: Disable until portability of rnd_mode.c can be
	sorted out.

	* configure.in (powerpc*-*-*): Separate gcc and xlc cpu flags setups
	for clarity.

	* longlong.h (count_leading_zeros, count_trailing_zeros) [x86_64]: New
	macros.

2002-03-07  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Build Options): Note all the ultrasparcs accepted.
	(Language Bindings): Add Math::BigInt::GMP.

	* config.sub (ultrasparc2i): New cpu type.
	* config.guess (sparc-*-*, sparc64-*-*): Add some exact CPU detection.

2002-03-05  Kevin Ryde  <kevin@swox.se>

	* longlong.h (count_leading_zeros, count_trailing_zeros) [alphaev67,
	alphaev68]: Use ctlz and cttz insns (as per gcc longlong.h).
	(count_leading_zeros) [sparclite]: Fix parameter order (as per gcc
	longlong.h).
	* acconfig.h (HAVE_HOST_CPU_alphaev68): New define.

	* config.guess [i?86-*-*]: Suppress error messages if compiler not
	found or test program won't run.
	[rs6000-*-*, powerpc-*-*]: Force code alignment for mfpvr test.

2002-03-04  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/pow_1.c: New file.

2002-03-03  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Build Options): Note compiler must be able to fully link,
	add alphapca57 and alphaev68, give a clearer example of MPN_PATH
	(Debugging): Add notes on valgrind.
	(C++ Formatted Output): Clarify mpf showbase handling, in particular
	note "00.4" in octal.

	* printf/doprntf.c: Do a showbase on octal float fractions, for
	instance "00.4" where previously it gave "0.4".
	* tests/cxx/t-ostream.cc: Update.

	* gmp-h.in, mp-h.in (__GMP_DECLSPEC, __GMP_DECLSPEC_XX): Test
	__WIN32__ for Borland C, reported by "delta trinity".

	* gmp-h.in, mp-h.in: Use <cstddef> for size_t under C++, suggested by
	Hans Aberg some time ago.
	* gmp-h.in (<iosfwd>): Move to top of file for clarity.

	* Makefile.am (libgmpxx_la_SOURCES): Use dummy.cc to force C++.
	(CXX_OBJECTS): Add osfuns$U.lo.
	* dummy.cc: New file.
	* cxx/Makefile.am (INCLUDES): Use __GMP_WITHIN_GMPXX.
	(libcxx_la_SOURCES): Add osfuns.cc.
	* gmp-h.in (__GMP_DECLSPEC_XX): New define, use it on libgmpxx funs.
	* gmp-impl.h: Add __GMP_DECLSPEC to libgmp functions used by libgmpxx.

	* longlong.h (COUNT_TRAILING_ZEROS_TIME): Remove, no longer used.

	* gmp-impl.h (MPN_SIZEINBASE, MPN_SIZEINBASE_16): Correction to
	__totbits for nails.

	* gmp-impl.h (JACOBI_LS0): Test size before limb, to pacify valgrind.
	(JACOBI_0LS): Ditto, and fix parens around arguments.

	* mpn/x86/x86-defs.m4 (call_mcount): Add a counter to make data labels
	unique, since simplified L() scheme no longer gives that effect.
	(notl_or_xorl_GMP_NUMB_MASK): New macro.
	Add m4_assert_numargs in a few places.

	* configure.in (*sparc*): Fix cycle counter setups for ABI=64.

2002-02-28  Torbjorn Granlund  <tege@swox.com>

	* mpn/vax/gmp-mparam.h: New file.

2002-02-28  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in (gmp_errno, gmp_version): Move into extern "C" block,
	reported by librik@panix.com.

	* gmp-h.in, mp-h.in (__GMP_DECLSPEC_EXPORT, __GMP_DECLSPEC_IMPORT):
	Use __declspec(dllexport) and __declspec(dllimport) on Borland.
	* gmp-h.in (_GMP_H_HAVE_FILE): Test __STDIO_H for Borland.
	Reported by "delta trinity".

	* gmp-impl.h (va_copy): Fall back on memcpy, not "=".

	* mpn/generic/pre_mod_1.c: Add a comment about obsolescence.

	* tune/time.c (MICROSECONDS_P): Don't trust time differences of 1
	microsecond.

	* tests/cxx/t-ostream.cc: Use "const char *" not just "char *" for
	test data strings, avoids warnings on Sun CC.

2002-02-27  Torbjorn Granlund  <tege@swox.com>

	* configure.in: For sparc under solaris2.[7-9], pass -fsimple=1 to
	disable some crazy -fast optimizations.

2002-02-25  Torbjorn Granlund  <tege@swox.com>

	* configure.in: For sparc under solaris2.[7-9], pass -fns=no to enable
	denorm handling under -fast.

2002-02-25  Kevin Ryde  <kevin@swox.se>

	* configure.in (alpha*-*-*): Rearrange -mcpu selection for gcc,
	provide an ev67 -> ev6 fallback.  Fix -arch,-tune selection for DEC C.
	Allow ~ for space in optional options lists.

	* tune/tuneup.c (tune_preinv_divrem_1): Compare against an assembler
	mpn_divrem_1 if it exists, not the generic C mpn_divrem_1_div.
	(tune_preinv_mod_1): Ditto with mpn_mod_1.

	* tune/time.c (DIFF_SECS_ROUTINE): Eliminate the unused "type"
	parameter, try to make the code a bit clearer.

	* tune/freq.c: Reduce the period measured for cycles versus
	gettimeofday, add cycles versus microsecond getrusage.

	* mpz/array_init.c: "i" should be mp_size_t, noticed by E. Khong.

2002-02-24  Torbjorn Granlund  <tege@swox.com>

	* configure.in: For sparc under solaris2.[7-9], pass -fast instead of
	other optimization options.

2002-02-23  Kevin Ryde  <kevin@swox.se>

	* mpn/asm-defs.m4 (GMP_NUMB_MASK): New macro.
	(PROLOGUE, EPILOGUE): Relax quoting for the benefit of tune/many.pl
	when GSYM_PREFIX non-empty.

	* tune/time.c, tune/speed.h (speed_time_init): Include clock tick
	period in speed_time_string.
	* tune/time.c, configure.in (clock_gettime): New measuring method.

	* tune/many.pl: Add -DHAVE_NATIVE_mpn_foo to C objects, to avoid
	conflicts with a macro version in gmp-impl.h, eg. mpn_com_n.

2002-02-22  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c: Increase RLIMIT_STACK to 4Mibyte.

2002-02-22  Kevin Ryde  <kevin@swox.se>

	* tune/tuneup.c: Don't confuse gcc with mipspro cc in diagnostic.

2002-02-20  Torbjorn Granlund  <tege@swox.com>

	* configure.in (mips*-*-irix[6789]*]): Set `extra_functions_n32', not
	`extra_functions'.

	* printf/doprnt.c: Conditionally include inttypes.h.
	* printf/repl-vsnprintf.c: Likewise.
	* scanf/doscan.c: Likewise.

2002-02-20  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/k7/mmx/com_n.asm: New file.

	* mpz/n_pow_ui.c (SWAP_RP_TP): Use ASSERT_CODE on ralloc and talloc,
	to ensure they needn't live past the initial allocs in a normal build.

	* mpn/generic/mod_34lsub1.c: Note this is for internal use.

2002-02-19  Torbjorn Granlund  <tege@swox.com>

	* Clean up *_THRESHOLD names.  Many files affected.

	* mpn/mips32: Asm-ify 32-bit mips code.
	Move files from `mips2' to `mips32' directory.
	* mpn/mips64: Move files from `mips3' to `mips64' directory.
	* configure.in: Change `mips2' => `mips32' and `mips3' => `mips64'.

2002-02-19  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4, configure.in (GMP_PROG_LEX): New macro.

	* tune/tuneup.c (one): Start next threshold at a max of previous ones,
	in order to get a good starting point for TOOM3_SQR_THRESHOLD if
	KARATSUBA_SQR_THRESHOLD is 0 (ie. using mpn_mul_basecase only).

	* configure.in, tune/tuneup.c (GMP_MPARAM_H_SUGGEST): New AC_DEFINE
	replacing GMP_MPARAM_H_FILENAME.  Suggest a new file in a cpu specific
	subdirectory rather than mpn/generic.

	* acinclude.m4 (POWERPC64_PATTERN): New macro.
	* configure.in (powerpc*-*-*): Use it.
	(powerpc*-*-*): Use umul in 32L and aix64.
	(mips*-*-*): Use umul, 32 and 64 bit versions.

2002-02-18  Torbjorn Granlund  <tege@swox.com>

	* longlong.h: Add basic x86-64 support.

2002-02-17  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c: Support `-X' for upper case hex, make `-x' output
	lower case hex.

	* mpn/mips2/umul.s: Make it actually work.
	* mpn/mips3/umul.asm: New file.

	* mpn/mips2/gmp-mparam.h: New file.

2002-02-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/get_str.c (mpn_sb_get_str): Round frac upwards after
	umul_ppmm calls.

2002-02-16  Kevin Ryde  <kevin@swox.se>

	* config.guess (alpha-*-*): Do alpha exact cpu probes on any system,
	and only if configfsf.guess gives a plain "alpha".

	* acinclude.m4 (GMP_PROG_CC_WORKS): Detect a gcc 3.0.3 powerpc64
	linker invocation problem.

2002-02-15  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/get_str.c (mpn_sb_get_str): For base 10, develop initial
	digits using umul_ppmm, then switch to plain multiplication.

	* config.guess: Rewrite Alpha subtype detection code for *bsd systems.

2002-02-15  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Build Options): Note powerpc exact cpu types.
	(Debugging): Advertise DEBUG in memory.c.

	* config.sub, config.guess: Add some powerpc exact cpus.
	* configure.in: Add configs for them.

	* memory.c [__NeXT__]: Remove unused #define of "static".
	(__gmp_default_allocate, __gmp_default_reallocate): Print size if
	allocation fails, don't use perror.

	* gmp-h.in: g++ 3 demands __GMP_NOTHROW is before other attributes.

2002-02-14  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/mul_1.asm: Fix typo preventing build on T3E systems.

2002-02-14  Kevin Ryde  <kevin@swox.se>

	* tune/tuneup.c (tune_set_str): Increase max_size, for the benefit of
	alpha.

	* macos/README: Bug reports to bug-gmp@gnu.org, clarify MacOS X a bit.

	* mpn/generic/gcdext.c [WANT_GCDEXT_ONE_STEP]: Add missing TMP_FREE.

	* tune/speed.c, tune/tuneup.c: Allow for speed_cycletime of 0.0 in
	some diagnostic printouts.
	* tune/time.c (speed_cycletime): Note can be 0.0.

2002-02-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/mul_1.asm: Add mpn_mul_1c entry.

	* mpn/pa64w/sqr_diagonal.asm: Use L() for labels.

2002-02-11  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/get_str.c (mpn_sb_get_str): Change declaration of rp to
	accommodate tuneup compiles.

2002-02-11  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/default.m4, mpn/alpha/unicos.m4 (PROLOGUE_cpu): Add
	noalign option.
	* mpn/alpha/default.m4 (PROLOGUE_cpu): use ALIGN instead of ".align".

	* gmp.texi (Debugging): Notes on Checker.
	(Other Multiplication): Move note on float FFTs to here.
	(Assembler Floating Point): New text and revisions by Torbjorn,
	picture formatting by me.
	Simplify tex pictures elsewhere a bit, share heights, eliminate some
	gaps at line joins.

2002-02-11  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/get_str.c (mpn_sb_get_str): Rewrite to generate fraction
	limbs and use multiplication for digit development.  Trim allocation of
	buf.  Get rid of code for !USE_MULTILIMB.

2002-02-10  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/set_str.c (mpn_set_str): Undo this:
	Change invocations of mpn_add_1 to instead use mpn_incr_u.

	* tests/mpz/convert.c: Free str only after it is used in error message.

	* mpn/generic/get_str.c (mpn_sb_get_str): Combine tail code for base 10
	and generic bases.

	* mpn/mp_bases.c: Add entries for base 256.  Remove __ prefix from
	table name.
	* gmp-impl.h (__mp_bases): Remove superfluous mp_ part of name, making
	it __gmpn_bases instead of __gmpn_mp_bases.
	(mp_bases): New #define.
	* tune/speed.h (SPEED_ROUTINE_MPN_SET_STR): Allow bases up to 256.
	(SPEED_ROUTINE_MPN_GET_STR): Likewise.

2002-02-09  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/set_str.c (mpn_set_str): Use mpn_mul_1c if available.
	Change invocations of mpn_add_1 to instead use mpn_incr_u.

2002-02-09  Kevin Ryde  <kevin@swox.se>

	* mpz/array_init.c, mpz/cfdiv_q_2exp.c, mpz/cfdiv_r_2exp.c,
	mpz/cong_2exp.c, mpz/divis_2exp.c, mpz/hamdist.c, mpz/init2.c,
	mpz/mul_2exp.c, mpz/realloc2.c, mpz/scan0.c, mpz/scan1.c,
	mpz/setbit.c, mpz/tdiv_q_2exp.c, mpz/tdiv_r_2exp.c, mpz/tstbit.c,
	mpz/urandomb.c: Use GMP_NUMB_BITS.

	* mpz/iset_str.c [__CHECKER__]: Store a dummy value to the low limb to
	stop it appearing uninitialized.

	* gmp-h.in (__GMP_NOTHROW): New macro.
	(mp_set_memory_functions, mpz_cmp, mpz_cmp_si, mpz_cmp_ui, mpz_cmpabs,
	mpz_cmpabs_ui, mpz_congruent_2exp_p, mpz_divisible_2exp_p,
	mpz_fits_sint_p, mpz_fits_slong_p, mpz_fits_sshort_p, mpz_fits_uint_p,
	mpz_fits_ulong_p, mpz_fits_ushort_p, mpz_get_si, mpz_get_ui,
	mpz_getlimbn, mpz_hamdist, mpz_popcount, mpz_scan0, mpz_scan1,
	mpz_size, mpz_sizeinbase, mpz_swap, mpz_tstbit, mpq_equal, mpq_swap,
	mpf_cmp, mpf_cmp_si, mpf_cmp_ui, mpf_fits_sint_p, mpf_fits_slong_p,
	mpf_fits_sshort_p, mpf_fits_uint_p, mpf_fits_ulong_p,
	mpf_fits_ushort_p, mpf_get_default_prec, mpf_get_prec, mpf_get_si,
	mpf_get_ui, mpf_integer_p, mpf_set_default_prec, mpf_set_prec_raw,
	mpf_size, mpf_swap, mpn_add_1, mpn_cmp, mpn_hamdist, mpn_popcount,
	mpn_sub_1): Use it.

	* gmp-impl.h (MPN_SIZEINBASE, MPN_SIZEINBASE_16): New macros from
	mpn_sizeinbase, and use GMP_NUMB_BITS.
	* mpz/get_str.c, mpz/sizeinbase.c, mpbsd/mout.c, tune/speed.h: Use
	MPN_SIZEINBASE.
	* mpbsd/mtox.c: Use MPN_SIZEINBASE_16.

	* configure.in, mpn/Makefile.am, gmp-impl.h (mpn_sizeinbase): Remove.
	* mpn/generic/sizeinbase.c: Remove file.

	* gmp-impl.h (MPN_GET_STR_SIZE): Remove.
	* tests/mpn/t-g_str_size.c: Remove file.
	* tests/mpn/Makefile.am: Update.

	* Makefile.am (dist-hook): Don't distribute cvs merge ".#" files.

2002-02-08  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Override extra_functions for all sparcv8 systems, not
	just supersparc.

2002-02-06  Kevin Ryde  <kevin@swox.se>

	* tune/tuneup.c (tune_mul, tune_sqr): Disable FFTs until tuned.
	* tune/speed.h (SPEED_ROUTINE_MPN_SET_STR): Fix memory clobber in
	destination cache priming.

	* printf/doprnt.c: Fix parsing of %s and %p conversions.
	* tests/misc/t-printf.c (check_misc): Add some tests.

2002-02-03  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc32/v8/udiv.asm: New file, from v8/supersparc.

	* mpn/generic/set_str.c: Rename indigits_per_limb => chars_per_limb.
	Remove redundant chars_per_limb.  Reverse 4 loops in basecase code for
	speed.  Use MP_BASES_CHARS_PER_LIMB_10.

2002-02-03  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_PROG_NM): Ensure -B or -p get used when doing a
	cross compile with the native nm, helps OSF for instance.
	(GMP_ASM_LSYM_PREFIX): Remove ".byte 0" for the benefit of irix 6,
	allow "N" from nm for OSF, allow for "t" for other systems, but prefer
	no mention of the symbol at all.

	* tune/tuneup.c (print_define_remark): New function.
	Turn some "#if"s into plain "if"s.

	* tune/tuneup.c, gmp-impl.h, tune/Makefile.am
	(GET_STR_BASECASE_THRESHOLD, GET_STR_PRECOMPUTE_THRESHOLD): Tune these.
	* mpn/generic/get_str.c [TUNE_PROGRAM_BUILD]: Cope with non-constant
	GET_STR_PRECOMPUTE_THRESHOLD.

2002-02-02  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/get_str.c (mpn_get_str): Fix typo in a declaration.

2002-02-02  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/set_str.c: Use MP_PTR_SWAP and POW2_P, add __GMP_PROTO
	to convert_blocks prototype, disable SET_STR_BLOCK_SIZE sanity check.

	* tune/set_strb.c, tune/set_strs.c: New files.
	* tune/speed.h, tune/speed.c, tune/common.c,tune/Makefile.am: Add them.
	* tune/tuneup.c: Tune SET_STR_THRESHOLD.
	(DEFAULT_MAX_SIZE): Renamed from MAX_SIZE, allow any param.max_size[].

2002-02-01  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/convert.c: Increase operand size.  Add (yet disabled) code
	for testing with random strings.

	* mpn/generic/get_str.c (mpn_get_str): Rewrite to become sub-quadratic.
	(mpn_dc_get_str, mpn_sb_get_str): New functions.

2002-01-31  Kevin Ryde  <kevin@swox.se>

	* gmpxx.h (cmp): Renamed from "compare".

	* configure.in (AC_C_BIGENDIAN): Don't abort when cross compiling.
	(PROLOGUE): Allow new style optional second parameter when grepping.

	* acinclude.m4 (GMP_HPC_HPPA_2_0, GMP_ASM_UNDERSCORE,
	GMP_ASM_ALIGN_LOG, GMP_ASM_LSYM_PREFIX, GMP_ASM_W32, GMP_ASM_X86_MMX):
	Use $ac_objext for object filenames.
	(GMP_ASM_UNDERSCORE): Use CCAS to assemble.

	* demos/pexpr-config-h.in: New file.
	* configure.in: Generate demos/pexpr-config.h.
	(AC_CHECK_FUNCS): Add clock, cputime, setrlimit, sigaction,
	sigaltstack, sigstack.
	* acinclude.m4 (GMP_SUBST_CHECK_FUNCS, GMP_SUBST_CHECK_HEADERS): New
	macros.
	* demos/pexpr.c: Use pexpr-config.h, not various #ifdefs.
	(setup_error_handler): Use signal if sigaction not available, allow
	for SIGBUS missing on mingw.
	(main): Use time() for random seed if gettimeofday not available.
	(cleanup_and_exit): Move SIGFPE out of LIMIT_RESOURCE_USAGE.

2002-01-30  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/set_str.c: Rewrite to become sub-quadratic.
	(convert_blocks): New function.

2002-01-30  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (GMP_NUMB_MASK, GMP_NAIL_MASK, GMP_NUMB_HIGHBIT,
	ASSERT_MPN, ASSERT_MP_LIMB_T): New macros.

	* mpn/generic/fib2_ui.c: Use GMP_NUMB_BITS, simplify the data
	generator program, share __gmp_fib_table initializers between bit
	sizes, cope with bit sizes other than those specifically setup.
	* gmp-impl.h (FIB_TABLE_LIMIT, FIB_TABLE_LUCNUM_LIMIT): Corresponding
	rearrangement of conditionals.
	* tests/mpz/t-fib_ui.c (check_fib_table): New test.

2002-01-28  Kevin Ryde  <kevin@swox.se>

	* mpz/set_si.c, mpz/iset_si.c: Store to _mp_d[0] unconditionally, use
	an expression for _mp_size.

	* mpz/init.c, mpz/init2.c, mpz/iset.c, mpq/init.c [__CHECKER__]: Store
	dummy values to low limbs to stop them appearing uninitialized.

2002-01-26  Kevin Ryde  <kevin@swox.se>

	* mpfr/mpfr-test.h (MAX, MIN, ABS): Use instead a patch from Paul and
	Vincent.

2002-01-24  Kevin Ryde  <kevin@swox.se>

	* configure.in: Extra quoting to get argument help messages right.

	* gmp.texi (Efficiency): Suggest hex or octal for input and output.
	(Formatted Output Strings): Mention "*" for width and precision.

	* mpn/generic/sizeinbase.c: New file, adapted from mpz/sizeinbase.c.
	Use POW2_P, use __mp_bases[base].big_base for log2(base).
	* configure.in, mpn/Makefile.am: Add it.
	* gmp-impl.h: Add prototype.
	* mpz/sizeinbase.c, tune/speed.h, mpn/generic/get_str.c,
	mpz/get_str.c, mpbsd/mout.c, mpbsd/mtox.c: Use it.
	* mpz/get_str.c: Write directly to user buffer, skip at most one
	leading zero, eliminate special case for x==0.
	* mpbsd/mtox.c: Allocate exact result space at the start, eliminate
	special case for x==0.
	* mpbsd/mout.c: Only need to skip one high zero with mpn_sizeinbase.

	* configure.in (--enable-nails): New option.
	(GMP_NAIL_BITS, GMP_LIMB_BITS, GMP_NUMB_BITS): New defines for gmp.h
	and config.m4.
	* gmp-h.in: Add templates.

	* mpfr/mpfr-test.h (MAX, MIN, ABS): Use #ifndef to avoid a redefine
	error on AIX xlc.

2002-01-23  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/get_str.c: Correct type of `out_len'.

2002-01-22  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/pre_divrem_1.c: Corrections to some ASSERTs.

	* mpfr/mul_ui.c: Don't call mpn_lshift with 0 shift.

	* mpfr/mpz_set_fr.c: Produce correct mpz_t for f==0.

2002-01-21  Torbjorn Granlund  <tege@swox.com>

	* longlong.h (32-bit powerpc add_ssaaaa): Remove spurious commutative
	declaration.
	(64-bit powerpc add_ssaaaa): Likewise.

2002-01-20  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_FUNC_VSNPRINTF): Use %n to better detect sparc
	solaris 2.7 problems.

2002-01-19  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c (mpz_eval_expr): Optimize s^rhs for -1 <= s <= 1.
	(cleanup_and_exit): Improve error message wording.

2002-01-19  Kevin Ryde  <kevin@swox.se>

	* mpfr/mpfr.h (_PROTO): Use __GMP_PROTO, for compatibility with
	gmp-impl.h.

2002-01-17  Torbjorn Granlund  <tege@swox.com>

	* mpfr/mpfr-test.h: Test "__hpux", not "hpux".  Mask off mrand48
	return value to 31 bits to work around sloppy mpfr #include practices.

	* mpfr/tests/*.c: Use #include "", not <>, for gmp.h and mpfr.h.
	Make sure to #include mpfr-test.h from all files that use random().

2002-01-17  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (__GMP_REALLOCATE_FUNC_MAYBE_TYPE): New macro.
	* gmp-impl.h, mpz/get_str.c, mpz/out_raw.c, mpq/get_str.c,
	mpq/set_str.c, mpf/get_str.c, printf/asprntffuns.c, printf/doprnt.c,
	printf/repl-vsnprintf.c, printf/snprntffuns.c, scanf/doscan.c,
	mpbsd/mtox.c: Some fixes to compile as C++.

	* mpn/generic/jacbase.c (JACOBI_BASE_METHOD): New tuned parameter,
	replacing COUNT_TRAILING_ZEROS_TIME test.  Add a third method too.
	* tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Add
	measuring of mpn_jacobi_base methods.
	* tune/jacbase1.c, tune/jacbase2.c, tune/jacbase3.c: New files.
	* tune/tuneup.c (JACOBI_BASE_METHOD): Tune this.
	* mpn/x86/*/gmp-mparam.h (COUNT_TRAILING_ZEROS_TIME): Remove macro.

	* gmp-h.in: Use __gmp prefix on variables in inlines.

	* gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Remove __i, unused.

	* mpn/generic/mul_fft.c: Use HAVE_NATIVE_mpn_addsub_n, not ADDSUB.
	Use CNST_LIMB for some constants.

2002-01-15  Kevin Ryde  <kevin@swox.se>

	* tests/mpbsd/Makefile.am: Add a convenience rule for ../libtests.la.

	* printf/Makefile.am: libdummy.la should be in EXTRA_LTLIBRARIES.

	* mpf/out_str.c: Use MPF_SIGNIFICANT_DIGITS, so mpf_out_str and
	mpf_get_str give the same for ndigits==0.

	* mpfr/exceptions.c (mpfr_set_emin, mpfr_set_emax): Work around a
	powerpc64 gcc 3.0 -O2 bug.

	* tests/memory.c, tests/tests.h (tests_memory_validate): New function.

2002-01-14  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/sb_divrem_mn.c, mpn/generic/divrem_1.c,
	mpn/generic/divrem_2.c, mpn/generic/mod_1.c: Don't use UMUL_TIME and
	UDIV_TIME, just default to preinv.
	* gmp-impl.h (USE_PREINV_DIVREM_1, USE_PREINV_MOD_1): Ditto.
	(DIVEXACT_1_THRESHOLD, MODEXACT_1_ODD_THRESHOLD): Don't use UMUL_TIME
	and UDIV_TIME, make default thresholds 0.
	(UDIV_NORM_PREINV_TIME, UDIV_UNNORM_PREINV_TIME): Remove macros.
	* mpn/x86/*/gmp-mparam.h (UMUL_TIME, UDIV_TIME,
	UDIV_NORM_PREINV_TIME): Remove macros.

	* gmp.texi (Headers and Libraries): New section, being the header
	notes from "GMP Basics" and some new stuff.
	(Parameter Conventions): Notes on "const" parameters.
	(Formatted Output Strings): Add type N, tweak some wording.

	* tests/refmpn.c (refmpn_divmod_1c): Avoid a bug in i386 gcc 3.0.

2002-01-12  Kevin Ryde  <kevin@swox.se>

	* mpz/root.c: Add <stdlib.h>, for abort().

	* mpfr/tests/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr.
	* mpfr/mpfr.h, mpfr/mpfr-tests.h, reuse.c, tadd.c, tadd_ui.c, tagm.c,
	tatan.c, tcmp2.c, tcos.c, tdiv.c, tdiv_ui.c, teq.c, texp.c,
	tget_str.c, thyperbolic.c, tlog.c, tmul.c, tout_str.c, tpow.c,
	trandom.c, tset_z.c, tsin.c, tsqrt.c, tsqrt_ui.c, tsub_ui.c, ttan.c,
	tui_div.c: Fixes for K&R.

	* tests/misc/t-scanf.c (check_misc, check_misc):

	* tests/mpz/t-inp_str.c, tests/mpq/t-inp_str.c, tests/misc/t-scanf.c:
	Avoid strings in ASSERT, not enjoyed by K&R.
	* gmp-impl.h (ASSERT): Note this.

	* tests/tests.h (refmpn_mod_34lsub1): Add __GMP_PROTO.

	* mpbsd/Makefile.am: Avoid an automake problem with ansi2knr and
	sources in a different directory.

	* printf/repl-vsnprintf.c: Test HAVE_LONG_DOUBLE for long double.

	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add mod_34lsub1.c,
	mul_2.c, pre_divrem_1.c.

	* gmp-h.in, gmp-impl.h (mpn_add_nc, mpn_addmul_1c, mpn_addsub_n,
	mpn_addsub_nc, mpn_divrem_1c, mpn_dump, mpn_mod_1c, mpn_mul_1c,
	mpn_mul_basecase, mpn_sqr_n, mpn_sqr_basecase, mpn_sub_nc,
	mpn_submul_1c): Move to gmp-impl.h, since they're undocumented.

	* gmp-impl.h (mpn_reciprocal): Remove, unused.

	* tune/many.pl (cntlz, cnttz): Use new SPEED_ROUTINE_COUNT_ZEROS.

2002-01-11  Kevin Ryde  <kevin@swox.se>

	* mpn/hppa/*.asm, mpn/pa64/*.asm, mpn/pa64w/*.asm: Use L().

2002-01-08  Kevin Ryde  <kevin@swox.se>

	* mpn/asm-defs.m4 (PROLOGUE, EPILOGUE): New scheme, optional function
	name to EPILOGUE, check for missing or wrong function name EPILOGUE.
	* mpn/alpha/unicos.m4, mpn/alpha/default.m4, mpn/m68k/m68k-defs.m4,
	mpn/mips3/mips.m4, mpn/ia64/default.m4, mpn/powerpc32/aix.m4,
	mpn/powerpc64/aix.m4, mpn/x86/x86-defs.m4: Consequent updates, add a
	few more asserts.
	* mpn/alpha/unicos.m4, mpn/alpha/default.m4, mpn/alpha/cntlz.asm,
	mpn/alpha/invert_limb.asm (PROLOGUE_GP): Change to an optional "gp"
	parameter on plain PROLOGUE.

	* gmp.texi (Low-level Functions): mpn_get_str doesn't clobber an extra
	limb, and doesn't clobber at all for power of 2 bases.
	(Language Bindings): Add python gmpy.

	* mpz/get_str.c: Determine realloc size arithmetically.

	* mpbsd/mtox.c: Size memory block returned to actual space needed.
	* gmp.texi (BSD Compatible Functions): Describe this.

	* mpz/get_str.c: Don't copy mpn_get_str input for power of 2 bases.
	* mpbsd/mtox.c: Ditto, and as a side effect avoid a memory leak from a
	missing TMP_FREE.

	* mpz/get_str.c, mpbsd/mout.c: No longer need for +1 limb for
	mpn_get_str clobber.

	* gmp-impl.h (MPN_GET_STR_SIZE): New macro.
	* mpn/generic/get_str.c, mpz/get_str.c, mpbsd/mout.c, mpbsd/mtox.c,
	tune/speed.h: Use it.
	* tests/mpn/t-g_str_size.c: New test.
	* tests/mpn/Makefile.am: Add it.

	* gmp-impl.h (POW2_P): New macro.
	* mpn/generic/get_str.c, tests/misc.c: Use it.

	* printf/doprnt.c: Add "N" for mpn, share some code between N, Q and Z.
	* tests/misc/t-printf.c: Add tests.
	* gmp-impl.h (ASSERT_CODE): New macro.

	* tests/mpbsd/t-mtox.c: New test.
	* tests/mpbsd/Makefile.am: Add it.
	(allfuns_LDADD): Don't link against libgmp when testing everything in
	libmp can link.

2002-01-07  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Rewrite generic versions.

2002-01-06  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/pre_divrem_1.c: Don't support size==0.
	* tests/devel/try.c: Update.

	* mpn/generic/get_str.c: Add special case for base==10.
	* gmp-impl.h (MP_BASES_CHARS_PER_LIMB_10, MP_BASES_BIG_BASE_10,
	MP_BASES_BIG_BASE_INVERTED_10, MP_BASES_NORMALIZATION_STEPS_10): New
	constants.
	* tests/t-constants.c: Add checks.
	* mpn/mp_bases.c [GENERATE_TABLE]: Print defines for gmp-impl.h, print
	all standard bits-per-limb by default.

	* demos/pexpr.c, demos/expr/expr.h, demos/expr/expr-impl.h: Use
	__GMP_PROTO.

	* gmp-h.in (mpn_divexact_by3c): Remove variables from prototype, to
	keep out of application namespace.

2002-01-04  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h: Move _PROTO declaration to before its first usages.

2002-01-04  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in, mp-h.in, tests/tests.h: Rename _PROTO to __GMP_PROTO, and
	don't use #ifndef just define it ourselves.
	* gmp-impl.h: Provide _PROTO as an alias for __GMP_PROTO, to avoid big
	edits internally, for the moment.

2002-01-03  Torbjorn Granlund  <tege@swox.com>

	* tune/speed.c (usage): Insert "\n\" into a string.

2001-12-30  Torbjorn Granlund  <tege@swox.com>

	* mpn/pa64/udiv_qrnnd.c: Remove file.
	* mpn/pa64w/udiv_qrnnd.c: Remove file.

	* gmp-impl.h (MPN_IORD_U): Change formatting (labels in pos 0, insns
	indented by tab).
	(MPN_INCR_U): Use "addl $1,foo; jc", not "incl foo; jz".

	* gmp-impl.h (udiv_qrnnd_preinv): Use plain subtract, not sub_ddmmss,
	in one more case.

2001-12-30  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/get_str.c (udiv_qrnd_unnorm): New macro.
	Use "do while" for dig_per_u loop since it's non-zero.
	* acconfig.h (HAVE_HOST_CPU_m68k etc): Add templates.

	* mpn/generic/mul_basecase.c, mpz/mul.c, mpz/n_pow_ui.c,
	mpn/x86/pentium/mul_2.asm, tests/devel/try.c, tests/tests.h,
	tests/refmpn.c, tune/speed.c, tune/speed.h, tune/common.c,
	tune/many.pl (mpn_mul_2): New parameter style.
	* gmp-impl.h (mpn_mul_2): Add prototype.
	* configure.in (gmp_mpn_functions_optional): Add mul_2.

	* longlong.h (__vxworks__): Remove from powerpc tests, not correct,
	not on its own at least.

	* tune/speed.c: Add "aas" to specify 0xAA..AA data.

	* tune/tuneup.c (print_define_end): Indicate "never" and "always".

2001-12-29  Torbjorn Granlund  <tege@swox.com>

	* mpq/set_d.c: ANSI-fy.
	* mpz/invert.c: Use PTR and SIZ (cosmetic change).

	* mpz/cong.c: Rename `xor' to `sign' to avoid C++ reserved word.

2001-12-28  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/sqr_diagonal.asm: New file.

2001-12-28  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/get_str.c: Avoid one mpn_divrem_1 by running main loop
	only until msize==1.

	* tune/tuneup.c: Break up all() for clarity.
	(USE_PREINV_DIVREM_1, USE_PREINV_MOD_1): Compare against plain
	division udiv_qrnnd, not the tuned and possibly preinv version.

	* tune/freq.c: Split sysctl and sysctlbyname probes into separate
	functions, shorten some identifiers, put descriptions inside
	functions, define functions unconditionally and do nothing if
	requisites not available.

	* mpz/inp_raw.c: Avoid a gcc 3.0 powerpc64 bug on AIX.

	* acinclude.m4, configure.in (GMP_C_RESTRICT): New macro.

	* mpfr/sin.c: Patch from Paul to fix sign of sin(3pi/2).

	* demos/calc/calc.y: Improve some error messages.

2001-12-28  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/mul_1.asm: Rename r72 -> r80.
	* mpn/sparc64/addmul_1.asm: Likewise.

2001-12-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/tdiv_qr.c: Misc formatting cleanups.
	For switch case 2, replace `dn' with its value (2).

2001-12-25  Torbjorn Granlund  <tege@swox.com>

	* tests/devel/mul_1.c: Add FIXED_XLIMB.
	* tests/devel/addmul_1.c: Likewise.
	* tests/devel/submul_1.c: Likewise.

	* tests/devel/add_n.c: Improve error message.
	Accept command line argument for # of tests.
	* tests/devel/sub_n.c: Likewise.

	* tests/devel/: Remove CLOCK settings.

	* mpn/sparc32/v9/mul_1.asm: Rewrite.
	* mpn/sparc32/v9/addmul_1.asm: Rewrite.
	* mpn/sparc32/v9/submul_1.asm: Rewrite.

2001-12-24  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/mul_1.asm: Get rid of global constant 0.0 (L(noll)).
	* mpn/sparc64/addmul_1.asm: Likewise.

2001-12-23  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/get_str.c: Move final ASSERT to just before zero fill
	loop.

2001-12-22  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/get_str.c: Move ASSERTs out of loops.  Split digit
	generation code into two loops, saving a test of msize in the loop.

2001-12-22  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/x86-defs.m4, mpn/x86/*/*.asm: Remove L / LF scheme putting
	function name in local labels.

	* mpn/generic/get_str.c: Use mpn_preinv_divrem_1, add a couple of
	ASSERTs.

	* mpn/generic/pre_divrem_1.c: New file.
	* configure.in (gmp_mpn_functions): Add it.
	* gmp-impl.h (mpn_preinv_divrem_1): Add prototype.
	(USE_PREINV_DIVREM_1, MPN_DIVREM_OR_PREINV_DIVREM_1): New macros.
	* tests/devel/try.c, tune/speed.c, tune/speed.h, tune/common.c,
	tune/many.pl, tune/Makefile.am (mpn_preinv_divrem_1): Add testing and
	measuring.
	* tune/tuneup.c: Determine USE_PREINV_DIVREM_1.
	* tune/pre_divrem_1.c: New file.
	* tests/refmpn.c, tests/tests.h (refmpn_preinv_divrem_1): New function.

	* tests/mpz/t-io_raw.c: New file.
	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.

	* mpz/inp_raw.c, mpz/out_raw.c: Rewrite.
	* acinclude.m4, configure.in (AC_C_BIGENDIAN): New test.
	* gmp-impl.h (BSWAP_LIMB): New macro.

	* acinclude.m4 (GMP_PROG_CC_WORKS): For a native compile, demand
	executables will run, per AC_PROG_CC.  This detects ABI=64 is unusable
	in a native sparc solaris 7 build with the kernel in 32-bit mode.
	* gmp.texi (ABI and ISA): Add notes on this, add an example configure
	setting an ABI.

	* tune/tuneup.c, configure.in: Print the gmp-mparam.h filename.
	* tune/tuneup.c: Print the CPU frequency.

	* tune/time.c, tune/speed.h: Add s390 "stck" method, flatten
	conditionals in speed_time_init a bit, use have_* variables to let
	some code go dead in speed_starttime and speed_endtime.

	* tune/freq.c (speed_cpu_frequency_irix_hinv): New function.

	* Makefile.am, configure.in: Restore mpfr.

	* configure.in: Add --with-readline, AC_PROG_YACC and AM_PROG_LEX.
	* demos/calc/calc.y, demos/calc/calclex.l: Add readline support, add
	lucnum function.
	* demos/calc/Makefile.am: Add calcread.c, calc-common.h, use $(YACC),
	$(LEX) and $(LEXLIB).
	* demos/calc/calcread.c, demos/calc/calc-common.h,
	demos/calc/calc-config-h.in, demos/calc/README: New files.

	* configure.in: Put demos/expr configs in expr-config.h.
	* demos/expr/expr-config-h.in: New file.
	* demos/expr/expr-impl.h: Renamed from expr-impl-h.in, get configs
	from expr-config.h.
	* demos/expr/Makefile.am: Update.

	* demos/expr/exprfr.c: Use mpfr_sin and mpfr_cos, remove some spurious
	returns.

2001-12-20  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/mul_1.asm: Trim an instruction.
	* mpn/sparc64/addmul_1.asm: Likewise.

	* mpn/ia64/add_n.asm: Rewrite.
	* mpn/ia64/sub_n.asm: Rewrite.

2001-12-19  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/mul_1.asm: Rewrite.
	* mpn/ia64/addmul_1.asm: Rewrite.
	* mpn/ia64/submul_1.c: Use TMP_ALLOC_LIMBS.

	* tests/devel/mul_1.c: Improve error message.
	Accept command line argument for # of tests.
	* tests/devel/addmul_1.c: Likewise.
	* tests/devel/submul_1.c: Likewise.

2001-12-18  Torbjorn Granlund  <tege@swox.com>

	* mpn/mips3/mul_1.asm: Add NOPs to save a cycle on R1x000.

2001-12-18  Kevin Ryde  <kevin@swox.se>

	* gmpxx.h (gmp_randclass): Don't allow copy constructors or "=",
	implementation by Gerardo.

	* gmp-h.in (operator<<, operator>>): Remove parameter names from
	prototypes, to keep out of user namespace.

	* acinclude.m4 (GMP_FUNC_VSNPRINTF): Let the test program work as C++.

2001-12-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/mul_1.asm: Rewrite.
	* mpn/sparc64/addmul_1.asm: Rewrite.
	* mpn/sparc64/submul_1.asm: Rewrite.

	* mpn/sparc64/addmul1h.asm: Remove.
	* mpn/sparc64/submul1h.asm: Remove.
	* mpn/sparc64/mul1h.asm: Remove.

2001-12-15  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in (mpn_add, mpn_add_1, mpn_cmp, mpn_sub, mpn_sub_1): Follow
	__GMP_INLINE_PROTOTYPES for whether to give prototype with inline.

	* configure.in (i686*-*-*, pentiumpro-*-*, pentium[23]-*-*,
	athlon-*-*, pentium4-*-*): Fall back on -march=pentium if
	-march=pentiumpro or higher is not good (eg. solaris cmov).

2001-12-12  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (MPN_ZERO): Rewrite generic version to be similar to
	powerpc version.

2001-12-12  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_PROG_CC_WORKS): Detect cmov problems with gcc
	-march=pentiumpro on solaris 2.8.

	* tune/common.c, tune/speed.h: Allow for commas in count_leading_zeros
	and count_trailing_zeros macros.

	* demos/expr/Makefile.am: Distribute exprfr.c and exprfra.c.

	* tune/Makefile.am (speed_ext_SOURCES): Should be speed-ext.c.

2001-12-10  Torbjorn Granlund  <tege@swox.com>

	* mpn/s390/addmul_1.asm: New file.
	* mpn/s390/submul_1.asm: New file.
	* mpn/s390/mul_1.asm: New file.
	* mpn/s390/gmp-mparam.h: Update.

2001-12-07  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in, mp-h.in, gmp-impl.h: __GMP_DECLSPEC at start of
	prototypes, for the benefit of Microsoft C.

	* gmp.texi (Introduction to GMP): Mention ABI and ISA section.
	(Known Build Problems): Recommend GNU sed on solaris 2.6.
	(Assigning Integers): Direct feedback to bug-gmp.
	(References): Typo Knuth vol 2 is from 1998.

	* gmpxx.h (gmp_randclass): Add initializers for gmp_randinit_default
	and gmp_randinit_lc_2exp_size.
	gmp.texi (C++ Interface Random Numbers): Describe them.

	* tests/misc/t-locale.c, tests/cxx/t-locale.cc: Ensure mpf_clear is
	done when the localconv override doesn't work.  Reported by Mike
	Jetzer.

	* printf/doprnti.c: Don't showbase on a zero mpq denominator.
	* tests/misc/t-printf.c, tests/cxx/t-ostream.c: Add test cases.

2001-12-04  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Known Build Problems): Update to gmp_randinit_lc_2exp_size
	for the sparc solaris 2.7 problem.
	(Reentrancy): SCO ctype.h affects all text-based input functions.
	(Formatted Output Strings): Correction to the mpf example.
	(Single Limb Division): Correction, should be q-1 not q+1.
	(Extended GCD): Clarify why single-limb is inferior.
	(Raw Output Internals): Clarify size is twos complement, note limb
	order means _mp_d doesn't get directly read or written.
	(Contributors): Clarify mpz_jacobi.
	And a couple of formatting tweaks elsewhere.

	* tests/cxx/t-headers.cc: New file.
	* tests/cxx/Makefile.am: Add it.

	* gmpxx.h: Add <strstream>, needed by mpf_class::get_str2.

	* gmp-h.in (mpq_inp_str, mpn_hamdist): Add __GMP_DECLSPEC.

2001-12-01  Torbjorn Granlund  <tege@swox.com>

	* Version 4.0 released.

	* mpfr/README: Replace contents with explanation of why mpfr is gone.

2001-12-01  Kevin Ryde  <kevin@swox.se>

	* Makefile.am, configure.in: Temporarily remove mpfr, just leave a
	README.

	* mpn/Makefile.am (EXTRA_DIST): Add Makeasm.am.

2001-11-30  Gerardo Ballabio  <ballabio@sissa.it>

	* tests/cxx/t-constr.cc, tests/cxx/t-expr.cc: New files.
	* tests/cxx/Makefile.am (check_PROGRAMS): Add them.

2001-11-30  Kevin Ryde  <kevin@swox.se>

	* mpfr: Update to 2001-11-16.  Patch TMP handling of agm.c and sqrt.c,
	use plain mpn_sqrtrem in sqrt.c, separate .c files for floor and ceil,
	disable an expression style assert in add1.c.

	* mpn/s370: Rename to s390.
	* configure.in (s3[6-9]0*-*-*): Update.
	* mpn/Makefile.am (TARG_DIST): Add s390.

	* mpz/fits_s.c, mpf/fits_s.c, mpf/fits_u.c: Remove files, unused since
	change to .h style.

2001-11-29  Torbjorn Granlund  <tege@swox.com>

	* gmp-h.in: Declare mpz_get_d_2exp and mpf_get_d_2exp.
	* Makefile.am: Add mpz/get_d_2exp$U.lo and mpf/get_d_2exp$U.lo.
	* mpf/Makefile.am: Add get_d_2exp.c.
	* mpz/Makefile.am: Add get_d_2exp.c.

2001-11-29  Kevin Ryde  <kevin@swox.se>

	* mpn/*/gmp-mparam.h: Update measured thresholds.
	* mpn/s370/gmp-mparam.h: New file.

	* mpz/millerrabin.c: Mark for internal use only, for now.
	* gmp.texi (Number Theoretic Functions): Remove documentation.

2001-11-28  Torbjorn Granlund  <tege@swox.com>

	* mpf/get_d_2exp.c: New file.
	* mpz/get_d_2exp.c: New file.

	* mpz/realloc2.c: Fix typo.  Make more similar to mpz_realloc.
	* mpz/realloc.c: Use __GMP_REALLOCATE_FUNC_LIMBS.

2001-11-27  Gerardo Ballabio  <ballabio@sissa.it>

	* gmpxx.h, mpfrxx.h: Various updates and improvements.

2001-11-27  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Useful Macros and Constants): Add gmp_version, add @findex
	for mp_bits_per_limb.

	* demos/perl/GMP.pm, demos/perl/GMP.xs: Use new style gmp_randinit's.
	* demos/perl/test.pl: Update for this, and for mpz_perfect_power_p
	handling of 0 and 1.

2001-11-26  Torbjorn Granlund  <tege@swox.com>

	* mpz/realloc.c: Clear variable when decreasing allocation to less than
	needed.  Misc updates.

2001-11-25  Kevin Ryde  <kevin@swox.se>

	* tests/misc/t-locale.c: Avoid printf in the normal case, since the
	replacement localeconv breaks it on SunOS 4.

	* gmp.texi (Build Options, Notes for Package Builds): Note libgmpxx
	depends on libgmp from same GMP version.

	* acinclude.m4, configure.in (GMP_FUNC_SSCANF_WRITABLE_INPUT): New
	test.
	* scanf/sscanf.c, scanf/vsscanf.c: Use it to ensure sscanf input is
	writable, if necessary.

	* tests/misc/t-scanf.c: Ensure sscanf arguments are writable, always.
	* configure.in (AC_CHECK_DECLS): Remove sscanf, no longer required.

	* configure.in (none-*-*): Fix default CFLAGS setups.

	* doc/configuration: Misc updates.

2001-11-23  Kevin Ryde  <kevin@swox.se>

	* mpz/init2.c, mpz/realloc2.c: New files.
	* Makefile.am, mpz/Makefile.am: Add them.
	* gmp-h.in: Add prototypes.
	* gmp.texi (Efficiency): Mention these instead of _mpz_realloc.
	(Initializing Integers): Add documentation, reword other parts.

2001-11-22  Torbjorn Granlund  <tege@swox.com>

	* mpn/cray/ieee/addmul_1.c: Fix logic for more_carries scalar loop.
	* mpn/cray/ieee/submul_1.c: Likewise.

2001-11-20  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Known Build Problems): Note an out of memory on DJGPP.
	(Function Classes): Update function counts.
	Misc tweaks elsewhere.

	* configure.in (AC_CHECK_DECLS): Add sscanf.
	* tests/misc/t-scanf.c: Use it, for the benefit of SunOS 4.

	* tal-debug.c, gmp-impl.h: More checks of TMP_DECL/TMP_MARK/TMP_FREE
	consistency.

	* mpfr/Makefile.am (AR): Explicit AR=@AR@ to override automake
	default, necessary for powerpc64 ABI=aix64.

2001-11-18  Torbjorn Granlund  <tege@swox.com>

	* mpz/powm.c: Move TMP_MARK to before any TMP_ALLOCs.

2001-11-18  Kevin Ryde  <kevin@swox.se>

	* configure.in (--enable-fft): Make this the default.
	* gmp.texi (Build Options): Update.

	* Makefile.am (libmp_la_DEPENDENCIES): Revise mpz objects needed by
	new mpz/powm.c.

	* gmp.texi (Random State Initialization): Add gmp_randinit_default and
	gmp_randinit_lc_2exp_size, mark gmp_randinit as obsolete.
	(Random State Seeding): New section, taken from "Random State
	Initialization" and "Random Number Functions".

	* configure.in (AC_CHECK_DECLS): Add fgetc, fscanf, ungetc.
	* scanf/fscanffuns.c: Use these, for the benefit of SunOS 4.

	* gmp-impl.h, gmp-h.in (__gmp_default_fp_limb_precision): Move back to
	gmp-impl.h now not required for inlined mpf.

	* randlc2s.c (gmp_randinit_lc_2exp_size): New file, the size-based LC
	selection from rand.c.
	* rand.c (gmp_randinit): Use it.
	* randdef.c (gmp_randinit_default): New file.
	* gmp-impl.h (RANDS): Use it.
	(ASSERT_CARRY): New macro.
	* gmp-h.in (gmp_randinit_default, gmp_randinit_lc_2exp_size: Add
	prototypes.
	* Makefile.am (libgmp_la_SOURCES): Add randdef.c and randlc2s.c.

	* printf/asprntffuns.c: Include config.h before using its defines.

	* gmp-impl.h: Move C++ <string> to top of file to avoid the memset
	redefine upsetting configure tests.  Remove <iostream> since <iosfwd>
	in gmp.h suffices.

2001-11-16  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Integer Exponentiation): mpz_powm supports negative
	exponents.
	(Assigning Floats, I/O of Floats, C++ Formatted Output, C++ Formatted
	Input): Decimal point follows locale.
	(Formatted Output Strings): %n accepts any type.
	(Formatted Input Strings): New section.
	(Formatted Input Functions): New section.
	(C++ Class Interface): Corrections and clarifications suggested by
	Gerardo.

	* scanf/doscan.c, scanf/fscanf.c, scanf/fscanffuns.c, scanf/scanf.c,
	scanf/sscanf.c, scanf/sscanffuns.c, scanf/vfscanf.c, scanf/vscanf.c,
	scanf/vsscanf.c, scanf/Makefile.am, tests/misc/t-scanf.c: New files.
	* gmp-h.in, gmp-impl.h, Makefile.am, configure.in: Consequent
	additions.

	* tests/misc: New directory.
	* tests/misc/Makefile.am: New file.
	* tests/misc/t-locale.c: New file.
	* tests/misc/t-printf.c: Moved from tests/printf.
	* tests/printf: Remove directory.
	* configure.in, tests/Makefile.am: Update.

	* tests/cxx/t-locale.cc: New file.
	* tests/cxx/Makefile.am: Add it.

	* mpf/set_str.c, cxx/ismpf.cc: Use localeconv for the decimal point.

	* acinclude.m4 (GMP_ASM_X86_MCOUNT): Update to $lt_prog_compiler_pic
	for current libtool, recognise non-PIC style mcount in windows DLLs.

	* gmp-impl.h (__gmp_replacement_vsnprintf): Add prototype.

	* gmp-impl.h (__gmp_rands, __gmp_rands_initialized,
	modlimb_invert_table): Add __GMP_DECLSPEC for the benefit of test
	programs using them from a windows DLL.
	* longlong.h (__clz_tab): Ditto.

	* mpn/x86/t-zdisp2.pl: New file.

	* mpn/x86/pentium4/README: New file.

2001-11-15  Torbjorn Granlund  <tege@swox.com>

	* mpz/powm.c (HANDLE_NEGATIVE_EXPONENT): #define to 1.
	* tests/mpz/reuse.c (main): Use mpz_invert to avoid undefined mpz_powm
	cases.

2001-11-14  Torbjorn Granlund  <tege@swox.com>

	* mpz/powm_ui.c: Rewrite along the lines of mpz/powm.c (except still no
	redc).
	* mpz/powm.c: Adjust for negative b, after exponentiation done.  Add
	(still disabled) code for handling negative exponents.  Misc cleanups.

2001-11-14  Kevin Ryde  <kevin@swox.se>

	* mpf/out_str.c: Use localeconv for the decimal point.

	* tests/misc.c (tests_rand_end): Use time() if gettimeofday() not
	available (eg. on mingw).

2001-11-11  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in: Remove parameter names from prototypes, to keep out of
	application namespace.

2001-11-08  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_GCC_VERSION_GE): Fix sed regexps to work on
	Solaris 8.

	* printf/doprnt.c: Support %n of all types, per glibc.

	* gmp-h.in, gmp-impl.h, mpf/abs.c, mpf/neg.c, mpf/get_prc.c,
	mpf/get_dfl_prec.c, mpf/set_dfl_prec.c, mpf/set_prc_raw.c,
	mpf/set_si.c, mpf/set_ui.c, mpf/size.c: Revert mpf inlining, in order
	to leave open the possibility of keeping binary compatibility if mpf
	becomes mpfr.

	* mpn/x86/k7/mmx/lshift.asm, mpn/x86/k7/mmx/rshift.asm: Use Zdisp to
	force code size for computed jumps.
	* mpn/x86/k6/mod_34lsub1.asm, mpn/x86/k6/k62mmx/copyd.asm: Use Zdisp
	to force good code alignment.
	* mpn/x86/x86-defs.m4 (Zdisp): More instructions.

	* mpn/x86/pentium/sqr_basecase.asm, mpn/x86/k7/mmx/mod_1.asm,
	mpn/x86/k7/mmx/popham.asm: Remove some unnecessary "0" address offsets.

	* mpq/set_si.c, mpq/set_ui.c: Set _mp_den._mp_size correctly if den==0.

2001-11-07  Torbjorn Granlund  <tege@swox.com>

	* mpn/hppa/hppa1_1/udiv_qrnnd.asm: Work around gas bug.

	* mpn/asm-defs.m4 (PROLOGUE): Change alignment to 8 (probably a good
	idea in general; required for hppa/hppa1_1/udiv_qrnnd.asm).

2001-11-06  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (MPN_COPY_INCR): Prepend local variable by `__'.
	(MPN_COPY_DECR): Likewise.

2001-11-05  Torbjorn Granlund  <tege@swox.com>

	* mpz/powm.c: Call mpn functions, not mpz functions, for computation
	mod m.  Streamline allocations to use a mixture of stack allocation and
	heap allocation.  Add currently disabled phi(m) exponent reduction
	code.  Misc optimizations and cleanups.

2001-11-05  Kevin Ryde  <kevin@swox.se>

	* mpq/inp_str.c: Remove unused variable "ret".

	* mpn/x86/k7/sqr_basecase.asm: Fix a 0(%edi) to use Zdisp, so the
	computed jumps hit the right spot on old gas.

	* mpq/canonicalize.c: DIVIDE_BY_ZERO if denominator is zero.

	* mpn/lisp/gmpasm-mode.el (comment-start-skip): Correction to the way
	the first \( \) pair is setup.
	(gmpasm-font-lock-keywords): Don't fontify the space before a "#" etc.
	Misc tweaks to some comments.

2001-11-03  Torbjorn Granlund  <tege@swox.com>

	* tests/refmpn.c (refmpn_overlap_p): Reverse return values.

2001-11-02  Kevin Ryde  <kevin@swox.se>

	* tune/many.pl: Setup CFLAGS_PIC and ASMFLAGS_PIC, since that's no
	longer done by configure.

	* mpn/x86/pentium4/mmx/popham.asm: New file.

	* mpn/x86/x86-defs.m4 (psadbw): New macro.
	* mpn/x86/k7/mmx/popham.asm: Use it.

	* tests/refmpn.c (refmpn_overlap_p): New function, independent of
	MPN_OVERLAP_P.

2001-10-31  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-powm.c: Print proper error message when finding
	discrepancy.

2001-10-31  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium/mod_34lsub1.asm: New file.
	* mpn/x86/k7/mod_34lsub1.asm: New file.
	* mpn/x86/mod_34lsub1.asm: New file.

2001-10-30  Kevin Ryde  <kevin@swox.se>

	* tests/printf/t-printf.c (check_misc): Add checks from the glibc docs.
	(check_vasprintf, check_vsnprintf): Run these unconditionally.

	* gmp-impl.h (ASSERT_MPQ_CANONICAL): New macro.
	* mpq/cmp.c, mpq/cmp_si.c, mpq/cmp_ui.c, mpq/equal.c: Add ASSERTs for
	canonical inputs, where correctness depends on it.

	* mpn/lisp/gmpasm-mode.el (comment-start-skip): Add "dnl".

2001-10-27  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c: Remove some unused variables.
	(main): Allocate more buffer space to accommodate minus sign.

2001-10-27  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h, mpn/asm-defs.m4, configure.in, tune/speed.h,
	tune/speed.c, tune/common.c, tune/many.pl, tests/devel/try.c: Add
	mpn_mod_34lsub1.
	* tests/refmpn.c, tests/tests.h (refmpn_mod_34lsub1): New function.

	* mpn/generic/mod_34lsub1.c: New file.
	* mpn/x86/k6/mod_34lsub1.asm: New file.
	* mpn/x86/pentium4/sse2/mod_34lsub1.asm: New file.
	* mpn/x86/x86-defs.m4 (Zdisp): Add another instruction.

	* gmp-h.in, gmpxx.h: Use <iosfwd> not whole <iostream>.

	* gmp.texi (Known Build Problems): Add note on test programs with
	Windows DLLs.

2001-10-26  Kevin Ryde  <kevin@swox.se>

	* tests/mpq/t-get_d.c: Limit the size of "eps" for vax.

	* gmp.texi (maybepagebreak): New macro, use it in a few places.
	(Notes for Particular Systems): C++ Windows DLLs are not supported.
	(Known Build Problems): Note sparc solaris 2.7 gcc 2.95.2 shared
	library problems.
	(Autoconf): Tweak version numbers shown.
	(Integer Roots): mpz_perfect_square_p and mpz_perfect_power_p consider
	0 and 1 perfect powers, mpz_perfect_power_p accepts negatives.
	(Number Theoretic Functions): Add mpz_millerrabin, combined with a
	reworded mpz_probab_prime_p.
	(Formatted Output Strings): Misc clarifications.
	(Formatted Output Functions): gmp_asprintf, gmp_vasprintf,
	gmp_snprintf, gmp_vsnprintf always available.
	(C++ Formatted Output): Misc rewordings.
	(Formatted Input): New chapter.
	(C++ Class Interface): New chapter, by Gerardo and me.
	(Language Bindings): Update GMP++ now in GMP.
	(C++ Interface Internals): New section, by Gerardo and me.

	* printf/repl-vsnprintf.c: New file.
	* configure.in, acinclude.m4, Makefile.am, printf/Makefile.am: Use it
	if libc vsnprintf missing or bad.
	* configure.in (AC_CHECK_FUNCS): Add strnlen.

	* printf/snprntffuns.c, printf/vasprintf.c: Use
	__gmp_replacement_vsnprintf if libc vsnprintf not available.
	* printf/asprintf.c, printf/snprintf.c, printf/vasprintf.c,
	printf/vsnprintf.c: Provide these functions unconditionally.
	* acinclude.m4 (GMP_FUNC_VSNPRINTF): Remove warning about omissions
	when vsnprintf not available.

2001-10-24  Kevin Ryde  <kevin@swox.se>

	* configure, aclocal.m4: Regenerate with a libtool patch for a stray
	quote in AC_LIBTOOL_PROG_LD_SHLIBS under mingw and cygwin.

	* gmp-impl.h (modlimb_invert): More comments.

	* printf/doprnt.c, printf/doprnti.c: Use the precision field to print
	leading zeros.
	* tests/printf/t-printf.c: Test this.
	* cxx/osdoprnti.cc, gmp-impl.h: Ignore precision in operator<<.

	* tune/speed.c, tune/speed.h, tune/common.c: Add mpn_mul_1_inplace.

2001-10-23  Torbjorn Granlund  <tege@swox.com>

	* mpz/pprime_p.c (mpz_millerrabin): Remove function and its descendant.

	* mpz/millerrabin.c: New file with code from pprime.c.
	* mpz/Makefile.am: Compile millerrabin.c.
	* Makefile.am (MPZ_OBJECTS): Ditto.
	* gmp-h.in: Declare mpz_millerrabin.

2001-10-22  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-perfsqr.c: New file.
	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.

	* demos/factorize.c (factor): Check for number to factor == 0.
	(main): When invoked without arguments, read from stdin.

	* mpz/perfpow.c: Add code to handle negative perfect powers ((-b)^odd).
	Treat 0 and 1 as perfect powers.

	* mpn/sparc32/v9/sqr_diagonal.asm: Jump past .align.

2001-10-21  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/perfsqr.c (sq_res_0x100): Remove bogus final `,'.
	(mpn_perfect_square_p): Suppress superfluous `&1' in sq_res_0x100 test.
	(mpn_perfect_square_p, O(n) test): Improve comments.  Combine remainder
	tests for some small primes.  Don't share code for different limb
	sizes.  Use single `if' with many `||' for better code density.

2001-10-22  Kevin Ryde  <kevin@swox.se>

	* demos/perl/GMP.xs (mutate_mpz, tmp_mpf_grow): Make these "static".

	* mpn/x86/pentium/popcount.asm, mpn/x86/pentium/hamdist.asm
	(mpn_popcount_table): Use GSYM_PREFIX.

2001-10-19  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/*.asm: Add some measured speeds on various x86s.

	* tests/mpz/reuse.c, tests/mpf/reuse.c: Disable tests when using a
	windows DLL, because certain global variable usages won't compile.

	* configure.in (AC_CHECK_FUNCS): Add alarm.
	* tests/spinner.c: Conditionalize alarm and SIGALRM availability, for
	the benefit of mingw32.

	* acinclude.m4 (GMP_ASM_TYPE, GMP_ASM_SIZE): Suppress .type and .size
	on COFF.

	* acinclude.m4 (GMP_PROG_HOST_CC): New macro.
	* configure.in: Use it for windows DLL cross-compiles.
	* aclocal.m4, configure: Regenerate with libtool patch to hold HOST_CC
	in the generated libtool script.

	* aclocal.m4, configure: Regenerate with libtool patch to suppress
	warnings when probing command line limit on FreeBSD.

	* demos/qcn.c (M_PI): Define if not already provided, helps mingw32.

2001-10-17  Kevin Ryde  <kevin@swox.se>

	* printf/doprnt.c: Use <stdint.h> for intmax_t.

	* longlong.h: Recognise __sparcv8 for gcc on Solaris.  Reported by
	Mark Mentovai <mark@mentovai.com>.

	* gmp-impl.h (gmp_allocated_string): No need for inline on member funs.

2001-10-16  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Debugging): Add mpatrol.
	(Integer Comparisons, Comparing Rationals, Float Comparison): Index
	entries for sign tests.
	(I/O of Floats): Clarify mpf_out_str exponent is in decimal.
	(C++ Formatted Output): mpf_t operator<< exponent now in decimal.
	(FFT Multiplication): Use an ascii art sigma.
	(Contributors): Add Gerardo Ballabio.

	* cxx/osfuns.cc (__gmp_doprnt_params_from_ios): Always give mpf_t
	exponent in decimal, irrespective of ios::hex or ios::oct.
	* tests/cxx/t-ostream.cc (check_mpf): Update.

	* printf/doprnt.c: Support %lln and %hhn.

	* mpn/x86/pentium4/sse2/submul_1.asm: Use a psubq to negate the
	initial carry (helps the submul_1c case), and improve the comments.

2001-10-11  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4, configure.in (GMP_IMPL_H_IEEE_FLOATS): New macro.

	* ltmain.sh: Send some rm errors to /dev/null, helps during compiles
	on Solaris 2.7 and HP-UX 10.

	* tal-notreent.c: Renamed from stack-alloc.c.
	* Makefile.am, acinclude.m4, gmp-impl.h: Update.

	* gmp-h.in: Don't give both prototypes and inlines, except on gcc.

	* gmp-h.in, gmp-impl.h: Use #includes to get necessary standard
	classes, add std:: to prototypes.
	* cxx/*.cc, tests/cxx/t-ostream.cc: Add "use namespace std".
	* acinclude.m4 (GMP_PROG_CXX_WORKS): Ditto.

	* tests/*/Makefile.in, mpfr/tests/Makefile.in: Regenerate with
	automake patch to avoid Ultrix problem with empty $(TESTS).

	* */Makefile.in: Regenerate with automake patch to only rm *_.c in
	"make clean" when ansi2knr actually in use, helps DOS 8.3.

	* Makefile.in: Regenerate with automake patch to fix stamp-h
	numbering, avoiding an unnecessary config.status run.

2001-10-09  Torbjorn Granlund  <tege@swox.com>

	* mpn/hppa/hppa1_1/udiv_qrnnd.asm: Use L macros for labels.
	Quote L reloc operator.

	* gmp-impl.h: Declare class string.

	* mpn/asm-defs.m4 (INT32, INT64): Quote $1 to prevent further
	expansion.

	* mpn/alpha/ev6/mul_1.asm: New file.

2001-10-09  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Introduction to GMP): Add pentium 4 to optimized CPUs.
	(Build Options): Note macos directory.
	(Notes for Package Builds): GMP 4 series binary compatible with 3.
	(Known Build Problems): Remove $* and ansi2knr note, now fixed, except
	possibly under --host=none.
	(Formatted Output Strings): Remove -1 prec for all digits.

	* mpz/add.c, mpz/sub.c: Don't use mpz path on #include (helps macos).
	* mpbsd/Makefile.am (INCLUDES): Add -I$(top_srcdir)/mpz.

	* printf/doprnt.c, tests/printf/t-printf.c: Remove support for %.*Fe
	prec -1 meaning all digits.

	* acinclude.m4 (GMP_PROG_AR): Override libtool, use AR_FLAGS="cq".
	(GMP_HPC_HPPA_2_0): Print version string to config.log.

	* Makefile.am (AUTOMAKE_OPTIONS): Remove check-news (permission notice
	in NEWS file is too big).
	(dist-hook): Don't distribute numbered or unnumbered emacs backups.

	* Makefile.am, cxx/Makefile.am: Updates for Gerardo's stuff.

2001-10-09  Gerardo Ballabio  <ballabio@sissa.it>

	* cxx/isfuns.cc: New file.
	* gmp-impl.h: Add prototypes.
	* cxx/ismpf.cc, cxx/ismpq.cc, cxx/ismpz.cc: New files.
	* gmp-h.in: Add prototypes.
	* gmpxx.h, mpfrxx.h: New files.

2001-10-08  Kevin Ryde  <kevin@swox.se>

	* configure.in (with_tags): Establish a default based on --enable-cxx.

	* aclocal.m4: Regenerate with libtool patches for sed char range to
	help Cray, LTCC quotes and +Z warnings grep to help HP-UX.

	* gmp-impl.h (doprnt_format_t, doprnt_memory_t, doprnt_reps_t,
	doprnt_final_t): Use _PROTO.

2001-10-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/asm-defs.m4 (INT32, INT64): Use LABEL_SUFFIX.

	* mpn/hppa: Convert files to `.asm'.

2001-10-05  Kevin Ryde  <kevin@swox.se>

	* mpn/Makeasm.am (.S files): Revert to separate CPP and CCAS, use
	cpp-ccas, and only pass CPPFLAGS to CPP, not whole CFLAGS.
	* mpn/cpp-ccas: New file.
	* mpn/Makefile.am (EXTRA_DIST): Add it.

	* tune/common.c, tune/speed.h: Change SPEED_ROUTINE_MPN_COPY_CALL uses
	to SPEED_ROUTINE_MPN_COPY or new SPEED_ROUTINE_MPN_COPY_BYTES.  Avoids
	macro expansion problems on Cray.

	* configure.in (AC_PROG_CXXCPP): Add this, to make libtool happier.

2001-10-04  Torbjorn Granlund  <tege@swox.com>

	* mpz/rrandomb.c (gmp_rrandomb): Change bit_pos to be 0-based (was
	1-based); shift 2 (was 1) when making bit mask.  These two changes
	avoid undefined shift counts.
	(gmp_rrandomb): Avoid most calls to _gmp_rand by caching random values.

	* mpn/generic/random2.c: Changes for mirroring mpz/rrandomb.c.

2001-10-04  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Build Options): Add --enable-cxx.
	(Notes for Particular Systems): Mention pentium4 performance and SSE2.
	(Known Build Problems): Remove vax jsobgtr note, no longer needed.
	(Converting Floats): Tweak mpf_get_str description.
	(Low-level Functions): Correction to mpn_gcdext destination space
	requirements.
	(C++ Formatted Output): New section.
	(Language Bindings): Add ALP
	(Contributors): Add Paul Zimmermann's square root, update my things.

	* acinclude.m4 (GMP_PROG_CC_IS_GNU, GMP_PROG_CXX_WORKS): Send compiler
	errors to config.log.

	* mpq/Makefile.am (INCLUDES): Remove -DOPERATION_$*, not needed.

	* mpn/x86/*.asm: Change references to old README.family to just README.

	* mpz/README: Remove file, now adequately covered in the manual.

2001-10-03  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/pentium4/copyi.asm: New file.
	* mpn/x86/pentium4/copyd.asm: New file.

	* gmp-impl.h: Implement separate MPN_COPY_INCR and MPN_COPY_DECR
	macros for CRAY systems.
	(CRAY _MPN_COPY): Delete.

2001-10-02  Kevin Ryde  <kevin@swox.se>

	* tests/mpz/t-popcount.c (check_data): Use "~ (unsigned long) 0" to
	avoid compiler warnings on sco.

	* mpbsd/Makefile.am: Compile mpz files directly, no copying.
	Use mpz/add.c and mpz/sub.c rather than mpz/aors.c.
	(INCLUDES): Remove -DOPERATION_$*, no longer needed (by mpz).

	* mpz/aors.h: Renamed from mpz/aors.c.
	* mpz/add.c, mpz/sub.c: New files, using mpz/aors.h.
	* mpz/aors_ui.h: Renamed from mpz/aors_ui.c.
	* mpz/add_ui.c, mpz/sub_ui.c: New files, using mpz/aors_ui.h.
	* mpz/fits_s.h: Renamed and adapted from mpz/fits_s.c.
	* mpz/fits_sshort.c, mpz/fits_sint.c, mpz/fits_slong.c: New files.
	* mpz/mul_i.h: Renamed from mpz/mul_siui.c.
	* mpz/mul_ui.c, mpz/mul_ui.c: New files, using mpz/mul_i.h.
	* mpz/Makefile.am: Consequent updates.
	(INCLUDES): Remove -DOPERATION_$*.

	* mpf/fits_s.h: Renamed and adapted from mpf/fits_s.c.
	* mpf/fits_sshort.c, mpf/fits_sint.c, mpf/fits_slong.c: New files.
	* mpf/fits_u.h: Renamed and adapted from mpf/fits_u.c.
	* mpf/fits_ushort.c, mpf/fits_uint.c, mpf/fits_ulong.c: New files.
	* mpf/Makefile.am: Consequent updates.
	(INCLUDES): Remove -DOPERATION_$*.

	* cxx/osfuns.cc (__gmp_doprnt_params_from_ios): Don't use ios::hex etc
	as cases in a switch, they're not constant in g++ 3.0.

	* mpn/Makeasm.am (.s.o, .s.obj, .S.o, .S.obj, .asm.o, .asm.obj):
	Locate source file with test -f the same as automake.
	(.S): Let CCAS do the preprocessing, and run libtool for .S.lo.
	(.asm.lo): Run libtool via m4-ccas to get new style foo.lo right.
	(COMPILE_FLAGS): Add $(DEFAULT_INCLUDES), per new automake.
	* mpn/m4-ccas: New file.
	* mpn/Makefile.am (EXTRA_DIST): Add it.
	* mpn/asm-defs.m4: Add m4_not_for_expansion(`DLL_EXPORT').
	* mpn/x86/x86-defs.m4: Undefine PIC if DLL_EXPORT is set.
	* configure.in (CFLAGS_PIC, ASMFLAGS_PIC): Remove, no longer needed.

	* acinclude.m4 (GMP_FUNC_VSNPRINTF): Warn what's omitted when
	vsnprintf not available.

	* mpn/underscore.h: Remove file, not used since m68k converted to asm.
	* mpn/Makefile.am (EXTRA_DIST): Remove it.

	* tests/refmpz.c: Add <stdlib.h>, for free().

2001-10-01  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/pentium4/sse2/submul_1.asm: Apply some algebraic
	simplifications.
	* mpn/x86/pentium4/sse2/addmul_1.asm: Comment.

2001-10-01  Kevin Ryde  <kevin@swox.se>

	* configure.in (--enable-cxx): New option for C++ support.
	Add cxx and tests/cxx subdirectories.
	* ltmain.sh, aclocal.m4: Update to libtool 2001-09-30.

	* cxx/Makefile.am, cxx/Makefile.in, cxx/osdoprnti.cc, cxx/osfuns.cc,
	cxx/osmpf.cc, cxx/osmpq.cc, cxx/osmpz.cc: New files.
	* Makefile.am: Add them, in new libgmpxx.
	* gmp-h.in, gmp-impl.h: Prototypes and support.
	* tests/cxx/Makefile.am, tests/cxx/Makefile.in,
	tests/cxx/t-ostream.cc: New files.

	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL,
	SPEED_ROUTINE_MPN_GCDEXT_ONE): mpn_gcdext needs size+1 for
	destinations.  Found by Torbjorn.

	* gmp-h.in (__GNU_MP__, __GNU_MP_VERSION): Bump to 4.0.
	* mp-h.in (__GNU_MP__): Ditto.
	* gmp.texi, Makefile.am, compat.c: Amend version 3.2 to 4.0.

	* acinclude.m4 (GMP_PROG_CXX_WORKS): New macro.
	(GMP_PROG_CC_WORKS): Write "conftest" test program, not a.out.

	* gmp-impl.h (struct gmp_asprintf_t): Moved from printf/vasprintf.c.
	(GMP_ASPRINTF_T_INIT): New macro.
	(GMP_ASPRINTF_T_NEED): New macro, adapted from vasprintf.c NEED().
	* printf/vasprintf.c: Use these.

	* printf/asprntffuns.c: New file.
	* printf/Makefile.am, Makefile.am: Add it.
	* printf/asprntffuns.c, printf/vasprintf.c, gmp-impl.h
	(__gmp_asprintf_memory, __gmp_asprintf_reps, __gmp_asprintf_final):
	Move to asprntffuns.c, rename to __gmp and make global, remove
	spurious formal parameters from __gmp_asprintf_final.

	* configure.in (j90-*-*, sv1-*-*): Don't duplicate $path in $add_path.
	(*-*-mingw*): Don't assemble with -DPIC (as per cygwin).

	* printf/snprntffuns.c (gmp_snprintf_final): Remove spurious formal
	parameters.

	* tune/tuneup.c (POWM_THRESHOLD): Reduce stop_factor to 1.1 to help
	Cray vector systems.

	* tests/misc.c (tests_rand_start): Print GMP_CHECK_RANDOMIZE=NN to
	facilitate cut and paste when re-running.
	* tests/mpz/t-inp_str.c (check_data): Add more diagnostic prints.

2001-09-30  Kent Boortz  <kent@swox.com>

	* macos/configure, macos/Makefile.in, macos/README: Updates for gmp 4.
	* gmp-h.in (_GMP_H_HAVE_FILE): Recognise Apple MPW.

2001-09-30  Torbjorn Granlund  <tege@swox.com>

	* mpn/cray/ieee/submul_1.c: Rewrite.  Streamline multiplications;
	use `majority' logic.

2001-09-27  Torbjorn Granlund  <tege@swox.com>

	* gmp-h.in (__GMPN_AORS_1): Rewrite to work around Cray compiler bug.

2001-09-26  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/pentium4/sse2/gmp-mparam.h: New file.

2001-09-26  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium4/sse2/dive_1.asm: New file.
	* mpn/x86/pentium4/sse2/submul_1.asm: New file.
	* mpn/x86/pentium4/sse2/sqr_basecase.asm: New file.

	* mpn/x86/pentium/copyi.asm: New file, based on past work by Torbjorn.
	* mpn/x86/pentium/copyi.asm: New file, ditto.
	* mpn/x86/pentium/com_n.asm: Rewrite, ditto.

	* printf/snprntffuns.c (gmp_snprintf_format): Copy va_list in case
	vsnprintf trashes it.
	* printf/vasprintf.c (gmp_asprintf_format): Ditto.
	* gmp-impl.h, doprnt.c (va_copy): Move to gmp-impl.h.

	* tests/mpz/t-cmp_d.c (check_low_z_one): Patch by Torbjorn for vax
	limited float range.

2001-09-23  Torbjorn Granlund  <tege@swox.com>

	* mpn/vax/lshift.s: Change `jsob*' to `sob*'.
	* mpn/vax/rshift.s: Likewise.

2001-09-23  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium4/sse2/mul_basecase.asm: Some simple but real code.

	* printf/doprnt.c: Use va_copy for va_list variables, copy function
	parameter in case it's call-by-reference.

	* tune/freq.c (speed_cpu_frequency_bsd_dmesg): New function.
	(speed_cpu_frequency_table): Use it.

	* tune/many.pl (popcount, hamdist): Fix declared return value.
	(sb_divrem_mn): Remove a spurious duplicate entry.
	(CLEAN): Add tmp-$objbase.c when using that for .h files.
	(macro_speed): Give a default for .h files.
	Add ATTRIBUTE_CONST or __GMP_ATTRIBUTE_PURE as appropriate.

	* tune/speed.h (SPEED_ROUTINE_MPN_MOD_CALL,
	SPEED_ROUTINE_MPN_PREINV_MOD_1, SPEED_ROUTINE_MPN_POPCOUNT,
	SPEED_ROUTINE_MPN_HAMDIST, SPEED_ROUTINE_MPN_GCD_1N,
	SPEED_ROUTINE_MPN_GCD_1_CALL, SPEED_ROUTINE_MPZ_JACOBI): Use return
	values so gcc 3 won't discard calls to pure or const functions.
	(mpn_mod_1_div, mpn_mod_1_inv): Add __GMP_ATTRIBUTE_PURE.

2001-09-22  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/pentium4/sse2/mul_basecase.asm: New file, placeholder
	for real code, hiding the default x86 mul_basecase.asm.

2001-09-22  Kevin Ryde  <kevin@swox.se>

	* configure.in (AC_PREREQ): Bump to 2.52.
	(m4_pattern_forbid, m4_pattern_allow): New calls, forbid GMP_.
	(AC_CHECK_HEADERS): Remove sys/types.h, already done by autoconf.
	* acinclude.m4, configure.in (GMP_GCC_NO_CPP_PRECOMP): New macro.

	* tests/devel/try.c (TYPE_PREINV_MOD_1): Don't run size==0.
	(malloc_region): Need fd=-1 for mmap MAP_ANON on BSD.

2001-09-20  Torbjorn Granlund  <tege@swox.com>

	* mpz/cong.c (mpz_congruent_p): Fix one-limb c<d test.

	* longlong.h: Rewrite __i370__ smul_ppmm; enable also for __s390__.

	* configure.in: Add support for IBM 360, 370, 390 families.

2001-09-20  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium4/sse2/diveby3.asm: New file.
	* mpn/x86/pentium4/sse2/mode1o.asm: New file.

2001-09-16  Kevin Ryde  <kevin@swox.se>

	* printf/doprnt.c: '#' means showpoint and showtrailing for %e, %f, %g.
	* tests/printf/t-printf.c (check_f): More test cases.

2001-09-15  Torbjorn Granlund  <tege@swox.com>

	* gmp-h.in (__GMPN_AORS_1): Remove param TEST, add OP and CB.
	Postpone zeroing of (cout).
	(__GMPN_ADD_1, __GMPN_SUB_1): Corresponding changes.

2001-09-14  Kevin Ryde  <kevin@swox.se>

	* ChangeLog: Merge in tests/rand/ChangeLog.
	* tests/rand/ChangeLog: Remove file.

	* printf/doprnt.c: Fix handling of a plain format after a GMP one; no
	need to protect against negative precision internally.
	* tests/printf/t-printf.c (check_misc): More checks.

2001-09-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/cray/ieee/invert_limb.c: Add a PROLOGUE in a comment to have
	HAVE_NATIVE_... defined.

2001-09-11  Kevin Ryde  <kevin@swox.se>

	* configure.in, gmp-h.in (__GMP_HAVE_HOST_CPU_FAMILY_power,
	__GMP_HAVE_HOST_CPU_FAMILY_powerpc): New AC_SUBSTs.
	* gmp-h.in (__GMPN_COPY_INCR): Use them to select the power/powerpc
	code, rather than preprocessor defines.

	* acinclude.m4, configure.in (GMP_H_ANSI): New macro.

	* gmp-h.in (__GMP_EXTERN_INLINE): Add a definition for SCO 8 cc.

	* gmp-h.in, version.c (gmp_version): Make the pointer "const" as well
	as the string.

	* acinclude.m4, configure.in (GMP_PROG_CC_IS_XLC): Recognise xlc when
	invoked under another name (cc, xlc128, etc).
	* acinclude.m4 (GMP_PROG_CC_IS_GCC): Print a message when recognised.

2001-09-11  Torbjorn Granlund  <tege@swox.com>

	* gmp-h.in: Let __DECC mean __GMP_HAVE_CONST, etc.
	* mp-h.in: Likewise.

2001-09-10  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/pentium4/mmx/lshift.asm: New file.
	* mpn/x86/pentium4/mmx/rshift.asm: New file.

	* tests/mpn/t-iord_u.c (check_incr_data): Work around HP compiler bug.
	(check_decr_data): Likewise.

2001-09-08  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Integer Logic and Bit Fiddling): Update mpz_hamdist
	behaviour, clarify mpz_popcount a touch.
	(Language Bindings): Add mlton, fix alphabetical order.
	(Single Limb Division): Describe 2 or 1/2 limbs at a time style.

	* configure.in (AC_CHECK_FUNCS): Add mmap.
	* tests/devel/try.c (malloc_region): Use mmap if available.

	* tests/refmpz.c, tests/tests.h (refmpz_hamdist): New function.
	* tests/mpz/t-hamdist.c: New file.
	* tests/mpz/Makefile.am: Add it.

	* mpz/hamdist.c: Support neg/neg operands.

	* macos/Makefile.in: Remove dual compile of mpq/aors.c and
	mpn/generic/popham.c.

	* gmp-impl.h (popc_limb): New macro, adapted from mpn/generic/popham.c.
	For 64-bits reuse 0x33...33 constant.
	* mpn/generic/popcount.c, mpn/generic/hamdist.c: Split from popham.c,
	use popc_limb macro, remove unused "i", don't bother with "register"
	qualifiers.
	* mpn/generic/popham.c: Remove file.

	* ltmain.sh, configure, aclocal.m4: Update to libtool 1.4.1, with one
	ltdll.c generation patch.
	* doc/configuration: Misc updates, note libtool patch used.

	* mpn/x86/pentium4/sse2/mul_1.asm: Use pointer increments not indexed
	addressing, to get 4.0 c/l flat.

	* tests/mpq/t-cmp_si.c (check_data): Use ULONG_MAX for denominators.

	* tests/misc.c (mpz_negrandom): Use given rstate, not RANDS.

2001-09-07  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/pentium4/sse2/addmul_1.asm: New file.

2001-09-04  Kevin Ryde  <kevin@swox.se>

	* tune/freq.c: Define a HAVE for each speed_cpu_frequency routine to
	avoid duplicating conditionals.
	(speed_cpu_frequency_sco_etchw): New function.
	(speed_cpu_frequency_table): Use it.
	* tune/README: Mention SCO openunix 8 /etc/hw.

	* mpz/fib_ui.c: Use ?: to avoid a gcc 3 bug on powerpc64.
	Store back a carry for limb<long.

	* mpn/x86/k7/mmx/divrem_1.asm, mpn/x86/k7/mmx/mod_1.asm,
	mpn/x86/p6/mmx/divrem_1.asm: Fix a couple of comments.

	* config.guess: Give m68020 for 68020 or better, not m68k.
	* configfsf.guess: Update to 2001-09-04.

2001-09-02  Kevin Ryde  <kevin@swox.se>

	* configure.in (m68k-*-*): Let m68k mean 68000, not 68020.
	* gmp.texi (Notes for Particular Systems): Update.

	* gmp-impl.h (union ieee_double_extract) [m68k]: Use longs, since int
	might be only 16 bits.

	* tests/mpq/t-aors.c: New file.
	* tests/mpq/Makefile.am: Add it.

	* tests/refmpq.c: New file.
	* tests/Makefile.am: Add it.
	* tests/tests.h: Add prototypes.

	* mpq/aors.c: Share object code for mpq_add and mpq_sub.
	* Makefile.am, mpq/Makefile.am: Single mpq/aors.lo now.

	* tests/devel/try.c (TYPE_SUBMUL_1): Use correct reference routine.

2001-08-30  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/x86-defs.m4 (cmov_available_p): Add pentium4.

	* gmp-h.in: Put #define renamings with prototypes.
	Remove commented out #defines of gmp-impl.h things.
	(mpn_invert_limb): Remove #define, already in gmp-impl.h.
	(mpn_lshiftc, mpn_rshiftc): Remove #defines, unused.
	(mpn_addsub_nc): Add prototype to #define.

2001-08-28  Kevin Ryde  <kevin@swox.se>

	* gmp.texi: Switch to GFDL.
	(Top): Arrange copyright and conditions to appear here too.  For
	clarity have all this before the miscellaneous macro definitions.
	(Copying): Refer to COPYING.LIB file, mention plain GPL2 in demo
	programs.
	(Contributors, References): Use @appendix rather than @unnumbered.
	(GNU Free Documentation License): New appendix.
	(@contents): Move to start of document, use only for tex (not html).
	(Debugging): Add leakbug.
	(Build Options): Add pentium4.
	(I/O of Rationals): Add mpq_inp_str.

	* fdl.texi: New file, with two @appendix directive tweaks.
	* Makefile.am (gmp_TEXINFOS): Add it.

	* tests/mpz/io.c: Check mpz_inp_str return against ftell, send error
	messages just to stdout.

	* mpz/inp_str.c, gmp-impl.h (__gmpz_inp_str_nowhite): New function,
	and share a __gmp_free_func call.
	* mpq/inp_str.c: New file.
	* Makefile.am, mpq/Makefile.am: Add it.
	* tests/mpq/t-inp_str.c: New file.
	* tests/mpq/Makefile.am (check_PROGRAMS): Add it.

	* configure.in, acconfig.h (HAVE_HOST_CPU_FAMILY_power,
	HAVE_HOST_CPU_FAMILY_powerpc, HAVE_HOST_CPU_FAMILY_x86): AC_DEFINEs
	for processor families.
	* gmp-impl.h: Use them, rather than cpp defines.

	* demos/Makefile.am (primes_LDADD): Use $(LIBM), for log().

	* tune/many.pl, tune/Makefile.am: Fix some from clean and distclean.

2001-08-26  Kevin Ryde  <kevin@swox.se>

	* tests/devel/try.c (ARRAY_ITERATION): Make types match on "?:" legs.
	(TYPE_MPZ_JACOBI, TYPE_MPZ_KRONECKER): Remove some superseded code.

	* tests/printf/t-printf.c (check_plain): Don't compare "all digits"
	precision against plain printf.

	* tune/Makefile.am: Eliminate empty TUNE_MPZ_SRCS.

	* configure, config.in, INSTALL.autoconf: Update to autoconf 2.52.
	* */Makefile.in, mdate-sh, missing, aclocal.m4, configure: Update to
	automake 1.5.
	* configfsf.guess, configfsf.sub: Update to 2001-08-23.

2001-08-24  Torbjorn Granlund  <tege@swox.com>

	* demos/primes.c: Complete rewrite.

2001-08-24  Kevin Ryde  <kevin@swox.se>

	* longlong.h: Test __ppc__ for apple darwin cc, reported by Jon
	Becker.  Also test __POWERPC__, PPC and __vxworks__.

	* tune/speed.h (speed_cyclecounter) [x86]: Don't clobber ebx in PIC.

2001-08-22  Kevin Ryde  <kevin@swox.se>

	* configure.in (x86 mmx): Correction to mmx path stripping.

2001-08-17  Kevin Ryde  <kevin@swox.se>

	* configure.in, acinclude.m4, Makefile.am, printf/Makefile.am,
	tests/printf/Makefile.am, gmp-h.in, gmp-impl.h, gmp.texi: Remove C++
	support, for the time being.
	* printf/doprntfx.cc, doprntix.cc, osfuns.cc, osmpf.cc, osmpq.cc,
	osmpz.cc, tests/printf/t-ostream.cc: Remove files.

	* printf/doprnt.c, printf/doprntf.c, gmp-impl.h: Use a single
	__gmp_doprnt_mpf, rather than a separate ndigits calculation.
	* printf/doprnt.c, printf/doprntf.c, gmp-impl.h, gmp.texi,
	tests/printf/t-printf.c: Let empty or -1 prec mean all digits for mpf.
	* printf/doprnt.c, tests/printf/t-printf.c: Accept h or l in %n; let
	negative "*" style width mean left justify.

	* gmp-impl.h, mpf/get_str.c (MPF_SIGNIFICANT_DIGITS): New macro,
	extracted from mpf/get_str.c.

	* libmp.sym: New file.
	* Makefile.am (libmp_la_LDFLAGS): Use it.
	(DISTCLEANFILES): Remove asm-syntax.h, no longer generated.
	Remove some comments about "make check".

	* demos/perl/GMP.pm, GMP.xs, GMP/Mpf.pm: Add printf and sprintf,
	change get_str to string/exponent for floats, remove separate
	mpf_get_str.
	* demos/perl/GMP/Mpf.pm (overload_string): Use $# (default "%.g").
	* demos/perl/typemap: Fix some duplicate string entries.
	* demos/perl/test.pl: Update tests, split overloaded constants into ...
	* demos/perl/test2.pl: ... this new file.
	* demos/perl/Makefile.PL (clean): Add test.tmp.

2001-08-16  Kevin Ryde  <kevin@swox.se>

	* printf/snprntffuns.c (gmp_snprintf_format): Correction to bufsize-1
	return value handling.

	* demos/calc/calc.y: Reposition "%{" so copyright notice gets into
	generated files.

	* INSTALL: Use gmp_printf.

2001-08-14  Kevin Ryde  <kevin@swox.se>

	* mpz/inp_str.c: Fix return value (was 1 too big).
	* tests/mpz/t-inp_str.c: New file.
	* tests/mpz/Makefile.am: Add it.

	* mpn/x86/pentium4/sse2/add_n.asm: New file.
	* mpn/x86/pentium4/sse2/sub_n.asm: New file.
	* mpn/x86/pentium4/sse2/mul_1.asm: New file.

2001-08-12  Kevin Ryde  <kevin@swox.se>

	* printf/sprintffuns.c, printf/doprntf.c: Don't use sprintf return
	value (it's a pointer on SunOS 4).

	* acinclude.m4 (GMP_ASM_X86_SSE2, GMP_STRIP_PATH): New macros.
	* configure.in: Add pentium4 support.
	* mpn/x86/pentium4, mpn/x86/pentium4/mmx, mpn/x86/pentium4/sse2: New
	directories.
	* mpn/x86/README: Update.

2001-08-10  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c (setup_error_handler): Catch also SIGABRT.

2001-07-31  Kevin Ryde  <kevin@swox.se>

	* tests/refmpn.c (refmpn_mul_1c): Allow low to high overlaps.

	* gmp-h.in, gmp-impl.h (_gmp_rand): Move prototype to gmp-impl.h.

	* tune/Makefile.am (EXTRA_DIST): Add many.pl.

2001-07-28  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Random Number Functions): Old rand functions no longer use
	the C library.

	* configure.in, acinclude.m4 (GMP_FUNC_VSNPRINTF): New macro.

	* mpn/generic/get_str.c: Add an ASSERT for high limb non-zero.

2001-07-24  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Build Options): Add --enable-cxx.
	(Converting Floats): Note mpf_get_str only generates accurately
	representable digits.
	(Low-level Functions): Note mpn_get_str requires non-zero high limb.
	(Formatted Output): New chapter.
	(Multiplication Algorithms): Use @quotation with @multitable.
	(Toom-Cook 3-Way Multiplication): Ditto.

	* tests/memory.c (tests_free_nosize): New function.
	* tests/tests.h (tests_allocate etc): Add prototypes.

	* tests/printf: New directory.
	* tests/printf/Makefile.am, t-printf.c, t-ostream.cc: New files.
	* configure.in, tests/Makefile.am: Add them.

	* configure.in, acinclude.m4 (GMP_PROG_CXX): New macro.
	* configure.in (--enable-cxx): New option.
	(AC_CHECK_HEADERS): Add locale.h and sys/types.h, remove unistd.h.
	(AC_CHECK_TYPES): Add intmax_t, long double, long long, ptrdiff_t,
	quad_t.
	(AC_CHECK_FUNCS): Add localeconv, memset, obstack_vprintf, snprintf,
	strchr, vsnprintf.
	(AC_CHECK_DECLS): Add vfprintf.

	* gmp-h.in, gmp-impl.h: Additions for gmp_printf etc.

	* printf: New directory.
	* printf/Makefile.am, asprintf.c, doprnt.c, doprntf.c, doprntfx.cc,
	doprnti.c, doprntix.cc, fprintf.c, obprintf.c, obprntffuns.c,
	obvprintf.c, osfuns.cc, osmpf.cc, osmpq.cc, osmpz.cc, printf.c,
	printffuns.c, snprintf.c, snprntffuns.c, sprintf.c, sprintffuns.c,
	vasprintf.c, vfprintf.c, vprintf.c, vsnprintf.c, vsprintf.c: New
	files.
	* configure.in, Makefile.am: Add them.

	* configure.in (HAVE_INLINE): Remove AC_DEFINE, unused.
	(AC_CHECK_TYPES): Don't test for void, assume it always exists.

	* gmp-impl.h (__GMP_REALLOCATE_FUNC_MAYBE): New macro.
	* mpz/get_str.c, mpq/get_str.c, mpf/get_str.c: Use it.

	* gmp-impl.h (mpn_fib2_ui): Use __MPN.
	(MPN_COPY_DECR): Fix an ASSERT.
	(CAST_TO_VOID): Remove macro.

	* gmp-h.in (mpq_out_str): Give #define even without prototype.
	(mpz_cmp_d, mpz_cmpabs_d): Corrections to #defines.

	* tests/devel/try.c: Add mpn_add and mpn_sub, don't use CAST_TO_VOID.

2001-07-23  Torbjorn Granlund  <tege@swox.com>

	* config.guess: Recognize pentium4.
	* config.sub: Recognize pentium4.

2001-07-17  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in (__GMPN_AORS_1): Remove x86 and gcc versions, leave just
	one version.
	(__GMPN_ADD, __GMPN_SUB): New macros, rewrite of mpn_add and mpn_sub.
	(mpn_add, mpn_sub): Use them.
	(__GMPN_COPY_REST): New macro.

	* gmp-h.in, gmp-impl.h, acinclude.m4: Remove __GMP_ASM_L and
	__GMP_LSYM_PREFIX, revert to ASM_L in gmp-impl.h and AC_DEFINE of
	LSYM_PREFIX.

2001-07-11  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in (__GMPN_ADD_1 etc) [x86]: Don't use this on egcs 2.91.

	* mpz/fits_uint.c, fits_ulong.c, mpz/fits_ushort.c: Split up fits_u.c.
	* mpz/fits_u.c: Remove file.
	* mpz/Makefile.am, macos/Makefile.in: Update.

	* tests/refmpn.c,tests.h (refmpn_copy): New function.
	* tests/devel/try.c (TYPE_ZERO): No return value from call.
	(TYPE_MODEXACT_1_ODD, TYPE_MODEXACT_1C_ODD): Share call with
	TYPE_MOD_1 and TYPE_MOD_1C.
	(MPN_COPY, __GMPN_COPY, __GMPN_COPY_INCR): Add testing.

2001-07-10  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in (__GMPN_COPY): Add form to help gcc on power and powerpc.
	* gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR, MPN_ZERO): Ditto.
	* mpn/powerpc64/copyi.asm, mpn/powerpc64/copyd.asm: Remove files.

	* mpz/tdiv_ui.c: Eliminate some local variables (seems to save code on
	i386 gcc 2.95.x), remove a bogus comment about quotient.

	* errno.c, gmp-impl.h (__gmp_exception, __gmp_divide_by_zero,
	__gmp_sqrt_of_negative): New functions.
	* gmp-impl.h (GMP_ERROR, DIVIDE_BY_ZERO, SQRT_OF_NEGATIVE): Use them.

	* randclr.c, randraw.c: Use ASSERT(0) for unrecognised algorithms.

2001-07-07  Kevin Ryde  <kevin@swox.se>

	* configure.in (powerpc*-*-*): Use -no-cpp-precomp for Darwin.

	* tests/mpbsd/t-itom.c: Renamed from t-misc.c.
	* tests/mpbsd/t-misc.c: Remove file.
	* tests/mpbsd/Makefile.am: Update.

	* tests/mpf/t-set_si.c,t-cmp_si.c,t-gsprec.c: Split from t-misc.c.
	* tests/mpf/t-misc.c: Remove file.
	* tests/mpf/Makefile.am: Update.

	* tests/mpz/t-oddeven.c,t-set_si.c,t-cmp_si.c: Split from t-misc.c.
	* tests/mpz/t-misc.c: Remove file.
	* tests/mpz/Makefile.am: Update.

	* stack-alloc.c: Add some alignment ASSERTs.

	* gmp-impl.h (MPN_NORMALIZE): Add notes on x86 repe/scasl slow.

	* tests/devel/try.c (MPN_ZERO): Add testing.
	* tune/speed.c,speed.h,common.c,many.pl (MPN_ZERO): Add measuring.

	* mpn/x86/divrem_1.asm: Update a remark about gcc and "loop".

	* tests/mpq/t-cmp_si.c: New file.
	* tests/mpq/Makefile.am: Add it.

	* tests/misc.c,tests.h (mpq_set_str_or_abort): New function.

	* mpq/cmp_si.c: New file.
	* Makefile.am, mpq/Makefile.am: Add it.
	* gmp-h.in (mpq_cmp_si): Add prototype.
	* gmp.texi (Comparing Rationals): Add doco.

	* gmp-h.in (_GMP_H_HAVE_FILE): Add _FILE_DEFINED for microsoft, add
	notes on what symbols are for what systems.

2001-07-06  Torbjorn Granlund  <tege@swox.com>

	* longlong.h (ibm032 umul_ppmm): Fix typo.
	* longlong.h (sparclite sdiv_qrnnd): Fix typo.

2001-07-03  Kevin Ryde  <kevin@swox.se>

	* mpz/bin_ui.c (DIVIDE): Use MPN_DIVREM_OR_DIVEXACT_1.
	* mpz/bin_uiui.c (MULDIV): Ditto, and use local variables for size and
	pointer.

	* acinclude.m4 (GMP_INCLUDE_GMP_H): New macro, use it everywhere gmp.h
	is wanted at configure time.
	* acinclude.m4, configure.in (GMP_H_EXTERN_INLINE, GMP_H_HAVE_FILE):
	New macros.

	* gmp-h.in (__GMP_EXTERN_INLINE): Set to "inline" for C++.
	(mpn_add, mpn_sub): Use new style __GMP_EXTERN_INLINE.
	* gmp-h.in, mp-h.in, gmp-impl.h (_EXTERN_INLINE): Remove, unused.
	* mpn/generic/add.c, mpn/generic/sub.c: New files.
	* mpn/generic/inlines.c: Remove file.
	* configure.in, mpn/Makefile.am: Update.

	* gmp.texi (GMP Basics): Note the need for stdio.h to get FILE
	prototypes.

2001-07-01  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Build Options, Reentrancy): Updates for new
	--enable-alloca behaviour.
	(Debugging): Describe --enable-alloca=debug.
	(Miscellaneous Integer Functions): Note mpz_sizeinbase ignores signs.
	(Low-level Functions): Give a formula for mpn_gcdext cofactor.
	(Factorial Algorithm): New section.
	(Binomial Coefficients Algorithm): New section.
	Misc tweaks elsewhere.

	* mpf/set_prc.c: Merge the two truncation conditionals, misc cleanups,
	no functional changes.

	* mpn/*/gmp-mparam.h (DIVEXACT_1_THRESHOLD): Add tuned values.
	* gmp-impl.h (DIVEXACT_1_THRESHOLD): Make the default 0 when
	2*UMUL_TIME < UDIV_TIME.

	* mpn/x86/p6/dive_1.asm: New file.

	* mpn/x86/dive_1.asm: New file.
	* mpn/x86/gmp-mparam.h (DIVEXACT_1_THRESHOLD): Use it always.

	* tests/refmpn.c, tests.h (refmpn_zero): New function.
	* tests/devel/try.c: Use it.

	* tests/refmpn.c (refmpn_sb_divrem_mn): Use refmpn_cmp, not mpn_cmp.

	* tests/mpf/t-get_d.c (main): Use || not |.

	* tests/misc.c, tests/t-modlinv.c, tests/mpq/t-get_str.c,
	tests/mpf/reuse.c: Add string.h.

2001-06-29  Kevin Ryde  <kevin@swox.se>

	* tune/speed.h (SPEED_ROUTINE_MPN_FIB2_UI,
	SPEED_ROUTINE_COUNT_ZEROS_C): Corrections to TMP block handling.

	* gmp-impl.h (MPN_TOOM3_MUL_N_MINSIZE, MPN_TOOM3_SQR_N_MINSIZE):
	Corrections to these to account for adding tD into E.
	(MPN_INCR_U, MPN_DECR_U) [WANT_ASSERT]: Add size
	assertions, since mpn_add_1 and mpn_sub_1 from gmp.h don't get them.
	(MPN_DIVREM_OR_DIVEXACT_1): Add an assert of no remainder.

	* assert.c: Add stdlib.h for abort prototype.
	* tests/spinner.c, trace.c, t-constants.c, t-count_zeros.c,
	t-gmpmax.c, t-modlinv.c: Ditto.
	* tests/mpz/t-bin.c, t-cmp.c, t-get_si.c, t-misc.c, t-popcount.c,
	t-set_str.c, t-sizeinbase.c: Ditto.
	* tests/mpq/t-equal.c, t-get_str.c, t-set_f.c, t-set_str.c: Ditto.
	* tests/mpf/t-fits.c, t-get_d.c, t-get_si.c, t-int_p.c, t-misc.c,
	t-trunc.c: Ditto.
	* tests/mpbsd/allfuns.c, t-misc.c: Ditto.

	* mpn/generic/mul_n.c, mpz/cfdiv_r_2exp.c: Use MPN_INCR_U rather than
	mpn_incr_u.

	* tests/devel/try.c (TYPE_SB_DIVREM_MN): More fixes for calling method.

	* mpn/x86/k6/cross.pl: More insn exceptions.

2001-06-23  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in (__GMPN_ADD_1, __GMPN_SUB_1) [i386]: Fix some asm output
	constraints.

	* gmp-impl.h (modlimb_invert): Mask after shifting, so mask constant
	fits a signed byte.

	* tests/devel/try.c (TYPE_SB_DIVREM_MN): Fix initial fill of quotient
	with garbage.

2001-06-20  Kevin Ryde  <kevin@swox.se>

	* config.guess (rs6000-*-aix4* | powerpc-*-aix4*): Suppress error
	messages if $CC_FOR_BUILD or program don't work.

	* mpz/sqrt.c,sqrtrem.c: Special case for op==0, to avoid TMP_ALLOC(0).
	* tests/refmpf.c (refmpf_add, refmpf_sub): Avoid TMP_ALLOC(0).

	* tests/mpn/t-aors_1.c: New file.
	* tests/mpn/Makefile.am: Add it.

	* gmp-h.in (__GMPN_ADD_1, __GMPN_SUB_1): New macros, rewrite of
	mpn_add_1 and mpn_sub_1, better code for src==dst and/or n==1,
	separate versions for gcc x86, gcc generic, and non-gcc.
	(mpn_add_1, mpn_sub_1): Use them.
	(mpn_add, mpn_sub): Ditto, to get inlines on all compilers.
	(extern "C") [__cplusplus]: Let this encompass the extern inlines too.
	* mpn/generic/add_1.c,sub_1.c: New files, force code from gmp.h.
	* configure.in, mpn/Makefile.am: Add them.

	* acinclude.m4 (GMP_ASM_LSYM_PREFIX): AC_SUBST __GMP_LSYM_PREFIX
	rather than AC_DEFINE LSYM_PREFIX.
	* gmp-h.in (__GMP_LSYM_PREFIX): New substitution.
	(__GMP_ASM_L): New macro.
	* gmp-impl.h (ASM_L): Use it.

	* acinclude.m4, configure.in (GMP_C_ATTRIBUTE_MALLOC): New macro.
	* gmp-impl.h: Use it for all the malloc based TMP_ALLOCs.

	* stack-alloc.h: Remove file.
	* tal-reent.c: New file.
	* Makefile.am: Update.

	* acinclude.m4, configure.in (GMP_OPTION_ALLOCA): New macro, add
	malloc-reentrant method, use stack-alloc.c as malloc-notreentrant,
	make "reentrant" the default.
	* gmp-impl.h (__TMP_ALIGN): Moved from stack-alloc.c, use a union to
	determine the value, and demand only 4 bytes align on 32-bit systems.
	* gmp-impl.h (WANT_TMP_NOTREENTRANT): Move global parts of
	stack-alloc.h to here, allow non power-of-2 __TMP_ALIGN in TMP_ALLOC.
	* gmp-impl.h: Extend extern "C" to TMP_ALLOC declarations.
	* stack-alloc.c (tmp_stack): Move private parts of stack-alloc.h to
	here, use gmp-impl.h.

	* gmp-impl.h (TMP_ALLOC_LIMBS_2): New macro.
	* mpz/fib_ui.c, mpz/jacobi.c, mpq/cmp.c, mpn/generic/fib2_ui.c: Use it.

	* mpfr/exp2.c: Patch by Paul to match TMP_MARK and TMP_FREE in loop.
	* mpfr/sqrt.c: Scope nested TMP_DECL into nested { } block, patch by
	Paul, tweaked by me.
	* mpfr/agm.c: Ditto, and add a final TMP_FREE(marker2).

	* gmp-h.in (mpn_cmp): Add __GMP_ATTRIBUTE_PURE.

	* INSTALL: Clarify "make install", tweak formatting a bit.

2001-06-17  Kevin Ryde  <kevin@swox.se>

	* configure.in, Makefile.am, gmp-impl.h: Add a debugging TMP_ALLOC,
	selected with --enable-alloca=debug.
	* tal-debug.c: New file.
	* configure.in, Makefile.am: Compile stack-alloc.c only for
	--disable-alloca.
	* assert.c (__gmp_assert_header): New function, split from
	__gmp_assert_fail.

	* mpz/lcm.c: Don't TMP_MARK and then just return. Remove unnecessary
	_mpz_realloc prototype.

	* mpn/generic/mul.c (mpn_sqr_n): Use __gmp_allocate_func for toom3
	temporary workspace.

2001-06-15  Kevin Ryde  <kevin@swox.se>

	* tests/mpz/t-set_f.c: New file.
	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.

	* mpz/set_f.c: Share MPN_COPY between pad and trunc cases, do exp<=0
	test earlier, store SIZ(w) earlier.

	* tests/t-count_zeros.c: New file.
	* tests/t-gmpmax.c: New file.
	* tests/Makefile.am (check_PROGRAMS): Add them.

	* mp_clz_tab.c: Compile the table only if longlong.h says it's needed;
	add an internal-use-only comment.
	* tune/common.c: Force a __clz_tab for convenience when testing.

	* mpn/x86/pentium/gmp-mparam.h, mpn/x86/pentium/mmx/gmp-mparam.h: Add
	COUNT_LEADING_ZEROS_NEED_CLZ_TAB, for mod_1.asm.

	* longlong.h (count_leading_zeros) [pentium]: Decide to go with float
	method for p54.
	(count_leading_zeros) [alpha]: Add COUNT_LEADING_ZEROS_NEED_CLZ_TAB.
	(__clz_tab): Provide a prototype only if it's needed.

	* tests/trace.c (mpz_trace): Don't use = on structures.
	(mpn_trace): Set _mp_alloc when creating mpz.

2001-06-12  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/divrem_1.asm: Amend some comments about P5 speed.

	* tune/README: Clarify reconfigure on gmp-mparam.h update.

	* mpn/x86/p6/copyd.asm: New file.
	* mpn/x86/p6/README: Update copyd and mod_1.
	* mpn/x86/copyd.asm: Amend some comments.

	* gmp-impl.h (__builtin_constant_p): Add dummy for non-gcc.
	(mpn_incr_u, mpn_decr_u): Recognise incr==1 at compile time in the
	generic code on gcc.

	* gmp-impl.h (ASSERT_ZERO_P, ASSERT_MPN_NONZERO_P): New macros.
	* mpn/generic/gcd_1.c, mpn/generic/mul_fft.c: Use them.
	* mpz/get_d.c: Add a private mpn_zero_p.
	* mpfr/trunc.c: Use own mpn_zero_p.
	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_1N): Use refmpn_zero_p.
	* gmp-impl.h (mpn_zero_p): Remove, no longer needed.

	* gmp-h.in, gmp-impl.h: Move MPN_CMP to gmp.h as __GMPN_CMP, leave an
	MPN_CMP alias in gmp-impl.h.
	* gmp-h.in (mpn_cmp): Add an inline version.
	* mpn/generic/cmp.c: Use __GMP_FORCE_mpn_cmp to get code from gmp.h.

	* acinclude.m4 (GMP_C_ATTRIBUTE_MODE): New macro.
	* configure.in: Call it.
	* gmp-impl.h (SItype etc): Use it.

	* randraw.c (lc): Change mpn_mul_basecase->mpn_mul,
	mpn_incr_u->MPN_INCR_U, abort->ASSERT_ALWAYS(0).

	* longlong.h (count_leading_zeros) [pentiumpro]: Work around a partial
	register stall on gcc < 3.

	* gmp.texi (Introduction to GMP): Add IA-64.
	(Notes for Particular Systems): i386 means generic x86.

	* tests/t-modlinv.c: Use tests_start and tests_end.

2001-06-10  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Number Theoretic Functions): mpz_jacobi only defined for b
	odd.  Separate the jacobi/legendre/kronecker descriptions.
	(Low-level Functions): Document mpn_mul_1 "incr" overlaps.
	(Language Bindings): New chapter.

	* mpz/jacobi.c: Don't retaining old behaviour of mpz_jacobi on even b
	(it wasn't documented in 3.1.1).
	* mpz/jacobi.c, gmp-h.in (mpz_kronecker, mpz_legendre): Remove
	separate entrypoints, just #define to mpz_jacobi.
	* compat.c (__gmpz_legendre): Add compatibility entrypoint.

	* mpn/generic/mul_1.c: Allow "incr" style overlaps.
	* tests/devel/try.c (param_init): Test this.

	* mpf/mul_ui.c: Do size==0 test earlier.

2001-06-08  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (ULONG_HIGHBIT, UINT_HIGHBIT, USHRT_HIGHBIT): Cast
	ULONG_MAX etc to unsigned long etc before attempting to right shift.

	* acinclude.m4 (GMP_ASM_LSYM_PREFIX): Add an AC_DEFINE of LSYM_PREFIX.
	* gmp-impl.h (ASM_L): New macro.
	(mpn_incr_u, mpn_decr_u, MPN_INCR_U, MPN_DECR_U): Add i386 optimized
	versions.

	* mpn/hppa/*.s,S,asm: Use .label so the code works with gas on hppa
	GNU/Linux too, reported by LaMont Jones <lamont@smallone.fc.hp.com>.
	* mpn/hppa/README: Add some notes on this.
	* acinclude.m4 (GMP_ASM_LABEL_SUFFIX): Ditto.

	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add dive_1.c,
	fib2_ui.c.

	* tests/mpn/t-iord_u.c: New file.
	* tests/mpn/Makefile.am (check_PROGRAMS): Add it.

	* configure.in (mips*-*-irix[6789]*): Make ABI=n32 the default, same
	as in gmp 3.1.
	* gmp.texi (ABI and ISA): Update.

	* gmp.texi (Build Options): Misc tweaks.
	(Notes for Particular Systems): Describe windows DLL handling.
	(Known Build Problems): DJGPP needs bash 2.04.
	(Number Theoretic Functions): mpz_invert returns 0<=r<modulus; add
	mpz_fib2_ui, mpz_lucnum_ui, mpz_lucnum2_ui.
	(Fibonacci Numbers Algorithm): Update for new formulas used.
	(Lucas Numbers Algorithm): New section.

	* tune/speed.c,speed.h,common.c,many.pl: Add mpn_fib2_ui, mpz_fib2_ui,
	mpz_lucnum_ui, mpz_lucnum2_ui.
	* demos/expr/exprz.c,README: Add lucnum.
	* demos/perl/GMP.pm,GMP.xs,GMP/Mpz.pm,test.pl: Add fib2, lucnum,
	lucnum2.

	* tests/mpz/t-lucnum_ui.c: New file.
	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
	* tests/mpz/t-fib_ui.c: Check mpz_fib2_ui too, updates for new style
	MPN_FIB2_SIZE.

	* tune/tuneup.c, tune/Makefile.am, gmp-impl.h, mpn/*/gmp-mparam.h:
	Remove FIB_THRESHOLD, no longer required.

	* mpz/fib2_ui.c, mpz/lucnum_ui.c mpz/lucnum2_ui.c: New files.
	* Makefile.am, mpz/Makefile.am: Add them.
	* gmp-h.in (mpz_fib2_ui, mpz_lucnum_ui, mpz_lucnum2_ui): Add
	prototypes.

	* mpn/generic/fib2_ui.c: New file.
	* configure.in (gmp_mpn_functions): Add it.
	* gmp-impl.h (mpn_fib2_ui, FIB_TABLE, etc): Add these.
	* mpz/fib_ui.c: Rewrite.

	* acinclude.m4 (GMP_C_SIZES): Fix _LONG_LONG_LIMB define for mp_limb_t
	size test.
	(GMP_FUNC_ALLOCA): Add dummy __GMP_BITS_PER_MP_LIMB for gmp-h.in work.

	* configure.in (CPPFLAGS): Remove -D__GMP_WITHIN_GMP, don't want it
	everywhere.
	* Makefile.am, mpn/Makefile.am, mpz/Makefile.am, mpq/Makefile.am,
	mpf/Makefile.am, mpbsd/Makefile.am (INCLUDES): Set -D__GMP_WITHIN_GMP.

	* configure.in (*-*-msdosdjgpp*): Forcibly disable shared libraries,
	to make libtests.la work.

	* acconfig.h (_LONG_LONG_LIMB, HAVE_MPFR): Remove dummy defines, no
	longer needed.

	* mpz/set_ui.c: Store to _mp_d[0] unconditionally.

2001-05-27  Kevin Ryde  <kevin@swox.se>

	* configure.in, gmp-h.in, mp-h.in: Add support for windows DLLs.

2001-05-26  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (ABI and ISA, Reentrancy): Minor tweaks
	(Notes for Package Builds): Note gmp.h is a generated file.
	(Notes for Particular Systems): -march=pentiumpro is used for gcc
	2.95.4 and up.
	(Assembler Loop Unrolling): Mention non power-of-2 unrolling.
	(Internals): New chapter.
	* mpf/README: Remove file.

	* demos/expr/README: Miscellaneous rewordings.

	* demos/perl: New directory.
	* demos/Makefile.am: Add it.
	* demos/perl/INSTALL, Makefile.PL, GMP.pm, GMP.xs, typemap,
	GMP/Mpz.pm, GMP/Mpq.pm, GMP/mpf.pm, GMP/Rand.pm, sample.pl, test.pl:
	New files.

	* configure, aclocal.m4: Update to autoconf 2.50.

	* configure, aclocal.m4, ltmain.sh: Update to libtool 1.4.

	* configure, aclocal.m4, missing, ansi2knr.c, */Makefile.in: Update to
	automake 1.4f.
	* Makefile.am: Conditionalize mpfr in $(SUBDIRS) to handle mpfr.info.
	* mpfr/Makefile.am (INFO_DEPS): Remove previous mpfr.info handling.
	* mpn/Makefile.am (GENERIC_SOURCES): Remove this, just put mp_bases.c
	in libmpn_la_SOURCES.
	* tests/Makefile.am (tests.h): Move from EXTRA_HEADERS to
	libtests_la_SOURCES.
	* ltconfig: Remove file, no longer needed.

	* Makefile.am (gmp-impl.h, longlong.h, stack-alloc.h): Move from
	EXTRA_DIST to libgmp_la_SOURCES, so they get included in TAGS.
	* tests/rand/Makefile.am (gmpstat.h): Move to libstat_la_SOURCES
	similarly.

	* config.guess (68k-*-*): Use $SHELL not "sh", tweak some comments.

	* mpfr/mpfr.texi (Introduction to MPFR): Tweak table formatting, note
	non-free programs must be able to be re-linked.

2001-05-20  Kevin Ryde  <kevin@swox.se>

	* mpn/powerpc64/addmul_1.asm, mpn/powerpc64/mul_1.asm,
	mpn/powerpc64/submul_1.asm: Add carry-in entrypoints.

2001-05-17  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (ge): Fix definition for info.
	(Notes for Particular Systems): Mention 68k dragonball and cpu32.
	(Efficiency): Add static linking, more about in-place operations,
	describe mpq+/-integer using addmul.
	(Reporting Bugs): A couple of words about self-contained reports.
	(Floating-point Functions): Note exponent limitations of mpf_get_str
	and mpf_set_str.
	(Initializing Floats): Clarify mpf_get_prec, mpf_set_prec and
	mpf_set_prec_raw a bit.
	(Float Comparison): Note current mpf_eq deficiencies.

	* gmp-h.in (__GMP_HAVE_CONST, __GMP_HAVE_PROTOTYPES,
	__GMP_HAVE_TOKEN_PASTE): Merge GNU ansidecl.h tests for ANSI compilers.
	* demos/expr/expr-impl-h.in: Ditto.

	* gmp-impl.h (BITS_PER_MP_LIMB): Define from __GMP_BITS_PER_MP_LIMB if
	not already in gmp-mparam.h.
	* tests/t-constants.c (BITS_PER_MP_LIMB, __GMP_BITS_PER_MP_LIMB):
	Check these are the same.

	* gmp-h.in (mpf_get_default_prec, mpf_get_prec, mpf_set_default_prec,
	mpf_set_prec_raw): Provide "extern inline" versions, use __GMPF on the
	macros.
	* mpf/get_dfl_prc.c, mpf/get_prc.c, mpf/set_dfl_prc.c,
	mpf/set_prc_raw.c: Get code from gmp.h using __GMP_FORCE.

	* gmp-h.in, gmp-impl.h (__gmp_default_fp_limb_precision): Move from
	gmp-impl.h to gmp-h.in.
	(__GMPF_BITS_TO_PREC, __GMPF_PREC_TO_BITS): Ditto, and use __GMPF
	prefix and add a couple of casts.
	* gmp-h.in (__GMP_MAX): New macro.
	* mpf/init2.c mpf/set_prc.c: Update for __GMPF prefix.

	* gmp-h.in (__GMP_BITS_PER_MP_LIMB): New templated define.
	* acinclude.m4 (GMP_C_SIZES): Add AC_SUBST __GMP_BITS_PER_MP_LIMB,
	remove AC_DEFINE BITS_PER_MP_LIMB.

2001-05-13  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in, gmp.texi, Makefile.am, mpz/Makefile.am, tests/mpz/t-pow.c:
	Remove mpz_si_pow_ui, pending full si support.
	* mpz/si_pow_ui.c: Remove file.

2001-05-11  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium/dive_1.asm: New file.

	* mpn/powerpc32/umul.asm: Use r on registers.
	* mpn/powerpc64/umul.asm: New file.
	* configure.in (powerpc*-*-*): Enable umul in extra_functions.

	* tests/refmpn.c, tests/tests.h (refmpn_umul_ppmm): Use same arguments
	as normal mpn_umul_ppmm.
	(refmpn_mul_1c): Update.
	* tests/devel/try.c, tune/many.pl: Add some umul_ppmm testing support.

	* mpn/x86/k6/mmx/popham.asm, mpn/x86/k7/mmx/popham.asm: Don't support
	size==0.
	* mpn/x86/pentium/popcount.asm, mpn/x86/pentium/hamdist.asm: Ditto,
	and shave a couple of cycles from the PIC entry code.

	* mpz/mul.c: Use mpn_mul_1 for size==1 and mpn_mul_2 (if available)
	for size==2, to avoid copying; do vsize==0 test earlier.

	* mpf/sub.c: Test r!=u before calling mpf_set.
	* mpf/add.c: Ditto, and share mpf_set between usize==0 and vsize==0.

	* mpn/generic/tdiv_qr.c, mpq/get_d.c, mpf/div.c, mpf/set_q.c,
	mpf/set_str.c, mpf/ui_div.c: Test for high bit set, not for
	count_leading_zeros zero.

	* acinclude.m4 (GMP_PROG_AR, GMP_PROG_NM): Print a message if extra
	flags are added.

	* tests/mpz/t-mul_i.c: New file.
	* tests/mpz/Makefile.am: Add it.

	* mpz/mul_siui.c (mpz_mul_si): Fix for -0x80..00 on long long limb.

	* gmp-h.in (mpf_set_si, mpf_set_ui): Revert last change, set exp to 0
	when n==0.
	* mpf/ceilfloor.c, mpf/trunc.c: Fix exp to 0 when setting r to 0.
	* gmp-impl.h (MPF_CHECK_FORMAT): Check exp==0 when size==0.

2001-05-07  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in (mpf_set_si, mpf_set_ui): Don't bother setting _mp_exp to 0
	when n==0 (use 1 unconditionally).
	* tests/mpf/t-misc.c (check_mpf_set_si): Don't demand anything of
	_mp_exp when _mp_size is zero.

	* mpn/x86/README: Note gas _GLOBAL_OFFSET_TABLE_ with leal problem.

	* gmp-h.in (mpz_fits_uint_p, mpz_fits_ulong_p, mpz_fits_ushort_p):
	Provide these as "extern inline"s.
	(__GMP_UINT_MAX, __GMP_ULONG_MAX, __GMP_USHRT_MAX): New macros.
	(mpz_popcount): Use __GMP_ULONG_MAX.
	* gmp-impl.h (UINT_MAX, ULONG_MAX, USHRT_MAX): Use __GMP_U*_MAX, if
	not already defined.
	* mpz/fits_u.c: Use the code from gmp.h.

2001-05-06  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/k7/dive_1.asm: New file.
	* mpn/x86/k7/gcd_1.asm: New file.
	* mpn/asm-defs.m4 (m4_count_trailing_zeros): New macro.

	* gmp-h.in (mpz_get_ui, mpz_getlimbn, mpz_set_q, mpz_perfect_square_p,
	mpz_popcount, mpz_size, mpf_set_ui, mpf_set_si, mpf_size): Provide
	these as "extern inlines".
	Use just one big extern "C" block.
	* mpz/getlimbn.c, mpz/get_ui.c, mpz/perfsqr.c, mpz/popcount.c
	mpz/set_q.c, mpz/size.c, mpf/set_si.c, mpf/set_ui.c, mpf/size.c: Use
	__GMP_FORCE to get code from gmp.h.

2001-05-03  Kevin Ryde  <kevin@swox.se>

	* extract-dbl.c: Add ASSERT d>=0.

	* gmp.texi (Efficiency): Add mpz_addmul etc for mpz+=integer, add
	mpz_neg etc in-place.
	(Integer Arithmetic): Add mpz_addmul, mpz_submul, mpz_submul_ui.
	(Initializing Rationals): Add mpq_set_str.
	(Low-level Functions): mpn_set_str requires strsize >= 1.

	* gmp-h.in (__GMP_EXTERN_INLINE, __GMP_ABS): New macros.
	(mpz_abs, mpq_abs, mpf_abs, mpz_neg, mpq_neg, mpf_neg): Provide inline
	versions.
	* mpz/abs.c, mpq/abs.c, mpf/abs.c, mpz/neg.c, mpq/neg.c, mpf/neg.c:
	Add suitable __GMP_FORCE to turn off inline versions.

	* tests/mpz/t-aorsmul.c,t-cmp_d.c,t-popcount,t-set_str.c: New files.
	* tests/mpz/Makefile.am: Add them.

	* mpz/aorsmul_i.c: New file, rewrite of addmul_ui.c.  Add
	mpz_submul_ui entrypoint, share more code between some of the
	conditionals, use mpn_mul_1c if available.
	* mpz/addmul_ui.c: Remove file.
	* mpz/aorsmul.c: New file.
	* Makefile.am, mpz/Makefile.am: Update.
	* gmp-h.in (mpz_addmul, mpz_submul, mpz_submul_ui): Add prototypes.
	* gmp-impl.h (mpz_aorsmul_1): Add prototype.

	* tests/mpq/t-set_str.c: New file.
	* tests/mpq/Makefile.am: Add it.

	* mpq/set_str.c: New file.
	* Makefile.am, mpq/Makefile.am: Add it.
	* gmp-h.in (mpq_set_str): Add prototype.

	* mpz/set_str.c: Fix for trailing white space on zero, eg. "0 ".
	* mpn/generic/set_str.c: Add ASSERT str_len >= 1.

	* gmp-h.in, gmp-impl.h (mpn_incr_u, mpn_decr_u): Move to gmp-impl.h.
	* gmp-impl.h (MPN_INCR_U, MPN_DECR_U): New macros.

2001-04-30  Kevin Ryde  <kevin@swox.se>

	* tests/mpz/t-lcm.c: New file.
	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.

	* mpz/lcm.c: Add one limb special case.

	* mpz/lcm_ui.c: New file.
	* Makefile.am, mpz/Makefile.am: Add it.
	* gmp-h.in (mpz_lcm_ui): Add prototype.
	* gmp.texi (Number Theoretic Functions): Add mpz_lcm_ui, document lcm
	now always positive.

	* mp-h.in (mp_size_t, mp_exp_t): Fix typedefs to match gmp-h.in.

	* gmp-h.in (mpn_add_1, mpn_add, mpn_sub_1, mpn_sub): Remove K&R
	function defines (ansi2knr will handle mpn/inline.c, and just ansi is
	enough for gcc extern inline).

	* gmp-h.in (__GMP_HAVE_TOKEN_PASTE): New macro.
	(__MPN): Use it.
	* gmp-impl.h (CNST_LIMB): Ditto.

	* gmp-h.in, mp-h.in (__gmp_const, __gmp_signed, _PROTO, __MPN): Use
	ANSI forms on Microsoft C.
	(__GMP_HAVE_CONST): New define.
	* gmp-impl.h (const, signed): Use it.

	* demos/expr/expr-impl-h.in (<stdarg.h>): Use this with Microsoft C.
	(HAVE_STDARG): New define.
	* demos/expr/expr.c,exprz.c,exprq.c,exprf.c,exprfr.c: Use it.

	* acinclude.m4 (GMP_C_STDARG): New macro.
	* configure.in: Call it.
	* rand.c: Use it.

	* configure.in (AC_PROG_CC_STDC): New test.

2001-04-25  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/k6/mmx/dive_1.asm: New file.
	* mpn/x86/x86-defs.m4 (Zdisp): Two more insns.

	* mpn/x86/pentium/mul_2.asm: New file.
	* mpn/asm-defs.m4: Add define_mpn(mul_2).
	* acconfig.h (HAVE_NATIVE_mpn_divexact_1, mul_2): Add templates.

	* configure.in (ABI): Use AC_ARG_VAR.

	* tests/devel/try.c: Run reference function when validate fails.

	* mpq/get_str.c: Fixes for negative bases.
	* tests/mpq/t-get_str.c: Check negative bases.
	* tests/misc.c,tests.h (__gmp_allocate_strdup, strtoupper): New
	functions.

2001-04-24  Torbjorn Granlund  <tege@swox.com>

	* mpz/lcm.c (mpz_lcm): Make result always positive.

	* gmp-h.in (mpz_inp_binary, mpz_out_binary): Remove declarations.

2001-04-22  Kevin Ryde  <kevin@swox.se>

	* mpn/powerpc64/addsub_n.asm: Use config.m4 not asm-syntax.m4.

	* mpz/cmp_d.c, mpz/cmpabs_d.c: New files.
	* Makefile.am, mpz/Makefile.am: Add them.
	* mpf/cmp_d.c, mpf/get_dfl_prec.c: New files.
	* Makefile.am, mpf/Makefile.am: Add them.
	* gmp-h.in (mpz_cmp_d, mpz_cmpabs_d, mpf_cmp_d, mpf_get_default_prec):
	Add prototypes.
	* gmp.texi: Add documentation.

	* mpf/set_prc.c: Avoid a realloc call if already the right precision.

	* gmp-impl.h (MPF_BITS_TO_PREC, MPF_PREC_TO_BITS): New macros.
	* mpf/get_prc.c, init2.c, set_dfl_prec.c, set_prc.c, set_prc_raw.c:
	Use them.

2001-04-20  Kevin Ryde  <kevin@swox.se>

	* tests/devel/try.c: Don't test size==0 on mpn_popcount and
	mpn_hamdist; add testing for mpn_divexact_1; print some limb values
	with mpn_trace not printf.

	* mpz/popcount.c, mpz/hamdist.c: Don't pass size==0 to mpn_popcount
	and mpn_hamdist.
	* mpn/generic/popham.c: Don't support size==0.

	* config.guess (m68k-*-*): Detect m68010, return m68360 for cpu32,
	cleanup the nesting a bit.

	* gmp.texi (Integer Division): Fix mpz_congruent_2exp_p "c" type.
	(Integer Division): Add mpz_divexact_ui.
	(Number Theoretic Functions): Fix mpz_nextprime return type.
	(Exact Remainder): Divisibility tests now implemented.
	And more index entries in a few places.

	* tests/mpz/dive_ui.c: New file.
	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.

	* mpz/dive_ui.c: New file.
	* Makefile.am, mpz/Makefile.am: Add it.
	* gmp-h.in (mpz_divexact_ui): Add prototype.

	* tune/many.pl, tune/speed.h: Add special mpn_back_to_back for
	development.

	* gmp-impl.h (MPN_DIVREM_OR_DIVEXACT_1): New macro.
	* mpz/divexact.c: Use it.

	* gmp-impl.h (DIVEXACT_1_THRESHOLD): New threshold.
	* tune/tuneup.c: Tune it.

	* tune/speed.c,speed.h,common.c,many.pl: Add measuring of
	mpn_divexact_1, mpn_copyi, mpn_copyd.

	* mpn/generic/dive_1.c: New file.
	* configure.in (gmp_mpn_functions): Add it.
	* gmp-impl.h (mpn_divexact_1): Add prototype.
	* mpn/asm-defs.m4: Add define_mpn(divexact_1).

	* tests/mpn: New directory.
	* tests/Makefile.am: Add it.
	* tests/mpn/Makefile.am: New file.
	* configure.in (AC_OUTPUT): Add it.
	* tests/mpn/t-asmtype.c: New file.

	* configure, config.in: Update to autoconf 2.49d.

	* configure.in, gmp-h.in, mp-h.in, demos/expr/expr-impl-h.in: Revert
	to generating gmp.h, mp.h and expr-impl.h with AC_OUTPUT and AC_SUBST.

	* configure.in (m68*-*-*): Oops, m683?2 is 68000, m68360 is cpu32.
	* mpn/m68k/m68k-defs.m4 (scale_available_p): Ditto.

	* configure.in (underscore, asm_align): Remove these variables, unused.
	(GMP_ASM_*): Sort by AC_REQUIREs, to avoid duplication.
	* acinclude.m4 (GMP_ASM_UNDERSCORE, GMP_ASM_ALIGN_LOG): Remove support
	for actions, no longer needed.

2001-04-17  Kevin Ryde  <kevin@swox.se>

	* config.guess (m68k-*-*): Look for cpu in linux kernel /proc/cpuinfo.

	* acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO): The -mpentiumpro problem is
	fixed in 2.95.4, so test for that.
	(GMP_ASM_TYPE): Amend some comments.

	* tune/freq.c (speed_cpu_frequency_sysctl): Avoid having unused
	variables on GNU/Linux.

	* mpn/asm-defs.m4 (m4_instruction_wrapper): Fix a quoting problem if
	the name of the file is a macro.

2001-04-15  Kevin Ryde  <kevin@swox.se>

	* mpn/powerpc64/*.asm: Add speeds on ppc630.

	* acconfig.h: Add dummy templates for _LONG_LONG_LIMB and HAVE_MPFR.
	* configure.in: Ensure config.in is the last AM_CONFIG_HEADER,
	which autoheader requires.

	* mpn/x86/pentium/popcount.asm: New file.
	* mpn/x86/pentium/hamdist.asm: New file.

	* mpn/asm-defs.m4: (m4_popcount): New macro.
	Amend a few comments elsewhere.

	* acinclude.m4 (GMP_ASM_RODATA): If possible, grep compiler output for
	the right directive.

	* tune/speed.c: Print clock speed in MHz, not cycle time.

	* configure.in (AC_CHECK_HEADERS): Check for sys/processor.h.
	* tune/freq.c (speed_cpu_frequency_processor_info): Require
	<sys/processor.h> to exist, to differentiate the different
	processor_info on Darwin.
	(speed_cpu_frequency_sysctlbyname): Remove hw.model test which is in
	speed_cpu_frequency_sysctl.
	(speed_cpu_frequency_sysctl): Add hw.cpufrequency for Darwin.

	* gmp-impl.h (MPN_LOGOPS_N_INLINE, mpn_and_n ... mpn_xnor_n): Use a
	single expression argument for the different operations, necessary for
	the Darwin "smart" preprocessor.

	* mpn/m68k/t-m68k-defs.pl: Allow white space in m4_definsn and
	m4_defbranch.

	* tune/many.pl: Change RM_TMP_S to RM_TMP to match mpn/Makeasm.am,
	avoid a possibly undefined array in a diagnostic, add more renaming to
	hamdist.

2001-04-13  Kevin Ryde  <kevin@swox.se>

	* ltmain.sh, aclocal.m4, configure, config.in: Update to libtool 1.3d.
	* configure.in: Change ac_ to lt_ in lt_cv_archive_cmds_need_lc and
	lt_cv_proc_cc_pic.

	* config.guess (m68*-*-*): Detect exact cpu with BSD sysctl hw.model,
	detect 68000/68010 with trapf, detect 68302 with bfffo.

2001-04-11  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_ASM_M68K_INSTRUCTION, GMP_ASM_M68K_ADDRESSING,
	GMP_ASM_M68K_BRANCHES): New macros.
	* configure.in: Use them, remove old 68k configs, use mc68020 udiv and
	umul.

	* mpn/m68k/m68k-defs.m4: New file.
	* mpn/m68k/t-m68k-defs.pl: New file.
	* mpn/m68k/*.asm: New files, converted from .S.  Merge add_n and sub_n
	to aors_n, ditto mc68020 addmul_1 and submul_1 to aorsmul_1.  No
	object code changes (except .type and .size now used on NetBSD 1.4).
	* mpn/m68k/README: New file.
	* mpn/m68k/*.S, */*.S, syntax.h: Remove files.

	* configure.in (m68*-*-netbsd1.4*): Pretend getrusage doesn't exist.
	* tune/README: Update.

	* configure.in (powerpc*-*-*): For the benefit of Darwin 1.3, add cc
	to cclist, make gcc_cflags -Wa,-mppc optional.

2001-04-06  Kevin Ryde  <kevin@swox.se>

	* mpn/lisp/gmpasm-mode.el (gmpasm-comment-start-regexp): Add | for 68k.
	(gmpasm-mode-syntax-table): Add to comments.

	* tests/mpz/reuse.c (dsi_div_func_names): Add names for cdiv_[qr]_2exp.

2001-04-04  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_M4_M4WRAP_SPURIOUS): Fix test so as to actually
	detect the problem, add notes on m68k netbsd 1.4.1.

	* gmp.texi (Compatibility with older versions): Note libmp
	compatibility.

2001-04-03  Kevin Ryde  <kevin@swox.se>

	* tests/mpz/reuse.c: Add mpz_cdiv_q_2exp and mpz_cdiv_r_2exp.

	* tests/mpz/t-pow.c: Drag in refmpn.o when testing mpz_pow_ui etc with
	refmpn_mul_2.

	* tune/speed.c,speed.h,common.c,many.pl: Add measuring of mpn_com_n
	and mpn_mul_2.
	* tests/devel/try.c: Add testing of mpn_mul_2, and a
	DATA_MULTIPLE_DIVISOR attribute.

	* gmp.texi (Build Options): List more m68k's.
	(Build Options): Add cross reference to tex2html.
	(Notes for Particular Systems): Add m68k means 68020 or up.
	(Rational Conversions): New section, with mpq_get_d, mpq_set_d and
	mpq_set_f from Miscellaneous, and new mpq_set_str.
	(Applying Integer Functions): Move mpq_get_num, mpq_get_den,
	mpq_set_num and mpq_set_den from Misc.
	(Miscellaneous Rational Functions): Remove section.
	(Custom Allocation): Partial rewrite for various clarifications.
	(References): Improve line breaks near URLs.

	* acinclude.m4 (GMP_GCC_M68K_OPTIMIZE): New macro.
	* configure.in (m68*-*-*): Use it to run gcc 2.95.x at -O not -O2.
	(m680?0-*-*, m683?2-*-*, m68360-*-*): Add optional gcc -m options.

	* tests/mpz/t-cmp.c: New file.
	* tests/mpz/t-sizeinbase.c: New file.
	* tests/mpz/Makefile.am: Add them.

	* gmp-impl.h (MPN_CMP): New macro.
	* mpz/cmp.c,cmpabs.c: Use it, and minor cleanups too.

	* tests/mpq/t-equal.c: New file.
	* tests/mpq/t-get_str.c: New file.
	* tests/mpq/Makefile.am: Add them.

	* mpq/get_str.c: New file.
	* Makefile.am, mpq/Makefile.am: Add it.
	* gmp-h.in (mpq_get_str): Add prototype.

	* mpq/equal.c: Rewrite using inline compare loops.

	* tests/refmpn.c,tests.h (refmpn_mul_2): Fix parameter order.
	* mpz/n_pow_ui.c: Fix mpn_mul_2 calls parameter order.

2001-03-29  Kevin Ryde  <kevin@swox.se>

	* tests/mpf/t-trunc.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
	* gmp-impl.h (MPF_CHECK_FORMAT): New macro.

	* mpf/trunc.c: New file, rewrite of integer.c, preserve prec+1 in
	copy, don't copy if unnecessary.
	* mpf/ceilfloor.c: New file likewise, and use common subroutine for
	ceil and floor.
	* mpf/integer.c: Remove file.
	* Makefile.am, mpf/Makefile.am, macos/Makefile.in: Update.

	* acinclude.m4 (GMP_GCC_VERSION_GE): New macro.
	(GMP_GCC_MARCH_PENTIUMPRO): Use it, remove CCBASE parameter (don't
	bother checking it's gcc).
	(GMP_GCC_ARM_UMODSI): New macro.
	* configure.in (GMP_GCC_MARCH_PENTIUMPRO): Update parameters.
	(arm*-*-*): Use GMP_GCC_ARM_UMODSI.
	* gmp.texi (Notes for Particular Systems): Add arm gcc requirements.

2001-03-28  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Converting Integers): Document mpz_getlimbn using absolute
	value and giving zero for N out of range, move to end of section.

	* tests/refmpn.c (refmpn_tdiv_qr): Use refmpn_divmod_1 rather than
	refmpn_divrem_1.
	* tests/tests.h: Add some prototypes that were missing.

	* mpz/tdiv_q_ui.c: Remove a comment that belonged to mpz_tdiv_r_ui.

2001-03-26  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/gcdext.c: Handle carry overflow after m*n multiply code
	in both arms.  Partially combine multiply arms.

2001-03-24  Kevin Ryde  <kevin@swox.se>

	* longlong.h: Add comments to P5 count_leading_zeros.

	* demos/expr/exprz.c,t-expr.c,README: Add congruent_p and divisible_p.

2001-03-23  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (GMPceil, GMPfloor, ge, le): New macros.
	(Integer Division, mpn_cmp, mpn_sqrtrem, Algorithms): Use them.
	(mpn_bdivmod): Refer to mp_bits_per_limb, not BITS_PER_MP_LIMB, and
	improve formatting a bit.
	(mpn_lshift, mpn_rshift): Clarify the return values, and use {rp,n}
	for the destination.
	Miscellaneous minor rewordings in a few places.

	* mpn/arm/arm-defs.m4: New file.
	* configure.in (arm*-*-*): Use it.
	* mpn/arm/*.asm: Use changecom and registers from arm-defs.m4, use L()
	for local labels.

	* mpn/x86/k6/mmx/com_n.asm: Relax code alignment (same speed).

	* gmp-h.in (__GMP_ATTRIBUTE_PURE): Use __pure__ to avoid application
	namespace.

	* gmp-impl.h (ABS): Add parens around argument.

2001-03-20  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_PROG_M4): Use AC_ARG_VAR on $M4.

	* acinclude.m4 (GMP_M4_M4WRAP_SPURIOUS): New macro.
	* configure.in: Use it.
	* mpn/asm-defs.m4: Ditto.

2001-03-18  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium/logops_n.asm: New file.

	* mpn/x86/k6/k62mmx/copyd.asm: Rewrite, smaller and simpler, faster on
	small sizes, slower on big sizes (about half the time).
	* mpn/x86/k6/k62mmx/copyi.asm: Remove file, in favour of generic x86.
	* mpn/x86/copyi.asm: Add some comments.
	* mpn/x86/k6/README: Update.

	* mpn/x86/k6/gcd_1.asm: New file.

	* gmp-impl.h (NEG_MOD): Fix type of __dnorm.

	* acinclude.m4 (GMP_C_SIZES): Fix use of __GMP_WITHIN_CONFIGURE.

2001-03-15  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (GMPabs): New macro.
	(Float Comparison - mpf_reldiff): Use it.
	(Integer Comparisons - mpz_cmpabs): Ditto, puts "abs" in info.
	(Reentrancy): Update notes on old random functions.
	(Karatsuba Multiplication): Better characterize the effect of basecase
	speedups on the thresholds, pointed out by Torbjorn.

	* tune/README: Notes on the 1x1 div threshold for mpn_gcd_1.

	* tests/misc.c (mpz_pow2abs_p, mpz_flipbit, mpz_errandomb,
	mpz_errandomb_nonzero, mpz_negrandom): New functions.
	(mpz_erandomb, mpz_erandomb_nonzero): Use urandom().
	* tests/spinner.c (spinner_wanted, spinner_tick): Make global.
	* tests/tests.h: Update prototypes.

	* tests/mpz/t-cong.c, tests/mpz/t-cong_2exp.c: New files.
	* tests/mpz/Makefile.am (check_PROGRAMS): Add them.

	* mpz/cong.c, mpz/cong_2exp.c, mpz/cong_ui.c: New files.
	* Makefile.am, mpz/Makefile.am: Add them.
	* gmp-impl.h (NEG_MOD): New macro.
	* gmp-h.in (mpz_congruent_p, mpz_congruent_2exp_p,
	mpz_congruent_ui_p): Add prototypes.
	* gmp.texi (Integer Division, Efficiency): Add documentation.

	* mpq/aors.c: No need for ABS on denominator sizes.

	* gmp-impl.h (mpn_divisible_p): Use __MPN.

	* gmp-impl.h (LOW_ZEROS_MASK): New macro.
	* mpz/divis_ui.c, mpn/generic/divis.c: Use it.

	* mpz/setbit.c: Fix normalization for case of a negative ending up
	with a zero high limb.
	* tests/mpz/bit.c (check_single): New test for this problem.

	* configure.in (none-*-*): Fix cclist for default ABI=long.

2001-03-10  Kevin Ryde  <kevin@swox.se>

	* mpz/cfdiv_q_2exp.c: Don't scan for non-zero limbs if they don't
	matter to the rounding.

	* mpz/get_ui.c: Fetch _mp_d[0] unconditionally, so the code can come
	out branch-free.

2001-03-08  Kevin Ryde  <kevin@swox.se>

	* tests/devel/try.c (param_init): Fix reference functions for and_n
	and nand_n.

	* tune/speed.c, tests/devel/try.c: Seed RANDS, not srandom etc.
	* configure.in (AC_CHECK_FUNCS): Remove srand48 and srandom.
	* macos/configure (coptions): Remove random/srandom, now unnecessary.

	* configure.in (gmp.h, mp.h, demos/expr/expr-impl.h): Generate using
	AM_CONFIG_HEADER.
	(_LONG_LONG_LIMB, HAVE_MPFR): Change to AC_DEFINEs.
	* gmp-h.in, mp-h.in, demos/expr/expr-impl-h.in: Change to #undef's.
	* acinclude.m4 (GMP_FUNC_ALLOCA, GMP_C_SIZES): Use gmp-h.in, not gmp.h.
	* Makefile.am (EXTRA_DIST): Remove gmp-h.in and mp-h.in, now done
	automatically.
	* acinclude.m4 (GMP_FUNC_ALLOCA), gmp-impl.h: Set and use
	__GMP_WITHIN_CONFIGURE rather than GMP_FUNC_ALLOCA_TEST.

	* mpf/random2.c: Use _gmp_rand and RANDS instead of random() for the
	exponent, ensures full range of values too.

	* tests/mpz/t-div_2exp.c (check_various): Start with d based on i, but
	don't let it go negative.

	* tune/tuneup.c (KARATSUBA_MUL_THRESHOLD): Limit probing to
	TOOM3_MUL_THRESHOLD_LIMIT, the size of the workspace in mul_n.c.
	Use a -1 with this too, so size<LIMIT not <=.

2001-03-07  Torbjorn Granlund  <tege@swox.com>

	* mpn/cray/cfp/mul_1.c: Don't call mpn_add_n with size 0.
	* mpn/cray/cfp/addmul_1.c: Likewise.
	* mpn/cray/cfp/submul_1.c: Don't call mpn_sub_n with size 0.

	* tests/mpz/t-div_2exp.c (check_various): Start 2nd d loop from 0
	(avoid problems with Cray compilers).

2001-03-06  Torbjorn Granlund  <tege@swox.com>

	* mpn/cray/ieee/submul_1.c: Don't call mpn_sub_n with size 0.

	* mpn/cray/ieee/mul_basecase.c: New file.
	* mpn/cray/ieee/sqr_basecase.c: New file, derived from mul_basecase.c.

2001-03-06  Kevin Ryde  <kevin@swox.se>

	* tests/devel/try.c (pointer_setup): Allow dst_size == SIZE_SIZE2 for
	the benefit of mpn_tdiv_qr.

	* tune/tuneup.c (all): Start karatsuba probing at size==4, for the
	benefit of cray t90 ieee which has speed oddities at size==2.

	* gmp-impl.h (USE_LEADING_REGPARM): Use __GMP_GNUC_PREREQ.
	Use __GMP_ATTRIBUTE_PURE and ATTRIBUTE_CONST in a few places.

	* gmp-h.in (__GMP_GNUC_PREREQ) New macro.
	(__GMP_ATTRIBUTE_PURE): New macro, use it in many places.

	* gmp-impl.h, gmp-h.in (mpn_jacobi_base): Move prototype to
	gmp-impl.h, use ATTRIBUTE_CONST.

	* tune/speed.h (speed_cyclecounter): Inline asm version for i386.

	* mpz/cfdiv_r_2exp.c (cfdiv_r_2exp): Only reread "up" after second
	realloc, first is under w!=u.

2001-03-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/cray/sub_n.c: Rewrite using `majority' logic.

	* mpz/cfdiv_r_2exp.c (cfdiv_r_2exp): Reread `up' after realloc of w.

	* mpn/cray/ieee/mul_1.c: Rewrite.  Streamline multiplications;
	use `majority' logic.
	* mpn/cray/ieee/addmul_1.c: Likewise.

	* mpn/cray/add_n.c: Rewrite using `majority' logic.

2001-03-04  Torbjorn Granlund  <tege@swox.com>

	* longlong.h (CRAY udiv_qrnnd): No longer conditional on CRAYMPP.
	(64-bit hppa add_ssaaaa): New.
	(64-bit hppa sub_ddmmss): New.

	* mpn/cray/ieee/invert_limb.c: New file.

	* gmp-impl.h (RANDS): Add a `,0' to make it compile on more compilers.

2001-03-03  Kevin Ryde  <kevin@swox.se>

	* mpz/n_pow_ui.c (ULONG_PARITY): Move to gmp-impl.h.
	* gmp-impl.h (ULONG_PARITY): i386 part from n_pow_ui.c, new generic
	form by Torbjorn.

	* tests/mpz/t-div_2exp.c: New file, rewrite of t-2exp.c.
	* tests/mpz/t-2exp.c: Remove file.
	* tests/mpz/Makefile.am (check_PROGRAMS): Update.

	* gmp-h.in (mpz_cdiv_q_2exp, mpz_cdiv_q_2exp): Add prototypes.
	* gmp.texi (Integer Division): Add mpz_cdiv_q_2exp and mpz_cdiv_q_2exp.

	* mpz/cfdiv_q_2exp.c: New file, partial rewrite of fdiv_q_2exp.c, add
	mpz_cdiv_q_2exp entrypoint.
	* mpz/cfdiv_r_2exp.c: New file, rewrite of fdiv_r_2exp.c, use all mpn,
	add mpz_cdiv_r_2exp entrypoint.
	* mpz/fdiv_q_2exp.c, mpz/fdiv_r_2exp.c: Remove files.
	* mpz/Makefile.am (libmpz_la_SOURCES): Update.
	* Makefile.am (MPZ_OBJECTS): Ditto.

	* gmp-impl.h (USE_LEADING_REGPARM): Use __i386__ same as longlong.h
	(REGPARM_2_1, REGPARM_3_1, REGPARM_ATTR): New macros.
	* mpz/jacobi.c (jac_or_kron): Use them.

	* configure.in (HAVE_ABI_$ABI): Re-enable this for config.m4, with
	dots changed to underscores (necessary for hppa).

	* tests/mpz/t-divis.c, tests/mpz/t-divis_2exp.c: New files.
	* tests/mpz/Makefile.am (check_PROGRAMS): Add them.

	* gmp-h.in (mpz_divisible_p, mpz_divisible_ui_p,
	mpz_divisible_2exp_p): Add prototypes.
	* gmp.texi (Integer Division): Add mpz_divisible_p.
	(Efficiency): Add remarks about divisibility testing.

	* mpz/divis.c, mpz/divis_ui.c, mpz/divis_2exp.c: New files.
	* mpz/Makefile.am (libmpz_la_SOURCES): Add them.
	* Makefile.am (MPZ_OBJECTS): Ditto.

	* mpn/generic/divis.c: New file.
	* configure.in (gmp_mpn_functions): Add it.
	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Ditto.
	* gmp-impl.h (mpn_divisible_p): Add prototype.

	* urandom.h: Remove file.
	* Makefile.am (EXTRA_DIST): Remove it.

	* tests/mpz/convert.c, dive.c, io.c, logic.c, reuse.c, t-2exp.c,
	t-fdiv.c, t-fdiv_ui.c, t-gcd.c, t-jac.c, t-mul.c, t-pow.c,
	t-powm.c, t-powm_ui.c, t-root.c, t-sqrtrem.c, t-tdiv.c,
	t-tdiv_ui.c: Use RANDS, initialized by tests_rand_start.

	* tests/mpz/t-pow.c: New file, being t-pow_ui renamed and with some
	further tests added.
	* tests/mpz/t-pow_ui.c: Remove file.
	* tests/mpz/Makefile.am (check_PROGRAMS): Update.

	* tests/t-modlinv.c: Don't use urandom.h.
	* tests/mpz/bit.c, tests/mpz/t-scan.c: Ditto.
	* tests/mpq/t-cmp.c, tests/mpq/t-cmp_ui.c, tests/mpq/t-get_d.c: Ditto.
	* tests/mpf/reuse.c, t-add.c, t-conv.c, t-dm2exp.c, t-muldiv.c,
	t-sqrt.c, t-sub.c: Ditto.

	* tests/misc.c (tests_rand_start, tests_rand_end): New functions.
	(tests_start, tests_end): Use them.
	(urandom): New function.
	* tests/tests.h: Add prototypes.

	* mpz/random.c: Rewrite using mpz_urandomb and RANDS.
	* mpn/generic/random.c: Rewrite using _gmp_rand and RANDS.
	* mpn/generic/random2.c: Use RANDS not random() etc.

	* gmp-impl.h (__gmp_rands, __gmp_rands_initialized): Add externs.
	(gmp_randstate_ptr): New typedef.
	(RANDS, RANDS_CLEAR): New macros.

	* rands.c: New file.
	* Makefile.am (libgmp_la_SOURCES): Add it.

	* configure.in (mpn_objs_in_libmp): New AC_SUBST.
	* Makefile.am (libmp_la_DEPENDENCIES): Use it.

2001-03-02  Torbjorn Granlund  <tege@swox.com>

	* mpn/pa64/udiv_qrnnd.asm: New file.

2001-03-01  Kevin Ryde  <kevin@swox.se>

	* mpbsd/rpow.c: New file.
	* mpbsd/Makefile.am (libmpbsd_la_SOURCES): Add it
	(nodist_libmpbsd_la_SOURCES): Remove pow_ui.c.
	* Makefile.am (MPBSD_OBJECTS): Add rpow.lo, remove pow_ui.lo.
	(libmp_la_DEPENDENCIES): Add mpz/n_pow_ui.lo.

	* mpz/ui_pow_ui.c: Rewrite using mpz_n_pow_ui.
	* mpz/pow_ui.c: Ditto, and no longer provide rpow for mpbsd.

	* mpz/n_pow_ui.c: New file, rewrite of pow_ui.c and ui_pow_ui.c.  Use
	less temporary memory, strip factors of 2 from the base, use mpn_mul_2
	if available.
	* mpz/si_pow_ui.c: New file.
	* mpz/Makefile.am (libmpz_la_SOURCES): Add them.
	* Makefile.am (MPZ_OBJECTS): Ditto.
	* gmp-impl.h (mpz_n_pow_ui): Add prototype.
	* gmp-h.in (mpz_si_pow_ui): Add prototype.
	* gmp.texi (Integer Exponentiation): Add mpz_si_pow_ui.

	* acinclude.m4 (GMP_C_SIZES): Add BITS_PER_ULONG.
	Correction to mp_limb_t working check.
	* configure.in (limb_chosen): New variable.
	* tests/t-constants.c (BITS_PER_ULONG): Check this value.
	Add some reminders about tests that fail on Cray.

	* tests/refmpn.c (refmpn_mul_2): New function.
	* tests/refmpz.c (refmpz_pow_ui): Copied from tests/mpz/t-pow_ui.c
	* tests/tests.h: Add prototypes.

	* configure.in (none-*-*): Add ABI=longlong.
	* doc/configuration (Long long limb testing): Describe it.

	* gmp.texi (Low-level Functions): Move some commented out remarks ...
	* mpn/generic/mul_basecase.c: ... to here.

	* mpn/x86/README: Note "%=" as an alternative to "1:" in __asm__.

	* tests/trace.c (mp_trace_start): Print "bin" for binary.

	* mpn/generic/dump.c: Add a couple of casts to keep gcc quiet.

	* gmp-h.in (mpn_incr_u, mpn_decr_u): Add parens around arguments.

	* mpbsd/mout.c, mpbsd/mtox.c (num_to_text): Remove unused variable.

	* mpfr/set_d.c (mpfr_get_d2): Declare "q" for 64-bit limbs.

2001-02-28  Torbjorn Granlund  <tege@swox.com>

	* mpn/pa64w/udiv_qrnnd.asm: Tune.

2001-02-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/pa64w/udiv_qrnnd.asm: New file.

2001-02-26  Torbjorn Granlund  <tege@swox.com>

	* longlong.h (arm): Optimize sub_ddmmss by testing for constant
	operands.
	* mpn/arm/invert_limb.asm: New file.

2001-02-24  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/lshift.c: Rewrite.
	* mpn/generic/rshift.c: Rewrite.

	* longlong.h: Use UWtype for external interfaces that expect mp_limb_t.

	* longlong.h (arm): #define invert_limb.

	* mpn/arm: Make labels have local scope.

	* configure.in (arm*-*-*): Set extra_functions.
	* longlong.h (arm): #define udiv_qrnnd.
	* mpn/arm/udiv.asm: New file.

2001-02-24  Kevin Ryde  <kevin@swox.se>

	* tune/many.pl: Add mpn_count_leading_zeros, mpn_count_trailing_zeros
	and mpn_invert_limb.  Add count_leading_zeros, count_trailing_zeros
	from a .h file.  Correction to modexact_1_odd prototype.  Support
	ansi2knr.
	* tune/speed.h, tune/common.c: Consequent changes.

	* demos/expr/*: Make a few more functions available in expressions,
	create only libexpr.a, misc minor updates.

	* mpn/Makeasm.am: Add some comments about suffix ordering.

	* tests/refmpn.c (rshift_make, lshift_make): No need to compare
	unsigned to zero.

	* mpq/mul.c: Detect and optimize squaring.

2001-02-23  Torbjorn Granlund  <tege@swox.com>

	* mpn/mips3: Convert files to `.asm'.

	* mpn/arm: Convert files to `.asm'.  Misc cleanups.
	* mpn/arm/submul_1.asm: New file.

2001-02-21  Kevin Ryde  <kevin@swox.se>

	* tune/tuneup.c (all): Only one compiler print should match, no need
	for #undef PRINTED_COMPILER.

	* mpfr/mpfr.h (mpfr_sgn): Use mpfr_cmp_ui (patch from Paul).

	* mpz/fib_ui.c: Update some remarks about alternative algorithms.
	* gmp.texi (Fibonacci Numbers Algorithm): Ditto.
	(Assigning Floats): Clarify mpf_swap swaps the precisions too.
	(Low-level Functions): Try to be clearer about negative cofactors.

2001-02-21  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/copyi.asm: Streamline for small operands.
	* mpn/sparc64/add_n.asm: Likewise.
	* mpn/sparc64/sub_n.asm: Likewise.

	* mpn/sparc64/copyd.asm: New file.

2001-02-20  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/lshift.asm: Rewrite.
	* mpn/sparc64/rshift.asm: Rewrite.

2001-02-19  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/add_n.asm: Rewrite using `majority' logic.
	* mpn/sparc64/sub_n.asm: Likewise.

	* tune/tuneup.c (all): Recognise DECC and MIPSpro compilers.

	* mpn/pa64/sqr_diagonal.asm: Use PROLOGUE/EPILOGUE.
	* mpn/pa642/sqr_diagonal.asm: Likewise.

	* configure.in (HAVE_ABI_$abi): Disable for now.

	* mpn/asm-defs.m4 (PROLOGUE): Use LABEL_SUFFIX.

	* acinclude.m4 (GMP_ASM_ATTR): New check, for hppa oddities.

2001-02-18  Torbjorn Granlund  <tege@swox.com>

	* mpn/hppa/hppa1_1/gmp-mparam.h: New file.
	* mpn/hppa/hppa2_0/gmp-mparam.h: New file.

	* mpn/pa64/sqr_diagonal.asm: New file.
	* mpn/pa64w/sqr_diagonal.asm: New file.
	* mpn/hppa/hppa1_1/sqr_diagonal.asm: New file.
	* mpn/hppa/hppa2_0/sqr_diagonal.asm: New file.

	* mpn/sparc32/v9/add_n.asm: Use `fitod' instead of `fxtod' for dummy
	FA-pipeline insns.
	* mpn/sparc32/v9/sub_n.asm: Likewise.

2001-02-18  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Known Build Problems): Notes on make, $* and K&R, misc
	tweaks elsewhere.
	(Low-level Functions): Use {} notation in mpn_sqrtrem.
	(Basecase Multiplication): Mention BASECASE_SQR_THRESHOLD.

	* mpfr/isnan.c (mpfr_number_p): Infinity is not a number.
	* mpfr/out_str.c: Pass strlen+1 for the block size to free.
	* mpfr/get_str.c: Correction for realloc to strlen+1.

	* acinclude.m4 (GMP_C_SIZES): Generate an error if mp_limb_t doesn't
	seem to work for some reason.

2001-02-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc32/v9/gmp-mparam.h: Retune.

	* mpn/sparc32/v9/add_n.asm: New file.
	* mpn/sparc32/v9/sub_n.asm: New file.

	* mpn/sparc32/v9/mul_1.asm: Tune function entry.
	* mpn/sparc32/v9/addmul_1.asm: Likewise.
	* mpn/sparc32/v9/submul_1.asm: Likewise.

	* mpn/sparc32/v9/sqr_diagonal.asm: New file.

2001-02-16  Kevin Ryde  <kevin@swox.se>

	* configure.in: Fix flags selection when $CC is a compiler known to us.

	* demos/expr/exprfr.c (e_mpfr_cos, e_mpfr_sin): mpfr_sin_cos now
	allows NULL for one parameter.

	* mpfr/*: Update to 20010215.
	* mpfr/trunc.c: Use -DOPERATION scheme, and gmp mpn_zero_p.
	* mpfr/sqrt.c: Use plain mpn_sqrtrem, not mpn_sqrtrem_new.
	* mpfr/sqrtrem.c: Remove file.
	* mpfr/Makefile.am (libmpfr_a_SOURCES): Add isnan.c and set_ui.c,
	remove sqrtrem.c and srandom.h.

	* configfsf.guess: Update to 2001-02-13.
	* configfsf.sub: Update to 2001-02-16.
	* config.sub (j90, t90): Remove special handing, configfsf.sub now ok.

	* Makefile.am (MPF_OBJECTS): Add a couple of missing $U's.

	* tune/tuneup.c: Identify compiler used (GCC and Sun C so far).

2001-02-15  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc32/v9/mul_1.asm: Change `ld' to `lduw' and `st' to `stw'.
	* mpn/sparc32/v9/addmul_1.asm: Likewise.
	* mpn/sparc32/v9/submul_1.asm: Likewise.

2001-02-14  Torbjorn Granlund  <tege@swox.com>

	* mpn/mips3/mips.m4: New file.
	* configure.in (mips*-*-irix[6789]*): Use mips3/mips.m4.

	* mpn/powerpc64/sqr_diagonal.asm: New file.

	* mpn/mips3/sqr_diagonal.asm: New file.

2001-02-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/sqr_diagonal.asm: New file.

	* mpn/generic/sqr_basecase.c: Remove declaration of mpn_sqr_diagonal.
	Fix typo in header comment.

2001-02-12  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/mul.c, mpn/generic/mul_n.c, gmp-impl.h: Use
	mpn_mul_basecase for squaring below new BASECASE_SQR_THRESHOLD.
	* tune/tuneup.c gmp-impl.h: Tune BASECASE_SQR_THRESHOLD.

	* Makefile.am (libgmp.la, libmp.la): Revert change to build from
	mpn/libmpn.la etc, go back to explicitly listed objects.

	* configure.in: Recognise sparc64-*-*, not just sparc64-*-linux*.

2001-02-11  Torbjorn Granlund  <tege@swox.com>

	* mpn/asm-defs.m4 (sqr_diagonal): New define_mpn.

	* mpn/alpha/sqr_diagonal.asm: New file.

2001-02-11  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Low-level Functions): Note mpn_get_str clobbers its input
	plus 1 extra limb.

	* mpfr/add.c,agm.c,exp2.c,exp3.c,generic.c,log2.c,pi.c,print_raw.c,
	set_d.c,sin_cos.c,sqrtrem.c,sub.c: Apply some tweaks for K&R.
	* tests/mpz/reuse.c, tests/mpq/t-md_2exp.c, demos/pexpr.c,
	demos/expr/t-expr.c: Ditto.

	* configure.in (HAVE_ABI_$abi): New define in config.m4.

	* gmp-impl.h (mpn_sqr_diagonal): Add prototype and define.
	* tune/speed.c,speed.h,common.c,many.pl: Add measuring of
	mpn_sqr_diagonal.

	* gmp.texi, acinclude.m4: Mention x86 solaris 2.7 has the reg->reg
	movq bug the same as 2.6.

	* mpfr/Makefile.am (EXTRA_DIST): Add mpfr-test.h and mpf2mpfr.h.

	* mpn/x86/README: Merge contents of README.family.
	* mpn/x86/README.family: Remove file.

	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add mode1o, gcd_finda,
	invert_limb, sqr_diagonal; remove mod_1_rs; sort alphabetically.

2001-02-10  Torbjorn Granlund  <tege@swox.com>

	* configure.in (gmp_mpn_functions_optional): List sqr_diagonal.

	* mpn/powerpc32/aix.m4: Use unnamed csects.
	* mpn/powerpc64/aix.m4: Likewise.

	* acconfig.h: Add #undef of mpn_sqr_diagonal.
	Remove lots of spacing.

	* configure.in (syntax testing section): Match power* instead of
	powerpc*.
	* mpn/power: Convert files to `.asm'.
	Prefix umul_ppmm and sdiv_qrnnd.
	Update some comments.

2001-02-09  Kevin Ryde  <kevin@swox.se>

	* acconfig.h: Add HAVE_NATIVE_mpn_modexact_1_odd and
	HAVE_NATIVE_mpn_modexact_1c_odd.

	* configure.in (CCAS): Don't override a user selection.

	* mpq/cmp_ui.c: DIVIDE_BY_ZERO if den2==0.

2001-02-08  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/sqr_basecase.c: Use mpn_sqr_diagonal when appropriate.

2001-02-07  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Low-level Functions): mpn_preinv_mod_1 now undocumented.

	* mpn/generic/random2.c (myrandom): Use rand() on mingw.

	* mpn/alpha/gmp-mparam.h: Update tuned parameters.

2001-02-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/gmp-mparam.h: Retune.

2001-02-05  Kevin Ryde  <kevin@swox.se>

	* Makefile.am (libgmp, libmp): Construct from mpn/libmpn.la etc rather
	than explicitly listed objects.

	* urandom.h: Use rand() on mingw.

	* mpn/powerpc64/lshift.asm,addsub_n.asm: Use r1 not 1.

2001-02-04  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/copyi.asm: New file.
	* mpn/ia64/copyd.asm: New file.

2001-02-04  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/ev5/gmp-mparam.h, mpn/mips3/gmp-mparam.h,
	mpn/powerpc32/gmp-mparam.h, mpn/powerpc64/gmp-mparam.h,
	mpn/sparc64/gmp-mparam.h, mpn/x86/*/gmp-mparam.h:
	Update tuned parameters.

	* mpn/x86/i486: New directory.
	* configure.in (i486-*-*): Use it.
	* mpn/x86/i486/gmp-mparam.h: New file.

	* mpn/x86/pentium/mode1o.asm: New file.
	* mpn/x86/p6/mode1o.asm: New file.

	* tune/many.pl: Use $(ASMFLAGS_PIC) and $(CFLAGS_PIC).

	* gmp.texi (Integer Division): Another rewording of 2exp divisions.

2001-02-03  Torbjorn Granlund  <tege@swox.com>

	* mpn/arm/gmp-mparam.h: Tune.

	* mpn/ia64/popcount.asm: Put a `;;' break at end of main loop.

	* configure.in (arm*-*-*): Set gcc_cflags in order to pass
	$fomit_frame_pointer.

	* tests/mpz/t-mul.c (base_mul): Remove an unused variable.

2001-02-02  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c (TIME): New macro.
	(main): Use TIME--print timing more accurately.
	(setup_error_handler): Increase RLIMIT_DATA to 16 Mibyte.

	* longlong.h (arm): Add __CLOBBER_CC to add_ssaaaa and sub_ddmmss.

2001-02-02  Kevin Ryde  <kevin@swox.se>

	* configure.in: Don't remove gmp-mparam.h and mpn source links under
	--no-create since in that case they're not re-created.

	* demos/expr: New directory.
	* Makefile.am (SUBDIRS, allprogs): Add it.
	* demos/expr/README, Makefile.am, expr.c, exprv.c, exprz.c, exprza.c,
	exprq.c, exprqa.c, exprfa.c, exprf.c, exprfr.c, exprfra.c, expr.h,
	expr-impl-h.in, run-expr.c, t-expr.c: New files.
	* configure.in: Generate demos/expr/Makefile & demos/expr/expr-impl.h.

	* Makefile.am: Remove mpfr from main libgmp.
	* mpfr/Makefile.am: Build and install separate libmpfr.a.
	* mpfr/*: Update to mpfr 2001.

	* gmp-h.in (__GNU_MP_VERSION_MINOR): Bump to 2.
	* Makefile.am (libtool -version-info): Bump appropriately.
	* NEWS: Updates.

	* tune/divrem1div.c, tune/divrem1inv.c, tune/divrem2div.c,
	tune/divrem2inv.c: Renamed from divrem_1_div.c, divrem_1_inv.c,
	divrem_2_div.c, divrem_2_inv.c, to be unique in DOS 8.3 filenames.
	* tune/Makefile.am (libspeed_la_SOURCES): Update.

	* mpn/x86/*/README, mpn/x86/README.family: Misc updates.
	* tune/README: Misc updates.
	* doc/configuration: Misc updates.

	* mpn/x86/pentium/mmx/gmp-mparam.h: Change UDIV_PREINV_TIME to
	UDIV_NORM_PREINV_TIME.

	* mpz/pprime_p.c: Use ASSERT_ALWAYS instead of abort.

	* rand.c (__gmp_rand_lc_scheme): Add "const".
	(struct __gmp_rand_lc_scheme_struct): Make astr "const char *".

	* demos/calc/calc.y, demos/calc/calclex.l: Add kron function.

	* tests/devel/try.c: Partial rewrite, new scheme of function types,
	allow result validation functions, add sqrtrem and jacobi testing.
	* tune/many.pl: Corresponding updates.
	* tests/devel/Makefile.am: Add a convenience rule for libtests.la.

	* tests/refmpz.c: New file.
	* tests/Makefile.am: Add it.
	* tests/misc.c (mpz_erandomb, mpz_erandomb_nonzero): New functions.
	* tests/tests.h: Add prototypes.

	* mpn/x86/k6/cross.pl: Add a couple more exceptions.

	* gmp.texi: Don't use @nicode{'\0'}, it doesn't come out right in tex.
	(Introduction to GMP): Mention Cray vector systems.
	(Build Options): Describe --enable-mpfr, refer to its manual.  Add
	Crays under supported CPUs.
	(Debugging): Add notes on source file paths.
	(Autoconf): New section.
	(Assigning Integers): Note truncation by mpz_set_d, mpz_set_q and
	mpz_set_f.
	(Converting Integers): Note the size mpz_get_str allocates.
	(Floating-point Functions): Rewrite introduction, clarifying some
	points about precision handling.
	(Converting Floats): Note the size mpf_get_str allocates, and that it
	gives an empty string for zero.  Add mpf_get_si and mpf_get_ui.
	(Float Comparison): Give the formula mpf_reldiff calculates.
	(Miscellaneous Float Functions): Add mpf_integer_p and mpf_fits_*_p.
	(Random Number Functions): Misc rewordings for clarity.
	(Random State Initialization): Ditto.
	(Custom Allocation): Remove note on deallocate_function called with 0,
	misc rewording and clarifications.
	(Exact Remainder): New section.
	(Binary GCD): A few words on initial reduction using division.
	(Accelerated GCD): Refer to exact remainder section.
	(Extended GCD): Extra remarks on single versus double selection.
	(Jacobi Symbol): Update for mpz/jacobi.c rewrite and modexact_1_odd.
	(Modular Powering Algorithm): Refer to exact remainder section.
	(Assembler SIMD Instructions): Update remarks on MMX.
	(Contributors): Amend to "Divide and Conquer" division.
	(References): Tweak some formatting.  Add "Proof of GMP Fast Division
	and Square Root Implementations" by Paul Zimmermann.

2001-01-31  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Don't ever pass -mips3; let ABI flags imply ISA.

2001-01-31  Kevin Ryde  <kevin@swox.se>

	* tune/time.c: Remove unnecessary longlong.h.
	(speed_endtime): Add some extra diagnostics.

	* tests/mpz/t-fdiv_ui.c, tests/mpz/t-tdiv_ui.c: Use unsigned long for
	the divisor, not mp_limb_t.
	* tests/mpz/t-jac.c (try_base): Use %llu for long long limb.
	* tests/trace.c: Add <string.h> for strlen.

	* tune/freq.c (speed_cpu_frequency_proc_cpuinfo): Ignore "cycle
	frequency" of 0, allow "BogoMIPS" as well as "bogomips".

	* macos/Makefile.in: Add mpf/fits_s.c and mpf/fits_u.c objects.

2001-01-30  Torbjorn Granlund  <tege@swox.com>

	* longlong.h: Add add_ssaaaa and sub_ddmmss for 64-bit sparc.

2001-01-29  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/addmul_1.asm: Prefix registers with an `r'.
	* mpn/powerpc64/submul_1.asm: Likewise.
	* mpn/powerpc64/mul_1.asm: Likewise.

	* configure.in (alpha*-*-*): Amend last change to handle pca*.

2001-01-29  Kevin Ryde  <kevin@swox.se>

	* tune/speed.h (SPEED_ROUTINE_INVERT_LIMB_CALL): Don't let the
	compiler optimize everything away.

	* tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Measure
	operator_div, operator_mod, mpn_divrem_2_div, mpn_divrem_2_inv,
	mpn_sb_divrem_m3, mpn_sb_divrem_m3_div, mpn_sb_divrem_m3_inv,
	mpn_dc_divrem_sb_div, mpn_dc_divrem_sb_inv.
	* tune/divrem_2_div.c, tune/divrem_2_inv.c, tune/sb_div.c,
	tune/sb_inv.c: New files.

	* tune/tuneup.c, gmp-impl.h, tune/speed.h, tune/common.c,
	tune/Makefile.am: Tune SB_PREINV_THRESHOLD and DIVREM_2_THRESHOLD.

	* mpn/generic/divrem_2.c: Use new DIVREM_2_THRESHOLD.
	* mpn/generic/sb_divrem_mn.c: Use new SB_PREINV_THRESHOLD.

	* mpn/x86/p6/mmx/lshift.asm, mpn/x86/p6/mmx/rshift.asm: New files,
	just m4 include()ing the P55 code.
	* configure.in (pentium[23]-*-*): Remove x86/pentium/mmx from path.

2001-01-27  Kevin Ryde  <kevin@swox.se>

	* configure.in (AC_CHECK_FUNCS): Add srand48.
	* tune/speed.c: Use this test.

	* acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO): Allow "egcs-" prefix on gcc
	--version, warn if the format is unrecognised.
	(GMP_COMPARE_GE): Guard against empty $1 not only on last arg.
	(GMP_INIT, GMP_FINISH, GMP_PROG_M4): Obscure or eliminate literal
	"dnl"s since autoconf thinks they indicate faulty macros.

	* mpz/get_str.c, mpf/get_str.c: Make allocated string block exactly
	strlen(str)+1 bytes.
	* mpz/dump.c, mpf/dump.c, tests/mpz/convert.c: Use this size when
	freeing.
	* tests/mpf/t-conv.c: Ditto, and ensure x==0 is exercised.

	* tests/mpz/t-fits.c: New file.
	* tests/mpz/Makefile.am: Add it.

	* tests/mpf/t-fits.c: New file.
	* tests/mpf/t-get_si.c: New file.
	* tests/mpf/t-int.c: New file.
	* tests/mpf/Makefile.am: Add them.

	* mpf/fits_s.c: New file.
	* mpf/fits_u.c: New file.
	* mpf/get_si.c: New file.
	* mpf/get_ui.c: New file.
	* mpf/int_p.c: New file.
	* Makefile.am, mpf/Makefile.am: Add them.
	* gmp-h.in (mpf_fits_*_p, mpf_get_si, mpf_get_ui, mpf_integer_p): Add
	prototypes.

	* tests/memory.c (tests_allocate, tests_reallocate): Guard against
	size==0.

	* tests/mpz/*.c, tests/mpq/*.c, tests/mpf/*.c: Uses tests_start and
	tests_end.

	* gmp-impl.h (USE_LEADING_REGPARM): Fix conditionals.

2001-01-23  Kevin Ryde  <kevin@swox.se>

	* configure.in, mpn/Makeasm.am (ASMFLAGS_PIC): New substitution,
	allowing -DPIC to be suppressed on cygwin.
	(CFLAGS_PIC): New substitution, use it and $(CCAS) directly, rather
	than $(LIBTOOL), avoiding a problem with FreeBSD 2.2.8.

	* mpn/x86/k6/mode1o.asm, mpn/x86/k7/mode1o.asm: Remove an unnecessary
	+[.-L(here)] from _GLOBAL_OFFSET_TABLE_, avoids a segv from gas 1.92.3.
	* mpn/x86/README.family: Add notes on the problem.

2001-01-20  Torbjorn Granlund  <tege@swox.com>

	* configure.in (alpha*-*-*): Default `flavour' to ev4.

2001-01-19  Kevin Ryde  <kevin@swox.se>

	* assert.c, gmp-impl.h (__gmp_assert_fail): Change return type to
	void, since it's no longer used in expressions.

	* mpn/x86/addsub_n.S: Remove file, since it doesn't work and it upsets
	tune/many.pl.

	* mpz/jacobi.c: Rewrite, but still binary algorithm; accept zero and
	negative denominators; merge mpz_jacobi and mpz_legendre, add
	mpz_kronecker; use mpn directly, add special cases for size==1.
	* gmp.texi (Number Theoretic Functions): Update.
	* gmp-h.in (mpz_kronecker): Add prototype.
	* gmp-impl.h (USE_LEADING_REGPARM): New macro.
	* tests/mpz/t-jac.c: Test mpz_kronecker.
	* mpz/legendre.c: Remove file.
	* Makefile.am, mpz/Makefile.am: Update.

	* longlong.h (alpha count_leading_zeros): Use __attribute__ ((const))
	when possible, add parameter to prototype.
	(ia64 udiv_qrnnd): Use for all compilers, not just gcc.
	(pentium count_trailing_zeros): Use count_leading_zeros.

	* acinclude.m4 (GMP_C_ATTRIBUTE_CONST, GMP_C_ATTRIBUTE_NORETURN): New
	macros.
	* configure.in: Use them.
	* gmp-impl.h (ATTRIBUTE_CONST, ATTRIBUTE_NORETURN): New macros.
	(mpn_invert_limb): Add ATTRIBUTE_CONST.
	(__gmp_assert_fail): Add ATTRIBUTE_NORETURN.

2001-01-18  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in, gmp-impl.h (__gmp_allocate_func, __gmp_reallocate_func,
	__gmp_free_func): Move prototypes from gmp-impl.h to gmp-h.in, for the
	benefit of gmp++.h.

	* gmp-impl.h, tests/misc.c, tests/tests.h: Move MPZ_SET_STR_OR_ABORT
	and MPF_SET_STR_OR_ABORT to mpz_set_str_or_abort and
	mpf_set_str_or_abort in libtests.
	* tests/mpz/convert.c, tests/mpz/t-bin.c, tests/mpz/t-get_si.c,
	tests/mpz/t-jac.c, tests/mpz/t-misc.c, tests/mpq/t-md_2exp.c,
	tests/mpq/t-set_f.c, tests/mpf/t-conv.c, tests/mpf/t-misc.c: Update.

	* mpn/generic/sqrtrem.c: Use MPN_COPY_INCR (for when rp==NULL).

	* tests/mpz/reuse.c: Only run mpz_divexact_gcd on positive divisors.

2001-01-18  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c (main): Accept -vml option.
	(fns): List `hamdist', `pow', `nextprime'.
	(mpz_eval_expr): Return -1 for `popc' of negative.
	(mpz_eval_expr): Handle `hamdist', `pow', `nextprime'.

2001-01-15  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/ev5/mode1o.c: New file.

	* tune/freq.c (speed_cpu_frequency_measure): Check cycles_works_p
	before running speed_cyclecounter.
	* tune/speed.h (cycles_works_p): Add prototype.

2001-01-13  Torbjorn Granlund  <tege@swox.com>

	* tests/rand/t-rand.c (farr): Fix typo.
	(zarr): Fix typo.

2001-01-12  Kevin Ryde  <kevin@swox.se>

	* mpz/kronsz.c: Don't depend on right shifting a negative.

	* mpn/x86/gmp-mparam.h: New file.

	* mpn/x86/pentium/mmx/mul_1.asm: New file.

2001-01-11  Torbjorn Granlund  <tege@swox.com>

	* mpz/kronsz.c: Temporary workaround for Cray right shift oddities.
	Explicitly compare against zero in tests.

2001-01-10  Kevin Ryde  <kevin@swox.se>

	* mpz/kronzs.c: Don't depend on right shifting a negative.

2001-01-09  Torbjorn Granlund  <tege@swox.com>

	* tests/t-constants.c: Disable some undefined tests.
	(CHECK_MAX_S): Remove workaround for gcc 2.95.2 bug recently added.

2001-01-09  Kevin Ryde  <kevin@swox.se>

	* tests/t-constants.c: Add more diagnostics.
	(CHECK_MAX_S): Fix for gcc 2.95.2 -mpowerpc64 -maix64.

	* mpn/x86/k6/mode1o.asm: New file.
	* mpn/x86/k7/mode1o.asm: New file.

	* mpn/asm-defs.m4 (modexact_1_odd, modexact_1c_odd): New define_mpn's.
	(__clz_tab, modlimb_invert_table, PROLOGUE, EPILOGUE): Add asserts for
	GSYM_PREFIX.
	* mpn/x86/x86-defs.m4 (Zdisp): Add a movzbl.

	* tests/mpz/t-jac.c (check_a_zero): New test.
	(check_squares_zi): Fix to use (a^2/b), not (a*b/b); revert last
	change avoiding a,b=0, both are fine.
	(try_2den): Don't use mpz_kronecker_ui for the expected answer.
	(try_*): Call abort rather than exit.

	* mpz/kronzu.c, mpz/kronzs.c: Fix for a=0.

	* tune/tuneup.c (USE_PREINV_MOD_1): Fix to use new DATA_HIGH_LT_R.

2001-01-08  Torbjorn Granlund  <tege@swox.com>

	* urandom.h: Amend 2000-11-21 change to also handle cygwin.

2001-01-08  Kevin Ryde  <kevin@swox.se>

	* tune/many.pl: Updates for move to tests/devel, add modexact_1_odd,
	don't assume C files can't have carry-in entrypoints, remove
	$(TRY_TESTS_OBJS) now in libtests.

	* tests/devel/try.c, tests/refmpn.c, tests/tests.h: Remove
	mpn_mod_1_rshift testing.

	* tune/tuneup.c (fft_step_size): Test for overflow using the actual
	mp_size_t, don't use BITS_PER_INT.

	* tune/speed.c (r_string): "r" is a limb, use BITS_PER_MP_LIMB and
	change LONG_ONES to LIMB_ONES.
	* tune/time.c (M_2POWU): Use INT_MAX rather than BITS_PER_INT.

	* extract-dbl.c (BITS_PER_PART): Use BITS_PER_MP_LIMB not
	BITS_PER_LONGINT.

	* mpz/inp_raw.c, mpz/out_raw.c: Add private defines of BITS_PER_CHAR.
	* mpz/fac_ui.c, tests/mpz/t-fac_ui.c: Don't use BITS_PER_LONGINT.
	* tests/mpz/t-get_si.c: Don't use BITS_PER_LONGINT, do the LONG_MAX
	tests with some explicit code.

	* mpn/*/gmp-mparam.h, acinclude.m4, tests/t-constants.c
	(BITS_PER_LONGINT, BITS_PER_INT, BITS_PER_SHORTINT, BITS_PER_CHAR):
	Remove defines, remove probings, remove tests.

	* tune/tuneup.c (MODEXACT_1_ODD_THRESHOLD): Add tuning.

	* tune/speed.c,speed.h,common.c: Add measuring of mpn_modexact_1_odd,
	mpn_gcd_finda, and an "N" form for mpn_gcd_1.

	* tests/mpz/t-jac.c (check_squares_zi): Ensure random a,b != 0.

2001-01-07  Kevin Ryde  <kevin@swox.se>

	* configure.in (gmp_mpn_functions): Add mode1o, remove mod_1_rs.

	* mpn/generic/mod_1_rs.c: Remove file, no longer needed.
	* gmp-h.in (mpn_mod_1_rshift): Remove prototype and define.

	* mpq/set_f.c: Use MPN_STRIP_LOW_ZEROS_NOT_ZERO.

	* mpz/kronzu.c, mpz/kronzs.c, mpz/kronuz.c, mpz/kronsz.c: Use
	mpn_modexact_1_odd, new style MPN_STRIP_LOW_ZEROS_NOT_ZERO, and new
	JACOBI macros.  Various rearrangements supporting all this.

	* mpn/generic/gcd_1.c: Use mpn_modexact_1_odd, reduce u%v if u much
	bigger than v when size==1, some rearrangements supporting this.

	* gmp-impl.h (JACOBI_*): More macros, add some casts to "int".
	(MPN_STRIP_LOW_ZEROS_NOT_ZERO): Add a "low" parameter.
	(mpn_modexact_1_odd, mpn_modexact_1c_odd): Add prototype and defines.
	(MODEXACT_1_ODD_THRESHOLD): New threshold.
	(MPN_MOD_OR_MODEXACT_1_ODD, JACOBI_MOD_OR_MODEXACT_1_ODD): New macros.

	* mpn/generic/mode1o.c: New file.

	* tests/mpz/reuse.c: Add testing of mpz_divexact_gcd.
	* tests/mpz/t-fac_ui.c: Use libtests for memory leak checking.
	* tests/mpz/t-fib_ui.c: Add a usage comment.

	* tests/mpz/bit.c: Use libtests.
	* tests/mpz/t-scan.c: Remove unused subroutines.
	* tests/devel/try.c: Use libtests, define PROT_NONE if the system
	doesn't.

	* tests/spinner.c, tests/x86check.c: Use tests.h.
	* tests/trace.c: Use tests.h, add mpf_trace.
	* tests/refmpn.c: Use tests.h, add refmpn_malloc_limbs_aligned,
	refmpn_tstbit, refmpn_neg.

	* tune/common.c, tune/speed.h: Update for functions moved to
	tests/misc.c.

	* tune/Makefile.am, tests/mpz/Makefile.am, tests/mpq/Makefile.am,
	tests/mpf/Makefile.am: Use tests/libtests.la.

	* configure.in (AC_OUTPUT): Update for new directories.
	(x86 CALLING_CONVENTIONS_OBJS): Use .lo for libtests.la, allow
	ansi2knr on x86check.c.

	* tests/Makefile.am: Establish new libtests.la convenience library,
	add mpz, mpq, mpf, mpbsd subdirectories.
	* tests/tests.h: New file.
	* mpn/tests/ref.h,try.h: Remove files, now in tests.h.

	* tests/mpf/ref.c: Move to tests/refmpf.c, rename functions to refmpf.
	* tests/mpf/t-add.c, tests/mpf/t-sub.c: Use libtests.
	* tests/mpf/Makefile.am: Update.

	* tests/memory.c: New file.
	* tests/misc.c: New file, a few subroutines from the test programs.

	* mpz/tests, mpq/tests, mpf/tests, mpbsd/tests: Move directories to
	tests/mpz etc.
	* mpz/Makefile.am, mpq/Makefile.am, mpf/Makefile.am, mpbsd/Makefile.am
	(SUBDIRS): Remove.

	* tests/devel: New directory.
	* mpn/tests/*.c: Move programs to tests/devel.
	* mpn/tests/Makefile.am, mpn/tests/README: Move to tests/devel, update.

	* mpn/tests/ref.c: Move to tests/refmpn.c.
	* mpn/tests/spinner.c,trace.c,x86call.asm,x86check.c: Move to tests
	directory.

	* tests/t-constants.c: Add checks of HIGHBIT, MAX and MIN constants,
	simplify ANSI vs K&R stringizing, use correct printf format types, do
	all tests before aborting.

2001-01-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/cray/ieee/gmp-mparam.h: Retune.

2001-01-05  Kevin Ryde  <kevin@swox.se>

	* configure.in (mp.h): Only create this under --enable-mpbsd.

	* demos/calc: New subdirectory, move demos/calc* to it.
	* demos/calc/Makefile.am: New file, split from demos/Makefile.am.
	* demos/Makefile.am: Update.
	* configure.in (AC_OUTPUT): Add demos/calc/Makefile.

	* tests/t-constants.c (CALC_BITS_PER_TYPE etc): Use a run-time test
	for how many bits work in a give type, don't assume bits==8*sizeof.

2001-01-04  Kevin Ryde  <kevin@swox.se>

	* mpz/fits_s.c, mpz/fits_u.c: New files, split from fits.c, use plain
	UINT_MAX etc, not MPZ_FITS_UTYPE_SDT etc.
	* mpz/fits.c: Remove file.
	* mpz/Makefile.am, macos/Makefile.in: Update.

	* gmp-impl.h (UNSIGNED_TYPE_MAX etc): Remove these generic forms.
	(MPZ_FITS_[SU]TYPE_SDT): Remove these.
	(UINT_MAX etc): Provide a full set of defaults.
	* gmp-h.in (__GMP_MP_SIZE_T_INT): New define.

	* mpz/tests/t-scan.c: New file.
	* mpz/tests/Makefile.am (check_PROGRAMS): Add it.

	* mpz/scan0.c, mpz/scan1.c: Rewrite, don't read beyond allocated
	memory, support negatives, return ULONG_MAX for no bit found.
	* gmp.texi (Integer Logic and Bit Fiddling): Update.

2001-01-03  Torbjorn Granlund  <tege@swox.com>

	* mpz/tests/dive.c: Generate test operands using new random functions.
	* mpz/tests/io.c: Likewise.
	* mpz/tests/logic.c: Likewise.
	* mpz/tests/t-2exp.c: Likewise.

	* stack-alloc.c (__gmp_tmp_alloc): Round `now' to required alignment.

	* stack-alloc.h (__TMP_ALIGN): Append `L'.

	* gmp-impl.h: For Cray, #include limits.h.
	(LONG_MIN): New #define.
	(ULONG_HIGHBIT): #define in terms of ULONG_MAX.
	(LONG_HIGHBIT): #define as LONG_MIN.
	(USHRT_MAX): New name for USHORT_MAX.
	(SHRT_MAX): New name for SHORT_MAX.
	(SHRT_MIN): New #define.
	(USHORT_HIGHBIT,SHORT_HIGHBIT): Removed.

	* mpbsd/tests/t-misc.c (check_itom [data]): *SHORT* => *SHRT*;
	remove code disabling a test for Cray.

	* tests/t-constants.c (CHECK_CONSTANT): Cast parameters to long.

	* mpn/generic/mul_n.c (mpn_kara_sqr_n): Remove unused variable `t'.
	(mpn_kara_mul_n): Likewise.

	* mpz/fac_ui.c (MPZ_SET_1_NZ): Actually use `__z'.

	* mpz/tests/t-jac.c
	(main, check_squares_zi): Generate test operands using new random
	functions.

	All changes below on this date for enabling `make; make check'
	with C++ compilers:

	* mpz/tests/t-pow_ui.c (debug_mp, ref_mpz_pow_ui): Provide prototypes.

	* mpz/tests/t-mul.c (debug_mp, base_mul, ref_mpz_mul):
	Provide prototypes.
	(dump_abort): Provide prototype and declare properly for C++.

	* mpz/tests/t-jac.c: #include stdlib.h and sys/time.h.

	* mpz/tests/t-fdiv.c
	(dump_abort): Provide prototype and declare properly for C++.
	(debug_mp): Provide prototype.
	* mpz/tests/t-fdiv_ui.c: Likewise.
	* mpz/tests/t-gcd.c: Likewise.
	* mpz/tests/t-powm.c: Likewise.
	* mpz/tests/t-powm_ui.c: Likewise.
	* mpz/tests/t-sqrtrem.c: Likewise.
	* mpz/tests/t-tdiv_ui.c: Likewise.
	* mpz/tests/t-tdiv.c: Likewise.

	* mpz/tests/t-2exp.c: #include stdlib.h and sys/time.h.
	Remove #include of longlong.h.

	* mpz/tests/io.c: #include config.h, stdlib.h, sys/time.h, and
	conditionally unistd.h.

	* mpz/tests/dive.c: #include stdlib.h and sys/time.h.
	(dump_abort): Provide prototype and declare properly for C++.
	(debug_mp): Provide prototype.
	* mpz/tests/logic.c: Likewise.

	* mpz/tests/convert.c (debug_mp): Provide prototype.
	* mpz/tests/t-root.c (debug_mp): Likewise.

	* mpz/tests/bit.c: #include stdlib.h and sys/time.h.

	* mpq/tests/t-get_d.c: #include stdlib.h and sys/time.h.
	(dump): Provide prototype and declare properly for C++.

	* mpq/tests/t-cmp_ui.c: #include stdio.h, stdlib.h and sys/time.h.
	(ref_mpq_cmp_ui): Declare properly for C++.

	* mpq/tests/t-cmp.c: #include stdlib.h and sys/time.h.
	(ref_mpq_cmp): Declare properly for C++.
	(dump): Delete unused function.

	* mpf/random2.c (myrandom): New function.
	(mpf_random2): Use it.

	* mpn/generic/random2.c: #include stdlib.h (for random/mrand48).
	(myrandom): New function.
	(mpn_random2): Use it.

	* mpf/tests/t-add.c: #include stdlib.h and sys/time.h.
	(oo): Remove unused function.
	* mpf/tests/t-conv.c: Likewise.
	* mpf/tests/t-sub.c: Likewise.
	* mpf/tests/t-dm2exp.c: Likewise.
	* mpf/tests/t-muldiv.c: Likewise.
	* mpf/tests/t-sqrt.c: Likewise.

	* mpf/tests/reuse.c: #include stdlib.h and sys/time.h.
	Use PROTO on some typedefs.
	(oo): Remove function.
	(dump_abort): Call mpf_dump instead of oo.

	* mpf/set_str.c: #include stdlib.h (for strtol).

	* mpf/random2.c: #include stdlib.h (for random/mrand48).
	* mpn/alpha/udiv_arnnd: File deleted.

	* Remove K&R function headers.

2001-01-02  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul.c: Clean up spacing and indentation.

	* mpn/generic/mul_fft.c (mpn_fft_add_modF): Use mpn_decr_u.
	Clean up spacing and indentation.

	* extract-dbl.c: Generalize to handle smaller limb sizes.

2001-01-01  Torbjorn Granlund  <tege@swox.com>

	* mpbsd/mout.c: Output newline after "0".

2000-12-31  Torbjorn Granlund  <tege@swox.com>

	* ltmain.sh: Remove space between `#!' and `$SHELL' when generating
	`libtool'.

	* mpbsd/tests/t-misc.c (check_itom): Exclude test for all Cray
	vector systems.  Correct comment.

2000-12-31  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (ABI and ISA): New enough gcc needed for mips n32 etc, gcc
	2.95 needed for sparc 64-bit ABI, gcc 2.8 needed for -mv8plus.

	* configure.in ([cjt]90,sv1-cray-unicos*): Preserve user specified
	MPN_PATH, amend test program indenting.
	(none-*-*): Add -DNO_ASM to gcc to disable longlong.h asm macros in
	generic C.

	* config.sub (j90, t90): Preserve these, don't let configfsf.sub turn
	them into c90.

	* config.guess (m68k-*-nextstep*,m68k-*-openstep*): Don't transform
	m68k to m68020, since m68k is already interpreted as 68020.

2000-12-30  Kevin Ryde  <kevin@swox.se>

	* mpq/neg.c: Rewrite, use mpn, avoid denominator copy if unnecessary.

	* mpz/tstbit.c: Rewrite, slightly simplified.
	* mpz/tests/bit.c (check_tstbit): New test, and add a couple more
	diagnostics elsewhere.

	* configure.in (x86 gcc_cflags_cpu): Add -m486 for gcc 2.7.2.
	(ccbase): Only use a known compiler in eval statements (avoids
	problems with non-symbol characters).
	(ccbase): Use GMP_PROG_CC_IS_GNU to identify gcc installed under a
	different name.
	(cclist): Use same style $abi as other variables.

	* acinclude.m4 (GMP_PROG_CC_IS_GNU): New macro.
	(GMP_GCC_MARCH_PENTIUMPRO): Use $ccbase to identify gcc.
	(GMP_ASM_TYPE): Define TYPE to empty, not "dnl", when no .type needed.
	(GMP_ASM_SIZE): Ditto for SIZE, which ensures EPILOGUE on the last
	line of a file doesn't leave a tab and no newline.
	(GMP_ASM_UNDERSCORE): Add a prototype for C++.

	* configure.in (sys/mman.h, mprotect): New tests.
	* mpn/tests/try.c: Use them, and HAVE_UNISTD_H too.

	* configure.in (getopt.h): Remove test.
	* tune/speed.c, mpn/tests/try.c (getopt.h): Remove include, since
	plain getopt() is in <unistd.h>.

	* configure.in, gmp-h.in (mips*-*-irix6*): Set limb_n32=longlong
	rather than using _ABIN32.

2000-12-29  Torbjorn Granlund  <tege@swox.com>

	* mpz/tests/reuse.c: Rename dump_abort => dump.
	* mpz/tests/reuse.c: Generate operands using gmp_rand*.
	* mpz/tests/convert.c: Likewise.

	* configure.in: Detect T90-ieee systems; move Cray path
	selection to after AC_PROG_CC.  Invoke AC_PROG_CPP.
	* mpn/cray/cfp: New directory.  Move cfp specific files here.
	* mpn/cray/cfp/mulwwc90.s: New file.
	* mpn/cray/cfp/mulwwj90.s: New file.
	* mpn/cray/mulww.s: Delete.

2000-12-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/cray/ieee/mul_1.c: New file.
	* mpn/cray/ieee/addmul_1.c: New file.
	* mpn/cray/ieee/submul_1.c: New file.
	* mpn/cray/ieee/gmp-mparam.h: New file.

	* mpn/cray/gmp-mparam.h: Disable UMUL_TIME and UDIV_TIME.

	* mpn/cray/hamdist.c: New file.
	* mpn/cray/popcount.c: New file.
	* mpn/cray/rshift.c: New file.
	* mpn/cray/lshift.c: New file.

	* longlong.h: Add count_leading_zeros for _CRAY.
	Reorganize _CRAY stuff.

2000-12-24  Kevin Ryde  <kevin@swox.se>

	* configure.in (alpha*-cray-unicos*): Disable SPEED_CYCLECOUNTER_OBJ,
	as tune/alpha.asm doesn't suit.

	* mpn/generic/sqrtrem.c, mpz/pow_ui.c, mpz/powm_ui.c, mpf/get_str.c,
	mpf/set_str.c: Use mpn_sqr_n when applicable, not mpn_mul_n.

2000-12-23  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_fft.c: Reformat.
	(mpn_fft_neg_modF): Remove.
	(mpn_fft_mul_2exp_modF): Inline mpn_fft_neg_modF.

	* mpn/cray/gmp-mparam.h: Retune.

	* configure.in (*-cray-unicos*): Pass `-O3 -htask0'.
	(vax*-*-*): Fix typo.

	* mpn/cray/mul_1.c: Use dynamic arrays, get rid of TMP_*.
	* mpn/cray/addmul_1.c: Likewise.
	* mpn/cray/submul_1.c: Likewise.
	* mpn/cray/add_n.c: Likewise.
	* mpn/cray/sub_n.c: Likewise.

	* configure.in (default cc_cflags,cc_64_cflags): Remove -g/add -O.
	(mips*-*-irix[6789]*]): Remove -g from cc_*_cflags.

2000-12-22  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_n.c: Delete K&R function headers.

	* mpn/generic/mul_n.c (mpn_kara_mul_n): Clean up type confusion
	between mp_limb_t and mp_size_t.
	(mpn_kara_sqr_n): Likewise.

	* mpn/generic/mul_n.c (mpn_kara_mul_n): Use mpn_incr_u.
	(mpn_kara_sqr_n): Likewise.

	* mpn/generic/mul_n.c (mpn_kara_mul_n): Change handling of `sign'
	to work around GCC 2.8.1 MIPS bug.

	* configure.in (implied alpha*-cray-unicos*): Remove -g from cc_cflags.

2000-12-21  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/invert_limb.asm: Simplify a bit.
	Add handling of bigend systems.
	* mpn/alpha/unicos.m4: Define `bigend'.
	* mpn/alpha/default.m4: Define `bigend' (to expand to nothing).

	* tests/t-constants.c (CHECK_CONSTANT): Print using %lx.

	* mpn/alpha/gmp-mparam.h: Remove sizes for plain C types.
	* mpn/alpha/ev5/gmp-mparam.h: Likewise.
	* mpn/alpha/ev6/gmp-mparam.h: Likewise.

	* mpn/alpha/unicos.m4: Define LEA.
	* mpn/alpha/default.m4: Likewise.
	* mpn/alpha/invert_limb.asm: Use LEA for loading symbolic addresses.
	* mpn/alpha/cntlz.asm: Likewise.

	* mpn/alpha/cntlz.asm: Don't use `ldbu', use slightly slower
	`ldq_u' + `extbl' instead.

	* mpn/alpha/unicos.m4: Define EXTERN.
	* mpn/alpha/default.m4: Define EXTERN (to expand to nothing).
	* mpn/alpha/cntlz.asm: Declare __clz_tab usign `EXTERN' (for the
	benefit of Unicos).

2000-12-21  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/unicos.m4 (GSYM_PREFIX): Define for the benefit of
	__clz_tab.

2000-12-20  Torbjorn Granlund  <tege@swox.com>

	* longlong.h: Add udiv_qrnnd and count_leading_zeros for _CRAYMPP
	systems.

2000-12-19  Torbjorn Granlund  <tege@swox.com>

	* configure.in (*sparc*-*-*): Remove -g from cc_cflags and acc_cflags.

	* mpn/generic/sqrtrem.c (mpn_sqrtrem): Separate `limb' values from
	`size' values.

	* configure.in (*-cray-unicos*): Add `-Wa,-B' to cc_cflags.

	* demos/pexpr.c (rstate): New variable.
	(main): Initialize rstate.
	(enum op_t): Add RANDOM.
	(fns): Add field for RANDOM.
	(mpz_eval_expr): Handle RANDOM.

2000-12-19  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/sqrtrem.c: Rewrite by Paul Zimmermann, based on his
	Karatsuba Square Root algorithm.
	* gmp.texi (Square Root Algorithm): Update.

	* tune/many.pl: New file.

	* mpn/tests/try.c,ref.[ch] (mpn_preinv_mod_1, mpn_sb_divrem_mn,
	mpn_tdiv_qr, mpn_gcd_finda, mpn_kara_mul_n, mpn_kara_sqr_n,
	mpn_toom3_mul_n, mpn_toom3_sqr_n): Add testing.
	* mpn/tests/ref.c: Cast some "0"s in function calls.

	* mpn/x86/k7/mmx/mod_1.asm: Add preinv_mod_1 entrypoint, remove extra
	variable for loop termination.

	* mpn/x86/p6/mmx/mod_1.asm: Remove file, in favour of the following.
	* mpn/x86/p6/mod_1.asm: New file.

	* mpn/x86/pentium/mod_1.asm: New file.

2000-12-18  Torbjorn Granlund  <tege@swox.com>

	* configure.in (mips*-*-irix[6789]*): Pass options to compiler using
	`-Wc'.

2000-12-18  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/k6/pre_mod_1.asm: New file.

	* tune/tuneup.c (USE_PREINV_MOD_1): Tune this, rearrange mpn_divrem_1
	and mpn_mod_1 handling in support of it.
	* tune/Makefile.am: Consequent changes to divrem_1.c and mod_1.c.

	* gmp-impl.h (USE_PREINV_MOD_1, MPN_MOD_OR_PREINV_MOD_1): New macros.
	* mpn/generic/perfsqr.c, mpz/pprime_p.c: Use MPN_MOD_OR_PREINV_MOD_1.

	* configure.in: Let an asm mod_1 provide a preinv_mod_1 entrypoint.

	* mpn/alpha/default.m4: Remove some newlines, add some asserts.
	(r0 etc, f0 etc): Use defreg and deflit.
	(PROLOGUE, PROLOGUE_GP, EPILOGUE): Use GSYM_PREFIX.
	* mpn/alpha/unicos.m4: Remove some newlines, add some asserts.
	* mpn/alpha/invert_limb.asm: Remove unused second DATASTART parameter.
	* mpn/alpha/cntlz.asm: Use mpn_count_leading_zeros and __clz_tab.

	* mpn/asm-defs.m4 (changecom): Comments on portability.
	(__clz_tab, modlimb_invert_table): New macros, matching gmp-impl.h.
	(count_leading_zeros, count_trailing_zeros): New define_mpn's.
	(PROLOGUE etc): Comments on usage, add some asserts.
	(OPERATION_[lr]shift): Use m4_not_for_expansion, for the benefit of
	lorrshift multifunc.

	* mpn/Makeasm.am (RM_TMP): New variable controlling tmp-*.s
	removal, for development purposes.

	* mpz/fac_ui.c: Fix for long long limb by using mpn_mul_1 not
	mpz_mul_ui, and note some possible enhancements.

	* mpz/tests/t-fac_ui.c: New test.
	* mpz/tests/Makefile.am (check_PROGRAMS): Add it.
	* macos/Makefile.in: Ditto, and add t-fib_ui too.

	* mpn/generic/[lr]shift.c: Remove some DEBUG code adequately covered
	by new parameter ASSERTs.

	* longlong.h (count_trailing_zeros): Assert x!=0.

	* doc/configuration: Updates for new configure things, add some notes
	on test setups.

2000-12-16  Torbjorn Granlund  <tege@swox.com>

	* configure.in (*-*-aix): Pass -qmaxmem=20000 to xlc also for 64-bit
	compiles.
	* configure.in: Disable shared libs for *-*-ultrix*.

2000-12-15  Torbjorn Granlund  <tege@swox.com>

	* configure.in (powerpc*-*-*): Pass -Wa,-mppc when using gcc.

	* gmp-impl.h (_EXTERN_INLINE): #define different for GCC and other
	compilers.

	* gmp-h.in (__gmp_inline): Remove.
	* mp-h.in: Likewise.
	* mpn/generic/gcd.c: Use `inline' instead of `__gmp_inline'.

	* configure.in (mips*-*-irix[6789]*): Define *_ldflags.

2000-12-14  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/pre_mod_1.c: Use proper type for udiv_qrnnd
	parameter `dummy'.

	* mpn/generic/divrem_1.c: Use explicit `!= 0' in if statement.
	* mpn/generic/mod_1.c: Likewise.

2000-12-14  Kevin Ryde  <kevin@swox.se>

	* config.guess (mips-*-irix[6789]*): Transform to mips64.
	(m68k-*-nextstep* | m68k-*-openstep*): Transform to m68020.

2000-12-13  Torbjorn Granlund  <tege@swox.com>

	* tests/t-constants.c (main): Conditionalize use of PP_INVERTED.

	* mpn/mp_bases.c: Handle 4-bit limbs.
	(main): Add code for generating tables.

	* mpn/generic/popham.c: Handle limb bitsizes of 4, 8, 16.
	Suffix all 32-bit constant with `L'.
	Use CNST_LIMB for 64-bit constants.

2000-12-13  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (FIB_THRESHOLD): Defaults for 4,8,16 bits per limb, and
	an arbitrary fallback default.
	(modlimb_invert): Add efficient code for 8,16 (or 4) bits per limb.

	* configure.in (mips3, mips64): Don't bother with o32 (mips2 32-bit
	limb) on IRIX 6.

	* Makefile.am (SUBDIRS): Put "tests" first so tests/t-constants.c is
	run first, to pick up any limb size mismatch.

	* tune/tuneup.c (DIVREM_1, MOD_1): Fix result values, were off by 1.

	* mpz/fib_ui.c (table1, table2): Add data for 4,8,16 bits per limb.

2000-12-12  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (LIMBS_PER_DOUBLE): Define for any limb bitsize.

2000-12-11  Torbjorn Granlund  <tege@swox.com>

	* mpn/mp_bases.c: Add tables for 8-bit and 16-bit limbs.
	Round existing `double' values properly.

	* gmp-h.in (__gmp_randstate_struct): Prefix field names with _mp_
	to keep out of user name space.
	(__gmp_randata_lc): Likewise.
	* randclr.c, randlc.c, randlc2x.c, randraw.c, randsd.c, randsdui.c:
	Corresponding changes.

	* gmp-impl.h (PP): #define for machines with BITS_PER_MP_LIMB
	of 2, 4, 8, and 16.
	(PP_FIRST_OMITTED): New, define for various BITS_PER_MP_LIMB.
	(PP_MASK): Remove.
	(PP_MAXPRIME): Remove.

	* mpn/generic/perfsqr.c: Generalize PP handling for machines with
	limbs of < 32 bits.  Allow PP_INVERTED to be undefined.
	* mpz/pprime_p.c: Likewise.

2000-12-10  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_1.c: Declare parameters in C89 style.

2000-12-10  Kevin Ryde  <kevin@swox.se>

	* tune/Makefile.am (speed_LDFLAGS, speed_ext_LDFLAGS, tune_LDFLAGS):
	Don't use -all-static, as gcc 2.95.2 on i386 solaris 8 doesn't like
	it.

	* configure.in (mips3,mips64): Add ABI=64, name the others ABI=n32 and
	ABI=o32.
	* mpn/mips3/gmp-mparam.h (BITS_PER_LONGINT): Remove #define and let
	configure determine it, since it varies with ABI=64 or ABI=n32.
	* gmp.texi (ABI and ISA): Update.
	(mpz_mod_ui): Remark that it's identical to mpz_fdiv_r_ui.
	(mpn_divexact_by3): Qualify a statement needing mp_bits_per_limb even.

	* mul_fft.c (mpn_fft_mul_modF_K etc): Patch by Paul Zimmermann to fix
	results in certain cases of recursing into a further FFT.

2000-12-09  Torbjorn Granlund  <tege@swox.com>

	* mpz/cmpabs.c: Remove unused variable.
	* mpz/rrandomb.c: Likewise.
	* mpz/xor.c: Likewise.

2000-12-07  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/gcdext.c: Handle double carry when computing s1.
	Merge two code blocks for computing s0 and s1.

2000-12-07  Kevin Ryde  <kevin@swox.se>

	* configure.in (hppa*-*-*): Remove -Aa -D_HPUX_SOURCE from
	cc_cflags/cppflags, and instead let AM_C_PROTOTYPES add it, or -Ae,
	whichever works.

	* configure.in (*-*-aix[34]*): Disable shared by default, but let
	the user override that, if desired.
	* gmp.texi (Notes for Particular Systems): Update.

2000-12-06  Torbjorn Granlund  <tege@swox.com>

	* mpq/cmp_ui.c: Streamline.

2000-12-06  Kevin Ryde  <kevin@swox.se>

	* tune/divrem_1_div.c,divrem_1_inv.c,mod_1_div.c,mod_1_inv.c,
	gcdext_double.c: New files for measuring.
	* tune/Makefile.am (libspeed_la_SOURCES): Add them.
	* tune/speed.c,speed.h,common.c: Add measuring of them.
	(mpn_preinv_mod_1, mpz_jacobi, mpz_powm_ui): Add measuring.

	* speed.c (getopt_long): Don't use this, just plain getopt.
	* configure.in (getopt_long): Remove test.

	* gmp-impl.h (MPN_KARA_MUL_N_TSIZE, MPN_KARA_MUL_N_MINSIZE,
	MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_MUL_N_MINSIZE): New macros, and
	assume toom3 square tsize was meant to be the same as the mul (both
	are overestimates).
	* tune/tuneup.c, mpn/generic/mul.c, mpn/generic/mul_n.c: Use them.
	* mpn/generic/mul_n.c (mpn_toom3_sqr_n): Fix an ASSERT to use
	TOOM3_SQR_THRESHOLD not TOOM3_MUL_THRESHOLD, add a few that might
	be more realistic size checks.
	* tune/speed.h (SPEED_ROUTINE_MPN_MUL_N_TSPACE etc): Use minsize.

	* mpn/generic/divrem_1.c: Partial rewrite, merge fractional part
	calculation, skip a divide step in more cases, introduce
	DIVREM_1_NORM_THRESHOLD and DIVREM_1_UNNORM_THRESHOLD.
	* mpn/generic/mod_1.c: Partial rewrite, skip a divide step in more
	cases, introduce MOD_1_NORM_THRESHOLD, MOD_1_UNNORM_THRESHOLD.
	* longlong.h (UDIV_PREINV_ALWAYS): New define, set for alpha and ia64.
	* tune/tuneup.c (DIVREM_1_NORM_THRESHOLD, DIVREM_1_UNNORM_THRESHOLD,
	MOD_1_NORM_THRESHOLD, MOD_1_UNNORM_THRESHOLD): Tune these.
	* gmp-impl.h [TUNE_PROGRAM_BUILD]: Support for this.
	* tune/Makefile.am (TUNE_MPN_SRCS): Add divrem_1.c and mod_1.c.

	* gmp-impl.h (UDIV_NORM_PREINV_TIME): Renamed from UDIV_PREINV_TIME.
	* mpn/generic/perfsqr.c, mpn/generic/sb_divrem_mn.c,
	mpn/x86/*/gmp-mparam.h: Ditto.
	* gmp-impl.h (UDIV_UNNORM_PREINV_TIME): New define.

	* configure.in (AC_C_INLINE, HAVE_INLINE): New test and define.
	* gmp-impl.h (inline): Remove, use config.h.
	(_EXTERN_INLINE): Redefine based on HAVE_INLINE.
	(mpn_zero_p): Use HAVE_INLINE.

	* acinclude.m4 (GMP_PROG_AR, GMP_PROG_NM): Don't add flags to a user
	selected $AR or $NM.

	* tune/tuneup.c (all): Print how long the tuning took.

	* configure.in (AM_C_PROTOTYPES): Use this, not GMP_ANSI2KNR.
	* acinclude.m4 (GMP_ANSI2KNR): Remove.

	* Makefile.am (gmp.h, mp.h): In DISTCLEANFILES not CLEANFILES.

	* gmp-h.in (mpn_divmod, mpn_divmod_1, mpn_divexact_by3): Cast some
	zeros, for the benefit of K&R if long!=int.

	* mpn/lisp/gmpasm-mode.el (gmpasm-comment-start-regexp): Add "*" for
	the benefit of cray.

	* compat.c (mpn_divexact_by3, mpn_divmod_1): Return types should be
	mp_limb_t, not int, and need an actual "return".

2000-12-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc32/v8/supersparc/gmp-mparam.h: Retune.
	* mpn/alpha/gmp-mparam.h: Tune for 21064.

	* longlong.h: Reformat to avoid newlines within strings.

	* gmp-impl.h (inline): Disable if GCC has defined __STRICT_ANSI__.

	* configure.in: Do a `mkdir tune' before creating tune/sqr_basecase.c.

	* Makefile.am: Treat mp.h analogously to gmp.h.

	configure.in (*-*-aix): Pass -qmaxmem=20000 to xlc.

	* mp-h.in: Renamed from mp.h.
	Add #define for _LONG_LONG_LIMB.
	Move some other fixes from gmp-h.in.
	* mp.h: Removed.
	* configure.in: Generate mp.h from mp-h.in like we handle
	gmp-h.in/gmp.h.

2000-12-04  Torbjorn Granlund  <tege@swox.com>

	* acinclude.m4: Fix typo testing for bad HP compiler.

2000-12-03  Torbjorn Granlund  <tege@swox.com>

	* mpbsd/tests/t-misc.c (check_itom): Exclude some tests for Cray
	CFP systems.

	* longlong.h (CRAYIEEE umul_ppmm): New.

	* mpn/cray/gmp-mparam.h (BITS_PER_SHORTINT): 32 => 64.
	(*_THRESHOLD): Tune.

	* configure.in: Disable shared libs for *-*-unicos*.

2000-12-03  Kevin Ryde  <kevin@swox.se>

	* configure.in, tune/Makefile.am: Create tune/sqr_basecase.c during
	configure, and use it unconditionally in $(nodist_tuneup_SOURCES).
	Fixes a problem with sqr_basecase.lo under --disable-static.

2000-12-01  Torbjorn Granlund  <tege@swox.com>

	* mpf/tests/t-get_d.c (LOW_BOUND,HIGH_BOUND): #define for non-IEEE
	Cray systems.

	* gmp-impl.h (union ieee_double_extract): Test for _CRAYIEEE.

2000-11-30  Torbjorn Granlund  <tege@swox.com>

	* mpz/tests/t-mul.c (base_mul): Fix re-evaluation problems in macro
	invocations.
	(ref_mpz_mul): New name from mpz_refmul.  Make static.
	(base_mul): New name for _mpn_mul_classic.

2000-11-30  Kevin Ryde  <kevin@swox.se>

	* configure.in: Rewrite of CC/CFLAGS selection scheme, introduce a
	notion of ABI, merge compiler and mpn path selection, add flags
	selection for AR and NM, let CC without CFLAGS work.
	(AC_PROG_CC): Use this, not GMP_SELECT_CC.
	* acinclude.m4 (GMP_PROG_CC_WORKS): Don't use AC_TRY_COMPILE, combine
	cc/cflags parameter.
	(GMP_PROG_CC_FIND, GMP_CHECK_CC_64BIT, GMP_PROG_CC_SELECT): Remove.
	* gmp.texi (Installing GMP): Updates for new scheme.

	* configure.in (AC_CANONICAL_HOST): Use this and $host, not $target.
	* acinclude.m4, acconfig.h, longlong.h, mpn/x86/x86-defs.m4,
	mpn/x86/k7/mmx/popham.asm: Ditto, renaming HAVE_TARGET_CPU to
	HAVE_HOST_CPU.
	* gmp.texi (Build Options, and elsewhere): Update.

	* acinclude.m4 (GMP_COMPARE_GE): New macro.
	(GMP_GCC_MARCH_PENTIUMPRO): Use it, add CC parameter, check for GCC.
	(GMP_HPC_HPPA_2_0): New macro, adapted from GMP_CHECK_CC_64BIT.

	* acinclude.m4 (GMP_PROG_AR): New macro, using AC_CHECK_TOOL, adding
	GMP flags.
	* configure.in: Use it

	* gmp-h.in: Renamed from gmp.h.
	(@define_LONG_LONG_LIMB@): Placeholder for instantiation.
	(__GNU_MP__): Bump to 3.
	* acinclude.m4 (GMP_VERSION): Get version from gmp-h.in.
	* configure.in: Create gmp.h from gmp-h.in to set _LONG_LONG_LIMB.
	* gmp.texi.h (ABI and ISA): Mention this.
	* acconfig.h (_LONG_LONG_LIMB): Remove undef.
	* Makefile.am: Distribute gmp-h.in, not gmp.h.

	* configure.in (AC_PROG_CPP, AC_PROG_INSTALL, AC_PROG_LN_S): Remove,
	dragged in by other macros.
	(gmp_asm_syntax_testing): Renamed from gmp_no_asm_syntax_testing.
	(AC_EXEEXT, AC_OBJEXT): Remove, done automatically by libtool.
	* configure.in, acinclude.m4: Remove "" from "`foo`", being
	unnecessary and not portable.

	* configure.in (GMP_LDFLAGS): New AC_SUBST flags for libtool link.
	(powerpc64*-*-aix*): Use for -Wc,-maix to fix shared library creation,
	but can't build shared and static at the same time.
	* Makefile.am (libgmp_la_LDFLAGS, libmp_la_LDFLAGS): Use
	$(GMP_LDFLAGS).
	* gmp.texi (Notes for Particular Systems): Update AIX problem

	* configure.in (AC_CONFIG_LINKS): Use where needed, not via gmp_links.
	(gmp_srclinks): Build up as needed, not via gmp_links.

	* acinclude.m4 (GMP_INIT): Do CONFIG_TOP_SRCDIR and asm-defs.m4 here.
	* configure.in (asm-defs.m4): Consequent changes.

	* acinclude.m4 (GMP_INCLUDE_MPN): Using include_mpn(), replacing
	GMP_INCLUDE and GMP_SINCLUDE.
	* configure.in (gmp_m4postinc): Remove this scheme, use
	GMP_INCLUDE_MPN instead.

	* configure.in (*-*-sco3.2v5*): Force ac_cv_archive_cmds_need_lc=no,
	until libtool does this itself.
	* gmp.texi (Known Build Problems): Remove SCO -lc problem.

	* configure, INSTALL.autoconf, etc: Update to autoconf 2000-11-29.
	* acinclude.m4 (GMP_C_SIZES): Use AC_CHECK_SIZEOF.
	* gmp.texi (Known Build Problems): Remove version.c sed/config.h
	problem, fixed.

	* ltmain.sh, aclocal.m4: Update to libtool 2000-11-25.
	* ltconfig: No longer required, but leave an empty dummy for automake.
	* gmp.texi (Known Build Problems): Remove SunOS native ar ranlib
	problem, fixed.

	* */Makefile.in, aclocal.m4: Update to automake 2000-11-25.
	* mpbsd/tests/Makefile.am, mpfr/tests/Makefile.am (check_PROGRAMS):
	Remove dummy, no longer required.
	* mpbsd/tests/dummy.c, mpfr/tests/dummy.c: Remove files.
	* depcomp: Remove file, no longer required (with no-dependencies).

	* texinfo.tex: Update to 2000-11-09.
	* gmp.texi (Build Options): Mention PDF from gmp.texi.
	* Makefile.am (MOSTLYCLEANFILES): Add gmp.tmp, from new texinfo.tex.

	* gmp.texi (Build Options): List alphaev56, alphapca56, alphaev67,
	hppa2.0n and power among supported CPUs.

2000-11-30  Torbjorn Granlund  <tege@swox.com>

	* mpz/tests/t-mul.c: Increase max operand size from 2^17 bits
	to 2^19 bits.  Misc cleanups.

2000-11-26  Kevin Ryde  <kevin@swox.se>

	* tune/tuneup.c (FIB_THRESHOLD): Cope better with different speeds of
	odd and even sizes.

	* longlong.h (alpha): Use udiv_qrnnd and count_leading_zeros on all
	compilers, not just gcc.

	* pre_mod_1.c: Use conditional subtract to always skip a division.
	(UMUL_TIME, UDIV_TIME): Remove defaults, now in longlong.h.

2000-11-22  Torbjorn Granlund  <tege@swox.com>

	* mpn/pa64w/gmp-mparam.h: Retune.
	* mpn/pa64/gmp-mparam.h: Retune.
	* mpn/sparc64/gmp-mparam.h: Retune.

2000-11-22  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (ABOVE_THRESHOLD, BELOW_THRESHOLD): New macros.
	* mpn/generic/gcdext.c: Use them.

	* mpn/generic/gcdext.c [WANT_GCDEXT_ONE_STEP]: Force only one step.
	* tune/gcdextos.c, tune/gcdextod.c: New files, one step gcdext, single
	and double.
	* tune/Makefile.am (libspeed_la_SOURCES): Add them.
	(TUNE_MPN_SRCS): Remove gcdext.c.
	* tune/speed.h, tune/common.c, tune/speed.c: Add measuring.
	* tune/tuneup.c: Use for GCDEXT_THRESHOLD, plus check if double limb
	is ever better.  Should be more accurate, and hopefully faster.

	* tune/gcdext_single.c: New file, gcdext forced to single limbs.
	* tune/Makefile.am: Add it.
	* tune/speed.h, tune/common.c, tune/speed.c: Add measuring, and of
	invert_limb.

	* tune/speed.h (speed_params r): Use mp_limb_t, not long.
	* tune/speed.h, tune/common.c: Don't "switch" on "r".
	* tune/speed.c (r_string): Accept limb sized constants.
	(choice scale): Add a scale factor (eg. "2.33*mpn_add_n").
	* tune/common.c (SPEED_ROUTINE_UDIV_QRNND_A): Default r to
	__mp_bases[10].big_base, being a full limb value.

	* configure.in (alphapca56*-*-*): Use ev5 mpn path.
	(am29000*-*-*): Remove this, leave the canonical a29k.
	(z8k*-*-*, z8kx*-*-*): Changed from z8000, since z8k is canonical.
	(gmp_mpn_functions_optional): Add invert_limb, use for alpha and ia64.

	* configure.in (alloca): Accept yes/no/detect, generate an error if
	"yes" but not available.
	* gmp.texi (Build Options): Update.

	* acinclude.m4 (GMP_TRY_ASSEMBLE): Make conftest.out available.
	(GMP_ASM_ALIGN_FILL_0x90): Use it.

	* acinclude.m4 (GMP_ASM_X86_MMX) [*-*-solaris*]: Check for solaris
	2.6 "as" movq bug.
	* gmp.texi (Notes for Particular Systems): Update x86 MMX note.

2000-11-21  Torbjorn Granlund  <tege@swox.com>

	* tune/Makefile.am (EXTRA_DIST): List hppa2w.asm.

	* tune/hppa2.asm: Change level directive to "2.0n".
	* tune/hppa2w.asm: New file.
	* configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Separate out hppa2.0w.

	* mpn/pa64/gmp-mparam.h (BITS_PER_LONGINT): 64 => 32.

2000-11-21  Kevin Ryde  <kevin@swox.se>

	* urandom.h (random): No prototype if glibc stdlib.h has already
	provided it (avoids an int32_t/long conflict).

	* tune/Makefile.am (LDFLAGS): Use -all-static.
	(speed-dynamic): Dynamic linked version of speed.c.
	* tune/README: Update.

	* mpn/generic/gcd.c (find_a): Use native version if available.
	* acconfig.h (HAVE_NATIVE_mpn_gcd_finda): Add #undef.
	* gmp-impl.h (mpn_gcd_finda): Add prototype and define.
	* mpn/asm-defs.m4 (mpn_gcd_finda): New define_mpn.
	* tune/gcd_finda_gen.c: #undef any HAVE_NATIVE_mpn_gcd_finda.
	* configure.in (gmp_mpn_functions_optional): Add gcd_finda.
	* mpn/x86/k6/gcd_finda.asm: New file.

	* tune/tuneup.c (POWM_THRESHOLD): Slightly bigger size steps.

	* gmp-impl.h (__GMP_IMPL_H__): Protect against multiple inclusion.
	* tune/gcd_bin.c, tune/powm_mod.c, tune/powm_redc.c: Use #undef after
	gmp-impl.h to force thresholds.
	* tune/tuneup.c (print_define, fft): No need for #ifndefs on
	thresholds any more.

2000-11-20  Torbjorn Granlund  <tege@swox.com>

	* mpz/tests/t-powm.c: Analogous changes as made 2000-11-12 to t-mul.c.
	* mpz/tests/t-powm_ui.c: Likewise.
	* mpz/tests/t-pow_ui.c: Likewise.
	* mpz/tests/t-root.c: Likewise.

	* configure.in [compiler switch]: Pass "-Aa -D_HPUX_SOURCE" to cc for
	all hppa versions.

	* mpn/hppa/hppa1_1/udiv_qrnnd.S: Reference data using PC relative
	addressing (was r19 relative addressing).

2000-11-18  Torbjorn Granlund  <tege@swox.com>

	* rand.c: (__gmp_rand_lc_scheme): Convert strings to hexadecimal.
	(gmp_randinit): Expect strings in hexadecimal.

2000-11-18  Kevin Ryde  <kevin@swox.se>

	* configfsf.guess, configfsf.sub: Update to 2000-11-16.
	* config.guess (alpha*-*-openbsd*): Do exact cpu detection.

2000-11-14  Torbjorn Granlund  <tege@swox.com>

	* mpz/tests/t-fdiv.c: Analogous changes as made 2000-11-12 to t-mul.c.
	* mpz/tests/t-tdiv_ui.c: Likewise.
	* mpz/tests/t-fdiv_ui.c: Likewise.
	* mpz/tests/t-sqrtrem.c: Likewise.
	* mpz/tests/t-gcd.c: Likewise.

2000-11-13  Kevin Ryde  <kevin@swox.se>

	* mpn/Makeasm.am: New file, splitting out assembler rules.
	* mpn/Makefile.am, tune/Makefile.am: Use it.

	* mpn/Makefile.am (@CPP@): Remove this, automake already gives it.

	* configure.in (AC_CHECK_LIBM): New test, and AC_SUBST it.
	* Makefile.am (MPFR_LIBADD_OPTION): Use it.
	* demos/Makefile.am (qcn_LDADD): Ditto.
	* tune/Makefile.am (libspeed_la_LIBADD): Ditto.
	* tests/rand/Makefile.am (libstat_la_LIBADD): Ditto.

	* tune/time.c (timeval_diff_secs): Better calculation.
	(read_real_time): New measuring method for AIX power/powerpc.
	(speed_endtime): Protect against negative times.
	* tune/common.c (speed_measure): Protect against big reps.
	* tune/freq.c (speed_cpu_frequency_measure_one): Better timeval diff.
	* tune/speed.h (TIMEVAL_DIFF_SEC,USEC): Remove macros.
	* configure.in: (sys/systemcfg.h, read_real_time): New tests.

2000-11-13  Torbjorn Granlund  <tege@swox.com>

	* mpz/tests/t-mul.c: Remove #include urandom.h.
	* mpz/tests/t-tdiv.c: Likewise.

	* configure.in [SPEED_CYCLECOUNTER_OBJS switch]:
	Declare hppa.asm as just 32 bits (cyclecounter_size=1).

2000-11-12  Torbjorn Granlund  <tege@swox.com>

	* mpz/tests/t-mul.c
	(main): Generate random numbers using gmp_rand* functions.
	(main): Distribute random numbers non-uniformly.
	(main): Seed by current time if GMP_CHECK_RANDOMIZE is set.
	(_mpn_mul_classic): Streamline.
	* mpz/tests/t-tdiv.c: Analogous changes.

	* demos/pexpr.c (HAVE_sigaltstack): Fix typo in testing for _UNICOS.
	Also test for __hpux.

2000-11-11  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev5/gmp-mparam.h: Retune.

	* mpn/alpha/ev6/gmp-mparam.h: Retune.

	* mpn/alpha/ev6/add_n.asm: Misc cleanups.

	* mpn/alpha/ev6/sub_n.asm: New file.

2000-11-10  Torbjorn Granlund  <tege@swox.com>

	* configure.in [path switch] (alphaev6*-*-*): Add alpha/ev5 to path.

	* mpn/alpha/ev6/add_n.asm: New file.

2000-11-10  Kevin Ryde  <kevin@swox.se>

	* mpz/powm.c (redc): Make global under WANT_REDC_GLOBAL.
	* tune/powm_mod.c, tune/powm_redc.c: New files.
	* tune/Makefile.am (libspeed_la_SOURCES): Add them.
	* tune/*: Add measuring of redc, mpz_mod, mpz_powm_mod, mpz_powm_redc.

	* tune/tuneup.c (POWM_THRESHOLD): Determine from redc and mpz_mod.
	* tune/Makefile.am (TUNE_MPZ_SRCS): Remove powm.

2000-11-10  Torbjorn Granlund  <tege@swox.com>

	* mpn/mips3/gmp-mparam.h: Retune.

	* configure.in (os_64bit): Rename to check_64bit_compiler.

2000-11-09  Torbjorn Granlund  <tege@swox.com>

	* configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Choose hppa/hppa2 code
	depending on $CC64.

2000-11-09  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium/mul_1.asm: Unroll 2x, saving 1 c/l when in L1.
	Add 1c entrypoint.
	* mpn/x86/pentium/aorsmul_1.asm: Add 1c entrypoints, shave a couple
	of cycles at entry and exit.

	* configure.in (power1,2,2sc): Support these as synonyms for plain
	power.

	* acinclude.m4 (GMP_ASM_X86_SHLDL_CL): GMP_DEFINE WANT_SHLDL_CL here.
	(GMP_ASM_X86_MMX, GMP_ASM_X86_SHLDL_CL): Add X86 into the names.
	* configure.in: Consequent changes.

	* gmp.texi (Notes for Particular Systems): Remarks about power/powerpc.
	(Reentrancy): Remarks about simultaneous writing.
	(Reporting Bugs): Ask for configfsf.guess.

2000-11-08  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_FUNC_ALLOCA): New macro.
	* configure.in: Use it.
	* gmp-impl.h (alloca): Conditionals and setups as per autoconf
	(should make alloca available on more non-gcc compilers).

	* acinclude.m4: Misc reformatting, simplify some quoting.
	(GMP_ASM_UNDERSCORE, GMP_ASM_X86_MCOUNT): Use $CC $CFLAGS $CPPFLAGS.
	(GMP_ASM_UNDERSCORE, GMP_ASM_ALIGN_FILL_0x90, GMP_ASM_RODATA): Put
	AC_REQUIREs outside AC_CACHE_CHECK.
	(GMP_C_SIZES): Use $srcdir/gmp.h, not -I; use $CPPFLAGS.
	(GMP_ASM_UNDERSCORE): Use "gmp_compile" variable, and only rm
	conftes1* conftes2*.
	(GMP_PROG_NM): New macro, require it in appropriate GMP_ASM_*.
	(GMP_TRY_ASSEMBLE): New macro, use it in various GMP_ASM_*.
	* configure.in: Use GMP_PROG_NM.

	* mpn/tests/spinner.c (spinner_signal): Use RETSIGTYPE.
	(spinner_init): Force output to unbuffered.

	* mpn/x86/README.family: Notes about GOT table and imul, misc updates.
	* mpn/x86/k7/diveby3.asm: Change to 3 operands for immediate imul.
	* mpn/x86/k6/diveby3.asm: Ditto.

2000-11-06  Torbjorn Granlund  <tege@swox.com>

	* urandom.h: Simplify and make it work properly for 64-bit
	machines also in environments without `random'.

2000-11-04  Torbjorn Granlund  <tege@swox.com>

	* configure.in [path switch]: Don't match rs6000-*-*, in
	particular don't assume POWER.

	* tune/tuneup.c (fft): Remove usleep calls.

	* config.guess: Don't pass "$@" when it is known to be empty.

	* Makefile.am (EXTRA_DIST): List configfsf.guess and configfsf.sub.

2000-11-04  Kevin Ryde  <kevin@swox.se>

	* configfsf.guess, configfsf.sub: Moved from config.guess and
	config.sub.
	* config.guess, config.sub: New files, wrappers around around
	configfsf versions.
	* configfsf.guess: Update to FSF 2000-10-23.
	* configfsf.sub: Update to FSF 2000-10-25.

	* acinclude.m4 (GMP_ASM_POWERPC_R_REGISTERS): New macro.
	* mpn/powerpc32/powerpc-defs.m4: New file, regmap.m4 r0 etc macros
	conditionalized by GMP_ASM_POWERPC_R_REGISTERS.
	* mpn/powerpc32/regmap.m4: Remove file.
	* configure.in (powerpc*-*-*): Use all this.

	* mpz/divegcd.c: New file, providing mpz_divexact_gcd.
	* Makefile.am, mpz/Makefile.am: Add it.
	* gmp-impl.h (mpz_divexact_gcd): Add prototype.
	* mpq/aors.c,canonicalize.c,div.c,mul.c: Use it.

	* longlong.h [pentium] (count_leading_zeros): New macro.
	(__clz_tab): Always provide prototype.
	* acconfig.h (HAVE_TARGET_CPU_): Add x86s.

	* tune/speed.[ch],common.c (count_leading_zeros,
	count_trailing_zeros, __udiv_qrnnd_c): Add measuring.

	* configure.in (X86_PATTERN): Move from here ...
	* acinclude.m4 (X86_PATTERN): ... to here.
	(GMP_ASM_RODATA): Use it.

	* configure.in (srandom): New test.
	* mpn/tests/try.c: Use it.
	* tune/speed.c: Ditto, and conditionalize getrusage and headers.

2000-11-02  Kevin Ryde  <kevin@swox.se>

	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add udiv_qrnnd.c
	and udiv_w_sdiv.c.

	* mpn/generic/mul_n.c (mpn_kara_sqr_n): Remove a duplicate
	subtract at the evaluate stage.

2000-11-01  Torbjorn Granlund  <tege@swox.com>

	* configure.in [compiler switch] (sparc64-*-linux*): Spell
	gmp_xoptcflags_gcc properly, and pass same options as for other
	sparcv9 configs.

	* tune/speed.h (SPEED_ROUTINE_MPN_GET_STR): Fix type of wsize.

2000-10-31  Torbjorn Granlund  <tege@swox.com>

	* configure.in [compiler switch] (sparc64-*-linux*): Remove -mvis
	from gmp_xoptflags_gcc, this might not be an ultrasparc.
	Remove -m32 from gmp_cflags_gcc; add -Wa,-xarch=v8plus.

2000-10-29  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/lorrshift.asm: New file.

	* configure.in: New mulfunc `lorrshift' for lshift and rshift.

2000-10-29  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/mul_n.c (mpn_kara_sqr_n): Delete code performing
	superfluous mpn_sub_n calls.

	* configure.in (found_asm, M4): Account for SPEED_CYCLECOUNTER_OBJ,
	for the benefit of targets whose only .asm is a cycle counter.

	* tune/tuneup.c (fft): Remove bogus usleep calls.

2000-10-28  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/invert_limb.asm: Get return value for 0x800...00 right.

	* tune/Makefile.am (EXTRA_DIST): Add ia64.asm.

	* tune/ia64.asm: Fix typo.

	* add_n.asm addmul_1.asm mul_1.asm popcount.asm sub_n.asm:
	Preserve ar.lc as required by ABI.
	* longlong.h (ia64 udiv_qrnnd): New.

	* configure.in [path switch] (ia64*-*-*): Set extra_functions.
	* mpn/ia64/invert_limb.asm: New file.

2000-10-27  Torbjorn Granlund  <tege@swox.com>

	* configure.in [compiler switch]:
	Get rid of c89 for all hppa flavours--it is an evil compiler!

	* tune/speed.h (SPEED_ROUTINE_MPN_SET_STR): Fix type of xp.
	(SPEED_ROUTINE_MPN_GET_STR): Fix type of wp.

2000-10-27  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Fibonacci Number Algorithm): New section.

	* mpz/tests/t-fib_ui.c: New file.
	* mpz/tests/Makefile.am (check_PROGRAMS): Add it.

	* mpz/fib_ui.c: Rewrite, same formulas but using mpn functions and
	some lookup tables, much faster at small to moderate sizes.
	* gmp-impl.h (MPZ_FIB_SIZE): New macro.
	(FIB_THRESHOLD): Establish default here.
	* tune/tuneup.c (FIB_THRESHOLD): Start search after the new table
	data.

	* mpn/x86/x86-defs.m4 (mcount_movl_GOT_ebx): Rename from movl_GOT_ebx,
	and don't use GSYM_PREFIX with _GLOBAL_OFFSET_TABLE_.

	* tune/freq.c (speed_cpu_frequency_measure): New test comparing
	gettimeofday and speed_cyclecounter, should cover many systems.

2000-10-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/gmp-mparam.h: Retune.

2000-10-26  Torbjorn Granlund  <tege@swox.com>

	* longlong.h (ia64): Set UMUL_TIME and UDIV_TIME.

	* mpn/ia64/submul_1.c: Fix typo.

2000-10-25  Kevin Ryde  <kevin@swox.se>

	* tune/freq.c (speed_cpu_frequency_sysctl): New test, supporting
	hw.model for BSD flavours.
	* configure.in (sysctl, sys/param.h): New tests.

2000-10-24  Torbjorn Granlund  <tege@swox.com>

	* tune/freq.c: Explicitly #include config.h before other include files.

	* mpz/tests/reuse.c (FAIL2): New #define.
	(main): Use FAIL2.  Now this test properly returns non-zero exit
	status when it fails.

	* mpn/powerpc32/gmp-mparam.h: Retune.
	* mpn/powerpc64/gmp-mparam.h: Retune.

2000-10-24  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/k6/cross.pl: Support 8 and 16 byte code alignment.

	* mpq/aors.c, mpq/canonicalize.c: Skip two mpz_divexact calls if
	gcd gives 1, which should be 60% of the time.
	* gmp-impl.h (MPZ_EQUAL_1_P): New macro.
	* mpq/mul.c, mpq/div.c: Use it, and a new DIV_OR_SET.

	* tune/tuneup.c (xp_block, yp_block): Initialize these with random
	data.  Fixes GCD_ACCEL and GCDEXT thresholds, and latest POWM.

2000-10-23  Torbjorn Granlund  <tege@swox.com>

	* configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Add ia64 case.

	* mpn/ia64/gmp-mparam.h: Fill in some parameters.

	* mpn/ia64/submul_1.c: New file.

	* tune/ia64.asm: New file.

	* gmp-impl.h (union ieee_double_extract): Handle ia64.

	* mpn/mp_bases.c: Decrease chars_per_bit_exactly for entry 1 to
	work around buggy ia64-linux.

	* longlong.h (ia64 umul_ppmm): Update register flags to match new GCC.

2000-10-22  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/gmp-mparam.h (DC_THRESHOLD): Update.
	* mpn/alpha/ev6/submul_1.asm: New file.

2000-10-22  Kevin Ryde  <kevin@swox.se>

	* tune/gcd_bin.c: New file.
	* tune/gcd_finda_gen.c: New file.
	* tune/Makefile.am (libspeed_la_SOURCES): Add them.
	* tune/speed.[ch],common.c (mpn_gcd_binary, find_a): Add measuring.

	* * (__gmp_allocate_func etc): Rename from _mp_allocate_func etc.
	(__gmp_default_allocate etc): Rename from _mp_default_allocate etc.
	* gmp-impl.h (__GMP_REALLOCATE_FUNC_TYPE,
	__GMP_REALLOCATE_FUNC_LIMBS): New macros.

	* gmp-impl.h (DC_THRESHOLD): Establish default here, set to 3*KARA
	since that's the measured average.
	* mpn/generic/dc_divrem_n.c, mpn/generic/tdiv_qr.c (DC_THRESHOLD):
	Remove default.

2000-10-21  Torbjorn Granlund  <tege@swox.com>

	* mpn/Makefile.am (TARG_DIST): Add ia64.

2000-10-21  Kevin Ryde  <kevin@swox.se>

	* *: Change BZ -> DC.
	* mpn/generic/dc_divrem_n.c: Renamed from bz_divrem_n.c.

	* doc/multiplication: Remove file, now in the manual.
	* doc/assembly_code: Ditto.
	* tune/README: Remove some parts now in the manual.

	* gmp.texi (@m etc): Add and use some new macros.
	(Integer Division - mpz_[cft]div_*): Merge descriptions, for brevity
	and to emphasise similarities.
	(Low-Level Functions - mpn_[lr]shift): Specify count as 1 to
	mp_bits_per_limb-1.
	(Algorithms): New chapter.
	(References): Add some papers.

	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove some
	unused variables.
	* mpn/generic/mul_fft.c (mpn_fft_best_k): Ditto.

	* tune/freq.c: New file, split from time.c.
	* tune/time.c: Rewrite, now more automated.
	* configure.in, tune/*: Consequent changes.

2000-10-20  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/default.m4: New file.
	* configure.in [config.m4 switch] (ia64*-*-*): Use ia64/default.m4.

	* mpn/ia64/mul_1.asm: New file.
	* mpn/ia64/addmul_1.asm: New file.
	* mpn/ia64/add_n.asm: New file.
	* mpn/ia64/sub_n.asm: New file.
	* mpn/ia64/popcount.asm: New file.
	* mpn/ia64/README: New file.

	* mpn/alpha/cntlz.asm: Override `.set noat' from ASM_START.

	* configure.in (HAVE_TARGET_CPU_*): Support hppa1.0, hppa1.1, hppa2.0
	by sed'ing the period into `_'.

	* acconfig.h: Add #undefs for hppa targets.

	* longlong.h (udiv_qrnnd): Fix typo in last change.

	* mpz/tstbit.c: Rewrite (partly to work around GCC 2.95.2 HPPA bug).

	* configure.in [path switch]:
	(hppa2.0*-*-*): For non-CC64 case, update path.

	* configure.in [compiler switch]:
	(hppa2.0w-*-*): Match with same regexp in both places.
	(hppa*-*-*): New case.
	(all hppa alternatives): Don't inherit default gmp_cflags_cc,
	gmp_cflags_c89.

2000-10-18  Torbjorn Granlund  <tege@swox.com>

	* configure.in (alpha*-*-*): Define gmp_xoptcflags_gcc like for
	alpha*-*-osf*.

	* longlong.h (x86 udiv_qrnnd): Change `d' => `dx' to avoid K&R C
	stringification.

2000-10-15  Kevin Ryde  <kevin@swox.se>

	* doc/configuration: Updates.

	* demos/calc.y: Remove some comments.

2000-10-14  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Parameter Conventions, Memory Management): New sections
	split from "Variable Conventions".
	(Efficiency, Debugging, Profiling): New sections in "GMP Basics".
	(Reentrancy): Some rewording, add note on standard I/O.
	(Build options): Add --enable-assert and --enable-profiling.

	* configure.in (--enable-profiling): New option.
	* acinclude.m4 (GMP_ASM_X86_MCOUNT): New macro, finding how to profile.
	* mpn/x86/x86-defs.m4 (PROLOGUE_cpu, call_mcount): Profiling support.

	* acinclude.m4, configure.in (GMP_ASM_*): Rename from GMP_CHECK_ASM_*,
	to follow autoconf conventions.

	* configure.in: Run GMP_CHECK_ASM tests only if needed.
	* acinclude.m4 (GMP_CHECK_ASM_MMX): Don't use GMP_CHECK_ASM_TEXT.

	* mpn/x86/x86-defs.m4 (ASSERT): Allow no condition, to just emit code.

2000-10-13  Kevin Ryde  <kevin@swox.se>

	* mpq/md_2exp.c: New file.
	* mpq/Makefile.am (libmpq_la_SOURCES): Add it.
	* Makefile.am (MPQ_OBJECTS): Ditto.
	* gmp.h (mpq_mul_2exp, mpq_div_2exp): Add prototypes.
	* gmp.texi (Rational Arithmetic): Add documentation.

	* mpq/tests/t-md_2exp.c: New file.
	* mpq/tests/Makefile.am (check_PROGRAMS): Add it.

	* mpn/generic/perfsqr.c: Add/amend some comments.

	* gmp.texi (Known Build Problems): Note VERSION problem with old
	sed, do some minor rewording.
	(Build Options): Add cygwin and djgpp URLs, mention INSTALL.autoconf,
	mention HTML.
	(Getting the Latest Version of GMP): Move this ...
	(Introduction to GMP): ... to here.
	(Compatibility with older versions): Just refer to 2.x and 3.x, not
	every minor version.
	(Initializing Integers): Note restrictions on mpz_array_init'ed
	variables.
	(Integer Logic and Bit Fiddling): Note bits are numbered from 0.

	* INSTALL.autoconf: New file.
	* Makefile.am (EXTRA_DIST): Add it.

	* tune/Makefile.am, tune/tuneup.c, configure.in, gmp-impl.h: New
	scheme for recompiled objects used by tune program.  Don't use
	libgmptune.a, make better use of libtool, work with ansi2knr.

	* tune/speed.h,common.c (SPEED_ROUTINE_MPZ_POWM): Use s->yp and
	s->xp_block, make exponent a fixed size.

2000-10-07  Torbjorn Granlund  <tege@swox.com>

	* mpn/mips3/gmp-mparam.h: Retune.

	* mpn/generic/mul_n.c (USE_MORE_MPN): Revert last change.

2000-10-06  Torbjorn Granlund  <tege@swox.com>

	* mpn/mips3/add_n.s: Decrease carry recurrence from 4 to 3 cycles.
	* mpn/mips3/sub_n.s: Likewise.

2000-10-04  Torbjorn Granlund  <tege@swox.com>

	* configure.in (sparc64-*-linux*): Set path according to CC64.

2000-10-04  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): Use LABEL_SUFFIX, not a
	hard-coded ":".

	* config.sub: Don't demand "86" in CPU name for SCO.

	* configure.in (supersparc-*-*): Remove -DSUPERSPARC.
	* longlong.h: Use HAVE_TARGET_CPU_supersparc.

	* configure.in (HAVE_TARGET_CPU_*): AC_DEFINE from $target_cpu.
	* acconfig.h: Add #undefs, but only for targets of interest.

2000-10-03  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/cntlz.asm: Rewrite.

	* mp_clz_tab.c (__clz_tab): Half table size to 128 entires.
	* longlong.h (count_leading_zeros): Demand just 128 entries from
	__clz_tab.

	* configure.in (mips-sgi-irix6.*): Pass -mips3 in addition to options
	for n32 ABI.

	* longlong.h: Move NO_ASM test around all assembly code.
	From gcc:
	* longlong.h (count_leading_zeros): Sparclite scan instruction was
	being invoked incorrectly.
	Replace __mc68332__ with __mcpu32__.
	Add ARC support.

2000-10-02  Torbjorn Granlund  <tege@swox.com>

	* mpn/mips3/gmp-mparam.h: Retune for both gcc and cc.

	* mpn/generic/mul_n.c (USE_MORE_MPN): Remove exception for __mips.
	(interpolate3): Cast mp_limb_t variables to mp_limb_signed_t
	when testing sign bit.

	* mpn/alpha/ev6/gmp-mparam.h: Retune.
	* mpn/powerpc32/gmp-mparam.h: Retune.
	* mpn/powerpc64/gmp-mparam.h: Retune.
	* mpn/x86/pentium/gmp-mparam.h: Retune.
	* mpn/x86/pentium/mmx/gmp-mparam.h: Retune.
	* mpn/sparc32/v9/gmp-mparam.h: Retune.
	* mpn/x86/k6/gmp-mparam.h: Retune.
	* mpn/x86/p6/gmp-mparam.h: Retune.
	* mpn/x86/k7/gmp-mparam.h: Retune.
	* mpn/sparc64/gmp-mparam.h: Retune.

	* mpn/m68k/gmp-mparam.h: New file.
	* mpn/alpha/ev5/gmp-mparam.h: New file.

	* gmp-impl.h (default MPN_COPY): Remove final `;'.

	* tune/time.c (speed_endtime): Rewrite.

	* tune/speed.h (SPEED_ROUTINE_MPZ_POWM): Set base to a large value,
	not 2.

	* demos/pexpr.c (setup_error_handler): Fix typo.

	* mpz/powm.c (redc): New function, based on old mpz_redc.  Don't
	multiply here.
	(mpz_redc): Remove.
	(mpz_powm): Major changes, partially reverting to mpn calls.
	Multiply before calling redc.
	(mpz_powm): Use TMP_ allocation.
	(mpz_powm): Refine calculation of k (width of exponent window).
	(mpz_powm): Cast constants to mp_limb_t before left shifting.

	* longlong.h: Use ia64 count_leading_zeros just when __GNUC__.

2000-09-29  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_C_SIZES): New macro.
	* configure.in: Use it.
	* acconfig.in (BYTES_PER_MP_LIMB etc): Add #undefs.
	* mpn/generic/gmp-mparam.h (BYTES_PER_MP_LIMB etc): Remove #defines.
	* gmp.texi (Known Build Problems): Remove 64-bit generic C
	gmp-mparam.h problem, now fixed.

	* configure.in: Only run GMP_PROG_M4 if it's actually needed.

2000-09-27  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c: Clean up code for systems not supporting
	sigaltstack.  Handle old Linux without sigaltstack.  Properly
	disable all stuff related to sigaltstack under Unicos.

	* mpn/alpha/ev6/addmul_1.asm: Use explicit offset for all load and
	store insns.  Helps old gas.

	* longlong.h (count_leading_zeros): Define for ia64.

2000-09-27  Paul Zimmermann  <Paul.Zimmermann@loria.fr>

	* mpn/generic/bz_divrem_n.c: Fix qhl handling, simplify.

2000-09-27  Kevin Ryde  <kevin@swox.se>

	* mpn/Makefile.in (.SUFFIXES): Regenerate with patched automake to
	get .s before .c, which is needed to override ansi2knr .c rules.

	* gmp.texi (mpn_sqrtrem): Fix r2p==NULL return value description
	to match the code (change by Torbjorn).
	(mpn_gcd, mpn_gcdext, mpn_sqrtrem, mpn_tdiv_qr): Note most
	significant limbs must be non-zero.
	(mpn_gcd, mpn_gcdext, mpn_sqrtrem): Clarify destination size
	requirements.
	(mpn_gcd_1): Clarify value must be non-zero, not just size.

	* gmp-impl.h (mpn_zero_p): New inline function.
	* mpn/generic/inlines.c: Add gmp-impl.h.
	* mpf/integer.c, mpz/get_d.c, mpn/generic/mul_fft.c: Use it.

	* mpn/generic/gcd.c: Use MPN_COPY_INCR not MPN_COPY.
	* mpf/add_ui.c: Ditto.
	* mpf/add.c: Ditto, and fix test to skip copy.

2000-09-26  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h, longlong.h, mpn/generic/*.c: Add ASSERTs for various
	parameter restrictions.

	* gmp-impl.h (UDIV_PREINV_TIME): New macro.
	* mpn/generic/sb_divrem_mn.c: Use it.
	* mpn/generic/perfsqr.c: Ditto.
	* mpn/x86/*/gmp-mparam.h (UDIV_PREINV_TIME): Add values.

	* macos/Makefile.in: Add mpz/tests/t-get_si.c, mpf/tests/t-set_f.c,
	and new multi-function mpz and mpq files.

2000-09-25  Kevin Ryde  <kevin@swox.se>

	* randlc.c, randlc2x.c, randsd.c, mpz/urandomb.c, mpz/urandomm.c:
	Use mpz_ptr and mpz_srcptr for parameters.
	* gmp.h (gmp_randinit_lc, gmp_randinit_lc_2exp, gmp_randseed,
	mpz_urandomb, mpz_urandomm): Corresponding change to prototypes.
	* randsdui.c: Remove wrong K&R parameters part.

2000-09-12  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (mpn_tdiv_qr): Move prototype from here ...
	* gmp.h (mpn_tdiv_qr): ... to here.

	* gmp.texi (Miscellaneous Rational Functions): Comment-out and
	move version 1 compatibility note to "Compatibility" section.
	(Rational Number Functions): Ditto for canonicalization note.

2000-09-10  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium/com_n.asm: New file.

	* gmp.texi (Rational Arithmetic): Add mpq_abs.
	(Miscellaneous Rational Functions): Merge and simplify descriptions of
	mpq_get_num, mpq_get_den, mpq_set_num, mpq_set_den.

	* mpq/abs.c: New file.
	* mpq/Makefile.am (libmpq_la_SOURCES): Add it.
	* Makefile.am (MPQ_OBJECTS): Add it.
	* gmp.h (mpq_abs): Add prototype.

	* mpq/set_den.c: Don't discard sign when copying, this makes the
	code match the manual.

2000-09-07  Torbjorn Granlund  <tege@swox.com>

	* tune/alpha.asm: Rewrite to actually work right.

2000-09-07  Kevin Ryde  <kevin@swox.se>

	* tune/common.c,speed.[ch]: Add measuring of mpn_sqrtrem,
	mpn_get_str, mpn_set_str.
	* tune/README: Various updates.

2000-09-06  Torbjorn Granlund  <tege@swox.com>

	* mpz/fits.c: Correct type of `data'.

2000-09-06  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Build Options): Clarify where to find CFLAGS.
	(Known Build Problems): Note SCO -lc problem.

	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Fix for sizes > 512 limbs.

	* doc/multiplication: Corrections and additions suggested by Paul.

	* tune/modlinv.c: New file with alternate modlimb_inverts.
	* tune/Makefile.am, tune/speed.[ch]: Add measuring of them.
	* tune/speed.c (FLAG_NODATA): New attribute, use for mpz_bin_uiui,
	mpz_fib_ui, mpz_fac_ui.

	* mpn/x86/t-zdisp.sh: New file.

	* tests/t-modlinv.c: New file.
	* tests/Makefile.am (check_PROGRAMS): Add it.

	* mpq/tests/t-set_f.c: New file.
	* mpq/tests/Makefile.am (check_PROGRAMS): Add it.

	* gmp-impl.h (MPQ_CHECK_FORMAT): New macro.
	* mpq/tests/t-get_d.c: Use it.

	* mpq/set_f.c: New file.
	* mpq/Makefile.am (libmpq_la_SOURCES): Add it.
	* Makefile.am (MPQ_OBJECTS): Ditto.
	* gmp.h: Add prototype.
	* gmp.texi (Miscellaneous Rational Functions): Document mpq_set_f,
	correct return type of mpq_set_d.

2000-09-03  Kevin Ryde  <kevin@swox.se>

	* mpz/aors_ui.c: New file merging add_ui.c and sub_ui.c, no object
	code changes.
	* mpz/add_ui.c, mpz/sub_ui.c: Remove files.
	* mpz/Makefile.am: Update.

	* gmp-impl.h (MPZ_FITS_STYPE_SDT, MPZ_FITS_UTYPE_SDT): New macros.
	* mpz/fits.c: New file merging six separate fits*.c.
	* mpz/fits_sshort_p.c, fits_sint_p.c, fits_slong_p.c, fits_ushort_p.c,
	fits_uint_p.c, fits_ulong_p.c: Remove files
	* mpz/Makefile.am: Use new fits.c, change object names from
	fits_*_p.lo to fits_*.lo to avoid SunOS 4 native "ar" warnings.
	* Makefile.am (MPZ_OBJECTS): Change from fits_*_p.lo to fits_*.lo.

	* acinclude.m4 (GMP_CHECK_ASM_RODATA): New macro, defining RODATA.
	* configure.in: Use it.
	* mpn/x86/k[67]/mmx/popham.asm: Use it.

	* mpn/x86/*/*.asm: Use "TEXT" not ".text".

2000-09-02  Kevin Ryde  <kevin@swox.se>

	* mpq/aors.c: New file merging add.c and sub.c, no object code changes.
	* mpq/add.c, mpq/sub.c: Remove files.
	* mpq/Makefile.am: Update.

	* mpz/aors.c: New file merging add.c and sub.c, no object code changes.
	* mpz/add.c, mpz/sub.c: Remove files.
	* mpz/Makefile.am, mpbsd/Makefile.am: Update.

	* configure.in: Re-apply "PROLOGUE.*" regexp change for the
	benefit of alpha PROLOGUE_GP, lost in path search reorganisation.

	* mpn/x86/x86-defs.m4 (jadcl0, cmov_simulate, ASSERT,
	movl_text_address): Don't use "1:" style labels.
	(Zdisp): Rearrange a bit, switch to all hex.
	* mpn/x86/README.family: Note SCO "as" doesn't support "1:" style
	local labels, misc rewordings.

2000-08-29  Torbjorn Granlund  <tege@swox.com>

	* demos/primes.c: Include string.h.

	* config.guess (x86 variant recog code): Remove dummy*.o files
	generated by some compilers.

2000-08-28  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_CHECK_ASM_ALIGN_FILL_0x90): Fix Solaris 2.8
	warning message suppression, add notes about SCO.

	* Makefile.am (MPZ_OBJECTS etc): Move some comments.

2000-08-25  Kevin Ryde  <kevin@swox.se>

	* mpz/pprime_p.c (mpz_millerrabin): Fix a TMP_FREE.

	* gmp.texi (Copying): Refer to Lesser not Library GPL.
	(GMP and Reentrancy): Note stack-alloc.c is not reentrant, and
	that SCO <ctype.h> is potentially not reentrant.

	* acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): Test by attempting to
	link with or without an underscore.
	* gmp.texi (Known Build Problems): Remove SunOS 4 native grep
	GSYM_PREFIX problem, now fixed.

	* gmp-impl.h (MODLIMB_INVERSE_3): New constant.
	* mpn/generic/diveby3.c: Use it instead of own INVERSE_3.
	* mpn/generic/mul_n.c: Ditto.
	* tests/t-constants.c: Check it, and PP_INVERTED too.

	* acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO): New macro.
	* configure.in [p6 and athlon] (gmp_optcflags_gcc): Use it to
	possibly add -march=pentiumpro.

	* gmp-impl.h (MPZ_SET_STR_OR_ABORT, MPF_SET_STR_OR_ABORT): New macros.
	* mpz/tests/t-bin.c, mpz/tests/t-get_si.c, mpz/tests/t-jac.c,
	mpz/tests/t-misc.c: Use them.
	* mpf/tests/t-conv.c, mpf/tests/t-misc.c: Ditto.
	* mpz/tests/convert.c: Ditto and amend diagnostics slightly.
	* mpz/tests/t-misc.c (check_mpz_set_si): Remove a superfluous init.
	* mpz/tests/io.c: Differentiate between I/O and data conversion errors.

	* mpn/generic/aors_n.c: New file merging add_n and sub_n, no
	object code changes.
	* mpn/generic/add_n.c: Remove file.
	* mpn/generic/sub_n.c: Remove file.

	* mpn/generic/aorsmul_1.c: New file merging addmul_1 and submul_1,
	no object code changes.
	* mpn/generic/addmul_1.c: Remove file.
	* mpn/generic/submul_1.c: Remove file.

	* mpn/generic/popham.c: New file merging popcount and hamdist, no
	object code changes.
	* mpn/generic/popcount.c: Remove file.
	* mpn/generic/hamdist.c: Remove file.

2000-08-24  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (mpn_com_n): Fix typo.

2000-08-23  Torbjorn Granlund  <tege@swox.com>

	* demos/primes.c (main): Don't call mpz_probab_prime_p for numbers
	that are known to be prime after sieving.
	(main): Declare and initialize max_s_prime_squared.
	(MAX_S_PRIME): Increase.
	(ST_SIZE): Increase.

2000-08-23  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (ASSERT_ALWAYS): Change to statement style.
	(JACOBI_TWO_U_BIT1): Remove ASSERT.
	(MPZ_CHECK_FORMAT): Use ASSERT_ALWAYS as a statement.

2000-08-21  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (ASSERT): Use do..while for dummy version.

	* mpf/get_str.c: Don't set n_digits from digits_computed_so_far
	when the converted operand becomes zero.  Misc cleanups.

2000-08-21  Kevin Ryde  <kevin@swox.se>

	* mpz/fdiv_r_2exp.c, mpz/lcm.c, mpz/urandomm.c: Add missing
	TMP_MARK/FREE, avoiding memory leak when using stack-alloc.c.

2000-08-20  Kevin Ryde  <kevin@swox.se>

	* mpz/set.c [BERKELEY_MP] (move): Add conditionals to build as
	"move" for libmp.
	* mpbsd/Makefile.am: Use mpz/set.c, not move.c.
	* Makefile.am (MPBSD_OBJECTS): Corresponding change.
	* mpbsd/move.c: Remove file.

	* mpn/Makefile.am, mpz/Makefile.am, mpq/Makefile.am, mpf/Makefile.am,
	mpbsd/Makefile.am (-DOPERATION_foo): Use "foo" even for ansi2knr
	"foo_" objects.  Do this with the makefiles to keep the sources
	cleaner.
	* mpz/mul_siui.c, mpf/integer.c: Revert to plain OPERATION_* forms.

	* mpn/lisp/gmpasm-mode.el (gmpasm-remove-from-list): Renamed from
	gmpasm-delete-from-list, because it's non-destructive.
	(gmpasm-font-lock-keywords): Add some more keywords.

2000-08-16  Kevin Ryde  <kevin@swox.se>

	* tune/mul_n_mpn.c, tune/mul_n_open.c: New files, being forced
	open-coded and mpn #includes of mpn/generic/mul_n.c.
	* tune/*: Add measuring of them.
	* tune/speed.c: Print command line into *.gnuplot file.

	* mpn/generic/mul_n.c (USE_MORE_MPN): Change to #if not #ifdef for
	using the value, add #ifndef for providing the default.
	* mpn/sparc64/gmp-mparam.h (USE_MORE_MPN): Add #ifndef.

	* tests/t-constants.c: New file.
	* tests/Makefile.am (check_PROGRAMS): Add it.

	* mpz/get_si.c: Use LONG_MAX, not BITS_PER_MP_LIMB, so the result
	doesn't depend on limb size when outside the range of a long
	(though such results are not actually documented).
	* mpz/tests/t-get_si.c: New file.
	* mpz/tests/Makefile.am (check_PROGRAMS): Add it.

	* mpn/tests/try.c (call): Cast popcount and hamdist calls,
	for the benefit of long long limb.

2000-08-15  Kevin Ryde  <kevin@swox.se>

	* mp.h (mp_set_memory_functions): Add missing #define.
	* mpbsd/tests/allfuns.c (mp_set_memory_functions): Verify its
	existence.

	* mpf/tests/t-misc.c (check_mpf_getset_prec): New test, verifying
	reverted behaviour of mpf_get_prec.

	* mpn/tests/ref.c (refmpn_strip_twos): Use refmpn_copyi, not
	MPN_COPY_INCR.

	* mpz/mul_siui.c, mpf/integer.c: Recognise OPERATION_*_ forms
	produced under ansi2knr.

	* configure.in (mpn_objects, mpn_objs_in_libgmp): Add $U to .c
	objects when ansi2knr in use.

	* mpn/Makefile.am (AUTOMAKE_OPTIONS): Enable ansi2knr.
	(libdummy.la): Add this, not built, to create ansi2knr style rules
	for all potential .c files.
	* mpz/Makefile.am, mpq/Makefile.am, mpf/Makefile.am, mpfr/Makefile.am,
	mpbsd/Makefile.am, mpq/tests/Makefile.am, tests/Makefile.am
	(AUTOMAKE_OPTIONS): Enable ansi2knr (now everywhere).
	* Makefile.am (MPZ_OBJECTS, MPQ_OBJECTS, MPF_OBJECTS, MPFR_OBJECTS,
	MPBSD_OBJECTS, libmp_la_DEPENDENCIES): Add $U to all .lo filenames.

2000-08-03  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/addmul_1.asm: Correct number of cycles to 3.5/28.

2000-08-02  Torbjorn Granlund  <tege@swox.com>

	* Version 3.1 released.

	* gmp.texi: Rephrase mpf_urandomb documentation.

	* mpn/alpha/ev6: New directory with ev6/21264 optimized code.
	* mpn/alpha/ev6/addmul_1.asm: New file.
	* mpn/alpha/ev6/gmp-mparam.h: New file.

2000-08-02  Kevin Ryde  <kevin@swox.se>

	* demos/factorize.c (random): Don't use "inline".

	* mpfr/log.c, mpfr/mul_ui.c, mpfr/round.c, mpfr/set.c, mpfr/set_d.c:
	Corrections to K&R parts.

	* Makefile.am (EXTRA_HEADERS): Omit $(MPFR_HEADERS_OPTION).
	* mpfr/Makefile.am (EXTRA_DIST): Add mpfr.h.

	* gmp.texi (Known Build Problems): Note problem stripping libgmp.a.

2000-08-02  Kent Boortz  <kent@swox.com>

	* mpfr: Integrated experimental version of mpfr-0.4.
	* configure.in: Changes for option --enable-mpfr.
	* Makefile.am: Changes for option --enable-mpfr.

2000-08-01  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/popcount.c: Disable SPARC v9 popc_limb pattern.
	* mpn/generic/hamdist.c: Likewise.

2000-08-01  Kevin Ryde  <kevin@swox.se>

	* mpn/tests/try.c (try_init): Account for ALIGNMENTS when sizing
	source and dest regions.

2000-07-31  Torbjorn Granlund  <tege@swox.com>

	* mpf/get_str.c: Develop three extra digits, not just one.

2000-07-31  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (References): Add URL for invariant division.

2000-07-30  Kevin Ryde  <kevin@swox.se>

	* tune/time.c (speed_cpu_frequency_proc_cpuinfo): Add support for
	alpha linux "cycle frequency".

	* mpn/sparc64/gmp-mparam.h: Re-run tune program for FFT thresholds.

2000-07-29  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (ABI and ISA): Add sparc64-*-linux*.
	* configure.in [sparc64-*-linux*] (gmp_cflags64_gcc): Same flags
	as under solaris.

	* configure.in (--enable-fft): New option, default "no".
	* gmp.texi (Build Options): Describe it.
	* mpn/generic/mul.c, mpn/generic/mul_n.c [WANT_FFT]: Use it.
	* tune/tuneup.c [WANT_FFT]: By default don't probe FFTs if not enabled.
	* NEWS: Multiplication optionally using FFT.

	* tune/README: Notes on FFT and GCD thresholds, other minor updates.

	* Makefile.am: Expunge the macos generated files update stuff.

2000-07-28  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/*/gmp-mparam.h: Add some FFT thresholds.

2000-07-28  Kent Boortz  <kent@swox.se>

	* macos/Asm*, macos/CmnObj, macos/Mp*: Delete directories.
	* macos/Makefile: Delete file.
	* macos/Makefile.cw: Delete file.
	* macos/config.h: Delete file.
	* macos/Asm/*.s: Delete files.
	* macos/configure: Create target directories. Don't transform
	'(C)' to '(;)' in a 'dnl' line comment in .asm file.
	* Makefile.am: Delete macos targets.
	* macos/README: Reflect that we reverted back to a build
	process that require ""macos/configure" to run on MacOS.
	This imply that MacPerl is needed for a build in MacOS.

2000-07-27  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/mul_fft.c: New file, by Paul Zimmermann, minor mods
	applied.
	* configure.in (gmp_mpn_functions): Add it.
	* mpn/generic/mul.c, mpn/generic/mul_n.c: Use it.
	* doc/multiplication: Describe it (briefly).

	* gmp-impl.h (FFT_MUL_THRESHOLD etc): New thresholds.
	(mpn_fft_best_k, mpn_fft_next_size, mpn_mul_fft, mpn_mul_fft_full):
	New functions.
	(numberof, TMP_ALLOC_TYPE etc, _MP_ALLOCATE_FUNC_TYPE etc,
	UNSIGNED_TYPE_MAX etc): New macros.

	* tune/*: Add FFT threshold tuning and speed measuring.
	* tune/common.c: Avoid huge macro expansions for umul and udiv.

	* mpz/tests/t-bin.c, mpz/tests/t-jac.c, mpz/tests/t-misc.c,
	mpbsd/tests/t-misc.c, mpf/tests/t-misc.c, mpn/tests/try.c,
	mpn/tests/spinner.c: Use new gmp-impl.h macros.

	* demos/Makefile.am (BUILT_SOURCES): Don't need calc.c etc under this.

2000-07-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/ia64/gmp-mparam.h: New file.

2000-07-26  Torbjorn Granlund  <tege@swox.com>

	* demos/isprime.c: Handle any number of arguments and print
	classification for each.  Add `-q' option for old behaviour.

2000-07-26  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Build Options): Mention djgpp stack size.
	(Notes for Package Builds): New section.
	(Compatibility with older versions): Update for 3.1, add mpf_get_prec.

	* demos/factorize.c [__GLIBC__]: Don't declare random() under glibc.

	* gmp.h (gmp_version): Add prototype and define.

	* Makefile.am: Keep macos directory generated files up-to-date
	during development and on a "make dist".

2000-07-25  Torbjorn Granlund  <tege@swox.com>

	* mpn/hppa/gmp-mparam.h: Update threshold values from new `tune' run.

	* mpn/pa64/gmp-mparam.h: Fill in values from `make tune' run.
	* mpn/pa64w/gmp-mparam.h: Likewise.
	* mpn/mips3/gmp-mparam.h: Likewise.

	* tune/hppa2.asm: Fix typo in .level directive.

	* configure.in: Add sparc64-*-linux* support (from Jakub Jelinek).
	* configure: Regenerate.

	* mpn/sparc64/rshift.asm: Use %g5 instead of volatile stack frame area
	for return value (from Jakub Jelinek).
	* mpn/sparc64/lshift.asm: Likewise.

	* mpf/get_prc.c: Revert Aug 8, 1996 change.

	* version.c: No longer static.

	* mpn/pa64/gmp-mparam.h: Only #define *_THRESHOLD if not already
	defined.
	* mpn/pa64w/gmp-mparam.h: Likewise.
	* mpn/arm/gmp-mparam.h: Likewise.
	* mpn/mips3/gmp-mparam.h: Likewise.

2000-07-25  Kevin Ryde  <kevin@swox.se>

	* INSTALL: It's "info -f ./gmp.info" to be sure of hitting the
	gmp.info in the current directory.

	* Makefile.am (libmp_la_DEPENDENCIES): Add mpz/cmp.lo, for last
	mpz/powm.c fix.

	* mpn/sparc64/addmul1h.asm, mpn/sparc64/submul1h.asm: Renamed from
	addmul_1h.asm, submul_1h.asm to avoid name conflicts on an 8.3
	filesystem.
	* mpn/sparc64/addmul_1.asm, mpn/sparc64/submul_1.asm,
	mpn/sparc64/mul_1.asm: Update include_mpn()s.

2000-07-24  Torbjorn Granlund  <tege@swox.com>

	* Update header of all files previously under the Library GPL
	to instead be under the Lesser GPL.

	* COPYING.LIB: Now Lesser GPL.
	* demos/primes.c: Change license to GPL (was Library GPL).
	* demos/isprime.c: Change license to GPL (was Library GPL).

	* gmp.h (error code enum): Add GMP_ERROR_BAD_STRING (currently unused).

	* mpz/tests/t-mul.c: Default SIZE to a function of TOOM3_MUL_THRESHOLD.
	Improve error messages.  Decrease reps.

2000-07-22  Kevin Ryde  <kevin@swox.se>

	* tune/speed.h: Decrease the amount of data used for gcd and powm
	measuring, to make the tune go a bit faster.

2000-07-21  Kent Boortz  <kent@swox.se>

	* macos/Asm*, macos/CmnObj, macos/Mp*: Directories no longer created
	from configure script, now part of dist.
	* macos/Makefile
	* macos/Makefile.cw
	* macos/config.h
	* macos/Asm/*.s
	New files and directories that is the output from configure. This way
	no Perl installation is required to build on MacOS, just MPW.
	* macos/configure: Added prefix '__g' to exported assembler labels.
	Changed to handle new m4 syntax instead of the old cpp syntax in asm.
	* macos/Makefile.in: Corrected 'clean' target, added 'distclean'
	and 'maintainer_clean'. Added "mpn/mp_bases.c" to build.
	* macos/README: Reflect the new build process without configure.
	Corrected the file structure for Apple MPW installation.

2000-07-21  Torbjorn Granlund  <tege@swox.com>

	* mpf/tests/t-muldiv.c: Relax error limit.  Make precision depend
	on SIZE.  Misc changes.

	* configure: Regenerate.

2000-07-20  Kent Boortz  <kent@swox.com>

	* macos/Makefile.in: Removed hard coded targets, added special
	targets found in Makefile.am files.
	* macos/configure: Generate targets from top configure script and
	Makefile.am files. Made script runnable from Unix for testing.
	* macos/README: Notes about search paths for includes, contributed
	by Marco Bambini.
	* configure.in: Added comment about lines that the "macos/configure"
	script depend on.

2000-07-20  Torbjorn Granlund  <tege@swox.com>

	* mpz/powm.c (mpz_powm): After final mpz_redc call, subtract `mod'
	from result if it is greater than `mod'.

2000-07-19  Torbjorn Granlund  <tege@swox.com>

	* mpn/hppa/gmp-mparam.h: Fill in values from `make tune' run.
	* mpn/alpha/gmp-mparam.h: Likewise.
	* mpn/powerpc32/gmp-mparam.h: Likewise.

	* tune/hppa.asm: New file.
	* tune/hppa2.asm: New file.
	* configure.in (SPEED_CYCLECOUNTER_OBJS): Set for hppa2*-*-* and
	hppa*-*-*.
	* tune/Makefile.am (EXTRA_DIST): Add hppa.asm and hppa2.asm.

	* tune/speed.h (SPEED_ROUTINE_MPN_BZ_DIVREM_CALL): Declare `marker';
	invoke TMP_FREE.

	* mpn/hppa/hppa1_1/udiv_qrnnd.S: Use "%" instead of "'" for
	reloc/symbol delimiter.

2000-07-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/gmp-mparam.h: Update with output from tune utility.
	* mpn/powerpc64/copyi.asm: New file.
	* mpn/powerpc64/copyd.asm: New file.

2000-07-16  Kevin Ryde  <kevin@swox.se>

	* tune/*: Add measuring for umul_ppmm and udiv_qrnnd.

2000-07-14  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/k6/k62mmx: New directory.
	* configure.in (k6[23]*-*-*): Use it.
	* mpn/x86/k6/k62mmx/copyi.asm, mpn/x86/k6/k62mmx/copyd.asm: Move from
	mmx directory, improve code alignment a bit.
	* mpn/x86/k6/k62mmx/lshift.asm, mpn/x86/k6/k62mmx/rshift.asm: Ditto,
	and improve addressing modes for pre-CXT cores.
	* mpn/x86/x86-defs.m4 (Zdisp): Add an instruction.
	* mpn/x86/k6/mmx/lshift.asm, mpn/x86/k6/mmx/rshift.asm: New files,
	suiting plain K6.
	* mpn/x86/README, mpn/x86/k6/README: Updates.
	* mpn/x86/k6/mmx/*.asm: Update some comments.

	* mpn/tests/Makefile.am: Use $(MAKE) in .asm rules, not "m".
	* tune/Makefile.am: Use $(EXEEXT) and libtool --config objdir, for
	the benefit of djgpp.

	* */Makefile.in: Regenerate with patched automake that adds
	$(EXEEXT) to EXTRA_PROGRAMS.

	* mpn/tests/try.c: Add #ifdef to SIGBUS, for the benefit of djgpp.
	* config.guess: Recognise pc:*:*:* as an x86, for djgpp.

	* configure: Regenerate with patched autoconf to fix temp file
	".hdr" which is invalid on a DOS 8.3 filesystem, and to fix two
	sed substitutes that clobbered a ":" in $srcdir (eg. a DOS drive
	spec).

	* mpz/tests/io.c: Use one fp opened "w+", since separately opened
	input and output doesn't work on MS-DOS 6.21.

	* tests/rand/Makefile.am (allprogs): Pseudo-target to build everything.
	(CLEANFILES): Add EXTRA_PROGRAMS and EXTRA_LTLIBRARIES.
	(manual-test, manual-bigtest): Add $(EXEEXT) to dependencies.

	* tests/rand/*/Makefile.in: Regenerate with patched automake that adds
	$(EXEEXT) to EXTRA_PROGRAMS.

2000-07-13  Torbjorn Granlund  <tege@swox.com>

	* mpz/tests/t-root.c: Also test mpz_perfect_power_p.
	Generate `nth' so that there will be fewer trivial values.

	* mpz/root.c: Reverse return value in tests for detecting root of +1
	and -1.

	* mpz/perfpow.c: Use TMP_ALLOC interface.

2000-07-12  Torbjorn Granlund  <tege@swox.com>

	* mpz/perfpow.c (primes): Make it const.

2000-07-06  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/k6/cross.pl: New file.

	* mpn/x86/*/gmp-mparam.h: Updates to thresholds, conditionalize
	all _TIME defines.
	* mpn/x86/pentium/mmx/gmp-mparam.h: New file.
	* mpn/sparc64/gmp-mparam.h: Update thresholds.
	* mpn/sparc32/v9/gmp-mparam.h: Ditto.

2000-07-04  Kevin Ryde  <kevin@swox.se>

	* NEWS: Updates.
	* mpn/x86/*/README: Miscellaneous updates.

	* tune/speed-ext.c: New file.
	* tune/Makefile.am: Add it.
	* tune/README: Updates.
	* tune/speed.h (SPEED_ROUTINE_MPN_DIVREM_2): Bug fixes.

	* demos/calc.y,calclex.l: New files.
	* demos/calc.c,calc.h,calclex.c: New files, generated from .y and .l.
	* demos/Makefile.am: Add them.

	* gmp.h (mpq_swap, mpf_swap): Add prototypes and defines.

2000-07-01  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (ABI and ISA): New section, bringing together ABI notes.
	(Build Options): Add MPN_PATH, various updates.
	(Build Options): Add note on setting CFLAGS when setting CC.
	(Notes for Particular Systems): Add -march=pentiumpro problem.
	(Known Build Problems): Note on gmp-mparam.h for 64-bit generic C.
	(GMP Variable Conventions): Add some info on user defined functions.
	(Reporting Bugs): Minor rewording.

	* configure.in (MPN_PATH): Renamed from mpn_path.

	* gmp-impl.h (ULONG_MAX,ULONG_HIGHBIT,...,SHORT_MAX): New defines.
	* mp[zf]/tests/t-misc.c: Use them.

	* mpbsd/tests/t-misc.c: New file.
	* mpbsd/tests/Makefile.am: Add it.

	* Makefile.am (LIBGMP_LT_*, LIBMP_LT_*): Bump version info.
	* gmp.h (__GNU_MP_VERSION_*): Bump to 3.1.

	* mpf/tests/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr.

	* Makefile.am (libmp_la_SOURCES): Add mp_set_fns.c, accidentally
	omitted in gmp 3.0.x.
	* gmp.texi (Custom Allocation): Note this is available in mpbsd,
	and some minor rewording.

2000-06-30  Torbjorn Granlund  <tege@swox.com>

	* demos/factorize.c (random): New function, defined conditionally.
	(factor_using_pollard_rho): Use it, not mrand48.

	* mpn/cray/README: New file.

2000-06-30  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium/aorsmul_1.asm: Add MULFUNC_PROLOGUE.

	* mpz/tests/t-jac.c: Test limbs on mpn_jacobi_base, not just ulongs.

	* gmp-impl.h, mpn/tests/try.c, mpn/tests/spinner.c, tune/speed.c:
	Use config.h unconditionally, not under HAVE_CONFIG_H.

	* demos/pexpr.c [__DJGPP__]: Patch by Richard Dawe to not use
	setup_error_handler on djgpp.

	* tune/*: Locate data to help direct-mapped caches, add measuring
	of mpz_init/clear, mpz_add and mpz_bin_uiui, various cleanups.
	* configure.in (AC_CHECK_FUNCS): Add popen.

2000-06-29  Torbjorn Granlund  <tege@swox.com>

	* mpf/mul_2exp.c: Streamline criterion for whether to use mpn_lshift or
	mpn_rshift.  Increase precision when exp is a multiple of
	BITS_PER_MP_LIMB primarily to make exp==0 be a noop.
	* mpf/div_2exp.c: Analogous changes.

	* mpf/tests/t-dm2exp.c: Set u randomly in loop.  Perform more
	mpf_mul_2exp testing.

	* configure.in: Recognize cray vector processors with a broad `*';
	move after alpha* not to match that.

2000-06-28  Kevin Ryde  <kevin@swox.se>

	* mpz/tests/io.c: Use a disk file, not a pipe, switch to ansi2knr
	style, switch from MP_INT to mpz_t, add a couple of error checks.
	* mpz/tests/Makefile.am (CLEANFILES): Add io.tmp, in case io.c fails.

2000-06-27  Torbjorn Granlund  <tege@swox.com>

	* mpf/tests/t-get_d.c: Be more lax about relative error, to handle Cray
	floating point format.

	* mpq/tests/t-get_d.c: Decrease default reps to 1000.

	* mpf/tests/t-conv.c: Correct type of `bexp'.

	* configure.in (cray vector machines): Don't inherit gmp_cflags_cc.

	* tune/Makefile.am (EXTRA_DIST): Delete sparc64.asm.

	* configure.in (cray vector machines): Set extra_functions.

	* mpn/cray/mulww.f: New file with vectorizing cray code.
	* mpn/cray/mulww.s: Generated from mulww.f.
	* mpn/cray/mul_1.c: New file.
	* mpn/cray/addmul_1.c: New file.
	* mpn/cray/submul_1.c: New file.
	* mpn/cray/add_n.c: New file.
	* mpn/cray/sub_n.c: New file.

2000-06-26  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_CHECK_ASM_ALIGN_FILL_0x90): Fix so it actually
	detects solaris 2.6, and also suppress warning on solaris 2.8.
	* configure.in (SPEED_CYCLECOUNTER): Remove spurious "athlon" from
	sparc case.

	* mpn/lisp/gmpasm-mode.el: Move keymap to the top of the docstring.

2000-06-21  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/mul_n.c (mpn_kara_mul_n, mpn_kara_sqr_n): Use
	mp_size_t for n2.
	(mpn_toom3_mul_n, mpn_toom3_sqr_n): Use mp_size_t for size
	parameters and "l" variables.
	* gmp-impl.h (mpn_toom3_mul_n, mpn_toom3_sqr_n): Update prototypes.

	* mpbsd/itom.c, mpbsd/sdiv.c: Add casts for correct handling of
	-0x80...00 on systems with sizeof(short)==sizeof(int).

	* mpz/tests/t-misc.c: Move "bin" test from here ...
	* mpz/tests/t-bin.c: ... to here, and add a new (2k,k) test too.
	* mpz/tests/Makefile.am (check_PROGRAMS): Add t-bin.

	* mpz/bin_ui.c [_LONG_LONG_LIMB]: Use mpn_divrem_1, since kacc is
	a limb not a ulong.
	* mpz/bin_uiui.c [_LONG_LONG_LIMB]: Ditto, and use mpn_mul_1 too,
	since nacc is a limb.

	* mpf/tests/t-misc.c (check_mpf_set_si, check_mpf_cmp_si):
	New file, testing mpf_set_si, mpf_init_set_si, and mpf_cmp_si.
	* mpf/tests/Makefile.am (check_PROGRAMS): Add it.

	* mpz/tests/t-misc.c (check_mpz_set_si, check_mpz_cmp_si):
	New tests, for mpz_set_si, mpz_init_set_si, and mpz_cmp_si.

	* mpz/set_si.c, mpz/iset_si.c, mpz/cmp_si.c [_LONG_LONG_LIMB]: Fix
	handling of -0x80..00.
	* mpf/set_si.c, mpf/iset_si.c, mpf/cmp_si.c [_LONG_LONG_LIMB]: Ditto.

2000-06-19  Torbjorn Granlund  <tege@swox.com>

	* demos/primes.c: Properly handle arguments `m +n'.

2000-06-17  Torbjorn Granlund  <tege@swox.com>

	* config.sub: Recognize k5 and k6 with common pattern.

	* mpq/tests/t-get_d.c: Also test mpq_set_d.  Misc improvements.

	* mpq/set_d.c: Special case 0.0.  Don't call mpn_rshift with 0 count.
	Allocate correct amount of memory for numerator.  Delete spurious
	ASSERT_ALWAYS(1).

2000-06-17  Kevin Ryde  <kevin@swox.se>

	* mpz/perfsqr.c: Fix so that zero is considered a perfect square.
	(Was wrongly calling mpn_perfect_square_p with size==0.)

2000-06-16  Kevin Ryde  <kevin@swox.se>

	* configure.in: Set k5*-*-* to use basic i386 code until there's
	something specific.  Add path=x86 as a default for x86s.

	* acinclude.m4 (GMP_CHECK_ASM_ALIGN_LOG): Generate
	ALIGN_LOGARITHMIC setting, not a full ALIGN definition.
	(GMP_CHECK_ASM_ALIGN_FILL_0x90): New test.
	* configure.in [x86-*-*]: Use GMP_CHECK_ASM_ALIGN_FILL_0x90.
	* mpn/asm-defs.m4 (ALIGN): New macro.
	* mpn/x86/x86-defs.m4 (ALIGN): Remove supplementary definition.

	* tune/*: Plain "unsigned" for speed_cyclecounter.
	* configure.in: Use tune/sparcv9.asm for 32 and 64 bit modes.
	* tune/sparc64.asm: Remove file.

2000-06-15  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/k7/mmx/copyi.asm: Use `testb' instead of `test'.
	* mpn/x86/k7/mmx/copyd.asm: Likewise.

	* mpn/x86/k7/mmx/lshift.asm: Avoid using `~' (Solaris as problems).
	* mpn/x86/k7/mmx/rshift.asm: Likewise.
	* mpn/x86/k6/aors_n.asm: Likewise.
	* mpn/x86/k7/aors_n.asm: Likewise.
	* mpn/x86/k7/mul_basecase.asm: Likewise.

2000-06-13  Torbjorn Granlund  <tege@swox.com>

	* tune/sparcv9.asm: Tune, deleting two instructions.

	* tune/alpha.asm: Update to unified speed_cyclecounter.

2000-06-11  Kevin Ryde  <kevin@swox.se>

	* mpz/tests/reuse.c (FAIL): Add a K&R version.
	Use _PROTO on some typedefs.
	* mpz/tests/t-misc.c: Add gmp-impl.h for "const".

	* configure.in: Rework mpn multi-function and optional files.
	Names standardized, no need for explicit declarations, all picked
	up in one $path traversal.
	* doc/configuration: Updates.

	* tests/rand/t-rand.c (main): Change "usage" to work with K&R.

2000-06-10  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium/mmx/popham.asm, mpn/x86/p6/mmx/popham.asm,
	mpn/x86/p6/p3mmx/popham.asm, mpn/x86/p6/diveby3.asm: Add
	MULFUNC_PROLOGUE for correct HAVE_NATIVE_* matching.

	* mpn/x86/x86-defs.m4 (cmov_bytes_tttn): Use eval() on expressions.
	(cmov_available_p): Switch to list CPUs which do have cmov.
	* mpn/x86/p6/sqr_basecase.asm, mpn/x86/k6/sqr_basecase.asm,
	mpn/x86/k7/sqr_basecase.asm: Use eval() for multiplication.
	* mpn/x86/README.family: Various updates.

2000-06-09  Kevin Ryde  <kevin@swox.se>

	* mpbsd/tests/allfuns.c (main): Call exit() instead of doing return.

	* doc/tasks.html, doc/projects.html: Moved from projects directory.
	* doc/multiplication: New file.
	* Makefile.am (EXTRA_DIST): Remove projects, add doc.

	* Makefile.am (libgmp_la_LIBADD, libmp_la_LIBADD): Remove
	unnecessary -lm.
	* INSTALL: Remove -lm from instructions.
	* demos/Makefile.am (qcn_LDADD): Add -lm.

	* tune/*: Add measuring for mpn_divrem_2 and modlimb_invert,
	improve addsub_n.  Switch to unified speed_cyclecounter.
	* configure.in: Update configs for speed_cyclecounter.

	* gmp-impl.h (MP_LIMB_T_MAX, MP_LIMB_T_HIGHBIT): New macros.
	* mpn/generic/diveby3.c, mpn/generic/mul_n.c, mpn/generic/gcd.c,
	tune/speed.c, mpn/tests/ref.c: Use them.

	* mpn/tests/spinner.c: Remove setitimer, just alarm is enough.
	* configure.in (AC_CHECK_FUNCS): Remove setitimer.
	* mpn/tests/x86call.asm: Start with junk in %eax, %ecx, %edx.
	* mpn/tests/ref.[ch] (refmpn_addsub_nc): New function.
	* mpn/tests/try.c: Add some support for mpn_addsub_nc.
	* mpn/tests/Makefile.am (EXTRA_PROGRAMS): Remove addsub_n and
	addsub_n_2 which don't currently build.
	* mpn/tests/copy.c: Test MPN_COPY_INCR, not __gmpn_copy.

	* tests/rand/Makefile.am (libstat_la_LIBADD): Add -lm, no longer on
	libgmp.la.
	(findlc_LDADD): Use libstat.la.
	(AUTOMAKE_OPTIONS): Use ansi2knr.

2000-06-08  Torbjorn Granlund  <tege@swox.com>

	* configure.in (alpha*-*-osf*): Default `flavour' to ev6 for ev6 and
	higher.
	(alpha*-*-*): Likewise.
	(alpha*-*-osf*: gmp_optcflags_cc): Move -arch/-tune flags from
	gmp_xoptcflags_gcc.

	* mpn/Makefile.am (TARG_DIST): Add pa64w.

	* longlong.h: Wrap 64-bit hppa code in #ifndef LONGLONG_STANDALONE.

2000-06-07  Torbjorn Granlund  <tege@swox.com>

	* mpz/remove.c: Fail for `src' being zero.

	* mpz/tests/reuse.c: Test more functions.
	(FAIL): New define.

	* mpz/tests/t-powm.c: Loop during operand generation while they
	are mathematically ill-defined (used to just skip such tests).

	* mpz/powm.c (mpz_redc): Clean up argument declarations.

	* configure.in (gmp_cflags64_gcc): Don't add bogus -mWHAT option.
	(sparcv9-*-solaris2.[7-9]], gmp_cflags64_gcc):
	Inherit from previous gmp_cflags64_gcc; pass `-m64 -mptr64'.
	(ia64*-*-*): New.

	* mpn/generic/dump.c: Make it work when an mp_limb_t is not `long'.

	* mpf/set_prc.c: MPN_COPY => MPN_COPY_INCR.

2000-06-06  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n):
	Use mpn_incr_u for final carry propagation.

	* mpz/tests/t-gcd.c: Add calls to mpz_gcdext with argument t == NULL.

	* mpz/tests/reuse.c: Major rewrite; test many more functions.

	* mpz/powm_ui.c: When exp is 0, change res assign order in order
	to handle argument overlap.
	* mpz/powm.c: When exp is 0, change res assign order in order
	to handle argument overlap.  Handle negative exp and mod arguments.

	* mpz/gcdext.c: Rework code after mpn_gcdext call to handle
	argument overlap.

	* mpz/fdiv_qr.c: Read dividend->_mp_size before calling mpz_tdiv_qr
	in order to handle argument overlap.
	* mpz/cdiv_qr.c: Likewise.

	* mpf/tests/reuse.c: Fix typo that effectively disabled `dis_funcs'
	tests.  Clean up test for mpf_ui_div.

2000-06-06  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/p6/sqr_basecase.asm: New file.
	* mpn/x86/mod_1.asm: Avoid one conditional jump.
	* mpn/x86/p6/gmp-mparam.h: Update thresholds, #ifndef UMUL_TIME
	and UDIV_TIME, add COUNT_TRAILING_ZEROS_TIME.

	* mp_minv_tab.c: New file.
	* Makefile.am (libgmp_la_SOURCES, libmp_la_SOURCES): Add it.
	* gmp-impl.h (modlimb_invert): New macro.
	* mpz/powm.c: Remove mpz_dmprepare, use modlimb_invert instead.
	* mpn/generic/bdivmod.c: Use modlimb_invert instead of a loop.
	* mpn/generic/gcd.c: Inline two small mpn_bdivmod calls, use
	MPN_COPY_INCR not MPN_COPY in one place.

2000-06-05  Torbjorn Granlund  <tege@swox.com>

	* mpf/tests/reuse.c (dsi_funcs): Add mpf_mul_2exp and mpf_div_2exp.
	(main): Clean up test for mpf_div_ui.

	* mpf/mul_2exp.c: Correct criterion for whether to use mpn_lshift or
	mpn_rshift.  MPN_COPY => MPN_COPY_INCR.  Coerce the two assignments to
	r->_mp_size.

	* mpf/div_2exp.c: Use mpn_rshift instead of mpn_lshift when overlap
	so requires.  MPN_COPY => MPN_COPY_INCR.

	* mpf/tests/t-dm2exp.c: Correct type of res_prec.

2000-06-04  Kevin Ryde  <kevin@swox.se>

	* mpz/bin_uiui.c: Fix result for n==0 and n==k.
	* mpz/bin_ui.c: Fix result for k>n, add support for n<0.
	* gmp.texi (Number Theoretic Functions): Update mpz_bin_ui to
	note n<0 is supported.

	* mpz/tests/t-misc.c: New file.
	* mpz/tests/Makefile.am (check_PROGRAMS): Add it.

2000-05-31  Kevin Ryde  <kevin@swox.se>

	* tune/speed.* (FLAG_R_OPTIONAL): New option for routines, use on
	mpn_gcd_1 and mpn_mul_basecase.
	* tune/README: Update.

	* tune/alpha.asm: New file, by Torbjorn.
	* tune/Makefile.am (EXTRA_DIST): Add it.
	* configure.in (alpha*-*-*): Use it.

2000-05-31  Linus Nordberg  <linus@swox.se>

	* doc/configuration: New file.

2000-05-30  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_basecase.c: Call mpn_mul_2 and mpn_addmul_2
	if available.  Don't include longlong.h.

	* doc/isa_abi_headache: New file.

2000-05-30  Linus Nordberg  <linus@swox.se>

	* configure.in (NM): Use AC_PROG_NM rather than AC_CHECK_TOOL to
	find `nm'.  (AC_PROG_NM comes with Libtool and is needed to get
	the `-B' option (BSD compatible output) included in $NM.)
	(AR): Use AC_CHECK_PROG rather than AC_CHECK_TOOL to find `ar'.
	(Now that NM isn't a cross compilation tool, don't give the
	impression that we know how to cross compile.)
	(CCAS): Remove spurious comment.

	* gmp.texi (Notes for Particular Systems): Remove comment about
	using GNU `nm' on AIX since system nm now works.

2000-05-29  Torbjorn Granlund  <tege@swox.com>

	* mpn/power/mul_1.s: Remove [PR] from first word in function
	descriptor.
	* mpn/power/addmul_1.s: Likewise.
	* mpn/power/submul_1.s: Likewise.

2000-05-28  Kevin Ryde  <kevin@swox.se>

	* configure.in, tune/*: Change pentium rdtsc cycle scheme to
	HAVE_SPEED_CYCLECOUNTER and SPEED_CYCLECOUNTER_OBJS.
	* tune/pentium.asm: Renamed and converted from rdtsc.asm.
	* tune/sparcv9.asm: New file, by Torbjorn.
	* tune/sparc64.asm: New file.
	* tune/tuneup.c: Put a limit on gcdext search.

	* gmp.h (mp_set_memory_functions): Add extern "C".
	* mp.h (__GNU_MP__): Bump to "3".
	* mpz/add.c,mul.c,powm.c,sub.c,sqrtrem.c,tdiv_qr.c [BERKELEY_MP]:
	Include mp.h for mpbsd compile.
	* mpz/gcd.c: Ditto, and remove _mpz_realloc declaration.

	* gmp.texi (Integer Functions): Flatten @subsections into @sections.
	(Floating-point Functions): Ditto.
	(Integer Random Numbers): Split from miscellaneous as a sep section.
	(Installing GMP): Make nodes for the sections.
	Add more "@cindex"s.
	(Known Build Problems): Remove SunOS get_d problem, believed fixed.
	(Notes for Particular Systems): Remove HPPA note since now PIC.
	(References): URL for Jebelean.

2000-05-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/pa64w: New directory, contents based on corresponding mpn/pa64
	files.
	* configure.in (hppa2.0w-*-*): New.
	* mpz/tests/io.c (_INCLUDE_POSIX_SOURCE): Define when __hpux before
	including stdio.h.
	* gmp-impl.h: Always define DItype and UDItype.

2000-05-27  Kevin Ryde  <kevin@swox.se>

	* tune/common.c (speed_measure): Correction to array sorting,
	better diagnostic when measuring fails.
	* tune/time.c: Add microsecond accurate getrusage method.

	* tune/time.c (speed_cpu_frequency_processor_info): New function.
	* configure.in (AC_CHECK_FUNCS): Add processor_info.

2000-05-26  Linus Nordberg  <linus@swox.se>

	* gmp.texi (Installing GMP): Shared libraries work for AIX < 4.3
	if using GNU nm.

2000-05-26  Torbjorn Granlund  <tege@swox.com>

	* tune/tuneup.c (SIGNED_TYPE_MAX): Shift `-1' instead of `1' to
	avoid signed overflow.

	* demos/pexpr.c (setup_error_handler): Don't call sigaltstack on
	Unicos.

2000-05-25  Torbjorn Granlund  <tege@swox.com>

	* insert-dbl.c: Work around GCC 2.8 bug.
	* extract-dbl.c: Likewise.

	* config.sub: Allow i586, i686, i786 again.

	* config.guess: Use X86CPU for lots more systems.

2000-05-25  Linus Nordberg  <linus@swox.se>

	* mpbsd/tests/dummy.c (main): Call exit() instead of doing return
	(some old SysV machines don't get this correct, I've heard.)

2000-05-25  Kevin Ryde  <kevin@swox.se>

	* mpf/iset_str.c: Initialize _mp_size and _mp_exp to 0, in case no
	digits in string, so it's the same as a separate init and set_str.

2000-05-24  Torbjorn Granlund  <tege@swox.com>

	* mpz/tests/reuse.c: Use mpz_random2 instead of mpz_random.

	* mpz/divexact.c: Read pointers after reallocation.
	Compare `quot' and `den' instead of `qp' and `dp' in overlap check.
	Use MPN_COPY_INCR for copying from `np'.

	(*-*-aix4.[3-9]*): Disable shared libs just for problematic AIX
	versions.
	* configure.in (*-cray-unicos*): Disable asm syntax checking; set
	compiler explicitly.
	* configure.in (hppa*-*-*): Remove code disabling shared libs.

2000-05-24  Linus Nordberg  <linus@swox.se>

	* acinclude.m4 (GMP_PROG_CC_WORKS): Don't report progress to user
	when doing the AIX specific test to avoid "nested output".

2000-05-22  Kevin Ryde  <kevin@swox.se>

	* mp.h (_PROTO): Copy from gmp.h, use on prototypes.
	Add extern "C" too.
	* mpbsd/tests/Makefile.am (AUTOMAKE_OPTIONS): Enable ansi2knr.
	* mpbsd/tests/allfuns.c: Don't execute mout, just link to it.
	(main): ANSI style definition.

	* gmp-impl.h (MP_BASE_AS_DOUBLE): Change the expression to
	something that works on SunOS native cc.  Seems to fix the
	mp*_get_d problems.

	* mpn/tests/ref.c (refmpn_strip_twos): Use MPN_COPY_INCR.
	* mpn/tests/Makefile.am: Let .asm.o rules work with absolute $srcdir.

2000-05-21  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/k7/sqr_basecase.asm: Replace file with K7 specific code.
	* mpn/x86/k7/README: Update.
	* mpn/x86/k7/gmp-mparam.h: Tune thresholds.
	(COUNT_TRAILING_ZEROS_TIME): New define.
	* mpn/x86/k6/gmp-mparam.h: Ditto.

	* mpn/x86/pentium/mmx/popham.asm: New file (include_mpn of K6 version).
	* mpn/x86/p6/diveby3.asm: New file (include_mpn of P5 version).
	* mpn/x86/p6/mmx/popham.asm: New file (include_mpn of K6 version).
	* mpn/x86/p6/p3mmx/popham.asm: New file (include_mpn of K7 version).
	* configure.in (pentium3-*-*): Add p3mmx to $path.

	* gmp.texi (Integer Arithmetic): Clarify mpz_jacobi op2; add
	mpz_*_kronecker_*.
	(Miscellaneous Integer Functions): Add mpz_odd_p and mpz_even_p.
	(Low-level Functions): Put mpn_divmod_1 with mpn_divrem_1 and note
	it's now a macro.
	(References): Add Henri Cohen.

	* gmp.h (mpn_addmul_1c, mpn_divrem_1c, mpn_mod_1c, mpn_mul_1c,
	mpn_submul_1c): Add prototypes.
	(mpz_odd_p, mpz_even_p): New macros.

	* mpn/asm-defs.m4 (m4wrap_prepend): New macro.
	(m4_error): Use it.
	(m4_not_for_expansion): Corrections to OPERATION symbols.
	More comments about variations between m4 versions.
	* mpn/x86/x86-defs.m4 (PROLOGUE): Use m4wrap_prepend (fixes error
	exit under BSD m4, previously m4_error printed the message but the
	exit code was 0).

	* gmp.h (mpn_divmod_1): Change to a macro calling mpn_divrem_1.
	* mpn/generic/divrem_1.c: Move divmod_1.c code to here, make it
	static and call it __gmpn_divmod_1_internal.
	* mpn/generic/divmod_1.c: Remove file.
	* configure.in (gmp_mpn_functions): Remove divmod_1.
	* mpn/asm-defs.m4 (define_mpn): Remove divmod_1 and divmod_1c.
	* compat.c (mpn_divmod_1): Add compatibility function.
	* tune/*: Remove mpn_divmod_1 measuring (leave just divrem_1).

	* acconfig.h (HAVE_NATIVE_mpn_*): Add some missing carry-in
	variants, remove divmod_1.

	* mpn/x86/diveby3.asm: Use imul, update comments.

	* demos/qcn.c: New file.
	* demos/Makefile.am (EXTRA_PROGRAMS): Add it.

	* mpz/tests/t-jac.c: New file.
	* mpz/tests/Makefile.am (check_PROGRAMS): Add it. Enable ansi2knr.

	* mpz/kronsz.c: New file.
	* mpz/kronuz.c: New file.
	* mpz/kronzs.c: New file.
	* mpz/kronzu.c: New file.
	* mpz/Makefile.am (libmpz_la_SOURCES): Add them.
	* Makefile.am (MPZ_OBJECTS): Add them.
	* gmp-impl.h (JACOBI_*, MPN_STRIP_LOW_ZEROS_NOT_ZERO): New macros.
	* gmp.h (mpz_*_kronecker_*): New defines and prototypes.

	* mpn/generic/jacbase.c: New file.
	* mpn/generic/mod_1_rs.c: New file.
	* configure.in (gmp_mpn_functions): Add them.
	* gmp.h (mpn_jacobi_base, mpn_mod_1_rshift): New defines and
	prototypes.
	* longlong.h (COUNT_TRAILING_ZEROS_TIME): New define.
	* mpn/tests/ref.c (refmpn_mod_1_rshift): New function.
	* mpn/tests/try.c: Add mpn_mod_1_rshift.
	* tune/*: Add measuring for mpn_jacobi_base.

	* acinclude.m4 (GMP_FINISH): Add ifdefs to allow multiple
	inclusion of config.m4.
	(GMP_PROG_M4): Put "good" message through to config.log.

	* mpz/powm.c: Use a POWM_THRESHOLD for where redc stops.
	* tune/*: Add mpz_powm measuring, and tune POWM_THRESHOLD.
	* gmp-impl.h [TUNE_PROGRAM_BUILD] (POWM_THRESHOLD): Conditional
	redefinition for use when tuning.

	* mpz/powm_ui.c: Use DIVIDE_BY_ZERO.

	* mpz/iset_str.c: Initialize _mp_size to 0, in case no digits in
	string; this makes it the same as a separate init and set_str.

2000-05-20  Kevin Ryde  <kevin@swox.se>

	* mpn/asm-defs.m4: Note &,|,^ aren't bitwise in BSD m4 eval().
	* mpn/x86/k6/sqr_basecase.asm: Use "%" not "&" in m4 eval()s.

	* mpn/x86/x86-defs.m4 (Zdisp): Yet more instruction forms.

2000-05-19  Linus Nordberg  <linus@swox.se>

	* acinclude.m4 (GMP_CHECK_CC_64BIT): Don't use shell variable
	`ac_compile' for our own compile command string since other
	Autoconf macros may depend on it.

2000-05-19  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Fix
	carry propagation in final coefficient additions.

2000-05-18  Linus Nordberg  <linus@swox.se>

	* configure.in: Set NM before looking for compiler since
	GMP_CHECK_CC_64BIT needs it.

	* acinclude.m4 (GMP_CHECK_CC_64BIT): Don't execute on target.
	(GMP_PROG_CC_FIND): Before checking if the compiler knows how to
	produce 64-bit code, verify that it works at all.  The background
	is that /usr/ucb/cc on Solaris 7 successfully compiles in 64-bit
	mode but fails when doing final link.
	(GMP_PROG_CC_WORKS): Report to user what's happening.

2000-05-17  Linus Nordberg  <linus@swox.se>

	* config.guess: Use X86CPU for x86 Cygwin.

2000-05-16  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/p6/mmx/divrem_1.asm: New file.
	* mpn/x86/p6/mmx/mod_1.asm: New file.
	* mpn/x86/p6/README: Update.
	* mpn/x86/divrem_1.asm: Update comments.
	* mpn/x86/mod_1.asm: Ditto.

2000-05-14  Kevin Ryde  <kevin@swox.se>

	* tune/speed.h: Run gcd functions on a set of data.

	* mpn/tests/try.c: New file.
	* mpn/tests/try.h: New file.
	* mpn/tests/spinner.c: New file.
	* mpn/tests/trace.c: New file.
	* mpn/tests/x86call.asm: New file.
	* mpn/tests/x86check.c: New file.
	* mpn/tests/ref.c (refmpn_hamdist): Allow size==0.
	(refmpn_gcd): New function, and other additions supporting it.
	* mpn/tests/ref.h: More prototypes.
	* mpn/tests/Makefile.am: Add try program, use ansi2knr.

	* mpn/x86/k7/mmx/popham.asm: New file.
	* mpn/x86/k6/mmx/popham.asm: New file.
	* mpn/x86/k6/sqr_basecase.asm: Unroll the addmul, for approx 1.3x
	speedup above 15 limbs.
	* mpn/x86/k7/README: Update.
	* mpn/x86/k6/README: Update, and add notes on plain K6 and pre-CXT
	K6-2 problems.
	* configure.in (k6*-*-*, athlon-*-*): Add popham.

	* mpn/x86/pentium/diveby3.asm: New file.
	* mpn/x86/pentium/README: Update.

	* gmp.texi (Installing GMP): Add note on bad OpenBSD 2.6 m4.
	(Reporting Bugs): Ask for config.m4 if asm file related.
	(I/O of Rationals): New section, add mpq_out_str.
	(References): Add url for on-line gcc manuals.
	A few node and menu updates.

	* INSTALL: Better command line argument checking for test progs.
	Change MP -> GMP.

	* configure.in (WANT_ASSERT, USE_STACK_ALLOC, HAVE_PENTIUM_RDTSC):
	Put descriptions here, not in acconfig.h.
	(CALLING_CONVENTIONS_OBJS): New AC_SUBST (for mpn/tests/try).
	(HAVE_CALLING_CONVENTIONS): New AC_DEFINE.
	(AC_CHECK_HEADERS): Add sys/time.h.
	(AC_CHECK_FUNCS): Add getpagesize, setitimer.
	(KARATSUBA_SQR_THRESHOLD): Strip trailing comments from the
	#define when passing through to config.m4.
	* acconfig.h (PACKAGE, VERSION, WANT_ASSERT, USE_STACK_ALLOC,
	HAVE_PENTIUM_RDTSC): No need for #undefs, autoheader gets them
	from configure.in.

	* acinclude.m4 (GMP_PROG_M4): Check for broken OpenBSD 2.6 m4
	eval(), put messages into config.log.
	* mpn/asm-defs.m4: Add notes and test for OpenBSD 2.6 m4.

	* mpq/out_str.c: New file.
	* mpq/Makefile.am (libmpq_la_SOURCES): Add it.
	* Makefile.am (MPQ_OBJECTS): Ditto.
	* gmp.h (mpq_out_str): New define and prototype.

2000-05-12  Kevin Ryde  <kevin@swox.se>

	* configure.in (CONFIG_TOP_SRCDIR): Fix to use $srcdir not
	$top_srcdir (which doesn't exist).
	* acinclude.m4 (GMP_C_ANSI2KNR): Fix setting U=_.
	* gmp-impl.h (mpn_com_n, MPN_LOGOPS_N_INLINE): Fix missing "do"
	(not currently used, probably no ill effect anyway).

2000-05-11  Torbjorn Granlund  <tege@swox.com>

	* randraw.c (lc): Major overhaul (pending rewrite).
	(_gmp_rand): Rewrite.

2000-05-08  Torbjorn Granlund  <tege@swox.com>

	* mpz/tests/convert.c: Call free via _mp_free_func.
	* mpf/tests/t-conv.c: Likewise.

	* memory.c: Add code enabled for DEBUG that adds special patterns
	around allocated blocks.

2000-05-05  Linus Nordberg  <linus@swox.se>

	* gmp.texi (Miscellaneous Float Functions): Correct parameter list
	for mpf_urandomb().

	* configure.in: Invoke AC_REVISION.

2000-05-05  Kevin Ryde  <kevin@swox.se>

	* gmp.texi: Use @dircategory and @direntry.
	(Installing GMP): Clarification for --target, updates on SunOS
	problems.
	(Integer Arithmetic): Add mpz_mul_si.
	(Initializing Rationals): Add mpq_swap.
	(Assigning Floats): Add mpf_swap.
	(Low-level Functions): Add mpn_divexact_by3c, and details of what
	the calculation actually gives.
	(Low-level Functions): Note extra space needed by mpn_gcdext,
	clarify the details a bit.

	* compat.c: New file, entry points for upward binary compatibility.
	(mpn_divexact_by3): Compatibility function.
	* Makefile.am (libgmp_la_SOURCES): Add compat.c.

	* mpn/tests/ref.c: Rearrange macros for ansi2knr.
	(div1): Renamed from div to avoid library function.
	(refmpn_divexact_by3c, refmpn_gcd_1, refmpn_popcount,
	refmpn_hamdist): New functions.
	* mpn/tests/ref.h: Add extern "C", add new prototypes.

	* gmp.h (gmp_randinit, etc): Add extern "C".
	(_mpq_cmp_ui): Fix prototype name from mpq_cmp_ui.
	(mpn_divexact_by3): Now a macro calling mpn_divexact_by3c.
	(mpn_divexact_by3c): New prototype and define.

	* mpn/x86/diveby3.asm: Change to mpn_divexact_by3c.
	* mpn/x86/k6/diveby3.asm: Ditto.
	* mpn/generic/diveby3.c: Ditto.
	* mpn/asm-defs.m4: Ditto on the define_mpn.
	* acconfig.h (HAVE_NATIVE_mpn_divexact_by3c): New define.

	* mpq/swap.c: New file, derived from mpz/swap.c.
	* mpf/swap.c: Ditto.
	* mpq/Makefile.am: Add swap.c.
	* mpf/Makefile.am: Ditto.
	* Makefile.am: Add two new "swap.lo"s.

	* mpn/x86/k6/mmx/com_n.asm: Fix an addressing bug (fortunately
	this code hasn't been used anywhere yet).

	* mpn/x86/k7/mmx/divrem_1.asm: New file.
	* mpn/x86/k7/mmx/mod_1.asm: New file.
	* mpn/x86/k7/diveby3.asm: New file.
	* mpn/x86/k7/README: Update.

	* mpn/x86/k7/aorsmul_1.asm: Use new cmovCC, no object code change.
	* mpn/x86/k7/mul_basecase.asm: Ditto.
	* mpn/x86/p6/aorsmul_1.asm: Ditto.

	* mpn/x86/x86-defs.m4 (defframe_empty_if_zero): Eval the argument.
	(cmovCC): New macros, replacing individual cmovCC_reg_reg forms.
	(Zdisp): Recognise more instructions.
	(shldl,etc): Use m4_instruction_wrapper().
	(ASSERT, movl_text_address): New macros.

	* mpn/asm-defs.m4: Add remarks on SunOS /usr/bin/m4 and new
	OpenBSD m4.
	(m4_assert_numargs_internal_check): Remove a spurious parameter.
	(m4_empty_if_zero): Eval the argument.
	(m4_assert, m4_assert_numargs_range, m4_config_gmp_mparam,
	m4_instruction_wrapper): New macros.

2000-05-04  Linus Nordberg  <linus@swox.se>

	* gmp.texi (Reporting Bugs): Be explicit about output from running
	a command.

2000-05-02  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/bz_divrem_n.c (mpn_bz_divrem_n): Handle non-zero return
	from first mpn_bz_div_3_halves_by_2 call.
	(mpn_bz_divrem_aux): Likewise.

2000-04-30  Kevin Ryde  <kevin@swox.se>

	* tune/* (GCD_ACCEL_THRESHOLD, GCDEXT_THRESHOLD): Tune these.

	* mpn/generic/gcdext.c (GCDEXT_THRESHOLD): Rename from THRESHOLD,
	use with >=, adjust default to 17 accordingly.
	Use new *_SWAP macros.

	* mpn/generic/gcd.c (GCD_ACCEL_THRESHOLD): Rename from
	ACCEL_THRESHOLD, use with >=, adjust default to 5 accordingly.
	Use new *_SWAP macros.

	* mpf/get_str.c, mpf/set_str.c, mpf/sub.c, mpz/add.c, mpz/ior.c,
	mpz/and.c, mpz/sub.c, mpz/xor.c, mpz/ui_pow_ui.c,
	mpn/generic/mul.c: Use new *_SWAP macros.

	* stack-alloc.h: Add extern "C" around prototypes.

	* gmp-impl.h: (MP_PTR_SWAP, etc): New macros.
	(_mp_allocate_func, etc): Use _PROTO.
	[TUNE_PROGRAM_BUILD]: More changes in tune program build part.

2000-04-28  Torbjorn Granlund  <tege@swox.com>

	* mpn/pa64/add_n.s: Add `,entry' to export directive.
	* mpn/pa64/addmul_1.S, mpn/pa64/lshift.s, mpn/pa64/mul_1.S,
	mpn/pa64/rshift.s, mpn/pa64/sub_n.s, mpn/pa64/submul_1.S,
	mpn/pa64/umul_ppmm.S: Likewise.
	* mpn/hppa/hppa1_1/udiv_qrnnd.S: New name for udiv_qrnnd.s.
	Add PIC support.

2000-04-29  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h [TUNE_PROGRAM_BUILD] (TOOM3_MUL_THRESHOLD_LIMIT): New
	define.
	* mpn/generic/mul_n.c [TUNE_PROGRAM_BUILD] (mpn_mul_n): Use
	TOOM3_MUL_THRESHOLD_LIMIT, not a hard coded 500.

	* memory.c: Use <stdlib.h> for malloc etc, and use _PROTO.
	* stack-alloc.c: Don't use C++ reserved word "this".
	* urandom.h: Put extern "C" around prototypes.
	* mpz/powm.c: Switch a couple of parameters to "const", which they
	are, to satisfy g++.

	* randraw.c, stack-alloc.c, mpbsd/mout.c, mpbsd/mtox.c: Add casts to
	help g++.

	* stack-alloc.c: Provide dual ANSI/K&R function definitions.
	* mpz/addmul_ui.c,get_d.c,inp_str.c,perfpow.c,powm.c,pprime_p.c,
	rrandomb.c,set_str.c,ui_pow_ui.c: Ditto.
	* mpf/integer.c,set_str.c: Ditto.
	* mpbsd/min.c,xtom.c: Ditto.
	* mpn/generic/bz_divrem_n.c,dump.c,gcd_1.c,get_str.c,hamdist.c,
	popcount.c,random.c,random2.c,set_str.c: Ditto.

	* rand.c: Use <stdio.h> for NULL.
	* mpz/gcd_ui.c,gcdext.c,mul.c,perfpow.c,powm_ui.c,root.c,sqrt.c,
	sqrtrem.c: Ditto
	* mpf/sqrt.c,sqrt_ui.c: Ditto.
	* mpn/generic/perfsqr.c,sqrtrem.c: Ditto.

	* gmp-impl.h (NULL, malloc, realloc, free): Don't define/declare.
	(extern "C"): Add around function prototypes.
	(mpn_kara_mul_n, mpn_kara_sqr_n, mpn_toom3_mul_n, mpn_toom3_sqr_n):
	Add prototypes.
	[TUNE_PROGRAM_BUILD] (FIB_THRESHOLD): Add necessary redefinitions for
	use by tune program.
	* mpn/generic/mul_n.c: Remove mpn_toom3_mul_n prototype.

	* acinclude.m4 (GMP_C_ANSI2KNR): New macro.
	(GMP_CHECK_ASM_MMX, GMP_CHECK_ASM_SHLDL_CL): Fix to use
	$gmp_cv_check_asm_text which is what GMP_CHECK_ASM_TEXT sets.
	* configure.in (GMP_C_ANSI2KNR): Use this instead of AM_C_PROTOTYPES,
	for reasons described with its definition.

	* demos/Makefile.am (ansi2knr): Use $(top_builddir) nor $(top_srcdir).

	* mpz/fib_ui.c (FIB_THRESHOLD): Rename from FIB_THRES, for consistency.
	(FIB_THRESHOLD): Conditionalize so gmp-mparam.h can define a value.
	(mpz_fib_bigcase): Use >= FIB_THRESHOLD, same as main mpz_fib_ui.
	* tune/tuneup.c,Makefile.am (FIB_THRESHOLD): Tune this.

	* configure.in (*-*-aix* gmp_m4postinc): Fix setting (don't overwrite
	a value just stored).

2000-04-26  Kevin Ryde  <kevin@swox.se>

	* mpn/sparc32/udiv_fp.asm: Use mpn_udiv_qrnnd macro.
	* mpn/sparc32/udiv_nfp.asm: Ditto.
	* mpn/sparc32/v8/supersparc/udiv.asm: Ditto.
	* mpn/sparc32/umul.asm: Name the function mpn_umul_ppmm.
	* mpn/sparc32/v8/umul.asm: Ditto.
	* mpn/powerpc32/umul.asm: Ditto.

	* mpn/x86/syntax.h: Remove file, since now unused.

	* configure.in (x86): Remove -DBROKEN_ALIGN and -DOLD_GAS
	previously used by .S files.
	(x86 extra_functions): Add udiv and umul.
	(GMP_PROG_M4): Use this instead of AC_CHECK_PROG(M4,m4,...)
	(HAVE_NATIVE_*): Loosen up the regexp to "PROLOGUE.*" so as to
	accept PROLOGUE_GP on alpha.

	* acconfig.h (HAVE_NATIVE_mpn_umul_ppmm, udiv_qrnnd, invert_limb):
	New template defines.
	* mpn/asm-defs.m4 (mpn_umul_ppmm, mpn_udiv_qrnnd): New define_mpn()s.
	* longlong.h (umul_ppmm, udiv_qrnnd): Use a library version if
	it's available and an asm macro isn't.
	* gmp-impl.h (invert_limb): Ditto.

	* gmp-impl.h (ASSERT_NOREALLOC): Not a good idea, remove it.

	* acinclude.m4 (GMP_PROG_M4): New macro.

2000-04-25  Linus Nordberg  <linus@swox.se>

	* gmp.texi (Random State Initialization): Correct arguments to
	`gmp_randinit'.

	* acinclude.m4 (GMP_VERSION): Change `eval' --> `m4_eval'.  Fix
	from Kevin.
	* aclocal.m4: Regenerate.

2000-04-25  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/aors_n.asm: Remove parentheses around an immediate that
	Solaris "as" doesn't like, change by Torbjorn.

2000-04-24  Kevin Ryde  <kevin@swox.se>

	* configure.in (AC_CHECK_FUNCS): Add strtoul.

	* mpn/generic/mul_n.c [TUNE_PROGRAM_BUILD] (mpn_mul_n): Bigger
	array for karatsuba temporary space for tune program build.
	(mpn_toom3_sqr_n) Remove an unused variable.

	* demos/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr.
	Add "allprogs:" pseudo-target.
	* demos/factorize.c, demos/isprime.c: Switch to ANSI functions,
	rely on ansi2knr.

	* gmp.texi (Getting the Latest Version of GMP): Add reference to
	ftp.gnu.org mirrors list.
	* INSTALL: Add arg count check to example programs.

	* mpn/x86/*/*.asm: Convert to FORTRAN ... or rather to
	FORTRAN-style "C" commenting to support Solaris "as".
	* mpn/x86/x86-defs.m4: Ditto, and add another Zdisp insn.
	* mpn/asm-defs.m4 (C): Update comments.
	* mpn/x86/README.family: Add a note on commenting, remove
	description of .S files.

	* mpn/sparc64/addmul_1.asm, mul_1.asm, submul_1.asm: Use
	include_mpn().

2000-04-23  Torbjorn Granlund  <tege@swox.com>

	* config.sub: Merge with FSF version of April 23.

	* mpn/powerpc32: Use dnl/C instead of `#' for comments.

	* config.guess: Get "model" limit between pentium 2 and pentium3 right.
	Get rid of code determining `_' prefix; use double labels instead.
	* config.guess: Partially merge with FSF version of April 22.
	(Don't bring over NetBSD changes for now.)

2000-04-23  Kevin Ryde  <kevin@swox.se>

	* tune/Makefile.am, tune/README, tune/common.c, tune/rdtsc.asm,
	tune/speed.c, tune/speed.h, tune/time.c, tune/tuneup.c: New files.
	* tune/Makefile.in: New file, generated from Makefile.am.

	* gmp-impl.h (ASSERT_NOREALLOC,TMP_ALLOC_LIMBS): New macros.
	[TUNE_PROGRAM_BUILD] Further mods for tune program builds.

	* mpz/Makefile.am: Add -DOPERATION_$* for new mul_siui.c.
	Add rules to build mul_si and mul_ui from a common mul_siui.c.
	* mpz/mul_siui.c: New file, derived from and replacing mul_ui.c.
	* gmp.h (mpz_mul_si): New prototype and define.

	* mpn/tests/*.c [__i386__] (CLOCK): Don't use floating point in
	CLOCK because cpp can't handle floats in #if's (TIMES is derived
	from CLOCK by default).

	* mpn/asm-defs.m4 (include_mpn): New macro.
	(m4_assert_numargs) Changes to implementation.

	* mpf/Makefile.am: Add -DOPERATION_$* for new integer.c.
	Remove explicit rules for floor.o etc.
	* mpf/integer.c: Use OPERATION_$* for floor/ceil/trunc.

	* mpn/Makefile.am: Put "tests" in SUBDIRS.
	* mpn/tests/Makefile.am: New file providing rules to build test
	programs, nothing done in a "make all" or "make check" though.
	* mpn/tests/README: New file.

	* acconfig.h (HAVE_PENTIUM_RDTSC): New define.

	* configure.in (x86): Rearrange target cases.
	Add mulfunc aors_n and aorsmul_1 for x86 and pentium (now all x86s).
	Remove asm-syntax.h generation not needed.
	Remove now unused family=x86.
	(sparc) Remove unused family=sparc.
	(HAVE_PENTIUM_RDTSC) New AC_DEFINE and AM_CONDITIONAL.
	(AM_C_PROTOTYPES) New test, supporting ansi2knr.
	(AC_CHECK_HEADERS) Add getopt.h, unistd.h and sys/sysctl.h for
	tune progs.
	(AC_CHECK_FUNCS) Add getopt_long, sysconf and sysctlbyname for
	tune progs.
	(config.m4 CONFIG_TOP_SRCDIR) Renamed from CONFIG_SRCDIR.
	(config.m4 asm-defs.m4) Use CONFIG_TOP_SRCDIR and include().
	(gmp_m4postinc) Use include_mpn().
	(gmp_links) Omit asm-defs.m4/asm.m4 and gmp_m4postinc's.
	(MULFUNC_PROLOGUE) Fix regexps so all functions get AC_DEFINE'd.
	(PROLOGUE) Ditto (native copyi and copyd were unused in gmp 3).
	(KARATSUBA_SQR_THRESHOLD) Copy from gmp-mparam.h into config.m4.
	(AC_OUTPUT) Add tune/Makefile, mpn/tests/Makefile.

	* Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr.
	(SUBDIRS): Add tune, reorder directories.
	(MPZ_OBJECTS): Add mpz/mul_si.lo.
	(libmp_la_SOURCES): Use this for top-level objects, not .lo's.
	* ansi2knr.c, ansi2knr.1: New files, provided by automake.

	* mpn/x86/aors_n.asm: Convert add_n.S and sub_n.S to a
	multi-function aors_n.asm, no object code change.
	* mpn/x86/pentium/aors_n.asm: Ditto.
	* mpn/x86/aorsmul_1.asm: Ditto for addmul/submul.
	* mpn/x86/pentium/aorsmul_1.asm: Ditto.

	* mpn/x86/lshift.asm, mpn/x86/mul_1.asm, mpn/x86/mul_basecase.asm,
	mpn/x86/rshift.asm: Convert from .S, no object code change.
	* mpn/x86/pentium/lshift.asm, mpn/x86/pentium/mul_1.asm,
	mpn/x86/pentium/mul_basecase.asm, mpn/x86/pentium/rshift.asm: Ditto.

	* gmp.texi (Reporting Bugs): Itemize the list of things to include.
	(Miscellaneous Float Functions): Correct typo in mpf_ceil etc
	argument types.
	Change @ifinfo -> @ifnottex for benefit of makeinfo --html.
	Remove unnecessary @iftex's around @tex.

2000-04-22  Torbjorn Granlund  <tege@swox.com>

	* config.guess: Generalize x86 cpu determination code.
	Now works on Solaris.

	* mpz/nextprime.c: Rewrite still disabled code.

	* configure.in: Specifically match freebsd[3-9].

2000-04-21  Torbjorn Granlund  <tege@swox.com>

	* rand.c: Call mpz_clear for otherwise leaking mpz_t.

	* mpz/pprime_p.c (mpz_probab_prime_p): Merge handling of negative
	n into code for handling small positive n.  Merge variables m and n.
	After dividing, simply call mpz_millerrabin.
	(isprime): Local variables now use attribute `long'.
	(mpz_millerrabin): New static function, based on code from
	mpz_probab_prime_p.
	(millerrabin): Now simple workhorse for mpz_millerrabin.

2000-04-19  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h: Fix parenthesis error in test for __APPLE_CC__.

2000-04-18  Linus Nordberg  <linus@swox.se>

	* NEWS: Add info about shared libraries.  Remove reference to
	gmp_randinit_lc.

2000-04-17  Torbjorn Granlund  <tege@swox.com>

	* Version 3.0 released.

	* mpn/arm/add_n.S: New version from Robert Harley.
	* mpn/arm/addmul_1.S: Likewise.
	* mpn/arm/mul_1.S: Likewise.
	* mpn/arm/sub_n.S: Likewise.

	* gmp.h (__GNU_MP_VERSION_PATCHLEVEL): Now 0.

2000-04-17  Linus Nordberg  <linus@swox.se>

	* configure.in (hppa2.0*-*-*): Pass `+O3' to cc/c89 in 64-bit mode
	to avoid compiler bug.
	(ns32k*-*-*): Fix typo in path.  Change by Kevin.
	(alpha*-*-osf*): New case.  Pass assembly flags for architecture
	to gcc.
	(alpha*-*-*): Don't bother searching for cc.
	* configure: Regenerate.

	* Makefile.am (EXTRA_DIST): Add `macos', `.gdbinit'.
	* Makefile.in: Regenerate.
	* mpn/Makefile.am (EXTRA_DIST): Add `m88k', `lisp'.
	* mpn/Makefile.in: Regenerate.

2000-04-16  Kevin Ryde  <kevin@swox.se>

	* README: Updates, and don't duplicate the example in INSTALL.
	* INSTALL: Minor updates.
	* gmp.texi (Installing MP): Minor edits, restore CC/CFLAGS description.

2000-04-16  Linus Nordberg  <linus@swox.se>

	* configure.in (*-*-cygwin*): Select BSD_SYNTAX to avoid
	.type/.size in PROLOGUE for ELF_SYNTAX.  Override ALIGN definition
	from x86/syntax.h.
	(gmp_xoptcflags_${CC}): New set of variables, indicating
	``exclusive optional cflags''.
	(most sparcs): Use gmp_xoptcflags instead of gmp_optcflags to
	ensure that we pass CPU type to older gcc.
	(CFLAGS): CFLAGS on the command line was spoiled.
	* configure: Regenerate.

2000-04-16  Linus Nordberg  <linus@swox.se>

	* configure.in: Invoke AC_PROG_LIBTOOL directly.

	* acinclude.m4 (GMP_PROG_CC_FIND): Quote source variable when
	setting CC64 and CFLAGS64.
	(GMP_PROG_CC_SELECT): Cache result.
	(GMP_PROG_LIBTOOL): Remove.

	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2000-04-16  Linus Nordberg  <linus@swox.se>

	* tests/rand/t-rand.c (main): Add non-ANSI function declaration.
	Don't use `const'.

2000-04-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/dump.c: Suppress output of leading zeros.

	* mpz/inp_str.c: Fix memory leakage.

	* mpz/tests/reuse.c (dss_func_division): Add a final 1.

	* longlong.h (alpha count_leading_zeros): Wrap in __MPN.
	* mpn/alpha/cntlz.asm: Use __gmpn prefix (by means of __MPN).

	* longlong.h (__umul_ppmm, __udiv_qrnnd): Wrap in __MPN.
	* mpn/alpha/udiv_qrnnd.S: Use __gmpn prefix.
	* mpn/hppa/udiv_qrnnd.s: Likewise.
	* mpn/hppa/hppa1_1/udiv_qrnnd.s: Likewise.
	* mpn/pa64/udiv_qrnnd.c: Likewise (by means of __MPN).
	* mpn/pa64/umul_ppmm.S: Likewise.
	* mpn/sparc32/udiv_fp.asm: Likewise (by means of MPN).
	* mpn/sparc32/udiv_nfp.asm: Likewise (by means of MPN).
	* mpn/sparc32/v8/supersparc/udiv.asm: Likewise (by means of MPN).

	* mpn/generic/tdiv_qr.c: Work around gcc 2.7.2.3 i386 register handling
	bug.

	* mpn/generic/tdiv_qr.c: Use udiv_qrnnd instead of mpn_divrem_1
	when computing appropriate quotient; mpn_divrem_1 writes too
	many quotient limbs.

	* mpn/asm-defs.m4: invert_normalized_limb => invert_limb.
	* mpn/alpha/invert_limb.asm: mpn_invert_normalized_limb =>
	mpn_invert_limb.
	* gmp.h: Likewise.
	* gmp-impl.h (alpha specific): invert_normalized_limb => invert_limb;
	wrap with __MPN.
	* longlong.h (alpha udiv_qrnnd): Likewise.

2000-04-16  Kevin Ryde  <kevin@swox.se>

	* gmp.h (mp_set_memory_functions,mp_bits_per_limb,gmp_errno): Add
	#defines so the library symbols are __gmp_*.
	* errno.c: Include gmp.h.
	* gmp-impl.h (_mp_allocate_func,etc): Add #defines to __gmp_*.
	(__clz_tab): New #define to __MPN(clz_tab).
	* stack-alloc.c (__gmp_allocate_func,etc): Change from _mp_*.

	* Makefile.am (libmp_la_DEPENDENCIES): Add some mpz files needed
	for new mpz_powm (pow in libmp).
	(EXTRA_DIST): Add projects directory.

	* mpn/*: Change __mpn to __gmpn.
	* gmp.h (__MPN): Ditto.
	* stack_alloc.c,stack-alloc.h: Change __tmp to __gmp_tmp.

	* mpn/generic/sb_divrem_mn.c (mpn_sb_divrem_mn): Avoid gcc 2.7.2.3
	i386 register handling bug (same as previously in mpn_divrem_classic).

	* mpn/generic/divrem.c: Now contains mpn_divrem, which is not an
	internal function, so remove warning comment.

	* gmp.texi (Compatibility with Version 2.0.x): Source level only.

2000-04-16  Linus Nordberg  <linus@swox.se>

	* configure.in (hppa1.0*): Prefer c89 to cc.
	* configure: Regenerate.

2000-04-15  Linus Nordberg  <linus@swox.se>

	* configure.in: If `mpn_path' is set by user on configure command
	line, use that as path.
	* configure: Regenerate.

2000-04-15  Linus Nordberg  <linus@swox.se>

	* configure.in (hppa2.0*): Use path "hppa/hppa1_1 hppa" if no
	64-bit compiler was found.
	* configure: Regenerate.

2000-04-15  Linus Nordberg  <linus@swox.se>

	* configure.in: Honor `CC' and `CFLAGS' set by user on configure
	command line.
	* acinclude.m4: (GMP_PROG_CC_SELECT): Set CFLAGS if not set already.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2000-04-15  Linus Nordberg  <linus@swox.se>

	* acinclude.m4 (GMP_PROG_CC_FIND): Remove debug output.  Remove
	commented out code.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

	* configure.in: Make all `-mcpu' options to gcc optional.
	* configure: Regenerate.

	* tests/rand/Makefile.am: Don't do anything for target 'all'.
	* tests/rand/Makefile.in: Regenerate.

2000-04-15  Kevin Ryde  <kevin@swox.se>

	* README: Small updates.
	* NEWS: Add some things about 3.0.

	* mpz/Makefile.am (EXTRA_DIST): Remove dmincl.c.

	* Makefile.am: Use -version-info on libraries, not -release.

	* mpz/tdiv_qr.c: Add mdiv function header #ifdef BERKELEY_MP.
	* mpbsd/Makefile.am: Use mpz/tdiv_qr.c, not mdiv.c.
	* Makefile.am (MPBSD_OBJECTS): Change mdiv.lo to tdiv_qr.lo.
	(libmp_la_DEPENDENCIES): Add mp_clz_tab.lo.
	* mpbsd/mdiv.c: Remove file.

	* config/mt-linux,mt-m68k,mt-m88110,mt-ppc,mt-ppc64-aix,mt-pwr,
	mt-sprc8-gcc,mt-sprc9-gcc,mt-supspc-gcc,mt-vax,mt-x86,
	mpn/config/mt-pa2hpux,mt-sprc9,t-oldgas,t-ppc-aix,t-pwr-aix:
	Remove configure fragments not used since change to autoconf.

	* mpn/generic/bz_divrem_n.c,sb_divrem_mn.c: Add comment that
	internal functions are changeable and shouldn't be used directly.

2000-04-15  Linus Nordberg  <linus@swox.se>

	* configure.in: Remove debug output.
	* configure: Regenerate.

2000-04-15  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/tdiv_qr.c: Don't use alloca directly.

	* mpz/tdiv_qr.c: Fix typo.
	* mpz/tdiv_r.c: Fix typo.
	* mpz/tdiv_q.c: Fix typo.

	* configure.in: Disable -march=pentiumpro due to apparent compiler
	problems.

	* mpz/powm.c: Replace with new code from Paul Zimmermann.

	* mpz/tdiv_q.c: Remove debug code.

	* mpn/generic/divrem.c: Remove C++ style `//' commented-out code.
	* mpn/generic/sb_divrem_mn.c: Likewise.

2000-04-14  Torbjorn Granlund  <tege@swox.com>

	* mpz/cdiv_q.c: Change temp allocation for new requirements of
	mpz_tdiv_qr.
	* mpz/fdiv_q.c: Likewise.

	* mpn/sparc64/gmp-mparam.h: Set up parameters for TOOM3.

	* mpz/dmincl.c: Delete file.
	* mpz/tdiv_qr.c: Rewrite using mpn_tdiv_qr.
	* mpz/tdiv_r.c: Likewise.
	* mpz/tdiv_q.c: Likewise.

	* mpn/generic/tdiv_qr.c: New file.
	* mpn/generic/bz_divrem_n.c: New file.
	* mpn/generic/sb_divrem_mn.c: New file.

	* gmp-impl.h (MPZ_REALLOC): New macro.
	(mpn_sb_divrem_mn): Declare.
	(mpn_bz_divrem_n): Declare.
	(mpn_tdiv_qr): Declare.

	* configure.in (gmp_mpn_functions): Delete divrem_newt and divrem_1n;
	add tdiv_qr, bz_divrem_n, and sb_divrem_mn.
	* mpn/generic/divrem_newt.c: Delete file.
	* mpn/generic/divrem_1n.c: Delete file.

	* gmp.h (mpn_divrem_newton): Remove declaration.
	(mpn_divrem_classic): Remove declaration.

	* gmp.h (mpn_divrem): Remove function definition.
	* mpn/generic/divrem.c: Replace mpn_divrem_classic with a
	mpn_divrem wrapper.

2000-04-14  Kevin Ryde  <kevin@swox.se>

	* mpf/dump.c, mpz/dump.c, mpn/generic/dump.c,
	mpn/generic/divrem.c, mpn/generic/divrem_1n.c,
	mpn/generic/divrem_2.c, mpn/generic/divrem_newt.c,
	mpn/generic/mul.c, mpn/generic/mul_basecase.c,
	mpn/generic/mul_n.c, mpn/generic/sqr_basecase.c,
	mpn/generic/udiv_w_sdiv.c: Add comment that internal functions are
	changeable and shouldn't be used directly.

	* mpq/div.c: Use DIVIDE_BY_ZERO (previously didn't get an
	exception on zero divisor).

	* mpf/tests/t-get_d.c, mpz/tests/reuse.c: Add K&R function
	definitions.
	* mpz/tests/t-2exp.c: Don't use ANSI-ism 2ul.

	* gmp.texi (Installing MP): Build problem notes for GSYM_PREFIX
	and ranlib on native SunOS.
	Particular systems notes about AIX and HPPA shared libraries
	disabled.
	(MP Basics): Add that undocumented things shouldn't be used.
	(Introduction to MP): Add to CPUs listed.

	* acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): Don't depend on C
	having "void".

2000-04-13  Linus Nordberg  <linus@swox.se>

	* mpn/pa64/udiv_qrnnd.c (__udiv_qrnnd64): Add K&R function
	definition.

	* configure.in: Disable shared libraries for hppa*.
	(mips-sgi-irix6.*): Fix flags for 64-bit gcc.
	(hppa2.0*-*-*): Prefer c89 to cc.
	* configure: Regenerate.

	* gmp.h (gmp_randalg_t): Remove comma after last element.

	* tests/rand/t-rand.c: Add copyright notice.

2000-04-13  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/mul_n.c, mpn/generic/gcdext.c, mpz/nextprime.c,
	mpz/remove.c, mpz/root.c: Add K&R function definitions.
	* mpz/rrandomb.c: Fix typo in K&R part.
	* stack-alloc.c: Add K&R style function pointer declarations.

	* mpz/root.c: Use SQRT_OF_NEGATIVE on even roots of negatives.
	Use DIVIDE_BY_ZERO on a "zero'th" root.

	* configure: Regenerate with autoconf backpatched to fix --srcdir
	absolute path wildcards that bash doesn't like, change by Linus.

	* gmp.texi (Integer Arithmetic): Document mpz_nextprime.
	(Miscellaneous Integer Functions): Fix mpz_fits_* formatting.
	(Installing MP): Comment-out CC and CFLAGS description.

2000-04-13  Linus Nordberg  <linus@swox.se>

	* rand.c (gmp_randinit): Don't combine va_alist with ordinary
	arguments for non STDC.

2000-04-13  Torbjorn Granlund  <tege@swox.com>

	* mpz/nextprime.c: Use proper names of new random types and functions.

	* mpz/rrandomb.c: New file.
	* mpz/Makefile.am: List it.
	* mpz/Makefile.in: Regenerate.
	* Makefile.am: Here too.
	* Makefile.in: Regenerate.
	* gmp.h: Declare mpz_rrandomb.

2000-04-12  Linus Nordberg  <linus@swox.se>

	* Makefile.am, demos/Makefile.am, mpbsd/Makefile.am,
	mpbsd/tests/Makefile.am, mpf/Makefile.am, mpf/tests/Makefile.am,
	mpn/Makefile.am, mpq/Makefile.am, mpq/tests/Makefile.am,
	mpz/Makefile.am, mpz/tests/Makefile.am, tests/Makefile.am,
	tests/rand/Makefile.am (AUTOMAKE_OPTIONS): Add 'no-dependencies'.

	* Makefile.in, demos/Makefile.in, mpbsd/Makefile.in,
	mpbsd/tests/Makefile.in, mpf/Makefile.in, mpf/tests/Makefile.in,
	mpn/Makefile.in, mpq/Makefile.in, mpq/tests/Makefile.in,
	mpz/Makefile.in, mpz/tests/Makefile.in, tests/Makefile.in,
	tests/rand/Makefile.in: Regenerate.

2000-04-12  Linus Nordberg  <linus@swox.se>

	* randlc.c (gmp_randinit_lc): Disable function.
	* gmp.texi (Random State Initialization): Remove gmp_randinit_lc.

	* acinclude.m4 (GMP_CHECK_CC_64BIT): Compiling an empty main
	successfully with `-n32' will have to suffice on irix6.
	* aclocal.m4: Regenerate.

	* configure.in (sparc): Don't pass -D_LONG_LONG_LIMB to compiler.
	(mips-sgi-irix6.*): Use compiler option `-n32' rather than `-64'
	for 64-bit `cc'.  Add options for gcc.
	* configure: Regenerate.

	* mpf/urandomb.c (mpf_urandomb): Add third parameter 'nbits'.  If
	'nbits' doesn't make even limbs, shift up result before
	normalizing.

	* gmp.h (mpf_urandomb): Add parameter to prototype.

	* mpf/urandom.c: Rename file to ...
	* mpf/urandomb.c: ... this.
	* Makefile.am (MPF_OBJECTS): Change urandom.lo --> urandomb.lo.
	* Makefile.in: Regenerate.
	* mpf/Makefile.am (libmpf_la_SOURCES): Change urandom.c --> urandomb.c.
	* mpf/Makefile.in: Regenerate.

	* config.in: Regenerate for HAVE_DECL_OPTARG.

	* randraw.c (_gmp_rand): Fix bug with _LONG_LONG_LIMB.
	(lc): Change return type.
	Use one temporary storage instead of two.
	Handle seed of size 0.
	Avoid modulus operation in some cases.
	Abort if M is not a power of 2.
	Fix bug with 64-bit limbs.
	Fix bug with small seed, small A and large M.

	* tests/rand/gen.c (main): Include gmp.h.  Remove macros MIN, MAX.  Add
	option '-q'.  Don't demand argument N.  Change parameters in call
	to mpf_urandomb.

	* tests/rand/t-rand.c: New file for testing random number generation.

	* tests/rand/Makefile.am: Run t-rand for 'make check'.
	(test, bigtest): Rename to manual-test, manual-bigtest.
	* tests/rand/Makefile.in: Regenerate.

2000-04-12  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h: Include config.h before TMP_ALLOC, so
	--disable-alloca works.

	* mpbsd/Makefile.am: Don't recompile top-level sources here.
	* Makefile.am (libmp_la_DEPENDENCIES): Put objects here instead,
	add errno.lo and stack-alloc.lo.

	* mpn/asm-defs.m4: Add a test and message for the unsuitable SunOS m4.
	* gmp.texi (Installing MP): Update note on SunOS m4 failure.

	* acconfig.h: Add copyright notice using @TOP@.

	* stack-alloc.c: Use _mp_allocate_func, not malloc.
	* gmp.texi (Installing MP): Note this under --disable-alloca.

	* gmp.texi (Comparison Functions): mpz_cmp_abs => mpz_cmpabs.
	(Integer Arithmetic): mpz_prime_p not yet implemented, comment out.
	(Float Arithmetic): mpf_pow_ui now implemented, uncomment-out.
	(Miscellaneous Float Functions): Add mpf_ceil, mpf_floor, mpf_trunc.
	(Low-level Functions): Add mpn_random2, with mpn_random.

	* mpn/m68k/mc68020/udiv.S: Rename from udiv.s.
	* mpn/m68k/mc68020/umul.S: Ditto.

	* mpn/alpha/umul.asm: Rename from umul.s, remove .file and
	compiler identifiers.

	* mpn/powerpc32/syntax.h: Removed, no longer used.

	* mpn/a29k/udiv.s: Remove .file and compiler identifiers.
	* mpn/a29k/umul.s: Ditto.

	* mpn/tests/ref.c: Use WANT_ASSERT.
	* mpn/tests/ref.h: Use _PROTO.

	* mpbsd/configure.in: Removed, no longer required.

	* mpf/div.c: Use DIVIDE_BY_ZERO.
	* mpf/div_ui.c: Ditto.
	* mpf/ui_div.c: Ditto.
	* mpq/inv.c: Ditto.
	* mpf/sqrt.c: Use SQRT_OF_NEGATIVE.
	* mpz/sqrt.c: Ditto.
	* mpz/sqrtrem.c: Ditto.

	* gmp-impl.h (GMP_ERROR,SQRT_OF_NEGATIVE): New macros.
	(DIVIDE_BY_ZERO): Use GMP_ERROR.
	(__mp_bases): #define to __MPN(mp_bases).

2000-04-11  Linus Nordberg  <linus@swox.se>

	* tests/rand/stat.c (main): Initialize `l1runs' at declaration.

2000-04-11  Kevin Ryde  <kevin@swox.se>

	* mpz/fib_ui.c: Add K&R function definitions.

	* mpbsd/tests/Makefile.am (TESTS): Add a dummy test to avoid a
	shell problem with an empty "for tst in $(TESTS) ; ...".
	* mpbsd/tests/dummy.c: New file.

2000-04-10  Torbjorn Granlund  <tege@swox.com>

	* mpz/bin_uiui.c: Delete several unused variables.
	Add copyright notice.
	* mpz/bin_ui.c: Add copyright notice.

	* longlong.h: Declare __count_leading_zeros for alpha.

2000-04-10  Linus Nordberg  <linus@swox.se>

	* rand.c (gmp_randinit): Change parameter list to (rstate, alg, ...).
	* gmp.h: Change prototype accordingly.
	* mpz/pprime_p.c (millerrabin): Change call accordingly.

	* configure.in: Check for `optarg'.
	* configure: Regenerate.

	* mpn/Makefile.am: Remove incorrect comment.
	* mpn/Makefile.in: Regenerate.

	* gmp.h: Rename most of the random number functions, structs and some
	of the struct members.
	* rand.c (gmp_randinit): Likewise.
	* randclr.c (gmp_randclear): Likewise.
	* randlc.c (gmp_randinit_lc): Likewise.
	* randlc2x.c (gmp_randinit_lc_2exp): Likewise.
	* randraw.c (lc): Likewise.
	(_gmp_rand_getraw): Likewise.
	* randsd.c (gmp_randseed): Likewise.
	* randsdui.c (gmp_randseed_ui): Likewise.
	* gmp.texi: Likewise.

	* gmp.texi: Use three hyphens for a dash.
	(Low-level Functions): Remove documentation for gmp_rand_getraw.
	(Random Number Functions): Add info on where to find documentation
	on the random number functions.

	* tests/rand/Makefile.am (test, bigtest): Quote argument to grep.
	* tests/rand/Makefile.in: Regenerate.

	* tests/rand/gen.c: Declare optarg, optind, opterr if not already
	declared.
	(main): Use new names for the random stuff.
	(main): Don't use strtoul() if we don't have it.  Use strtol()
	instead, if we have it.  Otherwise, use atoi().
	(main): Use srandom/srandomdev for __FreeBSD__ only.
	(main): Use new parameter order to gmp_randinit().

	* tests/rand/stat.c: Declare optarg, optind, opterr if not already
	declared.

2000-04-10  Torbjorn Granlund  <tege@swox.com>

	* mpz/pprime_p.c: Pass 0L for mpz_scan1.  mpz_mmod => mpz_mod.
	(millerrabin): Use new random interface.
	(millerrabin): ... and don't forget to call gmp_randclear.

	* mpz/nextprime.c: New file.
	* gmp.h: Declare mpz_nextprime.
	* mpz/Makefile.am: List nextprime.c.
	* mpz/Makefile.in: Regenerate.
	* Makefile.am: List mpz/nextprime.lo.
	* Makefile.in: Regenerate.

2000-04-10  Kevin Ryde  <kevin@swox.se>

	* move-if-change, mpz/tests/move-if-change, mpq/tests/move-if-change,
	mpf/tests/move-if-change: Remove, no longer used.

	* Makefile.am (SUBDIRS): Add tests, demos, mpbsd.
	(libmp.la): New target, conditional on WANT_MPBSD.
	(libgmp_la_LIBADD): Add -lm.
	(AUTOMAKE_OPTIONS): Add check-news.
	(include_HEADERS): Setup to install gmp.h and possibly mp.h.
	(DISTCLEANFILES): Add generated files.
	(check): Remove explicit target (now uses check-recursive).

	* configure.in: Use AM_CONFIG_HEADER.
	Add --enable-mpbsd setting automake conditional WANT_MPBSD.
	Output demos/Makefile, mpbsd/Makefile and mpbsd/tests/Makefile.

	* mpz/Makefile.am: Add SUBDIRS=tests, shorten INCLUDES since now
	using AM_CONFIG_HEADER.
	* mpq/Makefile.am: Ditto.
	* mpf/Makefile.am: Ditto, and add DISTCLEANFILES.
	* mpn/Makefile.am: Shorten INCLUDES, amend some comments.
	* mpz/tests/Makefile.am: Use TESTS and $(top_builddir).
	* mpf/tests/Makefile.am: Ditto.
	* mpq/tests/Makefile.am: Ditto.
	* demos/Makefile.am: New file.

	* mpbsd/Makefile.am: New file, derived from old mpbsd/Makefile.in.
	* mpbsd/Makefile.in: Now generated from Makefile.am.
	* mpbsd/realloc.c: Removed, use mpz/realloc.c instead.
	* mpbsd/tests/Makefile.am: New file.
	* mpbsd/tests/Makefile.in: New file, generated from Makefile.am.
	* mpbsd/tests/allfuns.c: New file.

	* gmp.texi (Top): Use @ifnottex, to help makeinfo --html.
	(Installing MP): Describe --enable-mpbsd and demo programs.

	* tests/rand/statlib.c: mpz_cmp_abs => mpz_cmpabs.

	* tests/rand/Makefile.am (LDADD): Don't need -lm (now in libgmp.la).
	(EXTRA_PROGRAMS): Not noinst_PROGRAMS.
	(INCLUDES): Shorten to -I$(top_srcdir) now using AM_CONFIG_HEADER.

2000-04-09  Torbjorn Granlund  <tege@swox.com>

	* mpz/urandomm.c: Get type of count right.
	Simplify computation of nbits.

2000-04-08  Torbjorn Granlund  <tege@swox.com>

	* mpz/urandomb.c: Fix reallocation condition.
	Simplify size computation.

2000-04-08  Linus Nordberg  <linus@swox.se>

	* acinclude.m4 (GMP_CHECK_CC_64BIT): Add special handling for
	HPUX.
	(GMP_CHECK_ASM_W32): Ditto.
	* aclocal.m4: Regenerate.

	* mpn/Makefile.am: Use $(CCAS) for assembling.
	(.asm.obj): Add rule.
	* mpn/Makefile.in: Regenerate.

	* gmp.texi (Miscellaneous Integer Functions): Fix typos.

	* configure.in: Never pass `-h' to grep.
	(mips-sgi-irix6.[2-9]*): Try to find 64-bit compiler.
	(hppa1.0*-*-*): New flag for cc.
	(hppa2.0*-*-*): Try to find 64-bit compiler.  Chose path, set
	CCAS.
	* configure: Regenerate.

2000-04-08  Torbjorn Granlund  <tege@swox.com>

	* mpz/bin_ui.c: Don't depend on ANSI C features.
	* mpz/bin_uiui.c: Likewise.

	* Makefile.am (MPZ_OBJECTS): mpz/cmp_abs* => mpz/cmpabs*.
	(MPQ_OBJECTS): Add mpq/set_d.lo.
	(MPZ_OBJECTS): Add mpz/fits*.lo.
	* Makefile.in: Regenerate.

	* mpz/cmpabs.c: New name for mpz/cmp_abs.c.
	* mpz/cmpabs_ui.c: New name for mpz/cmp_abs_ui.c.
	* mpz/Makefile.am: Corresponding changes.
	* mpz/Makefile.in: Regenerate.
	* gmp.h: mpz_cmp_abs* => mpz_cmpabs*.

	* mpz/addmul_ui.c (mpn_neg1): Don't depend on ANSI C features.

	* mpz/invert.c: Use TMP_MARK since we invoke MPZ_TMP_INIT.

	* gmp.h (mpq_set_d): Declare correctly.
	(mpz_root): Use _PROTO.
	(mpz_remove): Use _PROTO.
	(mpf_pow_iu): Use _PROTO.

	* mpn/asm-defs.m4 (MPN_PREFIX): Revert previous change.
	* gmp.h (__MPN): Revert previous change.

	* mpz/perfpow.c: De-ANSI-fy.  Add copyright notice.

	* mpz/set_d.c: Misc cleanups.

	* mpq/set_d: New file.
	* gmp.h: Declare mpq_set_d.
	* mpq/Makefile.am: List set_d.c.
	* mpq/Makefile.in: Regenerate.

2000-04-07  Torbjorn Granlund  <tege@swox.com>

	* mpz/fits_sint_p.c: New file.
	* mpz/fits_slong_p.c: New file.
	* mpz/fits_sshort_p.c: New file.
	* mpz/fits_uint_p.c: New file.
	* mpz/fits_ulong_p.c: New file.
	* mpz/fits_ushort_p.c: New file.
	* gmp.h: Declare mpz_fits_*.
	* mpz/Makefile.am: List fits_* files.
	* mpz/Makefile.in: Regenerate.

2000-04-06  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Installing MP): Add known build problem SunOS 4.1.4 m4
	failure.

	* mpn/x86/pentium/gmp-mparam.h: Tune thresholds.
	* mpn/x86/p6/gmp-mparam.h: Ditto.
	* mpn/x86/k6/gmp-mparam.h: Tune thresholds, add UMUL_TIME, UDIV_TIME.
	* mpn/x86/k7/gmp-mparam.h: Tune thresholds, amend UMUL_TIME.

	* mpn/generic/mul_n.c (mpn_kara_mul_n): Add an ASSERT.
	(mpn_kara_sqr_n): Add an ASSERT, use KARATSUBA_SQR_THRESHOLD.
	(mpn_toom3_sqr_n): Eliminate second evaluate3.

	* gmp-impl.h (mpn_com_n,MPN_LOGOPS_N_INLINE): Don't allow size==0.
	(tune_mul_threshold,tune_sqr_threshold): Conditionalize
	declarations on TUNE_PROGRAM_BUILD.

	* mpn/generic/sqr_basecase.c: Add an assert.

2000-04-05  Torbjorn Granlund  <tege@swox.com>

	* gmp.h, mpn/asm-defs.m4: List the same functions for __MPN, but
	leave some commented out.

	* gmp-impl.h (MPN_LOGOPS_N_INLINE): Optimize.
	(mpn_com_n): Optimize.

	* gmp.h (__MPN): Make it use __gmpn instead of __mpn for consistency.
	* mpn/asm-defs.m4 (MPN_PREFIX): Likewise.

	* gmp.h (GMP_ERROR_ALLOCATE): New errcode.

	* gmp-impl.h (MPN_MUL_N_RECURSE): Delete.
	(MPN_SQR_RECURSE): Delete.

	* gmp-impl.h (TARGET_REGISTER_STARVED): New define.

	* gmp-impl.h (mpn_kara_sqr_n): Remap with __MPN.
	(mpn_toom3_sqr_n): Likewise.
	(mpn_kara_mul_n): Likewise.
	(mpn_toom3_mul_n): Likewise.
	(mpn_reciprocal): Likewise.

	* gmp-impl.h (__gmpn_mul_n): Remove declaration.
	(__gmpn_sqr): Likewise.
	* gmp.h (mpn_sqr_n): Declare/remap.
	* mpn/generic/mul.c (mpn_sqr_n): New name for mpn_sqr.

	* gmp.h (mpn_udiv_w_sdiv): Move __MPN remap from here...
	* gmp-impl.h: ...to here.

2000-04-05  Linus Nordberg  <linus@swox.se>

	* gmp.texi (Top): Add `Random Number Functions' to menu.
	(Introduction to MP): Fix typo.
	(MP Basics): Create menu for all sections.  Move `Random Number
	Functions' to its own chapter.  Add nodes for all sections.
	(Function Classes): Mention random generation functions under
	miscellaneous.
	(Miscellaneous Integer Functions): Update mpz_urandomb,
	mpz_urandomm.
	(Low-level Functions): Remove mpn_rawrandom.
	(Random State Initialization): Update.

	* mpf/urandom.c (mpf_urandomb): Remove SIZE parameter.  Normalize
	result correctly.

	* gmp.h (mpf_urandomb): Remove SIZE parameter.

	* randraw.c (gmp_rand_getraw): Handle the case where (1) the LC
	scheme doesn't generate even limbs and (2) more than one LC
	invocation is necessary to produce the requested number of bits.

2000-04-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_n.c (INVERSE_3): New name for THIRD, define for
	any BITS_PER_MP_LIMB.
	(MP_LIMB_T_MAX): New.
	(mpn_divexact3_n): Remove.
	(interpolate3): Use mpn_divexact_by3 instead of mpn_divexact3_n.

2000-04-05  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (KARATSUBA_MUL_THRESHOLD<2): Remove cpp test.
	(tune_mul_threshold,tune_sqr_threshold): Add declarations, used in
	development only.

	* mpn/x86/k7/sqr_basecase.asm: New file, only a copy of k6 for now.

2000-04-04  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (TOOM3_MUL_THRESHOLD): Provide default.
	(TOOM3_SQR_THRESHOLD): Provide default.

	* mpn/generic/mul_n.c: Rewrite (mostly by Robert Harley).
	* mpn/generic/mul.c: Rewrite (mostly by Robert Harley).

	* configure.in (sparcv9 64-bit OS): Set extra_functions.

2000-04-04  Linus Nordberg  <linus@swox.se>

	* mpn/generic/rawrandom.c: Remove file and replace with randraw.c
	on top level.
	(mpn_rawrandom): Rename to gmp_rand_getraw.

	* randraw.c: New file; essentially a copy of
	mpn/generic/rawrandom.c.
	(gmp_rand_getraw): New function (formerly known as mpn_rawrandom).

	* mpz/urandomb.c (mpz_urandomb): Change mpn_rawrandom -->
	gmp_rand_getraw.
	* mpz/urandomm.c (mpz_urandomb): Ditto.
	* mpf/urandom.c (mpf_urandomb): Ditto.

	* gmp.h (gmp_rand_getraw): Add function prototype.
	(mpn_rawrandom): Remove function prototype.

	* Makefile.am (libgmp_la_SOURCES): Add randraw.c.
	* Makefile.in: Regenerate.

	* configure.in (gmp_mpn_functions): Remove rawrandom.
	* configure: Regenerate.

2000-04-04  Linus Nordberg  <linus@swox.se>

	* gmp.h (GMP_ERROR enum): Remove comma after last enumeration
	since the AIX compiler (xlc) doesn't like that.

	* randlc.c (gmp_rand_init_lc): Allocate enough space for seed to
	hold any upcoming seed.
	* randlc2x.c (gmp_rand_init_lc_2exp): Likewise.

	* mpn/generic/rawrandom.c: Remove debugging code.
	(mpn_lc): Don't reallocate seed.

	* mpz/urandomm.c (mpz_urandomm): Implement function.

	* mpz/urandomb.c (mpz_urandomb): Fix typo in function definition.

2000-04-04  Kevin Ryde  <kevin@swox.se>

	* make.bat: Removed (no longer works, no longer supported).
	* mpn/msdos/asm-syntax.h: Removed (was used only by make.bat).

2000-04-03  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/brandom.c: New file, replacing random2.

2000-04-02  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc32/v9/submul_1.asm: Change some carry-form instructions
	into their plain counterparts.

	* mpn/sparc64/copyi.asm: Avoid executing ALIGN.

	* mpn/sparc64/mul_1.asm: Handle overlap of rp/sp.
	* mpn/sparc64/addmul_1.asm: Likewise.
	* mpn/sparc64/submul_1.asm: Likewise.

2000-04-01  Linus Nordberg  <linus@swox.se>

	* gmp.h: Fix function prototypes for randomization functions.
	(__gmp_rand_lc_scheme_struct): Replace `m' with `m2exp'. Remove
	unused `bits'.
	(__gmp_rand_data_lc): Add `m2exp' as another way of representing
	the modulus.
	(__gmp_rand_state_struct): Remove unused `size'.

	* rand.c (__gmp_rand_scheme): Use better multipliers.  Remove test
	schemes.  Replace `m' with `m2exp'.
	(gmp_rand_init): Change parameters and return type.  Use `m2exp'
	instead of `m'.  Set `gmp_errno' on error.  Disable BBS algorithm.

	* randlc.c (gmp_rand_init_lc): Don't use malloc().  Change
	parameters.

	* randclr.c (gmp_rand_clear): Don't use free().  Disable BBS
	algorithm.  Set `gmp_errno' on error.

	* randlc2x.c (gmp_rand_init_lc_2exp): New function.
	* randsd.c (gmp_rand_seed): New function.
	* randsdui.c (gmp_rand_seed_ui): New function.
	* randlcui.c: Remove unused file.

	* mpn/generic/rawrandom.c (mpn_rawrandom): Rewrite.
	(mpn_lc): New static function.

	* mpz/urandomb.c (mpz_urandomb): Use ABSIZ() instead of SIZ() for
	determining size of ROP.

	* mpf/urandom.c (mpf_urandomb): Add third parameter, nbits.  (Not
	used yet!)
	Change parameter order to mpn_rawrandom().

	* Makefile.am (libgmp_la_SOURCES): Add errno.c, randlc2x.c,
	randsd.c, randsdui.c.  Remove randui.c.
	(MPZ_OBJECTS): Rename urandom.lo --> urandomb.lo.  Add urandomm.lo.
	* Makefile.in: Regenerate.

	* mpz/Makefile.am (libmpz_la_SOURCES): Change urandom.c -->
	urandomb.c.  Add urandomm.c.
	* mpz/Makefile.in: Regenerate.

	* tests/rand/Makefile.am (noinst_PROGRAMS): Change findcl --> findlc.
	Add gen.static.
	* tests/rand/Makefile.in: Regenerate.

	* tests/rand/gen.c (main): Add mpz_urandomm.  Add command line options
	`-C', `-m', extend `-a'.  Use *mp*_*rand*() with new parameters.  Call
	gmp_rand_seed().

2000-04-01  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_CHECK_ASM_DATA): Plain .data for hpux.
	* configure.in (CCAS): No CFLAGS, they're added when it's used.
	(CONFIG_SRCDIR): New define for config.m4.
	* mpn/sparc64/addmul_1.asm: Use it for an include().
	* mpn/sparc64/submul_1.asm: Ditto.
	* mpn/sparc64/mul_1.asm: Ditto.

2000-03-31  Linus Nordberg  <linus@swox.se>

	* mpz/urandom.c: Rename to...
	* mpz/urandomb.c: ...this.

	* mpz/urandomb.c (mpz_urandomb): Change operand order in call to
	mpn_rawrandom().  Use ABSIZ() instead of SIZ() when checking size
	of ROP.

	* mpz/urandomm.c: New file.

2000-03-31  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_CHECK_ASM_MMX): Give a warning when mmx code
	will be omitted.

2000-03-30  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/mul_1h.asm: New file.
	* mpn/sparc64/addmul_1h.asm: New file.
	* mpn/sparc64/submul_1h.asm: New file.
	* mpn/sparc64/mul_1.asm: Rewrite.
	* mpn/sparc64/addmul_1.asm: Rewrite.
	* mpn/sparc64/submul_1.asm: Rewrite.

2000-03-28  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc32/v9/mul_1.asm: Fix typo in branch prediction.
	* mpn/sparc32/v9/addmul_1.asm: Likewise.
	* mpn/sparc32/v9/submul_1.asm: Likewise.

2000-03-25  Kevin Ryde  <kevin@swox.se>

	* mpn/lisp/gmpasm-mode.el: Fix some comment detection, use custom,
	fontify more keywords, turn into a standalone mode.

	* stamp-vti: New file, generated together with version.texi.

	* acinclude.m4 (GMP_VERSION,GMP_HEADER_GETVAL): New macros.
	* configure.in (AM_INIT_AUTOMAKE): Use GMP_VERSION.

2000-03-24  Kevin Ryde  <kevin@swox.se>

	* INSTALL: Updates for new configure system.

	* configure.in: Add gmp_optcflags_gcc for the x86s, setting -mcpu
	and -march.

2000-03-23  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c (mpz_eval_expr): Properly initialize rhs/lhs
	for ROOT.

2000-03-23  Kevin Ryde  <kevin@swox.se>

	* config.guess (i?86:*:*:*): Use uname -m if detection program fails.

	* mpn/x86/README: Remove remarks on the now implemented MMX shifts.
	* mpn/x86/k6/README: Add speed of mpn_divexact_by3, update mpn_mul_1.

	* gmp.texi (Installing MP): Corrections to target CPUs.

	* version.c: Use VERSION from config.h, add copyright comment,
	restore "const" somehow lost.

	* configure.in (a29k*-*-*): Fix directory name.

2000-03-22  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c (op_t): Add ROOT.
	(fns): Add ROOT.
	(mpz_eval_expr): Add ROOT.

	* mpz/root.c: Handle roots of negative numbers.
	Fix other border cases.
	Fix rare memory leakage.

	* errno.c: New file.

2000-03-21  Torbjorn Granlund  <tege@swox.com>

	* gmp.h (error number enum): New anonymous enum.
	(gmp_errno): New.

	* gmp.h (__GNU_MP_VERSION, __GNU_MP_VERSION_MINOR): Bump for GMP 3.0.

2000-03-20  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/unicos.m4 (FLOAT64): New define.
	* mpn/alpha/default.m4 (FLOAT64): New define.
	* mpn/alpha/invert_limb.asm (C36): Use FLOAT64.

2000-03-21  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/k6/diveby3.asm: Tiny speedup.

	* acinclude.m4 (GMP_CHECK_ASM_SHLDL_CL): New macro.
	* configure.in: Use it, set WANT_SHLDL_CL in config.m4.
	* mpn/x86/x86-defs.m4 (shldl,shrdl,shldw,shrdw): New macros, using
	WANT_SHLDL_CL.
	* mpn/x86/k6/mmx/lshift.asm: Use shldl macro.
	* mpn/x86/k7/mmx/lshift.asm: Ditto.
	* mpn/x86/pentium/mmx/lshift.asm: Ditto.
	* mpn/x86/k6/mmx/rshift.asm: Use shrdl macro.
	* mpn/x86/k7/mmx/rshift.asm: Ditto.
	* mpn/x86/pentium/mmx/rshift.asm: Ditto.
	* mpn/x86/README.family: Add a note about this.

2000-03-20  Linus Nordberg  <linus@swox.se>

	* mpn/generic/rawrandom.c (mpn_rawrandom): Handle seed value of 0
	correctly.

	* configure.in: Fix detection of alpha flavour.
	Set compiler options for `sparcv8'.
	* configure: Regenerate.

	* rand.c (__gmp_rand_scheme): Clean up some.  Use slightly better
	multipliers.

	* configure.in (AC_OUTPUT): Add tests/Makefile and
	tests/rand/Makefile.

	* acinclude.m4 (AC_CANONICAL_BUILD): Define to
	`_AC_CANONICAL_BUILD' to deal with incompatibilities between
	Autoconf and Libtool.
	(AC_CHECK_TOOL_PREFIX): Likewise.

	* Makefile.am (EXTRA_DIST): Add directory `tests'.

	* mkinstalldirs: Update (Automake 2000-03-17).
	* ltconfig: Update (Libtool 2000-03-17).
	* ltmain.sh: Ditto.

	* configure: Regenerate with new autoconf/-make/libtool suite.
	* aclocal.m4: Ditto.
	* config.in: Ditto.
	* all Makefile.in's: Ditto.

2000-03-20  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c (main): Don't allow `-N' for base, require `-bN'.

	* mpn/alpha/unicos.m4 (cvttqc): New define.
	* mpn/alpha/invert_limb.asm: Use new define for cvttqc.

2000-03-19  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/k6/sqr_basecase.asm: Tiny amendments for 3x3 case.

	* gmp.texi: Use @include version.texi.
	Use @email and @uref.
	(Installing MP): Rewrite for new configure.
	(Low-level Functions): Add mpn_divexact_by3.

	* configure.in (--enable-alloca): New option.
	* acconfig.h (USE_STACK_ALLOC): For --disable-alloca.

2000-03-18  Kent Boortz  <kent@swox.com>

	* macos: New directory with macos port files.

2000-03-17  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (union ieee_double_extract): Check _CRAYMPP.

	* mpn/asm-defs.m4 (invert_normalized_limb): Define.

	* mpn/alpha: Translate `.s' files to `.asm'.

	* configure: Regenerate.

	* mpn/alpha/invert_limb.asm: Replace dash in file name with underscore.
	* configure.in: Corresponding change.

	* configure.in: Assign special "path" for alphaev6.

	* mpn/alpha/unicos.m4: New file.
	* configure.in (alpha*-cray-unicos*): [This part of the change
	commited 2000-03-13 by linus]
	* mpn/alpha/default.m4: New file.
	* configure.in (alpha*-*-*): Use it.

2000-03-17  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium/rshift.S: Use plain rcrl (not rcrl $1) for
	shift-by-1 case, significant speedup.
	* mpn/x86/pentium/README: Add shift-by-1 speed.

2000-03-16  Torbjorn Granlund  <tege@swox.com>

	* config.guess: Handle Cray T3D/E.

2000-03-15  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/diveby3.c: New file.
	* mpn/x86/diveby3.asm: New file.
	* mpn/x86/k6/diveby3.asm: New file.
	* gmp.h (mpn_divexact_by3): Prototype and define.
	* mpn/asm-defs.m4: define_mpn(divexact_by3).
	* configure.in (gmp_mpn_functions): Add diveby3.

	* mpn/x86/pentium/sqr_basecase.asm: A few better addressing modes.

	* configure.in: Add AC_C_STRINGIZE and AC_CHECK_TYPES((void)).
	* gmp-impl.h (ASSERT): Use them.

	* mpn/x86/k7/mmx/lshift.asm: New file.
	* mpn/x86/k7/mmx/rshift.asm: Rewrite simple loop and return value
	handling, add some pictures.

2000-03-14  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc32/v8/mul_1.asm: Make PIC actually work.
	* mpn/sparc32/v8/addmul_1.asm: Likewise.

	* mpn/sparc32/v8/mul_1.asm: Use m4 ifdef, not cpp #if.
	* mpn/sparc32/v8/addmul_1.asm: Likewise.

	* mpn/asm-defs.m4 (C): New define for comments.
	* mpn/sparc32: Start comments with `C'.

	* config.guess: Remove `SunOS 6' handling.
	Recognize sun4m and sun4d architectures under old SunOS.

2000-03-14  Linus Nordberg  <linus@swox.se>

	* configure.in (gmp_srclinks): Set to list of links created by
	configure.
	* configure: Regenerate.

	* Makefile.am (libgmp_la_LDFLAGS): Set version info.
	(DISTCLEANFILES): Include @gmp_srclinks@.
	* Makefile.in: Regenerate.

2000-03-13  Linus Nordberg  <linus@swox.se>

	* configure.in: Remove some changequote's by quoting the strings
	containing `[]'.
	Add support for `alpha*-cray-unicos*'.
	AC_DEFINE `_LONG_LONG_LIMB' instead of passing it in CFLAGS.
	Conditionalize the assembler syntax checks.
	* configure: Regenerate.
	* config.in: Regenerate.

	* acinclude.m4 (GMP_PROG_CCAS): Remove macro.
	* aclocal.m4: Regenerate.

2000-03-13  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/p6/README: New file.

	* mpn/x86/k6/mul_1.asm: Rewrite, smaller and slightly faster.

	* mpn/lisp/gmpasm-mode.el: Rewrite assembler comment detection and
	handling.

	* configure.in: Separate mmx directories for each x86 flavour.
	* configure: Regenerate.

2000-03-12  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/x86-defs.m4 (ALIGN): Supplement definition from
	config.m4 so as to pad with nops not zeros on old gas.

	* mpn/x86/k7/mmx/copyd.asm: Use plain emms (femms is just an alias
	for emms now).
	* mpn/x86/k7/mmx/copyi.asm: Ditto.
	* mpn/x86/k7/mmx/rshift.asm: Ditto.
	* mpn/x86/x86-defs.m4: Amend comments.

	* mpn/x86/mod_1.asm: Add comments on speeds.

	* mpn/x86/pentium/mmx/lshift.asm: New file.
	* mpn/x86/pentium/mmx/rshift.asm: New file.
	* mpn/x86/pentium/README: Add speeds of various routines.

2000-03-10  Linus Nordberg  <linus@swox.se>

	* configure.in: Reorganize.
	Use AC_CHECK_TOOL to find `ar'.
	Add post-includes `regmap.m4' and `aix.m4' for AIX targets.
	asm-syntax.h is not needed for PPC or sparc anymore.
	(powerpc64-*-aix*): Compiler is always 64-bit. Use `-q64
	-qtune=pwr3' to xlc and `-maix64 -mpowerpc64' to gcc.  Pass `-X
	64' to `ar' and `nm'.
	(pentiummmx): Use GMP_CHECK_ASM_MMX and avoid MMX assembly path if
	assembler is not MMX capable.
	(pentium[23]): Likewise.
	(athlon): Likewise.
	(k6*): Likewise.
	* configure: Regenerate.

	* acinclude.m4 (GMP_PROG_CC_WORKS): New macro.
	(GMP_PROG_CC_FIND): Use GMP_PROG_CC_WORKS instead of
	AC_TRY_COMPILER.  Make sure that the *first* working 32-bit
	compiler is used if no 64-bit compiler is found.
	(GMP_CHECK_ASM_MMX): New macro.
	* aclocal.m4: Regenerate.

	* Makefile.in: Regenerate.  (CC_TEST removed.)
	* mpf/Makefile.in: Likewise.
	* mpn/Makefile.in: Likewise.
	* mpq/Makefile.in: Likewise.
	* mpz/Makefile.in: Likewise.
	* mpf/tests/Makefile.in: Likewise.
	* mpq/tests/Makefile.in: Likewise.
	* mpz/tests/Makefile.in: Likewise.

	* acconfig.h (_LONG_LONG_LIMB): Add.

	* gmp-impl.h: Include config.h only if HAVE_CONFIG_H is defined.

2000-03-09  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium/mul_basecase.S: Small speedup by avoiding an AGI.

	* mpn/x86/k7/mmx/copyd.asm: Tiny speedup by avoiding popl.
	* mpn/x86/k7/mmx/copyi.asm: Ditto.
	* mpn/x86/k7/mul_basecase.asm: Ditto.

2000-03-07  Torbjorn Granlund  <tege@swox.com>

	* config.guess: Better recognize POWER/PowerPC processor type.

2000-03-07  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/addsub_n.c: Use HAVE_NATIVE_* now in config.h.

	* mpn/asm-defs.m4: Add comments about SysV m4.
	(m4_log2): Don't use <<.
	(m4_lshift,m4_rshift): New macros.

2000-03-06  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/regmap.m4: Map cr0 => `0', etc.

2000-03-06  Kevin Ryde  <kevin@swox.se>

	* mpn/tests/ref.c (refmpn_divexact_by3): New function.
	* mpn/tests/ref.h: Prototype.

	* acconfig.h (WANT_ASSERT): New define.
	* configure.in (--enable-assert): Turn on WANT_ASSERT.
	* assert.c: New file.
	* Makefile.am: Add to build.
	* gmp-impl.h (ASSERT): New macro.
	(ASSERT_NOCARRY) Renamed from assert_nocarry.
	(MPZ_CHECK_FORMAT): Use ASSERT_ALWAYS.
	* mpn/tests/ref.c: Use ASSERT.
	* mpf/get_str.c: Use ASSERT_ALWAYS.
	* mpf/set_str.c: Remove old assert macro.

	* mpn/x86/x86-defs.m4 (cmovnz_ebx_ecx): New macro.
	* mpn/x86/p6/aorsmul_1.asm: Use cmov.

	* mpn/x86/lshift.S: Use %dl with testb, not %edx. No object code
	change, testb was still getting generated.
	* mpn/x86/rshift.S: Ditto.

2000-03-03  Torbjorn Granlund  <tege@swox.com>

	* longlong.h: Add IA-64 support.

	* mpn/powerpc32: Misc cleanups.
	* mpn/powerpc32/aix.m4: New file (mainly by Linus).
	* mpn/powerpc64/aix.m4: New file (mainly by Linus).
	* mpn/powerpc64: Translate `.S' files to `.asm'.

	* configure.in: Fix tyops.
	* configure: Regenerate.

2000-03-02  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/regmap.m4: New file.
	* mpn/powerpc32: Translate `.S' files to `.asm'.
	* configure.in: Use mpn/powerpc32/regmap.m4 for powerpc targets
	except some weird ones.

2000-03-03  Kevin Ryde  <kevin@swox.se>

	* mpn/lisp/gmpasm-mode.el: Suppress postscript comment prefixes in
	filladapt.

	* mpn/x86/pentium/sqr_basecase.asm: New file.
	* mpn/x86/pentium/gmp-mparam.h (KARATSUBA_SQR_THRESHOLD): Update.

	* configure.in: Add --enable-assert, enable k6 logops functions.

	* mpn/x86/k6/mmx/copyi.asm: Use m4 for divide, not as.
	* mpn/x86/k6/mmx/copyd.asm: Ditto.
	* mpn/x86/README.family: Add a note on this.

2000-03-02  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/k6/aors_n.asm: Don't use stosl.
	* mpn/x86/copyi.asm: Use cld to clear direction flag.
	* mpn/x86/divrem_1.asm: Ditto.
	* mpn/x86/README.family: Add a note on this.

	* mpn/x86/k6/mmx/copyi.asm: Rewrite.
	* mpn/x86/k6/mmx/copyd.asm: New file.
	* mpn/x86/k6/README: Update, and small amendments.

	* mpn/x86/x86-defs.m4 (Zdisp): New macro.
	* mpn/asm-defs.m4 (m4_stringequal_p): New macro.

	* mpn/x86/p6/aorsmul_1.asm: Use Zdisp to force zero displacements.
	* mpn/x86/k6/aorsmul_1.asm: Ditto.
	* mpn/x86/k6/mul_1.asm: Ditto.
	* mpn/x86/k6/mul_basecase.asm: Ditto.
	* mpn/x86/k7/aors_n.asm: Ditto.
	* mpn/x86/k7/aorsmul_1.asm: Ditto.
	* mpn/x86/k7/mul_1.asm: Ditto.
	* mpn/x86/k7/mul_basecase.asm: Ditto.
	* mpn/x86/README.family: Add a note on this.

2000-02-27  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/divrem.c (mpn_divrem_classic): Patch to avoid gcc
	2.7.2.3 i386 register handling bug.

	* mpn/x86/k6/aors_n.asm: Rewrite.
	* mpn/x86/k6/mmx/lshift.asm: Rewrite.
	* mpn/x86/k6/mmx/rshift.asm: Rewrite.
	* mpn/x86/k6/README: Update.

	* mpn/x86/k7/mmx/copyd.asm: Support size==0.
	* mpn/x86/k7/mmx/copyi.asm: Ditto.
	* mpn/x86/k6/mmx/copyi.asm: Ditto.
	* gmp-impl.h: Comment size==0 allowed in MPN_COPY_INCR and
	MPN_COPY_DECR.
	* configure.in: Enable x86 copyi, copyd; add k6 com_n.

2000-02-25  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c (power): Move factorial handing code from `factor'
	to `power'.

	* demos/factorize.c (factor_using_pollard_rho): Move resetting of `c'
	to before checking for a non-zero gcd.

2000-02-25  Kevin Ryde  <kevin@swox.se>

	* mpn/asm-defs.m4 (MULFUNC_PROLOGUE): New macro by Linus.
	* mpn/x86/k6/aors_n.asm: Use MULFUNC_PROLOGUE.
	* mpn/x86/k6/aorsmul_1.asm: Ditto.
	* mpn/x86/k7/aors_n.asm: Ditto.
	* mpn/x86/k7/aorsmul_1.asm: Ditto.
	* mpn/x86/p6/aorsmul_1.asm: Ditto.

	* mpn/tests/ref.c (refmpn_copyi,refmpn_copyd): Allow size==0.

	* gmp-impl.h: Move mpn_and_n, mpn_andn_n, mpn_com_n, mpn_ior_n,
	mpn_iorn_n, mpn_nand_n, mpn_nior_n, mpn_xor_n and mpn_xorn_n here
	from gmp.h.  Use HAVE_NATIVE_mpn_* to make these functions or
	inlines.

	* gmp-impl.h: Move mpn_copyd, mpn_copyi here from gmp.h.
	* gmp-impl.h (MPN_COPY_INCR): Use mpn_copyi if available.
	* gmp-impl.h (MPN_COPY_DECR): Use mpn_copyd if available.

	* mpn/x86/k6/mmx/com_n.asm: Moved into mmx subdirectory.
	* mpn/x86/k6/mmx/copyi.asm: Ditto.
	* mpn/x86/k6/mmx/lshift.asm: Ditto.
	* mpn/x86/k6/mmx/rshift.asm: Ditto.
	* mpn/x86/k7/mmx/rshift.asm: Ditto.
	* mpn/x86/k6/mmx/logops_n.asm: New file.
	* configure.in (k6*-*-*): Add logops_n.asm.
	* mpn/x86/k6/README: Update.

	* mpn/x86/k7/mmx/copyi.asm: New file.
	* mpn/x86/k7/mmx/copyd.asm: New file.
	* mpn/x86/k7/README: Update.

2000-02-24  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/x86-defs.m4 (femms): Generate emms if 3dnow not available.
	* mpn/x86/x86-defs.m4 (FRAME_popl): New macro.

	* Makefile.am: Add info_TEXINFOS = gmp.texi

	* mpn/x86/divrem_1.asm: Moved from mpn/x86/k6, allow size==0,
	conditionalize loop versus decl/jnz.
	* mpn/x86/mod_1.asm: Ditto.
	* mpn/x86/divmod_1.asm: Removed.
	* gmp.texi (mpn_divrem_1,mpn_mod_1): Add that size==0 is allowed.
	* mpn/tests/ref.c (refmpn_divrem_1c,etc): Allow size==0.

	* mpn/x86/k6/aors_n.asm: Avoid gas 1.92.3 leal displacement
	expression problem.
	* mpn/x86/k6/aorsmul_1.asm: Ditto.
	* mpn/x86/k6/mul_1.asm: Ditto.
	* mpn/x86/k6/mul_basecase.asm: Ditto
	* mpn/x86/k7/aors_n.asm: Ditto.
	* mpn/x86/k7/aorsmul_1.asm: Ditto.
	* mpn/x86/k7/mul_1.asm: Ditto.
	* mpn/x86/k7/mul_basecase.asm: Ditto.
	* mpn/x86/k7/rshift.asm: Ditto.
	* mpn/x86/p6/aorsmul_1.asm: Ditto.
	* mpn/x86/README.family: Describe problem.

2000-02-24  Linus Nordberg  <linus@swox.se>

	* acinclude.m4 (GMP_CHECK_ASM_LSYM_PREFIX): Add dummy symbol to
	testcase to avoid nm failure.  Try nm before piping to grep.

	* acconfig.h: Undef HAVE_NATIVE_func for every mpn function found
	in gmp.h.

	* configure.in: Invoke AC_CONFIG_HEADERS.
	Don't invoke AM_CONFIG_HEADER; it makes autoconf confused.
	Dig out entry points declared in assembly code and AC_DEFINE proper
	HAVE_NATIVE_func.

	* mpn/asm-defs.m4 (MULFUNC_PROLOGUE): New macro.

	* mpn/x86/p6/aorsmul_1.asm: Use MULFUNC_PROLOGUE.
	* mpn/x86/k6/aors_n.asm: Likewise.

	* Makefile.am (EXTRA_DIST): Add config.in; needed when we don't
	use AM_CONFIG_HEADER in configure.in.

	* mpn/Makefile.am (INCLUDES): Add `-I..' for config.h and
	gmp-mparam.h.
	* mpf/Makefile.am: Likewise.
	* mpq/Makefile.am: Likewise.
	* mpz/Makefile.am: Likewise.

	* mpf/tests/Makefile.am (INCLUDES): Add `-I../..' for config.h and
	gmp-mparam.h.
	* mpq/tests/Makefile.am: Likewise.
	* mpz/tests/Makefile.am: Likewise.

	* configure: Regenerate.
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* Makefile.in: Regenerate.
	* mpf/Makefile.in: Regenerate.
	* mpn/Makefile.in: Regenerate.
	* mpq/Makefile.in: Regenerate.
	* mpz/Makefile.in: Regenerate.
	* mpf/tests/Makefile.in: Regenerate.
	* mpq/tests/Makefile.in: Regenerate.
	* mpz/tests/Makefile.in: Regenerate.

2000-02-23  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/addmul_1.S: Amend comments, this code no longer used by
	PentiumPro.
	* mpn/x86/submul_1.S: Ditto.

	* mpn/x86/k6/com_n.asm: Rewrite, smaller but same speed.

	* mpn/x86/addmul_1.S: Add PROLOGUE and EPILOGUE to get .type and
	.size for ELF.  Rename #define size to n to avoid .size.
	* mpn/x86/lshift.S: Ditto.
	* mpn/x86/mul_1.S: Ditto.
	* mpn/x86/mul_basecase.S: Ditto.
	* mpn/x86/rshift.S: Ditto.
	* mpn/x86/submul_1.S: Ditto.
	* mpn/x86/udiv.S: Ditto.
	* mpn/x86/umul.S: Ditto.
	* mpn/x86/pentium/add_n.S: Ditto.
	* mpn/x86/pentium/addmul_1.S: Ditto.
	* mpn/x86/pentium/lshift.S: Ditto.
	* mpn/x86/pentium/mul_1.S: Ditto.
	* mpn/x86/pentium/mul_basecase.S: Ditto.
	* mpn/x86/pentium/rshift.S: Ditto.
	* mpn/x86/pentium/sub_n.S: Ditto.
	* mpn/x86/pentium/submul_1.S: Ditto.

2000-02-22  Linus Nordberg  <linus@swox.se>

	* acinclude.m4 (GMP_INIT): Use temporary file cnfm4p.tmp for
	post-defines.
	(GMP_FINISH): Ditto.
	(GMP_DEFINE): Add third optional argument specifying location in
	outfile.
	(GMP_DEFINE_RAW): New macro.
	* aclocal.m4: Regenerate.

	* configure.in: Add `HAVE_TARGET_CPU_$target_cpu' using
	GMP_DEFINE_RAW.
	* configure: Regenerate.

	* mpz/tests/Makefile.am: New test t-root.
	* mpz/tests/Makefile.in: Regenerate.

2000-02-22  Torbjorn Granlund  <tege@swox.com>

	* mpz/root.c: Complete rewrite; still primitive, but at least correct.
	* mpz/tests/t-root.c: New test.

2000-02-22  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/k7/mul_basecase.asm: New file.
	* mpn/x86/k7/README: Add mpn_mul_basecase speed.
	* mpn/x86/k7/gmp-mparam.h: New file.

	* mpn/x86/x86-defs.m4 (loop_or_decljnz,cmov_bytes): New macros.
	* mpn/asm-defs.m4 (m4_ifdef_anyof_p): New macro.

	* mpn/x86/k6/aorsmul_1.asm: New file.
	* mpn/x86/k6/addmul_1.S: Removed (was a copy of pentium version).
	* mpn/x86/k6/submul_1.S: Removed (was a copy of pentium version).

	* mpn/x86/p6/aorsmul_1.asm: Use OPERATION_addmul_1 and
	OPERATION_submul_1.
	* mpn/x86/k6/aors_n.asm: Use OPERATION_add_n and OPERATION_sub_n.
	* configure.in: Declare multi-function files for k6 and p6.

	* configure.in: Add HAVE_TARGET_CPU_$target_cpu for config.m4.
	* mpn/asm-defs.m4 (define_not_for_expansion): New macro.

	* mpn/generic/divrem_1n.c (__gmpn_divrem_1n): New file, split from
	mpn/generic/divrem_1.c.
	* mpn/generic/divrem_1.c: Ditto.
	* configure.in (gmp_mpn_functions): Ditto.

2000-02-21  Torbjorn Granlund  <tege@swox.com>

	* gmp.h: Undo 1996-10-06 NeXT change, it was clearly improperly
	written.

2000-02-21  Linus Nordberg  <linus@swox.se>

	* configure.in: Link <src>/mpn/asm-defs.m4 to <build>mpn/asm.m4.
	* configure: Regenerate.

2000-02-21  Linus Nordberg  <linus@swox.se>

	* mpn/x86/k7/aorsmul_1.asm: Change OPERATION_ADDMUL -->
	OPERATION_addmul_1.  Change OPERATION_SUBMUL -->
	OPERATION_submul_1.

	* mpn/x86/k7/aors_n.asm: Change OPERATION_ADD --> OPERATION_add_n.
	Change OPERATION_SUB --> OPERATION_sub_n.

	* mpn/Makefile.am: Pass -DOPERATION_$* to preprocessors.
	* mpn/Makefile.in: Regenerate.

	* configure.in: Symlink mpn/asm-defs.m4 to build-dir/mpn.  Link
	multi-function files to mpn/<function>.asm and remove function
	name from `gmp_mpn_functions'.
	* configure: Regenerate.

	* acinclude.m4 (GMP_FINISH): Tell user what we're doing.
	* aclocal.m4: Regenerate.

2000-02-21  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h: Rename __gmpn_mul_basecase to mpn_mul_basecase and
	__gmpn_sqr_basecase to mpn_sqr_basecase, remove __gmpn prototypes.
	* mpn/x86/mul_basecase.S: Ditto.
	* mpn/x86/pentium/mul_basecase.S: Ditto.

	* configure.in (gmp_m4postinc): Use x86-defs.m4 on athlon-*-* too.

2000-02-20  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GSYM_PREFIX): Drop $1, change by Linus.
	* mpn/asm-defs.m4 (PROLOGUE,EPILOGUE): Use GSYM_PREFIX as a
	string, change by Linus.
	* mpn/x86/x86-defs.m4: Use GSYM_PREFIX as a string.

	* mpn/x86/k6/gmp-mparam.h: New file.
	* mpn/asm-defs.m4 (m4_warning): New macro.

	* mpn/x86/README: Amendments per new code and directories.
	* mpn/x86/README.family: New file.
	* mpn/x86/k6/README: New file.
	* mpn/x86/k7/README: New file.

	* mpn/generic/mul_n.c: Rename __gmpn_mul_basecase to
	mpn_mul_basecase and __gmpn_sqr_basecase to mpn_sqr_basecase.
	* mpn/generic/mul_basecase.c: Ditto.
	* mpn/generic/sqr_basecase.c: Ditto.
	* mpn/generic/mul.c: Ditto.

2000-02-19  Linus Nordberg  <linus@swox.se>

	* configure.in: Don't try to symlink more than one multi-func
	file.
	* configure: Regenerate.

2000-02-18  Linus Nordberg  <linus@swox.se>

	* acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): GMP_DEFINE
	`GSYM_PREFIX'.  Run ACTIONs even when value is found in cache.
	(GMP_CHECK_ASM_ALIGN_LOG): GMP_DEFINE `ALIGN'.  Run ACTIONs even
	when value is found in cache.
	* aclocal.m4: Regenerate.

	* configure.in: Don't define GSYM_PREFIX or ALIGN.
	Add mechanism for multi-function files.
	* configure: Regenerate.

2000-02-18  Kevin Ryde  <kevin@swox.se>

	* configure.in (gmp_m4postinc): Enable x86-defs.m4.
	* mpn/x86/k7/mul_1.asm: Fix include.
	* mpn/x86/k6/mul_basecase.S: Removed (copy of the pentium version).
	* mpn/x86/k6/mul_basecase.asm: New file.
	* mpn/x86/k6/sqr_basecase.asm: New file.
	* mpn/x86/k6/com_n.asm: New file.
	* mpn/x86/k6/copyi.asm: New file.
	* gmp.texi (Low-level Functions): Clarify mpn overlaps permitted.
	* gmp-impl.h (MPN_OVERLAP_P): New macro.
	* gmp-impl.h (assert_nocarry): New macro.
	* mpn/tests/ref.c: New file, based in part on other mpn/tests/*.c.
	* mpn/tests/ref.h: New file.

2000-02-17  Linus Nordberg  <linus@swox.se>

	* Makefile.am (dist-hook): Don't include any emacs backup files
	(*.~*) in dist.
	* Makefile.in: Regenerate.

2000-02-17  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc32/v9/mul_1.asm: Use `rd' to get current PC; get rid of
	getpc function.
	* mpn/sparc32/v9/addmul_1.asm: Likewise.
	* mpn/sparc32/v9/submul_1.asm: Likewise.

2000-02-17  Kevin Ryde  <kevin@swox.se>

	* gmp.h: Add prototypes and defines for mpn_and_n, mpn_andn_n,
	mpn_com_n, mpn_copyd, mpn_copyi, mpn_ior_n, mpn_iorn_n,
	mpn_mul_basecase, mpn_nand_n, mpn_nior_n, mpn_sqr_basecase,
	mpn_xor_n, mpn_xorn_n.

	* mpn/asm-defs.m4: Many additions making up initial version.
	* mpn/asm-defs.m4 (L): Use defn(`LSYM_PREFIX').
	* mpn/x86/x86-defs.m4: New file.
	* mpn/x86/k6/aors_n.asm: New file.
	* mpn/x86/k6/divmod_1.asm: New file.
	* mpn/x86/k6/divrem_1.asm: New file.
	* mpn/x86/k6/lshift.S: Removed (was a copy of the pentium version).
	* mpn/x86/k6/lshift.asm: New file.
	* mpn/x86/k6/mod_1.asm: New file.
	* mpn/x86/k6/mul_1.S: Removed (was a copy of the pentium version).
	* mpn/x86/k6/mul_1.asm: New file.
	* mpn/x86/k6/rshift.S: Removed (was a copy of the pentium version).
	* mpn/x86/k6/rshift.asm: New file.
	* mpn/x86/k7/aors_n.asm: New file.
	* mpn/x86/k7/aorsmul_1.asm: New file.
	* mpn/x86/k7/mul_1.asm: New file.
	* mpn/x86/k7/rshift.asm: New file.
	* mpn/x86/p6/aorsmul_1.asm: New file.
	* mpn/x86/copyi.asm: New file.
	* mpn/x86/copyd.asm: New file.
	* mpn/lisp/gmpasm-mode.el: New file.

2000-02-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc32/v9/mul_1.asm: Conditionalize for PIC.
	* mpn/sparc32/v9/addmul_1.asm: Likewise.
	* mpn/sparc32/v9/submul_1.asm: Likewise.
	* mpn/sparc32/v8/supersparc/udiv.asm: Likewise.
	* mpn/sparc32/udiv_fp.asm: Likewise.

2000-02-16  Linus Nordberg  <linus@swox.se>

	* configure.in: Add mechanism for including target specific
	m4-files in config.m4.
	* configure: Regenerate.

	* acinclude.m4 (GMP_PROG_CCAS): Begin assembly lines (except
	labels) with a tab character.  HP-UX demands it.
	(GMP_CHECK_ASM_SIZE): Ditto.
	(GMP_CHECK_ASM_LSYM_PREFIX): Ditto.
	(GMP_CHECK_ASM_LABEL_SUFFIX): Set to empty string for HP-UX.
	(GMP_CHECK_ASM_GLOBL): Change `.xport' --> `.export'.
	* aclocal.m4: Regenerate.

2000-02-16  Linus Nordberg  <linus@swox.se>

	* acinclude.m4 (GMP_CHECK_ASM_LSYM_PREFIX): Define LSYM_PREFIX as
	the prefix only, no argument.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

	* mpn/asm-defs.m4 (L): No argument to LSYM_PREFIX.

2000-02-15  Linus Nordberg  <linus@swox.se>

	* acinclude.m4: Prefix all temporary shell variables with
	`gmp_tmp_'.
	(GMP_PROG_CC_FIND): Use defaults if no arguments are passed.
	Quote use of arguments.
	(GMP_PROG_CCAS): New macro.
	(GMP_INIT): New macro.
	(GMP_FINISH): New macro.
	(GMP_INCLUDE): New macro.
	(GMP_SINCLUDE): New macro.
	(GMP_DEFINE): New macro.
	(GMP_CHECK_ASM_LABEL_SUFFIX): New macro.
	(GMP_CHECK_ASM_TEXT): New macro.
	(GMP_CHECK_ASM_DATA): New macro.
	(GMP_CHECK_ASM_GLOBL): New macro.
	(GMP_CHECK_ASM_TYPE): New macro.
	(GMP_CHECK_ASM_SIZE): New macro.
	(GMP_CHECK_ASM_LSYM_PREFIX): New macro.
	(GMP_CHECK_ASM_W32): New macro.
	* aclocal.m4: Regenerate.

	* configure.in: Find m4 and nm for target.
	Use new macros to create config.m4.
	Prefix all temporary shell variables with `tmp_'.
	Pass `-X 64' to nm for 64-bit PPC target with 64-bit compiler.
	* configure: Regenerate.

	* Makefile.am (dist-hook): *Really* remove all CVS dirs in
	dist.
	* Makefile.in: Regenerate.

	* mpn/Makefile.am: Add target for building .lo and .o from
	.asm.
	Pass -DPIC to preprocessor (CPP/m4) when building .lo.
	Build .o a second time for target .lo, without -DPIC to
	preprocessor.
	(SUFFIX): Add `.asm'.
	(EXTRA_DIST): Add asm-defs.m4.
	* mpn/Makefile.in: Regenerate.

	* mpf/Makefile.in: Regenerate.
	* mpf/tests/Makefile.in: Regenerate.
	* mpq/Makefile.in: Regenerate.
	* mpq/tests/Makefile.in: Regenerate.
	* mpz/Makefile.in: Regenerate.
	* mpz/tests/Makefile.in: Regenerate.

2000-02-15  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc32/udiv_fp.asm: Change `RODATA' to `DATA'.
	* mpn/sparc32/v8/supersparc/udiv.asm: Likewise.
	* mpn/sparc32/v9/addmul_1.asm: Likewise.
	* mpn/sparc32/v9/submul_1.asm: Likewise.
	* mpn/sparc32/v9/mul_1.asm: Likewise.

	* mpn/sparc32/add_n.asm: Rename `size' -> `n'.
	* mpn/sparc32/sub_n.asm: Likewise.

	* sparc32: Rename `.s' and `.S' files to `.asm'.
	* sparc64: Rename `.s' and `.S' files to `.asm'.

2000-02-11  Torbjorn Granlund  <tege@swox.com>

	* config.sub: Adopt to new config.guess sparc naming conventions.

	* config.guess (sun4u:SunOS:5.*:*): Change `sparc9' to `sparcv9'.
	* config.guess (sun4m:SunOS:5.*:*): Change to sun4[md]:SunOS:5.*:* and
	change `sparc8' to `sparcv8'.

	* mpn/x86/add_n.S: Use PROLOGUE/EPILOGUE.
	* mpn/x86/sub_n.S: Likewise.

	* mpn/x86/syntax.h (PROLOGUE): New name for PROLOG.
	* mpn/x86/syntax.h (EPILOGUE): New name for EPILOG.

2000-02-11  Linus Nordberg  <linus@swox.se>

	* configure.in: Better path for 64-bit sparc without 64-bit cc.
	Change sparc8 --> sparcv8.
	Change sparc9 --> sparcv9.
	* configure: Regenerate.

2000-02-10  Linus Nordberg  <linus@swox.se>

	* configure.in: Use Autoconf.
	* Makefile.am: New file.

	* AUTHORS: New file.
	* COPYING: New file.
	* acinclude.m4: New file.
	* acconfig.h: New file.

	* configure: Generate.
	* Makefile.in: Generate.
	* aclocal.m4: Generate.
	* config.in: Generate.

	* install.sh: Remove.
	* install-sh: New file from Automake.
	* missing: New file from Automake.
	* ltconfig: New file from Libtool.
	* ltmain.sh: New file from Libtool.

	* mpf/Makefile.am: New file.
	* mpf/Makefile.in: Generate.
	* mpf/configure.in: Remove.
	* mpf/tests/Makefile.am: New file.
	* mpf/tests/Makefile.in: Generate.
	* mpf/tests/configure.in: Remove.

	* mpn/Makefile.am: New file.
	* mpn/Makefile.in: Generate.
	* mpn/configure.in: Remove.

	* mpq/Makefile.am: New file.
	* mpq/Makefile.in: Generate.
	* mpq/configure.in: Remove.
	* mpq/tests/Makefile.am: New file.
	* mpq/tests/Makefile.in: Generate.
	* mpq/tests/configure.in: Remove.

	* mpz/Makefile.am: New file.
	* mpz/Makefile.in: Generate.
	* mpz/configure.in: Remove.
	* mpz/tests/Makefile.am: New file.
	* mpz/tests/Makefile.in: Generate.
	* mpz/tests/configure.in: Remove.

2000-02-10  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/add_n.S: Don't use label L0 twice.
	* mpn/x86/sub_n.S: Likewise.

2000-01-20  Linus Nordberg  <linus@swox.se>

	* demos/pexpr.c: Don't use setup_error_handler() in windoze.

2000-01-19  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c (sigaltstack): #define to sigstack for AIX.
	(setup_error_handler): Don't write to ss_size and ss_flags
	on AIX.

2000-01-11  Torbjorn Granlund  <tege@swox.com>

	* mpn/configure.in (hppa2.0*-*-*): Move assignment of
	target_makefile_frag to where it belongs.

1999-12-21  Torbjorn Granlund  <tege@swox.com>

	* longlong.h (v9 umul_ppmm): New #define.
	(v9 udiv_qrnnd): New #define.

1999-12-14  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/divmod_1.c: Use invert_limb.
	* mpn/generic/mod_1.c: Use invert_limb.

	* gmp-impl.h (invert_limb): Put definition here.
	* mpn/generic/divrem.c (invert_limb): Delete definition.
	* mpn/generic/divrem_2.c (invert_limb): Delete definition.

	* gmp.h (mpn_divrem): Inhibit for non-gcc.
	But declare (undo 1999-11-22 change).

	* gmp-impl.h (DItype,UDItype): Do these also if _LONG_LONG_LIMB.

	* longlong.h: Move 64-bit hppa code out of __GNUC__ conditional.

	* stack-alloc.c (HSIZ): New #define.
	(__tmp_alloc): Use HSIZ instead of sizeof(tmp_stack).

1999-12-10  Torbjorn Granlund  <tege@swox.com>

	* config.sub: Clean up handling of x86 CPUs: Properly recognize
	Amd CPUs as unique entities.  Use manufacturer's names of
	processors ("pentium", etc); still match ambiguous names like
	"i586", "i686", "p6" but be conservative in interpreting them.

	* configure.in: Recognize x86 CPU types known by config.guess.
	* mpn/configure.in: Likewise.  Add x86/mmx path component as
	appropriate.
	(athlon-*-*): Fix typo.

	* config.guess: Update x86 recog code to initially match
	more than just i386.
	Call K6-2 and K6-III for "k62" and "k63" respectively.

	* config.guess: Recognize x86 CPU types.
	Update code for FreeBSD, NetBSD, OpenBSD, Linux.

1999-12-08  Torbjorn Granlund  <tege@swox.com>

	* mpf/pow_ui.c: Avoid final squaring in loop.

1999-12-07  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (udiv_qrnnd_preinv2gen): Prefix local variables with `_'.
	(udiv_qrnnd_preinv2norm): Likewise.
	From Kevin Ryde:
	(HAVE_ALLOCA): #define also if defined (alloca).

1999-12-04  Torbjorn Granlund  <tege@swox.com>

	* mpn/tests/add_n.c: Set OPS from CLOCK.
	* mpn/tests/sub_n.c: Likewise.
	* mpn/tests/mul_1.c: Likewise.
	* mpn/tests/addmul_1.c: Likewise.
	* mpn/tests/submul_1.c: Likewise.

	* mpn/tests/lshift.c: Update from add_n.c.
	* mpn/tests/rshift.c: Likewise.

1999-12-03  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/copy.S: New file.

1999-12-02  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/copy.s: New file.

	* mpn/tests/copy.c: New file.

	* mpn/configure.in: Recognize more Amd CPUs; Set special paths for
	k7 CPU.

	* configure.in: Recognize Amd x86 CPUs.

	* mpz/fdiv_r_2exp.c: In rounding code, read in->_mp_size before
	writing to res->_mp_size.

	* mpn/powerpc64/*.S: Clean up assembly syntax, add function headers.
	* mpn/powerpc64/gmp-mparam.h: (KARATSUBA_MUL_THRESHOLD): #define.
	(KARATSUBA_SQR_THRESHOLD): #define.

	* mpn/tests/add_n.c (main): Only print test number if TIMES==1
	and not printing.
	(main): Don't run reference code if NOCHECK.
	* mpn/tests/sub_n.c: Likewise.
	* mpn/tests/mul_1.c: Likewise.
	* mpn/tests/addmul_1.c: Likewise.
	* mpn/tests/submul_1.c: Likewise.

	* mpn/tests/lshift.c: (main): Only print test number if TIMES==1
	and not printing.
	* mpn/tests/rshift.c: Likewise.

1999-11-22  Torbjorn Granlund  <tege@swox.com>

	* gmp.h (mpz_init_set_str): Declare using __gmp_const.
	(mpz_set_str): Likewise.
	(mpf_init_set_str): Likewise.
	(mpf_set_str): Likewise.
	(mpn_set_str): Likewise.
	(__gmp_0): Likewise.
	(mpn_divrem): Remove separate declaration; it's defined later in
	this file.

	* gmp.h: Replace "defined (__STD__)' by (__STDC__-0) in
	expressions involving more than one term, to handle Sun's compiler
	that most helpfully sets __STDC__ to 0.
	* gmp-impl.h: Likewise.
	* longlong.h: Likewise.

1999-11-21  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define.
	(KARATSUBA_SQR_THRESHOLD): #define.

	* mpn/sparc64/lshift.s: Compensate stack references for odd stack ptr.
	* mpn/sparc64/rshift.s: Likewise.

	* mpn/sparc64/addmul_1.s: Propagate carry properly.
	* mpn/sparc64/submul_1.s: Likewise.

	* mpn/sparc64/sub_n.s: Rewrite.

	* mpn/sparc64/sub_n.s: Get operand order for main subcc right
	(before scrapping this code for new code).

1999-11-20  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/add_n.s: Rewrite.

1999-11-17  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/syntax.h (PROLOG): New #define.
	(EPILOG): New #define.

	* gmp.h (mpn_addsub_n): Declare.
	* gmp.h (mpn_add_nc): Declare.
	* gmp.h (mpn_sub_nc): Declare.
	* mpn/powerpc64/addsub_n.S: New file.

1999-11-17  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/gmp-mparam.h
	(KARATSUBA_MUL_THRESHOLD): Only #define #ifndef.
	(KARATSUBA_SQR_THRESHOLD): Likewise.

1999-11-14  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/mul_1.S: Unroll and optimize for P6 and K7.

1999-11-09  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/p6/gmp-mparam.h
	(KARATSUBA_MUL_THRESHOLD): Only #define #ifndef.
	(KARATSUBA_SQR_THRESHOLD): Likewise.

1999-11-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/addsub_n.c: New file.

1999-11-02  Torbjorn Granlund  <tege@swox.com>

	* config.guess: Handle alpha:FreeBSD with alpha:NetBSD.

	* configure.in (vax*-*-*): New case.
	* config/mt-vax: New file.
	* mpn/vax/add_n.s: Rewrite.
	* mpn/vax/sub_n.s: Rewrite.

1999-10-31  Torbjorn Granlund  <tege@swox.com>

	* mpn/vax/rshift.s: New file.
	* mpn/vax/lshift.s: New file.

1999-10-29  Torbjorn Granlund  <tege@swox.com>

	* config.sub: Handle k5 and k6.
	* mpn/configure.in: Recognize k6.

	* mpf/tests/t-get_d.c (LOW_BOUND, HIGH_BOUND): New #defines.
	(main): Tighten error bounds to 14 digits.

	* longlong.h (default umul_ppmm, when smul_ppmm exists):
	Rename __m0 => __xm0, __m1 => __xm1.
	(default smul_ppmm): Likewise.

1999-10-11  Torbjorn Granlund  <tege@swox.com>

	* config.guess: Reverse the test for POWER vs PowerPC.
	* config.guess (sun4m:SunOS:5.*:*): New case.
	* config.guess (sun4u:SunOS:5.*:*): New case.

1999-09-29  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/divrem_2.c: Clean up comments.

1999-09-23  Torbjorn Granlund  <tege@swox.com>

	* mpz/tests/Makefile.in: Use move-if-change when generating binaries.
	* mpf/tests/Makefile.in: Likewise.
	* mpq/tests/Makefile.in: Likewise.
	* mpz/tests/move-if-change: New file.
	* mpf/tests/move-if-change: New file.
	* mpq/tests/move-if-change: New file.

	* gmp.h (mpn_incr_u): New macro (from mpn/generic/mul_n.c).
	(mpn_decr_u): New macro.

	* mpn/generic/mul_n.c (mpn_incr): Delete.
	* mpn/generic/mul_n.c: Update usages mpn_incr => mpn_incr_u.
	* mpn/generic/divrem_newt.c: Use mpn_incr_u and mpn_decr_u instead of
	mpn_add_1 and mpn_sub_1.
	* mpn/generic/sqrtrem.c: Likewise.
	* mpz/cdiv_q_ui.c: Likewise.
	* mpz/cdiv_qr_ui.c: Likewise.
	* mpz/fdiv_q_ui.c: Likewise.
	* mpz/fdiv_qr_ui.c: Likewise.

	* mpn/generic/sqrtrem.c: Start single-limb Newton iteration from 18
	bits.

1999-07-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/divrem_1.c (__gmpn_divrem_1n): New function.

	* mpn/generic/divrem_2.c: New file, code from divrem.c, `case 2:'.
	* mpn/Makefile.in: Compile divrem_2.c.
	* make.bat: Compile divrem_2.c.
	* mpn/configure.in (functions): Add divrem_2.
	* gmp.h: Declare mpn_divrem_2.

	* mpn/generic/divrem.c: Delete special cases, handle just divisors
	of more than 2 limbs.
	* gmp.h (mpn_divrem): Call mpn_divrem_1, mpn_divrem_2, as appropriate.

	* mpn/generic/divrem.c: Rework variable usage for better register
	allocation.

1999-07-26  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev5/add_n.s: Rewrite for better ev6 speed.
	* mpn/alpha/ev5/sub_n.s: Likewise.

1999-07-21  Torbjorn Granlund  <tege@swox.com>

	* longlong.h (alpha): Define umul_ppmm for cc.

	* gmp-impl.h (DItype, UDItype): Define for non-gcc if _LONGLONG is
	defined.

1999-07-15  Torbjorn Granlund  <tege@swox.com>

	* longlong.h (powerpc64 count_leading_zeros): Fix typo.
	(powerpc64 add_ssaaaa): Fix typos.
	(powerpc64 sub_ddmmss): Fix typos.

1999-07-14  Torbjorn Granlund  <tege@swox.com>

	* mpz/tests/Makefile.in: Pass XCFLAGS when linking.
	* mpf/tests/Makefile.in: Likewise.
	* mpq/tests/Makefile.in: Likewise.
	* mpn/Makefile.in (.S.o): Pass XCFLAGS.

	* longlong.h: Add support for 64-bit PowerPC.
	* config.sub: Handle "powerpc64".
	* configure.in: Likewise.
	* mpn/configure.in: Suppress use of config/t-ppc-aix for now,
	it seems compiler passes proper options.
	* mpn/powerpc64/*.S: New files.

	* Makefile.in (FLAGS_TO_PASS): Pass "AR=$(AR)".

1999-07-07  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c (factor): Change alloca call to a malloc/free pair.

	* mpn/powerpc32/syntax.h: Add #define's for crN.

	* gmp.h (gmp_rand_algorithm): Remove spurious `,'.

1999-07-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/divrem_1.c: Normalize divisor when needed.

1999-07-02  Torbjorn Granlund  <tege@swox.com>

	* mpn/configure.in (powerpc*-apple-mach): New configuration.
	* mpn/powerpc32/*: Add support for apple-macho syntax.
	* mpn/powerpc32/syntax.h: New file.
	* gmp-impl.h: Don't use `__attribute__' syntax for Apple's perversion
	of GCC.

1999-05-26  Linus Nordberg  <linus@swox.se>

	* rand.c (gmp_rand_init): Fix typo.

	* mpn/generic/rawrandom.c (mpn_rawrandom): Count bits, not limbs,
	to keep track of how many rounds to do in loop.  Clean up
	temporary allocation.  Update `seedsize' inside loop.  Mask off
	the correct number of bits from final result.  Init `mcopyp' even
	when not normalizing `m'.

	* randlc.c (gmp_rand_init_lc): Fix typo (don't call
	mpz_init_set_ui()).

	* mpn/generic/rawrandom.c (mpn_rawrandom): Set SIZ(s->seed) when
	reallocating.

	* tests/rand/Makefile (test, bigtest): Add 33-bit tests.

	* tests/rand/gen.c (main): Set precision of variable passed to
	mpf_urandomb().  Add option `-p'.

1999-05-25  Linus Nordberg  <linus@swox.se>

	* randcm.c: Remove.
	* randcmui.c: Remove.
	* Makefile.in: Remove randcm and randcmui.
	* make.bat: Ditto.
	* gmp-impl.h: Remove prototypes for __gmp_rand_init_common() and
	__gmp_rand_init_common_ui().
	* randlc.c (gmp_rand_init_lc): Don't call
	__gmp_rand_init_common().

	* randlcui.c (gmp_rand_init_lc_ui): Don't call
	__gmp_rand_init_common_ui().

	* gmp.h (__gmp_rand_state_struct): Remove unused member `maxval'.
	* randclr.c (gmp_rand_clear): Remove reference to s->maxval.
	* randcm.c (__gmp_rand_init_common): Ditto

	* mpn/generic/rawrandom.c (mpn_rawrandom): Don't calculate nlimbs
	twice.

	* gmp.h (__gmp_rand_dist): Remove.

1999-05-24  Linus Nordberg  <linus@swox.se>

	* mpn/generic/rawrandom.c: Clean up comments.

	* gmp.texi: Add documentation for random number generation.

1999-05-21  Linus Nordberg  <linus@swox.se>

	* gmp.h: Typedef `gmp_rand_state' as an array with one element.
	Change prototypes accordingly.
	* gmp-impl.h: Change prototypes using `gmp_rand_state'.
	* rand.c (gmp_rand_init): Take `gmp_rand_state' as argument
	instead of a pointer to a `gmp_rand_state'.
	* mpf/urandom.c (mpf_urandomb): Ditto.
	* mpz/urandom.c (mpz_urandomb): Ditto.
	* mpn/generic/rawrandom.c (mpn_rawrandom): Ditto.
	* randcmui.c (__gmp_rand_init_common_ui): Ditto.
	* randlc.c (gmp_rand_init_lc): Ditto.
	* randlcui.c (gmp_rand_init_lc_ui): Ditto.
	* randui.c (gmp_rand_init_ui): Ditto.
	* randcm.c (__gmp_rand_init_common): Ditto.
	* randclr.c (gmp_rand_clear): Ditto.

	* tests/rand/gen.c (main): Pass `s' to rand-funcs instead of address
	of `s'.

1999-05-20  Linus Nordberg  <linus@swox.se>

	* Makefile.in: Rename randi.c --> rand.c, randi_lc.c --> randlc.c,
	randicom.c --> randcm.c.  Add randui.c, randcmui.c, randlcui.c.
	* make.bat: Ditto.

	* gmp.h: Add prototypes for gmp_rand_init_ui() and
	gmp_rand_init_lc_ui().
	* gmp-impl.h: Add prototypes for __gmp_rand_init_common() and
	__gmp_rand_init_common_ui().

	* randlc.c, randcm.c, randclr.c, rand.c: Change #include of
	<gmp.h> to "gmp.h".
	* randclr.c: Include stdlib.h for free().
	* rand.c: Include gmp-impl.h.

1999-05-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/configure.in: Put generic m68k alternative last.

1999-05-04  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c (setup_error_handler): Use sigemptyset to create
	empty set (for portability).
	(fns): Fix typo '#if #if'.
	(mpz_eval_expr): Implement FERMAT and MERSENNE.

	* demos/pexpr.c: Cast longjmp argument via long to silent warnings on
	64-bit hosts.

1999-05-03  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c: Add #defines for GMP 1.x and 2.0 compatibility.

	* demos/pexpr.c (setup_error_handler): New function; take signal
	handler setup code from main(), with major modifications to use modern
	signal interface.
	(main): Remove signal handler setup code; call setup_error_handler.

1999-04-29  Linus Nordberg  <linus@swox.se>

	* tests/rand/findcl.c (main): Add option '-i' for interval factor.
	Separate v and merit lose figures.  Add '-v' for version.

1999-04-28  Linus Nordberg  <linus@swox.se>

	* tests/rand/statlib.c: Change debugging stuff.

	* tests/rand/gmpstat.h: Add debug values definitions.

	* tests/rand/findcl.c (main): Print low and high merit on startup.
	Print version string on startup.  Catch SEGV and HUP.  Add option -d
	for debug.  Fix bug making test for v too hard.
	(sh_status): New function.
	(sh_status): Flush stdout.  Add RCSID.

1999-04-27  Linus Nordberg  <linus@swox.se>

	* tests/rand/Makefile (clean): Add target.

1999-04-27  Linus Nordberg  <linus.nordberg@canit.se>

	* tests/rand/stat.c: Include gmpstat.h.
	Add global int g_debug.

	* tests/rand/spect.c: Include <unistd.h>.

	* tests/rand/findcl.c (main): Input is `m', not all factors of `m'.
	Print only the very first matching multiplier.  Include <unistd.h>.
	Flush stdout.  Print "done." when done.

	* tests/rand/spect.c: Move everything but main() to statlib.c.

	* tests/rand/findcl.c: New file.

	* tests/rand/gmpstat.h: New file.

	* tests/rand/statlib.c (merit, merit_u, f_floor, vz_dot,
	spectral_test): New functions.

1999-04-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/configure.in: Fix typo, "sparc-*)" was "sparc)".

1999-04-21  Torbjorn Granlund  <tege@swox.com>

	* config.sub: Recognize ev6.

1999-04-12  Linus Nordberg  <linus.nordberg@canit.se>

	* urandom.c: Split up into randclr.c, randi.c, randi_lc.c,
	randicom.c.
	* randclr.c, randi.c, randi_lc.c, randicom.c: New files.
	* Makefile.in: Remove urandom.  Add randclr, randi, randi_lc,
	randicom.
	* make.bat: Ditto

1999-03-31  Torbjorn Granlund  <tege@matematik.su.se>

	* configure.in (sparc9-*-solaris2.[789]*, etc): New alternative.
	* mpn/configure.in: Use mt-sprc9 also for ultrasparc*-*-solaris2*.

1999-03-30  Linus Nordberg  <linus.nordberg@canit.se>

	* urandom.c (__gmp_rand_scheme): Change NULL->0.
	Include "gmp.h" instead of <gmp.h>.

1999-03-29  Linus Nordberg  <linus.nordberg@canit.se>

	* gmp.h (__gmp_rand_data_lc): Now holds a, c, m instead of scheme
	struct.
	(__gmp_rand_lc_scheme_struct): Remove mpz_t's `a' and `m'.

	* tests/rand/stat.c (f_freq): Don't print 2nd level results if doing
	1st level.

	* tests/rand/gen.c (main): Set default algorithm to mpz_urandomb.
	(main): Add option -c.

1999-03-24  Linus Nordberg  <linus.nordberg@canit.se>

	* tests/rand/Makefile (GMPINC): Rename to GMPH.
	(GMPH): Add gmp-mparam.h.
	(CFLAGS): Add -I$(GMPLIBDIR)/mpn

1999-03-23  Linus Nordberg  <linus.nordberg@canit.se>

	* Makefile.in: Compile top-dir/urandom.c.
	* make.bat: Ditto.

	* mpn/Makefile.in: Compile rawrandom.c.
	* make.bat: Ditto.

	* mpn/configure.in (functions): Add rawrandom.

	* gmp.h (__gmp_rand_scheme_struct): Rename to
	__gmp_rand_lc_scheme_struct.
	(__gmp_rand_data_lc): Remove member 'n'.  Allocate a
	__gmp_rand_lc_scheme_struct instead of a pointer to one.
	Add prototype for gmp_rand_init_lc(), mpn_rawrandom().
	New prototype for mpz_urandomb().

	* urandom.c: New file.
	(__gmp_rand_init_common): New function.
	(gmp_rand_init_lc): New function.
	(gmp_rand_init): Don't init data_lc->n.  Call gmp_rand_init_lc()
	and __gmp_rand_init_common().
	(gmp_rand_clear): Remove reference to data_lc->n.

	* mpz/urandom.c (gmp_rand_init, gmp_rand_clear): Move to new file
	urandom.c in top-dir.
	(mpz_urandomb): Add function parameter nbits.  Call mpn_rawrandom().

	* mpf/urandom.c (mpf_urandomb): Call mpn_rawrandom().

	* mpn/generic/rawrandom.c: New file.
	(mpn_rawrandom): New function.

1999-03-17  Torbjorn Granlund  <tege@matematik.su.se>

	* extract-dbl.c: When packing result, adjust exp when sc == 0.

	* mpf/tests/t-get_d.c: New file.
	* mpf/tests/Makefile.in: Compile t-get_d.c.

1999-03-16  Linus Nordberg  <linus.nordberg@canit.se>

	* mpz/urandom.c (__gmp_rand_scheme): Add extra braces around the
	mpz_t members.

	* make.bat: Compile mpz/urandom.c and mpf/urandom.c

	* tests/rand/statlib.c (ks_table): Use mpf_pow_ui() and exp().

	* tests/rand/gen.c: Include unistd.h for getopt.

1999-03-15  Linus Nordberg  <linus.nordberg@canit.se>

	* mpz/urandom.c (gmp_rand_init): New function.
	(gmp_rand_clear): New function.
	(mpz_urandomb): New function.

	* mpz/Makefile.in: Compile urandom.c

	* mpf/urandom.c (mpf_urandomb): New function.

	* mpf/Makefile.in: Compile urandom.c.

	* gmp.h (__gmp_rand_state_struct, __gmp_rand_scheme_struct): New
	structs for randomization functions.
	(gmp_rand_dist, gmp_rand_alogrithm): New enums for randomization
	functions.
	(mpz_urandomb, mpf_urandomb): Add prototype.
	(gmp_rand_init, gmp_rand_clear): Add prototype.

	* tests/rand/gen.c, stat.c, statlib.c, statlib.h: New files.
	* tests/rand/Makefile, tests/rand/ChangeLog: New files.

1999-03-15  Torbjorn Granlund  <tege@matematik.su.se>

	* .gdbinit: New file.

	* mpz/dump.c: New file.
	* mpz/Makefile.in: Compile dump.c.
	* make.bat: Likewise.
	* gmp.h (mpz_dump): Declare.

1999-03-14  Torbjorn Granlund  <tege@matematik.su.se>

	* mpz/tests/reuse.c: Also test mpz_invert and mpz_divexact.

	* mpz/tests/convert.c: Update to GMP 2 variable syntax.

1999-03-13  Torbjorn Granlund  <tege@matematik.su.se>

	* mpf/README: New file.
	* mpz/README: New file.

	* mpf/pow_ui.c: New file.
	* mpf/Makefile.in: Compile pow_ui.c.
	* make.bat: Likewise.
	* gmp.h (mpf_pow_ui): Declare.

1999-03-12  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/configure.in: Stage 1 of rewrite.
	* mpn/underscore.h: New name for bsd.h.
	* mpn/sysv.h: Deleted.

	* mpn/m68k/*: Don't include sysdep.h.

	* mpn/pa64/README: New file.

1999-03-11  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/powerpc32/add_n.S: Add support for both AIX and ELF syntax.
	Renamed from `.s'.
	* mpn/powerpc32/sub_n.S: Likewise.
	* mpn/powerpc32/lshift.S: Likewise.
	* mpn/powerpc32/rshift.S: Likewise.
	* mpn/powerpc32/mul_1.S: Likewise.
	* mpn/powerpc32/addmul_1.S: Likewise.
	* mpn/powerpc32/submul_1.S: Likewise.

	* mpn/powerpc32/umul.S: New file.
	* mpn/sparc32/v8/umul.S: New file.
	* mpn/sparc32/umul.S: New file.
	* mpn/x86/umul.S: New file.
	* mpn/x86/udiv.S: New file.

	* mpn/Makefile.in (mul_basecase.o): Delete rule.

1999-02-22  Torbjorn Granlund  <tege@matematik.su.se>

	* configure.in (hppa2.0*-*-*): Force use of GCC.

	* extract-dbl.c: Handle IEEE denormalized numbrs.  Clean up.

1998-12-02  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/Makefile.in (CCAS): New macro.
	(.s.o): Use CCAS.
	(.S.o): Likewise.

	* mpn/Makefile.in (mul_basecase.o): Add dependency.
	(sqr_basecase.o): Likewise.
	(mod_1.o): Likewise.

	* demos/pexpr.c (cputime): Test also __hpux.
	(cleanup_and_exit): Check SIGXCPU only #ifdef LIMIT_RESOURCE_USAGE.

	* mpz/tests/t-2exp.c: Use urandom, not random.

	* mpn/configure.in (arm*-*-*): New alternative.

1998-11-30  Torbjorn Granlund  <tege@matematik.su.se>

	* gmp-impl.h (union ieee_double_extract): Special case for
	little-endian arm.
	(LIMBS): Alias for PTR.

1998-11-26  Torbjorn Granlund  <tege@matematik.su.se>

	* longlong.h (m68000 umul_ppmm): Use `muluw', not `mulu'.
	(m68k stuff): Clean up; add coldfire support.

1998-11-23  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/mips3/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define.
	(KARATSUBA_SQR_THRESHOLD): #define.

	* mpn/sparc32/v9/README: New file.

1998-11-20  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/x86/README: New file.

	* mpn/arm/gmp-mparam.h: New file.
	* mpn/pa64/gmp-mparam.h: New file.
	* mpn/hppa/gmp-mparam.h: New file.
	* mpn/x86/pentium/gmp-mparam.h: New file.
	* mpn/sparc32/v9/gmp-mparam.h: New file.
	* mpn/powerpc32/gmp-mparam.h: New file.
	* mpn/x86/p6/gmp-mparam.h: New file.

	* mpn/alpha/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define.
	(KARATSUBA_SQR_THRESHOLD): #define.

	* mpn/configure.in: Point to x86/p6 when appropriate.

	* mpn/power/umul.s: New file.
	* mpn/power/sdiv.s: New file.
	* mpn/pa64/addmul_1.S: New file.
	* mpn/pa64/submul_1.S: New file.
	* mpn/pa64/mul_1.S: New file.
	* mpn/pa64/udiv_qrnnd.c: New file.
	* mpn/pa64/umul_ppmm.S: New file.
	* mpn/mips2/umul.s: New file.
	* mpn/m68k/mc68020/umul.s: New file.
	* mpn/m68k/mc68020/udiv.s: New file.
	* mpn/hppa/hppa1_1/umul.s: New file.
	* mpn/alpha/umul.s: New file.
	* mpn/a29k/udiv.s: New file.
	* mpn/a29k/umul.s: New file.

1998-11-17  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/x86/mul_basecase.S: New file for non-pentiums.
	* mpn/x86/mul_basecase.S: Move to mpn/x86/pentium.

1998-11-16  Torbjorn Granlund  <tege@matematik.su.se>

	* make.bat: Compile mul_basecase.c and sqr_basecase.c.

1998-11-10  Torbjorn Granlund  <tege@matematik.su.se>

	* mpz/invert.c: Defer writing to parameter `invert' until
	end.

1998-11-03  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/pa64/udiv_qrnnd.c: Handle more border cases.

1998-10-29  Torbjorn Granlund  <tege@matematik.su.se>

	* insert-dbl.c: Special case biased exponents < 1; Get boundary for
	Inf right.

	* longlong.h (COUNT_LEADING_ZEROS_NEED_CLZ_TAB): New #define.

1998-10-28  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/powerpc32/submul_1.s: Rewrite, optimizing for PPC604.
	* mpn/powerpc32/addmul_1.s: Likewise.
	* mpn/powerpc32/lshift.s: Likewise.

1998-10-23  Torbjorn Granlund  <tege@matematik.su.se>

	* config/mt-sprc9-gcc (XCFLAGS): Add -Wa,-xarch=v8plus.

	* mpn/sparc32/v9/submul_1.s: New file.

1998-10-21  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/config/mt-pa2hpux: New file.
	* mpn/configure.in (hppa2.0*-*-*): Use new 64-bit code.

	* config.sub: Recognize hppa2.0 as CPU type.

	* longlong.h (64-bit hppa): Add umul_ppmm and udiv_qrnnd.
	* mpn/pa64/mul_1.S: New file.
	* mpn/pa64/addmul_1.S: New file.
	* mpn/pa64/submul_1.S: New file.
	* mpn/pa64/umul_ppmm.S: New file.
	* mpn/pa64/udiv_qrnnd.c: New file.

1998-10-20  Torbjorn Granlund  <tege@matematik.su.se>

	* mpz/pprime_p.c: Pass 1L, not 1, to mpz_cmp_ui.

	* mpz/fdiv_q_2exp.c: Cast `long' argument to `mp_limb_t' for mpn calls.
	* mpz/gcd_ui.c: Likewise.
	* mpz/add_ui.c: Likewise.
	* mpz/sub_ui.c: Likewise.

1998-10-19  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/generic/bdivmod.c: Avoid using switch statement with mp_limb_t
	index.

1998-10-17  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/sparc32/v9/mul_1.s: Misc cleanups.
	* mpn/sparc32/v9/addmul_1.s: Misc cleanups.

1998-10-16  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/tests/{add,sub,}mul_1.c: Print xlimb using mpn_print.

	* mpz/tests/t-powm.c (SIZE): Increase to 50.
	(EXP_SIZE): New parameter; use it for computing exp_size.

1998-10-15  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/generic/divrem_newt.c: Use TMP_ALLOC interface.

	* mpn/generic/sqrtrem.c: Check BITS_PER_MP_LIMB before defining
	assembly variants of SQRT.

1998-10-14  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/tests: Clean up timing routines.  Don't include longlong.h
	where it is not needed.
	(mpn_print): Handle printing when _LONG_LONG_LIMB.
	* mpn/tests/{add,sub,}mul_1.c: Generate xlimb with mpn_random2
	and do it whether TIMES != 1 or not.

	* mpn/generic/mul_n.c: Delay assignment of `sign' for lower
	register pressure.

	* mpn/sparc32/v9/mul_1.s: New file.

	* config/mt-sprc9-gcc: New file.
	* configure.in: Use it.

	* mpn/configure.in: Use sparc64 for Solaris 2.7 and later with a
	sparc v9 CPU.
	* mpn/configure.in: Use sparc32/v9 for Solaris 2.6 or earlier with
	a sparc v9 CPU.

	* mpf/sub.c: In initial code for ediff == 0, limit precision
	before jumping to `normalize'.

1998-10-13  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/hppa/hppa2_0/add_n.s: New file.
	* mpn/hppa/hppa2_0/sub_n.s: New file.
	* mpn/configure.in: Handle hppa2.0 (32-bit code for now).

	* config.guess: Update from egcs 1.1.
	(9000/[3478]??:HP-UX:*:*): Properly return 2.0 for all known 2.0
	machines.

1998-10-07  Torbjorn Granlund  <tege@matematik.su.se>

	* mpz/root.c (mpz_root): New file.
	* mpz/Makefile.in: Compile it.
	* make.bat: Likewise.
	* gmp.h (mpz_root): Declare.

	* mpz/perfpow.c: New file.
	* mpz/Makefile.in: Compile it.
	* make.bat: Likewise.
	* gmp.h (mpz_perfect_power_p): Declare.

	* mpz/remove.c: New file.
	* mpz/Makefile.in: Compile it.
	* make.bat: Likewise.
	* gmp.h (mpz_remove): Declare.

	* mpz/bin_ui.c: New file.
	* mpz/Makefile.in: Compile it.
	* make.bat: Likewise.
	* gmp.h (mpz_bin_ui): Declare.

	* mpz/bin_uiui.c: New file.
	* mpz/Makefile.in: Compile it.
	* make.bat: Likewise.
	* gmp.h (mpz_bin_uiui): Declare.

1998-09-16  Torbjorn Granlund  <tege@matematik.su.se>

	* longlong.h: Test for __powerpc__ in addition to _ARCH_PPC.

Sat Sep  5 17:22:28 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* mpf/cmp_si.c: Compare most significant mantissa limb before
	trying to deduce anything from the limb count.
	* mpf/cmp_ui.c: Likewise.

Tue Aug 18 10:24:39 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* mpz/pprime_p.c (mpz_probab_prime_p): Add new code block
	for doing more dividing.

Sat Aug 15 18:43:17 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/generic/divrem_newt.c: New name for divrem_newton.c.
	* mpn/Makefile.in: Corresponding changes.
	* mpn/configure.in: Likewise.

Wed Aug 12 23:07:09 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* config.guess: Handle powerpc for NetBSD.

Tue Jul 28 23:10:55 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* mpz/fib_ui.c: New file.
	* mpz/Makefile.in: Compile it.
	* make.bat: Likewise.
	* gmp.h (mpz_fib_ui): Declare.

Wed Jun 17 22:52:58 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* make.bat: Fix typo, `asm-synt.h' => `asm-syntax.h'.

Wed Jun  3 11:27:32 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* config/mt-pwr: New file.
	* config/mt-ppc: New file.
	* configure.in: Use the new files.

Tue Jun  2 13:04:17 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/sparc32/v9/addmul_1.s: New file.
	* mpn/config/mt-sprc9: New file.
	* mpn/configure.in: Use mt-sprc9.

Tue May 26 11:24:18 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* demos/factorize.c (factor_using_pollard_rho): Pass correct
	parameters in recursive calls; join the two recursion arms.

	* mpf/set_q.c: Set result sign.
	When normalizing the numerator, don't allow it to increase in size
	beyond prec.

Tue May 19 17:28:14 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* demos/factorize.c (factor_using_division): Call fflush
	also for the factor 2.

Mon May 18 15:51:01 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* make.bat: Pass -fomit-frame-pointer.  Do not pass -g.

Tue May  5 01:42:50 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* mpz/Makefile.in (LOCAL_CC): Remove definition.

	* gmp.h: Get rid of GMP_SMALL stuff.
	* mpz/Makefile.in: Likewise.
	* mpq/Makefile.in: Likewise.
	* mpf/Makefile.in: Likewise.

	* mpz/invert.c: Fix typo in comment.

Mon May  4 23:05:32 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/generic/sqrtrem.c: Check that __arch64__ is not defined
	before defining sparc SQRT.

Mon Apr 20 19:16:17 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/generic/gcdext.c: Allow gp to be NULL.

1998-04-03  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/configure.in: Recognize `alphaev5*', not `alphaev5'.

	* config.guess: Handle CPU variants for NetBSD.

Mon Mar 16 13:07:54 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* mpz/pprime_p.c: Use mpn_mod_1/mpn_preinv_mod_1 for computing mod PP,
	not mpz_tdiv_r_ui (which expects an `unsigned long').
	(mpz_probab_prime_p): Change type of `r' to mp_limb_t.

Thu Mar 12 17:19:04 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* gmp.h (mpf_ceil, mpf_floor, mpf_trunc): Add declarations.

	* config.guess: Update from FSF version.
	* config.sub: Likewise.

	* config.guess: Add special handling of alpha-*-NetBSD.

Wed Mar 11 00:55:34 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* mpz/inp_str.c: Update from set_str.c.
	Properly increment `nread' when skipping minus sign.

	* mpz/set_str.c: Check for empty string after having skipped
	leading zeros.

Mon Mar  9 19:28:00 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* mpz/set_str.c: Skip leading zeros.

Wed Mar  4 19:29:16 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* gmp.h (mpz_cmp_si): Cast argument before calling mpz_cmp_ui.

	* demos/factorize.c: Rewrite.

1998-02-04  Torbjorn Granlund  <tege@matematik.su.se>

	* configure.in (i[3456]86* etc): Check if using gcc before
	choosing mt-x86.

	* configure.in (m68*-*-*): New alternative.
	* config/mt-m68k: New file.

	* mpn/alpha/invert-limb.s: Put tables in text segment,
	since not all systems support "rdata".

Wed Feb  4 02:20:57 1998  Torbjorn Granlund  <tege@matematik.su.se>

	* gmp.h (__GNU_MP_VERSION_SNAP): New #define.
	(__GNU_MP_VERSION_MINOR): Now 1.

Wed Jan 28 22:29:36 1998  Torbjorn Granlund  <tege@tunnis.tmg.se>

	* longlong.h (alpha udiv_qrnnd): #define UDIV_NEEDS_NORMALIZATION.

Wed Jan 28 20:28:19 1998  Torbjorn Granlund  <tege@sophie.matematik.su.se>

	* mpz/pprime_p.c (mpz_probab_prime_p): Delete 59 from tried divisors.

Mon Jan 26 01:39:02 1998  Torbjorn Granlund  <tege@tunnis.tmg.se>

	* mpz/pprime_p.c (mpz_probab_prime_p): Major overhaul: Check small
	numbers specifically; check small factors, then perform a fermat test.

Tue Jan 13 14:58:28 1998  Torbjorn Granlund  <tege@tunnis.tmg.se>

	* longlong.h (alpha udiv_qrnnd): Call __mpn_invert_normalized_limb
	and udiv_qrnnd_preinv.

Wed Jan  7 01:52:54 1998  Torbjorn Granlund  <tege@tunnis.tmg.se>

	* mpn/configure.in (alpha*, extra_functions): Add invert-limb and
	remove udiv_qrnnd.

	* mpn/tests/divrem.c: Get allocations right.

	* mpn/generic/divrem.c: Conditionally pre-invert most significant
	divisor limb.

Tue Jan  6 23:08:54 1998  Torbjorn Granlund  <tege@tunnis.tmg.se>

	* mpn/generic/divrem_1.c: Rename variables to comply to conventions.
	Make `i' have type `mp_size_t'.

Tue Dec 30 22:21:42 1997  Torbjorn Granlund  <tege@matematik.su.se>

	* mpz/tdiv_qr_ui.c: Return the remainder.
	* mpz/tdiv_r_ui.c: Likewise.
	* mpz/tdiv_q_ui.c: Likewise.
	* gmp.h: Change return type of mpz_tdiv_qr_ui, mpz_tdiv_r_ui,
	mpz_tdiv_q_ui.

	* mpz/tdiv_ui.c: New file.
	* mpz/Makefile.in: Compile it.
	* make.bat: Likewise.
	* gmp.h (mpz_tdiv_ui): Declare.

Fri Nov  7 04:21:15 1997  Torbjorn Granlund  <tege@matematik.su.se>

	* mpf/integer.c (FUNC_NAME): Fix bogus test for mpf_trunc.

	* demos/isprime.c: New file.

	Sat Nov  1 19:32:25 1997  Torbjorn Granlund  <tege@matematik.su.se>

	* mpz/cmp_abs.c: New file.
	* mpz/Makefile.in: Compile it.
	* make.bat: Likewise.
	* gmp.h (mpz_cmp_abs): Declare.

	* mpz/cmp_abs_ui.c: New file.
	* mpz/Makefile.in: Compile it.
	* make.bat: Likewise.
	* gmp.h (mpz_cmp_abs_ui): Declare.

Sat Sep 27 04:49:52 1997  Torbjorn Granlund  <tege@tunnis.tmg.se>

	* mpz/fdiv_r_2exp.c: Get allocation for `tmp' right.

	* mpz/fdiv_q_2exp.c: In final result adjustment code, handle
	that intermediate result is zero.

	* mpz/tests/t-2exp.c: New file.
	* mpz/tests/Makefile.in: Handle t-2exp.c.

Fri Sep 26 16:29:21 1997  Torbjorn Granlund  <tege@tunnis.tmg.se>

	* mpz/divexact.c: Fix typo in test for whether to copy numerator to
	quotient and move that statement to after handling quotient and
	denominator overlap.  Misc cleanups.

	* mpn/generic/gcd.c: Change count argument of mpn_lshift/mpn_rshift
	calls to `unsigned int'.
	* mpz/divexact.c: Likewise.

Mon Sep 22 02:19:52 1997  Torbjorn Granlund  <tege@pro.tmg.se>

	* mpz/tests/t-powm.c: Decrease `reps' to 2500.

	* mpz/tests/t-pow_ui.c: New file.
	* mpz/tests/Makefile.in: Handle t-pow_ui.c.

	* mpz/ui_pow_ui.c: Get special cases for exponent and base right.

	* mpz/pow_ui.c: Increase temp space allocation by 1 limb.
	Split `rsize' into two variables; compute space allocation into
	`ralloc'.

Sun Sep  7 04:15:12 1997  Torbjorn Granlund  <tege@pro.tmg.se>

	* mpn/pa64/lshift.s: New file.
	* mpn/pa64/rshift.s: New file.
	* mpn/pa64/sub_n.s: New file.

Sat Sep  6 19:14:13 1997  Torbjorn Granlund  <tege@gmp.tmg.se>

	* mpn/pa64/add_n.s: New file.
	* mpn/pa64: New directory.

Tue Aug 19 16:17:09 1997  Torbjorn Granlund  <tege@pro.tmg.se>

	* mpz/swap.c: New file.
	* mpz/Makefile.in: Compile it.
	* make.bat: Likewise.
	* gmp.h (mpz_swap): Declare.

	* mpn/generic/mul_n.c: Push assignment of x and y pointers into the
	if/else clauses in several places.  (Decreases register pressure.)

Mon Aug 18 03:29:50 1997  Torbjorn Granlund  <tege@pro.tmg.se>

	* mpn/thumb/add_n.s: New file.
	* mpn/thumb/sub_n.s: New file.
	* mpn/arm/add_n.s: New file.
	* mpn/arm/sub_n.s: New file.

	* mpz/powm.c: After mpn_mul_n and mpn_mul calls, adjust product size
	if most significant limb is zero.
	* mpz/powm_ui.c: Likewise.

Fri Aug 15 02:13:57 1997  Torbjorn Granlund  <tege@pro.tmg.se>

	* mpn/arm/m/mul_1.s: New file.
	* mpn/arm/m/addmul_1.s: New file.

	* mpn/powerpc32/mul_1.s: Rewrite.

	* mpn/alpha/mul_1.s: Prefix labels with `.'.

Mon Aug 11 02:37:16 1997  Torbjorn Granlund  <tege@pro.tmg.se>

	* mpn/powerpc32/add_n.s: Rewrite.
	* mpn/powerpc32/sub_n.s: Rewrite.

Sun Aug 10 17:07:15 1997  Torbjorn Granlund  <tege@pro.tmg.se>

	* mpn/powerpc32/addmul_1.s: Delete obsolete comments.
	* mpn/powerpc32/submul_1.s: Likewise.

Fri Jul 25 20:07:54 1997  Torbjorn Granlund  <tege@pro.tmg.se>

	* mpz/addmul_ui.c: New file.
	* mpz/Makefile.in: Compile it.
	* make.bat: Likewise.
	* gmp.h (mpz_addmul_ui): Declare.

	* mpz/setbit.c: Add missing code after final `else'.

Tue Jul 22 17:45:01 1997  Torbjorn Granlund  <tege@tunnis.tmg.se>

	* mpn/sh/add_n.s: Fix typo.
	* mpn/sh/sub_n.s: Likewise.

	* longlong.h (ns32k count_trailing_zeros): Fix typo.

	* insert-dbl.c: Check for exponent overflow and return Inf.

	* mpz/get_d.c: Rewrite to avoid rounding errors.

Thu May 29 11:51:07 1997  Torbjorn Granlund  <tege@pro.tmg.se>

	* mpq/add.c: Swap some usages of tmp1 and tmp2 to make sure
	their allocation suffices.
	* mpq/sub.c: Likewise.

Wed Apr 16 02:24:25 1997  Torbjorn Granlund  <tege@pro.tmg.se>

	* demos/pexpr.c: New file.

	* mpn/generic/mul_n.c: Misc optimizations from Robert Harley.

	* gmp-impl.h (MPZ_PROVOKE_REALLOC): New #define.

Sat Apr 12 17:54:04 1997  Torbjorn Granlund  <tege@pro.tmg.se>

	* mpz/tstbit.c: New file.
	* mpz/Makefile.in: Compile it.
	* make.bat: Likewise.
	* gmp.h (mpz_tstbit): Declare.

	* mpz/tests/logic.c: Use MPZ_CHECK_FORMAT.
	* mpz/tests/bit.c: New test.
	* mpz/tests/Makefile.in: Handle bit.c.

	* mpz/ior.c: In -OP2,+OP1 case, normalize OP2 after call to mpn_sub_1.

	* gmp-impl.h (MPZ_CHECK_FORMAT): New #define.

Thu Apr 10 00:30:14 1997  Torbjorn Granlund  <tege@tmg.se>

	* longlong.h (POWER/PowerPC): Test _ARCH_PWR instead of _IBMR2.

Wed Apr  9 18:23:31 1997  Torbjorn Granlund  <tege@pro.tmg.se>

	* gmp-impl.h: Move defaulting of UMUL_TIME and UDIV_TIME from here...
	* longlong.h: ...to here.

Sun Mar 30 12:16:23 1997  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/generic/next_prime.c: New file.

	* mpn/generic/perfsqr.c: Remove definitions of PP and PP_INVERTED.
	* gmp-impl.h: Put them here.

Fri Mar 28 08:18:05 1997  Torbjorn Granlund  <tege@matematik.su.se>

	* gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Define as inline asm for
	for x86, but leave disabled for now.

Fri Feb 28 02:39:47 1997  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/Makefile.in (.S.o): Pass SFLAGS and CFLAGS also to compiler
	for assembly phase.
	(.s.o): Pass SFLAGS.

Wed Feb 26 06:46:08 1997  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/configure.in: For Pentium Pro, use default code, not Pentium
	optimized code.

	* mpn/x86/addmul_1.S: Unroll and optimize for Pentium Pro.
	* mpn/x86/submul_1.S: Likewise.

Thu Feb 13 08:26:09 1997  Torbjorn Granlund  <tege@matematik.su.se>

	* mpf/Makefile.in: Compile floor.o, ceil.o and trunc.o (from
	integer.c).
	* make.bat: Likewise.

Wed Feb  5 05:58:44 1997  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/configure.in (alpha*): Add cntlz to extra_functions.

Wed Feb  4 03:30:45 1997  Torbjorn Granlund  <tege@matematik.su.se>

	* mpf/integer.c: New file (supporting mpf_floor, mpf_ceil, mpf_trunc).

Mon Feb  3 14:21:36 1997  Torbjorn Granlund  <tege@matematik.su.se>

	* make.bat: Fix typo, set_dfl_prc => set_dfl_prec.

Sun Feb  2 02:34:33 1997  Torbjorn Granlund  <tege@matematik.su.se>

	* mpf/out_str.c: After outputting `-', decrement n_digits.

Wed Jan  8 02:50:20 1997  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpn/generic/divrem.c: qextra_limbs => qxn.

Wed Dec 18 07:50:46 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpz/tests/t-tdiv.c (SIZE): Increase to 200.

Tue Dec 17 19:32:48 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpn/generic/divrem.c (mpn_divrem_classic): New name for mpn_divrem.
	* gmp.h (mpn_divrem): New function.
	* mpn/generic/divrem_newton.c: New file.
	* mpn/configure.in (functions): Add divrem_newton.
	* make.bat: Likewise.

Thu Dec 12 17:55:13 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* gmp.h (_GMP_H_HAVE_FILE): Test also __dj_include_stdio_h_.

Sat Dec  7 09:40:06 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpn/alpha/invert-limb.s: New file.

Thu Dec  5 01:25:31 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpz/ui_pow_ui.c (mpz_pow2): New (static) function.
	(mpz_ui_pow_ui): Rewrite.

	* make.bat: `pre_mod_1.c' => `pre_mod_.c'.  Fix typo in path to
	gmp-mpar.h.

Fri Nov 15 00:49:55 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpz/ui_pow_ui.c: Rewrite for better speed.

Fri Nov  1 16:36:56 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* Makefile.in (recursive make rules): Use `&&' instead of `;' as
	delimiter.

Fri Oct 25 17:12:36 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* gmp-impl.h (Cray/uxp MPN_COPY): Really declare as inline.

Thu Oct 24 15:08:19 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpn/fujitsu/rshift.c: Fix typo in loop boundaries.

Fri Oct 18 03:13:54 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpn/configure.in: Recognize `nextstep' for m68k variants; likewise
	for x86 variants.

	* mpn/x86/syntax.h (INSND): New macro.
	* mpn/x86/[lr]shift.S: Use INSND.
	* mpn/x86/pentium/[lr]shift.S: Likewise.
	* mpn/config/t-oldgas (SFLAGS): Pass -DOLD_GAS.

	* gmp-impl.h: In code for determining endianness, test also
	__BIG_ENDIAN__ and __hppa__.  Remove test of __NeXT__.

Wed Oct 16 03:50:34 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpf/set_str.c: Let `prec' determine precision used in
	exponentiation code; decrease allocation accordingly.

	* mpn/vax: Change `jsob*' to `sob*' in all files.

Tue Oct 15 03:54:06 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* longlong.h (m88110 udiv_qrnnd): Change type of intermediate quotient
	to DImode (divu.d generates a 64-bit quotient).

	* configure.in (m88110*): Fix typo.

	* mpf/get_str.c: Compute exp_in_base using `double' to avoid overflow.

	* gmp-impl.h (struct bases): Change type of chars_per_bit_exactly from
	float to double.
	* mpn/mp_bases.c (__mp_bases): Give 17 digits for chars_per_bit_exactly
	field.

	* mpf/get_str.c: Let `prec' determine precision used in
	exponentiation code; decrease allocation accordingly.

Sun Oct 13 03:31:53 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* longlong.h: Major cleanup.
	(__udiv_qrnnd_c): Compute remainders using multiply and subtract,
	not explicit `%' operator.
	(C umul_ppmm): Get rid of a redundant __ll_lowpart.

	* mpz/invert.c: Properly detect all operands that would yield an
	undefined inverse; make sure the inverse is always positive.

	* mpz/xor.c: New file.
	* mpz/Makefile.in: Compile it.
	* make.bat: Likewise.
	* gmp.h (mpz_xor): Declare.

	* mpz/tests/logic.c: Also test mpz_xor.

	* mpz/lcm.c: Special case for when either operand equals 0.

Sat Oct 12 01:57:09 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpn/generic/gcd.c (find_a): Don't inline on x86.

	* Makefile.in (CFLAGS): Default to just `-g'.

	* configure.in: Recognize 386 and 486 wherever other x86 cpus are
	recognized.
	* configure.in: Use mt-x86 for all x86 cpus.
	* config/mt-x86: New file.

	* mpn/alpha/cntlz.s: New file.

Tue Oct  8 00:16:18 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* longlong.h: Define smul_ppmm for Fujitsu vpp/uxp.
	Rewrite umul_ppmm to actually work on the hardware.

	* mpn/x86/sub_n.S: Avoid parens around displacement of `leal'.
	* mpn/x86/add_n.S: Likewise.

	* mpn/x86/syntax.h (R): Define differently depending on __STDC__.

Mon Oct  7 16:48:08 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* longlong.h: Don't test for __NeXT__ in outer 68k conditional;
	add test for __m68k__.

Sun Oct  6 00:59:09 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* gmp.h: Declare mpn_random.
	* make.bat: Compile mpn/generic/random.c.

	* longlong.h: Define umul_ppmm for Fujitsu vpp/uxp.

	* gmp-impl.h: Protect definitions using `__attribute__ ((mode (...)))'
	with test also for __GNUC_MINOR__.

	* gmp.h: Don't define macros using __builtin_constant_p when using
	NeXT's compiler.

Fri Oct  4 16:53:50 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpz/lcm.c: New file.
	* mpz/Makefile.in: Compile it.
	* make.bat: Likewise.
	* gmp.h (mpz_lcm): Declare.

Wed Sep 25 00:06:21 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpq/tests/t-cmp_ui.c: Make sure numerator and denominator of `b' is
	within limits of an `unsigned long int'.

	* mpz/tests/t-powm_ui.c: Change type of exp2 to `unsigned long int'.

Tue Sep 24 18:58:20 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpz/powm_ui.c: Make result always positive.

	* urandom.h (urandom): Make it return mp_limb_t.

	* gmp-impl.h (CNST_LIMB): New macro.
	* mpn/mp_bases.c: Use CNST_LIMB.
	* mpn/generic/hamdist.c (popc_limb): Likewise.
	* mpn/generic/popcount.c (popc_limb): Likewise.
	* mpn/generic/perfsqr.c: Likewise.

Fri Sep 20 03:08:10 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpz/pprime_p.c: When n <= 3, don't clear out n before using it.

Wed Sep 18 11:22:45 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpn/fujitsu/mul_1.c: New file.
	* mpn/fujitsu/addmul_1.c: New file.
	* mpn/fujitsu/sub_n.c: New file.
	* mpn/fujitsu/add_n.c: Mew file.

Sun Sep 15 03:13:02 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpn/generic/random.c: New file.
	* mpn/configure.in (functions): Add `random'.

	* gmp-impl.h (MPN_COPY): Define as annotated inline function for
	Crays and Fujitsu VPPs.

	* gmp.h (mp_size_t): Define as `int' for non-MPP Cray.
	(mp_exp_t): Likewise.

	* configure.in: Add support for Fujitsu VPP machines.
	* mpn/configure.in: Likewise.
	* config.guess: Likewise.
	* config.sub: Likewise.

	* mpn/fujitsu/rshift.c: New file.
	* mpn/fujitsu/lshift.c: New file.
	* mpn/fujitsu: New directory, for Fujitsu VPP machines.

Wed Sep 11 11:34:38 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpn/generic/mul_n.c (__gmpn_mul_n): New name for impn_mul_n.
	Call __gmpn_mul_basecase, not impn_mul_n_basecase; update parameter
	list to work with __gmpn_mul_basecase.
	(__gmpn_sqr): New name for impn_sqr_n.
	Call __gmpn_sqr_basecase, not impn_sqr_n_basecase; update parameter
	list to work with __gmpn_sqr_basecase.
	(mpn_mul_n): Update calls to match new names and parameter conventions.
	* gmp-impl.h (MPN_MUL_N_RECURSE): Likewise.
	(MPN_SQR_RECURSE): New name for MPN_SQR_N_RECURSE.
	Update calls to match new names and parameter conventions.
	* mpn/generic/mul.c: Never perform multiply explicitly here, call
	__gmpn_mul_basecase instead.
	Update calls to match new names and parameter conventions.

	* mpn/x86/mul_basecase.S: New file.
	* mpn/generic/mul_basecase.c: New file.
	* mpn/generic/sqr_basecase.c: New file.

Wed Sep  4 02:59:21 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpz/set_str.c: Let `0b' and `0B' mean base 2.

Fri Aug 30 00:44:00 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* longlong.h (x86 umul_ppmm): Work around GCC bug that was
	triggered by Aug 28 change.

	* mpbsd/min.c (digit_value_in_base): New function.

	* mpz/set_str.c: Refine allocation size computation, use
	chars_per_bit_exactly instead of chars_per_limb.

	* mpbsd/Makefile.in (.c.o): Add -D_mpz_realloc=_mp_realloc.

Wed Aug 28 02:52:14 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* longlong.h (x86 umul_ppmm): Don't cast result operands.
	(x86 udiv_qrnnd): Likewise.
	(default smul_ppmm): Fix typo, umul_ppmm => smul_ppmm.
	(default umul_ppmm): New #define using smul_ppmm.
	(vax smul_ppmm): New #define.
	(vax umul_ppmm): Delete.
	(POWER umul_ppmm): Delete.
	(IBM 370 smul_ppmm): New #define.
	(IBM 370 umul_ppmm): Delete.
	(IBM RT/ROMP smul_ppmm): New #define.
	(IBM RT/ROMP umul_ppmm): Delete.

Tue Aug 27 01:03:25 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* gmp-impl.h (__gmp_0): Make it `const'.

	* mpn/Makefile.in (clean mostlyclean): Comment out recursive clean
	of `tests'.

	* mpn/generic/mul.c: Identify when we do squaring, and call
	impn_sqr_n_basecase/impn_sqr_n as appropriate.  Use
	KARATSUBA_MUL_THRESHOLD and KARATSUBA_SQR_THRESHOLD.
	Don't #define KARATSUBA_THRESHOLD.

	* mpn/generic/mul_n.c: Don't #define KARATSUBA_THRESHOLD.
	(impn_mul_n, impn_sqr_n): Rewrite, based on code contributed by
	Robert Harley.
	(impn_sqr_n_basecase): Rewrite.

	* gmp-impl.h (KARATSUBA_MUL_THRESHOLD): New #define.
	(KARATSUBA_SQR_THRESHOLD): Likewise.
	(MPN_SQR_N_RECURSE): Use KARATSUBA_SQR_THRESHOLD.
	(MPN_MUL_N_RECURSE): Use KARATSUBA_MUL_THRESHOLD.

	* configure.in: Fix typo in last change.

Mon Aug 26 22:25:18 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpn/generic/random2.c: Fix typo, `alpha__' => `__alpha'.
	* mpf/random2.c: Likewise.

Sun Aug 25 00:07:09 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* mpz/tests/t-mul.c: Also test squaring.

Fri Aug 16 05:12:08 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mp_clz_tab.c (__clz_tab): Declare as `const'.
	* version.c (gmp_version): Likewise.
	* mpn/generic/sqrtrem.c (even_approx_tab, odd_approx_tab): Likewise.

Thu Aug 15 02:34:47 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* gmp.h: Fix typo, `mips__' => `__mips'.

	* mpf/set_str.c: Allow a number to start with a period, if next
	position contains a digit.

Tue Aug 13 18:41:25 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpz/gcdext.c: Get cofactor sign right for negative input operands.
	Clean up code for computing tt.

	* mpz/invert.c: Get rid of variable `rv'.

	* mpz/divexact.c: Test for zero divisor in special case for zero
	dividend.

Mon Aug 12 18:04:07 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpz/?div_*_ui.c: Special case for division by 0.
	* mpz/tdiv_q.c: Likewise.

Sat Aug 10 14:45:26 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpz/dmincl.c: Special case for division by 0.

	* mpz/tdiv_*_ui.c: Delete special case for dividend being 0; handle
	it when computing size after mpn_divmod_1 call.

	* mp_bpl.c: (__gmp_junk): New variable.
	(__gmp_0): New constant.

	* gmp-impl.h (DIVIDE_BY_ZERO): New #define.

Fri Aug  9 20:03:27 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpz/divexact.c: Test for dividend being zero before testing
	for small divisors.

Thu Aug  8 13:20:23 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* configure.in: Require operating system specification for cpus
	where assembly syntax differs between system.

	* Makefile.in (many targets): Change `-' action prefix to `@'.

	* mpn/Makefile.in: (distclean): Fix typo.

	* mpq/cmp_ui.c: Rename function to _mpq_cmp_ui.
	(mpq_cmp_ui): #undef deleted.
	* mpz/cmp_si.c: Rename function to _mpz_cmp_si.
	(mpz_cmp_si): #undef deleted.
	* mpz/cmp_ui.c: Rename function to _mpz_cmp_ui.
	(mpz_cmp_ui): #undef deleted.
	* Makefile.in: Corresponding changes.

	* mpf/get_prc.c: Return the *highest* precision achievable.

	* mpf/get_str.c: Complete rewrite.

	* mpf/set_str.c (swapptr): New #define.
	(assert): New #define.
	* mpf/set_str.c: Set prec to one more than the saved _mp_prec.
	Misc cleanups.

	* mpz/set_str.c: #include string.h.
	* mpf/out_str.c: #include string.h.
	* mpbsd/xtom.c: #include string.h and ctype.h.
	* mpbsd/mout.c: #include string.h.

Wed Aug  7 11:46:04 EDT 1996  Ken Weber <kweber@mcs.kent.edu>

	* mpn/generic/gcd.c: Reorder mpn_gcd argument list.
	* mpz/gcd.c: Change call to mpn_gcd.
	* gmp.texi: Update manual entry on mpn_gcd.
	* mpn/generic/bdivmod.c: Delete limb cache to make mpn_bdivmod
	reentrant.

Wed Aug  7 02:15:38 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpf/get_str.c: Rewrite code for converting integral part of a
	number with both an integral and fractional part.

	* mpf/set_str.c: Get rid of variable xxx.  New variables madj and radj.
	In exp_in_base==0 case, add madj to msize for EXP field.

	* mpz/tests/t-gcd.c: Test deleted.  Rename t-gcd2.c to t-gcd.c.
	Increase reps to 2000.
	* mpz/tests/t-gcd2.c: Get rid of mpz_refgcd.

	* mpf/set_str.c: Ignore excess limbs in MP,MSIZE.

Thu Jul 25 04:39:10 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/configure.in: Fix typo in setting path, "sparc" => "sparc32".

Wed Jul 24 02:27:02 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/generic/gcdext.c: Reorganize and clean up.  Get rid of all
	signed limb arithmetic.

Mon Jul 22 02:39:56 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/generic/gcdext.c (mpn_gcdext): For large enough operands,
	work with most significant *two* limbs.
	(div2): New function (two variants).
	(THRESHOLD): New #define.

	* mpz/gcdext.c: Fix typo in MPZ_TMP_INIT call.

	* longlong.h (alpha UMUL_TIME): Now 30.
	(alpha UDIV_TIME): Now 350.
	(x86 UMUL_TIME): Now 10 (let Pentium decide).
	(SuperSPARC UDIV_TIME): Override default.

	* extract-dbl.c (MP_BASE_AS_DOUBLE): Don't redefine here.

	* extract-dbl.c: New name for extract-double.c.
	* insert-dbl.c: New name for insert-double.c.
	* Makefile.in: Corresponding changes.
	* make.bat: Likewise.

	* mpz/Makefile.in (.c.o): Don't pass non-portable `-f' to cp.
	* mpq/Makefile.in: Likewise.
	* mpf/Makefile.in: Likewise.

Sat Jul 20 01:35:18 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpz/getlimbn.c: Take ABS of integer->_mp_size.

	* mpz/divexact.c: Use mpn_divmod_1 if divisor is a single limb.

Thu Jul 18 00:31:15 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/generic/popcount.c (popc_limb): Use different masking trick
	for first step (due to David Seal).
	* mpn/generic/hamdist.c (popc_limb): Likewise.

Wed Jul 17 23:21:48 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/generic/divrem.c: In MPN_COPY_DECR call, copy dsize - 1 limbs.

Sun Jul 14 17:47:46 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* configure.in: Handle sparc9, sparc64, and ultrasparc like sparc8.

Thu Jul 11 14:05:54 1996  J.T. Conklin  <jtc@rtl.cygnus.com>

	* longlong.h (mc680x0): Define umul_ppmm, udiv_qrnnd, sdiv_qrnnd
	for the '020, '030, '040, and '332.  Define count_leading_zeros
	for the '020, '030, '040, and '060.

Sun Jul 14 15:24:53 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	From Joe Keane:
	* mpq/equal.c: Take ABS of num1_size before passing it to mpn_cmp.

Fri Jul 12 17:11:17 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/generic/sqrtrem.c (SQRT): New asm for x86, but leave it
	disabled for now.

	* mpn/generic/sqrtrem.c: Use MP_BASE_AS_DOUBLE.

Wed Jul 10 03:17:45 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* cre-mparam.c: Delete obsolete file.

	* gmp.h: #define _LONG_LONG_LIMB if __mips && _ABIN32.
	* longlong.h: Test __mips instead of __mips__.

Sun Jul  7 23:19:13 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* longlong.h (_PROTO): Define, unless already defined.
	(alpha __udiv_qrnnd): Declare using _PROTO.
	(hppa __udiv_qrnnd): Likewise.
	(sparc __udiv_qrnnd): Likewise.

Mon Jul  1 01:44:30 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* config.guess: Update from master version; add Cray x90 handling.

Wed Jun 26 05:35:02 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/power/add_n.s (__mpn_add_n): Work around GAS bug.
	* mpn/power/sub_n.s (__mpn_sub_n): Likewise.

	* insert-double.c: Rework loop to avoid potential overflow.

	* mpq/get_d.c: For vax, if qsize > N_QLIMBS, ignore excess limbs.

	* mpq/tests/t-get_d.c (SIZE): Special case for vax.

	* gmp.h (mpX_cmp_ui): #define also when ! __GNUC__.

Mon Jun 24 17:13:21 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* longlong.h (vax sdiv_qrnnd): Fix typo.

Sat Jun 15 01:33:33 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* gmp.h: Support `small' and `large' type and function variants,
	controlled by GMP_SMALL.

	* mpz/Makefile.in (.c.o): Compile each function twice, for small and
	large variant.
	(MPZS_OBJS): New variable.
	(libmpz.a): Include MPZS_OBJS in archive.
	* mpf/Makefile.in: Analogous changes.
	* mpq/Makefile.in: Analogous changes.

	* gmp.h: Prefix all functions with __gmp, to allow namespace-clean
	internal calls.

	* mp.h: Rip out __MP_SMALL__ stuff.
	(__mpz_struct): mp_size_t => int.

	* mpz/invert.c: #include "gmp-impl.h".
	Use MPZ_TMP_INIT, not mpz_init.

	* mpz/gcdext.c: Rewrite to call mpn_gcdext.

Fri Jun 14 18:05:29 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/generic/gcdext.c (s0size): New parameter.
	* gmp.h (mpn_gcdext): Update prototype.

	* mpn/generic/gcdext.c: Major rewrite.

Mon Jun 10 00:14:27 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/generic/dump.c: Add missing `else'.

Fri Jun  7 03:35:12 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* Makefile.in (gmp_toc.html): Pass -expandinfo to texi2html.

Thu Jun  6 19:00:53 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* Version 2.0.2 released.

	* install.sh: New file.
	* Makefile.in (INSTALL): Use install.sh.
	(install-normal): New name for target `install'.
	(install): New dummy target.

	* mpz/pow_ui.c: Swap tests for (e == 0) and (bsize == 0).
	* mpz/ui_pow_ui.c: Swap tests for (e == 0) and (blimb == 0).

	* config/mt-linux (AR_FLAGS): New file.
	* configure.in: Use config/mt-linux for all linux systems.

Tue Jun  4 03:42:18 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* Version 2.0.1 released.

	* mpf/tests/ref.c: Cast result of TMP_ALLOC to the right pointer type.

	* extract-double.c: Test _GMP_IEEE_FLOATS with #if, not plain if.

	* insert-double.c: Don't #include stdlib.h.

	* gmp-impl.h (union ieee_double_extract): Test sparc and __sparc.
	Do not test __sparc__.

	* mpf/reldiff.c: Change declaration to work around irix5 compiler bug.
	* mpq/equal.c: Likewise.

	* mpn/generic/gcd.c: Delete spurious comma at end of enumeration.

	* mpn/generic/gcdext.c: Add K&R declaration syntax.
	* stack-alloc.h: Likewise.
	* insert-double.c: Likewise.
	* extract-double.c: Likewise.
	* mpf/tests/reuse.c: Likewise.
	* mpz/tests/reuse.c: Likewise.
	* mpf/tests/t-sub.c: Likewise.
	* mpf/tests/t-add.c: Likewise.
	* mpf/tests/t-muldiv.c: Likewise.
	* mpf/tests/t-conv.c: Likewise.
	* mpf/tests/ref.c: Likewise.

	* mpn/config/t-oldgas: Renamed from t-freebsd.
	* mpn/configure.in: Use t-oldgas for freebsd, netbsd, and some linux
	configurations.

	* mpn/powerpc32/mul_1.s: Really clear cy before entering loop.
	* mpn/powerpc32/*.s: Fix power/powerpc syntax issues.

	* mpn/config/t-ppc-aix: New file.
	* mpn/configure.in: Use t-ppc-aix for powerpc like t-pwr-aix for power.

Wed May 29 02:07:31 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* gmp.h (mp_bits_per_limb): Change qualifier from `const' to
	__gmp_const.

	* gmp.h (mpf_init_set_str): Add `const' qualifier for 2nd parameter.
	* mpf/iset_str.c: Likewise.

Mon May 27 00:15:58 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* gmp-impl.h: Declare __gmp_extract_double.

	* mpz/set_q.c: Delete unused variables.

	* gmp.h (mpq_equal): Declare.

	* mpf/eq.c: mpf_cmp2 -> mpf_eq.

Fri May 24 03:20:44 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpz/iset_d.c: Don't include <math.h>.

	* insert-double.c (__gmp_scale2): New name for scal2.
	* mpz/get_d.c: Corresponding change.
	* mpf/get_d.c: Likewise.
	* mpq/get_d.c: Likewise.
	* gmp-impl.h: Declare __gmp_scale2.

	* mpn/generic/scan0.c: Clarify comment.

	* mpz/set_q.c: New file.
	* Makefile.in: Compile it.
	* make.bat: Likewise.
	* gmp.h: Declare mpz_set_q.

	* insert-double.c: New file.
	* Makefile.in: Compile it.
	* make.bat: Likewise.

	* mpz/get_d.c: New file.
	* mpz/Makefile.in: Compile it.
	* make.bat: Likewise.
	* gmp.h: Declare mpz_get_d.

	* mpf/get_d.c: New file.
	* mpf/Makefile.in: Compile it.
	* make.bat: Likewise.
	* gmp.h: Declare mpf_get_d.

	* make.bat: Compile things in alphabetical order.

	* gmp-impl.h (MP_BASE_AS_DOUBLE): New #define.
	(LIMBS_PER_DOUBLE): New #define.

	* extract-double.c: New file.
	* Makefile.in: Compile it.
	* make.bat: Likewise.
	* mpz/set_d.c: Rewrite to use __gmp_extract_double.
	* mpf/set_d.c: Likewise.

	* mpn/configure.in: Use t-pwr-aix also for aix 3.2.4 and up.

Wed May 22 02:48:35 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* gmp-impl.h: Rework code for defining ieee_double_extract.
	(IEEE_DOUBLE_BIG_ENDIAN): Macro removed.
	(_GMP_IEEE_FLOATS): New macro.
	* mpn/vax/gmp-mparam.h: Delete.

	* mpn/config/t-pwr-aix: New file.
	* mpn/configure.in: Use t-pwr-aix for aix 4 and later.

Mon May 20 16:30:31 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* gmp.h: In code for setting _GMP_H_HAVE_FILE, test more symbols.

	* mpf/tests/t-add.c (oo): Add some `l' printf modifiers.
	* mpf/tests/t-sub.c (oo): Likewise.
	* mpf/tests/t-conv.c (oo): Likewise.
	* mpf/tests/t-sqrt.c (oo): Likewise.

	* mpz/tests/t-mul.c (_mpn_mul_classic): Remove unused variables.

	* mpn/{pyr,i960,clipper}/*.s: Add missing copyright headers.

Fri May 17 02:24:43 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpz/set_d.c: Call _mpz_realloc.

	* mpq/set_z.c: New file.
	* mpq/Makefile.in: Compile it.
	* make.bat: Likewise.
	* gmp.h: Declare mpq_set_z.

	* mp?/Makefile.in (libmp?.a): Depend on Makefile, not Makefile.in.
	* mpf/Makefile.in (test): Delete spurious target.
	* mpq/Makefile.in (test): Likewise.

	* mpf/out_str.c: Use `e' to separate exponent when base <= 10.

	* mpn/configure.in: Treat ultrasparc just like sparc v8,
	until 64-bit compilers are ready.

	* mpf/set_d.c: Make it work for 64-bit machines.

Thu May 16 20:53:57 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* gmp-impl.h: Set IEEE_DOUBLE_BIG_ENDIAN to 0 for little-endian
	machines.
	* mpn/x86/gmp-mparam.h: Delete file.

	* configure.in: Treat microsparc like sparc8.

	* urandom.h: Test __alpha instead of __alpha__, since the former
	is the standard symbol.
	* mpn/generic/random2.c: Likewise.
	* mpf/random2.c: Likewise.

Tue May 14 13:42:39 1996  Torbjorn Granlund  (tege@tiny.matematik.su.se)

	* mpz/set_f.c: New file.
	* mpz/Makefile.in: Compile it.
	* gmp.h: Declare mpz_set_f.

	* mpf/set_q.c: Simplify expression in rsize == nsize if-then-else arms.

Tue May 14 13:03:07 1996  Torbjorn Granlund  (tege@tiny.matematik.su.se)

	* make.bat: Add all new files.

Sun May 12 22:24:36 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpf/set_z.c: New file.
	* mpf/Makefile.in: Compile it.
	* gmp.h: Declare mpf_set_z.

Sat May 11 19:26:25 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* gmp.h: Declare mpf_set_q.

	* mpf/set_q.c: Compute prec-1 limbs in mpn_divrem call.

Fri May 10 17:37:38 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpf/set_q.c: New file.
	* mpf/Makefile.in: Compile it.

	* config.sub: Recognize sparc8.

Wed May  8 09:19:11 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpf/tests/t-dm2exp.c: New file.

	* mpf/tests/t-add.c: Correct header comment.
	* mpf/tests/t-sub.c: Likewise.
	* mpf/tests/t-sqrt.c: Likewise.

	* mpf/div.c: Misc variable name cleanups.
	* mpf/div_ui.c: Base more closely on mpf/div.c.
	* mpf/ui_div.c: Likewise.

	* mpz/tests/Makefile.in (check): Depend on Makefile.
	* mpq/tests/Makefile.in (check): Likewise.
	* mpf/tests/Makefile.in (check): Likewise.

	* mpf/tests/t-muldiv.c: New file.
	* mpf/tests/Makefile.in: Compile and run `t-muldiv'.
	(t-ref.o): Delete spurious rule.

	* mpf/sqrt.c: Properly detect negative input operand.

	* mpf/sqrt_ui.c: Delete spurious header comment.
	* mpf/sqrt.c: Likewise.
	* mpz/sqrt.c: Likewise.

	* mpz/tests/reuse.c (main): Read `reps' from command line.

	* mpf/tests/reuse.c: New file.
	* mpf/tests/Makefile.in: Compile and run `reuse'.

	* mpf/mul_ui.c: Disable code for removing low zero limbs.

	* mpf/div.c: Fix condition for when vp and qp overlaps.

	* mpf/add_ui.c: When sum equals u, copy up to prec+1 limbs.

	* mpf/out_str.c: Don't output '\n' after exponent.

	* mpf/add_ui.c: New special case for when U is completely cancelled.

Wed Apr 24 05:33:28 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* Version 2.0 released.

	* All files: Update FSF's address.

	* Makefile.in (gmp_toc.html): New name for gmp.html.
	(TAGS): Depend on force.

	* mpf/tests/t-conv.c: Pass -base to mpf_set_str.

Sat Apr 20 03:54:06 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* Makefile.in (ps): New target, depend on gmp.ps.

Fri Apr 19 14:03:15 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpf/out_str.c: Print `@' before exponent, not `e'.

	* make.bat: Update from Makefiles.

Thu Apr 18 01:22:05 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpf/set_str.c: If parameter `base' is negative, expect exponent
	to be decimal, otherwise in the same base as the mantissa.

Wed Apr 17 17:28:36 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpf/set_dfl_prec.c: Don't return anything.
	* gmp.h: Corresponding changes.

	* mpf/set_dfl_prec.c: Use `unsigned long int' for bit counts.
	* mpf/init2.c: Likewise.
	* mpf/get_prc.c: Likewise.
	* mpf/set_prc.c: Likewise.
	* mpf/set_prc_raw.c: Likewise.
	* mpz/popcount.c: Likewise.
	* mpz/hamdist.c: Likewise.
	* mpz/scan1.c: Likewise.
	* mpz/scan0.c: Likewise.
	* mpn/generic/popcount.c: Likewise.
	* mpn/generic/hamdist.c: Likewise.
	* mpn/generic/scan1.c: Likewise.
	* mpn/generic/scan0.c: Likewise.
	* gmp.h: Likewise.

	* mpf/eq.c: New file, based on mpf/diff.c.
	* mpf/diff.c: Delete.
	* mpf/Makefile.in: Corresponding changes.
	* gmp.h: Likewise.

	* mpf/reldiff.c: New file.
	* mpf/Makefile.in: Compile it.
	* gmp.h: Declare mpf_reldiff.

	* mpz/iset_d.c: New file.
	* mpz/Makefile.in: Compile it.
	* gmp.h: Declare mpz_init_set_d.

Tue Apr 16 16:28:31 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* Makefile.in (gmp.html): Pass -acc to texi2html.

Mon Apr 15 16:20:24 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpf/set_str.c: Switch off code for defaulting the base from the
	leading characters.

	* gmp.h (mp?_sign): Delete.
	(mp?_sgn): New macros.

Fri Apr 12 17:23:33 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* Makefile.in (gmp.dvi): Delete tmp.* at end of rule.

Wed Apr 10 22:52:02 1996  Torbjorn Granlund  (tege@tiny.matematik.su.se)

	* mpf/random2.c: Change of `exp' param, mp_size_t => mp_exp_t.
	* gmp.h: Corresponding change.

	* gmp.h (mp_bits_per_limb): Make it const.

Sat Mar 30 01:20:23 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* configure.in: Re-enable recognition of with_gcc.

	* mpf/Makefile.in (.c.o): Pass XCFLAGS.
	* mpn/Makefile.in (.c.o): Likewise.
	* mpz/Makefile.in (.c.o): Likewise.
	* mpq/Makefile.in (.c.o): Likewise.
	* mpbsd/Makefile.in (.c.o): Likewise.
	* mpf/tests/Makefile.in (.c.o): Likewise.
	* mpz/tests/Makefile.in (.c.o): Likewise.
	* mpq/tests/Makefile.in (.c.o): Likewise.

	* Makefile.in (XCFLAGS): Default to empty.
	(FLAGS_TO_PASS): Pass on XCFLAGS.
	(.c.o): Pass XCFLAGS.

	* config/mt-m88110 (XCFLAGS): Define instead of CC.
	* config/mt-sprc8-gcc (XCFLAGS): Likewise.
	* config/mt-supspc-gcc (XCFLAGS): Likewise.

	* configure: Don't default CC to "gcc -O2" is -with-gcc=no was
	specified.

Mon Mar 25 01:07:54 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* urandom.h: Test for __SVR4 in addition to __svr4__.

	* mp_bpl.c (mp_bits_per_limb): Declare as `const'.

	* Makefile.in (CFLAGS): `-O2' => `-O'.
	* mpn/Makefile.in (CFLAGS): Likewise.

	* gmp-impl.h: Get rid of obsolete field access macros.

	* mpn/mp_bases.c (__mp_bases): 1e39 => 1e38 to work around Solaris
	cc compiler bug.

	* gmp.h (__MPN): Make it work also for non-ANSI compilers.

Thu Mar 21 01:07:54 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpf/sub.c: New special case for ediff <= 1 before generic code.
	Simplify generic code for ediff == 0.
	Rename uexp => exp.

Mon Mar 11 18:24:57 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpf/tests/*.c: Use ref_mpf_sub for error calculation.
	* mpf/tests/Makefile.in: Link ref.o to all executables.

	* mpf/tests/t-sub.c: Make u = v + 1 with 50% probability.

Sun Mar 10 21:03:17 1996  Torbjorn Granlund  (tege@tiny.matematik.su.se)

	* mpf/get_str.c: In digit development loop for fractions, change
	loop condition from `<' to `<='.

Thu Mar  7 04:58:11 1996  Torbjorn Granlund  <tege@tiny.matematik.su.se>

	* mpn/mp_bases.c (__mp_bases): 1e100 => 1e39 to avoid overflow warning.

Wed Mar  6 01:10:42 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpf/tests/t-sqrt.c: New file.
	* mpf/tests/Makefile.in: Corresponding changes.

	* mpf/sqrt.c: Special case for square root of zero.

	* mpq/add.c: Clean up variable names.
	* mpq/sub.c: Update from mpq/add.c.

	* mpz/divexact.c: abs => ABS.
	* mpz/gcd.c: Likewise.  Rewrite final fixup code, to decrease
	allocation.  Misc cleanups.

Tue Mar  5 22:24:56 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/configure.in: Recognize linuxoldld as a synonym for linuxaout.

	* gmp.h (mpn_add, mpn_add_1, mpn_sub, mpn_sub_1): Add prototypes.

	* mpn/configure.in: Use t-freebsd also for netbsd.

Mon Mar  4 15:13:28 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* mpq/Makefile.in (cmp.o): Depend on longlong.h.

	* mpq/equal.c: New file.
	* mpq/Makefile.in: Corresponding changes.

	* mpf/tests/t-add.c: New file.
	* mpf/tests/t-sub.c: Renamed from t-addsub.c.
	* mpf/tests/ref.c: New file.
	* mpf/tests/Makefile.in: Corresponding changes.

	* gmp-impl.h (SIZ, ABSIZ, PTR, EXP, PREC, ALLOC): New #defines.

Sun Mar  3 07:45:46 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* mpf/set_str.c: In exponentiation code, allocate 3 extra
	limbs, not just 2.

	* mpf/get_str.c: Allocate sufficient space for tstr.
	When calculating exp_in_base, round result down.

	* mpf/tests/t-conv.c: New file.
	* mpf/tests/Makefile.in: Corresponding changes.

	* mp_bpl.c: New file.
	* gmp.h: Declare it.
	* Makefile.in: Corresponding changes.

Sat Mar  2 06:27:56 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* mpf/set_prc_raw.c: New file.
	* mpf/set_prc.c: Renamed from set_prec.c.
	* mpf/get_prc.c: New file.
	* mpf/Makefile.in: Corresponding changes.
	* gmp.h: Declare new functions.

	* mpn/generic/gcdext.c: Add copyright header.

Fri Mar  1 01:22:24 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/configure.in: For ppc601, search "power" before "powerpc32".

	* mp?/Makefile.in (AR_FLAGS): New variable.
	(libmp?.a): Use it.

	* make.bat: New file.
	* mpn/msdos: New directory.
	* mpn/msdos/asm-syntax.h: New file.

	* mpn/Makefile.in (distclean maintainer-clean): Delete asm-syntax.h.

	* config.sub: Recognize [ctj]90-cray.

	* mpn/configure.in: Recognize [ctj]90-cray-unicos*.

	* mpn/generic/gcdext.c: Don't use alloca directly, use TMP_* macros.

	* mpn/generic/gcd.c: Split increment from use of USIZE to avoid
	undefined behaviour.

Thu Feb 29 04:11:24 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* Makefile.in (install-info-files): Update for new install-info
	behaviour.

	* mpn/power/add_n.s: Rewrite.
	* mpn/power/sub_n.s: Rewrite.

Wed Feb 28 01:34:30 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* mpz/pow_ui.c: Compute allocation more aggressively for small bases.
	* mpz/ui_pow_ui.c: Likewise.

	* mpn/mp_bases.c (__mp_bases): Put huge value in 2nd field for index 1.

	* mpn/generic/sqrtrem.c: sizeof (mp_limb_t) => BYTES_PER_MP_LIMB.
	* mpn/generic/gcd.c: Likewise.
	(SIGN_BIT): Compute differently.

Mon Feb 26 00:07:36 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* All files: mp_limb => mp_limb_t, mp_limb_signed => mp_limb_signed_t.

	* Makefile.in (install, install-bsdmp, install-info-files): Depend
	on installdirs.  chmod all installed files.

Sun Feb 25 01:47:41 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* mpbsd/configure.in: Delete debugging code.

	* All Makefile.in: Update clean targets.

	* Makefile.in (AR_FLAGS): New variable.
	(libgmp.a): Use it.
	(libmp.a): Likewise.

	* VERSION: Delete file.

	* Makefile.in (installdirs): New target.
	* mkinstalldirs: New file (from the texinfo package).

	* Makefile.in (INSTALL, INSTALL_DATA, INSTALL_PROGRAM): New variables.
	(MAKEINFO, MAKEINFOFLAGS, TEXI2DVI): New variables.
	(install-info): New target.
	(install, install-bsdmp): Depend on install-info.
	($(srcdir)/gmp.info): Changed from plain gmp.info; put info files
	into source directory.
	(distclean, mostlyclean): New targets.
	(maintainer-clean): New name for realclean.
	(uninstall): New target.
	(TAGS): New target.
	(info, dvi): New targets.
	(.PHONY): Assign.

	* Makefile.in (install, install-bsdmp): Use INSTALL_DATA.

	* mp{n,z,f,bsd}/move-if-change: Delete.

	* mpbsd/Makefile.in (stamp-stddefh): Delete target.

	* Makefile.in (.c.o): Pass CFLAGS last.
	* mpbsd/Makefile.in (.c.o): Likewise.
	* mpf/Makefile.in (.c.o): Likewise.
	* mpq/Makefile.in (.c.o): Likewise.
	* mpz/Makefile.in (.c.o): Likewise.
	* mpn/Makefile.in (.c.o): Likewise.
	(.S.o): Likewise.

	* memory.c: Change allocation error message.

	* Makefile.in (install): Prefix gmp.h with $(srcdir).
	(install-bsdmp): Prefix mp.h with $(srcdir).

	* mp{n,z,f,bsd}/{configure,config.sub}: Delete.

	* Makefile.in (gmp.dvi): Set TEXINPUTS also for 2nd tex invocation
	(install targets): Install gmp.info-N.

Sat Feb 24 03:36:52 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* mpf/get_str.c: Fix typo.

	* mpz/legendre.c: Clarify expression with extra parens.

	* version.c (gmp_version): Not static.

	* mpf/iset_str.c: Properly return error code.

	* mpf/add.c: Delete unused variables.
	* mpf/inp_str.c: Likewise.
	* mpq/get_d.c: Likewise.

	* mpn/generic/dump.c: #include <stdio.h>.
	* mpf/dump.c: Likewise.
	* mpf/set_str.c: #include <ctype.h>.
	(strtol): Declare.

	* gmp.h: mpn_sqrt => mpn_sqrtrem.

	* Makefile.in (clean, realclean): Clean in mpbsd.
	(check): Test in mpf.

	* mpf/Makefile.in (clean): Clean in tests.
	* mpq/Makefile.in (clean): Clean in tests.

	* mpf/tests/Makefile.in: New file.
	* mpf/tests/configure.in: New file.
	* mpf/tests/t-addsub.c: New file.

	* mpf/sub_ui.c: Simply call mpf_sub for now.

	* mpf/sub.c: Increase prec by 1.
	* mpf/ui_sub.c: Likewise.

Fri Feb 23 00:59:54 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* mpf/ui_sub.c: Fix typos.

	* mpf/get_str.c: When allocating space for tmp, allow for an extra
	limb.  In code for fraction conversion, add special case for bases
	that are a power of 2.

	* mpf/out_str.c: Output leading "0.".
	Default base to 10, before computing string allocation.

	* mpf/get_str.c: Make variables for string size have type size_t.
	* gmp.h: Corresponding change.

	* mpf/random2.c: Allow creation of prec+1 large mantissas.

	* mpf/add_ui.c: Don't abort if u < 0; special case for u <= 0.
	Fix typo in MPN_COPY offset.
	* mpf/sub_ui.c: Analogous changes.

	* mpf/set_prec.c: Rewrite.

	* mpf/init2.c: Compute precision as in set_prec.c.

	* mpf/div_2exp.c: Special case for u == 0.
	* mpf/mul_2exp.c: Likewise.  Write r->_mp_size always.

	* mpf/sqrt_ui.c: mpn_sqrt => mpn_sqrtrem.
	* mpf/sqrt.c: Likewise.  When computing new exponent, round quotient
	towards -infinity.

	* mpf/add.c: Fix typos.
	* mpf/sub.c: Fix typos.

Thu Feb 22 00:24:48 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* mpz/Makefile.in (stamp-stddefh): Delete target.
	(test): Delete target.
	* Makefile.in (stamp-stddefh): Delete target.
	(cre-stddefh.o): Delete target.
	(gmp.dvi): Set TEXINPUTS before invoking tex.

	* cre-stddefh.c: Delete.

	* mpz/sqrt.c: Fix typo.

	* mpz/powm.c: Special case for mod == 0.
	* mpz/powm_ui.c: Likewise.

	* mpz/get_si.c: Handle -0x80000000 correctly.

	* mpz/inp_str.c: Now returns size_t.
	Make it return number of bytes read or error indication.
	* mpf/inp_str.c: Likewise.

	* mpz/out_raw.c: Replace by mpz/out_binary.c, with modifications.
	* mpz/inp_raw.c: Rewrite, using mpz/inp_binary as a base.
	* mpz/inp_binary.c: Delete.

	* mpn/Makefile.in (XCFLAGS): Remove variable.
	(.c.o): Don't pass XCFLAGS.
	(SFLAGS): Set to nothing.
	(.S.o): Pass SFLAGS, not XCFLAGS.

	* mpn/config/t-freebsd (SFLAGS): New name for XCFLAGS.

	* mpf/out_str.c: Make return number of bytes written or error
	indication.
	* mpz/out_str.c: Likewise.
	* gmp.h: Corresponding changes.

	* gmp.h (__mpz_struct): mp_size_t => int.
	(__mpq_struct): Likewise.
	(__mpf_struct): Likewise.
	(mp_size_t): int => long int.

	* mpn/cray: New directory.
	* mpn/cray/gmp-mparam.h: New file.
	* mpn/configure.in: Recognize cray variants.

	* Makefile.in: Set defaults for prefix, libdir, etc.
	(install): New target.
	(install-bsdmp): New target.
	(gmp.html): New target.

	* stack-alloc.c (__tmp_alloc): Cast void ptrs to char * in comparison.

Wed Feb 21 04:35:02 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* gmp.h: Sort mpn declarations.
	(mpn_gcdext): Add declaration.

	* mpn/generic/divrem_1.c: New file.
	* mpn/Makefile.in (divrem_1.o): New rule.
	* configure.in (functions): Add divrem_1.

	* mpn/generic/divmod.c: Delete file.
	* mpn/configure.in (functions): Delete divmod.
	* Makefile.in (divmod.o): Delete rule.
	* gmp.h (mpn_divmod): New #define.

	* gmp.h (mpn_next_bit_set): Delete spurious declaration.

	* mpn/generic/divrem.c (default case): In code assigning
	most_significant_q_limb, move reassignment of n0 into if statement.

	* gmp.h (mpf_inp_str): Fix typo.
	(mpf_out_str): Make prototype match reality.
	* mpf/inp_str.c: New file.
	* mpf/out_str.c: New file.
	* mpf/Makefile.in: Compile new files.

	* mpn/Makefile.in (dump.o): Fix dependency path.
	(inlines.o): Likewise.

	* mpn/configure.in: Make m68060 be the same as m68000.  Clean up
	m68k configs.

Tue Feb 20 01:35:11 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/generic/sqrtrem.c: Renamed from sqrt.
	* mpn/configure.in (functions): Corresponding change.
	* mpn/Makefile.in: Likewise.
	* mpz/sqrtrem.c: Likewise.
	* mpz/sqrt.c: Likewise.
	* mpn/generic/perfsqr.c: Likewise.

	* Makefile.in (clean): Also remove libmp.a.
	Don't compile cre-conv-tab.c or mp_bases.c.
	cre-conv-tab.c: Delete file.
	(gmp.ps): New rule.

	* mpn/mp_bases.c: New file.
	* mpn/Makefile.in: Compile mp_bases.c.

	* mpz/set_str.c: Skip initial whitespace.
	* mpf/set_str.c: Likewise.
	* mpbsd/xtom.c: Likewise.

	* gmp.h: Add missing mpz declarations.
	Delete all formal parameter names from declarations.

	* mpn/Makefile.in: Add dependencies for .c files.

	* Makefile.in (check): Write recursive make calls separately, not as
	a loop.
	(FLAGS_TO_PASS): New variable.  Use it for most recursive makes.

Mon Feb 19 01:02:20 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* mpn/Makefile.in (.S.o): Pipe cpp output to grep in order to delete
	lines starting with #.
	(CPP): Set to $(CC) -E to avoid gcc dependency.

	* mpn/m68k/syntax.h (moveql): Define to moveq for MIT_SYNTAX.

	* mpn/hppa/hppa1_1/pa7100/addmul_1.S: Fix typo in s1_ptr alignment
	code.
	* mpn/hppa/hppa1_1/pa7100/submul_1.S: Likewise.

	* gmp.h: Fix typos in #defines of recently added mpn functions.

	* mpz/inp_str.c: Skip all whitespace, not just plain space.
	* mpbsd/min.c: Likewise.

	* mpn/configure.in (functions): Add gcdext.
	* mpn/generic/gcdext.c: New file.

	* mpz/legendre.c: mpz_div_2exp => mpz_tdiv_q_2exp.

	* gmp.h: Surround mpn declarations with extern "C" { ... }.

	* Makefile.in (check): New target.

	* mpq/get_d.c: Update comments.  Use rsize instead of dsize + N_QLIMBS
	when possible.  Add special case for nsize == 0.

	* gmp.h (mpq_get_d): Add declaration.
	(mpq_canonicalize): Likewise.
	(mpq_cmp_ui): Likewise.
	(mpf_diff): Likewise.
	(mpf_ui_sub): Likewise.
	(mpf_set_prec): Likewise.
	(mpf_random2): Likewise.

	* gmp.h (mpz_cmp_ui): New #define.
	(mpz_cmp_si): New #define.
	(mpq_cmp_ui): New #define.
	(mpz_sign): New #define.
	(mpq_sign): New #define.
	(mpf_sign): New #define.
	(mpq_numref): New #define.
	(mpq_denref): New #define.

	* mpq/set_z.c: File deleted.
	* mpq/Makefile.in: Corresponding changes.

Sun Feb 18 01:34:47 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* mpbsd/sdiv.c: Use _mp_realloc, not _mpz_realloc.

	* mpz/inp_binary.c: Default stream to stdin.
	* mpz/inp_str.c: Likewise.
	* mpz/inp_raw.c: Likewise.
	* mpz/out_binary.c: Default stream to stdout.
	* mpz/out_raw.c: Likewise.
	* mpz/out_str.c: Likewise.

	* mpbsd/realloc.c: New file.
	* mpbsd/Makefile.in: Corresponding changes.

	* mpbsd/min.c: Rewrite (base on mpz/inp_str.c).
	* mpbsd/mtox.c: Rewrite (base on mpz/get_str.c).

	* mpbsd/mout.c: Rewrite (base on mpz/out_str) but make it output
	spaces in each 10th position.
	* mpbsd/xtom.c: Rewrite (base on mpz/set_str).

	* mpq/tests/Makefile.in (st-cmp): New file.
	* mpq/tests/configure.in (srcname): New file.

	* mpz/tests/configure.in (srcname): Fix typo.

	* mpq/cmp.c: Add check using number of significant bits, to avoid
	general multiplication.

Sat Feb 17 11:58:30 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* mpq/cmp_ui.c: Store cy_limb after the mpn_mul_1 calls.

	* mpq/tests: New directory.
	* mpq/tests/t-cmp.c: New file.
	* mpq/tests/t-cmp_ui.c: New file.

	* mpz/tests/dive.c (main): Generate zero numerator.
	(get_random_size) : Delete.

	* mpz/divexact.c: Add special case for 0/x.

	* gmp.h (mpz_mod): Add declaration.

Fri Feb 16 18:18:39 1996  Andreas Schwab  <schwab@informatik.uni-dortmund.de>

	* mpn/m68k/*: Rewrite code not to use the INSN macros.
	(L): New macro to properly prefix local labels for ELF.

Fri Feb 16 00:20:56 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* gmp-impl.h (ieee_double_extract): Use plain `unsigned int' for
	fields.
	* mpn/generic/inlines.c (_FORCE_INLINES): New #define.  Delete
	conditional __GNUC__.
	* gmp.h (mpn_add, mpn_sub, mpn_add_1, mpn_sub_1):
	Only define these if __GNUC__ || _FORCE_INLINES.
	* mpf/random2.c: Add missing parameter in non-ANSI header.
	* mpn/generic/gcd.c (SIGN_BIT): Do as #define to work around bug
	in AIX compilers.
	* mpq/get_d.c: #define N_QLIMBS.
	* mpz/divexact.c: Obscure division by 0 to silent compiler warnings.
	* stack-alloc.c: Cast void* pointer to char* before doing arithmetic
	on it.

	* Makefile.in (mpbsd/libmpbsd.a): New rule.
	* configure.in (configdirs): Add mpbsd.

	* gmp.h: Add declarations for a few missing mpn functions.

	* Makefile.in (libmp.a): New rule.

	* mpbsd/mdiv.c: #include "dmincl.c", not "mpz_dmincl.c"
	* gmp.h: Move #define of __GNU_MP__ into the `#if __GNU_MP__' block.
	* mp.h: Likewise.  Update typedefs from gmp.h.
	* mpbsd/configure.in: New file.
	* mpbsd/Makefile.in: New file.
	* mpbsd/configure: Link to master configure.
	* mpbsd/config.sub: Link to master config.sub.

	* Makefile.in: Set RANLIB_TEST.
	* (libgmp.a): Use it.
	* (libgmp.a): Do ranlib before moving the libgmp.a to the build
	directory.
	* mp?/Makefile.in: Don't use or set RANLIB.

Thu Feb 15 16:38:41 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* mpz/add_ui.c: MP_INT => mpz_t.
	* mpz/cmp_ui.c: Likewise.
	* mpz/fac_ui.c: Likewise.
	* mpz/inp_binary.c: Likewise.
	* mpz/inp_raw.c: Likewise.
	* mpz/legendre.c: Likewise.
	* mpz/jacobi.c: Likewise.
	* mpz/out_binary.c: Likewise.
	* mpz/out_raw.c: Likewise.
	* mpz/random2.c: Likewise.
	* mpz/random.c: Likewise.
	* mpz/realloc.c: Likewise.

	* mpz/legendre.c: __mpz_2factor(X) => mpz_scan1(X,0),
	__mpz_odd_less1_2factor => mpz_scan1(X,1).
	* mpz/ntsup.c: File deleted.
	* mpz/Makefile.in: Corresponding changes.

	* mpz/pprime_p: Use mpz_scan1 to avoid looping.

	* mpz/fac_ui.c: Type of `k' and `p' is `unsigned long'.
	* mpz/pprime_p.c: Pass long to *_ui functions.
	* mpz/gcdext.c: Likewise.
	* mpz/fdiv_r_2exp.c: Likewise.
	* mpz/fac_ui.c: Likewise.

	* mpz/powm.c: Don't use mpn_rshift when mod_shift_cnt is 0.

	* mpz/tests/Makefile.in (st-sqrtrem): Fix typo.

	* mpz/cmp_ui.c: #undef mpz_cmp_ui.
	* mpz/cmp_si.c: #undef mpz_cmp_si.
	* gmp.h (mpz_cmp_ui): New #define.
	(mpz_cmp_si): New #define.

Wed Feb 14 22:11:24 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* gmp.h: Test __cplusplus in addition to __STDC__.
	* gmp-impl.h: Likewise.

	* gmp.h: Surround declarations with extern "C" { ... }.

Tue Feb 13 15:20:45 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* mpz/fdiv_r_2exp.c: Use MPN_NORMALIZE.
	* mpz/tdiv_r_2exp.c: Likewise.

	* mpz/fdiv_r_2exp.c: New file.
	* mpz/fdiv_q_2exp.c: New file.
	* mpz/tdiv_r_2exp.c: Renamed from mpz/mod_2exp.c.
	* mpz/tdiv_q_2exp.c: Renamed from mpz/div_2exp.c
	* mpz/Makefile.in: Corresponding changes.

	* mpz/scan0.c,scan1.c: New files.
	* mpz/Makefile.in: Compile them.

	* gmp.h (mpn_normal_size): Delete.

	* config.guess: Update from Cygnus version.

	* mpn/m68k/rshift.S: Use INSN2 macro for lea instructions.
	* mpn/m68k/lshift.S: Likewise.

	* mpn/configure.in: Fix configuration for plain 68000.

Mon Feb 12 01:06:06 1996  Torbjorn Granlund  <tege@matematik.su.se>

	* mpz/tests/t-powm.c: Generate negative BASE operand.

	* mpz/powm.c: Make result always positive.

Sun Feb 11 01:44:56 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpz/tests/*.c: Add t- prefix.
	* mpz/tests/Makefile.in: Corresponding changes.
	* mpz/tests/configure.in: Update srctrigger.

	* mpz/tests/gcd.c: Generate negative operands.
	* mpz/tests/gcd2.c: Likewise.

	* mpz/gcdext.c: At end, if G is negative, negate all G, S, and T.

Thu Feb  8 17:16:12 UTC 1996 Ken Weber <kweber@mat.ufrgs.br>

	* mp{z,n}/gcd.c: Change mpn_gcd interface.
	* gmp.h: Ditto.
	* gmp.texi: update documentation.

Mon Feb  7 23:58:43 1996  Andreas Schwab  <schwab@informatik.uni-dortmund.de>

	* mpn/m68k/{lshift,rshift}.S: New files.
	* mpn/m68k/syntax.h: New ELF_SYNTAX macros.
	(MEM_INDX, R, PROLOG, EPILOG): New macros.
	* mpn/m68k/*.S: Use R macro with register name.  Use PROLOG and EPILOG
	macros.  Rename `size' to `s_size' or s1_size to avoid clash with ELF
	.size directive.
	* mpn/configure.in: New target m68k-*-linux*.

Wed Feb  7 07:41:31 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* Makefile.in (cre-conv-tab): Workaround for SunOS make.

	* mpz/tests/reuse.c: New file.
	* mpz/tests/Makefile.in: Handle reuse.c.

Tue Feb  6 11:56:24 UTC 1996 Ken Weber <kweber@mat.ufrgs.br>

	* mpz/gcd.c: Fix g->size when one op is 0 and g == other op.

Tue Feb  6 01:36:39 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* gmp.h (mpz_divexact): Delete parameter names.
	(mpz_lcm): Delete spurious declaration.

	* mpz/dmincl.c: Fix typo.

Mon Feb  5 01:11:56 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/generic/gcd.c (gcd_2): Declare consistently.

	* mpz/tdiv_q.c: Optimize division by a single-limb divisor.
	* mpz/dmincl.c: Likewise.

	* mpz/add.c: Use MPN_NORMALIZE instead of mpn_normal_size.
	* mpz/sub.c: Likewise.
	* mpn/generic/sqrt.c: Likewise.

	* mpn/tests/{add_n,sub_n,lshift,rshift}.c: Put garbage in the
	destination arrays.

Fri Feb  2 02:21:27 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpz/{jacobi.c,legendre.c,ntsup.c,invert.c}: New files.
	* mpz/Makefile.in: Compile them.

	* mpn/Makefile.in (INCLUDES): Don't search in `generic'.

Thu Feb  1 02:15:11 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	Change from Ken Weber:
	* mpz/divexact.c: Make it work when quot is identical to either input.

	* mpf/ui_sub.c: New file.
	* mpf/Makefile.in: Compile it.

	* gmp-impl.h (MPZ_TMP_INIT): alloca -> TMP_ALLOC.
	* mpz/{c,f}div_{q,qr,r}.c: Use TMP_DECL/TMP_MARK/TMP_FREE since
	these use MPZ_TMP_INIT.
	* mpz/mod.c: Likewise.
	* mpq/{add,sub}.c: Likewise.
	* mpq/canonicalize: Likewise.

	* mpq/{add,sub,mul,div}.c: Use mpz_divexact. MP_INT -> mpz_t.
	* mpq/canonicalize.c: Likewise.

Wed Jan 31 01:45:00 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/generic/gcd.c: Misc changes from Ken.

	* mpz/tests/gcd2.c: New file.
	* mpz/tests/Makefile.in: Handle gcd2.c.

	* mpn/generic/gcd.c (mpn_gcd): When GCD == ORIG_V, return vsize,
	not orig_vsize.  Fix parameter declaration.

	* mpz/mod_ui.c: Delete file.
	* mpz/Makefile.in: Don't try to compile mod_ui.

	* mpz/cdiv_*_ui.c): Make them work right.
	* gmp.h: Declare cdiv*.

Tue Jan 30 02:22:56 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpz/{cdiv_q.c,cdiv_q_ui.c,cdiv_qr.c,cdiv_qr_ui.c,cdiv_r.c,
	cdiv_r_ui.c,cdiv_ui.c}: New files.
	* mpz/Makefile.in: Compile them.

	* All files: Make file permissions right.

	Changes from Ken Weber:
	* mpn/generic/accelgcd.c: Delete.
	* mpn/generic/bingcd.c: Delete.
	* mpn/generic/numbits.c: Delete.
	* mpn/generic/gcd.c: New file.
	* mpn/configure.in (functions): Update accordingly.
	* mpz/divexact.c: New file.
	* mpz/Makefile.in: Compile divexact.c.
	* mpz/gcd.c: Rewrite to accommodate for gcd changes in mpn.
	* gmp.h: declare new functions, delete obsolete declarations.
	* mpz/tests/dive.c: New file.
	* mpz/tests/Makefile.in: Handle dive.c.

Mon Jan 29 03:53:24 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpz/random.c: Handle negative SIZE parameter.

	* mpz/tests/tdiv(_ui).c: New name for tst-dm(_ui).c.
	* mpz/tests/tst-mdm(_ui).c: Delete.
	* mpz/tests/fdiv(_ui).c: New test based in tst-mdm(_ui).
	* mpz/tests/*.c: Get rid of tst- prefix for DOS 8+3 naming.
	* mpz/tests/Makefile.in: Corresponding changes.
	* mpz/tests/configure.in: Update srctrigger.

	* mpn/generic/divmod.c: Update from divrem.
	* mpn/generic/divrem.c: Misc cleanups.

Sun Jan 28 03:25:08 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* All files: Use new TMP_ALLOC interface.

	* mpz/powm_ui.c: Make Jan 25 changes to powm.c also here.

	* mpz/tests/powm_ui.c: New file.
	* mpz/tests/Makefile.in: Add rules for tst-powm and tst-powm_ui.

	* Makefile.in: Update dependency list.
	* mpf/Makefile.in: Likewise.
	* mpz/Makefile.in: Likewise.
	* mpq/Makefile.in: Likewise.
	* Makefile.in: Set RANLIB simply to ranlib, and allow configure
	to override it.

	* mpz/Makefile.in (conf): Delete spurious target.
	(mp_bases.c): Delete.
	(cre-conv-tab rules): Delete.

	* Makefile.in (cre-conv-tab): Greatly simplify.

Sat Jan 27 13:38:15 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* stack-alloc.c: New file.
	* stack-alloc.h: New file.

	* gmp.h (__gmp_inline): Define using __inline__.

Thu Jan 25 00:28:37 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/generic/scan0.c: New file.
	* mpn/generic/scan1.c: Renamed from next_bit.c.
	* mpn/configure.in (functions): Include scan0 and scan1.

	* mpn/m68k/*: #include sysdep.h.  Use C_GLOBAL_NAME.

	* configure: Update from Cygnus version.
	* config.guess: Likewise.
	* config.sub: Likewise.
	* configure: Pass --nfp to recursive configures.

	* mpz/tests/tst-*.c: Adjust SIZE and reps.

	* mpz/powm.c: Move esize==0 test earlier.
	In final reduction of rp,rsize, don't call mpn_divmod unless
	reduction is really needed.

	* mpz/tests/tst-powm.c: Fix thinko in checking code.

	* All files: Get rid of `__' prefix from mpn_* calls and declarations.
	* gmp.h: #define __MPN.
	* gmp.h: Use __MPN in #defines for mpn calls.

	* mpn/generic/mul_n.c: Prepend `i' to internal routines.
	* gmp-impl.h: Add #defines using __MPN for those internal routines.

	* mpn/generic/sqrt.c: Change call to mpn_mul to mpn_mul_n.

Wed Jan 24 13:28:19 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/sparc32/udiv_fp.S: New name for udiv_qrnnd.S.
	* mpn/sparc32/udiv_nfp.S: New name for v8/udiv_qrnnd.S.
	* mpn/sparc32/v8/supersparc: New directory.
	* mpn/sparc32/v8/supersparc/udiv.S: New file.

Tue Jan 23 01:10:11 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	This major contribution is from Ken Weber:
	* mpn/generic/accelgcd.c: New file.
	* mpn/generic/bdivmod.c: New file.
	* mpn/generic/bingcd.c: New file.
	* mpn/generic/gcd_1.c: Rewrite.
	* mpn/generic/numbits.c: New file (to go away soon).
	* mpz/gcd.c: Rewrite.
	* mpz/tests/tst-gcd.c (SIZE): Now 128.
	* gmp.h: Declare new functions.
	* mpn/configure.in (functions): List new files.
	* gmp-impl.h (MPN_SWAP): Delete.
	(MPN_LESS_BITS_LIMB, MPN_LESS_BITS, MPN_MORE_BITS): Delete.
	(MPN_COMPL_INCR, MPN_COMPL): Delete.

Mon Jan 22 02:04:59 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* gmp.h (mpn_name): New #define.

	* mpn/m88k/mc88110/addmul_1.s: New file.
	* mpn/m88k/mc88110/add_n.S: New file.
	* mpn/m88k/mc88110/sub_n.S: New file.

	* mpn/m88k/sub_n.s: Correctly initialize carry.

	* mpn/sparc32/{add_n.S,sub_n.S,lshift.S,rshift.S): `beq' => `be'.

Sun Jan 21 00:04:35 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/sparc64/addmul_1.s: New file.
	* mpn/sparc64/submul_1.s: New file.
	* mpn/sparc64/rshift.s: New file.

Sat Jan 20 00:32:54 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpz/iset.c: Fix typo introduced Dec 25.

Wed Jan 17 13:16:44 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* config/mt-sprc8-gcc: New name for mt-sparc8-gcc.
	* config/mt-sparcv8-gcc: Delete.
	* configure.in: Corresponding changes.

Tue Jan 16 16:31:01 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* gmp-impl.h: #include alloca.h when necessary.

	* longlong.h: Test __alpha instead of __alpha__, since the former
	is the standard symbol.

Mon Jan 15 18:06:57 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/sparc64/mul_1.s: Swap operands of mulx instructions.
	* mpn/sparc64/lshift.s: New file.

Fri Dec 29 17:34:03 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/x86/pentium/add_n.S: Get rid of #defines for register names.
	* mpn/x86/pentium/sub_n.S: Likewise.

Thu Dec 28 03:16:57 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/x86/pentium/mul_1.S: Rework loop to avoid AGI between update
	of loop induction variable and load insn at beginning of loop.
	* mpn/x86/pentium/addmul_1.S: Likewise.
	* mpn/x86/pentium/submul_1.S: Likewise.

Mon Dec 25 23:22:55 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* All files: Prefix user-visible structure fields with _mp_.

Fri Dec 22 20:42:17 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/configure.in (m68k configs): Terminate path variable with
	plain "m68k".

Fri Dec 22 03:29:33 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/sparc32/add_n.S: Update from sub_n.S to fix bugs, and to
	clean things up.

	* mpn/configure.in (m68k configs): Update #include path for new
	mpn directory organization.

Tue Dec 12 02:53:02 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* gmp.h: Prefix all structure field with _mp_.
	* gmp-impl.h: Define access macros for these fields.

Sun Dec 10 00:47:17 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/alpha/addmul_1.s: Prefix labels with `.'.
	* mpn/alpha/submul_1.s: Likewise.
	* mpn/alpha/[lr]shift.s: Likewise.
	* mpn/alpha/udiv_qrnnd.S: Likewise.
	* mpn/alpha/ev5/[lr]shift.s: Likewise.

	* mpn/alpha/ev5/lshift.s: Fix typos.

Fri Dec  1 14:28:20 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/Makefile.in (.SUFFIXES): Define.

Wed Nov 29 23:11:57 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/sparc64/{add_n.s, sub_n.s}: New files.

Tue Nov 28 06:03:13 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/x86/syntax.h: Handle ELF_SYNTAX.
	Rename GAS_SYNTAX => BSD_SYNTAX.

	* mpn/configure.in: Handle linuxelf and SysV for x86 variants.

Mon Nov 27 01:32:12 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/hppa/hppa1_1/pa7100/submul_1.S: New file.

Sun Nov 26 04:30:47 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* mpn/hppa/hppa1_1/pa7100/addmul_1.S: New file.

	* mpn/sparc32/add_n.S: Rewrite to use 64 bit loads/stores.
	* mpn/sparc32/sub_n.S: Likewise.

Fri Nov 17 00:18:46 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/configure.in: Handle m68k on NextStep.

Thu Nov 16 02:30:26 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn: Reorganize machine-specific directories.
	* mpn/configure.in: Corresponding changes.
	(sh, sh2): Handle these.
	(m68k targets): Create asm-syntax.h.

Thu Nov  9 02:20:50 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/generic/mul_n.c (____mpn_sqr_n): Delete code that calls abort.
	(____mpn_mul_n): Likewise.

Tue Nov  7 03:25:12 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpf/get_str.c: In exponentiation code (two places), don't swap
	input and output areas when calling mpn_mul_1.
	* mpf/set_str.c: Likewise.

Fri Nov  3 02:35:58 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpf/Makefile.in: Make sure all objects are listed in dependency list;
	delete spurious entries.

	* mpf/mul.c: Handle U or V being 0.  Allow prec+1 for result precision.

	* mpf/set_prec.c: New computation of limb precision.
	* mpf/set_dfl_prec.c: Likewise.

	* mpf/random2.c: Fix typo computing exp.
	* mpf/get_str.c: In (uexp > usize) case, set n_limbs as a function of
	the user-requested number of digits, n_digits.

Thu Nov  2 16:25:07 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/generic/divrem.c (case 2): Don't move np vector back, it is
	never read.
	(default case): Put most significant limb from np in new variable n2;
	decrease size argument for MPN_COPY_DECR; use n2 instead of np[dsize].

Wed Nov  1 02:59:53 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/sparc/[lr]shift.S: New files.

Tue Oct 31 00:08:12 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpz/gcd_ui.c: Set w->size unconditionally when v is zero.

	* gmp-impl.h (assert): Delete definition.

	* mpf/sub.c: Delete all assert calls.  Delete variable `cy'.

	* mpf/neg.c: Use prec+1 as precision.  Optimize for when arguments
	are the same.
	* mpf/abs.c: Likewise.
	* mpf/{set,neg,abs}.c: Make structure and variable names similar.

Mon Oct 30 12:45:26 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpf/random2.c (random): Test __SVR4 in addition to __svr4__.
	* mpn/generic/random2.c (random): Likewise.

Sun Oct 29 01:54:28 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpf/div.c: Special handle U or V being 0.

	* mpf/random2.c: New file.

	* longlong.h (i860 rshift_rhlc): Define.
	(i960 udiv_qrnnd): Define.
	(i960 count_leading_zeros): Define.
	(i960 add_ssaaaa): Define.
	(i960 sub_ddmmss): Define.
	(i960 rshift_rhlc): Define.

Sat Oct 28 19:09:15 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/pentium/rshift.S: Fix and generalize condition for when to use
	special code for shift by 1.
	* mpn/pentium/lshift.S: Likewise.

Thu Oct 26 00:02:56 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* gmp.h: #undef __need_size_t.
	* mp.h: Update from gmp.h.

Wed Oct 25 00:17:27 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpf/Makefile.in: Compile set_prec.c.
	* mpf/realloc.c: Delete this file.
	* mpf/Makefile.in: Delete mentions of realloc.c.

	* gmp.h (__mpf_struct): Get rid of `alloc' field.
	* mpf/clear.c: Likewise.
	* mpf/init*.c: Likewise.
	* mpf/set_prec.c: Likewise.
	* mpf/iset*.c: Likewise.

	* mpf/iset_str.c: New file.

	* mpn/configure.in: Handle pyramid.

	* mpf/set.c: Use prec+1 as precision.

	* mpf/set_prec.c: New file.

Tue Oct 24 00:56:41 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/generic/divrem.c: New file.  Will replace mpn/generic/divmod.c
	when rest of source is converted.
	* mpn/configure.in (functions): Add `divrem'
	* mpn/generic/set_str.c: Never call __mpn_mul_1 with zero size.

	* mpf/get_str.c: Completely rewritten.
	* mpf/add.c: Fix several problems.
	* mpf/sub.c: Compare operands from most significant end until
	first difference, exclude skipped limbs from computation.
	Accordingly simplify normalization code.
	* mpf/set_str.c: Fix several problems.
	* mpf/dump.c: New file.
	* mpf/Makefile.in: Compile dump.c.
	* mpf/init2.c: Set prec field correctly.

Sun Oct 22 03:02:09 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* cre-conv-tab.c: #include math.h; don't declare log and floor.

Sat Oct 21 23:04:10 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpf/mul_ui.c: Handle U being 0.

Wed Oct 18 19:39:27 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/generic/set_str.c: Correctly handle input like "000000000000".
	Misc cleanups.

Tue Oct 17 15:14:13 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* longlong.h: Define COUNT_LEADING_ZEROS_0 for machines where
	appropriate.

Mon Oct 16 19:14:43 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpf/add.c: Rewrite.
	* mpf/set_str.c: New file.  Needs more work.

Sat Oct 14 00:14:04 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpf/div_2exp.c: Vastly simplify.
	* mpf/mul_2exp.c: Likewise.

	* mpf/sub.c: Rewrite.

	* gmp-impl.h (udiv_qrnnd_preinv2gen): Terminate comment.

	* mpf/dump.c: Free allocated memory.

	* gmp-impl.h (assert): Define.

Wed Oct 11 13:31:00 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/pentium/rshift.S: Install new code to optimize shift-by-1.

Tue Oct 10 00:37:21 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/pentium/lshift.S: Install new code to optimize shift-by-1.

	* mpn/powerpc32/{lshift.s,rshift.s}: New files.

	* configure.in: Fix typo.

Sat Oct  7 08:17:09 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* longlong.h (smul_ppmm): Correct type of __m0 and __m1.

Wed Oct  4 16:31:28 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/configure.in: Handle alphaev5.
	* mpn/ev4: New name for alpha subdir.
	* mpn/ev5: New subdir.
	* mpn/ev5/lshift.s: New file.

Tue Oct  3 15:06:45 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/alpha/mul_1.s: Avoid static increments of pointers; use
	corresponding offsets in ldq and stq instructions instead.
	(Loop): Swap cmpult and stq to save one cycle on EV5.

	* mpn/tests/{add_n.s,sub_n.s,lshift.s,rshift.s,mul_1.s,addmul_1.s,
	submul_1.s}: Don't check results if NOCHECK is defined.

Mon Oct  2 11:40:18 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* longlong.h (mips umul_ppmm [32 and 64 bit versions]):
	Make new variants, based on GCC version number, that use `l' and `h'
	constraints instead of explicit mflo and mfhi instructions

Sun Oct  1 00:17:47 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/mc88100/add_n.s: Decrease unrolling factor from 16 to 8.
	* mpn/mc88100/sub_n.s: Likewise.

	* config/mt-m88110: New file.
	* configure.in: Use it.

	* mpn/mc88110/mul_1.s: Fix thinko.

Sat Sep 30 21:28:19 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpz/set_d.c: Declare `size' at function start.

	* experimental: New directory for mpx and mpz2.

	* mpz/tdiv_q.c: Clarify comments.
	* mpz/{mod.c,mod_ui.c}: New file, for math mod function.

	* mpn/sh2/{mul_1.s,addmul_1.s,submul_1.s}: New files.

	* mpn/sh/{add_n.s,sub_n.s}: New files.

	* mpn/pyr/{add_n.s,sub_n.s,mul_1.s,addmul_1.s}: New files.

	* mpn/i960/{add_n.s,sub_n.s}: New files.

	* mpn/alpha/addmul_1.s (Loop): Move decrement of r18 to before umulh,
	to save cycles on EV5.
	* mpn/alpha/submul_1.s: Ditto.
	* mpn/alpha/mul_1.s: Ditto.

Thu Sep 28 02:48:59 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* gmp.h (mp_limb, mp_limb_signed): Define as `long long' if
	_LONG_LONG_LIMB is defined.

	* longlong.h (m88110): Test __m88110__, not __mc88110__

	* mpn/mc88110/mul_1.s: Rewrite.

Tue Sep 26 23:29:05 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* config.sub: Update from current Cygnus version.

	* mpn/configure.in: Recognize canonical m88*, not mc88*.

Fri Sep 22 14:58:05 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpz/set_d.c: New file.
	* mpz/Makefile.in: Build new files.

	* mpq/get_d.c: Replace usage of scalbn with ldexp.

	* mpn/{vax,i386}/gmp-mparam.h: New files.
	* gmp-impl.h (ieee_double_extract): Define here.
	* mpf/set_d.c (ieee_double_extract): Not here.

Thu Sep 21 00:56:36 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* longlong.h (C umul_ppmm): Use UWtype, not USItype for temps.
	(udiv_qrnnd): For cases implemented with call to __udiv_qrnnd,
	protect with new symbol LONGLONG_STANDALONE.
	(68000 umul_ppmm): Use %# prefix for immediate constants.

Wed Sep 20 15:36:23 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/generic/divmod_1.c: Handle
	divisor_limb == 1 << (BITS_PER_MP_LIMB - 1)
	specifically also when normalization_steps != 0.

Mon Sep 18 15:42:30 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpq/get_d.c: New file.

Sun Sep 17 02:04:36 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* longlong.h (pyr): Botch up for now.

Sat Sep 16 00:11:50 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/clipper/mul_1.s: New file.
	* mpn/clipper/add_n.s: New file.
	* mpn/clipper/sub_n.s: New file.
	* mpn/configure.in: Handle clipper*-*-*.

	* mpn/configure.in: Recognize rs6000-*-*.

Fri Sep 15 00:41:34 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/alpha/add_n.s: New file.
	* mpn/alpha/sub_n.s: New file.

	* mpn/mips3: New name for mpn/r4000.
	* mpn/mips2: New name for mpn/r3000.
	* mpn/configure.in: Corresponding changes.

	* mpn/generic/perfsqr.c (primes): Delete.
	(residue_map): Delete.

Thu Sep 14 00:07:58 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/r3000/sub_n.s: Fix typo.

	* dm_trunc.c: Delete spurious file.

	* mpz/out_binary.c: Fix typo.

	* mpn/configure.in (per-target): Make mips*-*-irix6* imply r4000.

	* gmp-impl.h: For sparc and sgi, include alloca.h.

	* mpn/z8000/mul_1.s: Replace `test r' with `and r,r'.  Replace
	`ldk r,#0' with `xor r,r'.

Wed Sep  6 00:58:38 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpz/inp_binary.c: New file.
	* mpz/out_binary.c: New file.
	* mpz/Makefile.in: Build new files.

Tue Sep  5 22:53:51 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* gmp.h (__mpz_struct): Change `long int' => `mp_size_t' for alloc
	and size fields.

Sat Sep  2 17:47:59 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/r4000/{add_n.s,sub_n.s}: Optimize away some pointer arithmetic.
	* mpn/r3000/{add_n.s,sub_n.s,lshift.s,rshift.s}: New files,
	derived from r4000 code.

Fri Sep  1 05:35:52 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/r3000/mul_1.s: Fix typo.

	* mpn/powerpc32: Fix some old vs new mnemonic issues.

	* mpn/powerpc32/{add_n.s,sub_n.s}: New files.
	* mpn/r4000/{add_n.s,sub_n.s,lshift.s,rshift.s}: New files.

Wed Aug 30 10:43:47 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/r3000/mul_1.s ($LC1): Use addiu for immediate add.
	* mpn/r4000/{mul_1.s,addmul_1.s,submul_1.s}: New files.

	* config.guess: Update to latest FSF revision.

Mon Aug 28 02:18:13 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpz/out_str.c: Cast str to char * in fputs call.

	* gmp-impl.h: Define UQItype, SItype, and USItype also
	when not __GNUC__.

Fri Aug 25 01:45:04 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/i386/syntax.h: Renamed from asm-syntax.h.
	* mpn/mc68020/syntax.h: Renamed from asm-syntax.h.
	* mpn/configure.in: Corresponding changes.

Sun Aug 13 19:20:04 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* mpn/generic/random2.c: Test __hpux, not hpux.

Sat Apr 15 20:50:33 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* mpn/sparc/add_n.S: Make it work for PIC.
	* mpn/sparc/sub_n.s: Likewise.
	* mpn/sparc8/addmul_1.S: Likewise.
	* mpn/sparc8/mul_1.S: Likewise.
	* mpn/i386/add_n.S: Likewise.
	* mpn/i386/sub_n.S: Likewise.

Thu Apr 13 23:15:03 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* mpn/configure.in: Don't search power subdir for generic ppc configs.
	Add some ppc cpu-specific configs.  Misc clean up.

Mon Apr 10 00:16:35 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* mpz/ui_pow_ui.c: Delete spurious code to handle negative results.

Sun Apr  9 12:38:11 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* longlong.h (SPARC v8 udiv_qrnnd): Generate remainder in C,
	not in asm.

	* mpn/generic/sqrt.c (SQRT): Test for __SOFT_FLOAT.

Tue Mar 28 00:19:52 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* mpn/generic/hamdist.c (popc_limb): Make Mar 16 change here too.

Fri Mar 17 23:29:22 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* longlong.h (SH umul_ppmm): Define.

Thu Mar 16 16:40:44 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* mpn/generic/popcount.c (popc_limb): Rearrange 32 bit case
	to help CSE.

Fri Mar 10 20:03:49 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* mpn/powerpc32/mul_1.s: Clear cy before entering loop.
	Rearrange loop to save a cycle.
	* mpn/powerpc32/addmul_1.s: New file.
	* mpn/powerpc32/submul_1.s: New file.

Fri Feb 17 22:44:45 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* mpn/configure.in: Set target_makefile_frag for freebsd
	in new case stmt.
	* mpn/config/t-freebsd: New file.
	* mpn/Makefile.in: Add #### for frag insertion.
	(XCFLAGS): Clear by default.
	(.c.o, .S.o rules): Pass XCFLAGS.

Tue Feb  7 16:27:50 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* longlong.h (68000 umul_ppmm): Merge improvements from henderson.

Tue Jan 24 04:23:20 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* longlong.h (default umul_ppmm): Store input parameters in temporaries
	to avoid reading them twice.
	(default smul_ppmm): New definition.

Thu Dec 29 04:20:07 1994  Jim Meyering  (meyering@comco.com)

	* generic/perfsqr.c (__mpn_perfect_square_p): Remove declaration
	of unused variable.
	* generic/pre_mod_1.c (__mpn_preinv_mod_1): Likewise.
	* mpz/powm.c (pow): Likewise.

	* mpz/and.c (mpz_and): Use {} instead of `;' for empty else clause
	to placate `gcc -Wall'.
	* mpz/ior.c (mpz_ior): Likewise.

Wed Dec 28 13:31:40 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* mpn/m*68*/*.S: #include asm-syntax.h, not asm.h.

Mon Dec 26 17:15:36 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* longlong.h: Test for more symbols, in __mc68000__ case.

	* mpn/mpn/config.sub: Recognize m68060.
	* mpn/configure.in: Change mc* to m* for 68k targets.
	* mpn/Makefile.in (.S.o): Delete spurious creation of temp .c file.

Mon Dec 19 01:56:30 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* config.sub: Recognize pentium as a valid CPU.
	* mpn/configure.in: Handle pentium specifically, to use new assembly
	code.

Mon Dec 19 00:13:01 1994  Jim Meyering  (meyering@comco.com)

	* gmp.h: Define _GMP_H_HAVE_FILE if FILE, __STDIO_H__, or H_STDIO
	is defined.
	* gmp.h: test _GMP_H_HAVE_FILE instead of FILE everywhere else.

Mon Dec 19 00:04:54 1994  Kent Boortz  (boortz@sics.se)

	* Makefile.in (recursive makes): Pass CFLAGS.

Sun Dec 18 22:34:49 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* mpn/pentium: New directory.

	* mpz/pprime.c: Make sure to mpz_clear all temporaries.

	* longlong.h: Don't use udiv instruction when SUPERSPARC is defined.
	* configure.in: Handle supersparc*-.
	* config/mt-supspc-gcc: New file.
	* config/mt-sparc8-gcc: New name for mt-sparcv8-gcc.

Mon Dec 12 22:22:10 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* mpn/i386/*.S: #include "asm-syntax.h", not "asm.h".
	#include sysdep.h before asm-syntax.h.

	* mpn/mc68020/asm-syntax.h: #undef ALIGN before defining it.
	* mpn/i386/asm-syntax.h: Likewise.

	* mpn/mc68020/asm-syntax.h: New name for asm.h.
	* mpn/i386/asm-syntax.h: New name for asm.h.

Tue Dec  6 21:55:25 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* mpz/array_init.c: Fix typo in declaration.

Fri Nov 18 19:50:52 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* mpn/Makefile.in (.S.o): Pass CFLAGS and INCLUDES.

Mon Nov 14 00:34:12 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* mpn/generic/random2.c (random): Test for __svr4__.

Wed Oct 12 23:28:16 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* cre-conv-tab.c (main): Avoid upper-case X in printf format string.

Tue Aug 23 17:16:35 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* mpz/perfsqr.c: Use mpn_perfect_square_p.
	* mpn/generic/perfsqr.c: New file.

Wed Jul  6 13:46:51 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* mpz/array_init.c: New file.
	* mpz/Makefile.in: Compile array_init.
	* gmp.h: Declare mpz_array_init.

Mon Jul  4 01:10:03 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* mpz/add.c: Fix bogus comment.
	* mpz/sub.c: Likewise.

Sat Jul  2 02:14:56 1994  Torbjorn Granlund  (tege@adder.cygnus.com)

	* mpn/generic/pre_mod_1.c: New file.
	* mpz/perfsqr.c: Use __mpn_preinv_mod_1 when faster.

Fri Jul 01 22:10:19 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)

	* longlong.h (arm umul_ppmm): Fix typos in last change.  Mark
	hard-coded registers with "%|"

Thu Jun 30 03:59:33 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* mpz/perfsqr.c: Define PP, etc, for machines with 64 bit limbs.
	Use __mpn_mod_1.
	* mpz/perfsqr.c: Don't clobber REM in quadratic residue check loop.

Wed Jun 29 18:45:41 1994  Torbjorn Granlund  (tege@adder.cygnus.com)

	* mpn/generic/sqrt.c (SQRT): New asm for IBM POWER2.

	* mpz/gcd_ui.c: Return 0 if result does not fit an unsigned long.

	* gmp.h: Use "defined (__STDC__)" consistently.

Tue Jun 28 18:44:58 1994  Torbjorn Granlund  (tege@adder.cygnus.com)

	* gmp.h (mpz_get_si): Don't use "signed" keyword for return type.

	* mpz/tests/Makefile.in: Use CFLAGS for linking.

	* Makefile.in (CFLAGS): Use -O2 here.
	* mpn/Makefile (CFLAGS): Not here.

	* mpq/cmp_ui.c: Fix typo.
	* mpq/canonicalize.c: Fix typo.
	* mpz/gcd_ui.c: Handle gcd(0,v) and gcd(u,0) correctly.
	* mpn/generic/gcd_1.c: Fix braino in last change.

Mon Jun 27 16:10:27 1994  Torbjorn Granlund  (tege@rtl.cygnus.com)

	* mpz/gcd_ui.c: Change return type and return result.
	Allow destination param to be NULL.
	* gmp.h: Corresponding change.
	* mpn/generic/gcd_1.c: Handle zero return from mpn_mod_1.

Tue Jun 14 02:17:43 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* mpn/i386/asm.h (ALIGN): Make it take a parameter.
	* mpn/i386/*.S: Use ALIGN to align all loops.

	* mpn/i386/*.S: Move colon inside C_GLOBAL_NAME expression.
	(Makes old versions of GAS happy.)

Sat May 28 01:43:54 1994  Torbjorn Granlund  (tege@adder.cygnus.com)

	* Many files: Delete unused variables and labels.
	* mpn/generic/dump.c: cast printf width argument to int.

Wed May 25 00:42:37 1994  Torbjorn Granlund  (tege@thepub.cygnus.com)

	* mpz/gcd.c (mpz_gcd): Normalize after __mpn_sub calls.
	(xmod): Ignore return value of __mpn_divmod.
	(xmod): Improve normalization code.

Sat May 21 01:30:09 1994  Torbjorn Granlund  (tege@adder.cygnus.com)

	* mpz/gcdext.c: Cosmetic changes.

	* mpz/fdiv_ui.c: New file.

Fri May 20 00:24:53 1994  Torbjorn Granlund  (tege@adder.cygnus.com)

	* mpz/tests/Makefile.in: Use explicit rules for running tests,
	not a shell loop.
	(clean): Delete stmp-*.

	* mpz/Makefile.in: Update.

	* mpz/div_ui.c: Don't include longlong.h.
	* mpz/dm_ui.c: Likewise.

	* mpz/fdiv_q.c, mpz/fdiv_q_ui.c, mpz/fdiv_qr.c, mpz/fdiv_qr_ui.c,
	mpz/fdiv_r.c, mpz/fdiv_r_ui.c: New files.  Code partly from deleted
	mdm.c, mdm_ui.c, etc, partly rewritten.
	* mpz/dm_floor_ui.c, mpz/dm_floor.c: Delete.
	* mpz/mdm.c, mpz/mdm_ui.c, mpz/mdiv.c, mpz/mdiv_ui.c, mpz/mmod.c,
	mpz/mmod_ui.c: Delete.

	* mpz/tdiv_q.c, mpz/tdiv_q_ui.c, mpz/tdiv_qr.c, mpz/tdiv_qr_ui.c,
	mpz/tdiv_r.c, mpz/tdiv_r_ui.c:
	New names for files implementing truncating division.
	* mpz/div_ui.c, mpz/dm_ui.c, mpz/mod_ui.c: Simplify.

	* mpn/Makefile.in (.S.o): Don't rely on CPP being defined, use CC
	instead.
	(clean): Delete tmp-*.

Thu May 19 01:37:44 1994  Torbjorn Granlund  (tege@adder.cygnus.com)

	* mpz/cmp.c: Call __mpn_cmp.

	* mpz/popcount.c: Fix typo.

	* mpz/powm_ui.c: Simplify main loop.  Keep principal operand size
	smaller than MSIZE when possible.
	* mpz/powm.c: Likewise.

	* mpn/generic/sqrt.c: Move alloca calls into where the memory is
	needed.  Simplify.

	* gmp.h: (_PROTO): New macro.
	Add many function declarations; use _PROTO macro in all declarations.

	* mpf/*.c: Prepend mpn calls with __.

Wed May 18 20:57:06 1994  Torbjorn Granlund  (tege@adder.cygnus.com)

	* mpf/*ui*.c: Make ui argument `long' for consistency with mpz
	functions.

	* mpf/div_ui.c: Simplify.

Tue May 17 01:05:14 1994  Torbjorn Granlund  (tege@adder.cygnus.com)

	* mpz/*.c: Prepend mpn calls with __.

	* mpz/mul_ui.c: Use mpn_mul_1.

Mon May 16 17:19:41 1994  Torbjorn Granlund  (tege@adder.cygnus.com)

	* mpn/i386/mul_1.S: Use C_GLOBAL_NAME.
	* mpn/i386/mul_1.S, mpn/i386/addmul_1.S, mpn/i386/submul_1.S:
	Nuke use of LAB.

Sat May 14 14:21:02 1994  Torbjorn Granlund  (tege@adder.cygnus.com)

	* gmp-impl.h: Don't define abort here.

	* mpz/pow_ui.c: Increase temporary allocation.
	* mpz/ui_pow_ui.c: Likewise.

	* gmp.h (mpz_add_1, mpz_sub_1): Don't call memcpy.

	* All Makefile.in: Delete spurious -I arguments.
	Update dependencies.

	* mpz/popcount.c: New file.
	* mpz/hamdist.c: New file.

	* All configure: Latest version from Cygnus.

	* mpq/Makefile.in: New file.
	* mpq/configure.in: New file.
	* Makefile.in, configure.in: Enable compilation of mpq.

	* mpq/set_z.c: Fix typos.
	* mpq/canonicalize.c: Fix typos.
	* mpq/cmp_ui.c: Fix typos.

	* mpf/add_ui.c: Read U->D into UP always.  Delete spurious MPN_COPY.
	* mpf/sub_ui.c: Likewise.

	* gmp-impl.h: Don't redefine alloca.

	* COPYING.LIB: Renamed from COPYING.

Wed May 11 01:45:44 1994  Torbjorn Granlund  (tege@adder.cygnus.com)

	* mpz/powm_ui.c: When shifting E left by C+1, handle out-of-range
	shift counts.  Fix typo when testing negative_result.
	* mpz/powm.c: Likewise.

	* mpz/ui_pow_ui.c: New file.
	* mpz/Makefile.in: Update.

	* mpz/pow_ui.c: Call __mpn_mul_n instead of __mpn_mul when possible.

	* mpz/div.c, mpz/div_ui.c, mpz/gcd.c: Prefix external mpn calls.
	* mpz/gcd.c: Declare mpn_xmod.

	* mpz/powm.c: Major changes to accommodate changed mpn semantics.
	* mpz/powm_ui.c: Update from mpz/powm.c.

	* mpz/tests/tst-io.c: New file.
	* mpz/tests/tst-logic: New file.
	* mpz/tests/Makefile.in: Update.

	* mpz/inp_str.c: Get base right when checking for first digit.
	* mpz/inp_str.c: Allocate more space for DEST when needed.

	* mpz/com.c: Use mpn_add_1 and mpn_sub_1.
	* mpz/and.c, mpz/ior.c: Likewise.  Simplify somewhat.

	* mpz/add_ui.c: Use mpn_add_1 and mpn_sub_1.
	Rename parameters to be consistent with mpz/sub_ui.
	General simplifications.
	* mpz/sub_ui.x: Likewise.

Tue Aug 10 19:41:16 1993  Torbjorn Granlund  (tege@prudens.matematik.su.se)

	* mpf: New directory.
	* mpf/*.c: Merge basic set of mpf functions.

	* Many logs missing...

Sun Apr 25 18:40:26 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)

	* memory.c: Use #if instead of #ifdef for __STDC__ for consistency.
	* bsd/xtom.c: Likewise.

	* mpz/div.c: Remove free_me and free_me_size and their usage.
	Use mpn_divmod for division; corresponding changes in return value
	convention.
	* mpz/powm.c: `carry_digit' => `carry_limb'.
	* bsd/sdiv.c: Clarify comment.

Sun Apr 25 00:31:28 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)

	* longlong.h (__udiv_qrnnd_c): Make all variables `unsigned long int'.

Sat Apr 24 16:23:33 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)

	* longlong.h (__udiv_qrnnd_c): Make all variables `unsigned long int'.

	* gmp-impl.h: #define ABS.
	* (Many files): Use ABS instead of abs.

	* mpn/generic/sqrt.c, mpz/clrbit.c, mpz/get_si.c, mpz/mod_2exp.c,
	mpz/pow_ui.c: Cast 1 to mp_limb before shifting.

	* mpz/perfsqr.c: Use #if, not plain if for exclusion of code for
	non-32-bit machines.

Tue Apr 20 13:13:58 1993  Torbjorn Granlund  (tege@du.nada.kth.se)

	* mpn/generic/sqrt.c: Handle overflow for intermediate quotients by
	rounding them down to fit.

	* mpz/perfsqr.c (PP): Define in hexadecimal to avoid GCC warnings.

	* mpz/inp_str.c (char_ok_for_base): New function.
	(mpz_inp_str): Use it.

Sun Mar 28 21:54:06 1993  Torbjorn Granlund  (tege@cyklop.nada.kth.se)

	* mpz/inp_raw.c: Allocate x_index, not xsize limbs.

Mon Mar 15 11:44:06 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)

	* mpz/pprime.c: Declare param `const'.
	* gmp.h: Add declarations for mpz_com.

Thu Feb 18 14:10:34 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)

	* mpq/add.c, mpq/sub.c: Call mpz_clear for t.

Fri Feb 12 20:27:34 1993  Torbjorn Granlund  (tege@cyklop.nada.kth.se)

	* mpz/inp_str.c: Recog minus sign as first character.

Wed Feb  3 01:36:02 1993  Torbjorn Granlund  (tege@cyklop.nada.kth.se)

	* mpz/iset.c: Handle 0 size.

Tue Feb  2 13:03:33 1993  Torbjorn Granlund  (tege@cyklop.nada.kth.se)

	* mpz/mod_ui.c: Initialize dividend_size before it's used.

Mon Jan  4 09:11:15 1993  Torbjorn Granlund  (tege@sics.se)

	* bsd/itom.c: Declare param explicitly 'signed'.
	* bsd/sdiv.c: Likewise.

	* mpq/cmp.c: Remove unused variable tmp_size.
	* mpz/powm_ui.c: Fix typo in esize==0 if stmt.
	* mpz/powm.c: Likewise.

Sun Nov 29 01:16:11 1992  Torbjorn Granlund  (tege@sics.se)

	* mpn/generic/divmod_1.c (mpn_divmod_1): Handle
	divisor_limb == 1 << (BITS_PER_MP_LIMB - 1)
	specifically.

	* Reorganize sources.  New directories mpn, mpn/MACH, mpn/generic,
	mpz, mpq, bsd.  Use full file name for change logs hereafter.

Wed Oct 28 17:40:04 1992  Torbjorn Granlund  (tege@jupiter.sics.se)

	* longlong.h (__hppa umul_ppmm): Fix typos.
	(__hppa sub_ddmmss): Swap input arguments.

	* mpz_perfsqr.c (mpz_perfect_square_p): Avoid , before } in
	initializator.

Sun Oct 25 20:30:06 1992  Torbjorn Granlund  (tege@jupiter.sics.se)

	* mpz_pprime.c (mpz_probab_prime_p): Handle numbers <= 3
	specifically (used to consider all negative numbers prime).

	* mpz_powm_ui: `carry_digit' => `carry_limb'.

	* sdiv: Handle zero dividend specifically.  Replace most code in
	this function with a call to mpn_divmod_1.

Fri Sep 11 22:15:55 1992  Torbjorn Granlund  (tege@tarrega.sics.se)

	* mpq_clear: Don't free the MP_RAT!

	* mpn_lshift, mpn_rshift, mpn_rshiftci: Remove `long' from 4:th arg.

Thu Sep  3 01:47:07 1992  Torbjorn Granlund  (tege@jupiter.sics.se)

	* All files: Remove leading _ from mpn function names.

Wed Sep  2 22:21:16 1992  Torbjorn Granlund  (tege@jupiter.sics.se)

	Fix from Jan-Hein Buhrman:
	* mpz_mdiv.c, mpz_mmod.c, mpz_mdm.c: Make them work as documented.

	* mpz_mmod.c, mpz_mdm.c: Move decl of TEMP_DIVISOR to reflect its
	life.

Sun Aug 30 18:37:15 1992  Torbjorn Granlund  (tege@jupiter.sics.se)

	* _mpz_get_str: Use mpz_sizeinbase for computing out_len.
	* _mpz_get_str: Don't remove leading zeros.  Abort if there are some.

Wed Mar  4 17:56:56 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	* gmp.h: Change definition of MP_INT to make the & before params
	optional.  Use typedef to define it.
	* mp.h: Use typedef to define MINT.

Tue Feb 18 14:38:39 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	longlong.h (hppa umul_ppmm): Add missing semicolon.  Declare type
	of __w1 and __w0.

Fri Feb 14 21:33:21 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	* longlong.h: Make default count_leading_zeros work for machines >
	32 bits.  Prepend `__' before local variables to avoid conflicts
	with users' variables.

	* mpn_dm_1.c: Remove udiv_qrnnd_preinv ...
	* gmp-impl.h: ... and put it here.
	* mpn_mod_1: Use udiv_qrnnd_preinv if it is faster than udiv_qrnnd.

Tue Feb 11 17:20:12 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpn_mul: Enhance base case by handling small multiplicands.
	* mpn_dm_1.c: Revert last change.

Mon Feb 10 11:55:15 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpn_dm_1.c: Don't define udiv_qrnnd_preinv unless needed.

Fri Feb  7 16:26:16 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpn_mul: Replace code for base case.

Thu Feb  6 15:10:42 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpn_dm_1.c (_mpn_divmod_1): Add code for avoiding division by
	pre-inverting divisor.

Sun Feb  2 11:10:25 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	* longlong.h: Make __LLDEBUG__ work differently.
	(_IBMR2): Reinsert old code.

Sat Feb  1 16:43:00 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	* longlong.h (#ifdef _IBMR2): Replace udiv_qrnnd with new code
	using floating point operations.  Don't define
	UDIV_NEEDS_NORMALIZATION any longer.

Fri Jan 31 15:09:13 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	* longlong.h: Define UMUL_TIME and UDIV_TIME for most machines.
	* longlong.h (#ifdef __hppa): Define umul_ppmm.

Wed Jan 29 16:41:36 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpn_cmp: Only one length parameter, assume operand lengths are
	the same.  Don't require normalization.
	* mpq_cmp, mpz_add, mpz_sub, mpz_gcd, mpn_mul, mpn_sqrt: Change for
	new mpn_cmp definition.

Tue Jan 28 11:18:55 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	* _mpz_get_str: Fix typo in comment.

Mon Jan 27 09:44:16 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	* Makefile.in: Add new files.

	* mpn_dm_1.c: New file with function _mpn_divmod_1.
	* mpz_dm_ui.c (mpz_divmod_ui): Use _mpn_divmod_1.
	* mpz_div_ui: Likewise.

	* mpn_mod_1.c: New file with function _mpn_mod_1.
	* mpz_mod_ui: Use _mpn_mod_1.

Thu Jan 23 18:54:09 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	Bug found by Paul Zimmermann (zimmermann@inria.inria.fr):
	* mpz_div_ui.c (mpz_div_ui), mpz_dm_ui.c (mpz_divmod_ui):
	Handle dividend == 0.

Wed Jan 22 12:02:26 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_pprime.c: Use "" for #include.

Sun Jan 19 13:36:55 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpn_rshiftci.c (header): Correct comment.

Wed Jan 15 18:56:04 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_powm, mpz_powm_ui (if (bsize > msize)): Do alloca (bsize + 1)
	to make space for ignored quotient at the end.  (The quotient might
	always be an extra limb.)

Tue Jan 14 21:28:48 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_powm_ui: Fix comment.
	* mpz_powm: Likewise.

Mon Jan 13 18:16:25 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	* tests/Makefile.in: Prepend $(TEST_PREFIX) to Makefile target.

Sun Jan 12 13:54:28 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	Fixes from Kazumaro Aoki:
	* mpz_out_raw: Take abs of size to handle negative values.
	* mpz_inp_raw: Reallocate before reading ptr from X.
	* mpz_inp_raw: Store, don't read, size to x->size.

Tue Jan  7 17:50:25 1992  Torbjorn Granlund  (tege@zevs.sics.se)

	* gmp.h, mp.h: Remove parameter names from prototypes.

Sun Dec 15 00:09:36 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* tests/Makefile.in: Prepend "./" to file names when executing
	tests.

	* Makefile.in: Fix many problems.

Sat Dec 14 01:00:02 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpn_sqrt.c: New file with _mpn_sqrt.
	* mpz_sqrt, mpz_sqrtrem, mpz_perfect_square_p: Use _mpn_sqrt.
	* msqrt.c: Delete.  Create from mpz_sqrtrem.c in Makefile.in.
	* mpz_do_sqrt.c: Delete.
	* Makefile.in: Update to reflect these changes.

	* Makefile.in, configure, configure.subr: New files
	(from bothner@cygnus.com).
	* dist-Makefile: Delete.

	* mpz_fac_ui: Fix comment.

	* mpz_random2: Rewrite a bit to make it possible for the most
	significant limb to be == 1.

	* mpz_pprime.c (mpz_probab_prime_p): Remove \t\n.

Fri Dec 13 23:10:02 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_do_sqrt: Simplify special case for U == 0.
	* m*sqrt*.c, mpz_perfsqr.c (mpz_perfect_square_p):
	Rename _mpz_impl_sqrt to _mpz_do_sqrt.

Fri Dec 13 12:52:28 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* gmp-impl.h (MPZ_TMP_INIT): Cast to the right type.

Thu Dec 12 22:17:29 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpn_add, mpn_sub, mpn_mul, mpn_div: Change type of several
	variables to mp_size.

Wed Dec 11 22:00:34 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpn_rshift.c: Fix header comments.

Mon Dec  9 17:46:10 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	Released 1.2.

	* gmp-impl.h (MPZ_TMP_INIT): Cast alloca return value.

	* dist-Makefile: Add missing dependency for cre-mparam.

	* mpz_mdiv.c, mpz_mmod.c, mpz_mdm.c, mpz_mdiv_ui.c,
	  mpz_mmod_ui.c, mpz_mdm_ui.c: Remove obsolete comment.

	* dist-Makefile (clean): clean in tests subdir too.
	* tests/Makefile: Define default values for ROOT and SUB.

	* longlong.h (__a29k__ udiv_qrnnd): Change "q" to "1" for operand
	2 constraint.

Mon Nov 11 00:06:05 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_sizeinb.c (mpz_sizeinbase): Special code for size == 0.

Sat Nov  9 23:47:38 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	Released 1.1.94.

	* dist-Makefile, Makefile, tests/Makefile: Merge tests into
	distribution.

Fri Nov  8 22:57:19 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* gmp.h: Don't use keyword `signed' for non-ANSI compilers.

Thu Nov  7 22:06:46 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* longlong.h: Cosmetic changes to keep it identical to gcc2 version
	of longlong.h.
	* longlong.h (__ibm032__): Fix operand order for add_ssaaaa and
	sub_ddmmss.

Mon Nov  4 00:36:46 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpn_mul: Fix indentation.

	* mpz_do_sqrt: Don't assume 32 bit limbs (had constant
	4294967296.0).
	* mpz_do_sqrt: Handle overflow in conversion from double returned
	by SQRT to mp_limb.

	* gmp.h: Add missing function definitions.

Sun Nov  3 18:25:25 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_pow_ui: Change type of `i' to int.

	* ChangeLog: Add change log entry.
	* ChangeLog: Add change log entry.
	* ChangeLog: Add change log entry.
	* ChangeLog: Add change log entry.
	* ChangeLog: Add change log entry.
	* ChangeLog: Add change log entry.
	* ChangeLog: Add change log entry.
	* ChangeLog: Add change log entry.
Stack overflow.

	* mpz_pow_ui.c: Fix typo in comment.

	* dist-Makefile: Create rpow.c from mpz_powm_ui.c.
	* mpz_powm_ui.c: Add code for rpow.
	* rpow.c: Delete this file.  The rpow function is now implemented
	in mpz_powm_ui.c.

	* mpz_fac_ui.c: New file.
	* gmp.h, dist-Makefile: Add stuff for mpz_fac_ui.

	Bug found by John Amanatides (amana@sasquatch.cs.yorku.ca):
	* mpz_powm_ui, mpz_powm: Call _mpn_mul in the right way, with
	the first argument not smaller than the second.

Tue Oct 29 13:56:55 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* cre-conv-tab.c (main), cre-mparam.c (main): Fix typo in output
	header text.

Mon Oct 28 00:35:29 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_random2: Handle size == 0.

	* gmp-impl.h (struct __mp_bases): Rename chars_per_limb_exactly to
	chars_per_bit_exactly, and change its definition.
	* cre-conv-tab.c (main): Output field according to its new
	definition.
	* mpz_out_str, _mpz_get_str, mpz_sizeinb, mout:
	Use chars_per_bit_exactly.

	* mpz_random2: Change the loop termination condition in order to
	get a large most significant limb with higher probability.

	* gmp.h: Add declaration of new mpz_random2 and mpz_get_si.
	* mpz_get_si.c: New file.
	* dist-Makefile: Add mpz_random2 and mpz_get_si.

	* mpz_sizeinb.c (mpz_sizeinbase): Special code for base being a
	power of 2, giving exact result.

	* mpn_mul: Fix MPN_MUL_VERIFY in various ways.
	* mpn_mul: New macro KARATSUBA_THRESHOLD.
	* mpn_mul (karatsuba's algorithm): Don't write intermediate results
	to prodp, use temporary pp instead.  (Intermediate results can be
	larger than the final result, possibly writing into hyperspace.)
	* mpn_mul: Make smarter choice between Karatsuba's algorithm and the
	shortcut algorithm.
	* mpn_mul: Fix typo, cy instead of xcy.  Unify carry handling code.

Sun Oct 27 19:57:32 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpn_mul: In non-classical case, choose Karatsuba's algorithm only
	when usize > 1.5 vsize.

	* mpn_mul: Break between classical and Karatsuba's algorithm at
	KARATSUBA_THRESHOLD, if defined.  Default to 8.

	* mpn_div: Kludge to fix stray memory read.

Sat Oct 26 20:06:14 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_gcdext: Handle a = b = 0.  Remove memory leakage by calling
	mpz_clear for all temporary variables.

	* mpz_gcd: Reduce w_bcnt in _mpn_lshift call to hold that
	function's argument constraints.  Compute wsize correctly.

	* mpz_gcd: Fix typo in comment.

	* memory.c (_mp_default_allocate, _mp_default_reallocate): Call
	abort if allocation fails, don't just exit.

Fri Oct 25 22:17:20 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_random2.c: New file.

Thu Oct 17 18:06:42 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	Bugs found by Pierre-Joseph Gailly (pjg@sunbim.be):
	* mpq_cmp: Take sign into account, don't just compare the
	magnitudes.
	* mpq_cmp: Call _mpn_mul in the right way, with the first argument
	not smaller than the second.

Wed Oct 16 19:27:32 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_random: Ensure the result is normalized.

Tue Oct 15 14:55:13 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_clrbit: Support non-ANSI compilers.

Wed Oct  9 18:03:28 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* longlong.h (68k add_ssaaaa, sub_ddmmss): Generalize constraints.

Tue Oct  8 17:42:59 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_mdm_ui: Add comments.

	* mpz_mdiv: Use MPZ_TMP_INIT instead of mpz_init.
	* mpz_init_ui: Change spacing and header comment.

Thu Oct  3 18:36:13 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* dist-Makefile: Prepend `./' before some filenames.

Sun Sep 29 14:02:11 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	Released 1.1 (public).

	* mpz_com: New name of mpz_not.
	* dist-Makefile: Change mpz_not to mpz_com.

Tue Sep 24 12:44:11 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* longlong.h: Fix header comment.

Mon Sep  9 15:16:24 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	Released 1.0.92.

	* mpn_mul.c (_mpn_mul): Handle leading zero limbs in non-Karatsuba
	case.

	* longlong.h (m68000 umul_ppmm): Clobber one register less by
	slightly rearranging the code.

Sun Sep  1 18:53:25 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* dist-Makefile (stamp-stddefh): Fix typo.

Sat Aug 31 20:41:31 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	Released 1.0.91.

	* mpz_mdiv.c, mpz_mmod.c, mpz_mdm.c, mpz_mdiv_ui.c,
	  mpz_mmod_ui.c, mpz_mdm_ui.c: New files and functions.
	* gmp.h, gmp.texi: Define the new functions.

Fri Aug 30 08:32:56 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_gcdext: Compute t argument from the other quantities at the
	  end, of the function, not in the loop.  New feature: Allow t to be
	  NULL.

	* mpz_add.c, mpz_sub.c, mpz_mul.c, mpz_powm.c, mpz_gcd.c: Don't
	  include "mp.h".  Use type name `MP_INT' always.

	* dist-Makefile, mpz_cmp.c: Merge mcmp.c from mpz_cmp.c.

Wed Aug 28 00:45:11 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* dist-Makefile (documentation): Go via tmp.texi to avoid the
	  creation of gmp.dvi if any errors occur.  Make tex read input
	  from /dev/null.

Fri Aug 23 15:58:52 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* longlong.h (68020, i386): Don't define machine-dependent
	  __umulsidi3 (so the default definition is used).
	* longlong.h (all machines): Cast all operands, sources and
	  destinations, to `unsigned long int'.
	* longlong.h: Add gmicro support.

Thu Aug 22 00:28:29 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* longlong.h: Rename BITS_PER_LONG to LONG_TYPE_SIZE.
	* longlong.h (__ibm032__): Define count_leading_zeros and umul_ppmm.
	* longlong.h: Define UMUL_TIME and UDIV_TIME for some CPUs.
	* _mpz_get_str.c: Add code to do division by big_base using only
	  umul_qrnnd, if that is faster.  Use UMUL_TIME and UDIV_TIME to
	  decide which variant to use.

Wed Aug 21 15:45:23 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* longlong.h (__sparc__ umul_ppmm): Move two insn from end to the
	  nops.  (Saves two insn.)

	* longlong.h (__sparc__ umul_ppmm): Rewrite in order to avoid
	  branch, and to permit input/output register overlap.

	* longlong.h (__29k__): Remove duplicated udiv_qrnnd definition.
	* longlong.h (__29k__ umul_ppmm): Split asm instructions into two
	  asm statements (gives better code if either the upper or lower
	  part of the product is unused.

Tue Aug 20 17:57:59 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* _mpz_get_str.c (outside of functions): Remove
	  num_to_ascii_lower_case and num_to_ascii_upper_case.  Use string
	  constants in the function instead.

Mon Aug 19 00:37:42 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* cre-conv-tab.c (main): Output table in hex.  Output 4 fields, not
	  3, for components 0 and 1.

	* gmp.h: Add declaration of mpq_neg.

	Released 1.0beta.13.

	* _mpz_set_str.c (mpz_set_str): Cast EOF and SPC to char before
	  comparing to enum literals SPC and EOF.  This makes the code work
	  for compilers where `char' is unsigned.  (Bug found by Brian
	  Beuning).

	Released 1.0beta.12.

	* mpz_mod_ui: Remove references to quot.  Remove quot_ptr, quot_size
	  declarations and assignment code.

Sun Aug 18 14:44:26 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_mod_ui: Handle dividend < 0.

	Released 1.0beta.11.

	* mpz_dm_ui, mpz_div_ui, mpz_mod_ui, sdiv: Make them share the same
	  general structure, variable names, etc.

	* sdiv: Un-normalize the remainder in n1 before it is negated.

	* longlong.h: Mention UDIV_NEEDS_NORMALIZATION in description of
	  udiv_qrnnd.

	* mpz_dm_ui.c (mpz_divmod_ui), mpz_div_ui.c (mpz_div_ui): Increment
	  the quotient size if the dividend size is incremented.  (Bug found
	  by Brian Beuning.)

	* mpz_mod_ui: Shift back the remainder, if UDIV_NEEDS_NORMALIZATION.
	  (Bug found by Brian Beuning.)

	* mpz_mod_ui: Replace "digit" by "limb".

	* mpz_perfsqr.c (mpz_perfect_square_p): Disable second test case
	  for non-32-bit machines (PP is hardwired for such machines).
	* mpz_perfsqr.c (outside of functions): Define PP value with an L.

	* mpn_mul.c (_mpn_mul): Add verification code that is activated if
	  DEBUG is defined.  Replace "digit" by "limb".
	* mpn_mul.c (_mpn_mul: Karatsuba's algorithm: 4.): Normalize temp
	  after the addition.
	* mpn_mul.c (_mpn_mul: Karatsuba's algorithm: 1.): Compare u0_size
	  and v0_size, and according to the result, swap arguments in
	  recursive call.  (Don't violate mpn_mul's own argument
	  constraints.)

Fri Aug 16 13:47:12 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	Released 1.0beta.10.

	* longlong.h (IBMR2): Add udiv_qrnnd.

	* mpz_perfsqr: Remove unused variables.

	* mpz_and (case for different signs): Initialize loop variable i!

	* dist-Makefile: Update automatically generated dependencies.
	* dist-Makefile (madd.c, msub.c, pow.c, mult.c, gcd.c): Add mp.h,
	  etc to dependency file lists.

	* longlong.h (add_ssaaaa, sub_ddmmss [C default versions]): Make __x
	  `unsigned long int'.
	* longlong.h: Add `int' after `unsigned' and `long' everywhere.

Wed Aug 14 18:06:48 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* longlong.h: Add ARM, i860 support.

	* mpn_lshift, mpn_rshift, mpn_rshiftci: Rename *_word with *_limb.

Tue Aug 13 21:57:43 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* _mpz_get_str.c, _mpz_set_str.c, mpz_sizeinb.c (mpz_sizeinbase),
	  mpz_out_str.c, mout.c: Remove declaration of __mp_bases.
	* gmp-impl.h: Put it here, and make it `const'.
	* cre-conv-tab.c (main): Make struct __mp_bases `const'.

Mon Aug 12 17:11:46 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* cre-conv-tab.c (main): Use %lu in printf for long ints.

	* dist-Makefile: Fix cre-* dependencies.

	* cre-conv-tab.c (main): Output field big_base_inverted.

	* gmp-impl.h (struct bases): New field big_base_inverted.
	* gmp-impl.h (struct bases): Change type of chars_per_limb_exactly
	  to float (in order to keep the structure smaller).

	* mp.h, gmp.h: Change names of macros for avoiding multiple
	  includes.

Fri Aug  9 18:01:36 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* _mpz_get_str: Only shift limb array if normalization_steps != 0
	  (optimization).

	* longlong.h (sparc umul_ppmm): Use __asm__, not asm.
	* longlong.h (IBMR2 umul_ppmm): Refer to __m0 and __m1, not to m0
	  and m1 (overlap between output and input operands did not work).
	* longlong.h: Add VAX, ROMP and HP-PA support.
	* longlong.h: Sort the machine dependent code in alphabetical order
	  on the CPU name.
	* longlong.h: Hack comments.

Thu Aug  8 14:13:36 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	Released 1.0beta.9.

	* longlong.h: Define BITS_PER_LONG to 32 if it's not already
	  defined.
	* Define __BITS4 to BITS_PER_LONG / 4.
	* Don't assume 32 bit word size in "count_leading_zeros" C macro.
	  Use __BITS4 and BITS_PER_LONG instead.

	* longlong.h: Don't #undef internal macros (reverse change of Aug 3).

	* longlong.h (68k): Define add_ssaaaa sub_ddmmss, and umul_ppmm
	  even for plain mc68000.

	* mpq_div: Flip the sign of the numerator *and* denominator of the
	  result if the intermediate denominator is negative.

	* mpz_and.c, mpz_ior.c: Use MPN_COPY for all copying operations.

	* mpz_and.c: Compute the result size more conservatively.
	* mpz_ior.c: Likewise.

	* mpz_realloc: Never allocate zero space even if NEW_SIZE == 0.

	* dist-Makefile: Remove madd.c, msub.c, pow.c, mult.c, gcd.c from
	  BSDMP_SRCS.

	* dist-Makefile: Create mult.c from mpz_mul.c.
	* mult.c: Delete this file.

	* _mpz_set_str: Normalize the result (for bases 2, 4, 8... it was
	  not done properly if the input string had many leading zeros).

Sun Aug  4 16:54:14 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* dist-Makefile (gcd.c, pow.c, madd.c, msub.c): Make these targets
	  work with VPATH and GNU MP.

	* mpz_gcd: Don't call mpz_set; inline its functionality.

	* mpq_mul, mpq_div: Fix several serious typos.

	* mpz_dmincl, mpz_div: Don't normalize the quotient if it's already
	  zero.

	* mpq_neg.c: New file.

	* dist-Makefile: Remove obsolete dependencies.

	* mpz_sub: Fix typo.

	Bugs found by Pierre-Joseph Gailly (pjg@sunbim.be):
	* mpq_mul, mpq_div: Initialize tmp[12] variables even when the gcd
	  is just 1.
	* mpz_gcd: Handle gcd(0,v) and gcd(u,0) in special cases.

Sat Aug  3 23:45:28 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* longlong.h: Clean up comments.
	* longlong.h: #undef internal macros.

Fri Aug  2 18:29:11 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpq_set_si, mpq_set_ui: Canonicalize 0/x to 0/1.
	* mpq_set_si, mpq_set_ui: Cosmetic formatting changes.

	* mpz_dmincl.c: Normalize the remainder before shifting it back.

	* mpz_dm_ui.c (mpz_divmod_ui): Handle rem == dividend.

	* mpn_div.c: Fix comment.

	* mpz_add.c, mpz_sub.c: Use __MP_INT (not MP_INT) for intermediate
	  type, in order to work for both GNU and Berkeley functions.

	* dist-Makefile: Create gcd.c from mpz_gcd.c, pow.c from mpz_powm,
	  madd.c from mpz_add.c, msub.c from mpz_sub.c.
	  respectively.
	* pow.c, gcd.c, mpz_powmincl.c, madd.c, msub.c: Remove these.
	* mpz_powm.c, mpz_gcd.c, mpz_add.c, mpz_sub.c: #ifdef for GNU and
	  Berkeley function name variants.
	* dist-Makefile: Add created files to "clean" target.

Tue Jul 16 15:19:46 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpq_get_den: No need for absolute value of the size, the
	  denominator is always positive.

	* mpz_get_ui: If the operand is zero, return zero.  Don't read the
	  limb array!

	* mpz_dmincl.c: Don't ignore the return value from _mpn_rshift, it
	  is the size of the remainder.

Mon Jul 15 11:08:05 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* Several files: Remove unused variables and functions.

	* gmp-impl.h: Declare _mpz_impl_sqrt.

	* mpz_dm_ui (mpz_divmod_ui), sdiv: Shift back the remainder if
	  UDIV_NEEDS_NORMALIZATION.  (Fix from Brian Beuning.)

	* mpz_dm_ui.c, sdiv: Replace *digit with *limb.

	* mpz_ior: Add missing else statement in -OP1 | -OP2 case.
	* mpz_ior: Add missing else statement in OP1 | -OP2 case.
	* mpz_ior: Swap also OP1 and OP2 pointers in -OP1 & OP2 case.
	* mpz_ior: Duplicate _mpz_realloc code.

	* mpz_and: Add missing else statement in -OP1 & -OP2 case.
	* mpz_and: Rewrite OP1 & -OP2 case.
	* mpz_and: Swap also OP1 and OP2 pointers in -OP1 & OP2 case.

	* mpz_gcdext: Loop in d1.size (not b->size).  (Fix from Brian
	  Beuning.)

	* mpz_perfsqr: Fix argument order in _mpz_impl_sqrt call.  (Fix from
	  Brian Beuning.)

Fri Jul 12 17:10:33 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpq_set.c, mpq_set_ui.c, mpq_set_si.c, mpq_inv.c,
	  mpq_get_num.c, mpq_get_den.c, mpq_set_num.c, mpq_set_den.c:
	  New files.

	* mpz_dmincl.c: Remove second re-allocation of rem->d.  It
	  was never executed.

	* dist-Makefile: Use `-r' instead of `-x' for test for ranlib (as
	  some unixes' test doesn't have the -r option).

	* *.*: Cast allocated pointers to the appropriate type (makes old C
	  compilers happier).

	* cre-conv-tab.c (main): Divide max_uli by 2 and multiply again
	  after conversion to double.  (Kludge for broken C compilers.)

	* dist-Makefile (stamp-stddefh): New target.  Test if "stddef.h"
	  exists in the system and creates a minimal one if it does not
	  exist.
	* cre-stddefh.c: New file.
	* dist-Makefile: Make libgmp.a and libmp.a depend on stamp-stddefh.
	* dist-Makefile (clean): Add some more.
	* gmp.h, mp.h: Unconditionally include "stddef.h".

Thu Jul 11 10:08:21 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* min: Do ungetc of last read character.
	* min.c: include stdio.h.

	* dist-Makefile: Go via tmp- files for cre* redirection.
	* dist-Makefile: Add tmp* to "clean" target.

	* dist-Makefile: Use LOCAL_CC for cre*, to simplify cross
	  compilation.

	* gmp.h, mp.h: Don't define NULL here.
	* gmp-impl.h: Define it here.

Wed Jul 10 14:13:33 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_mod_2exp: Don't copy too much, overwriting most significant
	  limb.

	* mpz_and, mpz_ior: Don't read op[12]_ptr from op[12] when
	  reallocating res, if op[12]_ptr got their value from alloca.

	* mpz_and, mpz_ior: Clear up comments.

	* cre-mparam.c: Output parameters for `short int' and `int'.

	* mpz_and, mpz_ior: Negate negative op[12]_size in several places.

Tue Jul  9 18:40:30 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* gmp.h, mp.h: Test for _SIZE_T defined before typedef'ing size_t.
	  (Fix for Sun lossage.)

	* gmp.h: Add declaration of mpq_clear.

	* dist-Makefile: Check if "ranlib" exists, before using it.
	* dist-Makefile: Add mpz_sqrtrem.c and mpz_size.c.
	* mpz_powm: Fix typo, "pow" instead of "mpz_powm".

Fri Jul  5 19:08:09 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* move: Remove incorrect comment.

	* mpz_free, mpq_free: Rename to *_clear.
	* dist-Makefile: Likewise.
	* mpq_add, mpq_sub, mpq_mul, mpq_div: Likewise.

	* mpz_dmincl.c: Don't call "move", inline its functionality.

Thu Jul  4 00:06:39 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* Makefile: Include dist-Makefile.  Fix dist target to include
	  dist-Makefile (with the name "Makefile" in the archive).

	* dist-Makefile: New file made from Makefile.  Add new mpz_...
	  functions.

	* mpz_powincl.c New file for mpz_powm (Berkeley MP pow)
	  functionality.  Avoids code duplication.
	* pow.c, mpz_powm.c: Include mpz_powincl.c

	* mpz_dmincl.c: New file containing general division code.  Avoids
	  code duplication.
	* mpz_dm.c (mpz_divmod), mpz_mod.c (mpz_mod), mdiv.c (mdiv): Include
	  mpz_dmincl.c.

	* _mpz_get_str: Don't call memmove, unless HAS_MEMMOVE is defined.
	  Instead, write the overlapping memory copying inline.

	* mpz_dm_ui.c: New name for mpz_divmod_ui.c (SysV file name limit).

	* longlong.h: Don't use #elif.
	* mpz_do_sqrt.c: Likewise.

	* longlong.h: Use __asm__ instead of asm.
	* longlong.h (sparc udiv_qrnnd): Make it to one string over several
	  lines.

	* longlong.h: Preend __ll_ to B, highpart, and lowpart.

	* longlong.h: Move array t in count_leading_zeros to the new file
	  mp_clz_tab.c.  Rename the array __clz_tab.
	* All files: #ifdef for traditional C compatibility.

Wed Jul  3 11:42:14 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_and: Initialize res_ptr always (used to be initialized only
	  when reallocating).

	* longlong.h (umul_ppmm [C variant]): Make __ul...__vh
	  `unsigned int', and cast the multiplications.  This way
	  compilers more easily can choose cheaper multiplication
	  instructions.

	* mpz_mod_2exp: Handle input argument < modulo argument.
	* mpz_many: Make sure mp_size is the type for sizes, not int.

	* mpz_init, mpz_init_set*, mpq_init, mpq_add, mpq_sub, mpq_mul,
	  mpq_div: Change mpz_init* interface.  Structure pointer as first
	  arg to initialization function, no longer *return* struct.

Sun Jun 30 19:21:44 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* Rename mpz_impl_sqrt.c to mpz_do_sqrt.c to satisfy SysV 14
	  character file name length limit.

	* Most files: Rename MINT to MP_INT.  Rename MRAT to MP_RAT.
	* mpz_sizeinb.c: New file with function mpz_sizeinbase.
	* mp_bases.c: New file, with array __mp_bases.
	* _mpz_get_str, _mpz_set_str: Remove struct bases, use extern
	  __mp_bases instead.
	* mout, mpz_out_str: Use array __mp_bases instead of function
	  _mpz_get_cvtlen.
	* mpz_get_cvtlen.c: Remove.
	* Makefile: Update.

Sat Jun 29 21:57:28 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* longlong.h (__sparc8__ umul_ppmm): Insert 3 nop:s for wr delay.
	* longlong.h (___IBMR2__): Define umul_ppmm, add_ssaaaa, sub_ddmmss.
	* longlong.h (__sparc__): Don't call .umul; expand asm instead.
	  Don't define __umulsidi3 (i.e. use default definition).

Mon Jun 24 17:37:23 1991  Torbjorn Granlund  (tege@amon.sics.se)

	* _mpz_get_str.c (num_to_ascii_lower_case, num_to_ascii_upper_case):
	  Swap 't' and 's'.

Sat Jun 22 13:54:01 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_gcdext.c: New file.

	* mpn_mul: Handle carry and unexpected operand sizes in last
	  additions/subtractions.  (Bug trigged when v1_size == 1.)

	* mp*_alloc*: Rename functions to mp*_init* (files to mp*_iset*.c).
	* mpq_*: Call mpz_init*.

	* mpz_pow_ui, rpow: Use _mpn_mul instead of mult.  Restructure.

Wed May 29 20:32:33 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_get_cvtlen: multiply by size.

Sun May 26 15:01:15 1991  Torbjorn Granlund  (tege@bella.nada.kth.se)

	Alpha-release 0.95.

	Fixes from Doug Lea (dl@g.oswego.edu):
	* mpz_mul_ui: Loop to MULT_SIZE (not PROD_SIZE).  Adjust PROD_SIZE
	  correctly.
	* mpz_div: Prepend _ to mpz_realloc.
	* mpz_set_xs, mpz_set_ds: Fix typos in function name.

Sat May 25 22:51:16 1991  Torbjorn Granlund  (tege@bella.nada.kth.se)

	* mpz_divmod_ui: New function.

	* sdiv: Make the sign of the remainder correct.

Thu May 23 15:28:24 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* Alpha-release 0.94.

	* mpz_mul_ui: Include longlong.h.

	* mpz_perfsqr.c (mpz_perfect_square_p): Call _mpz_impl_sqrt instead
	  of msqrt.

	* mpz_impl_sqrt: Don't call "move", inline its functionality.

	* mdiv: Use MPN_COPY instead of memcpy.
	* rpow, mpz_mul, mpz_mod_2exp: Likewise.
	* pow.c: Likewise, and fix bug in the size arg.

	* xtom: Don't use mpz_alloc, inline needed code instead.  Call
	  _mpz_set_str instead of mpz_set_str.

	* Makefile: Make two libraries, libmp.a and libgmp.a.

Thu May 22 20:25:29 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* Add manual to distribution.
	* Fold in many missing routines described in the manual.
	* Update Makefile.

Wed May 22 13:48:46 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_set_str: Make it handle 0x prefix OK.

Sat May 18 18:31:02 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* memory.c (_mp_default_reallocate): Swap OLD_SIZE and NEW_SIZE
	  arguments.
	* mpz_realloc (_mpz_realloc): Swap in call to _mp_reallocate_func.
	* min: Likewise.

Thu May 16 20:43:05 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* memory.c: Make the default allocations functions global.
	* mp_set_fns (mp_set_memory_functions): Make a NULL pointer mean the
	  default memory function.

Wed May  8 20:02:42 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_div: Handle DEN the same as QUOT correctly by copying DEN->D
	  even if no normalization is needed.
	* mpz_div: Rework reallocation scheme, to avoid excess copying.

	* mpz_sub_ui.c, mpz_add_ui.c: New files.

	* mpz_cmp.c, mpz_cmp_ui.c: New files.

	* mpz_mul_2exp: Handle zero input MINT correctly.

	* mpn_rshiftci: Don't handle shift counts > BITS_PER_MP_DIGIT.

	* mpz_out_raw.c, mpz_inp_raw.c: New files for raw I/O.

Tue May  7 15:44:58 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpn_rshift: Don't handle shift counts > BITS_PER_MP_DIGIT.
	* mpz_div_2exp: Don't call _mpn_rshift with cnt > BITS_PER_MP_DIGIT.
	* gcd, mpz_gcd: Likewise.

	* gcd, mpz_gcd: Handle common 2 factors correctly.

Mon May  6 20:22:59 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* gmp-impl.h (MPN_COPY): Inline a loop instead of calling memcpy.

	* gmp-impl.h, mpz_get_str, rpow: Swap DST and SRC in TMPCOPY* macros.

Sun May  5 15:16:23 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpz_div: Remove test for QUOT == 0.

Sun Apr 28 20:21:04 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* pow: Don't make MOD normalization in place, as it's a bad idea to
	  write on an input parameter.
	* pow: Reduce BASE if it's > MOD.
	* pow, mult, mpz_mul: Simplify realloc code.

Sat Apr 27 21:03:11 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* Install multiplication using Karatsuba's algorithm as default.

Fri Apr 26 01:03:57 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* msqrt: Store in ROOT even for U==0, to make msqrt(0) defined.

	* mpz_div_2exp.c, mpz_mul_2exp.c: New files for shifting right and
	  left, respectively.
	* gmp.h: Add definitions for mpz_div_2exp and mpz_mul_2exp.

	* mlshift.c, mrshift.c: Remove.

Wed Apr 24 21:39:22 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* mpn_mul: Check only for m2_size == 0 in function header.

Mon Apr 22 01:31:57 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* karatsuba.c: New file for Karatsuba's multiplication algorithm.

	* mpz_random, mpz_init, mpz_mod_2exp: New files and functions.

	* mpn_cmp: Fix header comment.

Sun Apr 21 00:10:44 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* pow: Switch off initial base reduction.

Sat Apr 20 22:06:05 1991  Torbjorn Granlund  (tege@echnaton.sics.se)

	* mpz_get_str: Don't generate initial zeros for initial word.
	  Used to write outside of allocated storage.

Mon Apr 15 15:48:08 1991  Torbjorn Granlund  (tege@zevs.sics.se)

	* _mpz_realloc: Make it accept size in number of mp_digits.
	* Most functions: Use new _mpz_realloc definition.

	* mpz_set_str: Remove calls _mp_free_func.

	* Most functions: Rename mpn_* to _mpn_*.  Rename mpz_realloc to
	  _mpz_realloc.
	* mpn_lshift: Redefine _mpn_lshift to only handle small shifts.
	* mdiv, mpz_div, ...: Changes for new definition of _mpn_lshift.
	* msqrt, mp*_*shift*: Define cnt as unsigned (for speed).

Sat Apr  6 14:05:16 1991  Torbjorn Granlund  (tege@musta.nada.kth.se)

	* mpn_mul: Multiply by the first digit in M2 in a special
	  loop instead of zeroing the product area.

	* mpz_abs.c: New file.

	* sdiv: Implement as mpz_div_si for speed.

	* mpn_add: Make it work for second source operand == 0.

	* msub: Negate the correct operand, i.e. V before swapping, not
	  the smaller of U and V!
	* madd, msub: Update abs_* when swapping operands, and not after
	  (optimization).

Fri Apr  5 00:19:36 1991  Torbjorn Granlund  (tege@black.nada.kth.se)

	* mpn_sub: Make it work for subtrahend == 0.

	* madd, msub: Rewrite to minimize mpn_cmp calls.  Ensure
	  mpn_cmp is called with positive sizes (used to be called
	  incorrectly with negative sizes sometimes).

	* msqrt: Make it divide by zero if fed with a negative number.
	* Remove if statement at end of precision calculation that was
	  never true.

	* itom, mp.h: The argument is of type short, not int.

	* mpz_realloc, gmp.h: Make mpz_realloc return the new digit pointer.

	* mpz_get_str.c, mpz_set_str.c, mpz_new_str.c: Don't include mp.h.

	* Add COPYING to distribution.

	* mpz_div_ui.c, mpz_div_si.c, mpz_new_ui.c, mpz_new_si.c: New files.

Fri Mar 15 00:26:29 1991  Torbjorn Granlund  (tege@musta.nada.kth.se)

	* Add Copyleft headers to all files.

	* mpn_mul.c, mpn_div.c: Add header comments.
	* mult.c, mdiv.c: Update header comments.

	* mpq_add.c, mpq_sub.c, mpq_div.c, mpq_new.c, mpq_new_ui.c,
	  mpq_free.c: New files for rational arithmetics.

	* mpn_lshift.c: Avoid writing the most significant word if it is 0.

	* mdiv.c: Call mpn_lshift for the normalization.
	* mdiv.c: Remove #ifdefs.

	* Makefile: Add ChangeLog to DISTFILES.

	* mpn_div.c: Make the add_back code work (by removing abort()).
	* mpn_div.c: Make it return if the quotient is size as compared
	  with the difference NSIZE - DSIZE.  If the stored quotient is
	  larger than that, return 1, otherwise 0.
	* gmp.h: Fix mpn_div declaration.
	* mdiv.c: Adopt call to mpn_div.
	* mpz_div.c: New file (developed from mdiv.c).

	* README: Update routine names.

Thu Mar 14 18:45:28 1991  Torbjorn Granlund  (tege@musta.nada.kth.se)

	* mpq_mul.c: New file for rational multiplication.

	* gmp.h: Add definitions for rational arithmetics.

	* mpn_div: Kludge the case where the high numerator digit > the
	  high denominator digit.  (This code is going to be optimized later.)

	* New files: gmp.h for GNU specific functions, gmp-common.h for
	  definitions common for mp.h and gmp.h.

	* Ensure mp.h just defines what BSD mp.h defines.

	* pow.c: Fix typo for bp allocation.

	* Rename natural number functions to mpn_*, integer functions to
	  mpz_*.

Tue Mar  5 18:47:04 1991  Torbjorn Granlund  (tege@musta.nada.kth.se)

	* mdiv.c (_mp_divide, case 2): Change test for estimate of Q from
	  "n0 >= r" to "n0 > r".

	* msqrt: Tune the increasing precision scheme, to do fewer steps.

Tue Mar  3 18:50:10 1991  Torbjorn Granlund  (tege@musta.nada.kth.se)

	* msqrt: Use the low level routines.  Use low precision in the
	beginning, and increase the precision as the result converges.
	(This optimization gave a 6-fold speedup.)
