Newer
Older
* 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/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.
* 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.
* 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.
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.
* mpn/arm/v7a/cora15/cnd_aors_n.asm: New file, was mis-named.
* 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.
* 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-18 Torbjorn Granlund <tege@gmplib.org>
* mpn/alpha/tabselect.asm: New file.
2013-04-17 Torbjorn Granlund <tege@gmplib.org>
* 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.
* 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.
* longlong.h (sparc64): Test __VIS__ instead of __sparc_vis3.
* config.guess (sparc*): Invoke set_cc_for_build to get $dummy.
* 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.
* 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.
* mpn/sparc64/ultrasparct3/missing.m4 (umulxhi): Don't clobber retaddr,
allowing use in functions that does not do save/restore.
* mpn/sparc64/lshift.asm: New file.
* mpn/sparc64/rshift.asm: New file.
* mpn/sparc64/lshiftc.asm: New file.
* 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.
* 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.
* 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'.
* 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.
* mpf/fits_u.h: Accept numbers truncating to zero before checking the
sign.
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.
GLISSE Marc
committed
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.
* 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.
* gmp-impl.h (mpz_zero_p): Likewise.
2013-03-12 Niels Möller <nisse@lysator.liu.se>
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
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.
* 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.
* 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>
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
* 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.
* 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/submul_1.asm: Likewise.
2013-03-04 Torbjorn Granlund <tege@gmplib.org>
* mpn/arm/neon/lorrshift.asm: New file.
* 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/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-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>
* 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.
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.
Marco Bodrato
committed
* mpz/remove.c: Delay allocation in the generic case; use swap
instead of set.
* mpn/generic/remove.c: Delay (possibly smaller) allocation.
Marco Bodrato
committed
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).
GLISSE Marc
committed
* 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>.
GLISSE Marc
committed
GLISSE Marc
committed
* 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.
GLISSE Marc
committed
* 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>.
* 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.
* mpz/clrbit.c: Reorganise branches.
* mpz/setbit.c: Likewise.
* mpz/aors_ui.h: No realloc if size was zero.
* mpz/ior.c: Use macros: MPZ_REALLOC and MPN_INCR_U.
* 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.
* 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.
* 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.
Torbjorn Granlund
committed
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.
* tests/mpn/logic.c: Set things up to always test library logops, not
* 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.
* 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.
* 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.
* 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 Torbjorn Granlund <tege@gmplib.org>
* tests/memory.c (PTRLIMB): New macro, used for conformant casting.
* mpn/generic/set_str.c (normalization_steps): Eliminate set-but-unused
variable.
* tests/tests.h (TESTS_REPS): Fix printf argument type clashes.
2013-01-15 Torbjorn Granlund <tege@gmplib.org>
From Mike Frysinger:
* configure.ac: Add x32 ABI for x86_64.
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.
* doc/gmp.texi: Let mpn_sqrtrem reference mpn_perfect_square_p instead
of mpz_perfect_square_p.
2013-01-10 Marco Bodrato <bodrato@mail.dm.unipi.it>
* mpz/export.c: Less restrictive ASSERTs.
* Makefile.am (check-mini-gmp): Set LD_LIBRARY_PATH to allow testing
with dynamic main GMP build.
2013-01-05 Torbjorn Granlund <tege@gmplib.org>
* longlong.h (aarch64): Make add_ssaaaa and sub_ddmmss actually work.
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.