summaryrefslogtreecommitdiff
path: root/Build/source
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source')
-rw-r--r--Build/source/libs/README2
-rw-r--r--Build/source/libs/gmp/ChangeLog4
-rw-r--r--Build/source/libs/gmp/Makefile.am15
-rw-r--r--Build/source/libs/gmp/Makefile.in63
-rw-r--r--Build/source/libs/gmp/README5
-rwxr-xr-xBuild/source/libs/gmp/configure32
-rw-r--r--Build/source/libs/gmp/configure.ac8
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0-PATCHES/patch-01-const12
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpf/ui_sub.c336
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/gmp-mparam.h157
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/gmp-mparam.h197
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora9/gmp-mparam.h209
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/generic/rootrem.c415
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/aors_n.asm856
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/gmp-mparam.h204
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p4/gmp-mparam.h208
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/gmp-mparam.h243
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/z10/gmp-mparam.h231
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc34/gmp-mparam.h219
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/gmp-mparam.h201
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/gmp-mparam.h241
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/gmp-mparam.h220
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/gmp-mparam.h236
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd2/gmp-mparam.h237
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/gmp-mparam.h208
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/gmp-mparam.h231
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/gmp-mparam.h224
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/gmp-mparam.h222
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/mpz/swap.c55
-rw-r--r--Build/source/libs/gmp/gmp-src-PATCHES/ChangeLog (renamed from Build/source/libs/gmp/gmp-6.0.0-PATCHES/ChangeLog)5
-rw-r--r--Build/source/libs/gmp/gmp-src-PATCHES/TL-Changes (renamed from Build/source/libs/gmp/gmp-6.0.0-PATCHES/TL-Changes)5
-rw-r--r--Build/source/libs/gmp/gmp-src/AUTHORS (renamed from Build/source/libs/gmp/gmp-6.0.0/AUTHORS)2
-rw-r--r--Build/source/libs/gmp/gmp-src/ChangeLog (renamed from Build/source/libs/gmp/gmp-6.0.0/ChangeLog)1031
-rw-r--r--Build/source/libs/gmp/gmp-src/INSTALL (renamed from Build/source/libs/gmp/gmp-6.0.0/INSTALL)0
-rw-r--r--Build/source/libs/gmp/gmp-src/Makefile.am (renamed from Build/source/libs/gmp/gmp-6.0.0/Makefile.am)15
-rw-r--r--Build/source/libs/gmp/gmp-src/NEWS (renamed from Build/source/libs/gmp/gmp-6.0.0/NEWS)67
-rw-r--r--Build/source/libs/gmp/gmp-src/README (renamed from Build/source/libs/gmp/gmp-6.0.0/README)7
-rw-r--r--Build/source/libs/gmp/gmp-src/acinclude.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/acinclude.m4)60
-rw-r--r--Build/source/libs/gmp/gmp-src/assert.c (renamed from Build/source/libs/gmp/gmp-6.0.0/assert.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/bootstrap.c (renamed from Build/source/libs/gmp/gmp-6.0.0/bootstrap.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/compat.c (renamed from Build/source/libs/gmp/gmp-6.0.0/compat.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/config.in (renamed from Build/source/libs/gmp/gmp-6.0.0/config.in)13
-rwxr-xr-xBuild/source/libs/gmp/gmp-src/configgmp.guess (renamed from Build/source/libs/gmp/gmp-6.0.0/configgmp.guess)158
-rwxr-xr-xBuild/source/libs/gmp/gmp-src/configgmp.sub (renamed from Build/source/libs/gmp/gmp-6.0.0/configgmp.sub)8
-rw-r--r--Build/source/libs/gmp/gmp-src/configure.ac (renamed from Build/source/libs/gmp/gmp-6.0.0/configure.ac)186
-rw-r--r--Build/source/libs/gmp/gmp-src/errno.c (renamed from Build/source/libs/gmp/gmp-6.0.0/errno.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/extract-dbl.c (renamed from Build/source/libs/gmp/gmp-6.0.0/extract-dbl.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/gen-bases.c (renamed from Build/source/libs/gmp/gmp-6.0.0/gen-bases.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/gen-fac.c (renamed from Build/source/libs/gmp/gmp-6.0.0/gen-fac.c)6
-rw-r--r--Build/source/libs/gmp/gmp-src/gen-fib.c (renamed from Build/source/libs/gmp/gmp-6.0.0/gen-fib.c)10
-rw-r--r--Build/source/libs/gmp/gmp-src/gen-jacobitab.c (renamed from Build/source/libs/gmp/gmp-6.0.0/gen-jacobitab.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/gen-psqr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/gen-psqr.c)23
-rw-r--r--Build/source/libs/gmp/gmp-src/gen-trialdivtab.c (renamed from Build/source/libs/gmp/gmp-6.0.0/gen-trialdivtab.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/gmp-h.in (renamed from Build/source/libs/gmp/gmp-6.0.0/gmp-h.in)80
-rw-r--r--Build/source/libs/gmp/gmp-src/gmp-impl.h (renamed from Build/source/libs/gmp/gmp-6.0.0/gmp-impl.h)215
-rw-r--r--Build/source/libs/gmp/gmp-src/gmpxx.h (renamed from Build/source/libs/gmp/gmp-6.0.0/gmpxx.h)200
-rw-r--r--Build/source/libs/gmp/gmp-src/invalid.c (renamed from Build/source/libs/gmp/gmp-6.0.0/invalid.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/longlong.h (renamed from Build/source/libs/gmp/gmp-6.0.0/longlong.h)208
-rw-r--r--Build/source/libs/gmp/gmp-src/memory.c (renamed from Build/source/libs/gmp/gmp-6.0.0/memory.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mini-gmp/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mini-gmp/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mini-gmp/mini-gmp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mini-gmp/mini-gmp.c)86
-rw-r--r--Build/source/libs/gmp/gmp-src/mini-gmp/mini-gmp.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mini-gmp/mini-gmp.h)3
-rw-r--r--Build/source/libs/gmp/gmp-src/mp_bpl.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mp_bpl.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mp_clz_tab.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mp_clz_tab.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mp_dv_tab.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mp_dv_tab.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mp_get_fns.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mp_get_fns.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mp_minv_tab.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mp_minv_tab.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mp_set_fns.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mp_set_fns.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/Makefile.am (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/Makefile.am)4
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/abs.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/abs.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/add.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/add.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/add_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/add_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/ceilfloor.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/ceilfloor.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/clear.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/clear.c)4
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/clears.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/clears.c)6
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/cmp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/cmp.c)45
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/cmp_d.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/cmp_d.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/cmp_si.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/cmp_si.c)46
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/cmp_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/cmp_ui.c)50
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/cmp_z.c46
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/div.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/div.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/div_2exp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/div_2exp.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/div_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/div_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/dump.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/dump.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/eq.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/eq.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/fits_s.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/fits_s.h)7
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/fits_sint.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/fits_sint.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/fits_slong.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/fits_slong.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/fits_sshort.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/fits_sshort.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/fits_u.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/fits_u.h)6
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/fits_uint.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/fits_uint.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/fits_ulong.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/fits_ulong.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/fits_ushort.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/fits_ushort.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/get_d.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/get_d.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/get_d_2exp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/get_d_2exp.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/get_dfl_prec.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/get_dfl_prec.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/get_prc.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/get_prc.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/get_si.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/get_si.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/get_str.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/get_str.c)32
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/get_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/get_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/init.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/init.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/init2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/init2.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/inits.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/inits.c)4
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/inp_str.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/inp_str.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/int_p.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/int_p.c)25
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/iset.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/iset.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/iset_d.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/iset_d.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/iset_si.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/iset_si.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/iset_str.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/iset_str.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/iset_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/iset_ui.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/mul.c)7
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/mul_2exp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/mul_2exp.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/mul_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/mul_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/neg.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/neg.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/out_str.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/out_str.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/pow_ui.c84
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/random2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/random2.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/reldiff.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/reldiff.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/set.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/set.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/set_d.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/set_d.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/set_dfl_prec.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/set_dfl_prec.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/set_prc.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/set_prc.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/set_prc_raw.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/set_prc_raw.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/set_q.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/set_q.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/set_si.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/set_si.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/set_str.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/set_str.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/set_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/set_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/set_z.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/set_z.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/size.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/size.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/sqrt.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/sqrt.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/sqrt_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/sqrt_ui.c)18
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/sub.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/sub.c)111
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/sub_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/sub_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/swap.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/swap.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/trunc.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/trunc.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/ui_div.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/ui_div.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/ui_sub.c282
-rw-r--r--Build/source/libs/gmp/gmp-src/mpf/urandomb.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/urandomb.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/Makeasm.am (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/Makeasm.am)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/Makefile.am (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/Makefile.am)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/alpha-defs.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/alpha-defs.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/aorslsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/aorslsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/aorslsh2_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/aorslsh2_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/bdiv_dbm1c.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/bdiv_dbm1c.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/cntlz.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/cntlz.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/com.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/com.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/default.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/default.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/dive_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/dive_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/divrem_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/divrem_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev5/diveby3.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev5/diveby3.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev5/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev5/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/aorslsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/aorslsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/aorsmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/mod_1_4.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/mod_1_4.asm)3
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/addmul_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/addmul_3.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_3.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/addmul_4.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_4.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/submul_1.asm)0
-rwxr-xr-xBuild/source/libs/gmp/gmp-src/mpn/alpha/ev6/slot.pl (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/slot.pl)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev67/gcd_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev67/gcd_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev67/hamdist.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev67/hamdist.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/ev67/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev67/popcount.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/invert_limb.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/invert_limb.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/mod_34lsub1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/mod_34lsub1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/mode1o.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/mode1o.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/sec_tabselect.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/sec_tabselect.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/sqr_diag_addlsh1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/sqr_diag_addlsh1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/umul.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/umul.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/alpha/unicos.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/unicos.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/README)6
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/aorslsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/aorslsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/aorsmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/arm-defs.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/arm-defs.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/bdiv_dbm1c.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/bdiv_dbm1c.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/cnd_aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/cnd_aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/com.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/com.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/dive_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/dive_1.asm)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/invert_limb.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/invert_limb.asm)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/logops_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/logops_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/lshiftc.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/lshiftc.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/mod_34lsub1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/mod_34lsub1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/mode1o.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/mode1o.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/neon/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/neon/hamdist.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/hamdist.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/neon/lorrshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/lorrshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/neon/lshiftc.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/lshiftc.asm)4
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/neon/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/popcount.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/neon/sec_tabselect.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/sec_tabselect.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/rsh1aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/rsh1aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/sec_tabselect.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/sec_tabselect.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/udiv.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/udiv.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v5/gcd_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v5/gcd_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v5/mod_1_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v5/mod_1_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v5/mod_1_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v5/mod_1_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v6/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/addmul_1.asm)5
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v6/addmul_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/addmul_2.asm)82
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v6/addmul_3.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/addmul_3.asm)5
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v6/dive_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/dive_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v6/gmp-mparam.h188
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v6/mode1o.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/mode1o.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v6/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/mul_1.asm)5
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v6/mul_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/mul_2.asm)5
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v6/popham.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/popham.asm)1
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v6/sqr_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/sqr_basecase.asm)334
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v6/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v6t2/divrem_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6t2/divrem_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v6t2/gcd_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6t2/gcd_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/cnd_aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/cnd_aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/com.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/com.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/gmp-mparam.h193
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/logops_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/logops_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/aorsorrlsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/aorsorrlsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/aorsorrlsh2_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/aorsorrlsh2_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/aorsorrlshC_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/aorsorrlshC_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/com.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/com.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/rsh1aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/rsh1aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora7/gmp-mparam.h194
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora8/gmp-mparam.h207
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora9/gmp-mparam.h209
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm64/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm64/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/aorsmul_1.asm)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm64/bdiv_dbm1c.asm110
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm64/cnd_aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/cnd_aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm64/com.asm83
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm64/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm64/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm64/gcd_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/gcd_1.asm)10
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm64/gmp-mparam.h241
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm64/hamdist.asm180
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm64/invert_limb.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/invert_limb.asm)26
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm64/logops_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/logops_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm64/lshift.asm122
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm64/mod_34lsub1.asm123
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm64/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/mul_1.asm)4
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm64/popcount.asm156
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm64/rshift.asm121
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/arm64/sec_tabselect.asm121
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/asm-defs.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/asm-defs.m4)0
-rw-r--r--[-rwxr-xr-x]Build/source/libs/gmp/gmp-src/mpn/cpp-ccas (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cpp-ccas)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/add_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/add_n.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/cfp/addmul_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/addmul_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/cfp/mul_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/mul_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/cfp/mulwwc90.s (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/mulwwc90.s)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/cfp/mulwwj90.s (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/mulwwj90.s)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/cfp/submul_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/submul_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/hamdist.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/hamdist.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/ieee/addmul_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/addmul_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/ieee/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/ieee/invert_limb.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/invert_limb.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/ieee/mul_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/mul_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/ieee/mul_basecase.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/mul_basecase.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/ieee/sqr_basecase.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/sqr_basecase.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/ieee/submul_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/submul_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/lshift.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/lshift.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/mulww.f (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/mulww.f)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/popcount.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/popcount.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/rshift.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/rshift.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/cray/sub_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/cray/sub_n.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/add.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/add_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/add_err1_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_err1_n.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/add_err2_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_err2_n.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/add_err3_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_err3_n.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/add_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_n.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/add_n_sub_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_n_sub_n.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/addmul_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/addmul_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/bdiv_dbm1c.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bdiv_dbm1c.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/bdiv_q.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bdiv_q.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/bdiv_q_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bdiv_q_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/bdiv_qr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bdiv_qr.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/binvert.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/binvert.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/broot.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/broot.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/brootinv.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/brootinv.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/bsqrt.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bsqrt.c)6
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/bsqrtinv.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bsqrtinv.c)13
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/cmp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/cmp.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/cnd_add_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/cnd_add_n.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/cnd_sub_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/cnd_sub_n.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/cnd_swap.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpf/pow_ui.c)33
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/com.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/com.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/comb_tables.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/comb_tables.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/copyd.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/copyd.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/copyi.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/copyi.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/dcpi1_bdiv_q.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_bdiv_q.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/dcpi1_bdiv_qr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_bdiv_qr.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/dcpi1_div_q.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_div_q.c)4
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/dcpi1_div_qr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_div_qr.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/dcpi1_divappr_q.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_divappr_q.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/div_q.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_q.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_1n_pi1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1n_pi1.c)4
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_1n_pi2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1n_pi2.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_1u_pi2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1u_pi2.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_2.c)4
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_2n_pi1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_2n_pi1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_2u_pi1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_2u_pi1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/dive_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dive_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/diveby3.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/diveby3.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/divexact.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divexact.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/divis.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divis.c)10
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/divrem.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divrem.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/divrem_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divrem_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/divrem_2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divrem_2.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/dump.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dump.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/fib2_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/fib2_ui.c)4
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/gcd.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcd.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/gcd_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcd_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/gcd_subdiv_step.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcd_subdiv_step.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/gcdext.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcdext.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/gcdext_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcdext_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/gcdext_lehmer.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcdext_lehmer.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/get_d.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/get_d.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/get_str.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/get_str.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/hgcd.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/hgcd2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd2.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/hgcd2_jacobi.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd2_jacobi.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/hgcd_appr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_appr.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/hgcd_jacobi.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_jacobi.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/hgcd_matrix.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_matrix.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/hgcd_reduce.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_reduce.c)14
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/hgcd_step.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_step.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/invert.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/invert.c)32
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/invertappr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/invertappr.c)169
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/jacbase.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/jacbase.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/jacobi.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/jacobi.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/jacobi_2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/jacobi_2.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/logops_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/logops_n.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/lshift.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/lshift.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/lshiftc.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/lshiftc.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/matrix22_mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/matrix22_mul.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/matrix22_mul1_inverse_vector.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/matrix22_mul1_inverse_vector.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mod_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mod_1_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1_1.c)4
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mod_1_2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1_2.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mod_1_3.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1_3.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mod_1_4.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1_4.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mod_34lsub1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_34lsub1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mode1o.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mode1o.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mu_bdiv_q.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_bdiv_q.c)10
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mu_bdiv_qr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_bdiv_qr.c)37
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mu_div_q.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_div_q.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mu_div_qr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_div_qr.c)15
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mu_divappr_q.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_divappr_q.c)11
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul.c)31
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mul_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mul_basecase.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul_basecase.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mul_fft.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul_fft.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mul_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul_n.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mullo_basecase.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mullo_basecase.c)53
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mullo_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mullo_n.c)12
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mulmid.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mulmid.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mulmid_basecase.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mulmid_basecase.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mulmid_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mulmid_n.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/mulmod_bnm1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mulmod_bnm1.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/neg.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/neg.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/nussbaumer_mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/nussbaumer_mul.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/perfpow.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/perfpow.c)162
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/perfsqr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/perfsqr.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/popham.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/popham.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/pow_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/pow_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/powlo.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/powlo.c)52
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/powm.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/powm.c)3
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/pre_divrem_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/pre_divrem_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/pre_mod_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/pre_mod_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/random.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/random.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/random2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/random2.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/redc_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/redc_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/redc_2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/redc_2.c)3
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/redc_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/redc_n.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/remove.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/remove.c)19
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/rootrem.c516
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/rshift.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/rshift.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sbpi1_bdiv_q.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_bdiv_q.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sbpi1_bdiv_qr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_bdiv_qr.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sbpi1_div_q.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_div_q.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sbpi1_div_qr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_div_qr.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sbpi1_divappr_q.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_divappr_q.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/scan0.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/scan0.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/scan1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/scan1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sec_aors_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_aors_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sec_div.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_div.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sec_invert.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_invert.c)17
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sec_mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_mul.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sec_pi1_div.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_pi1_div.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sec_powm.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_powm.c)60
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sec_sqr.c77
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sec_tabselect.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_tabselect.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/set_str.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/set_str.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sizeinbase.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sizeinbase.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sqr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sqr.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sqr_basecase.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sqr_basecase.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sqrlo.c240
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sqrlo_basecase.c181
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sqrmod_bnm1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sqrmod_bnm1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sqrtrem.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sqrtrem.c)300
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sub.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sub_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sub_err1_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_err1_n.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sub_err2_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_err2_n.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sub_err3_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_err3_n.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/sub_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_n.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/submul_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/submul_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/tdiv_qr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/tdiv_qr.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom22_mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom22_mul.c)19
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom2_sqr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom2_sqr.c)18
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom32_mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom32_mul.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom33_mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom33_mul.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom3_sqr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom3_sqr.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom42_mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom42_mul.c)17
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom42_mulmid.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom42_mulmid.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom43_mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom43_mul.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom44_mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom44_mul.c)8
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom4_sqr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom4_sqr.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom52_mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom52_mul.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom53_mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom53_mul.c)27
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom54_mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom54_mul.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom62_mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom62_mul.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom63_mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom63_mul.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom6_sqr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom6_sqr.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom6h_mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom6h_mul.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom8_sqr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom8_sqr.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom8h_mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom8h_mul.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom_couple_handling.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_couple_handling.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom_eval_dgr3_pm1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_dgr3_pm1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom_eval_dgr3_pm2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_dgr3_pm2.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom_eval_pm1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_pm1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom_eval_pm2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_pm2.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom_eval_pm2exp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_pm2exp.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom_eval_pm2rexp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_pm2rexp.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom_interpolate_12pts.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_12pts.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom_interpolate_16pts.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_16pts.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom_interpolate_5pts.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_5pts.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom_interpolate_6pts.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_6pts.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom_interpolate_7pts.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_7pts.c)7
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/toom_interpolate_8pts.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_8pts.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/trialdiv.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/trialdiv.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/udiv_w_sdiv.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/udiv_w_sdiv.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/zero.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/zero.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/generic/zero_p.c34
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/add_n_sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/add_n_sub_n.asm)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/addmul_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/addmul_2.asm)235
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/aors_n.asm852
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/aorsorrlsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/aorsorrlsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/aorsorrlsh2_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/aorsorrlsh2_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/aorsorrlshC_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/aorsorrlshC_n.asm)139
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/bdiv_dbm1c.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/bdiv_dbm1c.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/cnd_aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/cnd_aors_n.asm)59
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/dive_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/dive_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/divrem_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/divrem_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/divrem_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/divrem_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/gcd_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/gcd_1.asm)136
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/gmp-mparam.h204
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/hamdist.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/hamdist.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/ia64-defs.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/ia64-defs.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/invert_limb.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/invert_limb.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/logops_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/logops_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/lorrshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/lorrshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/lshiftc.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/lshiftc.asm)4
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/mod_34lsub1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/mod_34lsub1.asm)35
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/mode1o.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/mode1o.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/mul_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/mul_2.asm)171
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/popcount.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/rsh1aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/rsh1aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/sec_tabselect.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/sec_tabselect.asm)52
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/sqr_diag_addlsh1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/sqr_diag_addlsh1.asm)56
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/ia64/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/lisp/gmpasm-mode.el (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/lisp/gmpasm-mode.el)0
-rw-r--r--[-rwxr-xr-x]Build/source/libs/gmp/gmp-src/mpn/m4-ccas (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m4-ccas)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m68k/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m68k/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m68k/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m68k/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m68k/m68k-defs.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/m68k-defs.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m68k/mc68020/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/aorsmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m68k/mc68020/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m68k/mc68020/udiv.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/udiv.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m68k/mc68020/umul.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/umul.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m68k/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m68k/t-m68k-defs.pl (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/t-m68k-defs.pl)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m88k/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m88k/add_n.s (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/add_n.s)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m88k/mc88110/add_n.S (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/add_n.S)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m88k/mc88110/addmul_1.s (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/addmul_1.s)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m88k/mc88110/mul_1.s (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/mul_1.s)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m88k/mc88110/sub_n.S (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/sub_n.S)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m88k/mul_1.s (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mul_1.s)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/m88k/sub_n.s (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/sub_n.s)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/minithres/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/minithres/gmp-mparam.h)4
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips32/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips32/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips32/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips32/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips32/mips-defs.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/mips-defs.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips32/mips.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/mips.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips32/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips32/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips32/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips32/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips32/umul.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/umul.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips64/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips64/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips64/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips64/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips64/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips64/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips64/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips64/sqr_diagonal.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/sqr_diagonal.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips64/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips64/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/mips64/umul.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/umul.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/pa7100/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/pa7100/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/pa7100/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/pa7100/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/pa7100/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/pa7100/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/sqr_diagonal.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/sqr_diagonal.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/udiv.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/udiv.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/umul.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/umul.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/hppa2_0/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa2_0/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/hppa2_0/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa2_0/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/hppa2_0/sqr_diagonal.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa2_0/sqr_diagonal.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/hppa2_0/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa2_0/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/pa-defs.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/pa-defs.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa32/udiv.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/udiv.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa64/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa64/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa64/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa64/aorslsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/aorslsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa64/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa64/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa64/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa64/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa64/sqr_diagonal.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/sqr_diagonal.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa64/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa64/udiv.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/udiv.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/pa64/umul.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/umul.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/power/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/power/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/power/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/power/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/power/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/power/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/power/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/power/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/power/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/power/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/power/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/power/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/power/sdiv.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/power/sdiv.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/power/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/power/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/power/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/power/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/power/umul.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/power/umul.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/750/com.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/750/com.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/750/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/750/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/750/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/750/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/750/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/750/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/addlsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/addlsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/addmul_1.asm)8
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/aix.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/aix.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/bdiv_dbm1c.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/bdiv_dbm1c.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/darwin.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/darwin.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/diveby3.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/diveby3.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/divrem_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/divrem_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/eabi.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/eabi.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/elf.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/elf.m4)7
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/gmp-mparam.h)205
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/invert_limb.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/invert_limb.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/lshift.asm)6
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/lshiftc.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/lshiftc.asm)6
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/mod_34lsub1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/mod_34lsub1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/mode1o.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/mode1o.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/p3-p7/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p3-p7/aors_n.asm)21
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/p3/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p3/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/p4/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p4/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/p5/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p5/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/p6/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p6/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/p7/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p7/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/powerpc-defs.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/powerpc-defs.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/rshift.asm)6
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/sec_tabselect.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/sec_tabselect.asm)6
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/sqr_diag_addlsh1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/sqr_diag_addlsh1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/sublsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/sublsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/submul_1.asm)8
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/umul.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/umul.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/vmx/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/copyd.asm)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/vmx/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/copyi.asm)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/vmx/logops_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/logops_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/vmx/mod_34lsub1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/mod_34lsub1.asm)8
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc32/vmx/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/popcount.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/aix.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/aix.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/com.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/com.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/darwin.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/darwin.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/elf.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/elf.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/logops_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/logops_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/lshiftc.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/lshiftc.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/p4/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/p4/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/sqr_diagonal.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/sqr_diagonal.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aorsmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/aorsorrlsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aorsorrlsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/aorsorrlsh2_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aorsorrlsh2_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/aorsorrlshC_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aorsorrlshC_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/bdiv_dbm1c.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/bdiv_dbm1c.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/cnd_aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/cnd_aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/dive_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/dive_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/divrem_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/divrem_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/divrem_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/divrem_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/gcd_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/gcd_1.asm)3
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/invert_limb.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/invert_limb.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/mod_1_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mod_1_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/mod_1_4.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mod_1_4.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/mod_34lsub1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mod_34lsub1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/mode1o.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mode1o.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/mul_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mul_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p3/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p3/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p4/gmp-mparam.h212
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p5/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p5/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p6/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p6/aorsmul_1.asm)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p6/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p6/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p6/mul_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p6/mul_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/aormul_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aormul_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/aorsorrlsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aorsorrlsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/aorsorrlsh2_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aorsorrlsh2_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/aorsorrlshC_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aorsorrlshC_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/gcd_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/gcd_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/gmp-mparam.h245
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p8/invert_limb.asm53
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/rsh1aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/rsh1aors_n.asm)1
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/sqr_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/sqr_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/p6/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p6/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/p6/lshiftc.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p6/lshiftc.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/p6/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p6/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/p7/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p7/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/p7/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p7/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/p7/hamdist.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p7/hamdist.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/p7/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p7/popcount.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/sec_tabselect.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/sec_tabselect.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/umul.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/umul.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/powerpc64/vmx/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/vmx/popcount.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/aorslsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/aorslsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/bdiv_dbm1c.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/bdiv_dbm1c.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/mul_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/mul_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/sqr_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/sqr_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/logops_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/logops_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/lshiftc.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/lshiftc.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_32/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/README)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/aorrlsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/aorrlsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/bdiv_dbm1c.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/bdiv_dbm1c.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/invert_limb.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/invert_limb.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/logops_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/logops_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/lshiftc.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/lshiftc.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/mod_34lsub1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/mod_34lsub1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/mul_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/mul_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/sqr_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/sqr_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/sublsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/sublsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/s390_64/z10/gmp-mparam.h233
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sh/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sh/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sh/sh2/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sh/sh2/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sh/sh2/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sh/sh2/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sh/sh2/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sh/sh2/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sh/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sh/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/sparc-defs.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/sparc-defs.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/udiv.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/udiv.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/udiv_nfp.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/udiv_nfp.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/sqr_diagonal.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/sqr_diagonal.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/umul.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/umul.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/supersparc/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/supersparc/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/supersparc/udiv.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/supersparc/udiv.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/udiv.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/udiv.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/umul.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/umul.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/sqr_diagonal.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/sqr_diagonal.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/udiv.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/udiv.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/dive_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/dive_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/divrem_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/divrem_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/gcd_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/gcd_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/lshiftc.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/lshiftc.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/mod_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/mod_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/mod_1_4.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/mod_1_4.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/mode1o.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/mode1o.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/sec_tabselect.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/sec_tabselect.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/sparc64.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/sparc64.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/addmul_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/addmul_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/lshiftc.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/lshiftc.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/sqr_diagonal.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/sqr_diagonal.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc34/gmp-mparam.h222
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/addlsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/addlsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/addlsh2_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/addlsh2_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/addlshC_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/addlshC_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/rsblsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/rsblsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/rsblsh2_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/rsblsh2_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/rsblshC_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/rsblshC_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/sublsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/sublsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/sublsh2_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/sublsh2_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/sublshC_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/sublshC_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/aormul_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/aormul_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/aormul_4.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/aormul_4.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/aorslsh_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/aorslsh_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/bdiv_dbm1c.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/bdiv_dbm1c.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/cnd_aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/cnd_aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/dive_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/dive_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/hamdist.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/hamdist.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/invert_limb.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/invert_limb.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/missing.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/missing.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/missing.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/missing.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/mod_1_4.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/mod_1_4.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/mod_34lsub1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/mod_34lsub1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/mode1o.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/mode1o.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/popcount.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/sqr_diag_addlsh1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/sqr_diag_addlsh1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/thumb/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/thumb/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/thumb/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/thumb/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/vax/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/vax/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/vax/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/vax/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/vax/elf.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/vax/elf.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/vax/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/vax/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/vax/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/vax/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/vax/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/vax/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/vax/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/vax/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/vax/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/vax/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/vax/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/vax/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/aorsmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/aorrlsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aorrlsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/aorrlsh2_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aorrlsh2_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/aorrlshC_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aorrlshC_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/aorslshC_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aorslshC_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/bdiv_q_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/bdiv_q_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/cnd_add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/cnd_add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/cnd_sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/cnd_sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/dive_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/dive_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/gmp-mparam.h207
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/logops_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/logops_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/lshiftc.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/lshiftc.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/mmx/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mmx/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/mmx/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mmx/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/mmx/hamdist.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mmx/hamdist.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/mod_34lsub1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mod_34lsub1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/mode1o.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mode1o.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/aorsmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/bdiv_dbm1c.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/bdiv_dbm1c.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/divrem_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/divrem_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/mod_1_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/mod_1_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/mod_1_4.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/mod_1_4.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/mul_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/mul_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/popcount.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/sqr_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/sqr_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/sublsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sublsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/atom/sublsh2_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sublsh2_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/bd1/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bd1/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/bd2/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bd2/gmp-mparam.h)8
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/bdiv_dbm1c.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bdiv_dbm1c.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/bdiv_q_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bdiv_q_1.asm)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/bobcat/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bobcat/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/cnd_aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/cnd_aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/core2/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/core2/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/coreihwl/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/coreihwl/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/coreinhm/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/coreinhm/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/coreisbr/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/coreisbr/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/darwin.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/darwin.m4)28
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/dive_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/dive_1.asm)1
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/divrem_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/divrem_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/divrem_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/divrem_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/fat/com.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/com.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/fat/fat.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/fat.c)26
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/fat/fat_entry.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/fat_entry.asm)41
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/fat/gcd_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/gcd_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/fat/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/fat/lshiftc.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/lshiftc.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/fat/mod_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/fat/mod_1_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/fat/mod_1_2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1_2.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/fat/mod_1_4.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1_4.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/fat/mode1o.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mode1o.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/fat/mullo_basecase.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mullo_basecase.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/fat/redc_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/redc_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/fat/redc_2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/redc_2.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/geode/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/geode/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/i486/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/i486/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k10/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k10/gmp-mparam.h)7
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/aorsmul_1.asm)0
-rwxr-xr-xBuild/source/libs/gmp/gmp-src/mpn/x86/k6/cross.pl (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/cross.pl)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/divrem_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/divrem_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/gcd_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/gcd_1.asm)13
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/k62mmx/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/k62mmx/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/k62mmx/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/k62mmx/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/k62mmx/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/k62mmx/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/mmx/com.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/com.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/mmx/dive_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/dive_1.asm)1
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/mmx/logops_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/logops_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/mmx/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/mmx/popham.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/popham.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/mmx/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/mod_34lsub1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mod_34lsub1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/mode1o.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mode1o.asm)1
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/mul_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mul_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/pre_mod_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/pre_mod_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k6/sqr_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/sqr_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/addlsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/addlsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/aorsmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/bdiv_q_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/bdiv_q_1.asm)1
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/dive_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/dive_1.asm)1
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/gcd_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/gcd_1.asm)23
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/gmp-mparam.h253
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/invert_limb.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/invert_limb.asm)5
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/com.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/com.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/divrem_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/divrem_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/popham.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/popham.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/mod_1_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mod_1_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/mod_1_4.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mod_1_4.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/mod_34lsub1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mod_34lsub1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/mode1o.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mode1o.asm)1
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/mul_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mul_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/sqr_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/sqr_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k7/sublsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/sublsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/k8/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k8/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/mmx/sec_tabselect.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/mmx/sec_tabselect.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/mod_34lsub1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/mod_34lsub1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/mul_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/mul_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/nano/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/nano/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/aorsmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/bdiv_q_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/bdiv_q_1.asm)1
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/dive_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/dive_1.asm)1
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/gcd_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/gcd_1.asm)11
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/lshsub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/lshsub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/mmx/divrem_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/divrem_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/mmx/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/mmx/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/mmx/popham.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/popham.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/mmx/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/mod_34lsub1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mod_34lsub1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/mode1o.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mode1o.asm)1
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/mul_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mul_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/p3mmx/popham.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/p3mmx/popham.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/sqr_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sqr_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/gmp-mparam.h)19
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/mod_1_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mod_1_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/mod_1_4.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mod_1_4.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/mul_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mul_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/popcount.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/sqr_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/sqr_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/aorsmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/bdiv_q_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/bdiv_q_1.asm)8
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/com.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/com.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/dive_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/dive_1.asm)18
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/hamdist.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/hamdist.asm)17
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/logops_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/logops_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mmx/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mmx/hamdist.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/hamdist.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mmx/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mmx/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mmx/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mod_34lsub1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mod_34lsub1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mode1o.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mode1o.asm)17
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mul_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mul_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mul_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mul_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/popcount.asm)16
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium/sqr_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/sqr_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/mmx/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/mmx/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/mmx/popham.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/mmx/popham.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/mmx/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/mmx/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/addlsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/addlsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/bdiv_dbm1c.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/bdiv_dbm1c.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/bdiv_q_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/bdiv_q_1.asm)1
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/cnd_add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/cnd_add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/cnd_sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/cnd_sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/dive_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/dive_1.asm)1
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/divrem_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/divrem_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/mod_1_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mod_1_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/mod_1_4.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mod_1_4.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/mod_34lsub1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mod_34lsub1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/mode1o.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mode1o.asm)1
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/mul_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mul_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/popcount.asm)11
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/rsh1add_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/rsh1add_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/sqr_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/sqr_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/sub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/sub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/submul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/submul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/sec_tabselect.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/sec_tabselect.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/sqr_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/sqr_basecase.asm)0
-rwxr-xr-xBuild/source/libs/gmp/gmp-src/mpn/x86/t-zdisp.sh (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/t-zdisp.sh)0
-rwxr-xr-xBuild/source/libs/gmp/gmp-src/mpn/x86/t-zdisp2.pl (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/t-zdisp2.pl)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/udiv.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/udiv.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/umul.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/umul.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86/x86-defs.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86/x86-defs.m4)41
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/addaddmul_1msb0.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/addaddmul_1msb0.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/addmul_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/addmul_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/aorrlsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/aorrlsh2_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlsh2_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/aorrlshC_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlshC_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/aorrlsh_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlsh_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/aors_err1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aors_err1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/aors_err2_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aors_err2_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/aors_err3_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aors_err3_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorsmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/addmul_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/addmul_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/aorrlsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/aorrlsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/aorrlsh2_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/aorrlsh2_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/aorsmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/com.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/com.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/dive_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/dive_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/gmp-mparam.h216
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/lshiftc.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/lshiftc.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/mul_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/mul_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/popcount.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/redc_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/redc_1.asm)5
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/rsh1aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/rsh1aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/sublsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/sublsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/README)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/aorrlsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/aorrlsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/aorsmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/com.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/com.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/gcd_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/gcd_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/gmp-mparam.h241
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/hamdist.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/hamdist.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/mul_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/mul_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/mul_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/mul_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/popcount.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/sec_tabselect.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/sec_tabselect.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/sublsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/sublsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bd2/gmp-mparam.h256
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bdiv_dbm1c.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bdiv_dbm1c.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bdiv_q_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bdiv_q_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/aorsmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/gmp-mparam.h219
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/mul_1.asm)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/mul_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/mul_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/redc_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/redc_1.asm)5
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/sqr_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/sqr_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/cnd_aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/cnd_aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/com.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/com.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/aorrlsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aorrlsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/aorrlsh2_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aorrlsh2_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/aorrlsh_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aorrlsh_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/aors_err1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aors_err1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aorsmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/divrem_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/divrem_1.asm)8
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/gcd_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/gcd_1.asm)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/gmp-mparam.h)216
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/lshiftc.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/lshiftc.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/mul_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/mul_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/mullo_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/mullo_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/popcount.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/redc_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/redc_1.asm)5
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/rsh1aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/rsh1aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/sec_tabselect.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sec_tabselect.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/sqr_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sqr_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/sublsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sublsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/sublsh2_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sublsh2_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/sublshC_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sublshC_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/addmul_1.asm203
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/gmp-mparam.h229
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/mul_1.asm193
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/mul_basecase.asm363
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/sqr_basecase.asm840
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/addmul_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/addmul_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/aorsmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/gmp-mparam.h)207
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/mul_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/mul_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/mul_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/mul_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/mullo_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/mullo_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/redc_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/redc_1.asm)8
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/sqr_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/sqr_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/aorrlsh_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/aorrlsh_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/aorsmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/gmp-mparam.h233
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/hamdist.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/hamdist.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/popcount.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/redc_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/redc_1.asm)5
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/sec_tabselect.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/sec_tabselect.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/addmul_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/addmul_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/aorrlsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorrlsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/aorrlsh2_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorrlsh2_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/aorrlshC_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorrlshC_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/aorrlsh_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorrlsh_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorsmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/divrem_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/divrem_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/gmp-mparam.h231
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/lshiftc.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/lshiftc.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/mul_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/mul_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/mul_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/mul_basecase.asm)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/mullo_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/mullo_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/popcount.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/redc_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/redc_1.asm)5
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/rsh1aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/rsh1aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/sec_tabselect.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/sec_tabselect.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/sqr_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/sqr_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/darwin.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/darwin.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/div_qr_1n_pi1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/div_qr_1n_pi1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/div_qr_2n_pi1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/div_qr_2n_pi1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/div_qr_2u_pi1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/div_qr_2u_pi1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/dive_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/dive_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/divrem_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/divrem_1.asm)18
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/divrem_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/divrem_2.asm)3
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/dos64.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/dos64.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fastavx/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastavx/copyd.asm)11
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fastavx/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastavx/copyi.asm)11
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/README (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/README)3
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/com-palignr.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/com-palignr.asm)16
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/com.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/com.asm)18
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/copyd-palignr.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/copyd-palignr.asm)17
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/copyd.asm)33
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/copyi-palignr.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/copyi-palignr.asm)11
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/copyi.asm)51
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/lshift-movdqu2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/lshift-movdqu2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/lshiftc-movdqu2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/lshiftc-movdqu2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/lshiftc.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/lshiftc.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/rshift-movdqu2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/rshift-movdqu2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/sec_tabselect.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/sec_tabselect.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/fat.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/fat.c)56
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/fat_entry.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/fat_entry.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/mod_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/mod_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/mul_basecase.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/mul_basecase.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/mullo_basecase.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/mullo_basecase.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/redc_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/redc_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/redc_2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/redc_2.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/sqr_basecase.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/sqr_basecase.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/gcd_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/gcd_1.asm)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/gmp-mparam.h)1
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/invert_limb.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/invert_limb.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/invert_limb_table.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/invert_limb_table.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/gcd_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/gcd_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/gmp-mparam.h237
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/hamdist.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/hamdist.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/lshiftc.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/lshiftc.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/popcount.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/sec_tabselect.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/sec_tabselect.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/aorrlsh_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/aorrlsh_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/div_qr_1n_pi1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/div_qr_1n_pi1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/mul_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/mul_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/mullo_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/mullo_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/mulmid_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/mulmid_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/redc_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/redc_1.asm)3
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/sqr_basecase.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/sqr_basecase.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/logops_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/logops_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/lshiftc.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/lshiftc.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/lshsub_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/lshsub_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/missing-call.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/missing-call.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/missing-inline.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/missing-inline.m4)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/missing.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/missing.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/mod_1_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mod_1_1.asm)3
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/mod_1_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mod_1_2.asm)3
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/mod_1_4.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mod_1_4.asm)3
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/mod_34lsub1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mod_34lsub1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/mode1o.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mode1o.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/mul_2.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mul_2.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/mulx/adx/addmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mulx/adx/addmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/mulx/aorsmul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mulx/aorsmul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/mulx/mul_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mulx/mul_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/nano/copyd.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/copyd.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/nano/copyi.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/copyi.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/nano/dive_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/dive_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/nano/gcd_1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/gcd_1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/nano/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/nano/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/popcount.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/aorslsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/aorslsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/aorslsh2_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/aorslsh2_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/aorslshC_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/aorslshC_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/gmp-mparam.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/gmp-mparam.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/lshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/lshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/lshiftc.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/lshiftc.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/mod_34lsub1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/mod_34lsub1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/popcount.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/popcount.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/rsh1aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/rsh1aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/sec_tabselect.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/sec_tabselect.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/popham.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/popham.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/rsh1aors_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/rsh1aors_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/rshift.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/rshift.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/sec_tabselect.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/sec_tabselect.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/skylake/gmp-mparam.h230
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/sqr_diag_addlsh1.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/sqr_diag_addlsh1.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/sublsh1_n.asm (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/sublsh1_n.asm)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpn/x86_64/x86_64-defs.m4 (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/x86_64-defs.m4)78
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/Makefile.am (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/Makefile.am)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/abs.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/abs.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/aors.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/aors.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/canonicalize.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/canonicalize.c)17
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/clear.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_sqr.c)19
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/clears.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/clears.c)10
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/cmp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/cmp.c)75
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/cmp_si.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/cmp_si.c)26
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/cmp_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/cmp_ui.c)13
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/div.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/div.c)81
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/equal.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/equal.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/get_d.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/get_d.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/get_den.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/get_den.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/get_num.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/get_num.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/get_str.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/get_str.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/init.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/init.c)4
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/inits.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/inits.c)4
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/inp_str.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/inp_str.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/inv.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/inv.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/md_2exp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/md_2exp.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/mul.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/neg.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/neg.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/out_str.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/out_str.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/set.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/set.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/set_d.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/set_d.c)21
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/set_den.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/set_den.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/set_f.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/set_f.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/set_num.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/set_num.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/set_si.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/set_si.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/set_str.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/set_str.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/set_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/set_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/set_z.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/set_z.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpq/swap.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/swap.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/2fac_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/2fac_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/Makefile.am (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/Makefile.am)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/abs.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/abs.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/add.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/add.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/add_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/add_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/and.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/and.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/aors.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/aors.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/aors_ui.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/aors_ui.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/aorsmul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/aorsmul.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/aorsmul_i.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/aorsmul_i.c)6
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/array_init.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/array_init.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/bin_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/bin_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/bin_uiui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/bin_uiui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cdiv_q.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_q.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cdiv_q_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_q_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cdiv_qr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_qr.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cdiv_qr_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_qr_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cdiv_r.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_r.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cdiv_r_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_r_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cdiv_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cfdiv_q_2exp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cfdiv_q_2exp.c)7
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cfdiv_r_2exp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cfdiv_r_2exp.c)10
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/clear.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/clear.c)8
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/clears.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/clears.c)6
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/clrbit.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/clrbit.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cmp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cmp.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cmp_d.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cmp_d.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cmp_si.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cmp_si.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cmp_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cmp_ui.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cmpabs.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cmpabs.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cmpabs_d.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cmpabs_d.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cmpabs_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cmpabs_ui.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/com.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/com.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/combit.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/combit.c)5
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cong.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cong.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cong_2exp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cong_2exp.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/cong_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/cong_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/dive_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/dive_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/divegcd.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/divegcd.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/divexact.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/divexact.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/divis.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/divis.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/divis_2exp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/divis_2exp.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/divis_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/divis_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/dump.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/dump.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/export.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/export.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/fac_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/fac_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/fdiv_q.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_q.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/fdiv_q_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_q_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/fdiv_qr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_qr.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/fdiv_qr_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_qr_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/fdiv_r.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_r.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/fdiv_r_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_r_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/fdiv_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/fib2_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/fib2_ui.c)17
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/fib_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/fib_ui.c)15
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/fits_s.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/fits_s.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/fits_sint.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/fits_sint.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/fits_slong.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/fits_slong.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/fits_sshort.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/fits_sshort.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/fits_uint.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/fits_uint.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/fits_ulong.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/fits_ulong.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/fits_ushort.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/fits_ushort.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/gcd.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/gcd.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/gcd_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/gcd_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/gcdext.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/gcdext.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/get_d.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/get_d.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/get_d_2exp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/get_d_2exp.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/get_si.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/get_si.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/get_str.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/get_str.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/get_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/get_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/getlimbn.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/getlimbn.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/hamdist.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/hamdist.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/import.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/import.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/init.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/init.c)4
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/init2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/init2.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/inits.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/inits.c)14
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/inp_raw.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/inp_raw.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/inp_str.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/inp_str.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/invert.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/invert.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/ior.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/ior.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/iset.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/iset.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/iset_d.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/iset_d.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/iset_si.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/iset_si.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/iset_str.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/iset_str.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/iset_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/iset_ui.c)4
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/jacobi.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/jacobi.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/kronsz.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/kronsz.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/kronuz.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/kronuz.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/kronzs.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/kronzs.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/kronzu.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/kronzu.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/lcm.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/lcm.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/lcm_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/lcm_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/limbs_finish.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_finish.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/limbs_modify.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_modify.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/limbs_read.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_read.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/limbs_write.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_write.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/lucnum2_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/lucnum2_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/lucnum_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/lucnum_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/mfac_uiui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/mfac_uiui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/millerrabin.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/millerrabin.c)8
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/mod.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/mod.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/mul.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/mul.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/mul_2exp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/mul_2exp.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/mul_i.h (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/mul_i.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/mul_si.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/mul_si.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/mul_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/mul_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/n_pow_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/n_pow_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/neg.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/neg.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/nextprime.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/nextprime.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/oddfac_1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/oddfac_1.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/out_raw.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/out_raw.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/out_str.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/out_str.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/perfpow.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/perfpow.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/perfsqr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/perfsqr.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/popcount.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/popcount.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/pow_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/pow_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/powm.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/powm.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/powm_sec.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/powm_sec.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/powm_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/powm_ui.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/pprime_p.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/pprime_p.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/primorial_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/primorial_ui.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/prodlimbs.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/prodlimbs.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/random.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/random.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/random2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/random2.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/realloc.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/realloc.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/realloc2.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/realloc2.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/remove.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/remove.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/roinit_n.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/roinit_n.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/root.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/root.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/rootrem.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/rootrem.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/rrandomb.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/rrandomb.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/scan0.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/scan0.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/scan1.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/scan1.c)4
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/set.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/set.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/set_d.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/set_d.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/set_f.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/set_f.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/set_q.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/set_q.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/set_si.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/set_si.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/set_str.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/set_str.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/set_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/set_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/setbit.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/setbit.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/size.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/size.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/sizeinbase.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/sizeinbase.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/sqrt.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/sqrt.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/sqrtrem.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/sqrtrem.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/sub.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/sub.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/sub_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/sub_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/swap.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpq/clear.c)13
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/tdiv_q.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_q.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/tdiv_q_2exp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_q_2exp.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/tdiv_q_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_q_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/tdiv_qr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_qr.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/tdiv_qr_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_qr_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/tdiv_r.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_r.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/tdiv_r_2exp.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_r_2exp.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/tdiv_r_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_r_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/tdiv_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/tstbit.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/tstbit.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/ui_pow_ui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/ui_pow_ui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/ui_sub.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/ui_sub.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/urandomb.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/urandomb.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/urandomm.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/urandomm.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/mpz/xor.c (renamed from Build/source/libs/gmp/gmp-6.0.0/mpz/xor.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/nextprime.c (renamed from Build/source/libs/gmp/gmp-6.0.0/nextprime.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/primesieve.c (renamed from Build/source/libs/gmp/gmp-6.0.0/primesieve.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/Makefile.am (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/Makefile.am)2
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/asprintf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/asprintf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/asprntffuns.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/asprntffuns.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/doprnt.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/doprnt.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/doprntf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/doprntf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/doprnti.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/doprnti.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/fprintf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/fprintf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/obprintf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/obprintf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/obprntffuns.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/obprntffuns.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/obvprintf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/obvprintf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/printf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/printf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/printffuns.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/printffuns.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/repl-vsnprintf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/repl-vsnprintf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/snprintf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/snprintf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/snprntffuns.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/snprntffuns.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/sprintf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/sprintf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/sprintffuns.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/sprintffuns.c)2
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/vasprintf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/vasprintf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/vfprintf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/vfprintf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/vprintf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/vprintf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/vsnprintf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/vsnprintf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/printf/vsprintf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/printf/vsprintf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/rand/Makefile.am (renamed from Build/source/libs/gmp/gmp-6.0.0/rand/Makefile.am)2
-rw-r--r--Build/source/libs/gmp/gmp-src/rand/rand.c (renamed from Build/source/libs/gmp/gmp-6.0.0/rand/rand.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/rand/randbui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/rand/randbui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/rand/randclr.c (renamed from Build/source/libs/gmp/gmp-6.0.0/rand/randclr.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/rand/randdef.c (renamed from Build/source/libs/gmp/gmp-6.0.0/rand/randdef.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/rand/randiset.c (renamed from Build/source/libs/gmp/gmp-6.0.0/rand/randiset.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/rand/randlc2s.c (renamed from Build/source/libs/gmp/gmp-6.0.0/rand/randlc2s.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/rand/randlc2x.c (renamed from Build/source/libs/gmp/gmp-6.0.0/rand/randlc2x.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/rand/randmt.c (renamed from Build/source/libs/gmp/gmp-6.0.0/rand/randmt.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/rand/randmt.h (renamed from Build/source/libs/gmp/gmp-6.0.0/rand/randmt.h)0
-rw-r--r--Build/source/libs/gmp/gmp-src/rand/randmts.c (renamed from Build/source/libs/gmp/gmp-6.0.0/rand/randmts.c)4
-rw-r--r--Build/source/libs/gmp/gmp-src/rand/randmui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/rand/randmui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/rand/rands.c (renamed from Build/source/libs/gmp/gmp-6.0.0/rand/rands.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/rand/randsd.c (renamed from Build/source/libs/gmp/gmp-6.0.0/rand/randsd.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/rand/randsdui.c (renamed from Build/source/libs/gmp/gmp-6.0.0/rand/randsdui.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/scanf/Makefile.am (renamed from Build/source/libs/gmp/gmp-6.0.0/scanf/Makefile.am)2
-rw-r--r--Build/source/libs/gmp/gmp-src/scanf/doscan.c (renamed from Build/source/libs/gmp/gmp-6.0.0/scanf/doscan.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/scanf/fscanf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/scanf/fscanf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/scanf/fscanffuns.c (renamed from Build/source/libs/gmp/gmp-6.0.0/scanf/fscanffuns.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/scanf/scanf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/scanf/scanf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/scanf/sscanf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/scanf/sscanf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/scanf/sscanffuns.c (renamed from Build/source/libs/gmp/gmp-6.0.0/scanf/sscanffuns.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/scanf/vfscanf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/scanf/vfscanf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/scanf/vscanf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/scanf/vscanf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/scanf/vsscanf.c (renamed from Build/source/libs/gmp/gmp-6.0.0/scanf/vsscanf.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/tal-debug.c (renamed from Build/source/libs/gmp/gmp-6.0.0/tal-debug.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/tal-notreent.c (renamed from Build/source/libs/gmp/gmp-6.0.0/tal-notreent.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/tal-reent.c (renamed from Build/source/libs/gmp/gmp-6.0.0/tal-reent.c)0
-rw-r--r--Build/source/libs/gmp/gmp-src/version.c (renamed from Build/source/libs/gmp/gmp-6.0.0/version.c)0
-rwxr-xr-xBuild/source/libs/gmp/native/configure24
-rw-r--r--Build/source/libs/gmp/native/configure.ac4
-rw-r--r--Build/source/libs/gmp/version.ac2
1537 files changed, 14540 insertions, 8085 deletions
diff --git a/Build/source/libs/README b/Build/source/libs/README
index 641e9d158a8..9cbf841895c 100644
--- a/Build/source/libs/README
+++ b/Build/source/libs/README
@@ -18,7 +18,7 @@ freetype2 2.6.2 - checked 28dec15
gd 2.1.1 - checked 14jan15
https://bitbucket.org/libgd/gd-libgd/downloads/
-gmp 6.0.0 - checked 25mar14
+gmp 6.1.0 - checked 28dec15
http://ftp.gnu.org/gnu/gmp/
graphite2 1.3.3 - checked 27sep15
diff --git a/Build/source/libs/gmp/ChangeLog b/Build/source/libs/gmp/ChangeLog
index 20a950aeb51..94c6f2de5df 100644
--- a/Build/source/libs/gmp/ChangeLog
+++ b/Build/source/libs/gmp/ChangeLog
@@ -1,3 +1,7 @@
+2015-12-28 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ Import gmp-6.1.0.
+
2015-07-06 Peter Breitenlohner <peb@mppmu.mpg.de>
* Makefile.am: Better dependencies for 'make check'.
diff --git a/Build/source/libs/gmp/Makefile.am b/Build/source/libs/gmp/Makefile.am
index d383baaa5a2..34f862f6738 100644
--- a/Build/source/libs/gmp/Makefile.am
+++ b/Build/source/libs/gmp/Makefile.am
@@ -86,6 +86,7 @@ mpn_sources = \
@GMP_TREE@/mpn/generic/bdiv_q.c \
@GMP_TREE@/mpn/generic/binvert.c \
@GMP_TREE@/mpn/generic/cmp.c \
+ @GMP_TREE@/mpn/generic/com.c \
@GMP_TREE@/mpn/generic/dcpi1_bdiv_q.c \
@GMP_TREE@/mpn/generic/dcpi1_bdiv_qr.c \
@GMP_TREE@/mpn/generic/dcpi1_div_q.c \
@@ -121,8 +122,8 @@ mpn_sources = \
@GMP_TREE@/mpn/generic/mul.c \
@GMP_TREE@/mpn/generic/mul_1.c \
@GMP_TREE@/mpn/generic/mul_basecase.c \
- @GMP_TREE@/mpn/generic/mul_n.c \
@GMP_TREE@/mpn/generic/mul_fft.c \
+ @GMP_TREE@/mpn/generic/mul_n.c \
@GMP_TREE@/mpn/generic/mullo_basecase.c \
@GMP_TREE@/mpn/generic/mullo_n.c \
@GMP_TREE@/mpn/generic/mulmod_bnm1.c \
@@ -143,6 +144,8 @@ mpn_sources = \
@GMP_TREE@/mpn/generic/set_str.c \
@GMP_TREE@/mpn/generic/sqr.c \
@GMP_TREE@/mpn/generic/sqr_basecase.c \
+ @GMP_TREE@/mpn/generic/sqrlo.c \
+ @GMP_TREE@/mpn/generic/sqrlo_basecase.c \
@GMP_TREE@/mpn/generic/sqrmod_bnm1.c \
@GMP_TREE@/mpn/generic/sqrtrem.c \
@GMP_TREE@/mpn/generic/sub.c \
@@ -150,16 +153,16 @@ mpn_sources = \
@GMP_TREE@/mpn/generic/sub_n.c \
@GMP_TREE@/mpn/generic/submul_1.c \
@GMP_TREE@/mpn/generic/tdiv_qr.c \
- @GMP_TREE@/mpn/generic/toom2_sqr.c \
@GMP_TREE@/mpn/generic/toom22_mul.c \
- @GMP_TREE@/mpn/generic/toom3_sqr.c \
+ @GMP_TREE@/mpn/generic/toom2_sqr.c \
@GMP_TREE@/mpn/generic/toom32_mul.c \
@GMP_TREE@/mpn/generic/toom33_mul.c \
- @GMP_TREE@/mpn/generic/toom4_sqr.c \
+ @GMP_TREE@/mpn/generic/toom3_sqr.c \
@GMP_TREE@/mpn/generic/toom42_mul.c \
@GMP_TREE@/mpn/generic/toom42_mulmid.c \
@GMP_TREE@/mpn/generic/toom43_mul.c \
@GMP_TREE@/mpn/generic/toom44_mul.c \
+ @GMP_TREE@/mpn/generic/toom4_sqr.c \
@GMP_TREE@/mpn/generic/toom53_mul.c \
@GMP_TREE@/mpn/generic/toom63_mul.c \
@GMP_TREE@/mpn/generic/toom6_sqr.c \
@@ -178,7 +181,8 @@ mpn_sources = \
@GMP_TREE@/mpn/generic/toom_interpolate_5pts.c \
@GMP_TREE@/mpn/generic/toom_interpolate_6pts.c \
@GMP_TREE@/mpn/generic/toom_interpolate_7pts.c \
- @GMP_TREE@/mpn/generic/toom_interpolate_8pts.c
+ @GMP_TREE@/mpn/generic/toom_interpolate_8pts.c \
+ @GMP_TREE@/mpn/generic/zero_p.c
mpn_unused = \
$(logops_n_sources) \
@@ -199,7 +203,6 @@ mpn_unused = \
@GMP_TREE@/mpn/generic/bsqrtinv.c \
@GMP_TREE@/mpn/generic/cnd_add_n.c \
@GMP_TREE@/mpn/generic/cnd_sub_n.c \
- @GMP_TREE@/mpn/generic/com.c \
@GMP_TREE@/mpn/generic/comb_tables.c \
@GMP_TREE@/mpn/generic/copyd.c \
@GMP_TREE@/mpn/generic/copyi.c \
diff --git a/Build/source/libs/gmp/Makefile.in b/Build/source/libs/gmp/Makefile.in
index 55b5c81ec53..56e33413b51 100644
--- a/Build/source/libs/gmp/Makefile.in
+++ b/Build/source/libs/gmp/Makefile.in
@@ -139,6 +139,7 @@ am__objects_2 = mp_bases.$(OBJEXT) popcount.$(OBJEXT) \
@GMP_TREE@/mpn/generic/bdiv_q.$(OBJEXT) \
@GMP_TREE@/mpn/generic/binvert.$(OBJEXT) \
@GMP_TREE@/mpn/generic/cmp.$(OBJEXT) \
+ @GMP_TREE@/mpn/generic/com.$(OBJEXT) \
@GMP_TREE@/mpn/generic/dcpi1_bdiv_q.$(OBJEXT) \
@GMP_TREE@/mpn/generic/dcpi1_bdiv_qr.$(OBJEXT) \
@GMP_TREE@/mpn/generic/dcpi1_div_q.$(OBJEXT) \
@@ -174,8 +175,8 @@ am__objects_2 = mp_bases.$(OBJEXT) popcount.$(OBJEXT) \
@GMP_TREE@/mpn/generic/mul.$(OBJEXT) \
@GMP_TREE@/mpn/generic/mul_1.$(OBJEXT) \
@GMP_TREE@/mpn/generic/mul_basecase.$(OBJEXT) \
- @GMP_TREE@/mpn/generic/mul_n.$(OBJEXT) \
@GMP_TREE@/mpn/generic/mul_fft.$(OBJEXT) \
+ @GMP_TREE@/mpn/generic/mul_n.$(OBJEXT) \
@GMP_TREE@/mpn/generic/mullo_basecase.$(OBJEXT) \
@GMP_TREE@/mpn/generic/mullo_n.$(OBJEXT) \
@GMP_TREE@/mpn/generic/mulmod_bnm1.$(OBJEXT) \
@@ -196,6 +197,8 @@ am__objects_2 = mp_bases.$(OBJEXT) popcount.$(OBJEXT) \
@GMP_TREE@/mpn/generic/set_str.$(OBJEXT) \
@GMP_TREE@/mpn/generic/sqr.$(OBJEXT) \
@GMP_TREE@/mpn/generic/sqr_basecase.$(OBJEXT) \
+ @GMP_TREE@/mpn/generic/sqrlo.$(OBJEXT) \
+ @GMP_TREE@/mpn/generic/sqrlo_basecase.$(OBJEXT) \
@GMP_TREE@/mpn/generic/sqrmod_bnm1.$(OBJEXT) \
@GMP_TREE@/mpn/generic/sqrtrem.$(OBJEXT) \
@GMP_TREE@/mpn/generic/sub.$(OBJEXT) \
@@ -203,16 +206,16 @@ am__objects_2 = mp_bases.$(OBJEXT) popcount.$(OBJEXT) \
@GMP_TREE@/mpn/generic/sub_n.$(OBJEXT) \
@GMP_TREE@/mpn/generic/submul_1.$(OBJEXT) \
@GMP_TREE@/mpn/generic/tdiv_qr.$(OBJEXT) \
- @GMP_TREE@/mpn/generic/toom2_sqr.$(OBJEXT) \
@GMP_TREE@/mpn/generic/toom22_mul.$(OBJEXT) \
- @GMP_TREE@/mpn/generic/toom3_sqr.$(OBJEXT) \
+ @GMP_TREE@/mpn/generic/toom2_sqr.$(OBJEXT) \
@GMP_TREE@/mpn/generic/toom32_mul.$(OBJEXT) \
@GMP_TREE@/mpn/generic/toom33_mul.$(OBJEXT) \
- @GMP_TREE@/mpn/generic/toom4_sqr.$(OBJEXT) \
+ @GMP_TREE@/mpn/generic/toom3_sqr.$(OBJEXT) \
@GMP_TREE@/mpn/generic/toom42_mul.$(OBJEXT) \
@GMP_TREE@/mpn/generic/toom42_mulmid.$(OBJEXT) \
@GMP_TREE@/mpn/generic/toom43_mul.$(OBJEXT) \
@GMP_TREE@/mpn/generic/toom44_mul.$(OBJEXT) \
+ @GMP_TREE@/mpn/generic/toom4_sqr.$(OBJEXT) \
@GMP_TREE@/mpn/generic/toom53_mul.$(OBJEXT) \
@GMP_TREE@/mpn/generic/toom63_mul.$(OBJEXT) \
@GMP_TREE@/mpn/generic/toom6_sqr.$(OBJEXT) \
@@ -231,7 +234,8 @@ am__objects_2 = mp_bases.$(OBJEXT) popcount.$(OBJEXT) \
@GMP_TREE@/mpn/generic/toom_interpolate_5pts.$(OBJEXT) \
@GMP_TREE@/mpn/generic/toom_interpolate_6pts.$(OBJEXT) \
@GMP_TREE@/mpn/generic/toom_interpolate_7pts.$(OBJEXT) \
- @GMP_TREE@/mpn/generic/toom_interpolate_8pts.$(OBJEXT)
+ @GMP_TREE@/mpn/generic/toom_interpolate_8pts.$(OBJEXT) \
+ @GMP_TREE@/mpn/generic/zero_p.$(OBJEXT)
am__objects_3 = @GMP_TREE@/mpz/abs.$(OBJEXT) \
@GMP_TREE@/mpz/add.$(OBJEXT) @GMP_TREE@/mpz/add_ui.$(OBJEXT) \
@GMP_TREE@/mpz/aorsmul.$(OBJEXT) \
@@ -561,7 +565,7 @@ am__DIST_COMMON = $(srcdir)/../../am/dist_hook.am \
$(top_srcdir)/../../build-aux/install-sh \
$(top_srcdir)/../../build-aux/missing \
$(top_srcdir)/../../build-aux/test-driver \
- $(top_srcdir)/gmp-6.0.0/gmp-h.in ../../build-aux/compile \
+ $(top_srcdir)/gmp-src/gmp-h.in ../../build-aux/compile \
../../build-aux/config.guess ../../build-aux/config.sub \
../../build-aux/depcomp ../../build-aux/install-sh \
../../build-aux/ltmain.sh ../../build-aux/missing \
@@ -771,6 +775,7 @@ mpn_sources = \
@GMP_TREE@/mpn/generic/bdiv_q.c \
@GMP_TREE@/mpn/generic/binvert.c \
@GMP_TREE@/mpn/generic/cmp.c \
+ @GMP_TREE@/mpn/generic/com.c \
@GMP_TREE@/mpn/generic/dcpi1_bdiv_q.c \
@GMP_TREE@/mpn/generic/dcpi1_bdiv_qr.c \
@GMP_TREE@/mpn/generic/dcpi1_div_q.c \
@@ -806,8 +811,8 @@ mpn_sources = \
@GMP_TREE@/mpn/generic/mul.c \
@GMP_TREE@/mpn/generic/mul_1.c \
@GMP_TREE@/mpn/generic/mul_basecase.c \
- @GMP_TREE@/mpn/generic/mul_n.c \
@GMP_TREE@/mpn/generic/mul_fft.c \
+ @GMP_TREE@/mpn/generic/mul_n.c \
@GMP_TREE@/mpn/generic/mullo_basecase.c \
@GMP_TREE@/mpn/generic/mullo_n.c \
@GMP_TREE@/mpn/generic/mulmod_bnm1.c \
@@ -828,6 +833,8 @@ mpn_sources = \
@GMP_TREE@/mpn/generic/set_str.c \
@GMP_TREE@/mpn/generic/sqr.c \
@GMP_TREE@/mpn/generic/sqr_basecase.c \
+ @GMP_TREE@/mpn/generic/sqrlo.c \
+ @GMP_TREE@/mpn/generic/sqrlo_basecase.c \
@GMP_TREE@/mpn/generic/sqrmod_bnm1.c \
@GMP_TREE@/mpn/generic/sqrtrem.c \
@GMP_TREE@/mpn/generic/sub.c \
@@ -835,16 +842,16 @@ mpn_sources = \
@GMP_TREE@/mpn/generic/sub_n.c \
@GMP_TREE@/mpn/generic/submul_1.c \
@GMP_TREE@/mpn/generic/tdiv_qr.c \
- @GMP_TREE@/mpn/generic/toom2_sqr.c \
@GMP_TREE@/mpn/generic/toom22_mul.c \
- @GMP_TREE@/mpn/generic/toom3_sqr.c \
+ @GMP_TREE@/mpn/generic/toom2_sqr.c \
@GMP_TREE@/mpn/generic/toom32_mul.c \
@GMP_TREE@/mpn/generic/toom33_mul.c \
- @GMP_TREE@/mpn/generic/toom4_sqr.c \
+ @GMP_TREE@/mpn/generic/toom3_sqr.c \
@GMP_TREE@/mpn/generic/toom42_mul.c \
@GMP_TREE@/mpn/generic/toom42_mulmid.c \
@GMP_TREE@/mpn/generic/toom43_mul.c \
@GMP_TREE@/mpn/generic/toom44_mul.c \
+ @GMP_TREE@/mpn/generic/toom4_sqr.c \
@GMP_TREE@/mpn/generic/toom53_mul.c \
@GMP_TREE@/mpn/generic/toom63_mul.c \
@GMP_TREE@/mpn/generic/toom6_sqr.c \
@@ -863,7 +870,8 @@ mpn_sources = \
@GMP_TREE@/mpn/generic/toom_interpolate_5pts.c \
@GMP_TREE@/mpn/generic/toom_interpolate_6pts.c \
@GMP_TREE@/mpn/generic/toom_interpolate_7pts.c \
- @GMP_TREE@/mpn/generic/toom_interpolate_8pts.c
+ @GMP_TREE@/mpn/generic/toom_interpolate_8pts.c \
+ @GMP_TREE@/mpn/generic/zero_p.c
mpn_unused = \
$(logops_n_sources) \
@@ -884,7 +892,6 @@ mpn_unused = \
@GMP_TREE@/mpn/generic/bsqrtinv.c \
@GMP_TREE@/mpn/generic/cnd_add_n.c \
@GMP_TREE@/mpn/generic/cnd_sub_n.c \
- @GMP_TREE@/mpn/generic/com.c \
@GMP_TREE@/mpn/generic/comb_tables.c \
@GMP_TREE@/mpn/generic/copyd.c \
@GMP_TREE@/mpn/generic/copyi.c \
@@ -1172,7 +1179,7 @@ $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
distclean-hdr:
-rm -f config.h stamp-h1
-gmp.h: $(top_builddir)/config.status $(top_srcdir)/gmp-6.0.0/gmp-h.in
+gmp.h: $(top_builddir)/config.status $(top_srcdir)/gmp-src/gmp-h.in
cd $(top_builddir) && $(SHELL) ./config.status $@
clean-noinstLIBRARIES:
@@ -1245,6 +1252,9 @@ clean-noinstLIBRARIES:
@GMP_TREE@/mpn/generic/cmp.$(OBJEXT): \
@GMP_TREE@/mpn/generic/$(am__dirstamp) \
@GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
+@GMP_TREE@/mpn/generic/com.$(OBJEXT): \
+ @GMP_TREE@/mpn/generic/$(am__dirstamp) \
+ @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
@GMP_TREE@/mpn/generic/dcpi1_bdiv_q.$(OBJEXT): \
@GMP_TREE@/mpn/generic/$(am__dirstamp) \
@GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
@@ -1350,10 +1360,10 @@ clean-noinstLIBRARIES:
@GMP_TREE@/mpn/generic/mul_basecase.$(OBJEXT): \
@GMP_TREE@/mpn/generic/$(am__dirstamp) \
@GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
-@GMP_TREE@/mpn/generic/mul_n.$(OBJEXT): \
+@GMP_TREE@/mpn/generic/mul_fft.$(OBJEXT): \
@GMP_TREE@/mpn/generic/$(am__dirstamp) \
@GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
-@GMP_TREE@/mpn/generic/mul_fft.$(OBJEXT): \
+@GMP_TREE@/mpn/generic/mul_n.$(OBJEXT): \
@GMP_TREE@/mpn/generic/$(am__dirstamp) \
@GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
@GMP_TREE@/mpn/generic/mullo_basecase.$(OBJEXT): \
@@ -1416,6 +1426,12 @@ clean-noinstLIBRARIES:
@GMP_TREE@/mpn/generic/sqr_basecase.$(OBJEXT): \
@GMP_TREE@/mpn/generic/$(am__dirstamp) \
@GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
+@GMP_TREE@/mpn/generic/sqrlo.$(OBJEXT): \
+ @GMP_TREE@/mpn/generic/$(am__dirstamp) \
+ @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
+@GMP_TREE@/mpn/generic/sqrlo_basecase.$(OBJEXT): \
+ @GMP_TREE@/mpn/generic/$(am__dirstamp) \
+ @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
@GMP_TREE@/mpn/generic/sqrmod_bnm1.$(OBJEXT): \
@GMP_TREE@/mpn/generic/$(am__dirstamp) \
@GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
@@ -1437,13 +1453,10 @@ clean-noinstLIBRARIES:
@GMP_TREE@/mpn/generic/tdiv_qr.$(OBJEXT): \
@GMP_TREE@/mpn/generic/$(am__dirstamp) \
@GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
-@GMP_TREE@/mpn/generic/toom2_sqr.$(OBJEXT): \
- @GMP_TREE@/mpn/generic/$(am__dirstamp) \
- @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
@GMP_TREE@/mpn/generic/toom22_mul.$(OBJEXT): \
@GMP_TREE@/mpn/generic/$(am__dirstamp) \
@GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
-@GMP_TREE@/mpn/generic/toom3_sqr.$(OBJEXT): \
+@GMP_TREE@/mpn/generic/toom2_sqr.$(OBJEXT): \
@GMP_TREE@/mpn/generic/$(am__dirstamp) \
@GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
@GMP_TREE@/mpn/generic/toom32_mul.$(OBJEXT): \
@@ -1452,7 +1465,7 @@ clean-noinstLIBRARIES:
@GMP_TREE@/mpn/generic/toom33_mul.$(OBJEXT): \
@GMP_TREE@/mpn/generic/$(am__dirstamp) \
@GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
-@GMP_TREE@/mpn/generic/toom4_sqr.$(OBJEXT): \
+@GMP_TREE@/mpn/generic/toom3_sqr.$(OBJEXT): \
@GMP_TREE@/mpn/generic/$(am__dirstamp) \
@GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
@GMP_TREE@/mpn/generic/toom42_mul.$(OBJEXT): \
@@ -1467,6 +1480,9 @@ clean-noinstLIBRARIES:
@GMP_TREE@/mpn/generic/toom44_mul.$(OBJEXT): \
@GMP_TREE@/mpn/generic/$(am__dirstamp) \
@GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
+@GMP_TREE@/mpn/generic/toom4_sqr.$(OBJEXT): \
+ @GMP_TREE@/mpn/generic/$(am__dirstamp) \
+ @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
@GMP_TREE@/mpn/generic/toom53_mul.$(OBJEXT): \
@GMP_TREE@/mpn/generic/$(am__dirstamp) \
@GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
@@ -1524,6 +1540,9 @@ clean-noinstLIBRARIES:
@GMP_TREE@/mpn/generic/toom_interpolate_8pts.$(OBJEXT): \
@GMP_TREE@/mpn/generic/$(am__dirstamp) \
@GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
+@GMP_TREE@/mpn/generic/zero_p.$(OBJEXT): \
+ @GMP_TREE@/mpn/generic/$(am__dirstamp) \
+ @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp)
@GMP_TREE@/mpz/$(am__dirstamp):
@$(MKDIR_P) @GMP_TREE@/mpz
@: > @GMP_TREE@/mpz/$(am__dirstamp)
@@ -1669,6 +1688,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/bdiv_q.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/binvert.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/cmp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/com.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/dcpi1_bdiv_q.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/dcpi1_bdiv_qr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/dcpi1_div_q.Po@am__quote@
@@ -1726,6 +1746,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/set_str.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/sqr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/sqr_basecase.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/sqrlo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/sqrlo_basecase.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/sqrmod_bnm1.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/sqrtrem.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/sub.Po@am__quote@
@@ -1762,6 +1784,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom_interpolate_6pts.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom_interpolate_7pts.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom_interpolate_8pts.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/zero_p.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/abs.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/add.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/add_ui.Po@am__quote@
diff --git a/Build/source/libs/gmp/README b/Build/source/libs/gmp/README
index 3d0bf3dcd04..a793ac7ef05 100644
--- a/Build/source/libs/gmp/README
+++ b/Build/source/libs/gmp/README
@@ -3,9 +3,9 @@
This directory libs/gmp/ uses a proxy Makefile.am to build the GNU MP
library 'libgmp' from the unmodified source tree in
-libs/gmp/gmp-x.y.z/, bypassing the original build system.
+libs/gmp/gmp-src/, bypassing the original build system.
-As far as applicable, the tests in libs/gmp/gmp-x.y.z/configure have
+As far as applicable, the tests in libs/gmp/gmp-src/configure have
been translated into equivalent test in libs/gmp/configure.ac.
=============================
@@ -15,3 +15,4 @@ At the moment there is a wrapper Makefile.am and configure.ac.
=============================
2014-03-31 Taco Hoekwater <taco@metatex.org>
+2015-12-28 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
diff --git a/Build/source/libs/gmp/configure b/Build/source/libs/gmp/configure
index f513f2bcd26..c116f19b9c1 100755
--- a/Build/source/libs/gmp/configure
+++ b/Build/source/libs/gmp/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gmp (TeX Live) 6.0.0.
+# Generated by GNU Autoconf 2.69 for gmp (TeX Live) 6.1.0.
#
# Report bugs to <tex-k@tug.org>.
#
@@ -580,12 +580,12 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='gmp (TeX Live)'
PACKAGE_TARNAME='gmp--tex-live-'
-PACKAGE_VERSION='6.0.0'
-PACKAGE_STRING='gmp (TeX Live) 6.0.0'
+PACKAGE_VERSION='6.1.0'
+PACKAGE_STRING='gmp (TeX Live) 6.1.0'
PACKAGE_BUGREPORT='tex-k@tug.org'
PACKAGE_URL=''
-ac_unique_file="gmp-6.0.0/gmp-impl.h"
+ac_unique_file="gmp-src/gmp-impl.h"
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
@@ -1294,7 +1294,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures gmp (TeX Live) 6.0.0 to adapt to many kinds of systems.
+\`configure' configures gmp (TeX Live) 6.1.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1364,7 +1364,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gmp (TeX Live) 6.0.0:";;
+ short | recursive ) echo "Configuration of gmp (TeX Live) 6.1.0:";;
esac
cat <<\_ACEOF
@@ -1461,7 +1461,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gmp (TeX Live) configure 6.0.0
+gmp (TeX Live) configure 6.1.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1976,7 +1976,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gmp (TeX Live) $as_me 6.0.0, which was
+It was created by gmp (TeX Live) $as_me 6.1.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3899,7 +3899,7 @@ fi
# Define the identity of the package.
PACKAGE='gmp--tex-live-'
- VERSION='6.0.0'
+ VERSION='6.1.0'
cat >>confdefs.h <<_ACEOF
@@ -5988,7 +5988,7 @@ cat >gmp-tmp.h <<KPSE_EOF
#define GMP_NAIL_BITS $GMP_NAIL_BITS
#define GMP_LIMB_BITS 123
$DEFN_LONG_LONG_LIMB
-#include "$srcdir/gmp-6.0.0/gmp-h.in"
+#include "$srcdir/gmp-src/gmp-h.in"
KPSE_EOF
@@ -6148,7 +6148,7 @@ else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include "gmp-tmp.h"
-#include "$srcdir/gmp-6.0.0/gmp-impl.h"
+#include "$srcdir/gmp-src/gmp-impl.h"
int
main ()
{
@@ -6439,7 +6439,7 @@ else
fi
-GMP_TREE=gmp-6.0.0
+GMP_TREE=gmp-src
HAVE_HOST_CPU_FAMILY_power=0
@@ -6450,7 +6450,7 @@ HAVE_HOST_CPU_FAMILY_powerpc=0
LIBGMP_DLL=0
-ac_config_files="$ac_config_files Makefile include/Makefile gmp.h:gmp-6.0.0/gmp-h.in"
+ac_config_files="$ac_config_files Makefile include/Makefile gmp.h:gmp-src/gmp-h.in"
@@ -7002,7 +7002,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gmp (TeX Live) $as_me 6.0.0, which was
+This file was extended by gmp (TeX Live) $as_me 6.1.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -7068,7 +7068,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gmp (TeX Live) config.status 6.0.0
+gmp (TeX Live) config.status 6.1.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -7201,7 +7201,7 @@ do
"config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
- "gmp.h") CONFIG_FILES="$CONFIG_FILES gmp.h:gmp-6.0.0/gmp-h.in" ;;
+ "gmp.h") CONFIG_FILES="$CONFIG_FILES gmp.h:gmp-src/gmp-h.in" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
diff --git a/Build/source/libs/gmp/configure.ac b/Build/source/libs/gmp/configure.ac
index b5a93e33640..2b842222348 100644
--- a/Build/source/libs/gmp/configure.ac
+++ b/Build/source/libs/gmp/configure.ac
@@ -10,7 +10,7 @@ dnl
m4_include([version.ac])[] dnl define gmp_version
AC_INIT([gmp (TeX Live)], gmp_version, [tex-k@tug.org])
AC_PREREQ([2.65])
-AC_CONFIG_SRCDIR([gmp-]gmp_version[/gmp-impl.h])
+AC_CONFIG_SRCDIR([gmp-src/gmp-impl.h])
AC_CONFIG_AUX_DIR([../../build-aux])
AC_CONFIG_MACRO_DIRS([../../m4 m4])
@@ -73,7 +73,7 @@ cat >gmp-tmp.h <<KPSE_EOF
#define GMP_NAIL_BITS $GMP_NAIL_BITS
#define GMP_LIMB_BITS 123
$DEFN_LONG_LONG_LIMB
-#include "$srcdir/gmp-]gmp_version[/gmp-h.in"
+#include "$srcdir/gmp-src/gmp-h.in"
KPSE_EOF
AC_CONFIG_COMMANDS_POST([rm -rf gmp-tmp.h])
]) # KPSE_GMP_H
@@ -101,14 +101,14 @@ fi
AM_CONDITIONAL([build], [test "x$enable_build" != xno])
-AC_SUBST([GMP_TREE], [gmp-]gmp_version)
+AC_SUBST([GMP_TREE], [gmp-src])
AC_SUBST([HAVE_HOST_CPU_FAMILY_power], 0)
AC_SUBST([HAVE_HOST_CPU_FAMILY_powerpc], 0)
AC_SUBST([DEFN_LONG_LONG_LIMB])
AC_SUBST([LIBGMP_DLL], 0)
-AC_CONFIG_FILES([Makefile include/Makefile gmp.h:gmp-]gmp_version[/gmp-h.in])
+AC_CONFIG_FILES([Makefile include/Makefile gmp.h:gmp-src/gmp-h.in])
dnl The subdirectory native must be configured for the build system.
KPSE_NATIVE_SUBDIRS([native])
diff --git a/Build/source/libs/gmp/gmp-6.0.0-PATCHES/patch-01-const b/Build/source/libs/gmp/gmp-6.0.0-PATCHES/patch-01-const
deleted file mode 100644
index 869a755d548..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0-PATCHES/patch-01-const
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ur gmp-6.0.0.orig/mpn/generic/sec_tabselect.c gmp-6.0.0/mpn/generic/sec_tabselect.c
---- gmp-6.0.0.orig/mpn/generic/sec_tabselect.c 2014-03-25 15:37:55.000000000 +0100
-+++ gmp-6.0.0/mpn/generic/sec_tabselect.c 2014-05-26 17:17:59.000000000 +0200
-@@ -41,7 +41,7 @@
- {
- mp_size_t k, i;
- mp_limb_t mask;
-- volatile mp_limb_t *tp;
-+ volatile const mp_limb_t *tp;
-
- for (k = 0; k < nents; k++)
- {
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/ui_sub.c b/Build/source/libs/gmp/gmp-6.0.0/mpf/ui_sub.c
deleted file mode 100644
index b7a536eb8bc..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/ui_sub.c
+++ /dev/null
@@ -1,336 +0,0 @@
-/* mpf_ui_sub -- Subtract a float from an unsigned long int.
-
-Copyright 1993-1996, 2001, 2002, 2005 Free Software Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#include "gmp.h"
-#include "gmp-impl.h"
-
-void
-mpf_ui_sub (mpf_ptr r, unsigned long int u, mpf_srcptr v)
-{
- mp_srcptr up, vp;
- mp_ptr rp, tp;
- mp_size_t usize, vsize, rsize;
- mp_size_t prec;
- mp_exp_t uexp;
- mp_size_t ediff;
- int negate;
- mp_limb_t ulimb;
- TMP_DECL;
-
- vsize = v->_mp_size;
-
- /* Handle special cases that don't work in generic code below. */
- if (u == 0)
- {
- mpf_neg (r, v);
- return;
- }
- if (vsize == 0)
- {
- mpf_set_ui (r, u);
- return;
- }
-
- /* If signs of U and V are different, perform addition. */
- if (vsize < 0)
- {
- __mpf_struct v_negated;
- v_negated._mp_size = -vsize;
- v_negated._mp_exp = v->_mp_exp;
- v_negated._mp_d = v->_mp_d;
- mpf_add_ui (r, &v_negated, u);
- return;
- }
-
- TMP_MARK;
-
- /* Signs are now known to be the same. */
-
- ulimb = u;
- /* Make U be the operand with the largest exponent. */
- if (1 < v->_mp_exp)
- {
- negate = 1;
- usize = ABS (vsize);
- vsize = 1;
- up = v->_mp_d;
- vp = &ulimb;
- rp = r->_mp_d;
- prec = r->_mp_prec + 1;
- uexp = v->_mp_exp;
- ediff = uexp - 1;
- }
- else
- {
- negate = 0;
- usize = 1;
- vsize = ABS (vsize);
- up = &ulimb;
- vp = v->_mp_d;
- rp = r->_mp_d;
- prec = r->_mp_prec;
- uexp = 1;
- ediff = 1 - v->_mp_exp;
- }
-
- /* Ignore leading limbs in U and V that are equal. Doing
- this helps increase the precision of the result. */
- if (ediff == 0)
- {
- /* This loop normally exits immediately. Optimize for that. */
- for (;;)
- {
- usize--;
- vsize--;
- if (up[usize] != vp[vsize])
- break;
- uexp--;
- if (usize == 0)
- goto Lu0;
- if (vsize == 0)
- goto Lv0;
- }
- usize++;
- vsize++;
- /* Note that either operand (but not both operands) might now have
- leading zero limbs. It matters only that U is unnormalized if
- vsize is now zero, and vice versa. And it is only in that case
- that we have to adjust uexp. */
- if (vsize == 0)
- Lv0:
- while (usize != 0 && up[usize - 1] == 0)
- usize--, uexp--;
- if (usize == 0)
- Lu0:
- while (vsize != 0 && vp[vsize - 1] == 0)
- vsize--, uexp--;
- }
-
- /* If U extends beyond PREC, ignore the part that does. */
- if (usize > prec)
- {
- up += usize - prec;
- usize = prec;
- }
-
- /* If V extends beyond PREC, ignore the part that does.
- Note that this may make vsize negative. */
- if (vsize + ediff > prec)
- {
- vp += vsize + ediff - prec;
- vsize = prec - ediff;
- }
-
- /* Allocate temp space for the result. Allocate
- just vsize + ediff later??? */
- tp = TMP_ALLOC_LIMBS (prec);
-
- if (ediff >= prec)
- {
- /* V completely cancelled. */
- if (tp != up)
- MPN_COPY (rp, up, usize);
- rsize = usize;
- }
- else
- {
- /* Locate the least significant non-zero limb in (the needed
- parts of) U and V, to simplify the code below. */
- for (;;)
- {
- if (vsize == 0)
- {
- MPN_COPY (rp, up, usize);
- rsize = usize;
- goto done;
- }
- if (vp[0] != 0)
- break;
- vp++, vsize--;
- }
- for (;;)
- {
- if (usize == 0)
- {
- MPN_COPY (rp, vp, vsize);
- rsize = vsize;
- negate ^= 1;
- goto done;
- }
- if (up[0] != 0)
- break;
- up++, usize--;
- }
-
- /* uuuu | uuuu | uuuu | uuuu | uuuu */
- /* vvvvvvv | vv | vvvvv | v | vv */
-
- if (usize > ediff)
- {
- /* U and V partially overlaps. */
- if (ediff == 0)
- {
- /* Have to compare the leading limbs of u and v
- to determine whether to compute u - v or v - u. */
- if (usize > vsize)
- {
- /* uuuu */
- /* vv */
- int cmp;
- cmp = mpn_cmp (up + usize - vsize, vp, vsize);
- if (cmp >= 0)
- {
- mp_size_t size;
- size = usize - vsize;
- MPN_COPY (tp, up, size);
- mpn_sub_n (tp + size, up + size, vp, vsize);
- rsize = usize;
- }
- else
- {
- /* vv */ /* Swap U and V. */
- /* uuuu */
- mp_size_t size, i;
- size = usize - vsize;
- tp[0] = -up[0] & GMP_NUMB_MASK;
- for (i = 1; i < size; i++)
- tp[i] = ~up[i] & GMP_NUMB_MASK;
- mpn_sub_n (tp + size, vp, up + size, vsize);
- mpn_sub_1 (tp + size, tp + size, vsize, (mp_limb_t) 1);
- negate ^= 1;
- rsize = usize;
- }
- }
- else if (usize < vsize)
- {
- /* uuuu */
- /* vvvvvvv */
- int cmp;
- cmp = mpn_cmp (up, vp + vsize - usize, usize);
- if (cmp > 0)
- {
- mp_size_t size, i;
- size = vsize - usize;
- tp[0] = -vp[0] & GMP_NUMB_MASK;
- for (i = 1; i < size; i++)
- tp[i] = ~vp[i] & GMP_NUMB_MASK;
- mpn_sub_n (tp + size, up, vp + size, usize);
- mpn_sub_1 (tp + size, tp + size, usize, (mp_limb_t) 1);
- rsize = vsize;
- }
- else
- {
- /* vvvvvvv */ /* Swap U and V. */
- /* uuuu */
- /* This is the only place we can get 0.0. */
- mp_size_t size;
- size = vsize - usize;
- MPN_COPY (tp, vp, size);
- mpn_sub_n (tp + size, vp + size, up, usize);
- negate ^= 1;
- rsize = vsize;
- }
- }
- else
- {
- /* uuuu */
- /* vvvv */
- int cmp;
- cmp = mpn_cmp (up, vp + vsize - usize, usize);
- if (cmp > 0)
- {
- mpn_sub_n (tp, up, vp, usize);
- rsize = usize;
- }
- else
- {
- mpn_sub_n (tp, vp, up, usize);
- negate ^= 1;
- rsize = usize;
- /* can give zero */
- }
- }
- }
- else
- {
- if (vsize + ediff <= usize)
- {
- /* uuuu */
- /* v */
- mp_size_t size;
- size = usize - ediff - vsize;
- MPN_COPY (tp, up, size);
- mpn_sub (tp + size, up + size, usize - size, vp, vsize);
- rsize = usize;
- }
- else
- {
- /* uuuu */
- /* vvvvv */
- mp_size_t size, i;
- size = vsize + ediff - usize;
- tp[0] = -vp[0] & GMP_NUMB_MASK;
- for (i = 1; i < size; i++)
- tp[i] = ~vp[i] & GMP_NUMB_MASK;
- mpn_sub (tp + size, up, usize, vp + size, usize - ediff);
- mpn_sub_1 (tp + size, tp + size, usize, (mp_limb_t) 1);
- rsize = vsize + ediff;
- }
- }
- }
- else
- {
- /* uuuu */
- /* vv */
- mp_size_t size, i;
- size = vsize + ediff - usize;
- tp[0] = -vp[0] & GMP_NUMB_MASK;
- for (i = 1; i < vsize; i++)
- tp[i] = ~vp[i] & GMP_NUMB_MASK;
- for (i = vsize; i < size; i++)
- tp[i] = GMP_NUMB_MAX;
- mpn_sub_1 (tp + size, up, usize, (mp_limb_t) 1);
- rsize = size + usize;
- }
-
- /* Full normalize. Optimize later. */
- while (rsize != 0 && tp[rsize - 1] == 0)
- {
- rsize--;
- uexp--;
- }
- MPN_COPY (rp, tp, rsize);
- }
-
- done:
- r->_mp_size = negate ? -rsize : rsize;
- r->_mp_exp = uexp;
- TMP_FREE;
-}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/gmp-mparam.h b/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/gmp-mparam.h
deleted file mode 100644
index c9c68517690..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/gmp-mparam.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/* gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright 1991, 1993, 1994, 1999-2003, 2009, 2010, 2012 Free Software
-Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#define GMP_LIMB_BITS 32
-#define GMP_LIMB_BYTES 4
-
-/* 700MHz ARM11 (raspberry pi) */
-
-#define DIVREM_1_NORM_THRESHOLD 0 /* preinv always */
-#define DIVREM_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1_1P_METHOD 2
-#define MOD_1_NORM_THRESHOLD 0 /* always */
-#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 3
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 7
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 0 /* never mpn_mod_1_1p */
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD MP_SIZE_T_MAX
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 29
-#define USE_PREINV_DIVREM_1 1 /* preinv always */
-#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIVEXACT_1_THRESHOLD 0 /* always */
-#define BMOD_1_TO_MOD_1_THRESHOLD 33
-
-#define MUL_TOOM22_THRESHOLD 36
-#define MUL_TOOM33_THRESHOLD 117
-#define MUL_TOOM44_THRESHOLD 462
-#define MUL_TOOM6H_THRESHOLD 0 /* always */
-#define MUL_TOOM8H_THRESHOLD 620
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 130
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 573
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 209
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 209
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 305
-
-#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 50
-#define SQR_TOOM3_THRESHOLD 181
-#define SQR_TOOM4_THRESHOLD 686
-#define SQR_TOOM6_THRESHOLD 0 /* always */
-#define SQR_TOOM8_THRESHOLD 915
-
-#define MULMID_TOOM42_THRESHOLD 72
-
-#define MULMOD_BNM1_THRESHOLD 25
-#define SQRMOD_BNM1_THRESHOLD 30
-
-#define MUL_FFT_MODF_THRESHOLD 476 /* k = 5 */
-#define MUL_FFT_TABLE3 \
- { { 476, 5}, { 21, 6}, { 11, 5}, { 25, 6}, \
- { 13, 5}, { 27, 6}, { 25, 7}, { 13, 6}, \
- { 28, 7}, { 15, 6}, { 32, 7}, { 17, 6}, \
- { 35, 7}, { 19, 6}, { 39, 7}, { 23, 6}, \
- { 47, 7}, { 29, 8}, { 15, 7}, { 35, 8}, \
- { 19, 7}, { 43, 8}, { 23, 7}, { 51, 8}, \
- { 27, 7}, { 55, 8}, { 31, 7}, { 63, 8}, \
- { 43, 9}, { 23, 8}, { 55, 9}, { 31, 8}, \
- { 71, 9}, { 39, 8}, { 83, 9}, { 47, 8}, \
- { 95, 9}, { 55,10}, { 31, 9}, { 79,10}, \
- { 47, 9}, { 103,11}, { 31,10}, { 63, 9}, \
- { 135,10}, { 79, 9}, { 159,10}, { 95, 9}, \
- { 191,10}, { 111,11}, { 63,10}, { 127, 9}, \
- { 255,10}, { 143, 9}, { 287,10}, { 159,11}, \
- { 95,10}, { 191, 9}, { 383,12}, { 4096,13}, \
- { 8192,14}, { 16384,15}, { 32768,16} }
-#define MUL_FFT_TABLE3_SIZE 63
-#define MUL_FFT_THRESHOLD 4736
-
-#define SQR_FFT_MODF_THRESHOLD 464 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 464, 5}, { 25, 6}, { 13, 5}, { 27, 6}, \
- { 29, 7}, { 15, 6}, { 33, 7}, { 17, 6}, \
- { 36, 7}, { 19, 6}, { 39, 7}, { 23, 6}, \
- { 47, 7}, { 29, 8}, { 15, 7}, { 35, 8}, \
- { 19, 7}, { 43, 8}, { 23, 7}, { 49, 8}, \
- { 27, 7}, { 55, 8}, { 31, 7}, { 63, 8}, \
- { 35, 7}, { 71, 8}, { 43, 9}, { 23, 8}, \
- { 55, 9}, { 31, 8}, { 71, 9}, { 39, 8}, \
- { 83, 9}, { 47, 8}, { 95, 9}, { 55,10}, \
- { 31, 9}, { 79,10}, { 47, 9}, { 103,11}, \
- { 31,10}, { 63, 9}, { 135,10}, { 79, 9}, \
- { 159,10}, { 95, 9}, { 191,10}, { 111,11}, \
- { 63,10}, { 127, 9}, { 255,10}, { 143, 9}, \
- { 287,10}, { 159,11}, { 95,10}, { 191, 9}, \
- { 383,12}, { 4096,13}, { 8192,14}, { 16384,15}, \
- { 32768,16} }
-#define SQR_FFT_TABLE3_SIZE 61
-#define SQR_FFT_THRESHOLD 3776
-
-#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 67
-#define MULLO_MUL_N_THRESHOLD 8907
-
-#define DC_DIV_QR_THRESHOLD 40
-#define DC_DIVAPPR_Q_THRESHOLD 156
-#define DC_BDIV_QR_THRESHOLD 71
-#define DC_BDIV_Q_THRESHOLD 208
-
-#define INV_MULMOD_BNM1_THRESHOLD 70
-#define INV_NEWTON_THRESHOLD 151
-#define INV_APPR_THRESHOLD 150
-
-#define BINV_NEWTON_THRESHOLD 375
-#define REDC_1_TO_REDC_2_THRESHOLD 5
-#define REDC_2_TO_REDC_N_THRESHOLD 134
-
-#define MU_DIV_QR_THRESHOLD 2130
-#define MU_DIVAPPR_Q_THRESHOLD 2130
-#define MUPI_DIV_QR_THRESHOLD 80
-#define MU_BDIV_QR_THRESHOLD 1787
-#define MU_BDIV_Q_THRESHOLD 2130
-
-#define POWM_SEC_TABLE 7,32,460,1705
-
-#define MATRIX22_STRASSEN_THRESHOLD 19
-#define HGCD_THRESHOLD 85
-#define HGCD_APPR_THRESHOLD 119
-#define HGCD_REDUCE_THRESHOLD 3389
-#define GCD_DC_THRESHOLD 333
-#define GCDEXT_DC_THRESHOLD 309
-#define JACOBI_BASE_METHOD 1
-
-#define GET_STR_DC_THRESHOLD 21
-#define GET_STR_PRECOMPUTE_THRESHOLD 41
-#define SET_STR_DC_THRESHOLD 527
-#define SET_STR_PRECOMPUTE_THRESHOLD 1323
-
-#define FAC_DSC_THRESHOLD 414
-#define FAC_ODD_THRESHOLD 154
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/gmp-mparam.h b/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/gmp-mparam.h
deleted file mode 100644
index 2a06532b3eb..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/gmp-mparam.h
+++ /dev/null
@@ -1,197 +0,0 @@
-/* gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright 1991, 1993, 1994, 1999-2003, 2009, 2010, 2012-2014 Free Software
-Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#define GMP_LIMB_BITS 32
-#define GMP_LIMB_BYTES 4
-
-/* 1700MHz Cortex-A15 with Neon (in spite of file position) */
-/* FFT tuning limit = 25000000 */
-/* Generated by tuneup.c, 2014-03-12, gcc 4.6 */
-
-#define MOD_1_NORM_THRESHOLD 0 /* always */
-#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 3
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 9
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD MP_SIZE_T_MAX
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 8
-#define USE_PREINV_DIVREM_1 1 /* native */
-#define DIV_QR_1N_PI1_METHOD 1
-#define DIV_QR_1_NORM_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
-#define BMOD_1_TO_MOD_1_THRESHOLD 15
-
-#define MUL_TOOM22_THRESHOLD 23
-#define MUL_TOOM33_THRESHOLD 90
-#define MUL_TOOM44_THRESHOLD 262
-#define MUL_TOOM6H_THRESHOLD 351
-#define MUL_TOOM8H_THRESHOLD 557
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 90
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 160
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 89
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 169
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 130
-
-#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 43
-#define SQR_TOOM3_THRESHOLD 138
-#define SQR_TOOM4_THRESHOLD 363
-#define SQR_TOOM6_THRESHOLD 517
-#define SQR_TOOM8_THRESHOLD 725
-
-#define MULMID_TOOM42_THRESHOLD 52
-
-#define MULMOD_BNM1_THRESHOLD 17
-#define SQRMOD_BNM1_THRESHOLD 23
-
-#define MUL_FFT_MODF_THRESHOLD 550 /* k = 5 */
-#define MUL_FFT_TABLE3 \
- { { 550, 5}, { 25, 6}, { 27, 7}, { 15, 6}, \
- { 31, 7}, { 19, 6}, { 39, 7}, { 25, 6}, \
- { 51, 7}, { 27, 8}, { 15, 7}, { 33, 8}, \
- { 19, 7}, { 41, 8}, { 23, 7}, { 51, 8}, \
- { 27, 9}, { 15, 8}, { 31, 7}, { 63, 8}, \
- { 39, 9}, { 23, 8}, { 51,10}, { 15, 9}, \
- { 31, 8}, { 67, 9}, { 39, 8}, { 79, 9}, \
- { 47, 8}, { 99, 9}, { 55,10}, { 31, 9}, \
- { 79,10}, { 47, 9}, { 103,11}, { 31,10}, \
- { 63, 9}, { 135,10}, { 79, 9}, { 159,10}, \
- { 95, 9}, { 191,10}, { 111,11}, { 63,10}, \
- { 159,11}, { 95,10}, { 191, 9}, { 383,10}, \
- { 207,12}, { 63,11}, { 127,10}, { 255, 9}, \
- { 511,10}, { 271, 9}, { 543,11}, { 159,10}, \
- { 319, 9}, { 639,10}, { 335, 9}, { 671,10}, \
- { 351,11}, { 191,10}, { 383, 9}, { 767,10}, \
- { 399, 9}, { 799,10}, { 415,11}, { 223,12}, \
- { 127,11}, { 255,10}, { 543,11}, { 287,10}, \
- { 607,11}, { 319,10}, { 671,11}, { 351,12}, \
- { 191,11}, { 383,10}, { 799,11}, { 415,10}, \
- { 831,13}, { 127,12}, { 255,11}, { 543,10}, \
- { 1087,11}, { 607,12}, { 319,11}, { 671,10}, \
- { 1343,11}, { 735,12}, { 383,11}, { 799,10}, \
- { 1599,11}, { 831,12}, { 447,11}, { 895,13}, \
- { 255,12}, { 511,11}, { 1023,12}, { 575,11}, \
- { 1151,12}, { 639,11}, { 1279,12}, { 703,13}, \
- { 383,12}, { 767,11}, { 1599,12}, { 831,11}, \
- { 1663,12}, { 895,13}, { 511,12}, { 1087,13}, \
- { 639,12}, { 1407,13}, { 767,12}, { 1599,13}, \
- { 895,14}, { 511,13}, { 1023,12}, { 2111,13}, \
- { 1151,12}, { 2431,13}, { 1279,14}, { 767,13}, \
- { 1535,12}, { 3071,15}, { 511,14}, { 1023,13}, \
- { 2175,14}, { 1279,13}, { 2559,12}, { 5119,13}, \
- { 2815,12}, { 5631,13}, { 2943,14}, { 16384,15}, \
- { 32768,16} }
-#define MUL_FFT_TABLE3_SIZE 137
-#define MUL_FFT_THRESHOLD 5760
-
-#define SQR_FFT_MODF_THRESHOLD 525 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 525, 5}, { 25, 6}, { 27, 7}, { 15, 6}, \
- { 32, 7}, { 17, 6}, { 35, 7}, { 19, 6}, \
- { 39, 7}, { 25, 6}, { 51, 7}, { 27, 8}, \
- { 15, 7}, { 35, 8}, { 19, 7}, { 41, 8}, \
- { 23, 7}, { 51, 8}, { 27, 7}, { 55, 9}, \
- { 15, 8}, { 31, 7}, { 63, 8}, { 39, 9}, \
- { 23, 8}, { 55,10}, { 15, 9}, { 31, 8}, \
- { 67, 9}, { 39, 8}, { 79, 9}, { 47, 8}, \
- { 95, 9}, { 55,10}, { 31, 9}, { 79,10}, \
- { 47, 9}, { 95,11}, { 31,10}, { 63, 9}, \
- { 135,10}, { 79, 9}, { 159,10}, { 95, 9}, \
- { 191,10}, { 111,11}, { 63,10}, { 143, 9}, \
- { 287,10}, { 159,11}, { 95,10}, { 191, 9}, \
- { 383,12}, { 63,11}, { 127,10}, { 255, 9}, \
- { 511,10}, { 271, 9}, { 543,10}, { 287,11}, \
- { 159,10}, { 335, 9}, { 671,10}, { 351,11}, \
- { 191,10}, { 383, 9}, { 767,10}, { 399, 9}, \
- { 799,10}, { 415,11}, { 223,12}, { 127,11}, \
- { 255,10}, { 543,11}, { 287,10}, { 607,11}, \
- { 319,10}, { 671,11}, { 351,12}, { 191,11}, \
- { 383,10}, { 799,11}, { 415,10}, { 831,13}, \
- { 127,12}, { 255,11}, { 543,10}, { 1087,11}, \
- { 607,12}, { 319,11}, { 671,10}, { 1343,11}, \
- { 735,12}, { 383,11}, { 799,10}, { 1599,11}, \
- { 831,12}, { 447,11}, { 895,12}, { 511,11}, \
- { 1023,12}, { 575,11}, { 1151,12}, { 639,11}, \
- { 1343,12}, { 703,13}, { 383,12}, { 767,11}, \
- { 1599,12}, { 831,11}, { 1663,12}, { 895,13}, \
- { 511,12}, { 1087,13}, { 639,12}, { 1407,13}, \
- { 767,12}, { 1727,13}, { 895,14}, { 511,13}, \
- { 1023,12}, { 2047,13}, { 1151,12}, { 2431,13}, \
- { 1279,14}, { 767,13}, { 1535,12}, { 3071,15}, \
- { 511,14}, { 1023,13}, { 2047,12}, { 4095,13}, \
- { 2175,14}, { 1279,13}, { 2559,12}, { 5119,13}, \
- { 2687,14}, { 16384,15}, { 32768,16} }
-#define SQR_FFT_TABLE3_SIZE 139
-#define SQR_FFT_THRESHOLD 4736
-
-#define MULLO_BASECASE_THRESHOLD 9
-#define MULLO_DC_THRESHOLD 39
-#define MULLO_MUL_N_THRESHOLD 11278
-
-#define DC_DIV_QR_THRESHOLD 54
-#define DC_DIVAPPR_Q_THRESHOLD 296
-#define DC_BDIV_QR_THRESHOLD 52
-#define DC_BDIV_Q_THRESHOLD 300
-
-#define INV_MULMOD_BNM1_THRESHOLD 44
-#define INV_NEWTON_THRESHOLD 294
-#define INV_APPR_THRESHOLD 294
-
-#define BINV_NEWTON_THRESHOLD 375
-#define REDC_1_TO_REDC_2_THRESHOLD 102
-#define REDC_2_TO_REDC_N_THRESHOLD 0 /* always */
-
-#define MU_DIV_QR_THRESHOLD 1718
-#define MU_DIVAPPR_Q_THRESHOLD 1718
-#define MUPI_DIV_QR_THRESHOLD 108
-#define MU_BDIV_QR_THRESHOLD 1528
-#define MU_BDIV_Q_THRESHOLD 1718
-
-#define POWM_SEC_TABLE 3,32,70,416,1464
-
-#define MATRIX22_STRASSEN_THRESHOLD 22
-#define HGCD_THRESHOLD 152
-#define HGCD_APPR_THRESHOLD 230
-#define HGCD_REDUCE_THRESHOLD 3259
-#define GCD_DC_THRESHOLD 702
-#define GCDEXT_DC_THRESHOLD 538
-#define JACOBI_BASE_METHOD 4
-
-#define GET_STR_DC_THRESHOLD 18
-#define GET_STR_PRECOMPUTE_THRESHOLD 32
-#define SET_STR_DC_THRESHOLD 119
-#define SET_STR_PRECOMPUTE_THRESHOLD 1063
-
-#define FAC_DSC_THRESHOLD 262
-#define FAC_ODD_THRESHOLD 26
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora9/gmp-mparam.h b/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora9/gmp-mparam.h
deleted file mode 100644
index 96602578200..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora9/gmp-mparam.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/* gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright 1991, 1993, 1994, 1999-2003, 2009, 2010, 2012-2014 Free Software
-Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#define GMP_LIMB_BITS 32
-#define GMP_LIMB_BYTES 4
-
-/* 1000MHz Cortex-A9 */
-/* FFT tuning limit = 25000000 */
-/* Generated by tuneup.c, 2014-03-12, gcc 4.6 */
-
-#define MOD_1_NORM_THRESHOLD 0 /* always */
-#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 3
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 8
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD MP_SIZE_T_MAX
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 12
-#define USE_PREINV_DIVREM_1 1 /* native */
-#define DIV_QR_1N_PI1_METHOD 1
-#define DIV_QR_1_NORM_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
-#define BMOD_1_TO_MOD_1_THRESHOLD 20
-
-#define MUL_TOOM22_THRESHOLD 45
-#define MUL_TOOM33_THRESHOLD 129
-#define MUL_TOOM44_THRESHOLD 387
-#define MUL_TOOM6H_THRESHOLD 517
-#define MUL_TOOM8H_THRESHOLD 774
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 137
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 222
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 137
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 235
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 208
-
-#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 54
-#define SQR_TOOM3_THRESHOLD 181
-#define SQR_TOOM4_THRESHOLD 490
-#define SQR_TOOM6_THRESHOLD 656
-#define SQR_TOOM8_THRESHOLD 0 /* always */
-
-#define MULMID_TOOM42_THRESHOLD 64
-
-#define MULMOD_BNM1_THRESHOLD 26
-#define SQRMOD_BNM1_THRESHOLD 28
-
-#define MUL_FFT_MODF_THRESHOLD 624 /* k = 5 */
-#define MUL_FFT_TABLE3 \
- { { 624, 5}, { 28, 6}, { 15, 5}, { 34, 6}, \
- { 18, 5}, { 37, 6}, { 28, 7}, { 15, 6}, \
- { 36, 7}, { 19, 6}, { 40, 7}, { 21, 6}, \
- { 43, 7}, { 23, 6}, { 47, 7}, { 25, 6}, \
- { 51, 7}, { 27, 6}, { 55, 7}, { 29, 8}, \
- { 15, 7}, { 31, 6}, { 63, 7}, { 37, 8}, \
- { 19, 7}, { 43, 8}, { 23, 7}, { 51, 8}, \
- { 27, 7}, { 57, 9}, { 15, 8}, { 31, 7}, \
- { 65, 8}, { 35, 7}, { 71, 8}, { 43, 9}, \
- { 23, 8}, { 55,10}, { 15, 9}, { 31, 8}, \
- { 71, 9}, { 39, 8}, { 83, 9}, { 47, 8}, \
- { 99, 9}, { 55,10}, { 31, 9}, { 79,10}, \
- { 47, 9}, { 103,11}, { 31,10}, { 63, 9}, \
- { 135,10}, { 79, 9}, { 167,10}, { 95, 9}, \
- { 191,10}, { 111,11}, { 63,10}, { 159,11}, \
- { 95,10}, { 191, 9}, { 383,12}, { 63,11}, \
- { 127,10}, { 255, 9}, { 511,10}, { 271,11}, \
- { 159,10}, { 319, 9}, { 639,10}, { 335, 9}, \
- { 671,10}, { 351,11}, { 191,10}, { 383, 9}, \
- { 767,10}, { 399, 9}, { 799,10}, { 415,11}, \
- { 223,12}, { 127,11}, { 255,10}, { 511, 9}, \
- { 1023,10}, { 543,11}, { 287,10}, { 575, 9}, \
- { 1151,11}, { 319,10}, { 671,11}, { 351,12}, \
- { 191,11}, { 383,10}, { 799,11}, { 415,10}, \
- { 831,13}, { 127,12}, { 255,11}, { 511,10}, \
- { 1023,11}, { 607,12}, { 319,11}, { 735,12}, \
- { 383,11}, { 863,12}, { 447,11}, { 959,13}, \
- { 255,12}, { 511,11}, { 1087,12}, { 575,11}, \
- { 1215,12}, { 639,11}, { 1279,12}, { 703,13}, \
- { 383,12}, { 767,11}, { 1535,12}, { 831,11}, \
- { 1663,12}, { 959,14}, { 255,13}, { 511,12}, \
- { 1023,11}, { 2047,12}, { 1215,13}, { 639,12}, \
- { 1407,13}, { 767,12}, { 1663,13}, { 895,12}, \
- { 1791,14}, { 511,13}, { 1023,12}, { 2111,13}, \
- { 1151,12}, { 2431,13}, { 1279,12}, { 2559,13}, \
- { 1407,14}, { 767,13}, { 1535,12}, { 3071,13}, \
- { 1663,12}, { 3455,13}, { 1791,15}, { 511,14}, \
- { 1023,13}, { 2047,12}, { 4095,13}, { 2175,12}, \
- { 4351,13}, { 2431,14}, { 1279,13}, { 2559,12}, \
- { 5119,13}, { 2815,14}, { 16384,15}, { 32768,16} }
-#define MUL_FFT_TABLE3_SIZE 160
-#define MUL_FFT_THRESHOLD 6784
-
-#define SQR_FFT_MODF_THRESHOLD 560 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 560, 5}, { 19, 4}, { 39, 5}, { 21, 4}, \
- { 43, 5}, { 29, 6}, { 15, 5}, { 33, 6}, \
- { 17, 5}, { 35, 6}, { 36, 7}, { 19, 6}, \
- { 40, 7}, { 21, 6}, { 43, 7}, { 23, 6}, \
- { 47, 7}, { 29, 8}, { 15, 7}, { 35, 8}, \
- { 19, 7}, { 43, 8}, { 23, 7}, { 49, 8}, \
- { 27, 7}, { 55, 9}, { 15, 8}, { 31, 7}, \
- { 65, 8}, { 35, 7}, { 71, 8}, { 43, 9}, \
- { 23, 8}, { 55, 9}, { 31, 8}, { 71, 9}, \
- { 39, 8}, { 83, 9}, { 47, 8}, { 95, 9}, \
- { 55,10}, { 31, 9}, { 79,10}, { 47, 9}, \
- { 103,11}, { 31,10}, { 63, 9}, { 135,10}, \
- { 79, 9}, { 159,10}, { 95, 9}, { 191,10}, \
- { 111,11}, { 63,10}, { 159,11}, { 95,10}, \
- { 191, 9}, { 383,10}, { 207,12}, { 63,11}, \
- { 127,10}, { 255, 9}, { 511, 8}, { 1023, 9}, \
- { 543,10}, { 287,11}, { 159,10}, { 319, 9}, \
- { 639,10}, { 335, 9}, { 671,10}, { 351,11}, \
- { 191,10}, { 383, 9}, { 767,10}, { 399, 9}, \
- { 799,10}, { 415, 9}, { 831,11}, { 223,12}, \
- { 127,11}, { 255,10}, { 511, 9}, { 1023,10}, \
- { 543,11}, { 287,10}, { 575, 9}, { 1151,10}, \
- { 607,11}, { 319,10}, { 671,11}, { 351,10}, \
- { 703,12}, { 191,11}, { 383,10}, { 799,11}, \
- { 415,10}, { 831,13}, { 127,11}, { 511,10}, \
- { 1023,11}, { 543,10}, { 1087,11}, { 575,10}, \
- { 1151,11}, { 607,12}, { 319,11}, { 671,10}, \
- { 1343,11}, { 735,12}, { 383,11}, { 863,12}, \
- { 447,11}, { 959,12}, { 511,11}, { 1087,12}, \
- { 575,11}, { 1215,12}, { 639,11}, { 1343,12}, \
- { 703,11}, { 1407,13}, { 383,12}, { 767,11}, \
- { 1599,12}, { 831,11}, { 1663,12}, { 895,11}, \
- { 1791,12}, { 959,13}, { 511,12}, { 1023,11}, \
- { 2047,12}, { 1215,13}, { 639,12}, { 1407,13}, \
- { 767,12}, { 1663,13}, { 895,12}, { 1791,14}, \
- { 511,13}, { 1023,12}, { 2111,13}, { 1151,12}, \
- { 2431,13}, { 1279,12}, { 2559,13}, { 1407,14}, \
- { 767,13}, { 1535,12}, { 3071,13}, { 1663,12}, \
- { 3455,13}, { 1791,15}, { 511,14}, { 1023,13}, \
- { 2047,12}, { 4095,13}, { 2175,12}, { 4351,13}, \
- { 2431,14}, { 1279,13}, { 2559,12}, { 5119,13}, \
- { 2815,14}, { 16384,15}, { 32768,16} }
-#define SQR_FFT_TABLE3_SIZE 167
-#define SQR_FFT_THRESHOLD 5312
-
-#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 38
-#define MULLO_MUL_N_THRESHOLD 13463
-
-#define DC_DIV_QR_THRESHOLD 42
-#define DC_DIVAPPR_Q_THRESHOLD 100
-#define DC_BDIV_QR_THRESHOLD 43
-#define DC_BDIV_Q_THRESHOLD 104
-
-#define INV_MULMOD_BNM1_THRESHOLD 98
-#define INV_NEWTON_THRESHOLD 138
-#define INV_APPR_THRESHOLD 133
-
-#define BINV_NEWTON_THRESHOLD 333
-#define REDC_1_TO_REDC_2_THRESHOLD 2
-#define REDC_2_TO_REDC_N_THRESHOLD 142
-
-#define MU_DIV_QR_THRESHOLD 2350
-#define MU_DIVAPPR_Q_THRESHOLD 2259
-#define MUPI_DIV_QR_THRESHOLD 70
-#define MU_BDIV_QR_THRESHOLD 2089
-#define MU_BDIV_Q_THRESHOLD 2172
-
-#define POWM_SEC_TABLE 37,48,81,615,1925
-
-#define MATRIX22_STRASSEN_THRESHOLD 22
-#define HGCD_THRESHOLD 64
-#define HGCD_APPR_THRESHOLD 50
-#define HGCD_REDUCE_THRESHOLD 4284
-#define GCD_DC_THRESHOLD 416
-#define GCDEXT_DC_THRESHOLD 298
-#define JACOBI_BASE_METHOD 4
-
-#define GET_STR_DC_THRESHOLD 18
-#define GET_STR_PRECOMPUTE_THRESHOLD 33
-#define SET_STR_DC_THRESHOLD 140
-#define SET_STR_PRECOMPUTE_THRESHOLD 748
-
-#define FAC_DSC_THRESHOLD 309
-#define FAC_ODD_THRESHOLD 29
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/rootrem.c b/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/rootrem.c
deleted file mode 100644
index 2edc74baa36..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/rootrem.c
+++ /dev/null
@@ -1,415 +0,0 @@
-/* mpn_rootrem(rootp,remp,ap,an,nth) -- Compute the nth root of {ap,an}, and
- store the truncated integer part at rootp and the remainder at remp.
-
- Contributed by Paul Zimmermann (algorithm) and
- Paul Zimmermann and Torbjorn Granlund (implementation).
-
- THE FUNCTIONS IN THIS FILE ARE INTERNAL, AND HAVE MUTABLE INTERFACES. IT'S
- ONLY SAFE TO REACH THEM THROUGH DOCUMENTED INTERFACES. IN FACT, IT'S ALMOST
- GUARANTEED THAT THEY'LL CHANGE OR DISAPPEAR IN A FUTURE GNU MP RELEASE.
-
-Copyright 2002, 2005, 2009-2012 Free Software Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-/* FIXME:
- This implementation is not optimal when remp == NULL, since the complexity
- is M(n), whereas it should be M(n/k) on average.
-*/
-
-#include <stdio.h> /* for NULL */
-
-#include "gmp.h"
-#include "gmp-impl.h"
-#include "longlong.h"
-
-static mp_size_t mpn_rootrem_internal (mp_ptr, mp_ptr, mp_srcptr, mp_size_t,
- mp_limb_t, int);
-
-#define MPN_RSHIFT(cy,rp,up,un,cnt) \
- do { \
- if ((cnt) != 0) \
- cy = mpn_rshift (rp, up, un, cnt); \
- else \
- { \
- MPN_COPY_INCR (rp, up, un); \
- cy = 0; \
- } \
- } while (0)
-
-#define MPN_LSHIFT(cy,rp,up,un,cnt) \
- do { \
- if ((cnt) != 0) \
- cy = mpn_lshift (rp, up, un, cnt); \
- else \
- { \
- MPN_COPY_DECR (rp, up, un); \
- cy = 0; \
- } \
- } while (0)
-
-
-/* Put in {rootp, ceil(un/k)} the kth root of {up, un}, rounded toward zero.
- If remp <> NULL, put in {remp, un} the remainder.
- Return the size (in limbs) of the remainder if remp <> NULL,
- or a non-zero value iff the remainder is non-zero when remp = NULL.
- Assumes:
- (a) up[un-1] is not zero
- (b) rootp has at least space for ceil(un/k) limbs
- (c) remp has at least space for un limbs (in case remp <> NULL)
- (d) the operands do not overlap.
-
- The auxiliary memory usage is 3*un+2 if remp = NULL,
- and 2*un+2 if remp <> NULL. FIXME: This is an incorrect comment.
-*/
-mp_size_t
-mpn_rootrem (mp_ptr rootp, mp_ptr remp,
- mp_srcptr up, mp_size_t un, mp_limb_t k)
-{
- mp_size_t m;
- ASSERT (un > 0);
- ASSERT (up[un - 1] != 0);
- ASSERT (k > 1);
-
- m = (un - 1) / k; /* ceil(un/k) - 1 */
- if (remp == NULL && m > 2)
- /* Pad {up,un} with k zero limbs. This will produce an approximate root
- with one more limb, allowing us to compute the exact integral result. */
- {
- mp_ptr sp, wp;
- mp_size_t rn, sn, wn;
- TMP_DECL;
- TMP_MARK;
- wn = un + k;
- wp = TMP_ALLOC_LIMBS (wn); /* will contain the padded input */
- sn = m + 2; /* ceil(un/k) + 1 */
- sp = TMP_ALLOC_LIMBS (sn); /* approximate root of padded input */
- MPN_COPY (wp + k, up, un);
- MPN_ZERO (wp, k);
- rn = mpn_rootrem_internal (sp, NULL, wp, wn, k, 1);
- /* The approximate root S = {sp,sn} is either the correct root of
- {sp,sn}, or 1 too large. Thus unless the least significant limb of
- S is 0 or 1, we can deduce the root of {up,un} is S truncated by one
- limb. (In case sp[0]=1, we can deduce the root, but not decide
- whether it is exact or not.) */
- MPN_COPY (rootp, sp + 1, sn - 1);
- TMP_FREE;
- return rn;
- }
- else
- {
- return mpn_rootrem_internal (rootp, remp, up, un, k, 0);
- }
-}
-
-/* if approx is non-zero, does not compute the final remainder */
-static mp_size_t
-mpn_rootrem_internal (mp_ptr rootp, mp_ptr remp, mp_srcptr up, mp_size_t un,
- mp_limb_t k, int approx)
-{
- mp_ptr qp, rp, sp, wp, scratch;
- mp_size_t qn, rn, sn, wn, nl, bn;
- mp_limb_t save, save2, cy;
- unsigned long int unb; /* number of significant bits of {up,un} */
- unsigned long int xnb; /* number of significant bits of the result */
- unsigned long b, kk;
- unsigned long sizes[GMP_NUMB_BITS + 1];
- int ni, i;
- int c;
- int logk;
- TMP_DECL;
-
- TMP_MARK;
-
- if (remp == NULL)
- {
- rp = TMP_ALLOC_LIMBS (un + 1); /* will contain the remainder */
- scratch = rp; /* used by mpn_div_q */
- }
- else
- {
- scratch = TMP_ALLOC_LIMBS (un + 1); /* used by mpn_div_q */
- rp = remp;
- }
- sp = rootp;
-
- MPN_SIZEINBASE_2EXP(unb, up, un, 1);
- /* unb is the number of bits of the input U */
-
- xnb = (unb - 1) / k + 1; /* ceil (unb / k) */
- /* xnb is the number of bits of the root R */
-
- if (xnb == 1) /* root is 1 */
- {
- if (remp == NULL)
- remp = rp;
- mpn_sub_1 (remp, up, un, (mp_limb_t) 1);
- MPN_NORMALIZE (remp, un); /* There should be at most one zero limb,
- if we demand u to be normalized */
- rootp[0] = 1;
- TMP_FREE;
- return un;
- }
-
- /* We initialize the algorithm with a 1-bit approximation to zero: since we
- know the root has exactly xnb bits, we write r0 = 2^(xnb-1), so that
- r0^k = 2^(k*(xnb-1)), that we subtract to the input. */
- kk = k * (xnb - 1); /* number of truncated bits in the input */
- rn = un - kk / GMP_NUMB_BITS; /* number of limbs of the non-truncated part */
- MPN_RSHIFT (cy, rp, up + kk / GMP_NUMB_BITS, rn, kk % GMP_NUMB_BITS);
- mpn_sub_1 (rp, rp, rn, 1); /* subtract the initial approximation: since
- the non-truncated part is less than 2^k, it
- is <= k bits: rn <= ceil(k/GMP_NUMB_BITS) */
- sp[0] = 1; /* initial approximation */
- sn = 1; /* it has one limb */
-
- for (logk = 1; ((k - 1) >> logk) != 0; logk++)
- ;
- /* logk = ceil(log(k)/log(2)) */
-
- b = xnb - 1; /* number of remaining bits to determine in the kth root */
- ni = 0;
- while (b != 0)
- {
- /* invariant: here we want b+1 total bits for the kth root */
- sizes[ni] = b;
- /* if c is the new value of b, this means that we'll go from a root
- of c+1 bits (say s') to a root of b+1 bits.
- It is proved in the book "Modern Computer Arithmetic" from Brent
- and Zimmermann, Chapter 1, that
- if s' >= k*beta, then at most one correction is necessary.
- Here beta = 2^(b-c), and s' >= 2^c, thus it suffices that
- c >= ceil((b + log2(k))/2). */
- b = (b + logk + 1) / 2;
- if (b >= sizes[ni])
- b = sizes[ni] - 1; /* add just one bit at a time */
- ni++;
- }
- sizes[ni] = 0;
- ASSERT_ALWAYS (ni < GMP_NUMB_BITS + 1);
- /* We have sizes[0] = b > sizes[1] > ... > sizes[ni] = 0 with
- sizes[i] <= 2 * sizes[i+1].
- Newton iteration will first compute sizes[ni-1] extra bits,
- then sizes[ni-2], ..., then sizes[0] = b. */
-
- /* qp and wp need enough space to store S'^k where S' is an approximate
- root. Since S' can be as large as S+2, the worst case is when S=2 and
- S'=4. But then since we know the number of bits of S in advance, S'
- can only be 3 at most. Similarly for S=4, then S' can be 6 at most.
- So the worst case is S'/S=3/2, thus S'^k <= (3/2)^k * S^k. Since S^k
- fits in un limbs, the number of extra limbs needed is bounded by
- ceil(k*log2(3/2)/GMP_NUMB_BITS). */
-#define EXTRA 2 + (mp_size_t) (0.585 * (double) k / (double) GMP_NUMB_BITS)
- qp = TMP_ALLOC_LIMBS (un + EXTRA); /* will contain quotient and remainder
- of R/(k*S^(k-1)), and S^k */
- wp = TMP_ALLOC_LIMBS (un + EXTRA); /* will contain S^(k-1), k*S^(k-1),
- and temporary for mpn_pow_1 */
-
- wp[0] = 1; /* {sp,sn}^(k-1) = 1 */
- wn = 1;
- for (i = ni; i != 0; i--)
- {
- /* 1: loop invariant:
- {sp, sn} is the current approximation of the root, which has
- exactly 1 + sizes[ni] bits.
- {rp, rn} is the current remainder
- {wp, wn} = {sp, sn}^(k-1)
- kk = number of truncated bits of the input
- */
- b = sizes[i - 1] - sizes[i]; /* number of bits to compute in that
- iteration */
-
- /* Reinsert a low zero limb if we normalized away the entire remainder */
- if (rn == 0)
- {
- rp[0] = 0;
- rn = 1;
- }
-
- /* first multiply the remainder by 2^b */
- MPN_LSHIFT (cy, rp + b / GMP_NUMB_BITS, rp, rn, b % GMP_NUMB_BITS);
- rn = rn + b / GMP_NUMB_BITS;
- if (cy != 0)
- {
- rp[rn] = cy;
- rn++;
- }
-
- kk = kk - b;
-
- /* 2: current buffers: {sp,sn}, {rp,rn}, {wp,wn} */
-
- /* Now insert bits [kk,kk+b-1] from the input U */
- bn = b / GMP_NUMB_BITS; /* lowest limb from high part of rp[] */
- save = rp[bn];
- /* nl is the number of limbs in U which contain bits [kk,kk+b-1] */
- nl = 1 + (kk + b - 1) / GMP_NUMB_BITS - (kk / GMP_NUMB_BITS);
- /* nl = 1 + floor((kk + b - 1) / GMP_NUMB_BITS)
- - floor(kk / GMP_NUMB_BITS)
- <= 1 + (kk + b - 1) / GMP_NUMB_BITS
- - (kk - GMP_NUMB_BITS + 1) / GMP_NUMB_BITS
- = 2 + (b - 2) / GMP_NUMB_BITS
- thus since nl is an integer:
- nl <= 2 + floor(b/GMP_NUMB_BITS) <= 2 + bn. */
- /* we have to save rp[bn] up to rp[nl-1], i.e. 1 or 2 limbs */
- if (nl - 1 > bn)
- save2 = rp[bn + 1];
- MPN_RSHIFT (cy, rp, up + kk / GMP_NUMB_BITS, nl, kk % GMP_NUMB_BITS);
- /* set to zero high bits of rp[bn] */
- rp[bn] &= ((mp_limb_t) 1 << (b % GMP_NUMB_BITS)) - 1;
- /* restore corresponding bits */
- rp[bn] |= save;
- if (nl - 1 > bn)
- rp[bn + 1] = save2; /* the low b bits go in rp[0..bn] only, since
- they start by bit 0 in rp[0], so they use
- at most ceil(b/GMP_NUMB_BITS) limbs */
-
- /* 3: current buffers: {sp,sn}, {rp,rn}, {wp,wn} */
-
- /* compute {wp, wn} = k * {sp, sn}^(k-1) */
- cy = mpn_mul_1 (wp, wp, wn, k);
- wp[wn] = cy;
- wn += cy != 0;
-
- /* 4: current buffers: {sp,sn}, {rp,rn}, {wp,wn} */
-
- /* now divide {rp, rn} by {wp, wn} to get the low part of the root */
- if (rn < wn)
- {
- qn = 0;
- }
- else
- {
- qn = rn - wn; /* expected quotient size */
- mpn_div_q (qp, rp, rn, wp, wn, scratch);
- qn += qp[qn] != 0;
- }
-
- /* 5: current buffers: {sp,sn}, {qp,qn}.
- Note: {rp,rn} is not needed any more since we'll compute it from
- scratch at the end of the loop.
- */
-
- /* Number of limbs used by b bits, when least significant bit is
- aligned to least limb */
- bn = (b - 1) / GMP_NUMB_BITS + 1;
-
- /* the quotient should be smaller than 2^b, since the previous
- approximation was correctly rounded toward zero */
- if (qn > bn || (qn == bn && (b % GMP_NUMB_BITS != 0) &&
- qp[qn - 1] >= ((mp_limb_t) 1 << (b % GMP_NUMB_BITS))))
- {
- qn = b / GMP_NUMB_BITS + 1; /* b+1 bits */
- MPN_ZERO (qp, qn);
- qp[qn - 1] = (mp_limb_t) 1 << (b % GMP_NUMB_BITS);
- MPN_DECR_U (qp, qn, 1);
- qn -= qp[qn - 1] == 0;
- }
-
- /* 6: current buffers: {sp,sn}, {qp,qn} */
-
- /* multiply the root approximation by 2^b */
- MPN_LSHIFT (cy, sp + b / GMP_NUMB_BITS, sp, sn, b % GMP_NUMB_BITS);
- sn = sn + b / GMP_NUMB_BITS;
- if (cy != 0)
- {
- sp[sn] = cy;
- sn++;
- }
-
- /* 7: current buffers: {sp,sn}, {qp,qn} */
-
- ASSERT_ALWAYS (bn >= qn); /* this is ok since in the case qn > bn
- above, q is set to 2^b-1, which has
- exactly bn limbs */
-
- /* Combine sB and q to form sB + q. */
- save = sp[b / GMP_NUMB_BITS];
- MPN_COPY (sp, qp, qn);
- MPN_ZERO (sp + qn, bn - qn);
- sp[b / GMP_NUMB_BITS] |= save;
-
- /* 8: current buffer: {sp,sn} */
-
- /* Since each iteration treats b bits from the root and thus k*b bits
- from the input, and we already considered b bits from the input,
- we now have to take another (k-1)*b bits from the input. */
- kk -= (k - 1) * b; /* remaining input bits */
- /* {rp, rn} = floor({up, un} / 2^kk) */
- MPN_RSHIFT (cy, rp, up + kk / GMP_NUMB_BITS, un - kk / GMP_NUMB_BITS, kk % GMP_NUMB_BITS);
- rn = un - kk / GMP_NUMB_BITS;
- rn -= rp[rn - 1] == 0;
-
- /* 9: current buffers: {sp,sn}, {rp,rn} */
-
- for (c = 0;; c++)
- {
- /* Compute S^k in {qp,qn}. */
- if (i == 1)
- {
- /* Last iteration: we don't need W anymore. */
- /* mpn_pow_1 requires that both qp and wp have enough space to
- store the result {sp,sn}^k + 1 limb */
- approx = approx && (sp[0] > 1);
- qn = (approx == 0) ? mpn_pow_1 (qp, sp, sn, k, wp) : 0;
- }
- else
- {
- /* W <- S^(k-1) for the next iteration,
- and S^k = W * S. */
- wn = mpn_pow_1 (wp, sp, sn, k - 1, qp);
- mpn_mul (qp, wp, wn, sp, sn);
- qn = wn + sn;
- qn -= qp[qn - 1] == 0;
- }
-
- /* if S^k > floor(U/2^kk), the root approximation was too large */
- if (qn > rn || (qn == rn && mpn_cmp (qp, rp, rn) > 0))
- MPN_DECR_U (sp, sn, 1);
- else
- break;
- }
-
- /* 10: current buffers: {sp,sn}, {rp,rn}, {qp,qn}, {wp,wn} */
-
- ASSERT_ALWAYS (c <= 1);
- ASSERT_ALWAYS (rn >= qn);
-
- /* R = R - Q = floor(U/2^kk) - S^k */
- if (i > 1 || approx == 0)
- {
- mpn_sub (rp, rp, rn, qp, qn);
- MPN_NORMALIZE (rp, rn);
- }
- /* otherwise we have rn > 0, thus the return value is ok */
-
- /* 11: current buffers: {sp,sn}, {rp,rn}, {wp,wn} */
- }
-
- TMP_FREE;
- return rn;
-}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/aors_n.asm b/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/aors_n.asm
deleted file mode 100644
index 81be6061903..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/aors_n.asm
+++ /dev/null
@@ -1,856 +0,0 @@
-dnl IA-64 mpn_add_n/mpn_sub_n -- mpn addition and subtraction.
-
-dnl Contributed to the GNU project by Torbjorn Granlund.
-
-dnl Copyright 2003-2005, 2010, 2011 Free Software Foundation, Inc.
-
-dnl This file is part of the GNU MP Library.
-dnl
-dnl The GNU MP Library is free software; you can redistribute it and/or modify
-dnl it under the terms of either:
-dnl
-dnl * the GNU Lesser General Public License as published by the Free
-dnl Software Foundation; either version 3 of the License, or (at your
-dnl option) any later version.
-dnl
-dnl or
-dnl
-dnl * the GNU General Public License as published by the Free Software
-dnl Foundation; either version 2 of the License, or (at your option) any
-dnl later version.
-dnl
-dnl or both in parallel, as here.
-dnl
-dnl The GNU MP Library is distributed in the hope that it will be useful, but
-dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-dnl for more details.
-dnl
-dnl You should have received copies of the GNU General Public License and the
-dnl GNU Lesser General Public License along with the GNU MP Library. If not,
-dnl see https://www.gnu.org/licenses/.
-
-include(`../config.m4')
-
-C cycles/limb
-C Itanium: 2.67
-C Itanium 2: 1.25
-
-C TODO
-C * Consider using special code for small n, using something like
-C "switch (8 * (n >= 8) + (n mod 8))" to enter it and feed-in code.
-C * The non-nc code was trimmed cycle for cycle to its current state. It is
-C probably hard to save more that an odd cycle there. The nc code is much
-C cruder (since tune/speed doesn't have any applicable direct measurements).
-C * Without the nc entry points, this becomes around 1800 bytes of object
-C code; the nc code adds over 1000 bytes. We should perhaps sacrifice a
-C few cycles for the non-nc code and let it fall into the nc code.
-
-C INPUT PARAMETERS
-define(`rp', `r32')
-define(`up', `r33')
-define(`vp', `r34')
-define(`n', `r35')
-define(`cy', `r36')
-
-ifdef(`OPERATION_add_n',`
- define(ADDSUB, add)
- define(CND, ltu)
- define(INCR, 1)
- define(LIM, -1)
- define(LIM2, 0)
- define(func, mpn_add_n)
- define(func_nc, mpn_add_nc)
-')
-ifdef(`OPERATION_sub_n',`
- define(ADDSUB, sub)
- define(CND, gtu)
- define(INCR, -1)
- define(LIM, 0)
- define(LIM2, -1)
- define(func, mpn_sub_n)
- define(func_nc, mpn_sub_nc)
-')
-
-define(cmpeqor, `cmp.eq.or')
-define(PFDIST, 500)
-
-C Some useful aliases for registers we use
-define(`u0',`r14') define(`u1',`r15') define(`u2',`r16') define(`u3',`r17')
-define(`v0',`r24') define(`v1',`r25') define(`v2',`r26') define(`v3',`r27')
-define(`w0',`r28') define(`w1',`r29') define(`w2',`r30') define(`w3',`r31')
-define(`rpx',`r3')
-define(`upadv',`r20') define(`vpadv',`r21')
-
-MULFUNC_PROLOGUE(mpn_add_n mpn_add_nc mpn_sub_n mpn_sub_nc)
-
-ASM_START()
-PROLOGUE(func_nc)
- .prologue
- .save ar.lc, r2
- .body
-ifdef(`HAVE_ABI_32',`
- addp4 rp = 0, rp C M I
- addp4 up = 0, up C M I
- nop.i 0
- addp4 vp = 0, vp C M I
- nop.m 0
- zxt4 n = n C I
- ;;
-')
-
- {.mmi; ld8 r11 = [vp], 8 C M01
- ld8 r10 = [up], 8 C M01
- mov r2 = ar.lc C I0
-}{.mmi; and r14 = 7, n C M I
- cmp.lt p15, p14 = 8, n C M I
- add n = -6, n C M I
- ;;
-}
-.mmi; add upadv = PFDIST, up C Merging these lines into the feed-in
- add vpadv = PFDIST, vp C code could save a cycle per call at
- mov r23 = cy C the expense of code size.
- ;;
-{.mmi; cmp.eq p6, p0 = 1, r14 C M I
- cmp.eq p7, p0 = 2, r14 C M I
- cmp.eq p8, p0 = 3, r14 C M I
-}{.bbb
- (p6) br.dptk .Lc001 C B
- (p7) br.dptk .Lc010 C B
- (p8) br.dptk .Lc011 C B
- ;;
-}{.mmi; cmp.eq p9, p0 = 4, r14 C M I
- cmp.eq p10, p0 = 5, r14 C M I
- cmp.eq p11, p0 = 6, r14 C M I
-}{.bbb
- (p9) br.dptk .Lc100 C B
- (p10) br.dptk .Lc101 C B
- (p11) br.dptk .Lc110 C B
- ;;
-}{.mmi; ld8 r19 = [vp], 8 C M01
- ld8 r18 = [up], 8 C M01
- cmp.ne p13, p0 = 0, cy C copy cy to p13 M I
-}{.mmb; cmp.eq p12, p0 = 7, r14 C M I
- nop 0
- (p12) br.dptk .Lc111 C B
- ;;
-}
-
-.Lc000:
-.mmi; ld8 v3 = [vp], 8 C M01
- ld8 u3 = [up], 8 C M01
- shr.u n = n, 3 C I0
- ;;
-.mmi; add vpadv = PFDIST, vp C M I
- ld8 v0 = [vp], 8 C M01
- mov ar.lc = n C I0
-.mmi; ld8 u0 = [up], 8 C M01
- ADDSUB w1 = r10, r11 C M I
- nop 0
- ;;
-.mmi; add upadv = PFDIST, up C M I
- ld8 v1 = [vp], 8 C M01
- cmp.CND p7, p0 = w1, r10 C M I
-.mmi; ld8 u1 = [up], 8 C M01
- ADDSUB w2 = r18, r19 C M I
- add rpx = 8, rp C M I
- ;;
-.mmi; ld8 v2 = [vp], 8 C M01
- cmp.CND p8, p0 = w2, r18 C M I
- (p13) cmpeqor p7, p0 = LIM, w1 C M I
-.mmi; ld8 u2 = [up], 8 C M01
- (p13) add w1 = INCR, w1 C M I
- ADDSUB w3 = u3, v3 C M I
- ;;
-.mmi; ld8 v3 = [vp], 8 C M01
- cmp.CND p9, p0 = w3, u3 C M I
- (p7) cmpeqor p8, p0 = LIM, w2 C M I
-.mmb; ld8 u3 = [up], 8 C M01
- (p7) add w2 = INCR, w2 C M I
- br L(m0)
-
-
-.Lc001:
-.mmi;
- (p15) ld8 v1 = [vp], 8 C M01
- (p15) ld8 u1 = [up], 8 C M01
- ADDSUB w0 = r10, r11 C M I
-.mmb; nop 0
- nop 0
- (p15) br 1f
- ;;
-.mmi; cmp.ne p9, p0 = 0, r23 C M I
- mov r8 = 0
- cmp.CND p6, p0 = w0, r10 C M I
- ;;
-.mmb;
- (p9) cmpeqor p6, p0 = LIM, w0 C M I
- (p9) add w0 = INCR, w0 C M I
- br L(cj1) C B
-1:
-.mmi; ld8 v2 = [vp], 8 C M01
- ld8 u2 = [up], 8 C M01
- shr.u n = n, 3 C I0
- ;;
-.mmi; ld8 v3 = [vp], 8 C M01
- ld8 u3 = [up], 8 C M01
- mov ar.lc = n C I0
-.mmi; nop 0
- cmp.ne p9, p0 = 0, r23 C M I
- nop 0
- ;;
-.mmi; ld8 v0 = [vp], 8 C M01
- cmp.CND p6, p0 = w0, r10 C M I
- add rpx = 16, rp C M I
-.mmb; ld8 u0 = [up], 8 C M01
- ADDSUB w1 = u1, v1 C M I
- br L(c1) C B
-
-
-.Lc010:
-.mmi; ld8 v0 = [vp], 8 C M01
- ld8 u0 = [up], 8 C M01
- mov r8 = 0 C M I
-.mmb; ADDSUB w3 = r10, r11 C M I
- cmp.ne p8, p0 = 0, r23 C M I
- (p15) br 1f C B
- ;;
-.mmi; cmp.CND p9, p0 = w3, r10 C M I
- ADDSUB w0 = u0, v0 C M I
- (p8) add w3 = INCR, w3 C M I
- ;;
-.mmb; cmp.CND p6, p0 = w0, u0 C M I
- (p8) cmpeqor p9, p0 = LIM2, w3 C M I
- br L(cj2) C B
-1:
-.mmi; ld8 v1 = [vp], 8 C M01
- ld8 u1 = [up], 8 C M01
- shr.u n = n, 3 C I0
- ;;
-.mmi; ld8 v2 = [vp], 8 C M01
- ld8 u2 = [up], 8 C M01
- mov ar.lc = n C I0
- ;;
-.mmi; ld8 v3 = [vp], 8 C M01
- ld8 u3 = [up], 8 C M01
- cmp.CND p9, p0 = w3, r10 C M I
- ;;
-.mmi;
- (p8) cmpeqor p9, p0 = LIM, w3 C M I
- (p8) add w3 = INCR, w3 C M I
- ADDSUB w0 = u0, v0 C M I
-.mmb; add rpx = 24, rp C M I
- nop 0
- br L(m23) C B
-
-
-.Lc011:
-.mmi; ld8 v3 = [vp], 8 C M01
- ld8 u3 = [up], 8 C M01
- shr.u n = n, 3 C I0
-.mmi; ADDSUB w2 = r10, r11 C M I
- cmp.ne p7, p0 = 0, r23 C M I
- nop 0
- ;;
-.mmb; ld8 v0 = [vp], 8 C M01
- ld8 u0 = [up], 8 C M01
- (p15) br 1f C B
-.mmi; cmp.CND p8, p0 = w2, r10 C M I
- ADDSUB w3 = u3, v3 C M I
- nop 0
- ;;
-.mmb;
- (p7) cmpeqor p8, p0 = LIM, w2 C M I
- (p7) add w2 = INCR, w2 C M I
- br L(cj3) C B
-1:
-.mmi; ld8 v1 = [vp], 8 C M01
- ld8 u1 = [up], 8 C M01
- ADDSUB w3 = u3, v3 C M I
- ;;
-.mmi; ld8 v2 = [vp], 8 C M01
- ld8 u2 = [up], 8 C M01
- cmp.CND p8, p0 = w2, r10 C M I
- ;;
-.mmi; ld8 v3 = [vp], 8 C M01
- cmp.CND p9, p0 = w3, u3 C M I
- mov ar.lc = n C I0
-.mmi; ld8 u3 = [up], 8 C M01
- (p7) cmpeqor p8, p0 = LIM, w2 C M I
- (p7) add w2 = INCR, w2 C M I
- ;;
-.mmi; add rpx = 32, rp C M I
- st8 [rp] = w2, 8 C M23
- (p8) cmpeqor p9, p0 = LIM, w3 C M I
-.mmb;
- (p8) add w3 = INCR, w3 C M I
- ADDSUB w0 = u0, v0 C M I
- br L(m23)
-
-
-.Lc100:
-.mmi; ld8 v2 = [vp], 8 C M01
- ld8 u2 = [up], 8 C M01
- shr.u n = n, 3 C I0
-.mmi; ADDSUB w1 = r10, r11 C M I
- nop 0
- nop 0
- ;;
-.mmi; ld8 v3 = [vp], 8 C M01
- ld8 u3 = [up], 8 C M01
- add rpx = 8, rp C M I
-.mmi; cmp.ne p6, p0 = 0, r23 C M I
- cmp.CND p7, p0 = w1, r10 C M I
- nop 0
- ;;
-.mmi; ld8 v0 = [vp], 8 C M01
- ld8 u0 = [up], 8 C M01
- ADDSUB w2 = u2, v2 C M I
-.mmb;
- (p6) cmpeqor p7, p0 = LIM, w1 C M I
- (p6) add w1 = INCR, w1 C M I
- (p14) br L(cj4)
- ;;
-.mmi; ld8 v1 = [vp], 8 C M01
- ld8 u1 = [up], 8 C M01
- mov ar.lc = n C I0
- ;;
-.mmi; ld8 v2 = [vp], 8 C M01
- cmp.CND p8, p0 = w2, u2 C M I
- nop 0
-.mmi; ld8 u2 = [up], 8 C M01
- nop 0
- ADDSUB w3 = u3, v3 C M I
- ;;
-.mmi; ld8 v3 = [vp], 8 C M01
- cmp.CND p9, p0 = w3, u3 C M I
- (p7) cmpeqor p8, p0 = LIM, w2 C M I
-.mmb; ld8 u3 = [up], 8 C M01
- (p7) add w2 = INCR, w2 C M I
- br L(m4)
-
-
-.Lc101:
-.mmi; ld8 v1 = [vp], 8 C M01
- ld8 u1 = [up], 8 C M01
- shr.u n = n, 3 C I0
- ;;
-.mmi; ld8 v2 = [vp], 8 C M01
- ld8 u2 = [up], 8 C M01
- mov ar.lc = n C I0
- ;;
-.mmi; ld8 v3 = [vp], 8 C M01
- ld8 u3 = [up], 8 C M01
- ADDSUB w0 = r10, r11 C M I
-.mmi; cmp.ne p9, p0 = 0, r23 C M I
- add rpx = 16, rp C M I
- nop 0
- ;;
-.mmi; ld8 v0 = [vp], 8 C M01
- ld8 u0 = [up], 8 C M01
- cmp.CND p6, p0 = w0, r10 C M I
-.mbb; ADDSUB w1 = u1, v1 C M I
- (p15) br L(c5) C B
- br L(end) C B
-
-
-.Lc110:
-.mmi; ld8 v0 = [vp], 8 C M01
- ld8 u0 = [up], 8 C M01
- shr.u n = n, 3 C I0
- ;;
-.mmi; add upadv = PFDIST, up C M I
- add vpadv = PFDIST, vp C M I
- mov ar.lc = n C I0
-.mmi; ld8 v1 = [vp], 8 C M01
- ld8 u1 = [up], 8 C M01
- ADDSUB w3 = r10, r11 C M I
- ;;
-.mmi; ld8 v2 = [vp], 8 C M01
- ld8 u2 = [up], 8 C M01
- ADDSUB w0 = u0, v0 C M I
-.mmi; cmp.CND p9, p0 = w3, r10 C M I
- cmp.ne p8, p0 = 0, r23 C M I
- add rpx = 24, rp C M I
- ;;
-.mmi; ld8 v3 = [vp], 8 C M01
- ld8 u3 = [up], 8 C M01
- nop 0
-.mmb;
- (p8) cmpeqor p9, p0 = LIM, w3 C M I
- (p8) add w3 = INCR, w3 C M I
- br L(m67) C B
-
-
-.Lc111:
-.mmi; ld8 v0 = [vp], 8 C M01
- ld8 u0 = [up], 8 C M01
- shr.u n = n, 3 C I0
- ;;
-.mmi; add upadv = PFDIST, up C M I
- ld8 v1 = [vp], 8 C M01
- mov ar.lc = n C I0
-.mmi; ld8 u1 = [up], 8 C M01
- ADDSUB w2 = r10, r11 C M I
- nop 0
- ;;
-.mmi; add vpadv = PFDIST, vp C M I
- ld8 v2 = [vp], 8 C M01
- cmp.CND p8, p0 = w2, r10 C M I
-.mmi; ld8 u2 = [up], 8 C M01
- ADDSUB w3 = r18, r19 C M I
- nop 0
- ;;
-.mmi; ld8 v3 = [vp], 8 C M01
- cmp.CND p9, p0 = w3, r18 C M I
- (p13) cmpeqor p8, p0 = LIM, w2 C M I
-.mmi; ld8 u3 = [up], 8 C M01
- (p13) add w2 = INCR, w2 C M I
- nop 0
- ;;
-.mmi; add rpx = 32, rp C M I
- st8 [rp] = w2, 8 C M23
- (p8) cmpeqor p9, p0 = LIM, w3 C M I
-.mmb;
- (p8) add w3 = INCR, w3 C M I
- ADDSUB w0 = u0, v0 C M I
- br L(m67)
-
-EPILOGUE()
-
-PROLOGUE(func)
- .prologue
- .save ar.lc, r2
- .body
-ifdef(`HAVE_ABI_32',`
- addp4 rp = 0, rp C M I
- addp4 up = 0, up C M I
- nop.i 0
- addp4 vp = 0, vp C M I
- nop.m 0
- zxt4 n = n C I
- ;;
-')
-
- {.mmi; ld8 r11 = [vp], 8 C M01
- ld8 r10 = [up], 8 C M01
- mov r2 = ar.lc C I0
-}{.mmi; and r14 = 7, n C M I
- cmp.lt p15, p14 = 8, n C M I
- add n = -6, n C M I
- ;;
-}{.mmi; cmp.eq p6, p0 = 1, r14 C M I
- cmp.eq p7, p0 = 2, r14 C M I
- cmp.eq p8, p0 = 3, r14 C M I
-}{.bbb
- (p6) br.dptk .Lb001 C B
- (p7) br.dptk .Lb010 C B
- (p8) br.dptk .Lb011 C B
- ;;
-}{.mmi; cmp.eq p9, p0 = 4, r14 C M I
- cmp.eq p10, p0 = 5, r14 C M I
- cmp.eq p11, p0 = 6, r14 C M I
-}{.bbb
- (p9) br.dptk .Lb100 C B
- (p10) br.dptk .Lb101 C B
- (p11) br.dptk .Lb110 C B
- ;;
-}{.mmi; ld8 r19 = [vp], 8 C M01
- ld8 r18 = [up], 8 C M01
- cmp.ne p13, p0 = r0, r0 C clear "CF" M I
-}{.mmb; cmp.eq p12, p0 = 7, r14 C M I
- mov r23 = 0 C M I
- (p12) br.dptk .Lb111 C B
- ;;
-}
-
-.Lb000:
-.mmi; ld8 v3 = [vp], 8 C M01
- ld8 u3 = [up], 8 C M01
- shr.u n = n, 3 C I0
- ;;
-.mmi; ld8 v0 = [vp], 8 C M01
- ld8 u0 = [up], 8 C M01
- ADDSUB w1 = r10, r11 C M I
- ;;
-.mmi; ld8 v1 = [vp], 8 C M01
- cmp.CND p7, p0 = w1, r10 C M I
- mov ar.lc = n C I0
-.mmi; ld8 u1 = [up], 8 C M01
- ADDSUB w2 = r18, r19 C M I
- add rpx = 8, rp C M I
- ;;
-.mmi; add upadv = PFDIST, up
- add vpadv = PFDIST, vp
- cmp.CND p8, p0 = w2, r18 C M I
-.mmi; ld8 v2 = [vp], 8 C M01
- ld8 u2 = [up], 8 C M01
- ADDSUB w3 = u3, v3 C M I
- ;;
-.mmi; ld8 v3 = [vp], 8 C M01
- cmp.CND p9, p0 = w3, u3 C M I
- (p7) cmpeqor p8, p0 = LIM, w2 C M I
-.mmb; ld8 u3 = [up], 8 C M01
- (p7) add w2 = INCR, w2 C M I
- br L(m0) C B
-
-
- ALIGN(32)
-.Lb001:
-.mmi; ADDSUB w0 = r10, r11 C M I
- (p15) ld8 v1 = [vp], 8 C M01
- mov r8 = 0 C M I
- ;;
-.mmb; cmp.CND p6, p0 = w0, r10 C M I
- (p15) ld8 u1 = [up], 8 C M01
- (p14) br L(cj1) C B
- ;;
-.mmi; add upadv = PFDIST, up
- add vpadv = PFDIST, vp
- shr.u n = n, 3 C I0
-.mmi; ld8 v2 = [vp], 8 C M01
- ld8 u2 = [up], 8 C M01
- cmp.CND p6, p0 = w0, r10 C M I
- ;;
-.mmi; ld8 v3 = [vp], 8 C M01
- ld8 u3 = [up], 8 C M01
- mov ar.lc = n C I0
- ;;
-.mmi; ld8 v0 = [vp], 8 C M01
- ld8 u0 = [up], 8 C M01
- ADDSUB w1 = u1, v1 C M I
- ;;
-.mmi; ld8 v1 = [vp], 8 C M01
- cmp.CND p7, p0 = w1, u1 C M I
- ADDSUB w2 = u2, v2 C M I
-.mmb; ld8 u1 = [up], 8 C M01
- add rpx = 16, rp C M I
- br L(m1) C B
-
-
- ALIGN(32)
-.Lb010:
-.mmi; ld8 v0 = [vp], 8 C M01
- ld8 u0 = [up], 8 C M01
- shr.u n = n, 3 C I0
-.mmb; ADDSUB w3 = r10, r11 C M I
- nop 0
- (p15) br L(gt2) C B
- ;;
-.mmi; cmp.CND p9, p0 = w3, r10 C M I
- ADDSUB w0 = u0, v0 C M I
- mov r8 = 0 C M I
- ;;
-.mmb; nop 0
- cmp.CND p6, p0 = w0, u0 C M I
- br L(cj2) C B
-L(gt2):
-.mmi; ld8 v1 = [vp], 8 C M01
- ld8 u1 = [up], 8 C M01
- nop 0
- ;;
-.mmi; add upadv = PFDIST, up
- add vpadv = PFDIST, vp
- mov ar.lc = n C I0
-.mmi; ld8 v2 = [vp], 8 C M01
- ld8 u2 = [up], 8 C M01
- nop 0
- ;;
-.mmi; ld8 v3 = [vp], 8 C M01
- cmp.CND p9, p0 = w3, r10 C M I
- ADDSUB w0 = u0, v0 C M I
-.mmb; ld8 u3 = [up], 8 C M01
- add rpx = 24, rp C M I
- br L(m23) C B
-
-
- ALIGN(32)
-.Lb011:
-.mmi; ld8 v3 = [vp], 8 C M01
- ld8 u3 = [up], 8 C M01
- ADDSUB w2 = r10, r11 C M I
- ;;
-.mmb; ld8 v0 = [vp], 8 C M01
- ld8 u0 = [up], 8 C M01
- (p15) br 1f C B
-.mmb; cmp.CND p8, p0 = w2, r10 C M I
- ADDSUB w3 = u3, v3 C M I
- br L(cj3) C B
-1:
-.mmi; ld8 v1 = [vp], 8 C M01
- ld8 u1 = [up], 8 C M01
- shr.u n = n, 3 C I0
- ;;
-.mmi; add upadv = PFDIST, up
- add vpadv = PFDIST, vp
- ADDSUB w3 = u3, v3 C M I
-.mmi; ld8 v2 = [vp], 8 C M01
- ld8 u2 = [up], 8 C M01
- cmp.CND p8, p0 = w2, r10 C M I
- ;;
-.mmi; ld8 v3 = [vp], 8 C M01
- cmp.CND p9, p0 = w3, u3 C M I
- mov ar.lc = n C I0
-.mmi; ld8 u3 = [up], 8 C M01
- nop 0
- nop 0
- ;;
-.mmi; add rpx = 32, rp C M I
- st8 [rp] = w2, 8 C M23
- (p8) cmpeqor p9, p0 = LIM, w3 C M I
-.mmb;
- (p8) add w3 = INCR, w3 C M I
- ADDSUB w0 = u0, v0 C M I
- br L(m23) C B
-
-
- ALIGN(32)
-.Lb100:
-.mmi; ld8 v2 = [vp], 8 C M01
- ld8 u2 = [up], 8 C M01
- shr.u n = n, 3 C I0
- ;;
-.mmi; ld8 v3 = [vp], 8 C M01
- ld8 u3 = [up], 8 C M01
- ADDSUB w1 = r10, r11 C M I
- ;;
-.mmi; ld8 v0 = [vp], 8 C M01
- ld8 u0 = [up], 8 C M01
- cmp.CND p7, p0 = w1, r10 C M I
-.mmb; nop 0
- ADDSUB w2 = u2, v2 C M I
- (p14) br L(cj4) C B
- ;;
-L(gt4):
-.mmi; add upadv = PFDIST, up
- add vpadv = PFDIST, vp
- mov ar.lc = n C I0
-.mmi; ld8 v1 = [vp], 8 C M01
- ld8 u1 = [up], 8 C M01
- nop 0
- ;;
-.mmi; ld8 v2 = [vp], 8 C M01
- cmp.CND p8, p0 = w2, u2 C M I
- nop 0
-.mmi; ld8 u2 = [up], 8 C M01
- ADDSUB w3 = u3, v3 C M I
- add rpx = 8, rp C M I
- ;;
-.mmi; ld8 v3 = [vp], 8 C M01
- cmp.CND p9, p0 = w3, u3 C M I
- (p7) cmpeqor p8, p0 = LIM, w2 C M I
-.mmb; ld8 u3 = [up], 8 C M01
- (p7) add w2 = INCR, w2 C M I
- br L(m4) C B
-
-
- ALIGN(32)
-.Lb101:
-.mmi; ld8 v1 = [vp], 8 C M01
- ld8 u1 = [up], 8 C M01
- shr.u n = n, 3 C I0
- ;;
-.mmi; ld8 v2 = [vp], 8 C M01
- ld8 u2 = [up], 8 C M01
- ADDSUB w0 = r10, r11 C M I
- ;;
-.mmi; add upadv = PFDIST, up
- add vpadv = PFDIST, vp
- add rpx = 16, rp C M I
-.mmi; ld8 v3 = [vp], 8 C M01
- ld8 u3 = [up], 8 C M01
- nop 0
- ;;
-.mmi; ld8 v0 = [vp], 8 C M01
- cmp.CND p6, p0 = w0, r10 C M I
- nop 0
-.mmb; ld8 u0 = [up], 8 C M01
- ADDSUB w1 = u1, v1 C M I
- (p14) br L(cj5) C B
- ;;
-L(gt5):
-.mmi; ld8 v1 = [vp], 8 C M01
- cmp.CND p7, p0 = w1, u1 C M I
- mov ar.lc = n C I0
-.mmb; ld8 u1 = [up], 8 C M01
- ADDSUB w2 = u2, v2 C M I
- br L(m5) C B
-
-
- ALIGN(32)
-.Lb110:
-.mmi; ld8 v0 = [vp], 8 C M01
- ld8 u0 = [up], 8 C M01
- shr.u n = n, 3 C I0
- ;;
-.mmi; ld8 v1 = [vp], 8 C M01
- ld8 u1 = [up], 8 C M01
- ADDSUB w3 = r10, r11 C M I
- ;;
-.mmi; add upadv = PFDIST, up
- add vpadv = PFDIST, vp
- mov ar.lc = n C I0
-.mmi; ld8 v2 = [vp], 8 C M01
- ld8 u2 = [up], 8 C M01
- nop 0
- ;;
-.mmi; ld8 v3 = [vp], 8 C M01
- cmp.CND p9, p0 = w3, r10 C M I
- ADDSUB w0 = u0, v0 C M I
-.mmb; ld8 u3 = [up], 8 C M01
- add rpx = 24, rp C M I
- br L(m67) C B
-
-
- ALIGN(32)
-.Lb111:
-.mmi; ld8 v0 = [vp], 8 C M01
- ld8 u0 = [up], 8 C M01
- shr.u n = n, 3 C I0
- ;;
-.mmi; ld8 v1 = [vp], 8 C M01
- ld8 u1 = [up], 8 C M01
- ADDSUB w2 = r10, r11 C M I
- ;;
-.mmi; ld8 v2 = [vp], 8 C M01
- cmp.CND p8, p0 = w2, r10 C M I
- mov ar.lc = n C I0
-.mmi; ld8 u2 = [up], 8 C M01
- ADDSUB w3 = r18, r19 C M I
- nop 0
- ;;
-.mmi; add upadv = PFDIST, up
- add vpadv = PFDIST, vp
- nop 0
-.mmi; ld8 v3 = [vp], 8 C M01
- ld8 u3 = [up], 8 C M01
- cmp.CND p9, p0 = w3, r18 C M I
- ;;
-.mmi; add rpx = 32, rp C M I
- st8 [rp] = w2, 8 C M23
- (p8) cmpeqor p9, p0 = LIM, w3 C M I
-.mmb;
- (p8) add w3 = INCR, w3 C M I
- ADDSUB w0 = u0, v0 C M I
- br L(m67) C B
-
-
-C *** MAIN LOOP START ***
- ALIGN(32)
-L(top):
-L(c5): ld8 v1 = [vp], 8 C M01
- cmp.CND p7, p0 = w1, u1 C M I
- (p9) cmpeqor p6, p0 = LIM, w0 C M I
- ld8 u1 = [up], 8 C M01
- (p9) add w0 = INCR, w0 C M I
- ADDSUB w2 = u2, v2 C M I
- ;;
-L(m5): ld8 v2 = [vp], 8 C M01
- cmp.CND p8, p0 = w2, u2 C M I
- (p6) cmpeqor p7, p0 = LIM, w1 C M I
- ld8 u2 = [up], 8 C M01
- (p6) add w1 = INCR, w1 C M I
- ADDSUB w3 = u3, v3 C M I
- ;;
- st8 [rp] = w0, 8 C M23
- ld8 v3 = [vp], 8 C M01
- cmp.CND p9, p0 = w3, u3 C M I
- (p7) cmpeqor p8, p0 = LIM, w2 C M I
- ld8 u3 = [up], 8 C M01
- (p7) add w2 = INCR, w2 C M I
- ;;
-L(m4): st8 [rp] = w1, 16 C M23
- st8 [rpx] = w2, 32 C M23
- (p8) cmpeqor p9, p0 = LIM, w3 C M I
- lfetch [upadv], 64
- (p8) add w3 = INCR, w3 C M I
- ADDSUB w0 = u0, v0 C M I
- ;;
-L(m23): st8 [rp] = w3, 8 C M23
- ld8 v0 = [vp], 8 C M01
- cmp.CND p6, p0 = w0, u0 C M I
- ld8 u0 = [up], 8 C M01
- ADDSUB w1 = u1, v1 C M I
- nop.b 0
- ;;
-L(c1): ld8 v1 = [vp], 8 C M01
- cmp.CND p7, p0 = w1, u1 C M I
- (p9) cmpeqor p6, p0 = LIM, w0 C M I
- ld8 u1 = [up], 8 C M01
- (p9) add w0 = INCR, w0 C M I
- ADDSUB w2 = u2, v2 C M I
- ;;
-L(m1): ld8 v2 = [vp], 8 C M01
- cmp.CND p8, p0 = w2, u2 C M I
- (p6) cmpeqor p7, p0 = LIM, w1 C M I
- ld8 u2 = [up], 8 C M01
- (p6) add w1 = INCR, w1 C M I
- ADDSUB w3 = u3, v3 C M I
- ;;
- st8 [rp] = w0, 8 C M23
- ld8 v3 = [vp], 8 C M01
- cmp.CND p9, p0 = w3, u3 C M I
- (p7) cmpeqor p8, p0 = LIM, w2 C M I
- ld8 u3 = [up], 8 C M01
- (p7) add w2 = INCR, w2 C M I
- ;;
-L(m0): st8 [rp] = w1, 16 C M23
- st8 [rpx] = w2, 32 C M23
- (p8) cmpeqor p9, p0 = LIM, w3 C M I
- lfetch [vpadv], 64
- (p8) add w3 = INCR, w3 C M I
- ADDSUB w0 = u0, v0 C M I
- ;;
-L(m67): st8 [rp] = w3, 8 C M23
- ld8 v0 = [vp], 8 C M01
- cmp.CND p6, p0 = w0, u0 C M I
- ld8 u0 = [up], 8 C M01
- ADDSUB w1 = u1, v1 C M I
- br.cloop.dptk L(top) C B
- ;;
-C *** MAIN LOOP END ***
-
-L(end):
-.mmi;
- (p9) cmpeqor p6, p0 = LIM, w0 C M I
- (p9) add w0 = INCR, w0 C M I
- mov ar.lc = r2 C I0
-L(cj5):
-.mmi; cmp.CND p7, p0 = w1, u1 C M I
- ADDSUB w2 = u2, v2 C M I
- nop 0
- ;;
-.mmi; st8 [rp] = w0, 8 C M23
- (p6) cmpeqor p7, p0 = LIM, w1 C M I
- (p6) add w1 = INCR, w1 C M I
-L(cj4):
-.mmi; cmp.CND p8, p0 = w2, u2 C M I
- ADDSUB w3 = u3, v3 C M I
- nop 0
- ;;
-.mmi; st8 [rp] = w1, 8 C M23
- (p7) cmpeqor p8, p0 = LIM, w2 C M I
- (p7) add w2 = INCR, w2 C M I
-L(cj3):
-.mmi; cmp.CND p9, p0 = w3, u3 C M I
- ADDSUB w0 = u0, v0 C M I
- nop 0
- ;;
-.mmi; st8 [rp] = w2, 8 C M23
- (p8) cmpeqor p9, p0 = LIM, w3 C M I
- (p8) add w3 = INCR, w3 C M I
-.mmi; cmp.CND p6, p0 = w0, u0 C M I
- nop 0
- mov r8 = 0 C M I
- ;;
-L(cj2):
-.mmi; st8 [rp] = w3, 8 C M23
- (p9) cmpeqor p6, p0 = LIM, w0 C M I
- (p9) add w0 = INCR, w0 C M I
- ;;
-L(cj1):
-.mmb; st8 [rp] = w0, 8 C M23
- (p6) mov r8 = 1 C M I
- br.ret.sptk.many b0 C B
-EPILOGUE()
-ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/gmp-mparam.h b/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/gmp-mparam.h
deleted file mode 100644
index bdbd62d9746..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/gmp-mparam.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/* gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright 2000-2005, 2009-2011, 2014 Free Software Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#define GMP_LIMB_BITS 64
-#define GMP_LIMB_BYTES 8
-
-/* 900MHz Itanium2 (titanic.gmplib.org) */
-/* FFT tuning limit = 25000000 */
-/* Generated by tuneup.c, 2014-03-12, gcc 4.4 */
-
-#define MOD_1_1P_METHOD 2
-#define MOD_1_NORM_THRESHOLD 0 /* always */
-#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 3
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 26
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 10
-#define USE_PREINV_DIVREM_1 1 /* native */
-#define DIV_QR_1N_PI1_METHOD 1
-#define DIV_QR_1_NORM_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIV_QR_2_PI2_THRESHOLD 12
-#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
-#define BMOD_1_TO_MOD_1_THRESHOLD MP_SIZE_T_MAX /* never */
-
-#define MUL_TOOM22_THRESHOLD 40
-#define MUL_TOOM33_THRESHOLD 129
-#define MUL_TOOM44_THRESHOLD 212
-#define MUL_TOOM6H_THRESHOLD 318
-#define MUL_TOOM8H_THRESHOLD 430
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 97
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 153
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 129
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 151
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 208
-
-#define SQR_BASECASE_THRESHOLD 11
-#define SQR_TOOM2_THRESHOLD 82
-#define SQR_TOOM3_THRESHOLD 131
-#define SQR_TOOM4_THRESHOLD 494
-#define SQR_TOOM6_THRESHOLD 0 /* always */
-#define SQR_TOOM8_THRESHOLD 0 /* always */
-
-#define MULMID_TOOM42_THRESHOLD 98
-
-#define MULMOD_BNM1_THRESHOLD 23
-#define SQRMOD_BNM1_THRESHOLD 19
-
-#define MUL_FFT_MODF_THRESHOLD 500 /* k = 5 */
-#define MUL_FFT_TABLE3 \
- { { 500, 5}, { 27, 6}, { 14, 5}, { 29, 6}, \
- { 31, 7}, { 16, 6}, { 35, 7}, { 18, 6}, \
- { 37, 7}, { 19, 6}, { 39, 7}, { 33, 8}, \
- { 17, 7}, { 37, 8}, { 19, 7}, { 39, 8}, \
- { 21, 7}, { 43, 8}, { 37, 9}, { 19, 8}, \
- { 43, 9}, { 23, 8}, { 49, 9}, { 27, 8}, \
- { 57, 9}, { 31, 8}, { 63, 9}, { 43,10}, \
- { 23, 9}, { 59,10}, { 31, 9}, { 71,10}, \
- { 39, 9}, { 83,10}, { 47, 9}, { 99,10}, \
- { 55,11}, { 31,10}, { 87,11}, { 47,10}, \
- { 111,12}, { 31,11}, { 63,10}, { 143,11}, \
- { 79,10}, { 167,11}, { 95,10}, { 199,11}, \
- { 111,12}, { 63,11}, { 143,10}, { 287,11}, \
- { 159,12}, { 95,11}, { 191,10}, { 399,11}, \
- { 207,10}, { 415,13}, { 63,12}, { 127,11}, \
- { 271,10}, { 543,11}, { 287,10}, { 575,12}, \
- { 159,11}, { 335,10}, { 671,11}, { 367,12}, \
- { 191,11}, { 399,10}, { 799,11}, { 431,12}, \
- { 223,11}, { 447,13}, { 127,12}, { 255,11}, \
- { 543,12}, { 287,11}, { 607,12}, { 319,11}, \
- { 671,12}, { 351,11}, { 703,13}, { 191,12}, \
- { 383,11}, { 799,12}, { 415,11}, { 863,12}, \
- { 447,14}, { 127,13}, { 255,12}, { 607,13}, \
- { 319,12}, { 735,13}, { 383,12}, { 863,13}, \
- { 447,12}, { 927,11}, { 1855,12}, { 959,14}, \
- { 255,13}, { 511,12}, { 1055,13}, { 575,12}, \
- { 1215,13}, { 639,12}, { 1279,13}, { 703,14}, \
- { 383,13}, { 767,12}, { 1535,13}, { 831,12}, \
- { 1727,13}, { 895,12}, { 1791,13}, { 959,15}, \
- { 255,14}, { 511,13}, { 1087,12}, { 2175,13}, \
- { 1215,14}, { 639,13}, { 1343,12}, { 2687,13}, \
- { 1471,14}, { 767,13}, { 1599,12}, { 3199,13}, \
- { 1727,14}, { 895,13}, { 1855,15}, { 511,14}, \
- { 1023,13}, { 2111,12}, { 4223,13}, { 2175,14}, \
- { 1151,13}, { 2431,14}, { 1279,13}, { 2687,14}, \
- { 1407,15}, { 32768,16}, { 65536,17}, { 131072,18}, \
- { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
- {4194304,23}, {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 150
-#define MUL_FFT_THRESHOLD 6272
-
-#define SQR_FFT_MODF_THRESHOLD 468 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 468, 5}, { 29, 6}, { 15, 5}, { 31, 6}, \
- { 35, 7}, { 18, 6}, { 37, 7}, { 37, 8}, \
- { 19, 7}, { 40, 8}, { 29, 9}, { 15, 8}, \
- { 37, 9}, { 19, 8}, { 43, 9}, { 23, 8}, \
- { 49, 9}, { 27, 8}, { 57, 9}, { 43,10}, \
- { 23, 9}, { 55,10}, { 31, 9}, { 71,10}, \
- { 39, 9}, { 83,10}, { 47, 9}, { 99,10}, \
- { 55,11}, { 31,10}, { 87,11}, { 47,10}, \
- { 111,12}, { 31,11}, { 63,10}, { 143,11}, \
- { 79,10}, { 167,11}, { 95,10}, { 191,11}, \
- { 111,12}, { 63,11}, { 127,10}, { 255,11}, \
- { 143,10}, { 287, 9}, { 575,10}, { 303,11}, \
- { 159,10}, { 319,12}, { 95,11}, { 191,10}, \
- { 399,11}, { 207,10}, { 415,13}, { 63,12}, \
- { 127,11}, { 255,10}, { 511,11}, { 271,10}, \
- { 543,11}, { 287,10}, { 575,11}, { 303,12}, \
- { 159,11}, { 335,10}, { 671,11}, { 367,10}, \
- { 735,12}, { 191,11}, { 399,10}, { 799,11}, \
- { 431,10}, { 863,12}, { 223,11}, { 463,13}, \
- { 127,12}, { 255,11}, { 543,12}, { 287,11}, \
- { 607,12}, { 319,11}, { 671,12}, { 351,11}, \
- { 735,13}, { 191,12}, { 383,11}, { 799,12}, \
- { 415,11}, { 863,12}, { 447,11}, { 895,14}, \
- { 127,13}, { 255,12}, { 543,11}, { 1087,12}, \
- { 607,13}, { 319,12}, { 735,13}, { 383,12}, \
- { 863,13}, { 447,12}, { 959,14}, { 255,13}, \
- { 511,12}, { 1087,13}, { 575,12}, { 1215,13}, \
- { 639,12}, { 1279,13}, { 703,12}, { 1407,14}, \
- { 383,13}, { 767,12}, { 1535,13}, { 831,12}, \
- { 1663,13}, { 895,12}, { 1791,13}, { 959,15}, \
- { 255,14}, { 511,13}, { 1023,12}, { 2047,13}, \
- { 1087,12}, { 2175,13}, { 1215,14}, { 639,13}, \
- { 1343,12}, { 2687,13}, { 1471,14}, { 767,13}, \
- { 1599,12}, { 3199,13}, { 1663,14}, { 895,13}, \
- { 1919,15}, { 511,14}, { 1023,13}, { 2175,14}, \
- { 1151,13}, { 2431,14}, { 1279,13}, { 2687,14}, \
- { 1407,15}, { 32768,16}, { 65536,17}, { 131072,18}, \
- { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
- {4194304,23}, {8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 154
-#define SQR_FFT_THRESHOLD 4032
-
-#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 62
-#define MULLO_MUL_N_THRESHOLD 11616
-
-#define DC_DIV_QR_THRESHOLD 61
-#define DC_DIVAPPR_Q_THRESHOLD 222
-#define DC_BDIV_QR_THRESHOLD 95
-#define DC_BDIV_Q_THRESHOLD 264
-
-#define INV_MULMOD_BNM1_THRESHOLD 78
-#define INV_NEWTON_THRESHOLD 133
-#define INV_APPR_THRESHOLD 141
-
-#define BINV_NEWTON_THRESHOLD 248
-#define REDC_1_TO_REDC_2_THRESHOLD 0 /* always */
-#define REDC_2_TO_REDC_N_THRESHOLD 148
-
-#define MU_DIV_QR_THRESHOLD 1187
-#define MU_DIVAPPR_Q_THRESHOLD 1142
-#define MUPI_DIV_QR_THRESHOLD 0 /* always */
-#define MU_BDIV_QR_THRESHOLD 1308
-#define MU_BDIV_Q_THRESHOLD 1470
-
-#define POWM_SEC_TABLE 1,28,251,1925
-
-#define MATRIX22_STRASSEN_THRESHOLD 23
-#define HGCD_THRESHOLD 120
-#define HGCD_APPR_THRESHOLD 77
-#define HGCD_REDUCE_THRESHOLD 3389
-#define GCD_DC_THRESHOLD 393
-#define GCDEXT_DC_THRESHOLD 440
-#define JACOBI_BASE_METHOD 4
-
-#define GET_STR_DC_THRESHOLD 14
-#define GET_STR_PRECOMPUTE_THRESHOLD 20
-#define SET_STR_DC_THRESHOLD 1216
-#define SET_STR_PRECOMPUTE_THRESHOLD 3170
-
-#define FAC_DSC_THRESHOLD 746
-#define FAC_ODD_THRESHOLD 0 /* always */
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p4/gmp-mparam.h b/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p4/gmp-mparam.h
deleted file mode 100644
index d909b292bb3..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p4/gmp-mparam.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/* POWER4/PowerPC970 gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright 2008-2010, 2014 Free Software Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#define GMP_LIMB_BITS 64
-#define GMP_LIMB_BYTES 8
-
-/* 1800 MHz PPC970 */
-/* FFT tuning limit = 10000000 */
-/* Generated by tuneup.c, 2014-03-12, gcc 4.0 */
-
-#define MOD_1_NORM_THRESHOLD 0 /* always */
-#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 6
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 10
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 22
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 16
-#define USE_PREINV_DIVREM_1 0
-#define DIV_QR_1N_PI1_METHOD 1
-#define DIV_QR_1_NORM_THRESHOLD 1
-#define DIV_QR_1_UNNORM_THRESHOLD 1
-#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
-#define BMOD_1_TO_MOD_1_THRESHOLD 34
-
-#define MUL_TOOM22_THRESHOLD 14
-#define MUL_TOOM33_THRESHOLD 53
-#define MUL_TOOM44_THRESHOLD 136
-#define MUL_TOOM6H_THRESHOLD 197
-#define MUL_TOOM8H_THRESHOLD 296
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 89
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 91
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 89
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 96
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 79
-
-#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 24
-#define SQR_TOOM3_THRESHOLD 85
-#define SQR_TOOM4_THRESHOLD 142
-#define SQR_TOOM6_THRESHOLD 270
-#define SQR_TOOM8_THRESHOLD 430
-
-#define MULMID_TOOM42_THRESHOLD 32
-
-#define MULMOD_BNM1_THRESHOLD 11
-#define SQRMOD_BNM1_THRESHOLD 15
-
-#define MUL_FFT_MODF_THRESHOLD 380 /* k = 5 */
-#define MUL_FFT_TABLE3 \
- { { 380, 5}, { 13, 6}, { 7, 5}, { 17, 6}, \
- { 9, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
- { 13, 5}, { 28, 6}, { 21, 7}, { 11, 6}, \
- { 23, 7}, { 12, 6}, { 25, 7}, { 21, 8}, \
- { 11, 7}, { 25, 8}, { 13, 7}, { 27, 8}, \
- { 15, 7}, { 31, 8}, { 21, 9}, { 11, 8}, \
- { 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
- { 39, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
- { 15, 9}, { 39,10}, { 23, 9}, { 55,11}, \
- { 15,10}, { 31, 9}, { 71,10}, { 39, 9}, \
- { 83,10}, { 47, 9}, { 95,10}, { 55,11}, \
- { 31,10}, { 63, 9}, { 127,10}, { 87,11}, \
- { 47,10}, { 95, 9}, { 191,10}, { 103,12}, \
- { 31,11}, { 63,10}, { 127, 9}, { 255, 8}, \
- { 511,10}, { 135, 9}, { 271,11}, { 79,10}, \
- { 159, 9}, { 319,10}, { 167, 9}, { 335,11}, \
- { 95,10}, { 191, 9}, { 383, 8}, { 767,10}, \
- { 207, 9}, { 415,11}, { 111,12}, { 63,11}, \
- { 127,10}, { 255, 9}, { 511,10}, { 271, 9}, \
- { 543,11}, { 143,10}, { 287, 9}, { 575,10}, \
- { 303, 9}, { 607,10}, { 319, 9}, { 639,10}, \
- { 335, 9}, { 671,10}, { 351,12}, { 95,11}, \
- { 191,10}, { 383, 9}, { 767,11}, { 207,10}, \
- { 415, 9}, { 831,13}, { 63,12}, { 127,11}, \
- { 255,10}, { 511,11}, { 271,10}, { 543,11}, \
- { 287,10}, { 575,11}, { 303,10}, { 607,11}, \
- { 319,10}, { 639,11}, { 335,10}, { 671,11}, \
- { 351,10}, { 703,12}, { 191,11}, { 383,10}, \
- { 767,11}, { 415,10}, { 831,12}, { 223,10}, \
- { 895,11}, { 479,13}, { 127,12}, { 255,11}, \
- { 543,12}, { 287,11}, { 607,12}, { 319,11}, \
- { 671,12}, { 351,11}, { 703,13}, { 191,12}, \
- { 383,11}, { 767,12}, { 415,11}, { 895,12}, \
- { 479,14}, { 127,13}, { 255,12}, { 607,13}, \
- { 319,12}, { 703,13}, { 383,12}, { 895,14}, \
- { 255,13}, { 511,12}, { 1023,13}, { 575,12}, \
- { 1151,13}, { 703,14}, { 383,13}, { 895,15}, \
- { 255,14}, { 511,13}, { 1023,12}, { 2047,13}, \
- { 1087,12}, { 2175,13}, { 1151,14}, { 16384,15}, \
- { 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
- { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
- {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 165
-#define MUL_FFT_THRESHOLD 9088
-
-#define SQR_FFT_MODF_THRESHOLD 308 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 308, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \
- { 13, 5}, { 28, 6}, { 21, 7}, { 11, 6}, \
- { 23, 7}, { 14, 6}, { 29, 7}, { 21, 8}, \
- { 11, 7}, { 25, 8}, { 13, 7}, { 27, 8}, \
- { 15, 7}, { 31, 8}, { 21, 9}, { 11, 8}, \
- { 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
- { 39, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
- { 15, 9}, { 39,10}, { 23, 9}, { 51,11}, \
- { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
- { 83,10}, { 47, 9}, { 95,10}, { 55,11}, \
- { 31,10}, { 79,11}, { 47,10}, { 95, 9}, \
- { 191, 8}, { 383,12}, { 31,11}, { 63,10}, \
- { 127, 9}, { 255, 8}, { 511,10}, { 135, 9}, \
- { 271, 8}, { 543,11}, { 79,10}, { 159, 9}, \
- { 319, 8}, { 639,10}, { 175, 9}, { 351,11}, \
- { 95,10}, { 191, 9}, { 383, 8}, { 767,10}, \
- { 207, 9}, { 415,11}, { 111,12}, { 63,11}, \
- { 127,10}, { 255, 9}, { 511,10}, { 271, 9}, \
- { 543,10}, { 287, 9}, { 575,10}, { 303,11}, \
- { 159,10}, { 319, 9}, { 639,11}, { 175,10}, \
- { 351,12}, { 95,11}, { 191,10}, { 383, 9}, \
- { 767,11}, { 207,10}, { 415, 9}, { 831,11}, \
- { 223,13}, { 63,12}, { 127,11}, { 255,10}, \
- { 511,11}, { 271,10}, { 543,11}, { 287,10}, \
- { 575,11}, { 303,10}, { 607,12}, { 159,11}, \
- { 319,10}, { 639,11}, { 351,10}, { 703,12}, \
- { 191,11}, { 383,10}, { 767,11}, { 415,10}, \
- { 831,12}, { 223,10}, { 895,11}, { 479,13}, \
- { 127,12}, { 255,11}, { 543,12}, { 287,11}, \
- { 607,12}, { 319,11}, { 639,12}, { 351,11}, \
- { 703,13}, { 191,12}, { 383,11}, { 767,12}, \
- { 415,11}, { 895,12}, { 479,14}, { 127,13}, \
- { 255,12}, { 607,13}, { 319,12}, { 703,13}, \
- { 383,12}, { 927,14}, { 255,13}, { 511,12}, \
- { 1023,13}, { 575,12}, { 1151,13}, { 639,12}, \
- { 1279,13}, { 703,14}, { 383,13}, { 895,12}, \
- { 1791,15}, { 255,14}, { 511,13}, { 1023,12}, \
- { 2047,13}, { 1087,12}, { 2175,13}, { 1151,14}, \
- { 16384,15}, { 32768,16}, { 65536,17}, { 131072,18}, \
- { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
- {4194304,23}, {8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 162
-#define SQR_FFT_THRESHOLD 6272
-
-#define MULLO_BASECASE_THRESHOLD 5
-#define MULLO_DC_THRESHOLD 44
-#define MULLO_MUL_N_THRESHOLD 18087
-
-#define DC_DIV_QR_THRESHOLD 42
-#define DC_DIVAPPR_Q_THRESHOLD 167
-#define DC_BDIV_QR_THRESHOLD 46
-#define DC_BDIV_Q_THRESHOLD 110
-
-#define INV_MULMOD_BNM1_THRESHOLD 30
-#define INV_NEWTON_THRESHOLD 181
-#define INV_APPR_THRESHOLD 173
-
-#define BINV_NEWTON_THRESHOLD 214
-#define REDC_1_TO_REDC_N_THRESHOLD 56
-
-#define MU_DIV_QR_THRESHOLD 998
-#define MU_DIVAPPR_Q_THRESHOLD 1017
-#define MUPI_DIV_QR_THRESHOLD 92
-#define MU_BDIV_QR_THRESHOLD 889
-#define MU_BDIV_Q_THRESHOLD 1017
-
-#define POWM_SEC_TABLE 2,22,87,579,1925
-
-#define MATRIX22_STRASSEN_THRESHOLD 15
-#define HGCD_THRESHOLD 109
-#define HGCD_APPR_THRESHOLD 115
-#define HGCD_REDUCE_THRESHOLD 4633
-#define GCD_DC_THRESHOLD 318
-#define GCDEXT_DC_THRESHOLD 242
-#define JACOBI_BASE_METHOD 4
-
-#define GET_STR_DC_THRESHOLD 11
-#define GET_STR_PRECOMPUTE_THRESHOLD 23
-#define SET_STR_DC_THRESHOLD 802
-#define SET_STR_PRECOMPUTE_THRESHOLD 1712
-
-#define FAC_DSC_THRESHOLD 507
-#define FAC_ODD_THRESHOLD 25
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/gmp-mparam.h b/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/gmp-mparam.h
deleted file mode 100644
index 7e719e8aac8..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/gmp-mparam.h
+++ /dev/null
@@ -1,243 +0,0 @@
-/* POWER7 gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright 1991, 1993, 1994, 1999-2003, 2009-2011, 2013, 2014 Free Software
-Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#define GMP_LIMB_BITS 64
-#define GMP_LIMB_BYTES 8
-
-/* 3700 MHz POWER7/SMT4 (gcc111.fsffrance.org) */
-/* FFT tuning limit = 40000000 */
-/* Generated by tuneup.c, 2014-03-13, gcc 4.8 */
-
-#define MOD_1_NORM_THRESHOLD 0 /* always */
-#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 6
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 8
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 24
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 13
-#define USE_PREINV_DIVREM_1 0
-#define DIV_QR_1N_PI1_METHOD 1
-#define DIV_QR_1_NORM_THRESHOLD 1
-#define DIV_QR_1_UNNORM_THRESHOLD 1
-#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
-#define BMOD_1_TO_MOD_1_THRESHOLD 28
-
-#define MUL_TOOM22_THRESHOLD 22
-#define MUL_TOOM33_THRESHOLD 72
-#define MUL_TOOM44_THRESHOLD 200
-#define MUL_TOOM6H_THRESHOLD 298
-#define MUL_TOOM8H_THRESHOLD 406
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 69
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 140
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 132
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 138
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 124
-
-#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 36
-#define SQR_TOOM3_THRESHOLD 109
-#define SQR_TOOM4_THRESHOLD 196
-#define SQR_TOOM6_THRESHOLD 414
-#define SQR_TOOM8_THRESHOLD 547
-
-#define MULMID_TOOM42_THRESHOLD 58
-
-#define MULMOD_BNM1_THRESHOLD 15
-#define SQRMOD_BNM1_THRESHOLD 20
-
-#define MUL_FFT_MODF_THRESHOLD 412 /* k = 5 */
-#define MUL_FFT_TABLE3 \
- { { 412, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
- { 21, 7}, { 11, 6}, { 23, 7}, { 12, 6}, \
- { 25, 7}, { 21, 8}, { 11, 7}, { 25, 8}, \
- { 13, 7}, { 28, 8}, { 15, 7}, { 33, 8}, \
- { 17, 7}, { 35, 8}, { 19, 7}, { 39, 8}, \
- { 21, 9}, { 11, 8}, { 29, 9}, { 15, 8}, \
- { 35, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
- { 47, 9}, { 27,10}, { 15, 9}, { 31, 8}, \
- { 63, 9}, { 43,10}, { 23, 9}, { 51,11}, \
- { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
- { 79,10}, { 47, 9}, { 95,10}, { 55,11}, \
- { 31,10}, { 79,11}, { 47,10}, { 95,12}, \
- { 31,11}, { 63,10}, { 135,11}, { 79,10}, \
- { 159,11}, { 95,10}, { 191, 9}, { 383,11}, \
- { 111,12}, { 63,11}, { 127,10}, { 255, 9}, \
- { 511,11}, { 143,10}, { 287, 9}, { 575,11}, \
- { 159,10}, { 319,12}, { 95,11}, { 191,10}, \
- { 383, 9}, { 767,13}, { 63,12}, { 127,11}, \
- { 255,10}, { 511,11}, { 271,10}, { 543, 9}, \
- { 1087,11}, { 287,10}, { 575,11}, { 303,12}, \
- { 159,11}, { 319,10}, { 639,11}, { 335,10}, \
- { 671,11}, { 351,10}, { 703, 9}, { 1407,11}, \
- { 383,10}, { 767,11}, { 415,10}, { 831,12}, \
- { 223,11}, { 447,10}, { 895,13}, { 127,12}, \
- { 255,11}, { 511,10}, { 1023,11}, { 543,12}, \
- { 287,11}, { 575,10}, { 1151,11}, { 607,12}, \
- { 319,11}, { 639,10}, { 1279,11}, { 671,12}, \
- { 351,11}, { 703,12}, { 383,11}, { 767,12}, \
- { 415,11}, { 831,10}, { 1663,12}, { 447,11}, \
- { 895,12}, { 479,14}, { 127,13}, { 255,12}, \
- { 511,11}, { 1023,12}, { 543,11}, { 1087,10}, \
- { 2175,12}, { 575,11}, { 1151,12}, { 607,11}, \
- { 1215,13}, { 319,12}, { 639,11}, { 1279,12}, \
- { 671,11}, { 1343,10}, { 2687,12}, { 703,11}, \
- { 1407,13}, { 383,12}, { 767,11}, { 1535,12}, \
- { 799,11}, { 1599,12}, { 831,11}, { 1663,13}, \
- { 447,12}, { 895,11}, { 1791,12}, { 959,11}, \
- { 1919,14}, { 255,13}, { 511,12}, { 1087,11}, \
- { 2175,13}, { 575,12}, { 1215,11}, { 2431,13}, \
- { 639,12}, { 1343,11}, { 2687,13}, { 703,12}, \
- { 1407,11}, { 2815,14}, { 383,13}, { 767,12}, \
- { 1599,13}, { 831,12}, { 1663,13}, { 895,12}, \
- { 1791,13}, { 959,12}, { 1919,11}, { 3839,14}, \
- { 511,13}, { 1023,12}, { 2047,13}, { 1087,12}, \
- { 2175,13}, { 1215,12}, { 2431,11}, { 4863,14}, \
- { 639,13}, { 1279,12}, { 2559,13}, { 1343,12}, \
- { 2687,13}, { 1407,12}, { 2815,13}, { 1471,12}, \
- { 2943,14}, { 767,13}, { 1599,12}, { 3199,13}, \
- { 1663,14}, { 895,13}, { 1791,12}, { 3583,13}, \
- { 1919,12}, { 3839,15}, { 511,14}, { 1023,13}, \
- { 2175,14}, { 1151,13}, { 2431,12}, { 4863,14}, \
- { 1279,13}, { 2687,14}, { 1407,13}, { 2815,15}, \
- { 767,14}, { 1535,13}, { 3199,14}, { 1663,13}, \
- { 3455,12}, { 6911,14}, { 1919,13}, { 3839,16}, \
- { 511,15}, { 1023,14}, { 2175,13}, { 4351,14}, \
- { 2431,13}, { 4863,15}, { 32768,16}, { 65536,17}, \
- { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
- {2097152,22}, {4194304,23}, {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 231
-#define MUL_FFT_THRESHOLD 4288
-
-#define SQR_FFT_MODF_THRESHOLD 368 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 368, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
- { 21, 7}, { 11, 6}, { 23, 7}, { 12, 6}, \
- { 25, 7}, { 15, 6}, { 31, 7}, { 21, 8}, \
- { 11, 7}, { 25, 8}, { 13, 7}, { 28, 8}, \
- { 15, 7}, { 32, 8}, { 17, 7}, { 35, 8}, \
- { 21, 9}, { 11, 8}, { 29, 9}, { 15, 8}, \
- { 35, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
- { 47, 9}, { 27,10}, { 15, 9}, { 31, 8}, \
- { 63, 9}, { 39,10}, { 23, 9}, { 51,11}, \
- { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
- { 79,10}, { 47, 9}, { 95,10}, { 55,11}, \
- { 31,10}, { 79,11}, { 47,10}, { 95,12}, \
- { 31,11}, { 63,10}, { 135,11}, { 79,10}, \
- { 159, 9}, { 319,11}, { 95,10}, { 191, 9}, \
- { 383,12}, { 63,11}, { 127,10}, { 255, 9}, \
- { 511,10}, { 271,11}, { 143,10}, { 287, 9}, \
- { 575,10}, { 303,11}, { 159,10}, { 319, 9}, \
- { 639,12}, { 95,11}, { 191,10}, { 383,11}, \
- { 207,13}, { 63,12}, { 127,11}, { 255,10}, \
- { 511,11}, { 271,10}, { 543, 9}, { 1087,11}, \
- { 287,10}, { 575, 9}, { 1151,11}, { 303,10}, \
- { 607,12}, { 159,11}, { 319,10}, { 639,11}, \
- { 335,10}, { 671,11}, { 351,10}, { 703,12}, \
- { 191,11}, { 383,10}, { 767,11}, { 415,10}, \
- { 831,12}, { 223,11}, { 447,10}, { 895,11}, \
- { 479,13}, { 127,12}, { 255,11}, { 543,10}, \
- { 1087,12}, { 287,11}, { 575,10}, { 1151,11}, \
- { 607,12}, { 319,11}, { 639,10}, { 1279,11}, \
- { 671,12}, { 351,11}, { 703,13}, { 191,12}, \
- { 383,11}, { 767,12}, { 415,11}, { 831,10}, \
- { 1663,12}, { 447,11}, { 895,12}, { 479,14}, \
- { 127,13}, { 255,12}, { 511,11}, { 1023,12}, \
- { 543,11}, { 1087,12}, { 575,11}, { 1151,12}, \
- { 607,13}, { 319,12}, { 639,11}, { 1279,12}, \
- { 703,11}, { 1407,10}, { 2815,13}, { 383,12}, \
- { 767,11}, { 1535,12}, { 799,11}, { 1599,12}, \
- { 831,11}, { 1663,13}, { 447,12}, { 895,11}, \
- { 1791,12}, { 959,11}, { 1919,10}, { 3839,14}, \
- { 255,13}, { 511,12}, { 1087,13}, { 575,12}, \
- { 1215,11}, { 2431,13}, { 639,12}, { 1343,11}, \
- { 2687,13}, { 703,12}, { 1407,14}, { 383,13}, \
- { 767,12}, { 1599,13}, { 831,12}, { 1663,13}, \
- { 895,12}, { 1791,13}, { 959,12}, { 1919,14}, \
- { 511,13}, { 1087,12}, { 2175,13}, { 1151,12}, \
- { 2303,13}, { 1215,12}, { 2431,14}, { 639,13}, \
- { 1279,12}, { 2559,13}, { 1343,12}, { 2687,13}, \
- { 1407,12}, { 2815,13}, { 1471,14}, { 767,13}, \
- { 1663,12}, { 3327,13}, { 1727,14}, { 895,13}, \
- { 1791,12}, { 3583,13}, { 1919,15}, { 511,14}, \
- { 1023,13}, { 2175,14}, { 1151,13}, { 2431,12}, \
- { 4863,14}, { 1279,13}, { 2687,14}, { 1407,13}, \
- { 2943,15}, { 767,14}, { 1535,13}, { 3199,14}, \
- { 1663,13}, { 3455,14}, { 1791,13}, { 3583,14}, \
- { 1919,13}, { 3839,16}, { 511,15}, { 1023,14}, \
- { 2175,13}, { 4479,14}, { 2303,13}, { 4607,14}, \
- { 2431,15}, { 32768,16}, { 65536,17}, { 131072,18}, \
- { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
- {4194304,23}, {8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 230
-#define SQR_FFT_THRESHOLD 3264
-
-#define MULLO_BASECASE_THRESHOLD 3
-#define MULLO_DC_THRESHOLD 34
-#define MULLO_MUL_N_THRESHOLD 9174
-
-#define DC_DIV_QR_THRESHOLD 33
-#define DC_DIVAPPR_Q_THRESHOLD 126
-#define DC_BDIV_QR_THRESHOLD 63
-#define DC_BDIV_Q_THRESHOLD 152
-
-#define INV_MULMOD_BNM1_THRESHOLD 54
-#define INV_NEWTON_THRESHOLD 155
-#define INV_APPR_THRESHOLD 125
-
-#define BINV_NEWTON_THRESHOLD 294
-#define REDC_1_TO_REDC_2_THRESHOLD 17
-#define REDC_2_TO_REDC_N_THRESHOLD 115
-
-#define MU_DIV_QR_THRESHOLD 1334
-#define MU_DIVAPPR_Q_THRESHOLD 1334
-#define MUPI_DIV_QR_THRESHOLD 54
-#define MU_BDIV_QR_THRESHOLD 1142
-#define MU_BDIV_Q_THRESHOLD 1470
-
-#define POWM_SEC_TABLE 1,14,62,642,960
-
-#define MATRIX22_STRASSEN_THRESHOLD 14
-#define HGCD_THRESHOLD 126
-#define HGCD_APPR_THRESHOLD 184
-#define HGCD_REDUCE_THRESHOLD 3014
-#define GCD_DC_THRESHOLD 440
-#define GCDEXT_DC_THRESHOLD 386
-#define JACOBI_BASE_METHOD 4
-
-#define GET_STR_DC_THRESHOLD 11
-#define GET_STR_PRECOMPUTE_THRESHOLD 17
-#define SET_STR_DC_THRESHOLD 1655
-#define SET_STR_PRECOMPUTE_THRESHOLD 3417
-
-#define FAC_DSC_THRESHOLD 1138
-#define FAC_ODD_THRESHOLD 27
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/z10/gmp-mparam.h b/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/z10/gmp-mparam.h
deleted file mode 100644
index c034f9b3b60..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/z10/gmp-mparam.h
+++ /dev/null
@@ -1,231 +0,0 @@
-/* S/390-64 gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright 1991, 1993, 1994, 2000-2011, 2014 Free Software Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#define GMP_LIMB_BITS 64
-#define GMP_LIMB_BYTES 8
-
-/* 4400 MHz IBM z10 */
-/* FFT tuning limit = 15000000 */
-/* Generated by tuneup.c, 2014-03-12, gcc 4.7 */
-
-#define DIVREM_1_NORM_THRESHOLD 0 /* always */
-#define DIVREM_1_UNNORM_THRESHOLD 4
-#define MOD_1_1P_METHOD 2
-#define MOD_1_NORM_THRESHOLD 0 /* always */
-#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 7
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 8
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 14
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 23
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 29
-#define USE_PREINV_DIVREM_1 1
-#define DIV_QR_1N_PI1_METHOD 1
-#define DIV_QR_1_NORM_THRESHOLD 2
-#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIVEXACT_1_THRESHOLD 0 /* always */
-#define BMOD_1_TO_MOD_1_THRESHOLD 56
-
-#define MUL_TOOM22_THRESHOLD 8
-#define MUL_TOOM33_THRESHOLD 65
-#define MUL_TOOM44_THRESHOLD 88
-#define MUL_TOOM6H_THRESHOLD 125
-#define MUL_TOOM8H_THRESHOLD 163
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 58
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 61
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 57
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 62
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 82
-
-#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 12
-#define SQR_TOOM3_THRESHOLD 89
-#define SQR_TOOM4_THRESHOLD 130
-#define SQR_TOOM6_THRESHOLD 189
-#define SQR_TOOM8_THRESHOLD 260
-
-#define MULMID_TOOM42_THRESHOLD 24
-
-#define MULMOD_BNM1_THRESHOLD 9
-#define SQRMOD_BNM1_THRESHOLD 9
-
-#define MUL_FFT_MODF_THRESHOLD 220 /* k = 5 */
-#define MUL_FFT_TABLE3 \
- { { 220, 5}, { 7, 4}, { 15, 5}, { 9, 6}, \
- { 5, 5}, { 11, 6}, { 6, 5}, { 13, 6}, \
- { 11, 7}, { 6, 6}, { 13, 7}, { 7, 6}, \
- { 15, 7}, { 13, 8}, { 7, 7}, { 16, 8}, \
- { 9, 7}, { 19, 8}, { 11, 7}, { 23, 8}, \
- { 13, 9}, { 7, 8}, { 15, 7}, { 31, 8}, \
- { 19, 9}, { 11, 8}, { 23,10}, { 7, 9}, \
- { 15, 8}, { 33, 9}, { 19, 8}, { 39, 9}, \
- { 27,10}, { 15, 9}, { 39,10}, { 23,11}, \
- { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
- { 83,10}, { 47,11}, { 31,10}, { 63, 9}, \
- { 127, 8}, { 255, 7}, { 511,10}, { 71, 9}, \
- { 143, 8}, { 287, 7}, { 575,10}, { 79,11}, \
- { 47,12}, { 31,11}, { 63,10}, { 127, 9}, \
- { 255, 8}, { 511,10}, { 143, 9}, { 287, 8}, \
- { 575,11}, { 79,10}, { 159, 9}, { 319, 8}, \
- { 639,10}, { 175, 9}, { 351, 8}, { 703, 7}, \
- { 1407, 6}, { 2815,10}, { 191, 9}, { 383, 8}, \
- { 767, 9}, { 415,11}, { 111,10}, { 223, 9}, \
- { 447, 8}, { 895,12}, { 63,11}, { 127,10}, \
- { 255, 9}, { 511,11}, { 143,10}, { 287, 9}, \
- { 575, 8}, { 1151,10}, { 319, 9}, { 639,11}, \
- { 175, 9}, { 703, 8}, { 1407, 7}, { 2815,11}, \
- { 191,10}, { 415, 9}, { 831,11}, { 223,13}, \
- { 63,12}, { 127,11}, { 255,10}, { 511,11}, \
- { 287,10}, { 575, 9}, { 1151,12}, { 159,11}, \
- { 319,10}, { 639,11}, { 351,10}, { 703, 9}, \
- { 1407, 8}, { 2815,12}, { 191,11}, { 383,10}, \
- { 767,11}, { 415,10}, { 831,12}, { 223,10}, \
- { 895, 9}, { 1791,11}, { 479,13}, { 127,12}, \
- { 255,11}, { 511,10}, { 1023,12}, { 287,11}, \
- { 575,10}, { 1151,12}, { 319,11}, { 639,12}, \
- { 351,11}, { 703,10}, { 1407, 9}, { 2815,13}, \
- { 191,12}, { 383,11}, { 767,12}, { 415,11}, \
- { 831,10}, { 1663,12}, { 447,11}, { 895,10}, \
- { 1791, 9}, { 3583,12}, { 479,14}, { 127,13}, \
- { 255,12}, { 511,11}, { 1023,12}, { 575,11}, \
- { 1151,13}, { 319,12}, { 703,11}, { 1407,10}, \
- { 2815,13}, { 383,12}, { 767,11}, { 1535,12}, \
- { 831,11}, { 1663,13}, { 447,12}, { 895,11}, \
- { 1791,10}, { 3583,14}, { 255,13}, { 511,12}, \
- { 1023,13}, { 575,12}, { 1151,13}, { 639,12}, \
- { 1279,13}, { 703,12}, { 1407,11}, { 2815,14}, \
- { 383,13}, { 767,12}, { 1535,13}, { 831,12}, \
- { 1663,13}, { 895,12}, { 1791,11}, { 3583,15}, \
- { 255,14}, { 511,13}, { 1151,14}, { 639,13}, \
- { 1279,12}, { 2559,13}, { 1407,12}, { 2815,13}, \
- { 1471,14}, { 767,13}, { 1663,14}, { 895,13}, \
- { 1791,12}, { 3583,13}, { 8192,14}, { 16384,15}, \
- { 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
- { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
- {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 205
-#define MUL_FFT_THRESHOLD 1728
-
-#define SQR_FFT_MODF_THRESHOLD 212 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 212, 5}, { 7, 4}, { 15, 5}, { 11, 6}, \
- { 6, 5}, { 13, 6}, { 7, 5}, { 15, 6}, \
- { 13, 7}, { 7, 6}, { 15, 7}, { 13, 8}, \
- { 7, 7}, { 16, 8}, { 9, 7}, { 19, 8}, \
- { 11, 7}, { 23, 8}, { 13, 9}, { 7, 8}, \
- { 19, 9}, { 11, 8}, { 23,10}, { 7, 9}, \
- { 15, 8}, { 31, 9}, { 19, 8}, { 39, 9}, \
- { 23,10}, { 15, 9}, { 39,10}, { 23,11}, \
- { 15,10}, { 31, 9}, { 63,10}, { 39, 9}, \
- { 79,10}, { 47,11}, { 31,10}, { 63, 9}, \
- { 127, 8}, { 255,10}, { 71, 9}, { 143, 8}, \
- { 287, 7}, { 575,10}, { 79,11}, { 47,12}, \
- { 31,11}, { 63,10}, { 127, 9}, { 255, 8}, \
- { 511,10}, { 143, 9}, { 287, 8}, { 575,11}, \
- { 79,10}, { 159, 9}, { 319, 8}, { 639,10}, \
- { 175, 9}, { 351, 8}, { 703,10}, { 191, 9}, \
- { 383, 8}, { 767,10}, { 207,11}, { 111,12}, \
- { 63,11}, { 127,10}, { 255, 9}, { 511,11}, \
- { 143,10}, { 287, 9}, { 575, 8}, { 1151,11}, \
- { 159,10}, { 319, 9}, { 639,11}, { 175,10}, \
- { 351, 9}, { 703,12}, { 95,11}, { 191,10}, \
- { 383, 9}, { 767,11}, { 207,10}, { 415,13}, \
- { 63,12}, { 127,11}, { 255,10}, { 511,11}, \
- { 287,10}, { 575, 9}, { 1151,12}, { 159,11}, \
- { 319,10}, { 639,11}, { 351,10}, { 703, 9}, \
- { 1407,12}, { 191,11}, { 383,10}, { 767,11}, \
- { 415,12}, { 223,11}, { 447,10}, { 895, 9}, \
- { 1791,13}, { 127,12}, { 255,11}, { 511,12}, \
- { 287,11}, { 575,10}, { 1151,12}, { 319,11}, \
- { 639,12}, { 351,11}, { 703,10}, { 1407,13}, \
- { 191,12}, { 383,11}, { 767,12}, { 415,11}, \
- { 831,10}, { 1663,12}, { 447,11}, { 895,10}, \
- { 1791, 9}, { 3583,12}, { 479,11}, { 959,10}, \
- { 1919,14}, { 127,13}, { 255,12}, { 511,11}, \
- { 1023,12}, { 575,11}, { 1151,13}, { 319,12}, \
- { 639,11}, { 1279,12}, { 703,11}, { 1407,10}, \
- { 2815,13}, { 383,12}, { 767,11}, { 1535,12}, \
- { 831,11}, { 1663,13}, { 447,12}, { 895,11}, \
- { 1791,12}, { 959,11}, { 1919,14}, { 255,13}, \
- { 511,12}, { 1023,13}, { 575,12}, { 1151,13}, \
- { 639,12}, { 1279,13}, { 703,12}, { 1407,11}, \
- { 2815,14}, { 383,13}, { 767,12}, { 1535,13}, \
- { 831,12}, { 1663,13}, { 895,12}, { 1791,11}, \
- { 3583,13}, { 959,12}, { 1919,15}, { 255,14}, \
- { 511,13}, { 1023,12}, { 2047,13}, { 1151,14}, \
- { 639,13}, { 1279,12}, { 2559,13}, { 1407,12}, \
- { 2815,14}, { 767,13}, { 1663,14}, { 895,13}, \
- { 1791,12}, { 3583,13}, { 8192,14}, { 16384,15}, \
- { 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
- { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
- {8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 201
-#define SQR_FFT_THRESHOLD 1728
-
-#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 34
-#define MULLO_MUL_N_THRESHOLD 3176
-
-#define DC_DIV_QR_THRESHOLD 39
-#define DC_DIVAPPR_Q_THRESHOLD 151
-#define DC_BDIV_QR_THRESHOLD 44
-#define DC_BDIV_Q_THRESHOLD 107
-
-#define INV_MULMOD_BNM1_THRESHOLD 14
-#define INV_NEWTON_THRESHOLD 163
-#define INV_APPR_THRESHOLD 154
-
-#define BINV_NEWTON_THRESHOLD 171
-#define REDC_1_TO_REDC_N_THRESHOLD 46
-
-#define MU_DIV_QR_THRESHOLD 792
-#define MU_DIVAPPR_Q_THRESHOLD 807
-#define MUPI_DIV_QR_THRESHOLD 81
-#define MU_BDIV_QR_THRESHOLD 654
-#define MU_BDIV_Q_THRESHOLD 792
-
-#define POWM_SEC_TABLE 3,19,194,946,2424
-
-#define MATRIX22_STRASSEN_THRESHOLD 17
-#define HGCD_THRESHOLD 117
-#define HGCD_APPR_THRESHOLD 145
-#define HGCD_REDUCE_THRESHOLD 1329
-#define GCD_DC_THRESHOLD 318
-#define GCDEXT_DC_THRESHOLD 265
-#define JACOBI_BASE_METHOD 4
-
-#define GET_STR_DC_THRESHOLD 17
-#define GET_STR_PRECOMPUTE_THRESHOLD 35
-#define SET_STR_DC_THRESHOLD 1015
-#define SET_STR_PRECOMPUTE_THRESHOLD 2047
-
-#define FAC_DSC_THRESHOLD 330
-#define FAC_ODD_THRESHOLD 23
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc34/gmp-mparam.h b/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc34/gmp-mparam.h
deleted file mode 100644
index 0c525bbdcf5..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc34/gmp-mparam.h
+++ /dev/null
@@ -1,219 +0,0 @@
-/* ultrasparc3/4 gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright 1991, 1993, 1994, 1999-2002, 2004, 2006, 2008-2010, 2014 Free
-Software Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#define GMP_LIMB_BITS 64
-#define GMP_LIMB_BYTES 8
-
-/* 1593 MHz ultrasparc3 running Solaris 10 (swift.nada.kth.se) */
-/* FFT tuning limit = 60000000 */
-/* Generated by tuneup.c, 2014-03-14, gcc 3.4 */
-
-#define DIVREM_1_NORM_THRESHOLD 0 /* always */
-#define DIVREM_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1_1P_METHOD 2
-#define MOD_1_NORM_THRESHOLD 0 /* always */
-#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 6
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 20
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 25
-#define USE_PREINV_DIVREM_1 1
-#define DIV_QR_1N_PI1_METHOD 1
-#define DIV_QR_1_NORM_THRESHOLD 2
-#define DIV_QR_1_UNNORM_THRESHOLD 1
-#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIVEXACT_1_THRESHOLD 0 /* always */
-#define BMOD_1_TO_MOD_1_THRESHOLD MP_SIZE_T_MAX /* never */
-
-#define MUL_TOOM22_THRESHOLD 28
-#define MUL_TOOM33_THRESHOLD 93
-#define MUL_TOOM44_THRESHOLD 139
-#define MUL_TOOM6H_THRESHOLD 165
-#define MUL_TOOM8H_THRESHOLD 278
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 93
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 104
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 85
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 51
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 67
-
-#define SQR_BASECASE_THRESHOLD 7
-#define SQR_TOOM2_THRESHOLD 71
-#define SQR_TOOM3_THRESHOLD 98
-#define SQR_TOOM4_THRESHOLD 175
-#define SQR_TOOM6_THRESHOLD 190
-#define SQR_TOOM8_THRESHOLD 339
-
-#define MULMID_TOOM42_THRESHOLD 40
-
-#define MULMOD_BNM1_THRESHOLD 15
-#define SQRMOD_BNM1_THRESHOLD 9
-
-#define MUL_FFT_MODF_THRESHOLD 220 /* k = 5 */
-#define MUL_FFT_TABLE3 \
- { { 220, 5}, { 13, 6}, { 17, 7}, { 9, 6}, \
- { 19, 7}, { 17, 8}, { 9, 7}, { 20, 8}, \
- { 11, 7}, { 24, 8}, { 13, 9}, { 7, 8}, \
- { 19, 9}, { 11, 8}, { 25,10}, { 7, 9}, \
- { 15, 8}, { 33, 9}, { 19, 8}, { 39, 9}, \
- { 23, 8}, { 47, 9}, { 27,10}, { 15, 9}, \
- { 39,10}, { 23, 9}, { 47,11}, { 15,10}, \
- { 31, 9}, { 63, 8}, { 127, 7}, { 255, 9}, \
- { 67,10}, { 39, 9}, { 79, 8}, { 159, 9}, \
- { 83,10}, { 47, 9}, { 95, 8}, { 191, 7}, \
- { 383,10}, { 55,11}, { 31,10}, { 63, 9}, \
- { 127, 8}, { 255, 7}, { 511,10}, { 71, 9}, \
- { 143, 8}, { 287, 7}, { 575,10}, { 79, 9}, \
- { 159, 8}, { 319,11}, { 47,10}, { 95, 9}, \
- { 191, 8}, { 383,10}, { 103, 9}, { 207, 8}, \
- { 415,10}, { 111,12}, { 31,11}, { 63,10}, \
- { 127, 9}, { 255,10}, { 143, 9}, { 287, 8}, \
- { 575,11}, { 79,10}, { 175, 9}, { 351,11}, \
- { 95,10}, { 191, 9}, { 383,10}, { 207, 9}, \
- { 415,11}, { 111,10}, { 223,12}, { 63,11}, \
- { 127,10}, { 255,11}, { 143,10}, { 287, 9}, \
- { 575, 8}, { 1151,11}, { 159,10}, { 319, 9}, \
- { 639,11}, { 175,10}, { 351, 9}, { 703,12}, \
- { 95,11}, { 191,10}, { 383,11}, { 207,10}, \
- { 415,11}, { 223,10}, { 447,13}, { 63,12}, \
- { 127,11}, { 287,10}, { 575,12}, { 159,11}, \
- { 351,10}, { 703,12}, { 191,11}, { 415,12}, \
- { 223,11}, { 479,13}, { 127,12}, { 287,11}, \
- { 575,12}, { 351,13}, { 191,12}, { 415,11}, \
- { 831,12}, { 479,14}, { 127,13}, { 255,12}, \
- { 575,13}, { 319,12}, { 703,11}, { 1407,13}, \
- { 383,12}, { 831,13}, { 447,12}, { 895,14}, \
- { 255,13}, { 511,12}, { 1023,13}, { 575,12}, \
- { 1215,13}, { 703,14}, { 383,13}, { 831,12}, \
- { 1663,13}, { 895,15}, { 255,14}, { 511,13}, \
- { 1151,14}, { 639,13}, { 1407,14}, { 767,13}, \
- { 1663,14}, { 895,13}, { 1791,15}, { 511,14}, \
- { 1023,13}, { 2047,14}, { 1151,13}, { 2303,14}, \
- { 1407,15}, { 767,14}, { 1791,16}, { 511,15}, \
- { 1023,14}, { 2303,15}, { 1279,14}, { 2815,15}, \
- { 1535,14}, { 3199,15}, { 1791,14}, { 3583,16}, \
- { 65536,17}, { 131072,18}, { 262144,19}, { 524288,20}, \
- {1048576,21}, {2097152,22}, {4194304,23}, {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 172
-#define MUL_FFT_THRESHOLD 2240
-
-#define SQR_FFT_MODF_THRESHOLD 244 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 244, 5}, { 8, 4}, { 17, 5}, { 15, 6}, \
- { 8, 5}, { 17, 6}, { 17, 7}, { 9, 6}, \
- { 19, 7}, { 10, 6}, { 21, 7}, { 17, 8}, \
- { 9, 7}, { 20, 8}, { 11, 7}, { 23, 8}, \
- { 21, 9}, { 11, 8}, { 25, 9}, { 15, 8}, \
- { 31, 9}, { 19, 8}, { 39, 9}, { 27,10}, \
- { 15, 9}, { 39,10}, { 23, 9}, { 47,11}, \
- { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
- { 79,10}, { 47, 9}, { 95,10}, { 55,11}, \
- { 31,10}, { 63, 9}, { 127, 8}, { 255,10}, \
- { 71, 9}, { 143, 8}, { 287, 7}, { 575,10}, \
- { 79, 9}, { 159, 8}, { 319,11}, { 47, 9}, \
- { 191, 8}, { 383, 7}, { 767, 9}, { 207,12}, \
- { 31,11}, { 63,10}, { 127, 9}, { 255, 8}, \
- { 511, 9}, { 271,10}, { 143, 9}, { 287, 8}, \
- { 575,11}, { 79,10}, { 159, 9}, { 319, 8}, \
- { 639,10}, { 175, 9}, { 351, 8}, { 703,10}, \
- { 191, 9}, { 383, 8}, { 767,10}, { 207, 9}, \
- { 415, 8}, { 831,10}, { 223, 9}, { 447, 8}, \
- { 895,12}, { 63,11}, { 127,10}, { 271,11}, \
- { 143,10}, { 287, 9}, { 575, 8}, { 1215,11}, \
- { 159,10}, { 319, 9}, { 639,11}, { 175,10}, \
- { 351, 9}, { 703,11}, { 191,10}, { 383,11}, \
- { 207,10}, { 415, 9}, { 831, 8}, { 1663,10}, \
- { 447,13}, { 63,12}, { 127,11}, { 271,10}, \
- { 543, 9}, { 1087,11}, { 287,10}, { 575, 9}, \
- { 1151,12}, { 159,11}, { 319,10}, { 639,11}, \
- { 351,10}, { 703,12}, { 191,11}, { 415,10}, \
- { 831,12}, { 223,11}, { 447,13}, { 127,12}, \
- { 255,11}, { 543,12}, { 287,11}, { 607,12}, \
- { 319,11}, { 639,12}, { 351,11}, { 703,13}, \
- { 191,12}, { 415,11}, { 831,12}, { 479,14}, \
- { 127,13}, { 255,12}, { 607,13}, { 319,12}, \
- { 703,11}, { 1407,13}, { 383,12}, { 831,13}, \
- { 447,12}, { 959,14}, { 255,13}, { 511,12}, \
- { 1023,13}, { 575,12}, { 1151,13}, { 639,12}, \
- { 1279,13}, { 703,14}, { 383,13}, { 831,12}, \
- { 1663,13}, { 895,15}, { 255,14}, { 511,13}, \
- { 1151,14}, { 639,13}, { 1407,14}, { 767,13}, \
- { 1663,14}, { 895,13}, { 1791,15}, { 511,14}, \
- { 1023,13}, { 2047,14}, { 1151,13}, { 2303,14}, \
- { 1407,15}, { 767,14}, { 1791,16}, { 511,15}, \
- { 1023,14}, { 2303,15}, { 1279,14}, { 2815,15}, \
- { 1535,14}, { 3199,15}, { 1791,16}, { 65536,17}, \
- { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
- {2097152,22}, {4194304,23}, {8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 183
-#define SQR_FFT_THRESHOLD 1728
-
-#define MULLO_BASECASE_THRESHOLD 19
-#define MULLO_DC_THRESHOLD 0 /* never mpn_mullo_basecase */
-#define MULLO_MUL_N_THRESHOLD 4392
-
-#define DC_DIV_QR_THRESHOLD 15
-#define DC_DIVAPPR_Q_THRESHOLD 64
-#define DC_BDIV_QR_THRESHOLD 29
-#define DC_BDIV_Q_THRESHOLD 86
-
-#define INV_MULMOD_BNM1_THRESHOLD 54
-#define INV_NEWTON_THRESHOLD 17
-#define INV_APPR_THRESHOLD 17
-
-#define BINV_NEWTON_THRESHOLD 111
-#define REDC_1_TO_REDC_2_THRESHOLD 0 /* always */
-#define REDC_2_TO_REDC_N_THRESHOLD 115
-
-#define MU_DIV_QR_THRESHOLD 680
-#define MU_DIVAPPR_Q_THRESHOLD 618
-#define MUPI_DIV_QR_THRESHOLD 0 /* always */
-#define MU_BDIV_QR_THRESHOLD 680
-#define MU_BDIV_Q_THRESHOLD 807
-
-#define POWM_SEC_TABLE 1,16,102,386,1985,2079
-
-#define MATRIX22_STRASSEN_THRESHOLD 12
-#define HGCD_THRESHOLD 46
-#define HGCD_APPR_THRESHOLD 50
-#define HGCD_REDUCE_THRESHOLD 1012
-#define GCD_DC_THRESHOLD 124
-#define GCDEXT_DC_THRESHOLD 138
-#define JACOBI_BASE_METHOD 4
-
-#define GET_STR_DC_THRESHOLD 20
-#define GET_STR_PRECOMPUTE_THRESHOLD 28
-#define SET_STR_DC_THRESHOLD 324
-#define SET_STR_PRECOMPUTE_THRESHOLD 1043
-
-#define FAC_DSC_THRESHOLD 422
-#define FAC_ODD_THRESHOLD 0 /* always */
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/gmp-mparam.h b/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/gmp-mparam.h
deleted file mode 100644
index 45df12806c0..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/gmp-mparam.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/* Intel Atom/32 gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright 1991, 1993, 1994, 2000-2011, 2014 Free Software Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#define GMP_LIMB_BITS 32
-#define GMP_LIMB_BYTES 4
-
-/* 1667 MHz Pineview (Atom D510) */
-/* FFT tuning limit = 25000000 */
-/* Generated by tuneup.c, 2014-03-14, gcc 4.5 */
-
-#define MOD_1_NORM_THRESHOLD 3
-#define MOD_1_UNNORM_THRESHOLD 5
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 11
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 10
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 13
-#define USE_PREINV_DIVREM_1 1 /* native */
-#define DIV_QR_1N_PI1_METHOD 1
-#define DIV_QR_1_NORM_THRESHOLD 4
-#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
-#define BMOD_1_TO_MOD_1_THRESHOLD 31
-
-#define MUL_TOOM22_THRESHOLD 20
-#define MUL_TOOM33_THRESHOLD 74
-#define MUL_TOOM44_THRESHOLD 178
-#define MUL_TOOM6H_THRESHOLD 270
-#define MUL_TOOM8H_THRESHOLD 399
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 73
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 122
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 115
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 127
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 106
-
-#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 30
-#define SQR_TOOM3_THRESHOLD 105
-#define SQR_TOOM4_THRESHOLD 178
-#define SQR_TOOM6_THRESHOLD 303
-#define SQR_TOOM8_THRESHOLD 527
-
-#define MULMID_TOOM42_THRESHOLD 54
-
-#define MULMOD_BNM1_THRESHOLD 13
-#define SQRMOD_BNM1_THRESHOLD 18
-
-#define MUL_FFT_MODF_THRESHOLD 380 /* k = 5 */
-#define MUL_FFT_TABLE3 \
- { { 380, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
- { 11, 5}, { 23, 6}, { 21, 7}, { 11, 6}, \
- { 25, 7}, { 13, 6}, { 27, 7}, { 15, 6}, \
- { 31, 7}, { 21, 8}, { 11, 7}, { 27, 8}, \
- { 15, 7}, { 35, 8}, { 19, 7}, { 39, 8}, \
- { 23, 7}, { 47, 8}, { 27, 9}, { 15, 8}, \
- { 39, 9}, { 23, 8}, { 51,10}, { 15, 9}, \
- { 31, 8}, { 67, 9}, { 39, 8}, { 79, 9}, \
- { 47, 8}, { 95,10}, { 31, 9}, { 79,10}, \
- { 47, 9}, { 95,11}, { 31,10}, { 63, 9}, \
- { 127, 8}, { 255, 9}, { 135,10}, { 79, 9}, \
- { 159,10}, { 95, 9}, { 191,11}, { 63,10}, \
- { 127, 9}, { 255, 8}, { 511, 9}, { 271,10}, \
- { 143, 9}, { 287, 8}, { 575,10}, { 159,11}, \
- { 95,10}, { 191, 9}, { 383,12}, { 63,11}, \
- { 127,10}, { 255, 9}, { 511,10}, { 271, 9}, \
- { 543,10}, { 287, 9}, { 575,10}, { 303,11}, \
- { 159,10}, { 319, 9}, { 639,10}, { 335, 9}, \
- { 671,10}, { 351, 9}, { 703,11}, { 191,10}, \
- { 383, 9}, { 767,10}, { 415, 9}, { 831,11}, \
- { 223,10}, { 447,12}, { 127,11}, { 255,10}, \
- { 543,11}, { 287,10}, { 607, 9}, { 1215,11}, \
- { 319,10}, { 671,11}, { 351,10}, { 703,12}, \
- { 191,11}, { 383,10}, { 767,11}, { 415,10}, \
- { 831,11}, { 447,13}, { 127,12}, { 255,11}, \
- { 543,10}, { 1087,11}, { 607,10}, { 1215,12}, \
- { 319,11}, { 735,12}, { 383,11}, { 831,12}, \
- { 447,11}, { 959,13}, { 255,12}, { 511,11}, \
- { 1087,12}, { 575,11}, { 1151,12}, { 703,11}, \
- { 1471,13}, { 383,12}, { 831,11}, { 1663,12}, \
- { 959,14}, { 255,13}, { 511,12}, { 1215,13}, \
- { 639,12}, { 1471,11}, { 2943,13}, { 767,12}, \
- { 1663,13}, { 895,12}, { 1919,14}, { 511,13}, \
- { 1023,12}, { 2111,13}, { 1151,12}, { 2431,13}, \
- { 1407,12}, { 2943,14}, { 767,13}, { 1663,12}, \
- { 3455,13}, { 1919,15}, { 511,14}, { 1023,13}, \
- { 2431,14}, { 1279,13}, { 2943,12}, { 5887,14}, \
- { 16384,15}, { 32768,16} }
-#define MUL_FFT_TABLE3_SIZE 150
-#define MUL_FFT_THRESHOLD 4544
-
-#define SQR_FFT_MODF_THRESHOLD 340 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 340, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
- { 12, 5}, { 25, 6}, { 21, 7}, { 11, 6}, \
- { 25, 7}, { 13, 6}, { 27, 7}, { 15, 6}, \
- { 31, 7}, { 21, 8}, { 11, 7}, { 27, 8}, \
- { 15, 7}, { 35, 8}, { 19, 7}, { 41, 8}, \
- { 23, 7}, { 47, 8}, { 27, 9}, { 15, 8}, \
- { 39, 9}, { 23, 8}, { 51,10}, { 15, 9}, \
- { 31, 8}, { 63, 9}, { 39, 8}, { 79, 9}, \
- { 47,10}, { 31, 9}, { 79,10}, { 47, 9}, \
- { 95,11}, { 31,10}, { 63, 9}, { 127, 8}, \
- { 255,10}, { 79, 9}, { 159, 8}, { 319,10}, \
- { 95, 9}, { 191,11}, { 63,10}, { 127, 9}, \
- { 255, 8}, { 511, 9}, { 271,10}, { 143, 9}, \
- { 287, 8}, { 575, 9}, { 303, 8}, { 607,10}, \
- { 159, 9}, { 319,11}, { 95,10}, { 191, 9}, \
- { 383,12}, { 63,11}, { 127,10}, { 255, 9}, \
- { 511,10}, { 271, 9}, { 543,10}, { 287, 9}, \
- { 575,10}, { 303, 9}, { 607,10}, { 319, 9}, \
- { 639,10}, { 335, 9}, { 671,10}, { 351, 9}, \
- { 703,11}, { 191,10}, { 383, 9}, { 767,10}, \
- { 415,11}, { 223,10}, { 447,12}, { 127,11}, \
- { 255,10}, { 543,11}, { 287,10}, { 607,11}, \
- { 319,10}, { 671,11}, { 351,10}, { 703,12}, \
- { 191,11}, { 383,10}, { 767,11}, { 415,10}, \
- { 831,11}, { 479,13}, { 127,12}, { 255,11}, \
- { 543,10}, { 1087,11}, { 607,12}, { 319,11}, \
- { 671,10}, { 1343,11}, { 735,12}, { 383,11}, \
- { 831,12}, { 447,11}, { 959,13}, { 255,12}, \
- { 511,11}, { 1087,12}, { 575,11}, { 1215,12}, \
- { 639,11}, { 1343,12}, { 703,11}, { 1407,13}, \
- { 383,12}, { 831,11}, { 1663,12}, { 959,14}, \
- { 255,13}, { 511,12}, { 1215,13}, { 639,12}, \
- { 1471,13}, { 767,12}, { 1663,13}, { 895,12}, \
- { 1791,14}, { 511,13}, { 1023,12}, { 2111,13}, \
- { 1151,12}, { 2431,13}, { 1407,14}, { 767,13}, \
- { 1663,12}, { 3455,13}, { 1791,15}, { 511,14}, \
- { 1023,13}, { 2431,14}, { 1279,13}, { 2943,12}, \
- { 5887,14}, { 16384,15}, { 32768,16} }
-#define SQR_FFT_TABLE3_SIZE 151
-#define SQR_FFT_THRESHOLD 2880
-
-#define MULLO_BASECASE_THRESHOLD 6
-#define MULLO_DC_THRESHOLD 48
-#define MULLO_MUL_N_THRESHOLD 8907
-
-#define DC_DIV_QR_THRESHOLD 59
-#define DC_DIVAPPR_Q_THRESHOLD 250
-#define DC_BDIV_QR_THRESHOLD 59
-#define DC_BDIV_Q_THRESHOLD 169
-
-#define INV_MULMOD_BNM1_THRESHOLD 38
-#define INV_NEWTON_THRESHOLD 246
-#define INV_APPR_THRESHOLD 246
-
-#define BINV_NEWTON_THRESHOLD 276
-#define REDC_1_TO_REDC_N_THRESHOLD 67
-
-#define MU_DIV_QR_THRESHOLD 1334
-#define MU_DIVAPPR_Q_THRESHOLD 1442
-#define MUPI_DIV_QR_THRESHOLD 114
-#define MU_BDIV_QR_THRESHOLD 1142
-#define MU_BDIV_Q_THRESHOLD 1334
-
-#define POWM_SEC_TABLE 1,22,98,416,1378
-
-#define MATRIX22_STRASSEN_THRESHOLD 13
-#define HGCD_THRESHOLD 133
-#define HGCD_APPR_THRESHOLD 169
-#define HGCD_REDUCE_THRESHOLD 2479
-#define GCD_DC_THRESHOLD 460
-#define GCDEXT_DC_THRESHOLD 342
-#define JACOBI_BASE_METHOD 3
-
-#define GET_STR_DC_THRESHOLD 12
-#define GET_STR_PRECOMPUTE_THRESHOLD 23
-#define SET_STR_DC_THRESHOLD 321
-#define SET_STR_PRECOMPUTE_THRESHOLD 1099
-
-#define FAC_DSC_THRESHOLD 198
-#define FAC_ODD_THRESHOLD 34
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/gmp-mparam.h b/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/gmp-mparam.h
deleted file mode 100644
index 9977a113e2d..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/gmp-mparam.h
+++ /dev/null
@@ -1,241 +0,0 @@
-/* AMD K7 gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright 1991, 1993, 1994, 2000-2005, 2008-2010, 2014 Free Software
-Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#define GMP_LIMB_BITS 32
-#define GMP_LIMB_BYTES 4
-
-/* 2083 MHz K7 Barton */
-/* FFT tuning limit = 25000000 */
-/* Generated by tuneup.c, 2014-03-13, gcc 4.2 */
-
-#define MOD_1_NORM_THRESHOLD 0 /* always */
-#define MOD_1_UNNORM_THRESHOLD 3
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 7
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 24
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 10
-#define USE_PREINV_DIVREM_1 1 /* native */
-#define DIV_QR_1N_PI1_METHOD 1
-#define DIV_QR_1_NORM_THRESHOLD 3
-#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
-#define BMOD_1_TO_MOD_1_THRESHOLD 24
-
-#define MUL_TOOM22_THRESHOLD 28
-#define MUL_TOOM33_THRESHOLD 85
-#define MUL_TOOM44_THRESHOLD 147
-#define MUL_TOOM6H_THRESHOLD 216
-#define MUL_TOOM8H_THRESHOLD 309
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 85
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 99
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 98
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 102
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 124
-
-#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 50
-#define SQR_TOOM3_THRESHOLD 81
-#define SQR_TOOM4_THRESHOLD 216
-#define SQR_TOOM6_THRESHOLD 306
-#define SQR_TOOM8_THRESHOLD 446
-
-#define MULMID_TOOM42_THRESHOLD 56
-
-#define MULMOD_BNM1_THRESHOLD 17
-#define SQRMOD_BNM1_THRESHOLD 17
-
-#define MUL_FFT_MODF_THRESHOLD 904 /* k = 6 */
-#define MUL_FFT_TABLE3 \
- { { 904, 6}, { 21, 7}, { 11, 6}, { 25, 7}, \
- { 13, 6}, { 27, 7}, { 15, 6}, { 31, 7}, \
- { 17, 6}, { 35, 7}, { 19, 6}, { 39, 7}, \
- { 23, 6}, { 47, 7}, { 27, 8}, { 15, 7}, \
- { 31, 6}, { 63, 7}, { 35, 8}, { 19, 7}, \
- { 39, 8}, { 23, 7}, { 47, 8}, { 31, 7}, \
- { 63, 8}, { 39, 7}, { 79, 9}, { 23, 8}, \
- { 47, 7}, { 95, 8}, { 51, 9}, { 31, 8}, \
- { 71, 9}, { 39, 8}, { 79, 9}, { 47, 8}, \
- { 95, 9}, { 55,10}, { 31, 9}, { 63, 8}, \
- { 127, 9}, { 71, 8}, { 143, 9}, { 79, 8}, \
- { 159,10}, { 47, 9}, { 95, 8}, { 191, 9}, \
- { 103,11}, { 31,10}, { 63, 9}, { 127, 8}, \
- { 255, 9}, { 143,10}, { 79, 9}, { 167,10}, \
- { 95, 9}, { 199,10}, { 111,11}, { 63,10}, \
- { 127, 9}, { 255,10}, { 143, 9}, { 287,10}, \
- { 159, 9}, { 319,11}, { 95,10}, { 191, 9}, \
- { 383,10}, { 207,12}, { 63,11}, { 127,10}, \
- { 255, 9}, { 511,10}, { 271, 8}, { 1087,10}, \
- { 287,11}, { 159,10}, { 319, 9}, { 639,11}, \
- { 191,10}, { 383, 9}, { 767, 8}, { 1535, 9}, \
- { 799, 8}, { 1599,11}, { 223,12}, { 127,11}, \
- { 255,10}, { 511, 9}, { 1023,10}, { 543, 9}, \
- { 1087,11}, { 287,10}, { 575, 9}, { 1151,10}, \
- { 607, 9}, { 1215, 8}, { 2431,11}, { 319,10}, \
- { 639, 9}, { 1279,10}, { 671, 9}, { 1343,12}, \
- { 191,11}, { 383,10}, { 767, 9}, { 1535,10}, \
- { 799, 9}, { 1599,10}, { 831, 9}, { 1663,10}, \
- { 863,13}, { 127,12}, { 255,11}, { 511,10}, \
- { 1023,11}, { 543,10}, { 1087,11}, { 575,10}, \
- { 1151,11}, { 607,10}, { 1215, 9}, { 2431,12}, \
- { 319,11}, { 639,10}, { 1407,11}, { 735,10}, \
- { 1471, 9}, { 2943,12}, { 383,11}, { 767,10}, \
- { 1535,11}, { 799,10}, { 1599,11}, { 831,10}, \
- { 1663,11}, { 895,10}, { 1791,11}, { 959,10}, \
- { 1919,13}, { 255,12}, { 511,11}, { 1023,10}, \
- { 2047,11}, { 1087,12}, { 575,11}, { 1151,10}, \
- { 2303,11}, { 1215,10}, { 2431,12}, { 639,11}, \
- { 1279,10}, { 2559,11}, { 1407,10}, { 2815,11}, \
- { 1471,10}, { 2943,13}, { 383,12}, { 767,11}, \
- { 1599,12}, { 831,11}, { 1663,12}, { 895,11}, \
- { 1791,10}, { 3583,12}, { 959,11}, { 1919,10}, \
- { 3839,14}, { 255,13}, { 511,12}, { 1023,11}, \
- { 2047,12}, { 1087,11}, { 2175,12}, { 1151,11}, \
- { 2303,12}, { 1215,11}, { 2431,13}, { 639,12}, \
- { 1407,11}, { 2815,12}, { 1471,11}, { 2943,13}, \
- { 767,12}, { 1663,11}, { 3327,13}, { 895,12}, \
- { 1791,11}, { 3583,12}, { 1919,11}, { 3839,12}, \
- { 1983,11}, { 3967,14}, { 511,13}, { 1023,12}, \
- { 2239,13}, { 1151,12}, { 2495,13}, { 1279,12}, \
- { 2559,13}, { 1407,12}, { 2943,11}, { 5887,14}, \
- { 767,13}, { 1535,12}, { 3071,13}, { 1663,12}, \
- { 3327,13}, { 1791,12}, { 3583,13}, { 1919,12}, \
- { 3967,15}, { 511,14}, { 1023,13}, { 2047,12}, \
- { 4095,13}, { 2175,12}, { 4351,13}, { 2431,12}, \
- { 4863,14}, { 1279,13}, { 2559,12}, { 5119,13}, \
- { 2943,12}, { 5887,14}, { 16384,15}, { 32768,16} }
-#define MUL_FFT_TABLE3_SIZE 228
-#define MUL_FFT_THRESHOLD 7808
-
-#define SQR_FFT_MODF_THRESHOLD 888 /* k = 6 */
-#define SQR_FFT_TABLE3 \
- { { 888, 6}, { 21, 7}, { 11, 6}, { 25, 7}, \
- { 13, 6}, { 27, 7}, { 15, 6}, { 31, 7}, \
- { 17, 6}, { 35, 7}, { 19, 6}, { 39, 7}, \
- { 23, 6}, { 47, 7}, { 27, 8}, { 15, 7}, \
- { 31, 6}, { 63, 7}, { 35, 8}, { 19, 7}, \
- { 39, 8}, { 23, 7}, { 47, 8}, { 31, 7}, \
- { 63, 8}, { 39, 9}, { 23, 8}, { 47, 7}, \
- { 95, 8}, { 51, 9}, { 31, 8}, { 67, 9}, \
- { 39, 8}, { 79, 9}, { 47, 8}, { 95, 9}, \
- { 55,10}, { 31, 9}, { 63, 8}, { 127, 9}, \
- { 79,10}, { 47, 9}, { 95, 8}, { 191,11}, \
- { 31,10}, { 63, 9}, { 127, 8}, { 255, 9}, \
- { 143,10}, { 79, 9}, { 167,10}, { 95, 9}, \
- { 191,10}, { 111,11}, { 63,10}, { 127, 9}, \
- { 255, 8}, { 511,10}, { 143, 9}, { 287, 8}, \
- { 575,10}, { 159,11}, { 95,10}, { 191, 9}, \
- { 383,12}, { 63,11}, { 127,10}, { 255, 9}, \
- { 511,10}, { 271, 9}, { 543, 8}, { 1087,10}, \
- { 287, 9}, { 575,11}, { 159,10}, { 319, 9}, \
- { 639, 8}, { 1279, 9}, { 671,11}, { 191,10}, \
- { 383, 9}, { 799, 8}, { 1599, 9}, { 831,11}, \
- { 223,12}, { 127,11}, { 255,10}, { 543, 9}, \
- { 1087,11}, { 287,10}, { 575, 9}, { 1215, 8}, \
- { 2431,11}, { 319,10}, { 639, 9}, { 1279,10}, \
- { 671, 9}, { 1407,12}, { 191,10}, { 799, 9}, \
- { 1599,10}, { 831, 9}, { 1663,10}, { 863, 9}, \
- { 1727,11}, { 447,13}, { 127,12}, { 255,11}, \
- { 511,10}, { 1023,11}, { 543,10}, { 1087, 9}, \
- { 2175,10}, { 1119,11}, { 575,10}, { 1151,11}, \
- { 607,10}, { 1215, 9}, { 2431,12}, { 319,11}, \
- { 639,10}, { 1279,11}, { 671,10}, { 1343, 9}, \
- { 2687,11}, { 703,10}, { 1407,11}, { 735,10}, \
- { 1471, 9}, { 2943,10}, { 1503,12}, { 383,11}, \
- { 767,10}, { 1535,11}, { 799,10}, { 1599,11}, \
- { 863,10}, { 1727,12}, { 447,11}, { 895,10}, \
- { 1791,11}, { 959,10}, { 1919,13}, { 255,12}, \
- { 511,11}, { 1023,10}, { 2047,11}, { 1087,10}, \
- { 2175,11}, { 1119,12}, { 575,11}, { 1151,10}, \
- { 2303,11}, { 1215,10}, { 2431,12}, { 639,11}, \
- { 1407,10}, { 2815,11}, { 1471,10}, { 2943,12}, \
- { 767,11}, { 1599,12}, { 831,11}, { 1663,10}, \
- { 3327,12}, { 895,11}, { 1791,10}, { 3583,12}, \
- { 959,11}, { 1919,10}, { 3839,11}, { 1983,14}, \
- { 255,13}, { 511,12}, { 1023,11}, { 2047,12}, \
- { 1087,11}, { 2175,12}, { 1151,11}, { 2303,12}, \
- { 1215,11}, { 2431,13}, { 639,12}, { 1407,11}, \
- { 2815,12}, { 1471,11}, { 2943,13}, { 767,12}, \
- { 1663,11}, { 3327,12}, { 1727,13}, { 895,12}, \
- { 1791,11}, { 3583,12}, { 1919,11}, { 3839,12}, \
- { 1983,11}, { 3967,14}, { 511,13}, { 1023,12}, \
- { 2175,13}, { 1151,12}, { 2495,13}, { 1279,12}, \
- { 2559,13}, { 1407,12}, { 2943,11}, { 5887,14}, \
- { 767,13}, { 1535,12}, { 3071,13}, { 1663,12}, \
- { 3327,13}, { 1791,12}, { 3583,13}, { 1919,12}, \
- { 3967,15}, { 511,14}, { 1023,13}, { 2047,12}, \
- { 4095,13}, { 2175,12}, { 4351,13}, { 2431,14}, \
- { 1279,13}, { 2943,12}, { 5887,14}, { 16384,15}, \
- { 32768,16} }
-#define SQR_FFT_TABLE3_SIZE 229
-#define SQR_FFT_THRESHOLD 7552
-
-#define MULLO_BASECASE_THRESHOLD 8
-#define MULLO_DC_THRESHOLD 36
-#define MULLO_MUL_N_THRESHOLD 13463
-
-#define DC_DIV_QR_THRESHOLD 45
-#define DC_DIVAPPR_Q_THRESHOLD 208
-#define DC_BDIV_QR_THRESHOLD 43
-#define DC_BDIV_Q_THRESHOLD 140
-
-#define INV_MULMOD_BNM1_THRESHOLD 62
-#define INV_NEWTON_THRESHOLD 204
-#define INV_APPR_THRESHOLD 204
-
-#define BINV_NEWTON_THRESHOLD 230
-#define REDC_1_TO_REDC_N_THRESHOLD 59
-
-#define MU_DIV_QR_THRESHOLD 1752
-#define MU_DIVAPPR_Q_THRESHOLD 1528
-#define MUPI_DIV_QR_THRESHOLD 82
-#define MU_BDIV_QR_THRESHOLD 1360
-#define MU_BDIV_Q_THRESHOLD 1470
-
-#define POWM_SEC_TABLE 1,16,102,336,1221
-
-#define MATRIX22_STRASSEN_THRESHOLD 16
-#define HGCD_THRESHOLD 120
-#define HGCD_APPR_THRESHOLD 143
-#define HGCD_REDUCE_THRESHOLD 4818
-#define GCD_DC_THRESHOLD 474
-#define GCDEXT_DC_THRESHOLD 345
-#define JACOBI_BASE_METHOD 4
-
-#define GET_STR_DC_THRESHOLD 15
-#define GET_STR_PRECOMPUTE_THRESHOLD 33
-#define SET_STR_DC_THRESHOLD 298
-#define SET_STR_PRECOMPUTE_THRESHOLD 1187
-
-#define FAC_DSC_THRESHOLD 602
-#define FAC_ODD_THRESHOLD 29
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/gmp-mparam.h b/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/gmp-mparam.h
deleted file mode 100644
index 6816dfc3628..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/gmp-mparam.h
+++ /dev/null
@@ -1,220 +0,0 @@
-/* Intel Atom/64 gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright 1991, 1993, 1994, 2000-2010, 2012, 2014 Free Software Foundation,
-Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#define GMP_LIMB_BITS 64
-#define GMP_LIMB_BYTES 8
-
-#define SHLD_SLOW 1
-#define SHRD_SLOW 1
-
-/* 1667 MHz Pineview (Atom D510) */
-/* FFT tuning limit = 25000000 */
-/* Generated by tuneup.c, 2014-03-13, gcc 4.5 */
-
-#define MOD_1_NORM_THRESHOLD 0 /* always */
-#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 5
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD MP_SIZE_T_MAX
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 12
-#define USE_PREINV_DIVREM_1 1 /* native */
-#define DIV_QR_1_NORM_THRESHOLD 1
-#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
-#define BMOD_1_TO_MOD_1_THRESHOLD 15
-
-#define MUL_TOOM22_THRESHOLD 12
-#define MUL_TOOM33_THRESHOLD 74
-#define MUL_TOOM44_THRESHOLD 118
-#define MUL_TOOM6H_THRESHOLD 157
-#define MUL_TOOM8H_THRESHOLD 212
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 73
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 84
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 81
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 80
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 58
-
-#define SQR_BASECASE_THRESHOLD 6
-#define SQR_TOOM2_THRESHOLD 23
-#define SQR_TOOM3_THRESHOLD 49
-#define SQR_TOOM4_THRESHOLD 130
-#define SQR_TOOM6_THRESHOLD 173
-#define SQR_TOOM8_THRESHOLD 238
-
-#define MULMID_TOOM42_THRESHOLD 16
-
-#define MULMOD_BNM1_THRESHOLD 10
-#define SQRMOD_BNM1_THRESHOLD 12
-
-#define MUL_FFT_MODF_THRESHOLD 252 /* k = 5 */
-#define MUL_FFT_TABLE3 \
- { { 252, 5}, { 11, 6}, { 6, 5}, { 13, 6}, \
- { 7, 5}, { 15, 6}, { 13, 7}, { 7, 6}, \
- { 15, 7}, { 8, 6}, { 17, 7}, { 9, 6}, \
- { 19, 7}, { 13, 8}, { 7, 7}, { 17, 8}, \
- { 9, 7}, { 19, 8}, { 11, 7}, { 23, 8}, \
- { 13, 9}, { 7, 8}, { 15, 7}, { 31, 8}, \
- { 19, 9}, { 11, 8}, { 25, 9}, { 15, 8}, \
- { 33, 9}, { 19, 8}, { 39, 9}, { 23,10}, \
- { 15, 9}, { 39,10}, { 23, 9}, { 47,11}, \
- { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
- { 79,10}, { 47,11}, { 31,10}, { 63, 9}, \
- { 127, 8}, { 255,10}, { 71, 9}, { 143, 8}, \
- { 287,10}, { 79,11}, { 47,10}, { 95,12}, \
- { 31,11}, { 63,10}, { 127, 9}, { 255, 8}, \
- { 511, 9}, { 287, 8}, { 575,11}, { 79,10}, \
- { 159, 9}, { 319,10}, { 175, 9}, { 351, 8}, \
- { 703,11}, { 95,10}, { 191, 9}, { 383, 8}, \
- { 767,10}, { 207, 9}, { 415,10}, { 223,12}, \
- { 63,11}, { 127,10}, { 255, 9}, { 511,11}, \
- { 143,10}, { 287, 9}, { 575, 8}, { 1151,10}, \
- { 319, 9}, { 639,11}, { 175,10}, { 351, 9}, \
- { 703, 8}, { 1407, 7}, { 2815,10}, { 383,11}, \
- { 207,10}, { 415,11}, { 223,10}, { 447,13}, \
- { 63,12}, { 127,11}, { 255,10}, { 511,11}, \
- { 287,10}, { 575, 9}, { 1151,12}, { 159,11}, \
- { 319,10}, { 639,11}, { 351,10}, { 703, 9}, \
- { 1407,12}, { 191,11}, { 415,12}, { 223,11}, \
- { 447,10}, { 895,11}, { 479,13}, { 127,12}, \
- { 255,11}, { 511,12}, { 287,11}, { 575,10}, \
- { 1151,12}, { 319,11}, { 639,12}, { 351,11}, \
- { 703,10}, { 1407,13}, { 191,12}, { 383,11}, \
- { 767,12}, { 415,11}, { 831,12}, { 447,11}, \
- { 895,12}, { 479,14}, { 127,13}, { 255,12}, \
- { 511,11}, { 1023,12}, { 575,11}, { 1151,13}, \
- { 319,12}, { 703,11}, { 1407,13}, { 383,12}, \
- { 831,13}, { 447,12}, { 895,11}, { 1791,14}, \
- { 255,13}, { 511,12}, { 1023,13}, { 575,12}, \
- { 1151,13}, { 703,12}, { 1407,14}, { 383,13}, \
- { 831,12}, { 1663,13}, { 895,12}, { 1791,15}, \
- { 255,14}, { 511,13}, { 1087,12}, { 2175,13}, \
- { 1151,14}, { 639,13}, { 1407,12}, { 2815,14}, \
- { 767,13}, { 1663,14}, { 895,13}, { 1919,12}, \
- { 3839,15}, { 511,14}, { 1023,13}, { 2175,14}, \
- { 1151,13}, { 2431,14}, { 1407,13}, { 2815,15}, \
- { 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
- { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
- {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 185
-#define MUL_FFT_THRESHOLD 2240
-
-#define SQR_FFT_MODF_THRESHOLD 208 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 208, 5}, { 11, 6}, { 6, 5}, { 13, 6}, \
- { 13, 7}, { 7, 6}, { 15, 7}, { 13, 8}, \
- { 7, 7}, { 17, 8}, { 9, 7}, { 19, 8}, \
- { 11, 7}, { 23, 8}, { 13, 9}, { 7, 8}, \
- { 19, 9}, { 11, 8}, { 23,10}, { 7, 9}, \
- { 15, 8}, { 31, 9}, { 23,10}, { 15, 9}, \
- { 39,10}, { 23,11}, { 15,10}, { 31, 9}, \
- { 63, 8}, { 127,10}, { 39, 9}, { 79, 8}, \
- { 159,10}, { 47, 8}, { 191,10}, { 55,11}, \
- { 31,10}, { 63, 9}, { 127, 8}, { 255,10}, \
- { 71, 9}, { 143, 8}, { 287, 7}, { 575,10}, \
- { 79, 9}, { 159,11}, { 47, 9}, { 191,12}, \
- { 31,11}, { 63,10}, { 127, 9}, { 255, 8}, \
- { 511,10}, { 143, 9}, { 287, 8}, { 575,10}, \
- { 159, 9}, { 319, 8}, { 639,10}, { 175, 9}, \
- { 351, 8}, { 703,10}, { 191, 9}, { 383,10}, \
- { 207,11}, { 111,10}, { 223, 9}, { 447,12}, \
- { 63,11}, { 127,10}, { 255, 9}, { 511,11}, \
- { 143,10}, { 287, 9}, { 575,11}, { 159,10}, \
- { 319, 9}, { 639,11}, { 175,10}, { 351, 9}, \
- { 703,11}, { 191,10}, { 383,11}, { 207,10}, \
- { 415,11}, { 223,10}, { 447,13}, { 63,12}, \
- { 127,11}, { 255,10}, { 511,11}, { 287,10}, \
- { 575,12}, { 159,11}, { 319,10}, { 639,11}, \
- { 351,10}, { 703,12}, { 191,11}, { 383,10}, \
- { 767,11}, { 415,12}, { 223,11}, { 447,10}, \
- { 895,13}, { 127,12}, { 255,11}, { 511,12}, \
- { 287,11}, { 575,12}, { 319,11}, { 639,12}, \
- { 351,11}, { 703,13}, { 191,12}, { 383,11}, \
- { 767,12}, { 415,11}, { 831,12}, { 447,11}, \
- { 895,14}, { 127,13}, { 255,12}, { 511,11}, \
- { 1023,12}, { 575,11}, { 1151,13}, { 319,12}, \
- { 703,11}, { 1407,13}, { 383,12}, { 831,13}, \
- { 447,12}, { 895,14}, { 255,13}, { 511,12}, \
- { 1023,13}, { 575,12}, { 1151,13}, { 703,12}, \
- { 1407,14}, { 383,13}, { 831,12}, { 1663,13}, \
- { 895,15}, { 255,14}, { 511,13}, { 1087,12}, \
- { 2175,13}, { 1151,14}, { 639,13}, { 1407,12}, \
- { 2815,14}, { 767,13}, { 1663,14}, { 895,13}, \
- { 1791,12}, { 3583,15}, { 511,14}, { 1023,13}, \
- { 2047,14}, { 1151,13}, { 2431,12}, { 4863,14}, \
- { 1407,13}, { 2815,15}, { 32768,16}, { 65536,17}, \
- { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
- {2097152,22}, {4194304,23}, {8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 175
-#define SQR_FFT_THRESHOLD 1600
-
-#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 34
-#define MULLO_MUL_N_THRESHOLD 4392
-
-#define DC_DIV_QR_THRESHOLD 32
-#define DC_DIVAPPR_Q_THRESHOLD 122
-#define DC_BDIV_QR_THRESHOLD 35
-#define DC_BDIV_Q_THRESHOLD 76
-
-#define INV_MULMOD_BNM1_THRESHOLD 22
-#define INV_NEWTON_THRESHOLD 163
-#define INV_APPR_THRESHOLD 134
-
-#define BINV_NEWTON_THRESHOLD 179
-#define REDC_1_TO_REDC_2_THRESHOLD 17
-#define REDC_2_TO_REDC_N_THRESHOLD 43
-
-#define MU_DIV_QR_THRESHOLD 855
-#define MU_DIVAPPR_Q_THRESHOLD 872
-#define MUPI_DIV_QR_THRESHOLD 83
-#define MU_BDIV_QR_THRESHOLD 748
-#define MU_BDIV_Q_THRESHOLD 807
-
-#define POWM_SEC_TABLE 1,16,114,452,1603
-
-#define MATRIX22_STRASSEN_THRESHOLD 13
-#define HGCD_THRESHOLD 102
-#define HGCD_APPR_THRESHOLD 95
-#define HGCD_REDUCE_THRESHOLD 1329
-#define GCD_DC_THRESHOLD 268
-#define GCDEXT_DC_THRESHOLD 221
-#define JACOBI_BASE_METHOD 4
-
-#define GET_STR_DC_THRESHOLD 14
-#define GET_STR_PRECOMPUTE_THRESHOLD 26
-#define SET_STR_DC_THRESHOLD 418
-#define SET_STR_PRECOMPUTE_THRESHOLD 1420
-
-#define FAC_DSC_THRESHOLD 1065
-#define FAC_ODD_THRESHOLD 0 /* always */
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/gmp-mparam.h b/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/gmp-mparam.h
deleted file mode 100644
index 5014f9f469c..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/gmp-mparam.h
+++ /dev/null
@@ -1,236 +0,0 @@
-/* AMD bd1 gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright 1991, 1993, 1994, 2000-2010, 2012, 2014 Free Software Foundation,
-Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#define GMP_LIMB_BITS 64
-#define GMP_LIMB_BYTES 8
-
-/* 3600 MHz Bulldozer Zambezi */
-/* FFT tuning limit = 40000000 */
-/* Generated by tuneup.c, 2014-03-13, gcc 4.5 */
-
-#define MOD_1_NORM_THRESHOLD 0 /* always */
-#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 5
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 4
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 13
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 28
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 11
-#define USE_PREINV_DIVREM_1 1 /* native */
-#define DIV_QR_1_NORM_THRESHOLD 1
-#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
-#define BMOD_1_TO_MOD_1_THRESHOLD 22
-
-#define MUL_TOOM22_THRESHOLD 20
-#define MUL_TOOM33_THRESHOLD 59
-#define MUL_TOOM44_THRESHOLD 166
-#define MUL_TOOM6H_THRESHOLD 274
-#define MUL_TOOM8H_THRESHOLD 333
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 97
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 107
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 105
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 115
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 150
-
-#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 22
-#define SQR_TOOM3_THRESHOLD 85
-#define SQR_TOOM4_THRESHOLD 242
-#define SQR_TOOM6_THRESHOLD 318
-#define SQR_TOOM8_THRESHOLD 478
-
-#define MULMID_TOOM42_THRESHOLD 22
-
-#define MULMOD_BNM1_THRESHOLD 11
-#define SQRMOD_BNM1_THRESHOLD 14
-
-#define MUL_FFT_MODF_THRESHOLD 404 /* k = 5 */
-#define MUL_FFT_TABLE3 \
- { { 404, 5}, { 19, 6}, { 11, 5}, { 23, 6}, \
- { 19, 7}, { 10, 6}, { 25, 7}, { 15, 6}, \
- { 31, 7}, { 25, 8}, { 13, 7}, { 27, 8}, \
- { 15, 7}, { 31, 8}, { 17, 7}, { 35, 8}, \
- { 19, 7}, { 39, 8}, { 27, 9}, { 15, 8}, \
- { 35, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
- { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
- { 23, 9}, { 55,11}, { 15,10}, { 31, 9}, \
- { 67,10}, { 39, 9}, { 83,10}, { 47, 9}, \
- { 95,10}, { 55,11}, { 31,10}, { 79,11}, \
- { 47,10}, { 103,12}, { 31,11}, { 63,10}, \
- { 135,11}, { 79,10}, { 167,11}, { 95,10}, \
- { 191,11}, { 111,12}, { 63,11}, { 127,10}, \
- { 255,11}, { 143,10}, { 287, 9}, { 575,10}, \
- { 303,11}, { 159,12}, { 95,11}, { 191,10}, \
- { 383,11}, { 207,13}, { 63,12}, { 127,11}, \
- { 255,10}, { 511,11}, { 271,10}, { 543,11}, \
- { 287,10}, { 575,11}, { 303,12}, { 159,11}, \
- { 319, 9}, { 1279,11}, { 367,12}, { 191,11}, \
- { 383,10}, { 767,11}, { 415,12}, { 223,11}, \
- { 447,10}, { 895,13}, { 127,12}, { 255,11}, \
- { 511,10}, { 1023,11}, { 543,12}, { 287,11}, \
- { 575,10}, { 1151,11}, { 607,10}, { 1215,12}, \
- { 319,10}, { 1279,11}, { 671,12}, { 351,11}, \
- { 703,13}, { 191,12}, { 383,11}, { 767,12}, \
- { 415,11}, { 831,10}, { 1663,12}, { 447,11}, \
- { 895,14}, { 127,13}, { 255,12}, { 511,11}, \
- { 1023,12}, { 543,11}, { 1087,10}, { 2175,12}, \
- { 575,11}, { 1151,12}, { 607,11}, { 1215,13}, \
- { 319,11}, { 1279,12}, { 671,11}, { 1343,10}, \
- { 2687,12}, { 703,11}, { 1407,13}, { 383,12}, \
- { 767,11}, { 1535,12}, { 799,11}, { 1599,12}, \
- { 831,11}, { 1663,13}, { 447,12}, { 895,11}, \
- { 1791,12}, { 959,14}, { 255,13}, { 511,12}, \
- { 1087,11}, { 2175,13}, { 575,12}, { 1215,11}, \
- { 2431,10}, { 4863,12}, { 1343,13}, { 703,12}, \
- { 1407,14}, { 383,13}, { 767,12}, { 1599,13}, \
- { 831,12}, { 1727,11}, { 3455,13}, { 895,12}, \
- { 1791,13}, { 959,15}, { 255,14}, { 511,13}, \
- { 1087,12}, { 2175,13}, { 1151,12}, { 2303,13}, \
- { 1215,12}, { 2431,11}, { 4863,13}, { 1343,12}, \
- { 2687,13}, { 1471,12}, { 2943,11}, { 5887,14}, \
- { 767,13}, { 1599,12}, { 3199,13}, { 1727,14}, \
- { 895,13}, { 1791,12}, { 3583,13}, { 1919,12}, \
- { 3839,15}, { 511,14}, { 1023,13}, { 2175,14}, \
- { 1151,13}, { 2303,12}, { 4607,13}, { 2431,12}, \
- { 4863,14}, { 1279,13}, { 2687,14}, { 1407,13}, \
- { 2943,12}, { 5887,15}, { 767,14}, { 1535,13}, \
- { 3199,14}, { 1663,13}, { 3455,12}, { 6911,14}, \
- { 1791,13}, { 3583,14}, { 1919,13}, { 3839,16}, \
- { 511,15}, { 1023,14}, { 2175,13}, { 4351,14}, \
- { 2303,13}, { 4607,14}, { 2431,13}, { 4863,15}, \
- { 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
- { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
- {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 217
-#define MUL_FFT_THRESHOLD 3712
-
-#define SQR_FFT_MODF_THRESHOLD 380 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 380, 5}, { 17, 6}, { 9, 5}, { 23, 6}, \
- { 21, 7}, { 11, 6}, { 25, 7}, { 13, 6}, \
- { 27, 7}, { 15, 6}, { 31, 7}, { 25, 8}, \
- { 13, 7}, { 27, 8}, { 15, 7}, { 31, 8}, \
- { 19, 7}, { 39, 8}, { 21, 9}, { 11, 8}, \
- { 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
- { 41, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
- { 15, 9}, { 39,10}, { 23, 9}, { 51,11}, \
- { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
- { 83,10}, { 47, 9}, { 95,10}, { 55,11}, \
- { 31,10}, { 79,11}, { 47,10}, { 95,12}, \
- { 31,11}, { 63,10}, { 127, 9}, { 255,10}, \
- { 135,11}, { 79,10}, { 159,11}, { 95,10}, \
- { 191,11}, { 111,12}, { 63,11}, { 127,10}, \
- { 255, 9}, { 511,10}, { 271,11}, { 143,10}, \
- { 287, 9}, { 575,10}, { 303,11}, { 159,10}, \
- { 319,12}, { 95,11}, { 191,10}, { 383,13}, \
- { 63,12}, { 127,11}, { 255,10}, { 511,11}, \
- { 271,10}, { 543, 9}, { 1087,11}, { 303,10}, \
- { 607,12}, { 159,11}, { 319,10}, { 639,11}, \
- { 335,10}, { 671, 9}, { 1343,11}, { 351,12}, \
- { 191,11}, { 383,10}, { 767,11}, { 415,12}, \
- { 223,11}, { 447,13}, { 127,12}, { 255,11}, \
- { 511,10}, { 1023,11}, { 543,10}, { 1087,12}, \
- { 287,11}, { 575,10}, { 1151,11}, { 607,12}, \
- { 319,11}, { 639,10}, { 1279,11}, { 671,12}, \
- { 351,13}, { 191,12}, { 383,11}, { 767,12}, \
- { 415,11}, { 831,12}, { 447,14}, { 127,13}, \
- { 255,12}, { 511,11}, { 1023,12}, { 543,11}, \
- { 1087,10}, { 2175,12}, { 575,11}, { 1151,12}, \
- { 607,13}, { 319,12}, { 639,11}, { 1279,12}, \
- { 671,11}, { 1343,10}, { 2687,12}, { 703,11}, \
- { 1407,13}, { 383,12}, { 767,11}, { 1599,10}, \
- { 3199,12}, { 831,13}, { 447,12}, { 895,14}, \
- { 255,13}, { 511,12}, { 1087,11}, { 2175,13}, \
- { 575,12}, { 1215,11}, { 2431,10}, { 4863,13}, \
- { 639,12}, { 1343,11}, { 2687,13}, { 703,12}, \
- { 1407,14}, { 383,13}, { 767,12}, { 1599,11}, \
- { 3199,13}, { 831,12}, { 1727,13}, { 895,15}, \
- { 255,14}, { 511,13}, { 1087,12}, { 2175,13}, \
- { 1215,12}, { 2431,11}, { 4863,14}, { 639,13}, \
- { 1343,12}, { 2687,13}, { 1471,12}, { 2943,11}, \
- { 5887,14}, { 767,13}, { 1599,12}, { 3199,13}, \
- { 1727,14}, { 895,13}, { 1791,12}, { 3583,13}, \
- { 1919,12}, { 3839,15}, { 511,14}, { 1023,13}, \
- { 2175,14}, { 1151,13}, { 2303,12}, { 4607,13}, \
- { 2431,12}, { 4863,14}, { 1279,13}, { 2687,14}, \
- { 1407,13}, { 2943,12}, { 5887,15}, { 767,14}, \
- { 1535,13}, { 3199,14}, { 1663,13}, { 3327,12}, \
- { 6655,13}, { 3455,12}, { 6911,14}, { 1791,13}, \
- { 3583,14}, { 1919,13}, { 3839,16}, { 511,15}, \
- { 1023,14}, { 2175,13}, { 4351,14}, { 2303,13}, \
- { 4607,14}, { 2431,13}, { 4863,15}, { 32768,16}, \
- { 65536,17}, { 131072,18}, { 262144,19}, { 524288,20}, \
- {1048576,21}, {2097152,22}, {4194304,23}, {8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 220
-#define SQR_FFT_THRESHOLD 3264
-
-#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 39
-#define MULLO_MUL_N_THRESHOLD 7246
-
-#define DC_DIV_QR_THRESHOLD 54
-#define DC_DIVAPPR_Q_THRESHOLD 180
-#define DC_BDIV_QR_THRESHOLD 47
-#define DC_BDIV_Q_THRESHOLD 80
-
-#define INV_MULMOD_BNM1_THRESHOLD 38
-#define INV_NEWTON_THRESHOLD 226
-#define INV_APPR_THRESHOLD 188
-
-#define BINV_NEWTON_THRESHOLD 248
-#define REDC_1_TO_REDC_2_THRESHOLD 52
-#define REDC_2_TO_REDC_N_THRESHOLD 0 /* always */
-
-#define MU_DIV_QR_THRESHOLD 1334
-#define MU_DIVAPPR_Q_THRESHOLD 1360
-#define MUPI_DIV_QR_THRESHOLD 108
-#define MU_BDIV_QR_THRESHOLD 1142
-#define MU_BDIV_Q_THRESHOLD 1360
-
-#define POWM_SEC_TABLE 1,16,194,386,452,2245
-
-#define MATRIX22_STRASSEN_THRESHOLD 15
-#define HGCD_THRESHOLD 108
-#define HGCD_APPR_THRESHOLD 51
-#define HGCD_REDUCE_THRESHOLD 2681
-#define GCD_DC_THRESHOLD 474
-#define GCDEXT_DC_THRESHOLD 298
-#define JACOBI_BASE_METHOD 4
-
-#define GET_STR_DC_THRESHOLD 13
-#define GET_STR_PRECOMPUTE_THRESHOLD 21
-#define SET_STR_DC_THRESHOLD 418
-#define SET_STR_PRECOMPUTE_THRESHOLD 1289
-
-#define FAC_DSC_THRESHOLD 252
-#define FAC_ODD_THRESHOLD 23
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd2/gmp-mparam.h b/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd2/gmp-mparam.h
deleted file mode 100644
index 16f25c4c7bb..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd2/gmp-mparam.h
+++ /dev/null
@@ -1,237 +0,0 @@
-/* AMD bd2 gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright 1991, 1993, 1994, 2000-2010, 2012, 2014 Free Software Foundation,
-Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#define GMP_LIMB_BITS 64
-#define GMP_LIMB_BYTES 8
-
-/* 3200 MHz Piledriver Vishera */
-/* FFT tuning limit = 40000000 */
-/* Generated by tuneup.c, 2014-03-12, gcc 4.8 */
-
-#define MOD_1_NORM_THRESHOLD 0 /* always */
-#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 4
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 4
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 17
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 34
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 10
-#define USE_PREINV_DIVREM_1 1 /* native */
-#define DIV_QR_1_NORM_THRESHOLD 2
-#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
-#define BMOD_1_TO_MOD_1_THRESHOLD 21
-
-#define MUL_TOOM22_THRESHOLD 16
-#define MUL_TOOM33_THRESHOLD 54
-#define MUL_TOOM44_THRESHOLD 154
-#define MUL_TOOM6H_THRESHOLD 274
-#define MUL_TOOM8H_THRESHOLD 454
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 97
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 114
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 105
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 105
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 147
-
-#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 22
-#define SQR_TOOM3_THRESHOLD 81
-#define SQR_TOOM4_THRESHOLD 218
-#define SQR_TOOM6_THRESHOLD 303
-#define SQR_TOOM8_THRESHOLD 430
-
-#define MULMID_TOOM42_THRESHOLD 20
-
-#define MULMOD_BNM1_THRESHOLD 12
-#define SQRMOD_BNM1_THRESHOLD 13
-
-#define MUL_FFT_MODF_THRESHOLD 376 /* k = 5 */
-#define MUL_FFT_TABLE3 \
- { { 376, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
- { 11, 5}, { 23, 6}, { 21, 7}, { 11, 6}, \
- { 23, 7}, { 13, 6}, { 27, 7}, { 21, 8}, \
- { 11, 7}, { 25, 8}, { 13, 7}, { 27, 8}, \
- { 15, 7}, { 32, 8}, { 17, 7}, { 35, 8}, \
- { 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
- { 35, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
- { 49, 9}, { 27,10}, { 15, 9}, { 39,10}, \
- { 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
- { 71,10}, { 39, 9}, { 83,10}, { 47, 9}, \
- { 99,10}, { 55,11}, { 31,10}, { 79,11}, \
- { 47,10}, { 95,12}, { 31,11}, { 63,10}, \
- { 135, 6}, { 2175, 7}, { 1151, 9}, { 303,10}, \
- { 159, 9}, { 319, 8}, { 639, 9}, { 335,11}, \
- { 95,10}, { 191,11}, { 111,12}, { 63,11}, \
- { 127,10}, { 255,11}, { 143,10}, { 303,11}, \
- { 159,12}, { 95,11}, { 191,13}, { 63,12}, \
- { 127,11}, { 255,10}, { 511,11}, { 271,10}, \
- { 543,11}, { 287,10}, { 575,11}, { 303,12}, \
- { 159,11}, { 319,10}, { 639,11}, { 351,12}, \
- { 191,11}, { 383,10}, { 767,11}, { 415,12}, \
- { 223,11}, { 447,13}, { 127,12}, { 255,11}, \
- { 511,12}, { 287,11}, { 575,10}, { 1151,12}, \
- { 319,11}, { 639,10}, { 1279,12}, { 351,13}, \
- { 191,12}, { 383,11}, { 767,12}, { 415,10}, \
- { 1663,12}, { 447,14}, { 127,13}, { 255,12}, \
- { 511,11}, { 1023,12}, { 543,11}, { 1087,10}, \
- { 2175,12}, { 575,11}, { 1151,12}, { 607,13}, \
- { 319,12}, { 639,11}, { 1279,12}, { 671,11}, \
- { 1343,10}, { 2687,12}, { 703,11}, { 1407,10}, \
- { 2815,12}, { 735,13}, { 383,12}, { 767,11}, \
- { 1599,12}, { 831,11}, { 1663,13}, { 447,12}, \
- { 895,11}, { 1791,14}, { 255,13}, { 511,12}, \
- { 1023,11}, { 2047,12}, { 1087,11}, { 2175,13}, \
- { 575,12}, { 1151,11}, { 2303,12}, { 1215,11}, \
- { 2431,10}, { 4863,13}, { 639,12}, { 1279,11}, \
- { 2559,12}, { 1343,11}, { 2687,13}, { 703,12}, \
- { 1407,11}, { 2815,14}, { 383,13}, { 767,12}, \
- { 1599,13}, { 831,12}, { 1663,13}, { 895,12}, \
- { 1791,15}, { 255,14}, { 511,13}, { 1023,12}, \
- { 2047,13}, { 1087,12}, { 2175,13}, { 1151,12}, \
- { 2303,13}, { 1215,12}, { 2431,11}, { 4863,14}, \
- { 639,13}, { 1343,12}, { 2687,13}, { 1407,12}, \
- { 2815,13}, { 1471,12}, { 2943,11}, { 5887,14}, \
- { 767,13}, { 1599,12}, { 3199,13}, { 1727,14}, \
- { 895,13}, { 1791,12}, { 3583,13}, { 1919,12}, \
- { 3839,11}, { 7679,15}, { 511,14}, { 1023,13}, \
- { 2175,14}, { 1151,13}, { 2431,12}, { 4863,14}, \
- { 1279,13}, { 2687,14}, { 1407,13}, { 2943,12}, \
- { 5887,15}, { 767,14}, { 1535,13}, { 3199,14}, \
- { 1663,13}, { 3455,12}, { 6911,14}, { 1791,13}, \
- { 3583,14}, { 1919,13}, { 3839,12}, { 7679,16}, \
- { 511,15}, { 1023,14}, { 2175,13}, { 4479,14}, \
- { 2303,13}, { 4607,14}, { 2431,13}, { 4863,15}, \
- { 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
- { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
- {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 225
-#define MUL_FFT_THRESHOLD 3712
-
-#define SQR_FFT_MODF_THRESHOLD 344 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 344, 5}, { 11, 4}, { 23, 5}, { 19, 6}, \
- { 10, 5}, { 21, 6}, { 21, 7}, { 11, 6}, \
- { 25, 7}, { 13, 6}, { 27, 7}, { 17, 6}, \
- { 35, 8}, { 9, 7}, { 21, 8}, { 11, 7}, \
- { 25, 8}, { 13, 7}, { 27, 8}, { 15, 7}, \
- { 31, 8}, { 17, 7}, { 35, 8}, { 21, 9}, \
- { 11, 8}, { 27, 9}, { 15, 8}, { 35, 9}, \
- { 19, 8}, { 39, 9}, { 23, 8}, { 47, 9}, \
- { 27,10}, { 15, 9}, { 39,10}, { 23, 9}, \
- { 51,11}, { 15,10}, { 31, 9}, { 63,10}, \
- { 39, 9}, { 79,10}, { 47, 9}, { 95,11}, \
- { 31,10}, { 79,11}, { 47,10}, { 95,12}, \
- { 31,11}, { 63,10}, { 127, 9}, { 255,10}, \
- { 135,11}, { 95,10}, { 191, 6}, { 3199, 7}, \
- { 1727, 9}, { 447,11}, { 127,10}, { 255, 9}, \
- { 511,10}, { 271,11}, { 143,10}, { 287, 9}, \
- { 575,10}, { 303, 9}, { 607,10}, { 319,12}, \
- { 95,11}, { 191,10}, { 383,11}, { 207,13}, \
- { 63,12}, { 127,11}, { 255,10}, { 511,11}, \
- { 271,10}, { 543,11}, { 287,10}, { 575,11}, \
- { 351,12}, { 191,11}, { 383,10}, { 767,11}, \
- { 415,12}, { 223,11}, { 447,10}, { 895,13}, \
- { 127,12}, { 255,11}, { 511,10}, { 1023,11}, \
- { 543,12}, { 287,11}, { 575,12}, { 319,10}, \
- { 1279,12}, { 351,13}, { 191,12}, { 383,11}, \
- { 767,12}, { 415,11}, { 831,12}, { 447,11}, \
- { 895,14}, { 127,13}, { 255,12}, { 511,11}, \
- { 1023,12}, { 543,11}, { 1087,10}, { 2175,12}, \
- { 575,13}, { 319,11}, { 1279,12}, { 671,11}, \
- { 1343,12}, { 703,11}, { 1407,13}, { 383,12}, \
- { 767,11}, { 1535,12}, { 799,11}, { 1599,12}, \
- { 831,11}, { 1663,13}, { 447,12}, { 895,14}, \
- { 255,13}, { 511,12}, { 1087,11}, { 2175,13}, \
- { 575,11}, { 2303,12}, { 1215,11}, { 2431,10}, \
- { 4863,13}, { 639,12}, { 1343,11}, { 2687,13}, \
- { 703,12}, { 1407,14}, { 383,13}, { 767,12}, \
- { 1599,13}, { 831,12}, { 1727,11}, { 3455,13}, \
- { 895,15}, { 255,14}, { 511,13}, { 1087,12}, \
- { 2239,11}, { 4479,12}, { 2303,13}, { 1215,12}, \
- { 2431,11}, { 4863,14}, { 639,13}, { 1279,12}, \
- { 2559,13}, { 1343,12}, { 2687,13}, { 1407,12}, \
- { 2815,13}, { 1471,12}, { 2943,11}, { 5887,14}, \
- { 767,13}, { 1599,12}, { 3199,13}, { 1727,14}, \
- { 895,13}, { 1791,12}, { 3583,13}, { 1919,12}, \
- { 3839,15}, { 511,14}, { 1023,13}, { 2431,12}, \
- { 4863,14}, { 1279,13}, { 2687,14}, { 1407,13}, \
- { 2943,12}, { 5887,11}, { 11775,15}, { 767,14}, \
- { 1535,13}, { 3199,14}, { 1663,13}, { 3455,12}, \
- { 6911,14}, { 1791,13}, { 3583,14}, { 1919,13}, \
- { 3839,16}, { 511,15}, { 1023,14}, { 2175,13}, \
- { 4479,14}, { 2303,13}, { 4607,14}, { 2431,13}, \
- { 4863,15}, { 32768,16}, { 65536,17}, { 131072,18}, \
- { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
- {4194304,23}, {8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 214
-#define SQR_FFT_THRESHOLD 3264
-
-#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 37
-#define MULLO_MUL_N_THRESHOLD 8397
-
-#define DC_DIV_QR_THRESHOLD 42
-#define DC_DIVAPPR_Q_THRESHOLD 173
-#define DC_BDIV_QR_THRESHOLD 42
-#define DC_BDIV_Q_THRESHOLD 77
-
-#define INV_MULMOD_BNM1_THRESHOLD 30
-#define INV_NEWTON_THRESHOLD 202
-#define INV_APPR_THRESHOLD 172
-
-#define BINV_NEWTON_THRESHOLD 238
-#define REDC_1_TO_REDC_2_THRESHOLD 44
-#define REDC_2_TO_REDC_N_THRESHOLD 0 /* always */
-
-#define MU_DIV_QR_THRESHOLD 1308
-#define MU_DIVAPPR_Q_THRESHOLD 1334
-#define MUPI_DIV_QR_THRESHOLD 85
-#define MU_BDIV_QR_THRESHOLD 1142
-#define MU_BDIV_Q_THRESHOLD 1308
-
-#define POWM_SEC_TABLE 1,16,257,452,1099,2079
-
-#define MATRIX22_STRASSEN_THRESHOLD 14
-#define HGCD_THRESHOLD 110
-#define HGCD_APPR_THRESHOLD 96
-#define HGCD_REDUCE_THRESHOLD 2479
-#define GCD_DC_THRESHOLD 372
-#define GCDEXT_DC_THRESHOLD 293
-#define JACOBI_BASE_METHOD 4
-
-#define GET_STR_DC_THRESHOLD 12
-#define GET_STR_PRECOMPUTE_THRESHOLD 20
-#define SET_STR_DC_THRESHOLD 204
-#define SET_STR_PRECOMPUTE_THRESHOLD 1160
-
-#define FAC_DSC_THRESHOLD 166
-#define FAC_ODD_THRESHOLD 24
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/gmp-mparam.h b/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/gmp-mparam.h
deleted file mode 100644
index de4c4e4528c..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/gmp-mparam.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/* AMD Bobcat gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright 1991, 1993, 1994, 2000-2012, 2014 Free Software Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#define GMP_LIMB_BITS 64
-#define GMP_LIMB_BYTES 8
-
-#undef HAVE_NATIVE_mpn_mul_2
-#undef HAVE_NATIVE_mpn_addmul_2
-
-/* 1600 MHz AMD Bobcat Zacate E-350 */
-/* FFT tuning limit = 25000000 */
-/* Generated by tuneup.c, 2014-03-12, gcc 4.5 */
-
-#define MOD_1_NORM_THRESHOLD 0 /* always */
-#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 4
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 32
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 43
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 10
-#define USE_PREINV_DIVREM_1 1 /* native */
-#define DIV_QR_1_NORM_THRESHOLD 1
-#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
-#define BMOD_1_TO_MOD_1_THRESHOLD 17
-
-#define MUL_TOOM22_THRESHOLD 24
-#define MUL_TOOM33_THRESHOLD 36
-#define MUL_TOOM44_THRESHOLD 268
-#define MUL_TOOM6H_THRESHOLD 396
-#define MUL_TOOM8H_THRESHOLD 517
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 69
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 195
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 181
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 72
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 103
-
-#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 26
-#define SQR_TOOM3_THRESHOLD 93
-#define SQR_TOOM4_THRESHOLD 375
-#define SQR_TOOM6_THRESHOLD 0 /* always */
-#define SQR_TOOM8_THRESHOLD 478
-
-#define MULMID_TOOM42_THRESHOLD 22
-
-#define MULMOD_BNM1_THRESHOLD 11
-#define SQRMOD_BNM1_THRESHOLD 13
-
-#define MUL_FFT_MODF_THRESHOLD 400 /* k = 5 */
-#define MUL_FFT_TABLE3 \
- { { 400, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \
- { 10, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
- { 20, 7}, { 11, 6}, { 23, 7}, { 21, 8}, \
- { 11, 7}, { 24, 8}, { 13, 7}, { 27, 8}, \
- { 15, 7}, { 31, 8}, { 17, 7}, { 36, 8}, \
- { 19, 7}, { 39, 8}, { 21, 9}, { 11, 8}, \
- { 23, 7}, { 47, 8}, { 27, 9}, { 15, 8}, \
- { 37, 9}, { 19, 8}, { 43, 9}, { 23, 8}, \
- { 49, 9}, { 27,10}, { 15, 9}, { 43,10}, \
- { 23, 9}, { 55,11}, { 15,10}, { 31, 9}, \
- { 67,10}, { 39, 9}, { 83,10}, { 47, 9}, \
- { 99,10}, { 55,11}, { 31,10}, { 63, 9}, \
- { 127,10}, { 71, 9}, { 143,10}, { 79,11}, \
- { 47,10}, { 103,12}, { 31,11}, { 63,10}, \
- { 143,11}, { 79,10}, { 167,11}, { 95,10}, \
- { 191, 9}, { 383,11}, { 111,12}, { 63,11}, \
- { 127,10}, { 255, 9}, { 511,11}, { 143,10}, \
- { 287,11}, { 159,10}, { 319,12}, { 95,11}, \
- { 191,10}, { 383,11}, { 207,10}, { 415,13}, \
- { 63,12}, { 127,11}, { 255,10}, { 511,11}, \
- { 271,10}, { 543,11}, { 287,12}, { 159,11}, \
- { 319,10}, { 639,11}, { 351,10}, { 703,11}, \
- { 367,12}, { 191,11}, { 383,10}, { 767,11}, \
- { 415,12}, { 223,11}, { 447,13}, { 127,12}, \
- { 255,11}, { 543,12}, { 287,11}, { 607,12}, \
- { 319,11}, { 639,12}, { 351,11}, { 703,13}, \
- { 191,12}, { 383,11}, { 767,12}, { 415,11}, \
- { 831,12}, { 447,14}, { 127,13}, { 255,12}, \
- { 607,13}, { 319,12}, { 703,13}, { 383,12}, \
- { 831,13}, { 447,12}, { 895,14}, { 255,13}, \
- { 511,12}, { 1023,13}, { 575,12}, { 1151,13}, \
- { 703,14}, { 383,13}, { 831,12}, { 1663,13}, \
- { 895,15}, { 255,14}, { 511,13}, { 1087,12}, \
- { 2175,13}, { 1151,14}, { 639,13}, { 1407,14}, \
- { 767,13}, { 1663,14}, { 895,15}, { 511,14}, \
- { 1023,13}, { 2175,14}, { 1151,13}, { 2431,14}, \
- { 1279,13}, { 2559,14}, { 1407,15}, { 32768,16}, \
- { 65536,17}, { 131072,18}, { 262144,19}, { 524288,20}, \
- {1048576,21}, {2097152,22}, {4194304,23}, {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 156
-#define MUL_FFT_THRESHOLD 5504
-
-#define SQR_FFT_MODF_THRESHOLD 380 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 380, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \
- { 10, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
- { 12, 5}, { 25, 6}, { 21, 7}, { 11, 6}, \
- { 25, 7}, { 13, 6}, { 27, 7}, { 25, 8}, \
- { 13, 7}, { 27, 8}, { 15, 7}, { 31, 8}, \
- { 17, 7}, { 35, 8}, { 19, 7}, { 39, 8}, \
- { 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
- { 41, 9}, { 23, 8}, { 49, 9}, { 27,10}, \
- { 15, 9}, { 31, 8}, { 63, 9}, { 43,10}, \
- { 23, 9}, { 55,10}, { 31, 9}, { 71,10}, \
- { 39, 9}, { 83,10}, { 47, 9}, { 99,10}, \
- { 55,11}, { 31,10}, { 79,11}, { 47,10}, \
- { 103,12}, { 31,11}, { 63,10}, { 127, 9}, \
- { 255,10}, { 135, 9}, { 271,11}, { 79,10}, \
- { 159, 9}, { 319,11}, { 95,10}, { 191, 9}, \
- { 383,11}, { 111,12}, { 63,11}, { 127,10}, \
- { 255, 9}, { 511,10}, { 271,11}, { 143,10}, \
- { 287, 9}, { 575,10}, { 303,11}, { 159,10}, \
- { 319,12}, { 95,11}, { 191,10}, { 383,11}, \
- { 207,10}, { 415,13}, { 63,12}, { 127,11}, \
- { 255,10}, { 511,11}, { 271,10}, { 575,11}, \
- { 303,12}, { 159,11}, { 319,10}, { 639,11}, \
- { 335,10}, { 671,11}, { 351,10}, { 703,11}, \
- { 367,12}, { 191,11}, { 383,10}, { 767,11}, \
- { 415,12}, { 223,11}, { 447,13}, { 127,12}, \
- { 255,11}, { 543,12}, { 287,11}, { 607,12}, \
- { 319,11}, { 671,12}, { 351,11}, { 703,13}, \
- { 191,12}, { 383,11}, { 767,12}, { 415,11}, \
- { 831,12}, { 479,14}, { 127,13}, { 255,12}, \
- { 607,13}, { 319,12}, { 703,13}, { 383,12}, \
- { 831,13}, { 447,12}, { 895,14}, { 255,13}, \
- { 511,12}, { 1023,13}, { 575,12}, { 1151,13}, \
- { 703,14}, { 383,13}, { 831,12}, { 1663,13}, \
- { 895,15}, { 255,14}, { 511,13}, { 1087,12}, \
- { 2175,13}, { 1151,14}, { 639,13}, { 1343,12}, \
- { 2687,14}, { 767,13}, { 1599,12}, { 3199,13}, \
- { 1663,14}, { 895,15}, { 511,14}, { 1023,13}, \
- { 2175,14}, { 1151,13}, { 2431,14}, { 1279,13}, \
- { 2687,15}, { 32768,16}, { 65536,17}, { 131072,18}, \
- { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
- {4194304,23}, {8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 162
-#define SQR_FFT_THRESHOLD 3712
-
-#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 26
-#define MULLO_MUL_N_THRESHOLD 10950
-
-#define DC_DIV_QR_THRESHOLD 63
-#define DC_DIVAPPR_Q_THRESHOLD 198
-#define DC_BDIV_QR_THRESHOLD 56
-#define DC_BDIV_Q_THRESHOLD 127
-
-#define INV_MULMOD_BNM1_THRESHOLD 46
-#define INV_NEWTON_THRESHOLD 236
-#define INV_APPR_THRESHOLD 204
-
-#define BINV_NEWTON_THRESHOLD 286
-#define REDC_1_TO_REDC_2_THRESHOLD 63
-#define REDC_2_TO_REDC_N_THRESHOLD 0 /* always */
-
-#define MU_DIV_QR_THRESHOLD 1499
-#define MU_DIVAPPR_Q_THRESHOLD 1499
-#define MUPI_DIV_QR_THRESHOLD 84
-#define MU_BDIV_QR_THRESHOLD 1334
-#define MU_BDIV_Q_THRESHOLD 1470
-
-#define POWM_SEC_TABLE 1,16,194,904,1167
-
-#define MATRIX22_STRASSEN_THRESHOLD 15
-#define HGCD_THRESHOLD 102
-#define HGCD_APPR_THRESHOLD 50
-#define HGCD_REDUCE_THRESHOLD 2681
-#define GCD_DC_THRESHOLD 416
-#define GCDEXT_DC_THRESHOLD 293
-#define JACOBI_BASE_METHOD 4
-
-#define GET_STR_DC_THRESHOLD 15
-#define GET_STR_PRECOMPUTE_THRESHOLD 26
-#define SET_STR_DC_THRESHOLD 248
-#define SET_STR_PRECOMPUTE_THRESHOLD 1160
-
-#define FAC_DSC_THRESHOLD 746
-#define FAC_ODD_THRESHOLD 44
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/gmp-mparam.h b/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/gmp-mparam.h
deleted file mode 100644
index 6a7c03639f6..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/gmp-mparam.h
+++ /dev/null
@@ -1,231 +0,0 @@
-/* Nehalem gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright 1991, 1993, 1994, 2000-2012, 2014 Free Software Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#define GMP_LIMB_BITS 64
-#define GMP_LIMB_BYTES 8
-
-/* 2667 MHz Core i7 Nehalem */
-/* FFT tuning limit = 100000000 */
-/* Generated by tuneup.c, 2014-03-18, gcc 4.5 */
-
-#define MOD_1_NORM_THRESHOLD 0 /* always */
-#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 2
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 11
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 16
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 9
-#define USE_PREINV_DIVREM_1 1 /* native */
-#define DIV_QR_1_NORM_THRESHOLD 1
-#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
-#define BMOD_1_TO_MOD_1_THRESHOLD 16
-
-#define MUL_TOOM22_THRESHOLD 18
-#define MUL_TOOM33_THRESHOLD 60
-#define MUL_TOOM44_THRESHOLD 166
-#define MUL_TOOM6H_THRESHOLD 228
-#define MUL_TOOM8H_THRESHOLD 309
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 63
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 114
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 104
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 113
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 147
-
-#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 28
-#define SQR_TOOM3_THRESHOLD 93
-#define SQR_TOOM4_THRESHOLD 250
-#define SQR_TOOM6_THRESHOLD 351
-#define SQR_TOOM8_THRESHOLD 454
-
-#define MULMID_TOOM42_THRESHOLD 28
-
-#define MULMOD_BNM1_THRESHOLD 12
-#define SQRMOD_BNM1_THRESHOLD 15
-
-#define MUL_FFT_MODF_THRESHOLD 380 /* k = 5 */
-#define MUL_FFT_TABLE3 \
- { { 380, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \
- { 10, 5}, { 21, 6}, { 21, 7}, { 11, 6}, \
- { 23, 7}, { 21, 8}, { 11, 7}, { 24, 8}, \
- { 13, 7}, { 27, 8}, { 15, 7}, { 31, 8}, \
- { 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
- { 33, 9}, { 19, 8}, { 39, 9}, { 23, 8}, \
- { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
- { 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
- { 67,10}, { 39, 9}, { 83,10}, { 47, 9}, \
- { 95,10}, { 55,11}, { 31,10}, { 79,11}, \
- { 47,10}, { 95,12}, { 31,11}, { 63,10}, \
- { 127, 9}, { 255,10}, { 135,11}, { 79,10}, \
- { 159, 9}, { 319,10}, { 167,11}, { 95,10}, \
- { 191, 9}, { 383,12}, { 63,11}, { 127,10}, \
- { 255, 9}, { 511,11}, { 143,10}, { 287, 9}, \
- { 575,11}, { 159,10}, { 319,12}, { 95,11}, \
- { 191,10}, { 383, 9}, { 767,11}, { 207,13}, \
- { 63,12}, { 127,11}, { 255,10}, { 511,11}, \
- { 271,10}, { 543,11}, { 287,10}, { 575,11}, \
- { 303,12}, { 159,11}, { 319,10}, { 639,11}, \
- { 351,10}, { 703,12}, { 191,11}, { 383,10}, \
- { 767,11}, { 415,10}, { 831,12}, { 223,11}, \
- { 447,10}, { 895,13}, { 127,12}, { 255,11}, \
- { 511,10}, { 1023,11}, { 543,10}, { 1087,12}, \
- { 287,11}, { 575,10}, { 1151,11}, { 607,12}, \
- { 319,11}, { 671,12}, { 351,11}, { 703,13}, \
- { 191,12}, { 383,11}, { 767,12}, { 415,11}, \
- { 831,12}, { 447,11}, { 895,12}, { 479,14}, \
- { 127,13}, { 255,12}, { 511,11}, { 1023,12}, \
- { 543,11}, { 1087,12}, { 575,11}, { 1151,12}, \
- { 607,13}, { 319,12}, { 703,11}, { 1407,13}, \
- { 383,12}, { 831,13}, { 447,12}, { 959,14}, \
- { 255,13}, { 511,12}, { 1087,11}, { 2175,13}, \
- { 575,12}, { 1215,11}, { 2431,13}, { 639,12}, \
- { 1279,13}, { 703,12}, { 1407,14}, { 383,13}, \
- { 767,12}, { 1535,13}, { 831,12}, { 1663,13}, \
- { 959,14}, { 511,13}, { 1087,12}, { 2175,13}, \
- { 1215,12}, { 2431,14}, { 639,13}, { 1343,12}, \
- { 2687,13}, { 1407,12}, { 2815,14}, { 767,13}, \
- { 1663,14}, { 895,13}, { 1919,15}, { 511,14}, \
- { 1023,13}, { 2175,14}, { 1151,13}, { 2431,12}, \
- { 4863,14}, { 1279,13}, { 2687,14}, { 1407,13}, \
- { 2815,15}, { 767,14}, { 1535,13}, { 3071,14}, \
- { 1663,13}, { 3455,14}, { 1791,13}, { 3583,14}, \
- { 1919,16}, { 511,15}, { 1023,14}, { 2431,13}, \
- { 4863,15}, { 1279,14}, { 2943,13}, { 5887,15}, \
- { 1535,14}, { 3455,15}, { 1791,14}, { 3839,16}, \
- { 1023,15}, { 2047,14}, { 4223,15}, { 2303,14}, \
- { 4863,15}, { 2815,14}, { 5887,16}, { 65536,17}, \
- { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
- {2097152,22}, {4194304,23}, {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 203
-#define MUL_FFT_THRESHOLD 4032
-
-#define SQR_FFT_MODF_THRESHOLD 312 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 312, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \
- { 21, 7}, { 11, 6}, { 23, 7}, { 21, 8}, \
- { 11, 7}, { 24, 8}, { 13, 7}, { 27, 8}, \
- { 15, 7}, { 31, 8}, { 21, 9}, { 11, 8}, \
- { 27, 9}, { 15, 8}, { 33, 9}, { 19, 8}, \
- { 41, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
- { 15, 9}, { 39,10}, { 23, 9}, { 47,11}, \
- { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
- { 83,10}, { 47, 9}, { 95,10}, { 55,11}, \
- { 31,10}, { 79,11}, { 47,10}, { 95,12}, \
- { 31,11}, { 63,10}, { 127, 9}, { 255, 8}, \
- { 511,10}, { 135,11}, { 79,10}, { 159, 9}, \
- { 319,11}, { 95,10}, { 191, 9}, { 383,12}, \
- { 63,11}, { 127,10}, { 255, 9}, { 511,10}, \
- { 271, 9}, { 543,11}, { 143,10}, { 287, 9}, \
- { 575,11}, { 159,10}, { 319, 9}, { 639,12}, \
- { 95,11}, { 191,10}, { 383, 9}, { 767,11}, \
- { 207,13}, { 63,12}, { 127,11}, { 255,10}, \
- { 511, 9}, { 1023,11}, { 271,10}, { 543,11}, \
- { 287,10}, { 575,11}, { 303,12}, { 159,11}, \
- { 319,10}, { 639, 9}, { 1279,11}, { 351,10}, \
- { 703,12}, { 191,11}, { 383,10}, { 767,11}, \
- { 415,10}, { 831,12}, { 223,11}, { 447,10}, \
- { 895,11}, { 479,13}, { 127,12}, { 255,11}, \
- { 511,10}, { 1023,11}, { 543,10}, { 1087,12}, \
- { 287,11}, { 575,10}, { 1151,11}, { 607,12}, \
- { 319,11}, { 639,10}, { 1279,11}, { 671,12}, \
- { 351,11}, { 703,13}, { 191,12}, { 383,11}, \
- { 767,12}, { 415,11}, { 831,12}, { 447,11}, \
- { 895,12}, { 479,11}, { 959,14}, { 127,13}, \
- { 255,12}, { 511,11}, { 1023,12}, { 543,11}, \
- { 1087,12}, { 575,11}, { 1151,12}, { 607,13}, \
- { 319,12}, { 639,11}, { 1279,12}, { 671,11}, \
- { 1343,12}, { 703,11}, { 1407,13}, { 383,12}, \
- { 767,11}, { 1535,12}, { 831,13}, { 447,12}, \
- { 959,14}, { 255,13}, { 511,12}, { 1087,13}, \
- { 575,12}, { 1215,13}, { 639,12}, { 1343,13}, \
- { 703,12}, { 1407,14}, { 383,13}, { 767,12}, \
- { 1535,13}, { 831,12}, { 1663,13}, { 959,14}, \
- { 511,13}, { 1087,12}, { 2175,13}, { 1215,12}, \
- { 2431,14}, { 639,13}, { 1279,12}, { 2559,13}, \
- { 1343,12}, { 2687,13}, { 1407,12}, { 2815,14}, \
- { 767,13}, { 1663,14}, { 895,13}, { 1791,12}, \
- { 3583,13}, { 1919,15}, { 511,14}, { 1023,13}, \
- { 2175,14}, { 1151,13}, { 2431,12}, { 4863,14}, \
- { 1279,13}, { 2687,14}, { 1407,13}, { 2815,15}, \
- { 767,14}, { 1663,13}, { 3455,14}, { 1791,13}, \
- { 3583,16}, { 511,15}, { 1023,14}, { 2303,13}, \
- { 4607,14}, { 2431,13}, { 4863,15}, { 1279,14}, \
- { 2943,13}, { 5887,15}, { 1535,14}, { 3455,15}, \
- { 1791,14}, { 3839,16}, { 1023,15}, { 2047,14}, \
- { 4223,15}, { 2303,14}, { 4863,15}, { 2815,14}, \
- { 5887,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
- { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
- {8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 217
-#define SQR_FFT_THRESHOLD 2752
-
-#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 45
-#define MULLO_MUL_N_THRESHOLD 8397
-
-#define DC_DIV_QR_THRESHOLD 46
-#define DC_DIVAPPR_Q_THRESHOLD 135
-#define DC_BDIV_QR_THRESHOLD 38
-#define DC_BDIV_Q_THRESHOLD 31
-
-#define INV_MULMOD_BNM1_THRESHOLD 34
-#define INV_NEWTON_THRESHOLD 212
-#define INV_APPR_THRESHOLD 155
-
-#define BINV_NEWTON_THRESHOLD 254
-#define REDC_1_TO_REDC_2_THRESHOLD 32
-#define REDC_2_TO_REDC_N_THRESHOLD 50
-
-#define MU_DIV_QR_THRESHOLD 1334
-#define MU_DIVAPPR_Q_THRESHOLD 1360
-#define MUPI_DIV_QR_THRESHOLD 85
-#define MU_BDIV_QR_THRESHOLD 1142
-#define MU_BDIV_Q_THRESHOLD 1210
-
-#define POWM_SEC_TABLE 3,46,194,494,1678
-
-#define MATRIX22_STRASSEN_THRESHOLD 21
-#define HGCD_THRESHOLD 141
-#define HGCD_APPR_THRESHOLD 175
-#define HGCD_REDUCE_THRESHOLD 2205
-#define GCD_DC_THRESHOLD 330
-#define GCDEXT_DC_THRESHOLD 361
-#define JACOBI_BASE_METHOD 4
-
-#define GET_STR_DC_THRESHOLD 15
-#define GET_STR_PRECOMPUTE_THRESHOLD 21
-#define SET_STR_DC_THRESHOLD 517
-#define SET_STR_PRECOMPUTE_THRESHOLD 1430
-
-#define FAC_DSC_THRESHOLD 351
-#define FAC_ODD_THRESHOLD 43
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/gmp-mparam.h b/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/gmp-mparam.h
deleted file mode 100644
index 3a91b4c30e4..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/gmp-mparam.h
+++ /dev/null
@@ -1,224 +0,0 @@
-/* Sandy Bridge gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright 1991, 1993, 1994, 2000-2014 Free Software Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#define GMP_LIMB_BITS 64
-#define GMP_LIMB_BYTES 8
-
-/* 3300 MHz Core i5 Sandy Bridge */
-/* FFT tuning limit = 100000000 */
-/* Generated by tuneup.c, 2014-03-12, gcc 4.5 */
-
-#define MOD_1_NORM_THRESHOLD 0 /* always */
-#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 3
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 9
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 20
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 10
-#define USE_PREINV_DIVREM_1 1 /* native */
-#define DIV_QR_1_NORM_THRESHOLD 1
-#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
-#define BMOD_1_TO_MOD_1_THRESHOLD 30
-
-#define MUL_TOOM22_THRESHOLD 20
-#define MUL_TOOM33_THRESHOLD 65
-#define MUL_TOOM44_THRESHOLD 166
-#define MUL_TOOM6H_THRESHOLD 254
-#define MUL_TOOM8H_THRESHOLD 333
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 105
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 122
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 105
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 113
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 148
-
-#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 28
-#define SQR_TOOM3_THRESHOLD 93
-#define SQR_TOOM4_THRESHOLD 250
-#define SQR_TOOM6_THRESHOLD 348
-#define SQR_TOOM8_THRESHOLD 454
-
-#define MULMID_TOOM42_THRESHOLD 36
-
-#define MULMOD_BNM1_THRESHOLD 12
-#define SQRMOD_BNM1_THRESHOLD 15
-
-#define MUL_FFT_MODF_THRESHOLD 380 /* k = 5 */
-#define MUL_FFT_TABLE3 \
- { { 380, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
- { 11, 5}, { 23, 6}, { 21, 7}, { 11, 6}, \
- { 23, 7}, { 21, 8}, { 11, 7}, { 25, 8}, \
- { 13, 7}, { 27, 8}, { 15, 7}, { 31, 8}, \
- { 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
- { 33, 9}, { 19, 8}, { 39, 9}, { 23, 8}, \
- { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
- { 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
- { 67,10}, { 39, 9}, { 83,10}, { 47, 9}, \
- { 95,10}, { 55,11}, { 31,10}, { 79,11}, \
- { 47,10}, { 95,12}, { 31,11}, { 63,10}, \
- { 127, 9}, { 255,10}, { 135,11}, { 79,10}, \
- { 159, 9}, { 319,10}, { 167,11}, { 95,10}, \
- { 191, 9}, { 383, 8}, { 767, 7}, { 1599, 8}, \
- { 831, 9}, { 447,10}, { 239,12}, { 63,11}, \
- { 127,10}, { 255,11}, { 143,10}, { 287, 9}, \
- { 575,12}, { 95,11}, { 191,10}, { 383,11}, \
- { 207,10}, { 447,13}, { 63,12}, { 127,11}, \
- { 255,10}, { 511,11}, { 271,10}, { 543, 8}, \
- { 2175,11}, { 303,12}, { 159,11}, { 319,10}, \
- { 671,11}, { 367,12}, { 191,11}, { 383,10}, \
- { 767,11}, { 415,10}, { 831,12}, { 223,11}, \
- { 447,10}, { 895,11}, { 479,13}, { 127,12}, \
- { 255,11}, { 511,10}, { 1023,11}, { 543,12}, \
- { 287,11}, { 575,10}, { 1151,11}, { 607,12}, \
- { 319,11}, { 671,12}, { 351,11}, { 703,10}, \
- { 1407,13}, { 191,12}, { 383,11}, { 767,12}, \
- { 415,11}, { 831,12}, { 479,14}, { 127,13}, \
- { 255,12}, { 511,11}, { 1023,12}, { 575,11}, \
- { 1151,12}, { 607,13}, { 319,12}, { 671,11}, \
- { 1343,12}, { 703,13}, { 383,12}, { 767,11}, \
- { 1535,12}, { 831,13}, { 447,12}, { 959,11}, \
- { 1919,14}, { 255,13}, { 511,12}, { 1087,13}, \
- { 575,12}, { 1215,13}, { 639,12}, { 1279,13}, \
- { 703,12}, { 1407,14}, { 383,13}, { 767,12}, \
- { 1535,13}, { 831,12}, { 1663,13}, { 959,14}, \
- { 511,13}, { 1087,12}, { 2175,13}, { 1215,12}, \
- { 2431,14}, { 639,13}, { 1343,12}, { 2687,13}, \
- { 1407,12}, { 2815,13}, { 1471,12}, { 2943,14}, \
- { 767,13}, { 1663,14}, { 895,13}, { 1919,15}, \
- { 511,14}, { 1023,13}, { 2175,14}, { 1151,13}, \
- { 2431,12}, { 4863,14}, { 1279,13}, { 2687,14}, \
- { 1407,13}, { 2943,15}, { 767,14}, { 1535,13}, \
- { 3071,14}, { 1663,13}, { 3455,14}, { 1919,16}, \
- { 511,15}, { 1023,14}, { 2431,13}, { 4863,15}, \
- { 1279,14}, { 2943,13}, { 5887,15}, { 1535,14}, \
- { 3455,15}, { 1791,14}, { 3839,13}, { 7679,16}, \
- { 1023,15}, { 2047,14}, { 4223,15}, { 2303,14}, \
- { 4863,15}, { 2815,14}, { 5887,16}, { 65536,17}, \
- { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
- {2097152,22}, {4194304,23}, {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 203
-#define MUL_FFT_THRESHOLD 4736
-
-#define SQR_FFT_MODF_THRESHOLD 336 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 336, 5}, { 11, 4}, { 23, 5}, { 19, 6}, \
- { 10, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
- { 25, 7}, { 13, 6}, { 27, 7}, { 25, 8}, \
- { 13, 7}, { 27, 8}, { 15, 7}, { 31, 8}, \
- { 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
- { 33, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
- { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
- { 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
- { 63,10}, { 39, 9}, { 79,10}, { 55,11}, \
- { 31,10}, { 79,11}, { 47,10}, { 95,12}, \
- { 31,11}, { 63,10}, { 127, 9}, { 255, 8}, \
- { 511,10}, { 135,11}, { 79, 9}, { 319, 8}, \
- { 639,11}, { 95,10}, { 191, 9}, { 383,12}, \
- { 63,11}, { 127,10}, { 255, 9}, { 511,10}, \
- { 271, 9}, { 543,11}, { 143,10}, { 287, 8}, \
- { 1151,10}, { 303, 6}, { 4863, 8}, { 1279, 9}, \
- { 671,11}, { 175,10}, { 367,12}, { 95,11}, \
- { 191,10}, { 383,11}, { 207, 9}, { 831,10}, \
- { 447,13}, { 63,12}, { 127,11}, { 255,10}, \
- { 511,11}, { 271, 9}, { 1087,10}, { 575,11}, \
- { 303,10}, { 607,11}, { 319,10}, { 671,11}, \
- { 367,12}, { 191,11}, { 383,10}, { 767,11}, \
- { 415,12}, { 223,11}, { 447,10}, { 959,12}, \
- { 255,11}, { 511,10}, { 1023,11}, { 575,10}, \
- { 1151,11}, { 607,10}, { 1215,12}, { 319,11}, \
- { 671, 9}, { 2687,12}, { 351,11}, { 703,13}, \
- { 191,12}, { 415,11}, { 831,12}, { 479,14}, \
- { 127,13}, { 255,12}, { 511,11}, { 1023,12}, \
- { 607,13}, { 319,12}, { 671,11}, { 1343,12}, \
- { 703,13}, { 383,12}, { 831,13}, { 447,12}, \
- { 959,14}, { 255,13}, { 511,12}, { 1087,13}, \
- { 575,12}, { 1215,13}, { 639,12}, { 1343,13}, \
- { 703,14}, { 383,13}, { 767,12}, { 1535,13}, \
- { 831,12}, { 1663,13}, { 959,14}, { 511,13}, \
- { 1087,12}, { 2175,13}, { 1215,14}, { 639,13}, \
- { 1343,12}, { 2687,13}, { 1407,12}, { 2815,14}, \
- { 767,13}, { 1663,14}, { 895,13}, { 1791,15}, \
- { 511,14}, { 1023,13}, { 2175,14}, { 1151,13}, \
- { 2431,12}, { 4863,14}, { 1279,13}, { 2687,14}, \
- { 1407,13}, { 2815,15}, { 767,14}, { 1535,13}, \
- { 3071,14}, { 1663,13}, { 3455,14}, { 1791,16}, \
- { 511,15}, { 1023,14}, { 2431,13}, { 4863,15}, \
- { 1279,14}, { 2943,13}, { 5887,15}, { 1535,14}, \
- { 3455,15}, { 1791,14}, { 3839,16}, { 1023,15}, \
- { 2047,14}, { 4223,15}, { 2303,14}, { 4863,15}, \
- { 2815,14}, { 5887,16}, { 65536,17}, { 131072,18}, \
- { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
- {4194304,23}, {8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 190
-#define SQR_FFT_THRESHOLD 3264
-
-#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 62
-#define MULLO_MUL_N_THRESHOLD 8907
-
-#define DC_DIV_QR_THRESHOLD 52
-#define DC_DIVAPPR_Q_THRESHOLD 166
-#define DC_BDIV_QR_THRESHOLD 46
-#define DC_BDIV_Q_THRESHOLD 104
-
-#define INV_MULMOD_BNM1_THRESHOLD 42
-#define INV_NEWTON_THRESHOLD 166
-#define INV_APPR_THRESHOLD 165
-
-#define BINV_NEWTON_THRESHOLD 228
-#define REDC_1_TO_REDC_2_THRESHOLD 32
-#define REDC_2_TO_REDC_N_THRESHOLD 52
-
-#define MU_DIV_QR_THRESHOLD 1334
-#define MU_DIVAPPR_Q_THRESHOLD 1387
-#define MUPI_DIV_QR_THRESHOLD 69
-#define MU_BDIV_QR_THRESHOLD 1187
-#define MU_BDIV_Q_THRESHOLD 1334
-
-#define POWM_SEC_TABLE 3,22,194,452,1167
-
-#define MATRIX22_STRASSEN_THRESHOLD 14
-#define HGCD_THRESHOLD 119
-#define HGCD_APPR_THRESHOLD 51
-#define HGCD_REDUCE_THRESHOLD 2479
-#define GCD_DC_THRESHOLD 478
-#define GCDEXT_DC_THRESHOLD 368
-#define JACOBI_BASE_METHOD 4
-
-#define GET_STR_DC_THRESHOLD 14
-#define GET_STR_PRECOMPUTE_THRESHOLD 22
-#define SET_STR_DC_THRESHOLD 802
-#define SET_STR_PRECOMPUTE_THRESHOLD 2042
-
-#define FAC_DSC_THRESHOLD 644
-#define FAC_ODD_THRESHOLD 24
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/gmp-mparam.h b/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/gmp-mparam.h
deleted file mode 100644
index 5881306a401..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/gmp-mparam.h
+++ /dev/null
@@ -1,222 +0,0 @@
-/* AMD K10 gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright 1991, 1993, 1994, 2000-2012, 2014 Free Software Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#define GMP_LIMB_BITS 64
-#define GMP_LIMB_BYTES 8
-
-#if 0
-#undef mpn_sublsh_n
-#define mpn_sublsh_n(rp,up,vp,n,c) \
- (((rp) == (up)) ? mpn_submul_1 (rp, vp, n, CNST_LIMB(1) << (c)) \
- : MPN(mpn_sublsh_n)(rp,up,vp,n,c))
-#endif
-
-/* 3200 MHz K10 Thuban */
-/* FFT tuning limit = 100000000 */
-/* Generated by tuneup.c, 2014-03-12, gcc 4.2 */
-
-#define MOD_1_NORM_THRESHOLD 0 /* always */
-#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 3
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 2
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 17
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 28
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 7
-#define USE_PREINV_DIVREM_1 1 /* native */
-#define DIV_QR_1_NORM_THRESHOLD 1
-#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
-#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
-#define BMOD_1_TO_MOD_1_THRESHOLD 15
-
-#define MUL_TOOM22_THRESHOLD 28
-#define MUL_TOOM33_THRESHOLD 81
-#define MUL_TOOM44_THRESHOLD 242
-#define MUL_TOOM6H_THRESHOLD 369
-#define MUL_TOOM8H_THRESHOLD 478
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 97
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 154
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 145
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 163
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 142
-
-#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 34
-#define SQR_TOOM3_THRESHOLD 114
-#define SQR_TOOM4_THRESHOLD 390
-#define SQR_TOOM6_THRESHOLD 446
-#define SQR_TOOM8_THRESHOLD 547
-
-#define MULMID_TOOM42_THRESHOLD 36
-
-#define MULMOD_BNM1_THRESHOLD 17
-#define SQRMOD_BNM1_THRESHOLD 17
-
-#define MUL_FFT_MODF_THRESHOLD 570 /* k = 5 */
-#define MUL_FFT_TABLE3 \
- { { 570, 5}, { 25, 6}, { 13, 5}, { 27, 6}, \
- { 29, 7}, { 15, 6}, { 31, 7}, { 29, 8}, \
- { 15, 7}, { 32, 8}, { 17, 7}, { 35, 8}, \
- { 19, 7}, { 39, 8}, { 21, 7}, { 43, 8}, \
- { 23, 7}, { 47, 8}, { 25, 7}, { 51, 8}, \
- { 29, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
- { 43, 9}, { 23, 8}, { 51, 9}, { 27, 8}, \
- { 55,10}, { 15, 9}, { 31, 8}, { 63, 9}, \
- { 43,10}, { 23, 9}, { 55,10}, { 31, 9}, \
- { 67,10}, { 39, 9}, { 83,10}, { 47, 9}, \
- { 95,10}, { 55,11}, { 31,10}, { 87,11}, \
- { 47,10}, { 111,12}, { 31,11}, { 63,10}, \
- { 135,11}, { 79,10}, { 167, 8}, { 671,11}, \
- { 111,12}, { 63,11}, { 159,12}, { 95,11}, \
- { 207,10}, { 415,13}, { 63,12}, { 127,11}, \
- { 255,10}, { 511,11}, { 271,12}, { 159,11}, \
- { 319,10}, { 639,11}, { 335,10}, { 671,11}, \
- { 367,12}, { 191,11}, { 415,12}, { 223,13}, \
- { 127,12}, { 255,11}, { 543,12}, { 287,11}, \
- { 575,10}, { 1151,11}, { 607,10}, { 1215,12}, \
- { 319,11}, { 671,12}, { 351,11}, { 703,13}, \
- { 191,12}, { 383,11}, { 767,12}, { 415,11}, \
- { 831,12}, { 447,14}, { 127,13}, { 255,12}, \
- { 543,11}, { 1087,12}, { 607,13}, { 319,12}, \
- { 671,11}, { 1343,12}, { 735,13}, { 383,12}, \
- { 799,11}, { 1599,12}, { 831,13}, { 447,12}, \
- { 959,13}, { 511,12}, { 1087,13}, { 575,12}, \
- { 1215,13}, { 639,12}, { 1343,13}, { 703,12}, \
- { 1407,14}, { 383,13}, { 767,12}, { 1599,13}, \
- { 831,12}, { 1663,13}, { 895,12}, { 1791,13}, \
- { 959,15}, { 255,14}, { 511,13}, { 1087,12}, \
- { 2175,13}, { 1215,14}, { 639,13}, { 1471,14}, \
- { 767,13}, { 1727,14}, { 895,13}, { 1855,15}, \
- { 511,14}, { 1023,13}, { 2175,14}, { 1151,13}, \
- { 2431,14}, { 1279,13}, { 2559,14}, { 1407,15}, \
- { 767,14}, { 1535,13}, { 3071,14}, { 1791,16}, \
- { 511,15}, { 1023,14}, { 2431,15}, { 1279,14}, \
- { 2815,15}, { 1535,14}, { 3199,15}, { 1791,14}, \
- { 3583,16}, { 1023,15}, { 2047,14}, { 4223,15}, \
- { 2303,14}, { 4863,15}, { 2559,14}, { 5247,15}, \
- { 2815,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
- { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
- {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 169
-#define MUL_FFT_THRESHOLD 7808
-
-#define SQR_FFT_MODF_THRESHOLD 448 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 448, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
- { 12, 5}, { 25, 6}, { 29, 7}, { 15, 6}, \
- { 31, 7}, { 29, 8}, { 15, 7}, { 32, 8}, \
- { 17, 7}, { 35, 8}, { 19, 7}, { 39, 8}, \
- { 21, 7}, { 43, 8}, { 25, 7}, { 51, 8}, \
- { 29, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
- { 43, 9}, { 23, 8}, { 51, 9}, { 27, 8}, \
- { 55,10}, { 15, 9}, { 31, 8}, { 65, 9}, \
- { 43,10}, { 23, 9}, { 55,11}, { 15,10}, \
- { 31, 9}, { 67,10}, { 39, 9}, { 83,10}, \
- { 47, 9}, { 95,10}, { 55,11}, { 31,10}, \
- { 79,11}, { 47,10}, { 103,12}, { 31,11}, \
- { 63,10}, { 135,11}, { 79,10}, { 159,11}, \
- { 95,10}, { 191,11}, { 111,12}, { 63,11}, \
- { 127,10}, { 255,11}, { 143, 9}, { 575,10}, \
- { 303, 9}, { 607,12}, { 95,11}, { 191, 9}, \
- { 767,10}, { 399,11}, { 207,13}, { 63,12}, \
- { 127,11}, { 255,10}, { 543, 9}, { 1087,10}, \
- { 575,12}, { 159,11}, { 319,10}, { 639,11}, \
- { 335,10}, { 671,11}, { 351,10}, { 703, 9}, \
- { 1407,12}, { 191,11}, { 415,10}, { 831,12}, \
- { 223,11}, { 447,13}, { 127,12}, { 255,11}, \
- { 543,10}, { 1087,12}, { 287,11}, { 607,12}, \
- { 319,11}, { 671,12}, { 351,11}, { 703,13}, \
- { 191,12}, { 383,11}, { 767,10}, { 1535,12}, \
- { 415,11}, { 863,12}, { 447,14}, { 127,13}, \
- { 255,12}, { 511,11}, { 1023,12}, { 543,11}, \
- { 1087,12}, { 575,11}, { 1151,12}, { 607,13}, \
- { 319,12}, { 639,11}, { 1279,12}, { 671,11}, \
- { 1343,12}, { 703,11}, { 1407,12}, { 735,13}, \
- { 383,12}, { 799,11}, { 1599,12}, { 863,13}, \
- { 447,12}, { 927,14}, { 255,13}, { 511,12}, \
- { 1087,13}, { 575,12}, { 1215,13}, { 639,12}, \
- { 1343,13}, { 703,12}, { 1407,14}, { 383,13}, \
- { 767,12}, { 1535,13}, { 831,12}, { 1727,13}, \
- { 895,12}, { 1791,13}, { 959,15}, { 255,14}, \
- { 511,13}, { 1087,12}, { 2175,13}, { 1215,14}, \
- { 639,13}, { 1471,14}, { 767,13}, { 1663,14}, \
- { 895,13}, { 1791,15}, { 511,14}, { 1023,13}, \
- { 2175,14}, { 1151,13}, { 2303,14}, { 1407,15}, \
- { 767,14}, { 1791,16}, { 511,15}, { 1023,14}, \
- { 2303,15}, { 1279,14}, { 2687,15}, { 1535,14}, \
- { 3199,15}, { 1791,16}, { 1023,15}, { 2047,14}, \
- { 4223,15}, { 2303,14}, { 4863,15}, { 2559,14}, \
- { 5247,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
- { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
- {8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 185
-#define SQR_FFT_THRESHOLD 5568
-
-#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 61
-#define MULLO_MUL_N_THRESHOLD 15604
-
-#define DC_DIV_QR_THRESHOLD 56
-#define DC_DIVAPPR_Q_THRESHOLD 218
-#define DC_BDIV_QR_THRESHOLD 52
-#define DC_BDIV_Q_THRESHOLD 42
-
-#define INV_MULMOD_BNM1_THRESHOLD 62
-#define INV_NEWTON_THRESHOLD 226
-#define INV_APPR_THRESHOLD 220
-
-#define BINV_NEWTON_THRESHOLD 327
-#define REDC_1_TO_REDC_2_THRESHOLD 51
-#define REDC_2_TO_REDC_N_THRESHOLD 66
-
-#define MU_DIV_QR_THRESHOLD 1752
-#define MU_DIVAPPR_Q_THRESHOLD 1718
-#define MUPI_DIV_QR_THRESHOLD 102
-#define MU_BDIV_QR_THRESHOLD 1528
-#define MU_BDIV_Q_THRESHOLD 1718
-
-#define POWM_SEC_TABLE 1,22,110,624,1985
-
-#define MATRIX22_STRASSEN_THRESHOLD 17
-#define HGCD_THRESHOLD 147
-#define HGCD_APPR_THRESHOLD 181
-#define HGCD_REDUCE_THRESHOLD 3524
-#define GCD_DC_THRESHOLD 622
-#define GCDEXT_DC_THRESHOLD 487
-#define JACOBI_BASE_METHOD 4
-
-#define GET_STR_DC_THRESHOLD 14
-#define GET_STR_PRECOMPUTE_THRESHOLD 29
-#define SET_STR_DC_THRESHOLD 268
-#define SET_STR_PRECOMPUTE_THRESHOLD 1718
-
-#define FAC_DSC_THRESHOLD 1075
-#define FAC_ODD_THRESHOLD 23
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/swap.c b/Build/source/libs/gmp/gmp-6.0.0/mpz/swap.c
deleted file mode 100644
index 0fc11fb9e1a..00000000000
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/swap.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* mpz_swap (dest_integer, src_integer) -- Swap U and V.
-
-Copyright 1997, 1998, 2001, 2012 Free Software Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
-or
-
- * the GNU General Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at your option) any
- later version.
-
-or both in parallel, as here.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library. If not,
-see https://www.gnu.org/licenses/. */
-
-#include "gmp.h"
-#include "gmp-impl.h"
-
-void
-mpz_swap (mpz_ptr u, mpz_ptr v) __GMP_NOTHROW
-{
- mp_ptr up, vp;
- mp_size_t usize, vsize;
- mp_size_t ualloc, valloc;
-
- ualloc = ALLOC (u);
- valloc = ALLOC (v);
- ALLOC (v) = ualloc;
- ALLOC (u) = valloc;
-
- usize = SIZ (u);
- vsize = SIZ (v);
- SIZ (v) = usize;
- SIZ (u) = vsize;
-
- up = PTR (u);
- vp = PTR (v);
- PTR (v) = up;
- PTR (u) = vp;
-}
diff --git a/Build/source/libs/gmp/gmp-6.0.0-PATCHES/ChangeLog b/Build/source/libs/gmp/gmp-src-PATCHES/ChangeLog
index c5ccc01f0c4..12e4e93b696 100644
--- a/Build/source/libs/gmp/gmp-6.0.0-PATCHES/ChangeLog
+++ b/Build/source/libs/gmp/gmp-src-PATCHES/ChangeLog
@@ -1,4 +1,7 @@
+2015-12-28 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * patch-01-const: Removed, since it is applied in 6.1.0.
+
2014-05-26 Peter Breitenlohner <peb@mppmu.mpg.de>
patch-01-const (new): Avoid incompatible pointer type warning.
-
diff --git a/Build/source/libs/gmp/gmp-6.0.0-PATCHES/TL-Changes b/Build/source/libs/gmp/gmp-src-PATCHES/TL-Changes
index 1c101730169..5b403d1df85 100644
--- a/Build/source/libs/gmp/gmp-6.0.0-PATCHES/TL-Changes
+++ b/Build/source/libs/gmp/gmp-src-PATCHES/TL-Changes
@@ -1,4 +1,4 @@
-Changes applied to the gmp-6.0.0/ tree as obtained from:
+Changes applied to the gmp-6.1.0/ tree as obtained from:
http://ftp.gnu.org/gnu/gmp/
Removed:
@@ -10,6 +10,7 @@ Removed:
INSTALL.autoconf
Makefile.in
aclocal.m4
+ compile
configfsf.guess
configfsf.sub
configure
@@ -27,6 +28,7 @@ Removed:
printf/Makefile.in
rand/Makefile.in
scanf/Makefile.in
+ test-driver
tests/
tune/
ylwrap
@@ -34,4 +36,3 @@ Removed:
Renamed:
config.guess => configgmp.guess
config.sub => configgmp.sub
-
diff --git a/Build/source/libs/gmp/gmp-6.0.0/AUTHORS b/Build/source/libs/gmp/gmp-src/AUTHORS
index fbe298d61bc..c8ddb90ebcf 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/AUTHORS
+++ b/Build/source/libs/gmp/gmp-src/AUTHORS
@@ -62,7 +62,7 @@ Marco Bodrato mpn/generic/toom44_mul.c, toom4_sqr.c, toom53_mul.c,
toom8h_mul.c, toom8_sqr.c, toom_interpolate_16pts.c,
mulmod_bnm1.c, sqrmod_bnm1.c, nussbaumer_mul.c,
toom_eval_pm2.c, toom_eval_pm2rexp.c,
- mullo_n.c, invert.c, invertappr.c;
+ mullo_n.c, sqrlo.c, invert.c, invertappr.c;
mpz/fac_ui.c, 2fac_ui.c, mfac_uiui.c, oddfac_1.c,
primorial_ui.c, prodlimbs.c, goetgheluck_bin_uiui.c.
diff --git a/Build/source/libs/gmp/gmp-6.0.0/ChangeLog b/Build/source/libs/gmp/gmp-src/ChangeLog
index 540c025c51d..879b3106a34 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/ChangeLog
+++ b/Build/source/libs/gmp/gmp-src/ChangeLog
@@ -1,3 +1,1031 @@
+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.
@@ -5737,9 +6765,6 @@
* mpn/powerpc64/mode64/aorsmul_1.asm: Add MULFUNC_PROLOGUE.
* mpn/m68k/mc68020/aorsmul_1.asm: Likewise.
- * mpn/powerpc64/mode64/aorsmul_1.asm: Add missing 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.
diff --git a/Build/source/libs/gmp/gmp-6.0.0/INSTALL b/Build/source/libs/gmp/gmp-src/INSTALL
index 75199a1aba7..75199a1aba7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/INSTALL
+++ b/Build/source/libs/gmp/gmp-src/INSTALL
diff --git a/Build/source/libs/gmp/gmp-6.0.0/Makefile.am b/Build/source/libs/gmp/gmp-src/Makefile.am
index 8567c0e3f6c..453c6097a8b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/Makefile.am
+++ b/Build/source/libs/gmp/gmp-src/Makefile.am
@@ -1,7 +1,7 @@
## Process this file with automake to generate Makefile.in
-# Copyright 1991, 1993, 1994, 1996, 1997, 1999-2004, 2006-2009, 2011-2014 Free
+# Copyright 1991, 1993, 1994, 1996, 1997, 1999-2004, 2006-2009, 2011-2015 Free
# Software Foundation, Inc.
#
# This file is part of the GNU MP Library.
@@ -86,6 +86,7 @@
# 5.1.1 11:1:1 7:1:3 -
# 5.1.2 11:2:1 7:2:3 -
# 6.0.0 12:0:2 8:0:4 -
+# 6.1.0 13:0:3 9:0:5 -
#
# Starting at 3:0:0 is a slight abuse of the versioning system, but it
# ensures we're past soname libgmp.so.2, which was used on Debian GNU/Linux
@@ -98,13 +99,13 @@
# it's still good to get the shared library filename (like
# libgmpxx.so.3.0.4) incrementing, to make it clear which GMP it's from.
-LIBGMP_LT_CURRENT = 12
+LIBGMP_LT_CURRENT = 13
LIBGMP_LT_REVISION = 0
-LIBGMP_LT_AGE = 2
+LIBGMP_LT_AGE = 3
-LIBGMPXX_LT_CURRENT = 8
+LIBGMPXX_LT_CURRENT = 9
LIBGMPXX_LT_REVISION = 0
-LIBGMPXX_LT_AGE = 4
+LIBGMPXX_LT_AGE = 5
SUBDIRS = tests mpn mpz mpq mpf printf scanf rand cxx demos tune doc
@@ -137,7 +138,7 @@ BUILT_SOURCES = gmp.h
DISTCLEANFILES = $(BUILT_SOURCES) config.m4 @gmp_srclinks@
# Tell gmp.h it's building gmp, not an application, used by windows DLL stuff.
-INCLUDES=-D__GMP_WITHIN_GMP
+AM_CPPFLAGS=-D__GMP_WITHIN_GMP
MPF_OBJECTS = mpf/init$U.lo mpf/init2$U.lo mpf/inits$U.lo mpf/set$U.lo \
@@ -147,7 +148,7 @@ MPF_OBJECTS = mpf/init$U.lo mpf/init2$U.lo mpf/inits$U.lo mpf/set$U.lo \
mpf/get_str$U.lo mpf/dump$U.lo mpf/size$U.lo mpf/eq$U.lo mpf/reldiff$U.lo \
mpf/sqrt$U.lo mpf/random2$U.lo mpf/inp_str$U.lo mpf/out_str$U.lo \
mpf/add$U.lo mpf/add_ui$U.lo mpf/sub$U.lo mpf/sub_ui$U.lo mpf/ui_sub$U.lo \
- mpf/mul$U.lo mpf/mul_ui$U.lo mpf/div$U.lo mpf/div_ui$U.lo \
+ mpf/mul$U.lo mpf/mul_ui$U.lo mpf/div$U.lo mpf/div_ui$U.lo mpf/cmp_z$U.lo \
mpf/cmp$U.lo mpf/cmp_d$U.lo mpf/cmp_ui$U.lo mpf/cmp_si$U.lo \
mpf/mul_2exp$U.lo mpf/div_2exp$U.lo mpf/abs$U.lo mpf/neg$U.lo \
mpf/set_q$U.lo mpf/get_d$U.lo mpf/get_d_2exp$U.lo mpf/set_dfl_prec$U.lo \
diff --git a/Build/source/libs/gmp/gmp-6.0.0/NEWS b/Build/source/libs/gmp/gmp-src/NEWS
index 5f77bce1e14..111acb70fb2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/NEWS
+++ b/Build/source/libs/gmp/gmp-src/NEWS
@@ -1,9 +1,74 @@
-Copyright 1996, 1999-2014 Free Software Foundation, Inc.
+Copyright 1996, 1999-2015 Free Software Foundation, Inc.
Verbatim copying and distribution of this entire article is permitted in any
medium, provided this notice is preserved.
+Changes between GMP version 6.0.* and 6.1.0
+
+ BUGS FIXED
+ * The public function mpn_com is now correctly declared in gmp.h.
+
+ * Healed possible failures of mpn_sec_sqr for non-cryptographic sizes for
+ some obsolete CPUs.
+
+ * The option --disable-assembly now disables all inlined asm.
+
+ * Fixed bug affecting mini-gmp's bitwise functions mpz_setbit, mpz_clrbit,
+ and mpz_combit.
+
+ * Various problems related to precision for mpf have been fixed.
+
+ * Fixed ABI incompatible stack alignment in calls from assembly code.
+
+ * Fixed PIC bug in popcount affecting Intel processors using the 32-bit ABI.
+
+ SPEEDUPS
+ * Speedup for Intel Broadwell and Skylake though assembly code making use of
+ new ADX instructions.
+
+ * Square root is now faster when the remainder is not needed. Also the speed
+ to compute the k-th root improved, for small sizes.
+
+ * Improved arm64 support.
+
+ FEATURES
+ * New C++ functions gcd and lcm for mpz_class.
+
+ * New public mpn functions mpn_divexact_1, mpn_zero_p, and mpn_cnd_swap.
+
+ * New public mpq_cmp_z function, to efficiently compare rationals with
+ integers.
+
+ * Support for Darwin in all x86 code, thereby enabling fat builds on Darwin.
+
+ * Support for more 32-bit arm processors.
+
+ * Support for compilation with clang/llvm on more platforms. Caution: GMP
+ triggers mis-compilation bugs in clang for many platforms, such as arm, x86
+ (32-bit and 64-bit), powerpc, mips.
+
+ * Support for AVX-less modern x86 CPUs. (Such support might be missing either
+ because the CPU vendor chose to disable AVX, or because the running kernel
+ lacks AVX context switch support.)
+
+ * Stack usage trimmed; we believe 512 KiB is now sufficient for any GMP
+ call, irrespective of operand size.
+
+ * Support for NetBSD under Xen; we switch off AVX unconditionally under
+ NetBSD since a bug in NetBSD makes AVX fail under Xen.
+
+ MISC
+ * We now use manufacturers' code names for x86 CPUs, e.g., "haswell" instead
+ of names derived from the commercial brands.
+
+ * Small improvements and better coverage for the test suite.
+
+ * The various FreeBSD problems listed for 6.0.0 affect this release too.
+
+ * Tuned values for FFT multiplications are provided for larger number on
+ many platforms.
+
Changes between GMP version 5.1.* and 6.0.0
BUGS FIXED
diff --git a/Build/source/libs/gmp/gmp-6.0.0/README b/Build/source/libs/gmp/gmp-src/README
index 013899dc09c..73ce3648c61 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/README
+++ b/Build/source/libs/gmp/gmp-src/README
@@ -56,7 +56,7 @@ which components of GNU MP).
OVERVIEW OF GNU MP
-There are five classes of functions in GNU MP.
+There are four classes of functions in GNU MP.
1. Signed integer arithmetic functions (mpz). These functions are intended
to be easy to use, with their regular interface. The associated type is
@@ -82,11 +82,6 @@ There are five classes of functions in GNU MP.
Almost all calculations, in the entire package, are made by calling these
low-level functions.
- 5. Berkeley MP compatible functions.
-
- To use these functions, include the file "mp.h". You can test if you are
- using the GNU version by testing if the symbol __GNU_MP__ is defined.
-
For more information on how to use GNU MP, please refer to the documentation.
It is composed from the file doc/gmp.texi, and can be displayed on the screen
or printed. How to do that, as well how to build the library, is described in
diff --git a/Build/source/libs/gmp/gmp-6.0.0/acinclude.m4 b/Build/source/libs/gmp/gmp-src/acinclude.m4
index 227712a5db0..f6e8940ac00 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/acinclude.m4
+++ b/Build/source/libs/gmp/gmp-src/acinclude.m4
@@ -1,7 +1,7 @@
dnl GMP specific autoconf macros
-dnl Copyright 2000-2006, 2009, 2011, 2013, 2014 Free Software Foundation, Inc.
+dnl Copyright 2000-2006, 2009, 2011, 2013-2015 Free Software Foundation, Inc.
dnl
dnl This file is part of the GNU MP Library.
dnl
@@ -63,7 +63,7 @@ define(X86_PATTERN,
[[i?86*-*-* | k[5-8]*-*-* | pentium*-*-* | athlon-*-* | viac3*-*-* | geode*-*-* | atom-*-*]])
define(X86_64_PATTERN,
-[[athlon64-*-* | k8-*-* | k10-*-* | bobcat-*-* | jaguar-*-* | bulldozer-*-* | piledriver-*-* | steamroller-*-* | excavator-*-* | pentium4-*-* | atom-*-* | core2-*-* | corei*-*-* | x86_64-*-* | nano-*-*]])
+[[athlon64-*-* | k8-*-* | k10-*-* | bobcat-*-* | jaguar*-*-* | bulldozer*-*-* | piledriver*-*-* | steamroller*-*-* | excavator*-*-* | pentium4-*-* | atom-*-* | silvermont-*-* | goldmont-*-* | core2-*-* | corei*-*-* | x86_64-*-* | nano-*-* | nehalem*-*-* | westmere*-*-* | sandybridge*-*-* | ivybridge*-*-* | haswell*-*-* | broadwell*-*-* | skylake*-*-* | cabylake*-*-*]])
dnl GMP_FAT_SUFFIX(DSTVAR, DIRECTORY)
dnl ---------------------------------
@@ -609,11 +609,12 @@ GMP_PROG_CC_WORKS_PART([$1], [long long reliability test 1],
#if defined (__GNUC__) && ! defined (__cplusplus)
typedef unsigned long long t1;typedef t1*t2;
+void g(){}
+void h(){}
static __inline__ t1 e(t2 rp,t2 up,int n,t1 v0)
{t1 c,x,r;int i;if(v0){c=1;for(i=1;i<n;i++){x=up[i];r=x+1;rp[i]=r;}}return c;}
-f(){static const struct{t1 n;t1 src[9];t1 want[9];}d[]={{1,{0},{1}},};t1 got[9];int i;
+void f(){static const struct{t1 n;t1 src[9];t1 want[9];}d[]={{1,{0},{1}},};t1 got[9];int i;
for(i=0;i<1;i++){if(e(got,got,9,d[i].n)==0)h();g(i,d[i].src,d[i].n,got,d[i].want,9);if(d[i].n)h();}}
-h(){}g(){}
#else
int dummy;
#endif
@@ -625,8 +626,23 @@ GMP_PROG_CC_WORKS_PART([$1], [long long reliability test 2],
1666 to get an ICE with -O1 -mpowerpc64. */
#if defined (__GNUC__) && ! defined (__cplusplus)
-f(int u){int i;long long x;x=u?~0:0;if(x)for(i=0;i<9;i++);x&=g();if(x)g();}
-g(){}
+int g();
+void f(int u){int i;long long x;x=u?~0:0;if(x)for(i=0;i<9;i++);x&=g();if(x)g();}
+int g(){return 0;}
+#else
+int dummy;
+#endif
+])
+
+GMP_PROG_CC_WORKS_PART([$1], [freebsd hacked gcc],
+[/* Provokes an ICE on i386-freebsd with the FreeBSD-hacked gcc, under
+ -O2 -march=amdfam10. We call helper functions here "open" and "close" in
+ order for linking to succeed. */
+
+#if defined (__GNUC__) && ! defined (__cplusplus)
+int open(int*,int*,int);void*close(int);void g(int*rp,int*up,int un){
+__builtin_expect(un<=0x7f00,1)?__builtin_alloca(un):close(un);if(__builtin_clzl
+(up[un])){open(rp,up,un);while(1){if(rp[un-1]!=0)break;un--;}}}
#else
int dummy;
#endif
@@ -1647,8 +1663,11 @@ rm -f conftest*
dnl Checks whether the stack can be marked nonexecutable by passing an option
-dnl to the C-compiler when acting on .s files. Appends that option to ASFLAGS.
+dnl to the C-compiler when acting on .s files. Appends that option to ASMFLAGS.
dnl This macro is adapted from one found in GLIBC-2.3.5.
+dnl FIXME: This test looks broken. It tests that a file with .note.GNU-stack...
+dnl can be compiled/assembled with -Wa,--noexecstack. It does not determine
+dnl if that command-line option has any effect on general asm code.
AC_DEFUN([CL_AS_NOEXECSTACK],[
dnl AC_REQUIRE([AC_PROG_CC]) GMP uses something else
AC_CACHE_CHECK([whether assembler supports --noexecstack option],
@@ -3233,6 +3252,24 @@ if test $gmp_cv_c_attribute_noreturn = yes; then
fi
])
+dnl GMP_C_HIDDEN_ALIAS
+dnl ------------------------
+
+AC_DEFUN([GMP_C_HIDDEN_ALIAS],
+[AC_CACHE_CHECK([whether gcc hidden aliases work],
+ gmp_cv_c_hidden_alias,
+[AC_TRY_COMPILE(
+[void hid() __attribute__ ((visibility("hidden")));
+void hid() {}
+void pub() __attribute__ ((alias("hid")));],
+, gmp_cv_c_hidden_alias=yes, gmp_cv_c_hidden_alias=no)
+])
+if test $gmp_cv_c_hidden_alias = yes; then
+ AC_DEFINE(HAVE_HIDDEN_ALIAS, 1,
+ [Define to 1 if the compiler accepts gcc style __attribute__ ((visibility))
+and __attribute__ ((alias))])
+fi
+])
dnl GMP_C_DOUBLE_FORMAT
dnl -------------------
@@ -3815,7 +3852,7 @@ cat >conftest.c <<EOF
int
main ()
{
- exit(0);
+ return 0;
}
EOF
gmp_compile="$1 conftest.c"
@@ -3889,7 +3926,7 @@ AC_CACHE_CHECK([for build system executable suffix],
int
main ()
{
- exit (0);
+ return 0;
}
EOF
for i in .exe ,ff8 ""; do
@@ -3925,7 +3962,7 @@ AC_CACHE_CHECK([whether build system compiler is ANSI],
int
main (int argc, char **argv)
{
- exit(0);
+ return 0;
}
EOF
gmp_compile="$CC_FOR_BUILD conftest.c"
@@ -3956,10 +3993,11 @@ AC_DEFUN([GMP_CHECK_LIBM_FOR_BUILD],
AC_CACHE_CHECK([for build system compiler math library],
gmp_cv_check_libm_for_build,
[cat >conftest.c <<EOF
+#include <math.h>
int
main ()
{
- exit(0);
+ return 0;
}
double d;
double
diff --git a/Build/source/libs/gmp/gmp-6.0.0/assert.c b/Build/source/libs/gmp/gmp-src/assert.c
index 2e85e6bf639..2e85e6bf639 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/assert.c
+++ b/Build/source/libs/gmp/gmp-src/assert.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/bootstrap.c b/Build/source/libs/gmp/gmp-src/bootstrap.c
index bff960ed83a..bff960ed83a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/bootstrap.c
+++ b/Build/source/libs/gmp/gmp-src/bootstrap.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/compat.c b/Build/source/libs/gmp/gmp-src/compat.c
index b896f8489f0..b896f8489f0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/compat.c
+++ b/Build/source/libs/gmp/gmp-src/compat.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/config.in b/Build/source/libs/gmp/gmp-src/config.in
index e94acd7c03a..34d65a2cdaa 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/config.in
+++ b/Build/source/libs/gmp/gmp-src/config.in
@@ -2,7 +2,7 @@
/*
-Copyright 1996-2014 Free Software Foundation, Inc.
+Copyright 1996-2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -138,6 +138,10 @@ see https://www.gnu.org/licenses/.
/* Define to 1 if you have the `gettimeofday' function. */
#undef HAVE_GETTIMEOFDAY
+/* Define to 1 if the compiler accepts gcc style __attribute__ ((visibility))
+ and __attribute__ ((alias)) */
+#undef HAVE_HIDDEN_ALIAS
+
/* Define one of these to 1 for the host CPU family.
If your CPU is not in any of these families, leave all undefined.
For an AMD64 chip, define "x86" in ABI=32, but not in ABI=64. */
@@ -302,6 +306,7 @@ see https://www.gnu.org/licenses/.
#undef HAVE_NATIVE_mpn_mul_5
#undef HAVE_NATIVE_mpn_mul_6
#undef HAVE_NATIVE_mpn_mul_basecase
+#undef HAVE_NATIVE_mpn_mullo_basecase
#undef HAVE_NATIVE_mpn_nand_n
#undef HAVE_NATIVE_mpn_nior_n
#undef HAVE_NATIVE_mpn_popcount
@@ -413,9 +418,6 @@ see https://www.gnu.org/licenses/.
/* Define to 1 if you have the `strerror' function. */
#undef HAVE_STRERROR
-/* Define to 1 if cpp supports the ANSI # stringizing operator. */
-#undef HAVE_STRINGIZE
-
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
@@ -506,8 +508,7 @@ see https://www.gnu.org/licenses/.
/* Assembler local label prefix */
#undef LSYM_PREFIX
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
#undef LT_OBJDIR
/* Name of package */
diff --git a/Build/source/libs/gmp/gmp-6.0.0/configgmp.guess b/Build/source/libs/gmp/gmp-src/configgmp.guess
index 02b61f45aaf..b9d0c5894d5 100755
--- a/Build/source/libs/gmp/gmp-6.0.0/configgmp.guess
+++ b/Build/source/libs/gmp/gmp-src/configgmp.guess
@@ -3,7 +3,7 @@
# GMP config.guess wrapper.
-# Copyright 2000-2006, 2008, 2011-2014 Free Software Foundation, Inc.
+# Copyright 2000-2006, 2008, 2011-2015 Free Software Foundation, Inc.
#
# This file is part of the GNU MP Library.
#
@@ -173,7 +173,7 @@ EOF
;;
arm*-*-*)
- cpu_code=`sed -n 's/^CPU part.*\(0x.*\)$/\1/p' /proc/cpuinfo 2>/dev/null`
+ cpu_code=`sed -n 's/^CPU part.*\(0x.*\)$/\1/p' /proc/cpuinfo 2>/dev/null | head -n 1 2>/dev/null`
case "$cpu_code" in
0xa10 | 0xa11 | 0xb11) # v4 strongarm/sa1100
exact_cpu="armsa1";;
@@ -199,8 +199,9 @@ arm*-*-*)
0xc14) exact_cpu="armcortexr4";; # v7r
0xc15) exact_cpu="armcortexr5";; # v7r
0xc23) exact_cpu="armcortexm3";; # v7m
+ *) exact_cpu=$guess_cpu;;
esac
- exact_cpu="${exact_cpu}`sed -n 's;^Features.*\(neon\).*;\1;p' /proc/cpuinfo 2>/dev/null`"
+ exact_cpu="${exact_cpu}`sed -n 's;^Features.*\(neon\).*;\1;p' /proc/cpuinfo 2>/dev/null | head -n 1 2>/dev/null`"
;;
ia64*-*-*)
@@ -456,8 +457,8 @@ EOF
970??) exact_cpu="powerpc970" ;;
603 | 603e | 604 | 604e | 750 | 821 | 860)
exact_cpu="powerpc$x" ;;
- POWER[4-9])
- exact_cpu=`echo $x | sed "s;POWER;power;"` ;;
+ POWER[4-9]*)
+ exact_cpu=`echo $x | sed -e "s;POWER;power;" -e "s;[a-zA-Z]*$;;"` ;;
esac
fi
@@ -509,6 +510,9 @@ main ()
#ifdef POWER_7
case POWER_7: puts ("power7"); break;
#endif
+#ifdef POWER_8
+ case POWER_8: puts ("power8"); break;
+#endif
default:
if (_system_configuration.architecture == POWER_RS)
puts ("power");
@@ -592,6 +596,8 @@ sparc-*-* | sparc64-*-*)
elif grep 'cpu.*MB86904' /proc/cpuinfo >/dev/null; then
# actually MicroSPARC-II
exact_cpu=microsparc
+ elif grep 'cpu.*UltraSparc T5' /proc/cpuinfo >/dev/null; then
+ exact_cpu="ultrasparct5"
elif grep 'cpu.*UltraSparc T4' /proc/cpuinfo >/dev/null; then
exact_cpu="ultrasparct4"
elif grep 'cpu.*UltraSparc T3' /proc/cpuinfo >/dev/null; then
@@ -655,7 +661,11 @@ sparc-*-* | sparc64-*-*)
for prtconfopt in "" "-vp"; do
if test -z "$exact_cpu"; then
if $SHELL -c "/usr/sbin/prtconf $prtconfopt" 2>/dev/null >$dummy; then
- if grep 'SUNW,UltraSPARC-T3' $dummy >/dev/null; then
+ if grep 'SUNW,UltraSPARC-T5' $dummy >/dev/null; then
+ exact_cpu=ultrasparct5
+ elif grep 'SUNW,UltraSPARC-T4' $dummy >/dev/null; then
+ exact_cpu=ultrasparct4
+ elif grep 'SUNW,UltraSPARC-T3' $dummy >/dev/null; then
exact_cpu=ultrasparct3
elif grep 'SUNW,UltraSPARC-T2' $dummy >/dev/null; then
exact_cpu=ultrasparct2
@@ -693,7 +703,11 @@ sparc-*-* | sparc64-*-*)
#
if test -z "$exact_cpu"; then
if $SHELL -c "/sbin/sysctl hw.model" 2>/dev/null >$dummy; then
- if grep -i 'UltraSparc-T3' $dummy >/dev/null; then
+ if grep -i 'UltraSparc-T5' $dummy >/dev/null; then
+ exact_cpu=ultrasparct5
+ elif grep -i 'UltraSparc-T4' $dummy >/dev/null; then
+ exact_cpu=ultrasparct4
+ elif grep -i 'UltraSparc-T3' $dummy >/dev/null; then
exact_cpu=ultrasparct3
elif grep -i 'UltraSparc-T2' $dummy >/dev/null; then
exact_cpu=ultrasparct2
@@ -752,21 +766,23 @@ int
main ()
{
char vendor_string[13];
- char dummy_string[12];
+ char feature_string[12];
long fms;
- int family, model, stepping;
- const char *modelstr;
- int cpu_64bit = 0;
- int cpuid_64bit;
+ int family, model;
+ const char *modelstr, *suffix;
+ int cpu_64bit = 0, cpu_avx = 0;
+ int cpuid_64bit, cpuid_avx, cpuid_osxsave;
CPUID (vendor_string, 0);
vendor_string[12] = 0;
- fms = CPUID (dummy_string, 1);
+ fms = CPUID (feature_string, 1);
family = ((fms >> 8) & 0xf) + ((fms >> 20) & 0xff);
model = ((fms >> 4) & 0xf) + ((fms >> 12) & 0xf0);
- stepping = fms & 0xf;
+
+ cpuid_avx = (feature_string[11] >> 4) & 1;
+ cpuid_osxsave = (feature_string[11] >> 3) & 1;
modelstr = "$guess_cpu";
@@ -782,46 +798,58 @@ main ()
else if (model >= 4) modelstr = "pentiummmx";
break;
case 6:
- if (model <= 1) modelstr = "pentiumpro";
- else if (model <= 6) modelstr = "pentium2";
- else if (model <= 8) modelstr = "pentium3";
- else if (model <= 9) modelstr = "pentiumm";
- else if (model <= 0x0c) modelstr = "pentium3";
- else if (model <= 0x0e) modelstr = "pentiumm";
- else if (model <= 0x19) cpu_64bit = 1, modelstr = "core2";
- else if (model == 0x1a) cpu_64bit = 1, modelstr = "coreinhm"; /* NHM Gainestown */
- else if (model == 0x1c) cpu_64bit = 1, modelstr = "atom"; /* Silverthorne */
- else if (model == 0x1d) cpu_64bit = 1, modelstr = "core2"; /* PNR Dunnington */
- else if (model == 0x1e) cpu_64bit = 1, modelstr = "coreinhm"; /* NHM Lynnfield/Jasper */
- else if (model == 0x25) cpu_64bit = 1, modelstr = "coreiwsm"; /* WSM Clarkdale/Arrandale */
- else if (model == 0x26) cpu_64bit = 1, modelstr = "atom"; /* Lincroft */
- else if (model == 0x27) cpu_64bit = 1, modelstr = "atom"; /* Saltwell */
- else if (model == 0x2a) cpu_64bit = 1, modelstr = "coreisbr"; /* SB */
- else if (model == 0x2c) cpu_64bit = 1, modelstr = "coreiwsm"; /* WSM Gulftown */
- else if (model == 0x2d) cpu_64bit = 1, modelstr = "coreisbr"; /* SBC-EP */
- else if (model == 0x2e) cpu_64bit = 1, modelstr = "coreinhm"; /* NHM Beckton */
- else if (model == 0x2f) cpu_64bit = 1, modelstr = "coreiwsm"; /* WSM Eagleton */
- else if (model == 0x36) cpu_64bit = 1, modelstr = "atom"; /* Cedarview/Saltwell */
- else if (model == 0x37) cpu_64bit = 1, modelstr = "coreinhm"; /* Atom Silvermont */
- else if (model == 0x3a) cpu_64bit = 1, modelstr = "coreisbr"; /* IBR */
- else if (model == 0x3c) cpu_64bit = 1, modelstr = "coreihwl"; /* Haswell client */
- else if (model == 0x3d) cpu_64bit = 1, modelstr = "coreibwl"; /* Broadwell */
- else if (model == 0x3e) cpu_64bit = 1, modelstr = "coreisbr"; /* Ivytown */
- else if (model == 0x3f) cpu_64bit = 1, modelstr = "coreihwl"; /* Haswell server */
- else if (model == 0x45) cpu_64bit = 1, modelstr = "coreihwl"; /* Haswell ULT */
- else if (model == 0x46) cpu_64bit = 1, modelstr = "coreihwl"; /* Crystal Well */
- else if (model == 0x4d) cpu_64bit = 1, modelstr = "coreinhm"; /* Silvermont/Avoton */
- else if (model == 0x4f) cpu_64bit = 1, modelstr = "coreibwl"; /* Broadwell server */
- else if (model == 0x56) cpu_64bit = 1, modelstr = "coreibwl"; /* Broadwell microserver */
- else cpu_64bit = 1, modelstr = "corei"; /* default */
-
- if (strcmp (modelstr, "coreihwl") == 0)
+ if (model <= 1) modelstr = "pentiumpro";
+ else if (model <= 6) modelstr = "pentium2";
+ else if (model <= 8) modelstr = "pentium3";
+ else if (model <= 9) modelstr = "pentiumm";
+ else if (model <= 0x0c) modelstr = "pentium3";
+ else if (model <= 0x0e) modelstr = "pentiumm";
+ else if (model <= 0x19) cpu_64bit = 1, modelstr = "core2";
+ else if (model == 0x1a) cpu_64bit = 1, modelstr = "nehalem"; /* NHM Gainestown */
+ else if (model == 0x1c) cpu_64bit = 1, modelstr = "atom"; /* Silverthorne */
+ else if (model == 0x1d) cpu_64bit = 1, modelstr = "core2"; /* PNR Dunnington */
+ else if (model == 0x1e) cpu_64bit = 1, modelstr = "nehalem"; /* NHM Lynnfield/Jasper */
+ else if (model == 0x25) cpu_64bit = 1, modelstr = "westmere"; /* WSM Clarkdale/Arrandale */
+ else if (model == 0x26) cpu_64bit = 1, modelstr = "atom"; /* Lincroft */
+ else if (model == 0x27) cpu_64bit = 1, modelstr = "atom"; /* Saltwell */
+ else if (model == 0x2a) cpu_64bit = 1, cpu_avx=1, modelstr = "sandybridge";/* SB */
+ else if (model == 0x2c) cpu_64bit = 1, modelstr = "westmere"; /* WSM Gulftown */
+ else if (model == 0x2d) cpu_64bit = 1, cpu_avx=1, modelstr = "sandybridge";/* SBC-EP */
+ else if (model == 0x2e) cpu_64bit = 1, modelstr = "nehalem"; /* NHM Beckton */
+ else if (model == 0x2f) cpu_64bit = 1, modelstr = "westmere"; /* WSM Eagleton */
+ else if (model == 0x36) cpu_64bit = 1, modelstr = "atom"; /* Cedarview/Saltwell */
+ else if (model == 0x37) cpu_64bit = 1, modelstr = "silvermont"; /* Silvermont */
+ else if (model == 0x3a) cpu_64bit = 1, cpu_avx=1, modelstr = "ivybridge"; /* IBR */
+ else if (model == 0x3c) cpu_64bit = 1, cpu_avx=1, modelstr = "haswell"; /* Haswell client */
+ else if (model == 0x3d) cpu_64bit = 1, cpu_avx=1, modelstr = "broadwell"; /* Broadwell */
+ else if (model == 0x3e) cpu_64bit = 1, cpu_avx=1, modelstr = "ivybridge"; /* Ivytown */
+ else if (model == 0x3f) cpu_64bit = 1, cpu_avx=1, modelstr = "haswell"; /* Haswell server */
+ else if (model == 0x45) cpu_64bit = 1, cpu_avx=1, modelstr = "haswell"; /* Haswell ULT */
+ else if (model == 0x46) cpu_64bit = 1, cpu_avx=1, modelstr = "haswell"; /* Crystal Well */
+ else if (model == 0x47) cpu_64bit = 1, cpu_avx=1, modelstr = "broadwell"; /* Broadwell */
+ else if (model == 0x4a) cpu_64bit = 1, modelstr = "silvermont"; /* Silvermont */
+ else if (model == 0x4c) cpu_64bit = 1, modelstr = "silvermont"; /* Airmont */
+ else if (model == 0x4d) cpu_64bit = 1, modelstr = "silvermont"; /* Silvermont/Avoton */
+ else if (model == 0x4e) cpu_64bit = 1, cpu_avx=1, modelstr = "skylake"; /* Skylake client */
+ else if (model == 0x4f) cpu_64bit = 1, cpu_avx=1, modelstr = "broadwell"; /* Broadwell server */
+ else if (model == 0x55) cpu_64bit = 1, cpu_avx=1, modelstr = "skylake"; /* Skylake server */
+ else if (model == 0x56) cpu_64bit = 1, cpu_avx=1, modelstr = "broadwell"; /* Broadwell microserver */
+ else if (model == 0x57) cpu_64bit = 1, modelstr = "knightslanding"; /* aka Xeon Phi */
+ else if (model == 0x5a) cpu_64bit = 1, modelstr = "silvermont"; /* Silvermont */
+ else if (model == 0x5c) cpu_64bit = 1, modelstr = "goldmont"; /* Goldmont */
+ else if (model == 0x5e) cpu_64bit = 1, cpu_avx=1, modelstr = "skylake"; /* Skylake */
+ else if (model == 0x5f) cpu_64bit = 1, modelstr = "goldmont"; /* Goldmont */
+ else if (model == 0x8e) cpu_64bit = 1, cpu_avx=1, modelstr = "cabylake"; /* Capylake Y/U */
+ else if (model == 0x9e) cpu_64bit = 1, cpu_avx=1, modelstr = "cabylake"; /* Capylake desktop */
+ else cpu_64bit = 1, modelstr = "nehalem"; /* default */
+
+ if (strcmp (modelstr, "haswell") == 0)
{
/* Some Haswells lack BMI2. Let them appear as Sandybridges for
now. */
- CPUID (dummy_string, 7);
- if ((dummy_string[0 + 8 / 8] & (1 << (8 % 8))) == 0)
- modelstr = "coreisbr";
+ CPUID (feature_string, 7);
+ if ((feature_string[0 + 8 / 8] & (1 << (8 % 8))) == 0)
+ modelstr = "sandybridge";
}
break;
@@ -864,7 +892,7 @@ main ()
cpu_64bit = 1, modelstr = "bobcat";
break;
case 21: /* Bulldozer */
- cpu_64bit = 1;
+ cpu_64bit = 1, cpu_avx = 1;
if (model <= 1)
modelstr = "bulldozer";
else if (model < 0x20) /* really 2, [0x10-0x20) */
@@ -875,7 +903,7 @@ main ()
modelstr = "excavator";
break;
case 22: /* Jaguar, an improved bobcat */
- cpu_64bit = 1, modelstr = "jaguar";
+ cpu_64bit = 1, cpu_avx = 1, modelstr = "jaguar";
break;
}
}
@@ -895,17 +923,25 @@ main ()
}
}
- CPUID (dummy_string, 0x80000001);
- cpuid_64bit = (dummy_string[7] >> 5) & 1;
+ CPUID (feature_string, 0x80000001);
+ cpuid_64bit = (feature_string[7] >> 5) & 1;
+
+ suffix = "";
- /* If our cpuid-based CPU identification thinks this is a 32-bit CPU but
- cpuid claims AMD64 capabilities, then revert to the generic "x86_64".
- This is of course wrong, but it can happen in some emulators, so this
- workaround allows for successful 64-bit builds. */
if (cpuid_64bit && ! cpu_64bit)
+ /* If our cpuid-based CPU identification thinks this is a 32-bit CPU but
+ cpuid claims AMD64 capabilities, then revert to the generic "x86_64".
+ This is of course wrong, but it can happen in some virtualisers and
+ emulators, and this workaround allows for successful 64-bit builds. */
modelstr = "x86_64";
-
- printf ("%s", modelstr);
+ else if (cpu_avx && ! (cpuid_avx && cpuid_osxsave))
+ /* For CPUs nominally capable of executing AVX, append "noavx" when not
+ both the AVX and OSXSAVE cpuid bits are set. We tolerate weirdness
+ here, as some virtualisers set a broken cpuid state here, while other
+ virtualisers allow users to set a broken state. */
+ suffix = "noavx";
+
+ printf ("%s%s", modelstr, suffix);
return 0;
}
EOF
diff --git a/Build/source/libs/gmp/gmp-6.0.0/configgmp.sub b/Build/source/libs/gmp/gmp-src/configgmp.sub
index d734c434580..f248e717043 100755
--- a/Build/source/libs/gmp/gmp-6.0.0/configgmp.sub
+++ b/Build/source/libs/gmp/gmp-src/configgmp.sub
@@ -3,7 +3,7 @@
# GMP config.sub wrapper.
-# Copyright 2000-2003, 2006, 2009-2014 Free Software Foundation, Inc.
+# Copyright 2000-2003, 2006, 2009-2015 Free Software Foundation, Inc.
#
# This file is part of the GNU MP Library.
#
@@ -102,7 +102,7 @@ itanium | itanium2)
test_cpu=ia64 ;;
pentium | pentiummmx | pentiumpro | pentium[234m] | k[567] | k6[23] | geode | athlon | viac3*)
test_cpu=i386 ;;
-athlon64 | atom | core2 | corei | coreinhm | coreiwsm | coreisbr | coreihwl | coreibwl | opteron | k[89] | k10 | bobcat | jaguar | bulldozer | piledriver | steamroller | excavator | nano)
+athlon64 | atom | silvermont | goldmont | core2 | corei* | opteron | k[89] | k10 | bobcat | jaguar* | bulldozer* | piledriver* | steamroller* | excavator* | nano | nehalem* | westmere* | sandybridge* | ivybridge* | haswell* | broadwell* | skylake* | cabylake* | knightslanding)
test_cpu=x86_64 ;;
power[2-9] | power2sc)
test_cpu=power ;;
@@ -117,7 +117,7 @@ powerpc801 | powerpc821 | powerpc823 | powerpc860 | \
powerpc64)
test_cpu=powerpc ;;
sparcv8 | supersparc | microsparc | \
-ultrasparc | ultrasparc2 | ultrasparc2i | ultrasparc3 | ultrasparct[1234])
+ultrasparc | ultrasparc2 | ultrasparc2i | ultrasparc3 | ultrasparct[12345])
test_cpu=sparc ;;
sh2)
test_cpu=sh ;;
@@ -130,7 +130,7 @@ z900esa | z990esa | z9esa | z10esa | z196esa)
armsa1 | armxscale | arm9tdmi | arm9te | \
arm10* | arm11mpcore | armsa1 | arm1136 | arm1156 | arm1176 | \
armcortexa5 | armcortexa7 | armcortexa8 | armcortexa9 | armcortexa15 | \
-armcortexr4 | armcortexr5 | armcortexm3)
+armcortexr4 | armcortexr5 | armcortexm3 | arm*neon)
test_cpu="arm";;
*)
diff --git a/Build/source/libs/gmp/gmp-6.0.0/configure.ac b/Build/source/libs/gmp/gmp-src/configure.ac
index 64b2c50957f..9cedfeb75c1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/configure.ac
+++ b/Build/source/libs/gmp/gmp-src/configure.ac
@@ -3,7 +3,7 @@ dnl Process this file with autoconf to produce a configure script.
define(GMP_COPYRIGHT,[[
-Copyright 1996-2014 Free Software Foundation, Inc.
+Copyright 1996-2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -83,7 +83,7 @@ AM_MAINTAINER_MODE
AC_ARG_ENABLE(assert,
-AC_HELP_STRING([--enable-assert],[enable ASSERT checking [[default=no]]]),
+AC_HELP_STRING([--enable-assert],[enable ASSERT checking [default=no]]),
[case $enableval in
yes|no) ;;
*) AC_MSG_ERROR([bad value $enableval for --enable-assert, need yes or no]) ;;
@@ -101,7 +101,7 @@ GMP_DEFINE_RAW(["define(<WANT_ASSERT>,$want_assert_01)"])
AC_ARG_ENABLE(alloca,
-AC_HELP_STRING([--enable-alloca],[how to get temp memory [[default=reentrant]]]),
+AC_HELP_STRING([--enable-alloca],[how to get temp memory [default=reentrant]]),
[case $enableval in
alloca|malloc-reentrant|malloc-notreentrant) ;;
yes|no|reentrant|notreentrant) ;;
@@ -126,7 +126,7 @@ esac],
# wanted.
#
AC_ARG_ENABLE(cxx,
-AC_HELP_STRING([--enable-cxx],[enable C++ support [[default=no]]]),
+AC_HELP_STRING([--enable-cxx],[enable C++ support [default=no]]),
[case $enableval in
yes|no|detect) ;;
*) AC_MSG_ERROR([bad value $enableval for --enable-cxx, need yes/no/detect]) ;;
@@ -135,7 +135,7 @@ esac],
AC_ARG_ENABLE(assembly,
-AC_HELP_STRING([--enable-assembly],[enable the use of assembly loops [[default=yes]]]),
+AC_HELP_STRING([--enable-assembly],[enable the use of assembly loops [default=yes]]),
[case $enableval in
yes|no) ;;
*) AC_MSG_ERROR([bad value $enableval for --enable-assembly, need yes or no]) ;;
@@ -149,7 +149,7 @@ fi
AC_ARG_ENABLE(fft,
-AC_HELP_STRING([--enable-fft],[enable FFTs for multiplication [[default=yes]]]),
+AC_HELP_STRING([--enable-fft],[enable FFTs for multiplication [default=yes]]),
[case $enableval in
yes|no) ;;
*) AC_MSG_ERROR([bad value $enableval for --enable-fft, need yes or no]) ;;
@@ -163,7 +163,7 @@ fi
AC_ARG_ENABLE(old-fft-full,
-AC_HELP_STRING([--enable-old-fft-full],[enable old mpn_mul_fft_full for multiplication [[default=no]]]),
+AC_HELP_STRING([--enable-old-fft-full],[enable old mpn_mul_fft_full for multiplication [default=no]]),
[case $enableval in
yes|no) ;;
*) AC_MSG_ERROR([bad value $enableval for --enable-old-fft-full, need yes or no]) ;;
@@ -177,7 +177,7 @@ fi
AC_ARG_ENABLE(nails,
-AC_HELP_STRING([--enable-nails],[use nails on limbs [[default=no]]]),
+AC_HELP_STRING([--enable-nails],[use nails on limbs [default=no]]),
[case $enableval in
[yes|no|[02468]|[0-9][02468]]) ;;
[*[13579]])
@@ -197,7 +197,7 @@ AC_SUBST(GMP_NAIL_BITS)
AC_ARG_ENABLE(profiling,
AC_HELP_STRING([--enable-profiling],
- [build with profiler support [[default=no]]]),
+ [build with profiler support [default=no]]),
[case $enableval in
no|prof|gprof|instrument) ;;
*) AC_MSG_ERROR([bad value $enableval for --enable-profiling, need no/prof/gprof/instrument]) ;;
@@ -231,7 +231,7 @@ fi
AC_ARG_WITH(readline,
AC_HELP_STRING([--with-readline],
- [readline support in calc demo program [[default=detect]]]),
+ [readline support in demo programs [default=detect]]),
[case $withval in
yes|no|detect) ;;
*) AC_MSG_ERROR([bad value $withval for --with-readline, need yes/no/detect]) ;;
@@ -241,7 +241,7 @@ esac],
AC_ARG_ENABLE(fat,
AC_HELP_STRING([--enable-fat],
- [build a fat binary on systems that support it [[default=no]]]),
+ [build fat libraries on systems that support it [default=no]]),
[case $enableval in
yes|no) ;;
*) AC_MSG_ERROR([bad value $enableval for --enable-fat, need yes or no]) ;;
@@ -251,7 +251,7 @@ esac],
AC_ARG_ENABLE(minithres,
AC_HELP_STRING([--enable-minithres],
- [choose minimal thresholds for testing [[default=no]]]),
+ [choose minimal thresholds for testing [default=no]]),
[case $enableval in
yes|no) ;;
*) AC_MSG_ERROR([bad value $enableval for --enable-minithres, need yes or no]) ;;
@@ -260,7 +260,7 @@ esac],
AC_ARG_ENABLE(fake-cpuid,
-AC_HELP_STRING([--enable-fake-cpuid],[enable GMP_CPU_TYPE faking cpuid [[default=no]]]),
+AC_HELP_STRING([--enable-fake-cpuid],[enable GMP_CPU_TYPE faking cpuid [default=no]]),
[case $enableval in
yes|no) ;;
*) AC_MSG_ERROR([bad value $enableval for --enable-fake-cpuid, need yes or no]) ;;
@@ -597,22 +597,46 @@ case $host in
arm64*-*-* | aarch64*-*-*)
+ # The compiler clang version 3.4 or earlier requires an explicit -mfpu=neon
+ # for out assembly code. Since this compiler cloaks as gcc, we have to
+ # fake too.
+ gcc_cflags_maybe="-mfpu=neon"
path="arm64"
;;
arm*-*-*)
gcc_cflags="$gcc_cflags $fomit_frame_pointer"
- gcc_cflags_optlist="arch neon tune"
- gcc_cflags_maybe="-marm"
+ gcc_cflags_optlist="arch fpmode neon tune"
gcc_testlist="gcc-arm-umodsi"
GMP_INCLUDE_MPN(arm/arm-defs.m4)
CALLING_CONVENTIONS_OBJS='arm32call.lo arm32check.lo'
+ # This is needed for clang, which is not content with flags like -mfpu=neon
+ # alone.
+ case $host in
+ *-*-*eabi)
+ gcc_cflags_fpmode="-mfloat-abi=softfp" ;;
+ *-*-*eabihf)
+ gcc_cflags_fpmode="-mfloat-abi=hard" ;;
+ esac
+
# FIXME: We make mandatory compiler options optional here. We should
# either enforce them, or organise to strip paths as the corresponding
# options fail.
case $host_cpu in
+ armv7*)
+ path="arm/v6t2 arm/v6 arm/v5 arm"
+ gcc_cflags_arch="-march=armv7-a"
+ ;;
+ armv6t2*)
+ path="arm/v6t2 arm/v6 arm/v5 arm"
+ gcc_cflags_arch="-march=armv6t2"
+ ;;
+ armv6*)
+ path="arm/v6 arm/v5 arm"
+ gcc_cflags_arch="-march=armv6"
+ ;;
armsa1 | arm9tdmi | armv4*)
path="arm"
gcc_cflags_arch="-march=armv4"
@@ -621,7 +645,7 @@ case $host in
path="arm/v5 arm"
gcc_cflags_arch="-march=armv5"
;;
- arm11mpcore | arm1136 | arm1176 | armv6*)
+ arm11mpcore | arm1136 | arm1176*)
path="arm/v6 arm/v5 arm"
gcc_cflags_arch="-march=armv6"
;;
@@ -629,17 +653,28 @@ case $host in
path="arm/v6t2 arm/v6 arm/v5 arm"
gcc_cflags_arch="-march=armv6t2"
;;
- armcortexa5 | armv7a*)
+ armcortexa5)
path="arm/v6t2 arm/v6 arm/v5 arm"
gcc_cflags_arch="-march=armv7-a"
;;
+ armcortexa7)
+ path="arm/v7a/cora7 arm/v6t2 arm/v6 arm/v5 arm"
+ gcc_cflags_arch="-march=armv7-a"
+ gcc_cflags_tune="-mtune=cortex-a7"
+ ;;
+ armcortexa7neon)
+ path="arm/neon arm/v7a/cora7 arm/v6t2 arm/v6 arm/v5 arm"
+ gcc_cflags_arch="-march=armv7-a"
+ gcc_cflags_neon="-mfpu=neon"
+ gcc_cflags_tune="-mtune=cortex-a7"
+ ;;
armcortexa8)
- path="arm/v6t2 arm/v6 arm/v5 arm"
+ path="arm/v7a/cora8 arm/v6t2 arm/v6 arm/v5 arm"
gcc_cflags_arch="-march=armv7-a"
gcc_cflags_tune="-mtune=cortex-a8"
;;
armcortexa8neon)
- path="arm/v6t2 arm/v6 arm/v5 arm/neon arm"
+ path="arm/neon arm/v7a/cora8 arm/v6t2 arm/v6 arm/v5 arm"
gcc_cflags_arch="-march=armv7-a"
gcc_cflags_neon="-mfpu=neon"
gcc_cflags_tune="-mtune=cortex-a8"
@@ -650,7 +685,7 @@ case $host in
gcc_cflags_tune="-mtune=cortex-a9"
;;
armcortexa9neon)
- path="arm/v7a/cora9 arm/v6t2 arm/v6 arm/v5 arm/neon arm"
+ path="arm/neon arm/v7a/cora9 arm/v6t2 arm/v6 arm/v5 arm"
gcc_cflags_arch="-march=armv7-a"
gcc_cflags_neon="-mfpu=neon"
gcc_cflags_tune="-mtune=cortex-a9"
@@ -661,7 +696,7 @@ case $host in
gcc_cflags_tune="-mtune=cortex-a15 -mtune=cortex-a9"
;;
armcortexa15neon)
- path="arm/v7a/cora15/neon arm/v7a/cora15 arm/v6t2 arm/v6 arm/v5 arm/neon arm"
+ path="arm/v7a/cora15/neon arm/neon arm/v7a/cora15 arm/v6t2 arm/v6 arm/v5 arm"
gcc_cflags_arch="-march=armv7-a"
gcc_cflags_neon="-mfpu=neon"
gcc_cflags_tune="-mtune=cortex-a15 -mtune=cortex-a9"
@@ -812,6 +847,7 @@ case $host in
# But icc miscompiles GMP at any optimization level, at higher levels
# it miscompiles more files...
icc_cflags_opt="-O2 -O1"
+ icc_cflags_opt_maybe="-fp-model~precise"
;;
*-*-hpux*)
@@ -826,7 +862,7 @@ case $host in
path_32="ia64"
cc_32_cflags=""
cc_32_cflags_optlist="opt"
- cc_32_cflags_opt="+O3 +O2 +O1"
+ cc_32_cflags_opt="+O2 +O1"
gcc_32_cflags="$gcc_cflags -milp32"
limb_32=longlong
SPEED_CYCLECOUNTER_OBJ_32=ia64.lo
@@ -841,7 +877,7 @@ case $host in
cc_64_cflags="+DD64"
cc_64_cppflags="+DD64"
cc_64_cflags_optlist="opt"
- cc_64_cflags_opt="+O3 +O2 +O1"
+ cc_64_cflags_opt="+O2 +O1"
gcc_64_cflags="$gcc_cflags -mlp64"
;;
esac
@@ -905,7 +941,7 @@ case $host in
mips*-*-*)
abilist="o32"
gcc_cflags_optlist="abi"
- gcc_cflags_abi="-mabi=32"
+ gcc_cflags_abi="-mabi=32 -m32"
gcc_testlist="gcc-mips-o32"
path="mips32"
cc_cflags="-O2 -o32" # no -g, it disables all optimizations
@@ -917,13 +953,17 @@ case $host in
abilist="n32 64 o32"
cclist_n32="gcc cc"
- gcc_n32_cflags="$gcc_cflags -mabi=n32"
+ gcc_n32_cflags_optlist="abi"
+ gcc_n32_cflags="$gcc_cflags"
+ gcc_n32_cflags_abi="-mabi=n32 -mn32"
cc_n32_cflags="-O2 -n32" # no -g, it disables all optimizations
limb_n32=longlong
path_n32="mips64"
cclist_64="gcc cc"
- gcc_64_cflags="$gcc_cflags -mabi=64"
+ gcc_64_cflags_optlist="abi"
+ gcc_64_cflags="$gcc_cflags"
+ gcc_64_cflags_abi="-mabi=64 -m64"
gcc_64_ldflags="-Wc,-mabi=64"
cc_64_cflags="-O2 -64" # no -g, it disables all optimizations
cc_64_ldflags="-Wc,-64"
@@ -961,7 +1001,7 @@ case $host in
abilist="32"
cclist="gcc cc"
cc_cflags="-O2"
- gcc_32_cflags="$gcc_cflags -mpowerpc"
+ gcc_32_cflags_maybe="-m32"
gcc_cflags_optlist="precomp subtype asm cpu"
gcc_cflags_precomp="-no-cpp-precomp"
gcc_cflags_subtype="-force_cpusubtype_ALL" # for vmx on darwin
@@ -1034,6 +1074,9 @@ case $host in
power7) gcc_cflags_cpu="-mtune=power7 -mtune=power5"
xlc_cflags_arch="-qarch=pwr7 -qarch=pwr5"
cpu_path="p7 p5 p4 p3-p7" ;;
+ [power[89]]) gcc_cflags_cpu="-mtune=power8 -mtune=power7 -mtune=power5"
+ xlc_cflags_arch="-qarch=pwr8 -qarch=pwr7 -qarch=pwr5"
+ cpu_path="p8 p7 p5 p4 p3-p7" ;;
esac
case $host in
@@ -1098,7 +1141,6 @@ case $host in
# incompatible with a shared library.
#
abilist="mode64 mode32 $abilist"
- gcc_32_cflags_maybe="-m32"
gcc_cflags_opt="-O3 -O2 -O1" # will this become used?
cclist_mode32="gcc"
gcc_mode32_cflags_maybe="-m32"
@@ -1144,7 +1186,6 @@ case $host in
# 64-bits.
#
abilist="mode64 mode32 $abilist"
- gcc_32_cflags_maybe="-m32"
cclist_mode32="gcc"
gcc_mode32_cflags_maybe="-m32"
gcc_mode32_cflags="-mpowerpc64"
@@ -1360,7 +1401,7 @@ case $host in
gcc_cflags_cpu="-mcpu=niagara3 -mcpu=niagara -mcpu=v9"
gcc_32_cflags_asm="-Wa,-Av8plusd -Wa,-xarch=v8plusd"
gcc_64_cflags_asm="-Wa,-Av9d -Wa,-xarch=v9d";;
- ultrasparct4)
+ [ultrasparct[45]])
gcc_cflags_cpu="-mcpu=niagara4 -mcpu=niagara3 -mcpu=niagara -mcpu=v9"
gcc_32_cflags_asm="-Wa,-Av8plusd -Wa,-xarch=v8plusd"
gcc_64_cflags_asm="-Wa,-Av9d -Wa,-xarch=v9d";;
@@ -1376,8 +1417,8 @@ case $host in
cc_cflags=
cc_cflags_optlist="opt arch cpu"
- # SunOS cc doesn't know -xO4, fallback to -O2.
- cc_cflags_opt="-xO4 -O2"
+ # SunOS <= 4 cc doesn't know -xO3, fallback to -O2.
+ cc_cflags_opt="-xO3 -O2"
# SunOS cc doesn't know -xarch, apparently always generating v7
# code, so make this optional
@@ -1544,7 +1585,9 @@ case $host in
icc_cflags="-no-gcc"
icc_cflags_optlist="opt"
icc_cflags_opt="-O3 -O2 -O1"
+ icc_cflags_opt_maybe="-fp-model~precise"
any_32_testlist="sizeof-long-4"
+ gcc_cflags_optlist="cpu arch noavx"
CALLING_CONVENTIONS_OBJS='x86call.lo x86check$U.lo'
# Availability of rdtsc is checked at run-time.
@@ -1584,7 +1627,6 @@ case $host in
# like k8 for x86_64, then it can be the -mtune at the start, no need to
# duplicate anything.
#
- gcc_cflags_optlist="cpu arch"
case $host_cpu in
i386*)
gcc_cflags_cpu="-mtune=i386 -mcpu=i386 -m386"
@@ -1696,31 +1738,31 @@ case $host in
path="x86/bobcat x86/k7/mmx x86/k7 x86/mmx x86"
path_64="x86_64/bobcat x86_64/k10 x86_64/k8 x86_64"
;;
- jaguar)
+ jaguar | jaguarnoavx)
gcc_cflags_cpu="-mtune=btver2 -mtune=btver1 -mtune=amdfam10 -mtune=k8"
gcc_cflags_arch="-march=btver2 -march=btver1 -march=amdfam10 -march=k8 -march=k8~-mno-sse2"
path="x86/jaguar x86/bobcat x86/k7/mmx x86/k7 x86/mmx x86"
path_64="x86_64/jaguar x86_64/bobcat x86_64/k10 x86_64/k8 x86_64"
;;
- bulldozer | bd1)
+ bulldozer | bd1 | bulldozernoavx | bd1noavx)
gcc_cflags_cpu="-mtune=bdver1 -mtune=amdfam10 -mtune=k8"
gcc_cflags_arch="-march=bdver1 -march=amdfam10 -march=k8 -march=k8~-mno-sse2"
path="x86/bd1 x86/k7/mmx x86/k7 x86/mmx x86"
path_64="x86_64/bd1 x86_64/k10 x86_64/k8 x86_64"
;;
- piledriver | bd2)
+ piledriver | bd2 | piledrivernoavx | bd2noavx)
gcc_cflags_cpu="-mtune=bdver2 -mtune=bdver1 -mtune=amdfam10 -mtune=k8"
gcc_cflags_arch="-march=bdver2 -march=bdver1 -march=amdfam10 -march=k8 -march=k8~-mno-sse2"
path="x86/bd2 x86/bd1 x86/k7/mmx x86/k7 x86/mmx x86"
path_64="x86_64/bd2 x86_64/bd1 x86_64/k10 x86_64/k8 x86_64"
;;
- steamroller | bd3)
+ steamroller | bd3 | steamrollernoavx | bd3noavx)
gcc_cflags_cpu="-mtune=bdver3 -mtune=bdver2 -mtune=bdver1 -mtune=amdfam10 -mtune=k8"
gcc_cflags_arch="-march=bdver3 -march=bdver2 -march=bdver1 -march=amdfam10 -march=k8 -march=k8~-mno-sse2"
path="x86/bd3 x86/bd2 x86/bd1 x86/k7/mmx x86/k7 x86/mmx x86"
path_64="x86_64/bd3 x86_64/bd2 x86_64/bd1 x86_64/k10 x86_64/k8 x86_64"
;;
- excavator | bd4)
+ excavator | bd4 | excavatornoavx | bd4noavx)
gcc_cflags_cpu="-mtune=bdver4 -mtune=bdver3 -mtune=bdver2 -mtune=bdver1 -mtune=amdfam10 -mtune=k8"
gcc_cflags_arch="-march=bdver4 -march=bdver3 -march=bdver2 -march=bdver1 -march=amdfam10 -march=k8 -march=k8~-mno-sse2"
path="x86/bd4 x86/bd3 x86/bd2 x86/bd1 x86/k7/mmx x86/k7 x86/mmx x86"
@@ -1731,38 +1773,53 @@ case $host in
gcc_cflags_arch="-march=core2 -march=core2~-mno-sse2 -march=k8 -march=k8~-mno-sse2"
path="x86/core2 x86/p6/sse2 x86/p6/p3mmx x86/p6/mmx x86/p6 x86/mmx x86"
path_64="x86_64/core2 x86_64"
- ;;
- corei | coreinhm | coreiwsm)
+ ;;
+ corei | coreinhm | coreiwsm | nehalem | westmere)
gcc_cflags_cpu="-mtune=corei7 -mtune=core2 -mtune=k8"
gcc_cflags_arch="-march=corei7 -march=core2 -march=core2~-mno-sse2 -march=k8 -march=k8~-mno-sse2"
path="x86/coreinhm x86/p6/sse2 x86/p6/p3mmx x86/p6/mmx x86/p6 x86/mmx x86"
path_64="x86_64/coreinhm x86_64/core2 x86_64"
;;
- coreisbr)
- gcc_cflags_cpu="-mtune=corei7 -mtune=core2 -mtune=k8"
- gcc_cflags_arch="-march=corei7 -march=core2 -march=core2~-mno-sse2 -march=k8 -march=k8~-mno-sse2"
+ coreisbr | coreisbrnoavx | coreiibr | coreiibrnoavx | \
+ sandybridge | sandybridgenoavx | ivybridge | ivybridgenoavx)
+ gcc_cflags_cpu="-mtune=sandybridge -mtune=corei7 -mtune=core2 -mtune=k8"
+ gcc_cflags_arch="-march=sandybridge -march=corei7 -march=core2 -march=core2~-mno-sse2 -march=k8 -march=k8~-mno-sse2"
path="x86/coreisbr x86/p6/sse2 x86/p6/p3mmx x86/p6/mmx x86/p6 x86/mmx x86"
path_64="x86_64/coreisbr x86_64/coreinhm x86_64/core2 x86_64"
;;
- coreihwl)
- gcc_cflags_cpu="-mtune=corei7 -mtune=core2 -mtune=k8"
- gcc_cflags_arch="-march=corei7 -march=core2 -march=core2~-mno-sse2 -march=k8 -march=k8~-mno-sse2"
+ coreihwl | coreihwlnoavx | haswell | haswellnoavx)
+ gcc_cflags_cpu="-mtune=haswell -mtune=corei7 -mtune=core2 -mtune=k8"
+ gcc_cflags_arch="-march=haswell -march=corei7 -march=core2 -march=core2~-mno-sse2 -march=k8 -march=k8~-mno-sse2"
path="x86/coreisbr x86/p6/sse2 x86/p6/p3mmx x86/p6/mmx x86/p6 x86/mmx x86"
path_64="x86_64/coreihwl x86_64/coreisbr x86_64/coreinhm x86_64/core2 x86_64"
;;
- coreibwl)
- gcc_cflags_cpu="-mtune=corei7 -mtune=core2 -mtune=k8"
- gcc_cflags_arch="-march=corei7 -march=core2 -march=core2~-mno-sse2 -march=k8 -march=k8~-mno-sse2"
+ coreibwl | coreibwlnoavx | broadwell | broadwellnoavx)
+ gcc_cflags_cpu="-mtune=broadwell -mtune=corei7 -mtune=core2 -mtune=k8"
+ gcc_cflags_arch="-march=broadwell -march=corei7 -march=core2 -march=core2~-mno-sse2 -march=k8 -march=k8~-mno-sse2"
path="x86/coreisbr x86/p6/sse2 x86/p6/p3mmx x86/p6/mmx x86/p6 x86/mmx x86"
- path_64="x86_64/coreihwl x86_64/coreisbr x86_64/coreinhm x86_64/core2 x86_64"
+ path_64="x86_64/coreibwl x86_64/coreihwl x86_64/coreisbr x86_64/coreinhm x86_64/core2 x86_64"
# extra_functions_64="missing" # enable for bmi2/adx simulation
;;
- atom)
+ skylake | skylakenoavx | cabylake | cabylakenoavx)
+ gcc_cflags_cpu="-mtune=skylake -mtune=broadwell -mtune=corei7 -mtune=core2 -mtune=k8"
+ # Don't pass -march=skylake for now as then some compilers emit AVX512.
+ gcc_cflags_arch="-march=broadwell -march=corei7 -march=core2 -march=core2~-mno-sse2 -march=k8 -march=k8~-mno-sse2"
+ path="x86/coreisbr x86/p6/sse2 x86/p6/p3mmx x86/p6/mmx x86/p6 x86/mmx x86"
+ path_64="x86_64/skylake x86_64/coreibwl x86_64/coreihwl x86_64/coreisbr x86_64/coreinhm x86_64/core2 x86_64"
+ # extra_functions_64="missing" # enable for bmi2/adx simulation
+ ;;
+ atom) # in-order pipeline atom
gcc_cflags_cpu="-mtune=atom -mtune=pentium3"
gcc_cflags_arch="-march=atom -march=pentium3"
path="x86/atom/sse2 x86/atom/mmx x86/atom x86/mmx x86"
path_64="x86_64/atom x86_64"
;;
+ silvermont | goldmont) # out-of-order pipeline atom
+ gcc_cflags_cpu="-mtune=slm -mtune=atom -mtune=pentium3"
+ gcc_cflags_arch="-march=slm -march=atom -march=pentium3"
+ path="x86/atom/sse2 x86/atom/mmx x86/atom x86/mmx x86"
+ path_64="x86_64/silvermont x86_64/atom x86_64"
+ ;;
nano)
gcc_cflags_cpu="-mtune=nano"
gcc_cflags_arch="-march=nano"
@@ -1778,10 +1835,18 @@ case $host in
esac
case $host in
+ # Disable AVX if the CPU part tells us AVX is unavailable, but also
+ # unconditionally for NetBSD where they don't work but OSXSAVE is set
+ # to claim the contrary.
+ *noavx-*-* | *-*-netbsd*)
+ gcc_cflags_noavx="-mno-avx";;
+ esac
+
+ case $host in
X86_64_PATTERN)
cclist_64="gcc cc"
gcc_64_cflags="$gcc_cflags -m64"
- gcc_64_cflags_optlist="cpu arch"
+ gcc_64_cflags_optlist="cpu arch noavx"
CALLING_CONVENTIONS_OBJS_64='amd64call.lo amd64check$U.lo'
SPEED_CYCLECOUNTER_OBJ_64=x86_64.lo
cyclecounter_size_64=2
@@ -2100,9 +2165,10 @@ case $host in
extra_functions_64="$extra_functions_64 fat fat_entry"
path_64="x86_64/fat x86_64"
fat_path="x86_64 x86_64/fat
- x86_64/k8 x86_64/k10 x86_64/bd1 x86_64/bobcat
- x86_64/pentium4 x86_64/core2 x86_64/coreinhm x86_64/coreisbr
- x86_64/coreihwl x86_64/atom x86_64/nano"
+ x86_64/k8 x86_64/k10 x86_64/bd1 x86_64/bobcat x86_64/pentium4
+ x86_64/core2 x86_64/coreinhm x86_64/coreisbr x86_64/coreihwl
+ x86_64/coreibwl x86_64/skylake x86_64/atom x86_64/silvermont
+ x86_64/nano"
fat_functions="$fat_functions addmul_2 addlsh1_n addlsh2_n sublsh1_n"
fi
@@ -2654,8 +2720,6 @@ AC_TYPE_SIGNAL
AC_CHECK_TYPES([intmax_t, long double, long long, ptrdiff_t, quad_t,
uint_least32_t, intptr_t])
-AC_C_STRINGIZE
-
# FIXME: Really want #ifndef __cplusplus around the #define volatile
# replacement autoconf gives, since volatile is always available in C++.
# But we don't use it in C++ currently.
@@ -2668,6 +2732,7 @@ GMP_C_ATTRIBUTE_CONST
GMP_C_ATTRIBUTE_MALLOC
GMP_C_ATTRIBUTE_MODE
GMP_C_ATTRIBUTE_NORETURN
+GMP_C_HIDDEN_ALIAS
GMP_H_EXTERN_INLINE
@@ -2790,7 +2855,7 @@ gmp_mpn_functions_optional="umul udiv \
add_n_sub_n addaddmul_1msb0"
gmp_mpn_functions="$extra_functions \
- add add_1 add_n sub sub_1 sub_n cnd_add_n cnd_sub_n neg com \
+ add add_1 add_n sub sub_1 sub_n cnd_add_n cnd_sub_n cnd_swap neg com \
mul_1 addmul_1 submul_1 \
add_err1_n add_err2_n add_err3_n sub_err1_n sub_err2_n sub_err3_n \
lshift rshift dive_1 diveby3 divis divrem divrem_1 divrem_2 \
@@ -2800,7 +2865,7 @@ gmp_mpn_functions="$extra_functions \
mulmid_basecase toom42_mulmid mulmid_n mulmid \
random random2 pow_1 \
rootrem sqrtrem sizeinbase get_str set_str \
- scan0 scan1 popcount hamdist cmp \
+ scan0 scan1 popcount hamdist cmp zero_p \
perfsqr perfpow \
gcd_1 gcd gcdext_1 gcdext gcd_subdiv_step \
gcdext_lehmer \
@@ -2808,7 +2873,7 @@ gmp_mpn_functions="$extra_functions \
matrix22_mul matrix22_mul1_inverse_vector \
hgcd_matrix hgcd2 hgcd_step hgcd_reduce hgcd hgcd_appr \
hgcd2_jacobi hgcd_jacobi \
- mullo_n mullo_basecase \
+ mullo_n mullo_basecase sqrlo sqrlo_basecase \
toom22_mul toom32_mul toom42_mul toom52_mul toom62_mul \
toom33_mul toom43_mul toom53_mul toom54_mul toom63_mul \
toom44_mul \
@@ -3414,6 +3479,7 @@ AH_VERBATIM([HAVE_NATIVE],
#undef HAVE_NATIVE_mpn_mul_5
#undef HAVE_NATIVE_mpn_mul_6
#undef HAVE_NATIVE_mpn_mul_basecase
+#undef HAVE_NATIVE_mpn_mullo_basecase
#undef HAVE_NATIVE_mpn_nand_n
#undef HAVE_NATIVE_mpn_nior_n
#undef HAVE_NATIVE_mpn_popcount
diff --git a/Build/source/libs/gmp/gmp-6.0.0/errno.c b/Build/source/libs/gmp/gmp-src/errno.c
index d3c02ef4b82..d3c02ef4b82 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/errno.c
+++ b/Build/source/libs/gmp/gmp-src/errno.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/extract-dbl.c b/Build/source/libs/gmp/gmp-src/extract-dbl.c
index a6e7bf94681..a6e7bf94681 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/extract-dbl.c
+++ b/Build/source/libs/gmp/gmp-src/extract-dbl.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/gen-bases.c b/Build/source/libs/gmp/gmp-src/gen-bases.c
index 4d4b0db8ace..4d4b0db8ace 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/gen-bases.c
+++ b/Build/source/libs/gmp/gmp-src/gen-bases.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/gen-fac.c b/Build/source/libs/gmp/gmp-src/gen-fac.c
index b1756a61173..932b7259334 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/gen-fac.c
+++ b/Build/source/libs/gmp/gmp-src/gen-fac.c
@@ -1,6 +1,6 @@
/* Generate data for combinatorics: fac_ui, bin_uiui, ...
-Copyright 2002, 2011-2013 Free Software Foundation, Inc.
+Copyright 2002, 2011-2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -101,7 +101,7 @@ gen_consts (int numb, int nail, int limb)
ofl = b - 1;
printf
("#define ODD_FACTORIAL_TABLE_LIMIT (%lu)\n", ofl);
- mpz_init2 (mask, numb);
+ mpz_init2 (mask, numb + 1);
mpz_setbit (mask, numb);
mpz_sub_ui (mask, mask, 1);
printf
@@ -268,7 +268,7 @@ main (int argc, char *argv[])
if (argc != 3)
{
- fprintf (stderr, "Usage: gen-fac_ui limbbits nailbits\n");
+ fprintf (stderr, "Usage: gen-fac limbbits nailbits\n");
exit (1);
}
limb_bits = atoi (argv[1]);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/gen-fib.c b/Build/source/libs/gmp/gmp-src/gen-fib.c
index d5f26019155..647a6bb972e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/gen-fib.c
+++ b/Build/source/libs/gmp/gmp-src/gen-fib.c
@@ -1,6 +1,6 @@
/* Generate Fibonacci table data.
-Copyright 2001, 2002, 2004, 2012 Free Software Foundation, Inc.
+Copyright 2001, 2002, 2004, 2012, 2014, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -40,12 +40,12 @@ generate (int numb_bits)
mpz_t limit, l;
int falloc, i;
- mpz_init_set_ui (limit, 1L);
- mpz_mul_2exp (limit, limit, numb_bits);
+ mpz_init2 (limit, numb_bits + 1);
+ mpz_setbit (limit, numb_bits);
/* fib(2n) > 2^n, so use 2n as a limit for the table size */
falloc = 2 * numb_bits;
- f = xmalloc (falloc * sizeof (*f));
+ f = (mpz_t*) xmalloc (falloc * sizeof (*f));
mpz_init_set_ui (f[0], 1L); /* F[-1] */
mpz_init_set_ui (f[1], 0L); /* F[0] */
@@ -123,7 +123,7 @@ main (int argc, char *argv[])
if (argc != 4)
{
- fprintf (stderr, "Usage: gen-bases <header|table> <limbbits> <nailbits>\n");
+ fprintf (stderr, "Usage: gen-fib <header|table> <limbbits> <nailbits>\n");
exit (1);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/gen-jacobitab.c b/Build/source/libs/gmp/gmp-src/gen-jacobitab.c
index 537994b3b27..537994b3b27 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/gen-jacobitab.c
+++ b/Build/source/libs/gmp/gmp-src/gen-jacobitab.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/gen-psqr.c b/Build/source/libs/gmp/gmp-src/gen-psqr.c
index 31977cda1c2..a5054c62723 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/gen-psqr.c
+++ b/Build/source/libs/gmp/gmp-src/gen-psqr.c
@@ -1,6 +1,6 @@
/* Generate perfect square testing data.
-Copyright 2002-2004, 2012 Free Software Foundation, Inc.
+Copyright 2002-2004, 2012, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -135,8 +135,8 @@ int
f_cmp_divisor (const void *parg, const void *qarg)
{
const struct factor_t *p, *q;
- p = parg;
- q = qarg;
+ p = (const struct factor_t *) parg;
+ q = (const struct factor_t *) qarg;
if (p->divisor > q->divisor)
return 1;
else if (p->divisor < q->divisor)
@@ -149,8 +149,8 @@ int
f_cmp_fraction (const void *parg, const void *qarg)
{
const struct factor_t *p, *q;
- p = parg;
- q = qarg;
+ p = (const struct factor_t *) parg;
+ q = (const struct factor_t *) qarg;
if (p->fraction > q->fraction)
return 1;
else if (p->fraction < q->fraction)
@@ -174,8 +174,7 @@ f_cmp_fraction (const void *parg, const void *qarg)
int
mul_2exp_mod (int n, int p, int m)
{
- int i;
- for (i = 0; i < p; i++)
+ while (--p >= 0)
n = (2 * n) % m;
return n;
}
@@ -213,7 +212,7 @@ generate_sq_res_0x100 (int limb_bits)
int i, res;
nsq_res_0x100 = (0x100 + limb_bits - 1) / limb_bits;
- sq_res_0x100 = xmalloc (nsq_res_0x100 * sizeof (*sq_res_0x100));
+ sq_res_0x100 = (mpz_t *) xmalloc (nsq_res_0x100 * sizeof (*sq_res_0x100));
for (i = 0; i < nsq_res_0x100; i++)
mpz_init_set_ui (sq_res_0x100[i], 0L);
@@ -244,8 +243,8 @@ generate_mod (int limb_bits, int nail_bits)
/* no more than limb_bits many factors in a one limb modulus (and of
course in reality nothing like that many) */
factor_alloc = limb_bits;
- factor = xmalloc (factor_alloc * sizeof (*factor));
- rawfactor = xmalloc (factor_alloc * sizeof (*rawfactor));
+ factor = (struct factor_t *) xmalloc (factor_alloc * sizeof (*factor));
+ rawfactor = (struct rawfactor_t *) xmalloc (factor_alloc * sizeof (*rawfactor));
if (numb_bits % 4 != 0)
{
@@ -289,7 +288,7 @@ generate_mod (int limb_bits, int nail_bits)
mpz_init (q);
mpz_init (r);
- for (i = 3; i <= max_divisor; i++)
+ for (i = 3; i <= max_divisor; i+=2)
{
if (! isprime (i))
continue;
@@ -341,7 +340,7 @@ generate_mod (int limb_bits, int nail_bits)
/* one copy of each small prime */
mpz_set_ui (pp, 1L);
- for (i = 3; i <= max_divisor; i++)
+ for (i = 3; i <= max_divisor; i+=2)
{
if (! isprime (i))
continue;
diff --git a/Build/source/libs/gmp/gmp-6.0.0/gen-trialdivtab.c b/Build/source/libs/gmp/gmp-src/gen-trialdivtab.c
index 75876660031..f1babefacc2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/gen-trialdivtab.c
+++ b/Build/source/libs/gmp/gmp-src/gen-trialdivtab.c
@@ -64,7 +64,7 @@ main (int argc, char *argv[])
mpz_t pre[7];
int i;
int start_p, end_p, interval_start, interval_end, omitted_p;
- char *endtok;
+ const char *endtok;
int stop;
int np, start_idx;
diff --git a/Build/source/libs/gmp/gmp-6.0.0/gmp-h.in b/Build/source/libs/gmp/gmp-src/gmp-h.in
index 32f63d9a08e..8329e78c15a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/gmp-h.in
+++ b/Build/source/libs/gmp/gmp-src/gmp-h.in
@@ -1,6 +1,6 @@
/* Definitions for GNU multiple precision functions. -*- mode: c -*-
-Copyright 1991, 1993-1997, 1999-2014 Free Software Foundation, Inc.
+Copyright 1991, 1993-1997, 1999-2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -56,6 +56,7 @@ see https://www.gnu.org/licenses/. */
#define __GNU_MP__ 5
#include <stddef.h> /* for size_t */
+#include <limits.h>
/* Instantiated by configure. */
#if ! defined (__GMP_WITHIN_CONFIGURE)
@@ -445,12 +446,6 @@ typedef __mpq_struct *mpq_ptr;
#define __GMP_ABS(x) ((x) >= 0 ? (x) : -(x))
#define __GMP_MAX(h,i) ((h) > (i) ? (h) : (i))
-/* __GMP_USHRT_MAX is not "~ (unsigned short) 0" because short is promoted
- to int by "~". It still needs to have the promoted type. */
-#define __GMP_UINT_MAX (~ (unsigned) 0)
-#define __GMP_ULONG_MAX (~ (unsigned long) 0)
-#define __GMP_USHRT_MAX (0 + (unsigned short) ~0)
-
/* __builtin_expect is in gcc 3.0, and not in 2.95. */
#if __GMP_GNUC_PREREQ (3,0)
@@ -468,7 +463,7 @@ typedef __mpq_struct *mpq_ptr;
#endif
-/* Allow direct user access to numerator and denominator of a mpq_t object. */
+/* Allow direct user access to numerator and denominator of an mpq_t object. */
#define mpq_numref(Q) (&((Q)->_mp_num))
#define mpq_denref(Q) (&((Q)->_mp_den))
@@ -1163,6 +1158,9 @@ __GMP_DECLSPEC int _mpq_cmp_si (mpq_srcptr, long, unsigned long) __GMP_ATTRIBUTE
#define _mpq_cmp_ui __gmpq_cmp_ui
__GMP_DECLSPEC int _mpq_cmp_ui (mpq_srcptr, unsigned long int, unsigned long int) __GMP_ATTRIBUTE_PURE;
+#define mpq_cmp_z __gmpq_cmp_z
+__GMP_DECLSPEC int mpq_cmp_z (mpq_srcptr, mpz_srcptr) __GMP_ATTRIBUTE_PURE;
+
#define mpq_div __gmpq_div
__GMP_DECLSPEC void mpq_div (mpq_ptr, mpq_srcptr, mpq_srcptr);
@@ -1270,6 +1268,9 @@ __GMP_DECLSPEC void mpf_clears (mpf_ptr, ...);
#define mpf_cmp __gmpf_cmp
__GMP_DECLSPEC int mpf_cmp (mpf_srcptr, mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+#define mpf_cmp_z __gmpf_cmp_z
+__GMP_DECLSPEC int mpf_cmp_z (mpf_srcptr, mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
#define mpf_cmp_d __gmpf_cmp_d
__GMP_DECLSPEC int mpf_cmp_d (mpf_srcptr, double) __GMP_ATTRIBUTE_PURE;
@@ -1480,6 +1481,14 @@ __GMP_DECLSPEC mp_limb_t mpn_addmul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t);
__GMP_DECLSPEC int mpn_cmp (mp_srcptr, mp_srcptr, mp_size_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
#endif
+#define mpn_zero_p __MPN(zero_p)
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_zero_p)
+__GMP_DECLSPEC int mpn_zero_p (mp_srcptr, mp_size_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+#endif
+
+#define mpn_divexact_1 __MPN(divexact_1)
+__GMP_DECLSPEC void mpn_divexact_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t);
+
#define mpn_divexact_by3(dst,src,size) \
mpn_divexact_by3c (dst, src, size, __GMP_CAST (mp_limb_t, 0))
@@ -1546,9 +1555,7 @@ __GMP_DECLSPEC mp_limb_t mpn_neg (mp_ptr, mp_srcptr, mp_size_t);
#endif
#define mpn_com __MPN(com)
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_com)
__GMP_DECLSPEC void mpn_com (mp_ptr, mp_srcptr, mp_size_t);
-#endif
#define mpn_perfect_square_p __MPN(perfect_square_p)
__GMP_DECLSPEC int mpn_perfect_square_p (mp_srcptr, mp_size_t) __GMP_ATTRIBUTE_PURE;
@@ -1648,6 +1655,9 @@ __GMP_DECLSPEC mp_limb_t mpn_sec_sub_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t,
#define mpn_sec_sub_1_itch __MPN(sec_sub_1_itch)
__GMP_DECLSPEC mp_size_t mpn_sec_sub_1_itch (mp_size_t) __GMP_ATTRIBUTE_PURE;
+#define mpn_cnd_swap __MPN(cnd_swap)
+__GMP_DECLSPEC void mpn_cnd_swap (mp_limb_t, volatile mp_limb_t *, volatile mp_limb_t *, mp_size_t);
+
#define mpn_sec_mul __MPN(sec_mul)
__GMP_DECLSPEC void mpn_sec_mul (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t, mp_ptr);
#define mpn_sec_mul_itch __MPN(sec_mul_itch)
@@ -1727,7 +1737,7 @@ __GMP_EXTERN_INLINE
int
mpz_fits_uint_p (mpz_srcptr __gmp_z) __GMP_NOTHROW
{
- __GMPZ_FITS_UTYPE_P (__gmp_z, __GMP_UINT_MAX);
+ __GMPZ_FITS_UTYPE_P (__gmp_z, UINT_MAX);
}
#endif
@@ -1738,7 +1748,7 @@ __GMP_EXTERN_INLINE
int
mpz_fits_ulong_p (mpz_srcptr __gmp_z) __GMP_NOTHROW
{
- __GMPZ_FITS_UTYPE_P (__gmp_z, __GMP_ULONG_MAX);
+ __GMPZ_FITS_UTYPE_P (__gmp_z, ULONG_MAX);
}
#endif
@@ -1749,7 +1759,7 @@ __GMP_EXTERN_INLINE
int
mpz_fits_ushort_p (mpz_srcptr __gmp_z) __GMP_NOTHROW
{
- __GMPZ_FITS_UTYPE_P (__gmp_z, __GMP_USHRT_MAX);
+ __GMPZ_FITS_UTYPE_P (__gmp_z, USHRT_MAX);
}
#endif
@@ -1766,7 +1776,7 @@ mpz_get_ui (mpz_srcptr __gmp_z) __GMP_NOTHROW
/* This is a "#if" rather than a plain "if" so as to avoid gcc warnings
about "<< GMP_NUMB_BITS" exceeding the type size, and to avoid Borland
C++ 6.0 warnings about condition always true for something like
- "__GMP_ULONG_MAX < GMP_NUMB_MASK". */
+ "ULONG_MAX < GMP_NUMB_MASK". */
#if GMP_NAIL_BITS == 0 || defined (_LONG_LONG_LIMB)
/* limb==long and no nails, or limb==longlong, one limb is enough */
return (__gmp_n != 0 ? __gmp_l : 0);
@@ -1834,7 +1844,7 @@ mpz_popcount (mpz_srcptr __gmp_u) __GMP_NOTHROW
mp_bitcnt_t __gmp_result;
__gmp_usize = __gmp_u->_mp_size;
- __gmp_result = (__gmp_usize < 0 ? __GMP_ULONG_MAX : 0);
+ __gmp_result = (__gmp_usize < 0 ? ULONG_MAX : 0);
if (__GMP_LIKELY (__gmp_usize > 0))
__gmp_result = mpn_popcount (__gmp_u->_mp_d, __gmp_usize);
return __gmp_result;
@@ -2157,6 +2167,22 @@ mpn_cmp (mp_srcptr __gmp_xp, mp_srcptr __gmp_yp, mp_size_t __gmp_size) __GMP_NOT
}
#endif
+#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_zero_p)
+#if ! defined (__GMP_FORCE_mpn_zero_p)
+__GMP_EXTERN_INLINE
+#endif
+int
+mpn_zero_p (mp_srcptr __gmp_p, mp_size_t __gmp_n) __GMP_NOTHROW
+{
+ /* if (__GMP_LIKELY (__gmp_n > 0)) */
+ do {
+ if (__gmp_p[--__gmp_n] != 0)
+ return 0;
+ } while (__gmp_n != 0);
+ return 1;
+}
+#endif
+
#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_sub)
#if ! defined (__GMP_FORCE_mpn_sub)
__GMP_EXTERN_INLINE
@@ -2190,14 +2216,20 @@ __GMP_EXTERN_INLINE
mp_limb_t
mpn_neg (mp_ptr __gmp_rp, mp_srcptr __gmp_up, mp_size_t __gmp_n)
{
- mp_limb_t __gmp_ul, __gmp_cy;
- __gmp_cy = 0;
- do {
- __gmp_ul = *__gmp_up++;
- *__gmp_rp++ = -__gmp_ul - __gmp_cy;
- __gmp_cy |= __gmp_ul != 0;
- } while (--__gmp_n != 0);
- return __gmp_cy;
+ while (*__gmp_up == 0) /* Low zero limbs are unchanged by negation. */
+ {
+ *__gmp_rp = 0;
+ if (!--__gmp_n) /* All zero */
+ return 0;
+ ++__gmp_up; ++__gmp_rp;
+ }
+
+ *__gmp_rp = (- *__gmp_up) & GMP_NUMB_MASK;
+
+ if (--__gmp_n) /* Higher limbs get complemented. */
+ mpn_com (++__gmp_rp, ++__gmp_up, __gmp_n);
+
+ return 1;
}
#endif
@@ -2293,7 +2325,7 @@ enum
/* Major version number is the value of __GNU_MP__ too, above and in mp.h. */
#define __GNU_MP_VERSION 6
-#define __GNU_MP_VERSION_MINOR 0
+#define __GNU_MP_VERSION_MINOR 1
#define __GNU_MP_VERSION_PATCHLEVEL 0
#define __GNU_MP_RELEASE (__GNU_MP_VERSION * 10000 + __GNU_MP_VERSION_MINOR * 100 + __GNU_MP_VERSION_PATCHLEVEL)
diff --git a/Build/source/libs/gmp/gmp-6.0.0/gmp-impl.h b/Build/source/libs/gmp/gmp-src/gmp-impl.h
index dc4e084a723..24214a60478 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/gmp-impl.h
+++ b/Build/source/libs/gmp/gmp-src/gmp-impl.h
@@ -3,7 +3,7 @@
THE CONTENTS OF THIS FILE ARE FOR INTERNAL USE AND ARE ALMOST CERTAIN TO
BE SUBJECT TO INCOMPATIBLE CHANGES IN FUTURE GNU MP RELEASES.
-Copyright 1991, 1993-1997, 1999-2014 Free Software Foundation, Inc.
+Copyright 1991, 1993-1997, 1999-2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -374,8 +374,9 @@ __GMP_DECLSPEC void __gmp_tmp_reentrant_free (struct tmp_reentrant_t *);
#define TMP_MARK __tmp_marker = 0
#define TMP_SALLOC(n) alloca(n)
#define TMP_BALLOC(n) __gmp_tmp_reentrant_alloc (&__tmp_marker, n)
+/* The peculiar stack allocation limit here is chosen for efficient asm. */
#define TMP_ALLOC(n) \
- (LIKELY ((n) < 65536) ? TMP_SALLOC(n) : TMP_BALLOC(n))
+ (LIKELY ((n) <= 0x7f00) ? TMP_SALLOC(n) : TMP_BALLOC(n))
#define TMP_SFREE
#define TMP_FREE \
do { \
@@ -426,7 +427,7 @@ struct tmp_debug_t {
};
struct tmp_debug_entry_t {
struct tmp_debug_entry_t *next;
- char *block;
+ void *block;
size_t size;
};
__GMP_DECLSPEC void __gmp_tmp_debug_mark (const char *, int, struct tmp_debug_t **,
@@ -489,7 +490,7 @@ __GMP_DECLSPEC void __gmp_tmp_debug_free (const char *, int, int,
#define TMP_SALLOC_MP_PTRS(n) TMP_SALLOC_TYPE(n,mp_ptr)
#define TMP_BALLOC_MP_PTRS(n) TMP_BALLOC_TYPE(n,mp_ptr)
-/* It's more efficient to allocate one block than two. This is certainly
+/* It's more efficient to allocate one block than many. This is certainly
true of the malloc methods, but it can even be true of alloca if that
involves copying a chunk of stack (various RISCs), or a call to a stack
bounds check (mingw). In any case, when debugging keep separate blocks
@@ -507,7 +508,21 @@ __GMP_DECLSPEC void __gmp_tmp_debug_free (const char *, int, int,
(yp) = (xp) + (xsize); \
} \
} while (0)
-
+#define TMP_ALLOC_LIMBS_3(xp,xsize, yp,ysize, zp,zsize) \
+ do { \
+ if (WANT_TMP_DEBUG) \
+ { \
+ (xp) = TMP_ALLOC_LIMBS (xsize); \
+ (yp) = TMP_ALLOC_LIMBS (ysize); \
+ (zp) = TMP_ALLOC_LIMBS (zsize); \
+ } \
+ else \
+ { \
+ (xp) = TMP_ALLOC_LIMBS ((xsize) + (ysize) + (zsize)); \
+ (yp) = (xp) + (xsize); \
+ (zp) = (yp) + (ysize); \
+ } \
+ } while (0)
/* From gmp.h, nicer names for internal use. */
#define CRAY_Pragma(str) __GMP_CRAY_Pragma(str)
@@ -547,24 +562,6 @@ __GMP_DECLSPEC void __gmp_tmp_debug_free (const char *, int, int,
((n) >= 0x100) + ((n) >= 0x200) + ((n) >= 0x400) + ((n) >= 0x800) + \
((n) >= 0x1000) + ((n) >= 0x2000) + ((n) >= 0x4000) + ((n) >= 0x8000))
-/* The "short" defines are a bit different because shorts are promoted to
- ints by ~ or >> etc.
-
- #ifndef's are used since on some systems (HP?) header files other than
- limits.h setup these defines. We could forcibly #undef in that case, but
- there seems no need to worry about that.
-
- Now that we include <limits.h> we should be able to remove all this. */
-
-#ifndef ULONG_MAX
-#define ULONG_MAX __GMP_ULONG_MAX
-#endif
-#ifndef UINT_MAX
-#define UINT_MAX __GMP_UINT_MAX
-#endif
-#ifndef USHRT_MAX
-#define USHRT_MAX __GMP_USHRT_MAX
-#endif
#define MP_LIMB_T_MAX (~ (mp_limb_t) 0)
/* Must cast ULONG_MAX etc to unsigned long etc, since they might not be
@@ -575,27 +572,6 @@ __GMP_DECLSPEC void __gmp_tmp_debug_free (const char *, int, int,
#define USHRT_HIGHBIT (USHRT_MAX ^ ((unsigned short) USHRT_MAX >> 1))
#define GMP_LIMB_HIGHBIT (MP_LIMB_T_MAX ^ (MP_LIMB_T_MAX >> 1))
-#ifndef LONG_MIN
-#define LONG_MIN ((long) ULONG_HIGHBIT)
-#endif
-#ifndef LONG_MAX
-#define LONG_MAX (-(LONG_MIN+1))
-#endif
-
-#ifndef INT_MIN
-#define INT_MIN ((int) UINT_HIGHBIT)
-#endif
-#ifndef INT_MAX
-#define INT_MAX (-(INT_MIN+1))
-#endif
-
-#ifndef SHRT_MIN
-#define SHRT_MIN ((int) (short) USHRT_HIGHBIT)
-#endif
-#ifndef SHRT_MAX
-#define SHRT_MAX (-(SHRT_MIN+1))
-#endif
-
#if __GMP_MP_SIZE_T_INT
#define MP_SIZE_T_MAX INT_MAX
#define MP_SIZE_T_MIN INT_MIN
@@ -701,6 +677,19 @@ __GMP_DECLSPEC void __gmp_tmp_debug_free (const char *, int, int,
(y) = __mpz_srcptr_swap__tmp; \
} while (0)
+#define MPQ_PTR_SWAP(x, y) \
+ do { \
+ mpq_ptr __mpq_ptr_swap__tmp = (x); \
+ (x) = (y); \
+ (y) = __mpq_ptr_swap__tmp; \
+ } while (0)
+#define MPQ_SRCPTR_SWAP(x, y) \
+ do { \
+ mpq_srcptr __mpq_srcptr_swap__tmp = (x); \
+ (x) = (y); \
+ (y) = __mpq_srcptr_swap__tmp; \
+ } while (0)
+
/* Enhancement: __gmp_allocate_func could have "__attribute__ ((malloc))",
but current gcc (3.0) doesn't seem to support that. */
@@ -1108,6 +1097,12 @@ __GMP_DECLSPEC void mpn_mullo_basecase (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)
__GMP_DECLSPEC void mpn_sqr_basecase (mp_ptr, mp_srcptr, mp_size_t);
#endif
+#define mpn_sqrlo __MPN(sqrlo)
+__GMP_DECLSPEC void mpn_sqrlo (mp_ptr, mp_srcptr, mp_size_t);
+
+#define mpn_sqrlo_basecase __MPN(sqrlo_basecase)
+__GMP_DECLSPEC void mpn_sqrlo_basecase (mp_ptr, mp_srcptr, mp_size_t);
+
#define mpn_mulmid_basecase __MPN(mulmid_basecase)
__GMP_DECLSPEC void mpn_mulmid_basecase (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t);
@@ -1490,7 +1485,7 @@ __GMP_DECLSPEC void mpn_invert (mp_ptr, mp_srcptr, mp_size_t, mp_ptr);
__GMP_DECLSPEC mp_limb_t mpn_ni_invertappr (mp_ptr, mp_srcptr, mp_size_t, mp_ptr);
#define mpn_invertappr __MPN(invertappr)
__GMP_DECLSPEC mp_limb_t mpn_invertappr (mp_ptr, mp_srcptr, mp_size_t, mp_ptr);
-#define mpn_invertappr_itch(n) (3 * (n) + 2)
+#define mpn_invertappr_itch(n) (2 * (n))
#define mpn_binvert __MPN(binvert)
__GMP_DECLSPEC void mpn_binvert (mp_ptr, mp_srcptr, mp_size_t, mp_ptr);
@@ -1849,35 +1844,35 @@ __GMP_DECLSPEC void mpn_copyd (mp_ptr, mp_srcptr, mp_size_t);
would be good when on a GNU system. */
#if HAVE_HOST_CPU_FAMILY_power || HAVE_HOST_CPU_FAMILY_powerpc
-#define MPN_ZERO(dst, n) \
+#define MPN_FILL(dst, n, f) \
do { \
- ASSERT ((n) >= 0); \
- if ((n) != 0) \
- { \
- mp_ptr __dst = (dst) - 1; \
- mp_size_t __n = (n); \
- do \
- *++__dst = 0; \
- while (--__n); \
- } \
+ mp_ptr __dst = (dst) - 1; \
+ mp_size_t __n = (n); \
+ ASSERT (__n > 0); \
+ do \
+ *++__dst = (f); \
+ while (--__n); \
+ } while (0)
+#endif
+
+#ifndef MPN_FILL
+#define MPN_FILL(dst, n, f) \
+ do { \
+ mp_ptr __dst = (dst); \
+ mp_size_t __n = (n); \
+ ASSERT (__n > 0); \
+ do \
+ *__dst++ = (f); \
+ while (--__n); \
} while (0)
#endif
-#ifndef MPN_ZERO
#define MPN_ZERO(dst, n) \
do { \
ASSERT ((n) >= 0); \
if ((n) != 0) \
- { \
- mp_ptr __dst = (dst); \
- mp_size_t __n = (n); \
- do \
- *__dst++ = 0; \
- while (--__n); \
- } \
+ MPN_FILL (dst, n, CNST_LIMB (0)); \
} while (0)
-#endif
-
/* On the x86s repe/scasl doesn't seem useful, since it takes many cycles to
start up and would need to strip a lot of zeros before it'd be faster
@@ -2095,6 +2090,12 @@ __GMP_DECLSPEC mp_limb_t gmp_primesieve (mp_ptr, mp_limb_t);
#ifndef MULLO_BASECASE_THRESHOLD_LIMIT
#define MULLO_BASECASE_THRESHOLD_LIMIT MULLO_BASECASE_THRESHOLD
#endif
+#ifndef SQRLO_BASECASE_THRESHOLD_LIMIT
+#define SQRLO_BASECASE_THRESHOLD_LIMIT SQRLO_BASECASE_THRESHOLD
+#endif
+#ifndef SQRLO_DC_THRESHOLD_LIMIT
+#define SQRLO_DC_THRESHOLD_LIMIT SQRLO_DC_THRESHOLD
+#endif
/* SQR_BASECASE_THRESHOLD is where mpn_sqr_basecase should take over from
mpn_mul_basecase. Default is to use mpn_sqr_basecase from 0. (Note that we
@@ -2107,7 +2108,7 @@ __GMP_DECLSPEC mp_limb_t gmp_primesieve (mp_ptr, mp_limb_t);
should be used, and that may be never. */
#ifndef SQR_BASECASE_THRESHOLD
-#define SQR_BASECASE_THRESHOLD 0
+#define SQR_BASECASE_THRESHOLD 0 /* never use mpn_mul_basecase */
#endif
#ifndef SQR_TOOM2_THRESHOLD
@@ -2131,8 +2132,32 @@ __GMP_DECLSPEC mp_limb_t gmp_primesieve (mp_ptr, mp_limb_t);
#define MULMID_TOOM42_THRESHOLD MUL_TOOM22_THRESHOLD
#endif
+#ifndef MULLO_BASECASE_THRESHOLD
+#define MULLO_BASECASE_THRESHOLD 0 /* never use mpn_mul_basecase */
+#endif
+
+#ifndef MULLO_DC_THRESHOLD
+#define MULLO_DC_THRESHOLD (2*MUL_TOOM22_THRESHOLD)
+#endif
+
+#ifndef MULLO_MUL_N_THRESHOLD
+#define MULLO_MUL_N_THRESHOLD (2*MUL_FFT_THRESHOLD)
+#endif
+
+#ifndef SQRLO_BASECASE_THRESHOLD
+#define SQRLO_BASECASE_THRESHOLD 0 /* never use mpn_sqr_basecase */
+#endif
+
+#ifndef SQRLO_DC_THRESHOLD
+#define SQRLO_DC_THRESHOLD (MULLO_DC_THRESHOLD)
+#endif
+
+#ifndef SQRLO_SQR_THRESHOLD
+#define SQRLO_SQR_THRESHOLD (MULLO_MUL_N_THRESHOLD)
+#endif
+
#ifndef DC_DIV_QR_THRESHOLD
-#define DC_DIV_QR_THRESHOLD 50
+#define DC_DIV_QR_THRESHOLD (2*MUL_TOOM22_THRESHOLD)
#endif
#ifndef DC_DIVAPPR_Q_THRESHOLD
@@ -2140,7 +2165,7 @@ __GMP_DECLSPEC mp_limb_t gmp_primesieve (mp_ptr, mp_limb_t);
#endif
#ifndef DC_BDIV_QR_THRESHOLD
-#define DC_BDIV_QR_THRESHOLD 50
+#define DC_BDIV_QR_THRESHOLD (2*MUL_TOOM22_THRESHOLD)
#endif
#ifndef DC_BDIV_Q_THRESHOLD
@@ -2152,7 +2177,7 @@ __GMP_DECLSPEC mp_limb_t gmp_primesieve (mp_ptr, mp_limb_t);
#endif
#ifndef INV_MULMOD_BNM1_THRESHOLD
-#define INV_MULMOD_BNM1_THRESHOLD (5*MULMOD_BNM1_THRESHOLD)
+#define INV_MULMOD_BNM1_THRESHOLD (4*MULMOD_BNM1_THRESHOLD)
#endif
#ifndef INV_APPR_THRESHOLD
@@ -2339,11 +2364,7 @@ struct fft_table_nk
/* ASSERT() is a private assertion checking scheme, similar to <assert.h>.
ASSERT() does the check only if WANT_ASSERT is selected, ASSERT_ALWAYS()
does it always. Generally assertions are meant for development, but
- might help when looking for a problem later too.
-
- Note that strings shouldn't be used within the ASSERT expression,
- eg. ASSERT(strcmp(s,"notgood")!=0), since the quotes upset the "expr"
- used in the !HAVE_STRINGIZE case (ie. K&R). */
+ might help when looking for a problem later too. */
#ifdef __LINE__
#define ASSERT_LINE __LINE__
@@ -2360,11 +2381,7 @@ struct fft_table_nk
__GMP_DECLSPEC void __gmp_assert_header (const char *, int);
__GMP_DECLSPEC void __gmp_assert_fail (const char *, int, const char *) ATTRIBUTE_NORETURN;
-#if HAVE_STRINGIZE
#define ASSERT_FAIL(expr) __gmp_assert_fail (ASSERT_FILE, ASSERT_LINE, #expr)
-#else
-#define ASSERT_FAIL(expr) __gmp_assert_fail (ASSERT_FILE, ASSERT_LINE, "expr")
-#endif
#define ASSERT_ALWAYS(expr) \
do { \
@@ -2572,7 +2589,7 @@ __GMP_DECLSPEC void __gmp_assert_fail (const char *, int, const char *) ATTRIBUT
__GMP_DECLSPEC mp_limb_t mpn_trialdiv (mp_srcptr, mp_size_t, mp_size_t, int *);
#define mpn_remove __MPN(remove)
-__GMP_DECLSPEC mp_bitcnt_t mpn_remove (mp_ptr, mp_size_t *, mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_bitcnt_t);
+__GMP_DECLSPEC mp_bitcnt_t mpn_remove (mp_ptr, mp_size_t *, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t, mp_bitcnt_t);
/* ADDC_LIMB sets w=x+y and cout to 0 or 1 for a carry from that addition. */
@@ -2820,8 +2837,8 @@ __GMP_DECLSPEC mp_bitcnt_t mpn_remove (mp_ptr, mp_size_t *, mp_ptr, mp_size_t, m
struct bases
{
/* Number of digits in the conversion base that always fits in an mp_limb_t.
- For example, for base 10 on a machine where a mp_limb_t has 32 bits this
- is 9, since 10**9 is the largest number that fits into a mp_limb_t. */
+ For example, for base 10 on a machine where an mp_limb_t has 32 bits this
+ is 9, since 10**9 is the largest number that fits into an mp_limb_t. */
int chars_per_limb;
/* log(2)/log(conversion_base) */
@@ -3185,11 +3202,6 @@ __GMP_DECLSPEC mp_limb_t mpn_mod_34lsub1 (mp_srcptr, mp_size_t) __GMP_ATTRIBUTE_
#define BMOD_1_TO_MOD_1_THRESHOLD 10
#endif
-#ifndef mpn_divexact_1 /* if not done with cpuvec in a fat binary */
-#define mpn_divexact_1 __MPN(divexact_1)
-__GMP_DECLSPEC void mpn_divexact_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t);
-#endif
-
#define MPN_DIVREM_OR_DIVEXACT_1(rp, up, n, d) \
do { \
if (BELOW_THRESHOLD (n, DIVEXACT_1_THRESHOLD)) \
@@ -4311,8 +4323,8 @@ __GMP_DECLSPEC extern mp_size_t __gmp_default_fp_limb_precision;
down. */
#define DIGITS_IN_BASE_PER_LIMB(res, nlimbs, b) \
do { \
- mp_limb_t _ph, _pl; \
- umul_ppmm (_ph, _pl, \
+ mp_limb_t _ph, _dummy; \
+ umul_ppmm (_ph, _dummy, \
mp_bases[b].logb2, GMP_NUMB_BITS * (mp_limb_t) (nlimbs));\
res = _ph; \
} while (0)
@@ -4673,17 +4685,6 @@ mpn_sub_nc (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_size_t n, mp_limb_t ci)
}
#endif
-static inline int
-mpn_zero_p (mp_srcptr ap, mp_size_t n)
-{
- while (--n >= 0)
- {
- if (ap[n] != 0)
- return 0;
- }
- return 1;
-}
-
#if TUNE_PROGRAM_BUILD
/* Some extras wanted when recompiling some .c files for use by the tune
program. Not part of a normal build.
@@ -4806,6 +4807,18 @@ extern mp_size_t mullo_dc_threshold;
#define MULLO_MUL_N_THRESHOLD mullo_mul_n_threshold
extern mp_size_t mullo_mul_n_threshold;
+#undef SQRLO_BASECASE_THRESHOLD
+#define SQRLO_BASECASE_THRESHOLD sqrlo_basecase_threshold
+extern mp_size_t sqrlo_basecase_threshold;
+
+#undef SQRLO_DC_THRESHOLD
+#define SQRLO_DC_THRESHOLD sqrlo_dc_threshold
+extern mp_size_t sqrlo_dc_threshold;
+
+#undef SQRLO_SQR_THRESHOLD
+#define SQRLO_SQR_THRESHOLD sqrlo_sqr_threshold
+extern mp_size_t sqrlo_sqr_threshold;
+
#undef MULMID_TOOM42_THRESHOLD
#define MULMID_TOOM42_THRESHOLD mulmid_toom42_threshold
extern mp_size_t mulmid_toom42_threshold;
@@ -5002,6 +5015,8 @@ extern struct fft_table_nk mpn_fft_table3[2][FFT_TABLE3_SIZE];
#undef MUL_TOOM22_THRESHOLD_LIMIT
#undef MUL_TOOM33_THRESHOLD_LIMIT
#undef MULLO_BASECASE_THRESHOLD_LIMIT
+#undef SQRLO_BASECASE_THRESHOLD_LIMIT
+#undef SQRLO_DC_THRESHOLD_LIMIT
#undef SQR_TOOM3_THRESHOLD_LIMIT
#define SQR_TOOM2_MAX_GENERIC 200
#define MUL_TOOM22_THRESHOLD_LIMIT 700
@@ -5014,6 +5029,8 @@ extern struct fft_table_nk mpn_fft_table3[2][FFT_TABLE3_SIZE];
#define MUL_TOOM8H_THRESHOLD_LIMIT 1200
#define SQR_TOOM8_THRESHOLD_LIMIT 1200
#define MULLO_BASECASE_THRESHOLD_LIMIT 200
+#define SQRLO_BASECASE_THRESHOLD_LIMIT 200
+#define SQRLO_DC_THRESHOLD_LIMIT 400
#define GET_STR_THRESHOLD_LIMIT 150
#define FAC_DSC_THRESHOLD_LIMIT 2048
diff --git a/Build/source/libs/gmp/gmp-6.0.0/gmpxx.h b/Build/source/libs/gmp/gmp-src/gmpxx.h
index 6dd9129c5ab..58e87005442 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/gmpxx.h
+++ b/Build/source/libs/gmp/gmp-src/gmpxx.h
@@ -858,6 +858,73 @@ struct __gmp_binary_xor
{ eval(z, w, d); }
};
+struct __gmp_cmp_function
+{
+ static int eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w); }
+
+ static int eval(mpz_srcptr z, unsigned long int l)
+ { return mpz_cmp_ui(z, l); }
+ static int eval(unsigned long int l, mpz_srcptr z)
+ { return -mpz_cmp_ui(z, l); }
+ static int eval(mpz_srcptr z, signed long int l)
+ { return mpz_cmp_si(z, l); }
+ static int eval(signed long int l, mpz_srcptr z)
+ { return -mpz_cmp_si(z, l); }
+ static int eval(mpz_srcptr z, double d)
+ { return mpz_cmp_d(z, d); }
+ static int eval(double d, mpz_srcptr z)
+ { return -mpz_cmp_d(z, d); }
+
+ static int eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r); }
+
+ static int eval(mpq_srcptr q, unsigned long int l)
+ { return mpq_cmp_ui(q, l, 1); }
+ static int eval(unsigned long int l, mpq_srcptr q)
+ { return -mpq_cmp_ui(q, l, 1); }
+ static int eval(mpq_srcptr q, signed long int l)
+ { return mpq_cmp_si(q, l, 1); }
+ static int eval(signed long int l, mpq_srcptr q)
+ { return -mpq_cmp_si(q, l, 1); }
+ static int eval(mpq_srcptr q, double d)
+ { __GMPXX_TMPQ_D; return mpq_cmp (q, temp); }
+ static int eval(double d, mpq_srcptr q)
+ { __GMPXX_TMPQ_D; return mpq_cmp (temp, q); }
+ static int eval(mpq_srcptr q, mpz_srcptr z)
+ { return mpq_cmp_z(q, z); }
+ static int eval(mpz_srcptr z, mpq_srcptr q)
+ { return -mpq_cmp_z(q, z); }
+
+ static int eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g); }
+
+ static int eval(mpf_srcptr f, unsigned long int l)
+ { return mpf_cmp_ui(f, l); }
+ static int eval(unsigned long int l, mpf_srcptr f)
+ { return -mpf_cmp_ui(f, l); }
+ static int eval(mpf_srcptr f, signed long int l)
+ { return mpf_cmp_si(f, l); }
+ static int eval(signed long int l, mpf_srcptr f)
+ { return -mpf_cmp_si(f, l); }
+ static int eval(mpf_srcptr f, double d)
+ { return mpf_cmp_d(f, d); }
+ static int eval(double d, mpf_srcptr f)
+ { return -mpf_cmp_d(f, d); }
+ static int eval(mpf_srcptr f, mpz_srcptr z)
+ { return mpf_cmp_z(f, z); }
+ static int eval(mpz_srcptr z, mpf_srcptr f)
+ { return -mpf_cmp_z(f, z); }
+ static int eval(mpf_srcptr f, mpq_srcptr q)
+ {
+ mpf_t qf;
+ mpf_init(qf); /* Should we use the precision of f? */
+ mpf_set_q(qf, q);
+ int ret = eval(f, qf);
+ mpf_clear(qf);
+ return ret;
+ }
+ static int eval(mpq_srcptr q, mpf_srcptr f)
+ { return -eval(f, q); }
+};
+
struct __gmp_binary_equal
{
static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) == 0; }
@@ -890,6 +957,10 @@ struct __gmp_binary_equal
{ __GMPXX_TMPQ_D; return mpq_equal (q, temp) != 0; }
static bool eval(double d, mpq_srcptr q)
{ return eval(q, d); }
+ static bool eval(mpq_srcptr q, mpz_srcptr z)
+ { return mpq_cmp_z(q, z) == 0; }
+ static bool eval(mpz_srcptr z, mpq_srcptr q)
+ { return eval(q, z); }
static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) == 0; }
@@ -905,6 +976,14 @@ struct __gmp_binary_equal
{ return mpf_cmp_d(f, d) == 0; }
static bool eval(double d, mpf_srcptr f)
{ return eval(f, d); }
+ static bool eval(mpf_srcptr f, mpz_srcptr z)
+ { return mpf_cmp_z(f, z) == 0; }
+ static bool eval(mpz_srcptr z, mpf_srcptr f)
+ { return eval(f, z); }
+ static bool eval(mpf_srcptr f, mpq_srcptr q)
+ { return __gmp_cmp_function::eval(f, q) == 0; }
+ static bool eval(mpq_srcptr q, mpf_srcptr f)
+ { return eval(f, q); }
};
struct __gmp_binary_less
@@ -938,6 +1017,10 @@ struct __gmp_binary_less
{ __GMPXX_TMPQ_D; return mpq_cmp (q, temp) < 0; }
static bool eval(double d, mpq_srcptr q)
{ __GMPXX_TMPQ_D; return mpq_cmp (temp, q) < 0; }
+ static bool eval(mpq_srcptr q, mpz_srcptr z)
+ { return mpq_cmp_z(q, z) < 0; }
+ static bool eval(mpz_srcptr z, mpq_srcptr q)
+ { return mpq_cmp_z(q, z) > 0; }
static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) < 0; }
@@ -953,6 +1036,14 @@ struct __gmp_binary_less
{ return mpf_cmp_d(f, d) < 0; }
static bool eval(double d, mpf_srcptr f)
{ return mpf_cmp_d(f, d) > 0; }
+ static bool eval(mpf_srcptr f, mpz_srcptr z)
+ { return mpf_cmp_z(f, z) < 0; }
+ static bool eval(mpz_srcptr z, mpf_srcptr f)
+ { return mpf_cmp_z(f, z) > 0; }
+ static bool eval(mpf_srcptr f, mpq_srcptr q)
+ { return __gmp_cmp_function::eval(f, q) < 0; }
+ static bool eval(mpq_srcptr q, mpf_srcptr f)
+ { return __gmp_cmp_function::eval(q, f) < 0; }
};
struct __gmp_binary_greater
@@ -1057,52 +1148,40 @@ struct __gmp_sgn_function
static int eval(mpf_srcptr f) { return mpf_sgn(f); }
};
-struct __gmp_cmp_function
+struct __gmp_gcd_function
{
- static int eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w); }
-
- static int eval(mpz_srcptr z, unsigned long int l)
- { return mpz_cmp_ui(z, l); }
- static int eval(unsigned long int l, mpz_srcptr z)
- { return -mpz_cmp_ui(z, l); }
- static int eval(mpz_srcptr z, signed long int l)
- { return mpz_cmp_si(z, l); }
- static int eval(signed long int l, mpz_srcptr z)
- { return -mpz_cmp_si(z, l); }
- static int eval(mpz_srcptr z, double d)
- { return mpz_cmp_d(z, d); }
- static int eval(double d, mpz_srcptr z)
- { return -mpz_cmp_d(z, d); }
-
- static int eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r); }
-
- static int eval(mpq_srcptr q, unsigned long int l)
- { return mpq_cmp_ui(q, l, 1); }
- static int eval(unsigned long int l, mpq_srcptr q)
- { return -mpq_cmp_ui(q, l, 1); }
- static int eval(mpq_srcptr q, signed long int l)
- { return mpq_cmp_si(q, l, 1); }
- static int eval(signed long int l, mpq_srcptr q)
- { return -mpq_cmp_si(q, l, 1); }
- static int eval(mpq_srcptr q, double d)
- { __GMPXX_TMPQ_D; return mpq_cmp (q, temp); }
- static int eval(double d, mpq_srcptr q)
- { __GMPXX_TMPQ_D; return mpq_cmp (temp, q); }
-
- static int eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g); }
+ static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v)
+ { mpz_gcd(z, w, v); }
+ static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l)
+ { mpz_gcd_ui(z, w, l); }
+ static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w)
+ { eval(z, w, l); }
+ static void eval(mpz_ptr z, mpz_srcptr w, signed long int l)
+ { eval(z, w, __gmpxx_abs_ui(l)); }
+ static void eval(mpz_ptr z, signed long int l, mpz_srcptr w)
+ { eval(z, w, l); }
+ static void eval(mpz_ptr z, mpz_srcptr w, double d)
+ { __GMPXX_TMPZ_D; mpz_gcd (z, w, temp); }
+ static void eval(mpz_ptr z, double d, mpz_srcptr w)
+ { eval(z, w, d); }
+};
- static int eval(mpf_srcptr f, unsigned long int l)
- { return mpf_cmp_ui(f, l); }
- static int eval(unsigned long int l, mpf_srcptr f)
- { return -mpf_cmp_ui(f, l); }
- static int eval(mpf_srcptr f, signed long int l)
- { return mpf_cmp_si(f, l); }
- static int eval(signed long int l, mpf_srcptr f)
- { return -mpf_cmp_si(f, l); }
- static int eval(mpf_srcptr f, double d)
- { return mpf_cmp_d(f, d); }
- static int eval(double d, mpf_srcptr f)
- { return -mpf_cmp_d(f, d); }
+struct __gmp_lcm_function
+{
+ static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v)
+ { mpz_lcm(z, w, v); }
+ static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l)
+ { mpz_lcm_ui(z, w, l); }
+ static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w)
+ { eval(z, w, l); }
+ static void eval(mpz_ptr z, mpz_srcptr w, signed long int l)
+ { eval(z, w, __gmpxx_abs_ui(l)); }
+ static void eval(mpz_ptr z, signed long int l, mpz_srcptr w)
+ { eval(z, w, l); }
+ static void eval(mpz_ptr z, mpz_srcptr w, double d)
+ { __GMPXX_TMPZ_D; mpz_lcm (z, w, temp); }
+ static void eval(mpz_ptr z, double d, mpz_srcptr w)
+ { eval(z, w, d); }
};
struct __gmp_rand_function
@@ -1232,9 +1311,9 @@ namespace std {
};
template <class T, class U>
- struct common_type <__gmp_expr<T, U>, __gmp_expr<T, U> >
+ struct common_type <__gmp_expr<T, U> >
{
- typedef __gmp_expr<T, U> type;
+ typedef __gmp_expr<T, T> type;
};
#define __GMPXX_DECLARE_COMMON_TYPE(typ) \
@@ -1268,7 +1347,7 @@ namespace std {
template <class T, class Op>
struct __gmp_unary_expr
{
- const T &val;
+ typename __gmp_resolve_ref<T>::ref_type val;
__gmp_unary_expr(const T &v) : val(v) { }
private:
@@ -2112,6 +2191,24 @@ public:
};
+// simple expressions, U is a built-in numerical type
+
+template <class T, class U, class Op>
+class __gmp_expr<T, __gmp_unary_expr<U, Op> >
+{
+private:
+ typedef U val_type;
+
+ __gmp_unary_expr<val_type, Op> expr;
+public:
+ explicit __gmp_expr(const val_type &val) : expr(val) { }
+ void eval(typename __gmp_resolve_expr<T>::ptr_type p) const
+ { Op::eval(p, expr.val); }
+ const val_type & get_val() const { return expr.val; }
+ mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); }
+};
+
+
// compound expressions
template <class T, class U, class Op>
@@ -2167,7 +2264,7 @@ public:
};
-// simple expressions, T is a built-in numerical type
+// simple expressions, U is a built-in numerical type
template <class T, class U, class Op>
class __gmp_expr<T, __gmp_binary_expr<__gmp_expr<T, T>, U, Op> >
@@ -2786,9 +2883,8 @@ template <class T, class U, class V, class W> \
inline type fun(const __gmp_expr<T, U> &expr1, \
const __gmp_expr<V, W> &expr2) \
{ \
- typedef typename __gmp_resolve_expr<T, V>::value_type eval_type; \
- __gmp_expr<eval_type, eval_type> const& temp1(expr1); \
- __gmp_expr<eval_type, eval_type> const& temp2(expr2); \
+ __gmp_expr<T, T> const& temp1(expr1); \
+ __gmp_expr<V, V> const& temp2(expr2); \
return eval_fun::eval(temp1.__get_mp(), temp2.__get_mp()); \
}
@@ -2984,6 +3080,8 @@ __GMP_DEFINE_UNARY_FUNCTION(floor, __gmp_floor_function)
__GMP_DEFINE_UNARY_FUNCTION(ceil, __gmp_ceil_function)
__GMP_DEFINE_UNARY_FUNCTION(sqrt, __gmp_sqrt_function)
__GMP_DEFINE_BINARY_FUNCTION(hypot, __gmp_hypot_function)
+__GMP_DEFINE_BINARY_FUNCTION(gcd, __gmp_gcd_function)
+__GMP_DEFINE_BINARY_FUNCTION(lcm, __gmp_lcm_function)
__GMP_DEFINE_UNARY_TYPE_FUNCTION(int, sgn, __gmp_sgn_function)
__GMP_DEFINE_BINARY_TYPE_FUNCTION(int, cmp, __gmp_cmp_function)
diff --git a/Build/source/libs/gmp/gmp-6.0.0/invalid.c b/Build/source/libs/gmp/gmp-src/invalid.c
index 81d6720c0dd..81d6720c0dd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/invalid.c
+++ b/Build/source/libs/gmp/gmp-src/invalid.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/longlong.h b/Build/source/libs/gmp/gmp-src/longlong.h
index f144dee9e70..fde5277032c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/longlong.h
+++ b/Build/source/libs/gmp/gmp-src/longlong.h
@@ -1,6 +1,6 @@
/* longlong.h -- definitions for mixed size 32/64 bit arithmetic.
-Copyright 1991-1994, 1996, 1997, 1999-2005, 2007-2009, 2011-2013 Free Software
+Copyright 1991-1994, 1996, 1997, 1999-2005, 2007-2009, 2011-2015 Free Software
Foundation, Inc.
This file is part of the GNU MP Library.
@@ -200,7 +200,7 @@ see https://www.gnu.org/licenses/. */
UDItype __m0 = (m0), __m1 = (m1); \
__asm__ ("umulh %r1,%2,%0" \
: "=r" (ph) \
- : "%rJ" (m0), "rI" (m1)); \
+ : "%rJ" (__m0), "rI" (__m1)); \
(pl) = __m0 * __m1; \
} while (0)
#endif
@@ -210,7 +210,7 @@ see https://www.gnu.org/licenses/. */
#define umul_ppmm(ph, pl, m0, m1) \
do { \
UDItype __m0 = (m0), __m1 = (m1); \
- (ph) = __UMULH (m0, m1); \
+ (ph) = __UMULH (__m0, __m1); \
(pl) = __m0 * __m1; \
} while (0)
#endif
@@ -293,7 +293,7 @@ long __MPN(count_leading_zeros) (UDItype);
#define umul_ppmm(ph, pl, m0, m1) \
do { \
UDItype __m0 = (m0), __m1 = (m1); \
- (ph) = _int_mult_upper (m0, m1); \
+ (ph) = _int_mult_upper (__m0, __m1); \
(pl) = __m0 * __m1; \
} while (0)
#ifndef LONGLONG_STANDALONE
@@ -358,9 +358,9 @@ long __MPN(count_leading_zeros) (UDItype);
#include <ia64intrin.h>
#define umul_ppmm(ph, pl, m0, m1) \
do { \
- UWtype _m0 = (m0), _m1 = (m1); \
- ph = _m64_xmahu (_m0, _m1, 0); \
- pl = _m0 * _m1; \
+ UWtype __m0 = (m0), __m1 = (m1); \
+ ph = _m64_xmahu (__m0, __m1, 0); \
+ pl = __m0 * __m1; \
} while (0)
#endif
#ifndef LONGLONG_STANDALONE
@@ -437,7 +437,8 @@ long __MPN(count_leading_zeros) (UDItype);
"rIJ" ((USItype) (bl)))
#endif
-#if defined (__arm__) && !defined (__thumb__) && W_TYPE_SIZE == 32
+#if defined (__arm__) && (defined (__thumb2__) || !defined (__thumb__)) \
+ && W_TYPE_SIZE == 32
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
__asm__ ("adds\t%1, %4, %5\n\tadc\t%0, %2, %3" \
: "=r" (sh), "=&r" (sl) \
@@ -482,7 +483,37 @@ long __MPN(count_leading_zeros) (UDItype);
: "=r" (sh), "=&r" (sl) \
: "r" (ah), "rI" (bh), "r" (al), "rI" (bl) __CLOBBER_CC);\
} while (0)
-#if 1 || defined (__arm_m__) /* `M' series has widening multiply support */
+#if defined (__ARM_ARCH_2__) || defined (__ARM_ARCH_2A__) \
+ || defined (__ARM_ARCH_3__)
+#define umul_ppmm(xh, xl, a, b) \
+ do { \
+ register USItype __t0, __t1, __t2; \
+ __asm__ ("%@ Inlined umul_ppmm\n" \
+ " mov %2, %5, lsr #16\n" \
+ " mov %0, %6, lsr #16\n" \
+ " bic %3, %5, %2, lsl #16\n" \
+ " bic %4, %6, %0, lsl #16\n" \
+ " mul %1, %3, %4\n" \
+ " mul %4, %2, %4\n" \
+ " mul %3, %0, %3\n" \
+ " mul %0, %2, %0\n" \
+ " adds %3, %4, %3\n" \
+ " addcs %0, %0, #65536\n" \
+ " adds %1, %1, %3, lsl #16\n" \
+ " adc %0, %0, %3, lsr #16" \
+ : "=&r" ((USItype) (xh)), "=r" ((USItype) (xl)), \
+ "=&r" (__t0), "=&r" (__t1), "=r" (__t2) \
+ : "r" ((USItype) (a)), "r" ((USItype) (b)) __CLOBBER_CC); \
+ } while (0)
+#define UMUL_TIME 20
+#define udiv_qrnnd(q, r, n1, n0, d) \
+ do { UWtype __r; \
+ (q) = __MPN(udiv_qrnnd) (&__r, (n1), (n0), (d)); \
+ (r) = __r; \
+ } while (0)
+extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype);
+#define UDIV_TIME 200
+#else /* ARMv4 or newer */
#define umul_ppmm(xh, xl, a, b) \
__asm__ ("umull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
#define UMUL_TIME 5
@@ -498,48 +529,10 @@ long __MPN(count_leading_zeros) (UDItype);
#define UDIV_NEEDS_NORMALIZATION 1
#define UDIV_TIME 70
#endif /* LONGLONG_STANDALONE */
-#else
-#define umul_ppmm(xh, xl, a, b) \
- __asm__ ("%@ Inlined umul_ppmm\n" \
-" mov %|r0, %2, lsr #16\n" \
-" mov %|r2, %3, lsr #16\n" \
-" bic %|r1, %2, %|r0, lsl #16\n" \
-" bic %|r2, %3, %|r2, lsl #16\n" \
-" mul %1, %|r1, %|r2\n" \
-" mul %|r2, %|r0, %|r2\n" \
-" mul %|r1, %0, %|r1\n" \
-" mul %0, %|r0, %0\n" \
-" adds %|r1, %|r2, %|r1\n" \
-" addcs %0, %0, #65536\n" \
-" adds %1, %1, %|r1, lsl #16\n" \
-" adc %0, %0, %|r1, lsr #16" \
- : "=&r" (xh), "=r" (xl) \
- : "r" (a), "r" (b) \
- : "r0", "r1", "r2")
-#define UMUL_TIME 20
-#ifndef LONGLONG_STANDALONE
-#define udiv_qrnnd(q, r, n1, n0, d) \
- do { UWtype __r; \
- (q) = __MPN(udiv_qrnnd) (&__r, (n1), (n0), (d)); \
- (r) = __r; \
- } while (0)
-extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype);
-#define UDIV_TIME 200
-#endif /* LONGLONG_STANDALONE */
-#endif
-/* This is a bizarre test, but GCC doesn't define any useful common symbol. */
-#if defined (__ARM_ARCH_5__) || defined (__ARM_ARCH_5T__) || \
- defined (__ARM_ARCH_5E__) || defined (__ARM_ARCH_5TE__)|| \
- defined (__ARM_ARCH_6__) || defined (__ARM_ARCH_6J__) || \
- defined (__ARM_ARCH_6K__) || defined (__ARM_ARCH_6Z__) || \
- defined (__ARM_ARCH_6ZK__)|| defined (__ARM_ARCH_6T2__)|| \
- defined (__ARM_ARCH_6M__) || defined (__ARM_ARCH_7__) || \
- defined (__ARM_ARCH_7A__) || defined (__ARM_ARCH_7R__) || \
- defined (__ARM_ARCH_7M__) || defined (__ARM_ARCH_7EM__)
-#define count_leading_zeros(count, x) \
- __asm__ ("clz\t%0, %1" : "=r" (count) : "r" (x))
+#endif /* defined(__ARM_ARCH_2__) ... */
+#define count_leading_zeros(count, x) count_leading_zeros_gcc_clz(count, x)
+#define count_trailing_zeros(count, x) count_trailing_zeros_gcc_ctz(count, x)
#define COUNT_LEADING_ZEROS_0 32
-#endif
#endif /* __arm__ */
#if defined (__aarch64__) && W_TYPE_SIZE == 64
@@ -548,21 +541,21 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype);
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
__asm__ ("adds\t%1, %x4, %5\n\tadc\t%0, %x2, %x3" \
: "=r" (sh), "=&r" (sl) \
- : "rZ" (ah), "rZ" (bh), "%r" (al), "rI" (bl) __CLOBBER_CC)
+ : "rZ" ((UDItype)(ah)), "rZ" ((UDItype)(bh)), \
+ "%r" ((UDItype)(al)), "rI" ((UDItype)(bl)) __CLOBBER_CC)
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
__asm__ ("subs\t%1, %x4, %5\n\tsbc\t%0, %x2, %x3" \
: "=r,r" (sh), "=&r,&r" (sl) \
- : "rZ,rZ" (ah), "rZ,rZ" (bh), "r,Z" (al), "rI,r" (bl) __CLOBBER_CC)
+ : "rZ,rZ" ((UDItype)(ah)), "rZ,rZ" ((UDItype)(bh)), \
+ "r,Z" ((UDItype)(al)), "rI,r" ((UDItype)(bl)) __CLOBBER_CC)
#define umul_ppmm(ph, pl, m0, m1) \
do { \
UDItype __m0 = (m0), __m1 = (m1); \
- __asm__ ("umulh\t%0, %1, %2" : "=r" (ph) : "r" (m0), "r" (m1)); \
+ __asm__ ("umulh\t%0, %1, %2" : "=r" (ph) : "r" (__m0), "r" (__m1)); \
(pl) = __m0 * __m1; \
} while (0)
-#define count_leading_zeros(count, x) \
- __asm__ ("clz\t%0, %1" : "=r" (count) : "r" (x))
-#define count_trailing_zeros(count, x) \
- __asm__ ("rbit\t%0, %1\n\tclz\t%0, %0" : "=r" (count) : "r" (x))
+#define count_leading_zeros(count, x) count_leading_zeros_gcc_clz(count, x)
+#define count_trailing_zeros(count, x) count_trailing_zeros_gcc_ctz(count, x)
#define COUNT_LEADING_ZEROS_0 64
#endif /* __aarch64__ */
@@ -867,6 +860,8 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype);
#endif
#endif
+/* On x86 and x86_64, every asm implicitly clobbers "flags" and "fpsr",
+ so we don't need __CLOBBER_CC. */
#if (defined (__i386__) || defined (__i486__)) && W_TYPE_SIZE == 32
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
__asm__ ("addl %5,%k1\n\tadcl %3,%k0" \
@@ -1232,7 +1227,7 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype);
w0 = __ll; \
} while (0)
#endif
-#if !defined (umul_ppmm) && __GMP_GNUC_PREREQ (2,7)
+#if !defined (umul_ppmm) && __GMP_GNUC_PREREQ (2,7) && !defined (__clang__)
#define umul_ppmm(w1, w0, u, v) \
__asm__ ("multu %2,%3" : "=l" (w0), "=h" (w1) : "d" (u), "d" (v))
#endif
@@ -1255,14 +1250,17 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype);
w0 = __ll; \
} while (0)
#endif
-#if !defined (umul_ppmm) && __GMP_GNUC_PREREQ (2,7)
+#if !defined (umul_ppmm) && __GMP_GNUC_PREREQ (2,7) && !defined (__clang__)
#define umul_ppmm(w1, w0, u, v) \
- __asm__ ("dmultu %2,%3" : "=l" (w0), "=h" (w1) : "d" (u), "d" (v))
+ __asm__ ("dmultu %2,%3" \
+ : "=l" (w0), "=h" (w1) \
+ : "d" ((UDItype)(u)), "d" ((UDItype)(v)))
#endif
#if !defined (umul_ppmm)
#define umul_ppmm(w1, w0, u, v) \
__asm__ ("dmultu %2,%3\n\tmflo %0\n\tmfhi %1" \
- : "=d" (w0), "=d" (w1) : "d" (u), "d" (v))
+ : "=d" (w0), "=d" (w1) \
+ : "d" ((UDItype)(u)), "d" ((UDItype)(v)))
#endif
#define UMUL_TIME 20
#define UDIV_TIME 140
@@ -1408,14 +1406,19 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype);
do { \
if (__builtin_constant_p (bh) && (bh) == 0) \
__asm__ ("add%I4c %1,%3,%4\n\taddze %0,%2" \
- : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl)); \
+ : "=r" (sh), "=&r" (sl) \
+ : "r" ((UDItype)(ah)), \
+ "%r" ((UDItype)(al)), "rI" ((UDItype)(bl))); \
else if (__builtin_constant_p (bh) && (bh) == ~(UDItype) 0) \
__asm__ ("add%I4c %1,%3,%4\n\taddme %0,%2" \
- : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl)); \
+ : "=r" (sh), "=&r" (sl) \
+ : "r" ((UDItype)(ah)), \
+ "%r" ((UDItype)(al)), "rI" ((UDItype)(bl))); \
else \
__asm__ ("add%I5c %1,%4,%5\n\tadde %0,%2,%3" \
- : "=r" (sh), "=&r" (sl) \
- : "r" (ah), "r" (bh), "%r" (al), "rI" (bl)); \
+ : "=r" (sh), "=&r" (sl) \
+ : "r" ((UDItype)(ah)), "r" ((UDItype)(bh)), \
+ "%r" ((UDItype)(al)), "rI" ((UDItype)(bl))); \
} while (0)
/* We use "*rI" for the constant operand here, since with just "I", gcc barfs.
This might seem strange, but gcc folds away the dead code late. */
@@ -1424,37 +1427,55 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype);
if (__builtin_constant_p (bl) && bl > -0x8000 && bl <= 0x8000) { \
if (__builtin_constant_p (ah) && (ah) == 0) \
__asm__ ("addic %1,%3,%4\n\tsubfze %0,%2" \
- : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "*rI" (-bl)); \
+ : "=r" (sh), "=&r" (sl) \
+ : "r" ((UDItype)(bh)), \
+ "rI" ((UDItype)(al)), "*rI" (-((UDItype)(bl)))); \
else if (__builtin_constant_p (ah) && (ah) == ~(UDItype) 0) \
__asm__ ("addic %1,%3,%4\n\tsubfme %0,%2" \
- : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "*rI" (-bl)); \
+ : "=r" (sh), "=&r" (sl) \
+ : "r" ((UDItype)(bh)), \
+ "rI" ((UDItype)(al)), "*rI" (-((UDItype)(bl)))); \
else if (__builtin_constant_p (bh) && (bh) == 0) \
__asm__ ("addic %1,%3,%4\n\taddme %0,%2" \
- : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "*rI" (-bl)); \
+ : "=r" (sh), "=&r" (sl) \
+ : "r" ((UDItype)(ah)), \
+ "rI" ((UDItype)(al)), "*rI" (-((UDItype)(bl)))); \
else if (__builtin_constant_p (bh) && (bh) == ~(UDItype) 0) \
__asm__ ("addic %1,%3,%4\n\taddze %0,%2" \
- : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "*rI" (-bl)); \
+ : "=r" (sh), "=&r" (sl) \
+ : "r" ((UDItype)(ah)), \
+ "rI" ((UDItype)(al)), "*rI" (-((UDItype)(bl)))); \
else \
__asm__ ("addic %1,%4,%5\n\tsubfe %0,%3,%2" \
: "=r" (sh), "=&r" (sl) \
- : "r" (ah), "r" (bh), "rI" (al), "*rI" (-bl)); \
+ : "r" ((UDItype)(ah)), "r" ((UDItype)(bh)), \
+ "rI" ((UDItype)(al)), "*rI" (-((UDItype)(bl)))); \
} else { \
if (__builtin_constant_p (ah) && (ah) == 0) \
__asm__ ("subf%I3c %1,%4,%3\n\tsubfze %0,%2" \
- : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl)); \
+ : "=r" (sh), "=&r" (sl) \
+ : "r" ((UDItype)(bh)), \
+ "rI" ((UDItype)(al)), "r" ((UDItype)(bl))); \
else if (__builtin_constant_p (ah) && (ah) == ~(UDItype) 0) \
__asm__ ("subf%I3c %1,%4,%3\n\tsubfme %0,%2" \
- : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl)); \
+ : "=r" (sh), "=&r" (sl) \
+ : "r" ((UDItype)(bh)), \
+ "rI" ((UDItype)(al)), "r" ((UDItype)(bl))); \
else if (__builtin_constant_p (bh) && (bh) == 0) \
__asm__ ("subf%I3c %1,%4,%3\n\taddme %0,%2" \
- : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl)); \
+ : "=r" (sh), "=&r" (sl) \
+ : "r" ((UDItype)(ah)), \
+ "rI" ((UDItype)(al)), "r" ((UDItype)(bl))); \
else if (__builtin_constant_p (bh) && (bh) == ~(UDItype) 0) \
__asm__ ("subf%I3c %1,%4,%3\n\taddze %0,%2" \
- : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl)); \
+ : "=r" (sh), "=&r" (sl) \
+ : "r" ((UDItype)(ah)), \
+ "rI" ((UDItype)(al)), "r" ((UDItype)(bl))); \
else \
__asm__ ("subf%I4c %1,%5,%4\n\tsubfe %0,%3,%2" \
: "=r" (sh), "=&r" (sl) \
- : "r" (ah), "r" (bh), "rI" (al), "r" (bl)); \
+ : "r" ((UDItype)(ah)), "r" ((UDItype)(bh)), \
+ "rI" ((UDItype)(al)), "r" ((UDItype)(bl))); \
} \
} while (0)
#endif /* ! _LONG_LONG_LIMB */
@@ -1474,7 +1495,7 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype);
#define umul_ppmm(ph, pl, m0, m1) \
do { \
UDItype __m0 = (m0), __m1 = (m1); \
- __asm__ ("mulhdu %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \
+ __asm__ ("mulhdu %0,%1,%2" : "=r" (ph) : "%r" (__m0), "r" (__m1)); \
(pl) = __m0 * __m1; \
} while (0)
#endif
@@ -1482,7 +1503,7 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype);
#define smul_ppmm(ph, pl, m0, m1) \
do { \
DItype __m0 = (m0), __m1 = (m1); \
- __asm__ ("mulhd %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \
+ __asm__ ("mulhd %0,%1,%2" : "=r" (ph) : "%r" (__m0), "r" (__m1)); \
(pl) = __m0 * __m1; \
} while (0)
#define SMUL_TIME 14 /* ??? */
@@ -1759,18 +1780,20 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype);
"addcc %r4,%5,%1\n" \
" addccc %r6,%7,%%g0\n" \
" addc %r2,%3,%0" \
- : "=r" (sh), "=&r" (sl) \
- : "rJ" (ah), "rI" (bh), "%rJ" (al), "rI" (bl), \
- "%rJ" ((al) >> 32), "rI" ((bl) >> 32) \
+ : "=r" (sh), "=&r" (sl) \
+ : "rJ" ((UDItype)(ah)), "rI" ((UDItype)(bh)), \
+ "%rJ" ((UDItype)(al)), "rI" ((UDItype)(bl)), \
+ "%rJ" ((UDItype)(al) >> 32), "rI" ((UDItype)(bl) >> 32) \
__CLOBBER_CC)
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
__asm__ ( \
"subcc %r4,%5,%1\n" \
" subccc %r6,%7,%%g0\n" \
" subc %r2,%3,%0" \
- : "=r" (sh), "=&r" (sl) \
- : "rJ" (ah), "rI" (bh), "rJ" (al), "rI" (bl), \
- "rJ" ((al) >> 32), "rI" ((bl) >> 32) \
+ : "=r" (sh), "=&r" (sl) \
+ : "rJ" ((UDItype)(ah)), "rI" ((UDItype)(bh)), \
+ "rJ" ((UDItype)(al)), "rI" ((UDItype)(bl)), \
+ "rJ" ((UDItype)(al) >> 32), "rI" ((UDItype)(bl) >> 32) \
__CLOBBER_CC)
#if __VIS__ >= 0x300
#undef add_ssaaaa
@@ -1779,7 +1802,8 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype);
"addcc %r4, %5, %1\n" \
" addxc %r2, %r3, %0" \
: "=r" (sh), "=&r" (sl) \
- : "rJ" (ah), "rJ" (bh), "%rJ" (al), "rI" (bl) __CLOBBER_CC)
+ : "rJ" ((UDItype)(ah)), "rJ" ((UDItype)(bh)), \
+ "%rJ" ((UDItype)(al)), "rI" ((UDItype)(bl)) __CLOBBER_CC)
#define umul_ppmm(ph, pl, m0, m1) \
do { \
UDItype __m0 = (m0), __m1 = (m1); \
@@ -1790,6 +1814,8 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype);
} while (0)
#define count_leading_zeros(count, x) \
__asm__ ("lzd\t%1,%0" : "=r" (count) : "r" (x))
+/* Needed by count_leading_zeros_32 in sparc64.h. */
+#define COUNT_LEADING_ZEROS_NEED_CLZ_TAB
#endif
#endif
@@ -1884,13 +1910,19 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype);
#endif
+#if defined (__cplusplus)
+#define __longlong_h_C "C"
+#else
+#define __longlong_h_C
+#endif
+
/* Use mpn_umul_ppmm or mpn_udiv_qrnnd functions, if they exist. The "_r"
forms have "reversed" arguments, meaning the pointer is last, which
sometimes allows better parameter passing, in particular on 64-bit
hppa. */
#define mpn_umul_ppmm __MPN(umul_ppmm)
-extern UWtype mpn_umul_ppmm (UWtype *, UWtype, UWtype);
+extern __longlong_h_C UWtype mpn_umul_ppmm (UWtype *, UWtype, UWtype);
#if ! defined (umul_ppmm) && HAVE_NATIVE_mpn_umul_ppmm \
&& ! defined (LONGLONG_STANDALONE)
@@ -1903,7 +1935,7 @@ extern UWtype mpn_umul_ppmm (UWtype *, UWtype, UWtype);
#endif
#define mpn_umul_ppmm_r __MPN(umul_ppmm_r)
-extern UWtype mpn_umul_ppmm_r (UWtype, UWtype, UWtype *);
+extern __longlong_h_C UWtype mpn_umul_ppmm_r (UWtype, UWtype, UWtype *);
#if ! defined (umul_ppmm) && HAVE_NATIVE_mpn_umul_ppmm_r \
&& ! defined (LONGLONG_STANDALONE)
@@ -1916,7 +1948,7 @@ extern UWtype mpn_umul_ppmm_r (UWtype, UWtype, UWtype *);
#endif
#define mpn_udiv_qrnnd __MPN(udiv_qrnnd)
-extern UWtype mpn_udiv_qrnnd (UWtype *, UWtype, UWtype, UWtype);
+extern __longlong_h_C UWtype mpn_udiv_qrnnd (UWtype *, UWtype, UWtype, UWtype);
#if ! defined (udiv_qrnnd) && HAVE_NATIVE_mpn_udiv_qrnnd \
&& ! defined (LONGLONG_STANDALONE)
@@ -1930,7 +1962,7 @@ extern UWtype mpn_udiv_qrnnd (UWtype *, UWtype, UWtype, UWtype);
#endif
#define mpn_udiv_qrnnd_r __MPN(udiv_qrnnd_r)
-extern UWtype mpn_udiv_qrnnd_r (UWtype, UWtype, UWtype, UWtype *);
+extern __longlong_h_C UWtype mpn_udiv_qrnnd_r (UWtype, UWtype, UWtype, UWtype *);
#if ! defined (udiv_qrnnd) && HAVE_NATIVE_mpn_udiv_qrnnd_r \
&& ! defined (LONGLONG_STANDALONE)
diff --git a/Build/source/libs/gmp/gmp-6.0.0/memory.c b/Build/source/libs/gmp/gmp-src/memory.c
index 4475f37de37..4475f37de37 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/memory.c
+++ b/Build/source/libs/gmp/gmp-src/memory.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mini-gmp/README b/Build/source/libs/gmp/gmp-src/mini-gmp/README
index f291489ea3e..f291489ea3e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mini-gmp/README
+++ b/Build/source/libs/gmp/gmp-src/mini-gmp/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mini-gmp/mini-gmp.c b/Build/source/libs/gmp/gmp-src/mini-gmp/mini-gmp.c
index b9186951cbb..7300614dd17 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mini-gmp/mini-gmp.c
+++ b/Build/source/libs/gmp/gmp-src/mini-gmp/mini-gmp.c
@@ -2,7 +2,7 @@
Contributed to the GNU project by Niels Möller
-Copyright 1991-1997, 1999-2014 Free Software Foundation, Inc.
+Copyright 1991-1997, 1999-2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -264,12 +264,12 @@ gmp_default_alloc (size_t size)
static void *
gmp_default_realloc (void *old, size_t old_size, size_t new_size)
{
- mp_ptr p;
+ void * p;
p = realloc (old, new_size);
if (!p)
- gmp_die("gmp_default_realoc: Virtual memory exhausted.");
+ gmp_die("gmp_default_realloc: Virtual memory exhausted.");
return p;
}
@@ -322,14 +322,14 @@ mp_set_memory_functions (void *(*alloc_func) (size_t),
static mp_ptr
gmp_xalloc_limbs (mp_size_t size)
{
- return gmp_xalloc (size * sizeof (mp_limb_t));
+ return (mp_ptr) gmp_xalloc (size * sizeof (mp_limb_t));
}
static mp_ptr
gmp_xrealloc_limbs (mp_ptr old, mp_size_t size)
{
assert (size > 0);
- return (*gmp_reallocate_func) (old, 0, size * sizeof (mp_limb_t));
+ return (mp_ptr) (*gmp_reallocate_func) (old, 0, size * sizeof (mp_limb_t));
}
@@ -346,7 +346,7 @@ mpn_copyi (mp_ptr d, mp_srcptr s, mp_size_t n)
void
mpn_copyd (mp_ptr d, mp_srcptr s, mp_size_t n)
{
- while (n-- > 0)
+ while (--n >= 0)
d[n] = s[n];
}
@@ -373,20 +373,22 @@ mpn_cmp4 (mp_srcptr ap, mp_size_t an, mp_srcptr bp, mp_size_t bn)
static mp_size_t
mpn_normalized_size (mp_srcptr xp, mp_size_t n)
{
- for (; n > 0 && xp[n-1] == 0; n--)
- ;
+ while (n > 0 && xp[n-1] == 0)
+ --n;
return n;
}
-#define mpn_zero_p(xp, n) (mpn_normalized_size ((xp), (n)) == 0)
+int
+mpn_zero_p(mp_srcptr rp, mp_size_t n)
+{
+ return mpn_normalized_size (rp, n) == 0;
+}
void
mpn_zero (mp_ptr rp, mp_size_t n)
{
- mp_size_t i;
-
- for (i = 0; i < n; i++)
- rp[i] = 0;
+ while (--n >= 0)
+ rp[n] = 0;
}
mp_limb_t
@@ -578,17 +580,16 @@ mpn_mul (mp_ptr rp, mp_srcptr up, mp_size_t un, mp_srcptr vp, mp_size_t vn)
way. */
rp[un] = mpn_mul_1 (rp, up, un, vp[0]);
- rp += 1, vp += 1, vn -= 1;
/* Now accumulate the product of up[] and the next higher limb from
vp[]. */
- while (vn >= 1)
+ while (--vn >= 1)
{
+ rp += 1, vp += 1;
rp[un] = mpn_addmul_1 (rp, up, un, vp[0]);
- rp += 1, vp += 1, vn -= 1;
}
- return rp[un - 1];
+ return rp[un];
}
void
@@ -608,7 +609,6 @@ mpn_lshift (mp_ptr rp, mp_srcptr up, mp_size_t n, unsigned int cnt)
{
mp_limb_t high_limb, low_limb;
unsigned int tnc;
- mp_size_t i;
mp_limb_t retval;
assert (n >= 1);
@@ -623,7 +623,7 @@ mpn_lshift (mp_ptr rp, mp_srcptr up, mp_size_t n, unsigned int cnt)
retval = low_limb >> tnc;
high_limb = (low_limb << cnt);
- for (i = n; --i != 0;)
+ while (--n != 0)
{
low_limb = *--up;
*--rp = high_limb | (low_limb >> tnc);
@@ -639,7 +639,6 @@ mpn_rshift (mp_ptr rp, mp_srcptr up, mp_size_t n, unsigned int cnt)
{
mp_limb_t high_limb, low_limb;
unsigned int tnc;
- mp_size_t i;
mp_limb_t retval;
assert (n >= 1);
@@ -651,7 +650,7 @@ mpn_rshift (mp_ptr rp, mp_srcptr up, mp_size_t n, unsigned int cnt)
retval = (high_limb << tnc);
low_limb = high_limb >> cnt;
- for (i = n; --i != 0;)
+ while (--n != 0)
{
high_limb = *up++;
*rp++ = low_limb | (high_limb << tnc);
@@ -876,7 +875,7 @@ mpn_div_qr_1_preinv (mp_ptr qp, mp_srcptr np, mp_size_t nn,
d = inv->d1;
di = inv->di;
- while (nn-- > 0)
+ while (--nn >= 0)
{
mp_limb_t q;
@@ -1314,7 +1313,7 @@ mpn_set_str_other (mp_ptr rp, const unsigned char *sp, size_t sn,
j = 0;
w = sp[j++];
- for (; --k > 0; )
+ while (--k != 0)
w = w * b + sp[j++];
rp[0] = w;
@@ -1388,7 +1387,7 @@ mpz_clear (mpz_t r)
gmp_free (r->_mp_d);
}
-static void *
+static mp_ptr
mpz_realloc (mpz_t r, mp_size_t size)
{
size = GMP_MAX (size, 1);
@@ -1475,14 +1474,12 @@ mpz_fits_slong_p (const mpz_t u)
{
mp_size_t us = u->_mp_size;
- if (us == 0)
- return 1;
- else if (us == 1)
+ if (us == 1)
return u->_mp_d[0] < GMP_LIMB_HIGHBIT;
else if (us == -1)
return u->_mp_d[0] <= GMP_LIMB_HIGHBIT;
else
- return 0;
+ return (us == 0);
}
int
@@ -1796,18 +1793,14 @@ mpz_cmpabs (const mpz_t u, const mpz_t v)
void
mpz_abs (mpz_t r, const mpz_t u)
{
- if (r != u)
- mpz_set (r, u);
-
+ mpz_set (r, u);
r->_mp_size = GMP_ABS (r->_mp_size);
}
void
mpz_neg (mpz_t r, const mpz_t u)
{
- if (r != u)
- mpz_set (r, u);
-
+ mpz_set (r, u);
r->_mp_size = -r->_mp_size;
}
@@ -2077,8 +2070,7 @@ mpz_mul_2exp (mpz_t r, const mpz_t u, mp_bitcnt_t bits)
else
mpn_copyd (rp + limbs, u->_mp_d, un);
- while (limbs > 0)
- rp[--limbs] = 0;
+ mpn_zero (rp, limbs);
r->_mp_size = (u->_mp_size < 0) ? - rn : rn;
}
@@ -3074,9 +3066,7 @@ void
mpz_ui_pow_ui (mpz_t r, unsigned long blimb, unsigned long e)
{
mpz_t b;
- mpz_init_set_ui (b, blimb);
- mpz_pow_ui (r, b, e);
- mpz_clear (b);
+ mpz_pow_ui (r, mpz_roinit_n (b, &blimb, 1), e);
}
void
@@ -3148,7 +3138,7 @@ mpz_powm (mpz_t r, const mpz_t b, const mpz_t e, const mpz_t m)
}
mpz_init_set_ui (tr, 1);
- while (en-- > 0)
+ while (--en >= 0)
{
mp_limb_t w = e->_mp_d[en];
mp_limb_t bit;
@@ -3188,9 +3178,7 @@ void
mpz_powm_ui (mpz_t r, const mpz_t b, unsigned long elimb, const mpz_t m)
{
mpz_t e;
- mpz_init_set_ui (e, elimb);
- mpz_powm (r, b, e, m);
- mpz_clear (e);
+ mpz_powm (r, b, mpz_roinit_n (e, &elimb, 1), m);
}
/* x=trunc(y^(1/z)), r=y-x^z */
@@ -3218,7 +3206,7 @@ mpz_rootrem (mpz_t x, mpz_t r, const mpz_t y, unsigned long z)
{
mp_bitcnt_t tb;
tb = mpz_sizeinbase (y, 2) / z + 1;
- mpz_init2 (t, tb);
+ mpz_init2 (t, tb + 1);
mpz_setbit (t, tb);
}
@@ -3333,7 +3321,7 @@ void
mpz_fac_ui (mpz_t x, unsigned long n)
{
mpz_set_ui (x, n + (n == 0));
- for (;n > 2;)
+ while (n > 2)
mpz_mul_ui (x, x, --n);
}
@@ -3504,7 +3492,7 @@ mpz_tstbit (const mpz_t d, mp_bitcnt_t bit_index)
must be complemented. */
if (shift > 0 && (w << (GMP_LIMB_BITS - shift)) > 0)
return bit ^ 1;
- while (limb_index-- > 0)
+ while (--limb_index >= 0)
if (d->_mp_d[limb_index] > 0)
return bit ^ 1;
}
@@ -3569,7 +3557,7 @@ mpz_abs_sub_bit (mpz_t d, mp_bitcnt_t bit_index)
gmp_assert_nocarry (mpn_sub_1 (dp + limb_index, dp + limb_index,
dn - limb_index, bit));
- dn -= (dp[dn-1] == 0);
+ dn = mpn_normalized_size (dp, dn);
d->_mp_size = (d->_mp_size < 0) ? - dn : dn;
}
@@ -4065,7 +4053,7 @@ mpz_get_str (char *sp, int base, const mpz_t u)
sn = 1 + mpz_sizeinbase (u, base);
if (!sp)
- sp = gmp_xalloc (1 + sn);
+ sp = (char *) gmp_xalloc (1 + sn);
un = GMP_ABS (u->_mp_size);
@@ -4147,7 +4135,7 @@ mpz_set_str (mpz_t r, const char *sp, int base)
}
sn = strlen (sp);
- dp = gmp_xalloc (sn + (sn == 0));
+ dp = (unsigned char *) gmp_xalloc (sn + (sn == 0));
for (sn = 0; *sp; sp++)
{
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mini-gmp/mini-gmp.h b/Build/source/libs/gmp/gmp-src/mini-gmp/mini-gmp.h
index c043ca7e661..450c3e561b0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mini-gmp/mini-gmp.h
+++ b/Build/source/libs/gmp/gmp-src/mini-gmp/mini-gmp.h
@@ -1,6 +1,6 @@
/* mini-gmp, a minimalistic implementation of a GNU GMP subset.
-Copyright 2011-2014 Free Software Foundation, Inc.
+Copyright 2011-2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -82,6 +82,7 @@ void mpn_copyd (mp_ptr, mp_srcptr, mp_size_t);
void mpn_zero (mp_ptr, mp_size_t);
int mpn_cmp (mp_srcptr, mp_srcptr, mp_size_t);
+int mpn_zero_p (mp_srcptr, mp_size_t);
mp_limb_t mpn_add_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t);
mp_limb_t mpn_add_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mp_bpl.c b/Build/source/libs/gmp/gmp-src/mp_bpl.c
index 6328057965d..6328057965d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mp_bpl.c
+++ b/Build/source/libs/gmp/gmp-src/mp_bpl.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mp_clz_tab.c b/Build/source/libs/gmp/gmp-src/mp_clz_tab.c
index 7c9227e8b32..7c9227e8b32 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mp_clz_tab.c
+++ b/Build/source/libs/gmp/gmp-src/mp_clz_tab.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mp_dv_tab.c b/Build/source/libs/gmp/gmp-src/mp_dv_tab.c
index c6d74eb3f29..c6d74eb3f29 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mp_dv_tab.c
+++ b/Build/source/libs/gmp/gmp-src/mp_dv_tab.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mp_get_fns.c b/Build/source/libs/gmp/gmp-src/mp_get_fns.c
index c77980fbeb6..c77980fbeb6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mp_get_fns.c
+++ b/Build/source/libs/gmp/gmp-src/mp_get_fns.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mp_minv_tab.c b/Build/source/libs/gmp/gmp-src/mp_minv_tab.c
index 522bd0184bf..522bd0184bf 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mp_minv_tab.c
+++ b/Build/source/libs/gmp/gmp-src/mp_minv_tab.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mp_set_fns.c b/Build/source/libs/gmp/gmp-src/mp_set_fns.c
index 7be60066b9f..7be60066b9f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mp_set_fns.c
+++ b/Build/source/libs/gmp/gmp-src/mp_set_fns.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/Makefile.am b/Build/source/libs/gmp/gmp-src/mpf/Makefile.am
index 30b0ea8f5f2..ff7e48faf7c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/Makefile.am
+++ b/Build/source/libs/gmp/gmp-src/mpf/Makefile.am
@@ -29,7 +29,7 @@
# see https://www.gnu.org/licenses/.
-INCLUDES = -D__GMP_WITHIN_GMP -I$(top_srcdir)
+AM_CPPFLAGS = -D__GMP_WITHIN_GMP -I$(top_srcdir)
noinst_LTLIBRARIES = libmpf.la
libmpf_la_SOURCES = \
@@ -37,7 +37,7 @@ libmpf_la_SOURCES = \
set_q.c iset.c iset_ui.c iset_si.c iset_str.c iset_d.c clear.c clears.c \
get_str.c dump.c size.c eq.c reldiff.c sqrt.c random2.c inp_str.c out_str.c \
add.c add_ui.c sub.c sub_ui.c ui_sub.c mul.c mul_ui.c div.c div_ui.c \
- cmp.c cmp_d.c cmp_si.c cmp_ui.c mul_2exp.c div_2exp.c abs.c neg.c get_d.c \
+ cmp.c cmp_d.c cmp_z.c cmp_si.c cmp_ui.c mul_2exp.c div_2exp.c abs.c neg.c get_d.c \
get_d_2exp.c set_dfl_prec.c set_prc.c set_prc_raw.c get_dfl_prec.c get_prc.c \
ui_div.c sqrt_ui.c \
pow_ui.c urandomb.c swap.c get_si.c get_ui.c int_p.c \
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/abs.c b/Build/source/libs/gmp/gmp-src/mpf/abs.c
index a2bde2a4f85..a2bde2a4f85 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/abs.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/abs.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/add.c b/Build/source/libs/gmp/gmp-src/mpf/add.c
index d2a5c097c57..d2a5c097c57 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/add.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/add.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/add_ui.c b/Build/source/libs/gmp/gmp-src/mpf/add_ui.c
index b1e57d04c1e..b1e57d04c1e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/add_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/add_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/ceilfloor.c b/Build/source/libs/gmp/gmp-src/mpf/ceilfloor.c
index 302e2b8ae5a..302e2b8ae5a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/ceilfloor.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/ceilfloor.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/clear.c b/Build/source/libs/gmp/gmp-src/mpf/clear.c
index 2df0de579b0..9ff2dd336fe 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/clear.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/clear.c
@@ -33,7 +33,7 @@ see https://www.gnu.org/licenses/. */
#include "gmp-impl.h"
void
-mpf_clear (mpf_ptr m)
+mpf_clear (mpf_ptr x)
{
- (*__gmp_free_func) (m->_mp_d, (size_t) (m->_mp_prec + 1) * GMP_LIMB_BYTES);
+ __GMP_FREE_FUNC_LIMBS (PTR(x), PREC(x) + 1);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/clears.c b/Build/source/libs/gmp/gmp-src/mpf/clears.c
index addbe8faf3b..68a4cbebdc1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/clears.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/clears.c
@@ -1,6 +1,6 @@
/* mpf_clears() -- Clear multiple mpf_t variables.
-Copyright 2009, 2014 Free Software Foundation, Inc.
+Copyright 2009, 2014, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -29,7 +29,6 @@ GNU Lesser General Public License along with the GNU MP Library. If not,
see https://www.gnu.org/licenses/. */
#include <stdarg.h>
-#include <stdio.h> /* for NULL */
#include "gmp.h"
#include "gmp-impl.h"
@@ -42,8 +41,9 @@ mpf_clears (mpf_ptr x, ...)
while (x != NULL)
{
- (*__gmp_free_func) (x->_mp_d, (size_t) (x->_mp_prec + 1) * GMP_LIMB_BYTES);
+ __GMP_FREE_FUNC_LIMBS (PTR(x), PREC(x) + 1);
x = va_arg (ap, mpf_ptr);
}
+
va_end (ap);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/cmp.c b/Build/source/libs/gmp/gmp-src/mpf/cmp.c
index ab22c3f89cc..0c066721827 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/cmp.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/cmp.c
@@ -1,6 +1,6 @@
/* mpf_cmp -- Compare two floats.
-Copyright 1993, 1994, 1996, 2001 Free Software Foundation, Inc.
+Copyright 1993, 1994, 1996, 2001, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -40,11 +40,9 @@ mpf_cmp (mpf_srcptr u, mpf_srcptr v) __GMP_NOTHROW
int cmp;
int usign;
- uexp = u->_mp_exp;
- vexp = v->_mp_exp;
-
- usize = u->_mp_size;
- vsize = v->_mp_size;
+ usize = SIZ(u);
+ vsize = SIZ(v);
+ usign = usize >= 0 ? 1 : -1;
/* 1. Are the signs different? */
if ((usize ^ vsize) >= 0)
@@ -61,12 +59,13 @@ mpf_cmp (mpf_srcptr u, mpf_srcptr v) __GMP_NOTHROW
else
{
/* Either U or V is negative, but not both. */
- return usize >= 0 ? 1 : -1;
+ return usign;
}
/* U and V have the same sign and are both non-zero. */
- usign = usize >= 0 ? 1 : -1;
+ uexp = EXP(u);
+ vexp = EXP(v);
/* 2. Are the exponents different? */
if (uexp > vexp)
@@ -77,35 +76,33 @@ mpf_cmp (mpf_srcptr u, mpf_srcptr v) __GMP_NOTHROW
usize = ABS (usize);
vsize = ABS (vsize);
- up = u->_mp_d;
- vp = v->_mp_d;
+ up = PTR (u);
+ vp = PTR (v);
#define STRICT_MPF_NORMALIZATION 0
#if ! STRICT_MPF_NORMALIZATION
/* Ignore zeroes at the low end of U and V. */
- while (up[0] == 0)
- {
- up++;
- usize--;
- }
- while (vp[0] == 0)
- {
- vp++;
- vsize--;
- }
+ do {
+ mp_limb_t tl;
+ tl = up[0];
+ MPN_STRIP_LOW_ZEROS_NOT_ZERO (up, usize, tl);
+ tl = vp[0];
+ MPN_STRIP_LOW_ZEROS_NOT_ZERO (vp, vsize, tl);
+ } while (0);
#endif
if (usize > vsize)
{
cmp = mpn_cmp (up + usize - vsize, vp, vsize);
- if (cmp == 0)
- return usign;
+ /* if (cmp == 0) */
+ /* return usign; */
+ ++cmp;
}
else if (vsize > usize)
{
cmp = mpn_cmp (up, vp + vsize - usize, usize);
- if (cmp == 0)
- return -usign;
+ /* if (cmp == 0) */
+ /* return -usign; */
}
else
{
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/cmp_d.c b/Build/source/libs/gmp/gmp-src/mpf/cmp_d.c
index 52893a781ec..52893a781ec 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/cmp_d.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/cmp_d.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/cmp_si.c b/Build/source/libs/gmp/gmp-src/mpf/cmp_si.c
index eaa8b87da9b..3bf98211ddb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/cmp_si.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/cmp_si.c
@@ -1,6 +1,7 @@
/* mpf_cmp_si -- Compare a float with a signed integer.
-Copyright 1993-1995, 1999-2002, 2004, 2012 Free Software Foundation, Inc.
+Copyright 1993-1995, 1999-2002, 2004, 2012, 2015 Free Software
+Foundation, Inc.
This file is part of the GNU MP Library.
@@ -41,8 +42,7 @@ mpf_cmp_si (mpf_srcptr u, long int vval) __GMP_NOTHROW
int usign;
unsigned long abs_vval;
- uexp = u->_mp_exp;
- usize = u->_mp_size;
+ usize = SIZ (u);
/* 1. Are the signs different? */
if ((usize < 0) == (vval < 0)) /* don't use xor, type size may differ */
@@ -64,49 +64,41 @@ mpf_cmp_si (mpf_srcptr u, long int vval) __GMP_NOTHROW
/* U and V have the same sign and are both non-zero. */
+ /* 2. Are the exponents different (V's exponent == 1)? */
+ uexp = EXP (u);
usign = usize >= 0 ? 1 : -1;
usize = ABS (usize);
abs_vval = ABS_CAST (unsigned long, vval);
- /* 2. Are the exponents different (V's exponent == 1)? */
#if GMP_NAIL_BITS != 0
- if (uexp > 1 + (abs_vval > GMP_NUMB_MAX))
- return usign;
- if (uexp < 1 + (abs_vval > GMP_NUMB_MAX))
- return -usign;
+ if (uexp != 1 + (abs_vval > GMP_NUMB_MAX))
+ return (uexp < 1 + (abs_vval > GMP_NUMB_MAX)) ? -usign : usign;
#else
- if (uexp > 1)
- return usign;
- if (uexp < 1)
- return -usign;
+ if (uexp != 1)
+ return (uexp < 1) ? -usign : usign;
#endif
- up = u->_mp_d;
+ up = PTR (u);
- ulimb = up[usize - 1];
+ ASSERT (usize > 0);
+ ulimb = up[--usize];
#if GMP_NAIL_BITS != 0
- if (usize >= 2 && uexp == 2)
+ if (uexp == 2)
{
if ((ulimb >> GMP_NAIL_BITS) != 0)
return usign;
- ulimb = (ulimb << GMP_NUMB_BITS) | up[usize - 2];
- usize--;
+ ulimb = (ulimb << GMP_NUMB_BITS);
+ if (usize != 0) ulimb |= up[--usize];
}
#endif
- usize--;
/* 3. Compare the most significant mantissa limb with V. */
- if (ulimb > abs_vval)
- return usign;
- else if (ulimb < abs_vval)
- return -usign;
+ if (ulimb != abs_vval)
+ return (ulimb < abs_vval) ? -usign : usign;
/* Ignore zeroes at the low end of U. */
- while (*up == 0)
- {
- up++;
- usize--;
- }
+ for (; *up == 0; ++up)
+ --usize;
/* 4. Now, if the number of limbs are different, we have a difference
since we have made sure the trailing limbs are not zero. */
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/cmp_ui.c b/Build/source/libs/gmp/gmp-src/mpf/cmp_ui.c
index ccb76c6ce0a..198eb21e517 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/cmp_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/cmp_ui.c
@@ -1,6 +1,6 @@
/* mpf_cmp_ui -- Compare a float with an unsigned integer.
-Copyright 1993-1995, 1999, 2001, 2002 Free Software Foundation, Inc.
+Copyright 1993-1995, 1999, 2001, 2002, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -39,8 +39,7 @@ mpf_cmp_ui (mpf_srcptr u, unsigned long int vval) __GMP_NOTHROW
mp_exp_t uexp;
mp_limb_t ulimb;
- uexp = u->_mp_exp;
- usize = u->_mp_size;
+ usize = SIZ (u);
/* 1. Is U negative? */
if (usize < 0)
@@ -51,50 +50,39 @@ mpf_cmp_ui (mpf_srcptr u, unsigned long int vval) __GMP_NOTHROW
return usize != 0;
/* 2. Are the exponents different (V's exponent == 1)? */
+ uexp = EXP (u);
+
#if GMP_NAIL_BITS != 0
- if (uexp > 1 + (vval > GMP_NUMB_MAX))
- return 1;
- if (uexp < 1 + (vval > GMP_NUMB_MAX))
- return -1;
+ if (uexp != 1 + (vval > GMP_NUMB_MAX))
+ return (uexp < 1 + (vval > GMP_NUMB_MAX)) ? -1 : 1;
#else
- if (uexp > 1)
- return 1;
- if (uexp < 1)
- return -1;
+ if (uexp != 1)
+ return (uexp < 1) ? -1 : 1;
#endif
- up = u->_mp_d;
+ up = PTR (u);
- ulimb = up[usize - 1];
+ ASSERT (usize > 0);
+ ulimb = up[--usize];
#if GMP_NAIL_BITS != 0
- if (usize >= 2 && uexp == 2)
+ if (uexp == 2)
{
if ((ulimb >> GMP_NAIL_BITS) != 0)
return 1;
- ulimb = (ulimb << GMP_NUMB_BITS) | up[usize - 2];
- usize--;
+ ulimb = (ulimb << GMP_NUMB_BITS);
+ if (usize != 0) ulimb |= up[--usize];
}
#endif
- usize--;
/* 3. Compare the most significant mantissa limb with V. */
- if (ulimb > vval)
- return 1;
- else if (ulimb < vval)
- return -1;
+ if (ulimb != vval)
+ return (ulimb < vval) ? -1 : 1;
/* Ignore zeroes at the low end of U. */
- while (*up == 0)
- {
- up++;
- usize--;
- }
+ for (; *up == 0; ++up)
+ --usize;
/* 4. Now, if the number of limbs are different, we have a difference
since we have made sure the trailing limbs are not zero. */
- if (usize > 0)
- return 1;
-
- /* Wow, we got zero even if we tried hard to avoid it. */
- return 0;
+ return (usize > 0);
}
diff --git a/Build/source/libs/gmp/gmp-src/mpf/cmp_z.c b/Build/source/libs/gmp/gmp-src/mpf/cmp_z.c
new file mode 100644
index 00000000000..e9c1559d6a8
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpf/cmp_z.c
@@ -0,0 +1,46 @@
+/* mpf_cmp_z -- Compare a float with an integer.
+
+Copyright 2015 Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#include "gmp.h"
+#include "gmp-impl.h"
+
+int
+mpf_cmp_z (mpf_srcptr u, mpz_srcptr v) __GMP_NOTHROW
+{
+ mpf_t vf;
+ mp_size_t size;
+
+ SIZ (vf) = size = SIZ (v);
+ EXP (vf) = size = ABS (size);
+ /* PREC (vf) = size; */
+ PTR (vf) = PTR (v);
+
+ return mpf_cmp (u, vf);
+}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/div.c b/Build/source/libs/gmp/gmp-src/mpf/div.c
index af38cb8698f..af38cb8698f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/div.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/div.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/div_2exp.c b/Build/source/libs/gmp/gmp-src/mpf/div_2exp.c
index fef81520503..fef81520503 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/div_2exp.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/div_2exp.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/div_ui.c b/Build/source/libs/gmp/gmp-src/mpf/div_ui.c
index 9be7e680bef..9be7e680bef 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/div_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/div_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/dump.c b/Build/source/libs/gmp/gmp-src/mpf/dump.c
index af671059237..af671059237 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/dump.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/dump.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/eq.c b/Build/source/libs/gmp/gmp-src/mpf/eq.c
index 30c6befd061..30c6befd061 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/eq.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/eq.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/fits_s.h b/Build/source/libs/gmp/gmp-src/mpf/fits_s.h
index ec2635f6569..25f323e255c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/fits_s.h
+++ b/Build/source/libs/gmp/gmp-src/mpf/fits_s.h
@@ -1,6 +1,6 @@
/* mpf_fits_s*_p -- test whether an mpf fits a C signed type.
-Copyright 2001, 2002 Free Software Foundation, Inc.
+Copyright 2001, 2002, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -42,14 +42,11 @@ FUNCTION (mpf_srcptr f) __GMP_NOTHROW
mp_exp_t exp;
mp_limb_t fl;
- fs = SIZ(f);
- if (fs == 0)
- return 1; /* zero fits */
-
exp = EXP(f);
if (exp < 1)
return 1; /* -1 < f < 1 truncates to zero, so fits */
+ fs = SIZ (f);
fp = PTR(f);
fn = ABS (fs);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/fits_sint.c b/Build/source/libs/gmp/gmp-src/mpf/fits_sint.c
index 26ace07c380..26ace07c380 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/fits_sint.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/fits_sint.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/fits_slong.c b/Build/source/libs/gmp/gmp-src/mpf/fits_slong.c
index 25db68c47d4..25db68c47d4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/fits_slong.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/fits_slong.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/fits_sshort.c b/Build/source/libs/gmp/gmp-src/mpf/fits_sshort.c
index 3bfc5a4a345..3bfc5a4a345 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/fits_sshort.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/fits_sshort.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/fits_u.h b/Build/source/libs/gmp/gmp-src/mpf/fits_u.h
index 65ac60e09af..be7a271b2fa 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/fits_u.h
+++ b/Build/source/libs/gmp/gmp-src/mpf/fits_u.h
@@ -1,6 +1,6 @@
/* mpf_fits_u*_p -- test whether an mpf fits a C unsigned type.
-Copyright 2001, 2002, 2013 Free Software Foundation, Inc.
+Copyright 2001, 2002, 2013, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -47,8 +47,8 @@ FUNCTION (mpf_srcptr f) __GMP_NOTHROW
return 1; /* -1 < f < 1 truncates to zero, so fits */
fn = SIZ(f);
- if (fn <= 0)
- return fn == 0; /* zero fits, negatives don't */
+ if (fn < 0) /* zero catched by exp == 0 */
+ return 0; /* negatives don't fit */
fp = PTR(f);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/fits_uint.c b/Build/source/libs/gmp/gmp-src/mpf/fits_uint.c
index 4b107b04d89..4b107b04d89 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/fits_uint.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/fits_uint.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/fits_ulong.c b/Build/source/libs/gmp/gmp-src/mpf/fits_ulong.c
index 1db688ce4c6..1db688ce4c6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/fits_ulong.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/fits_ulong.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/fits_ushort.c b/Build/source/libs/gmp/gmp-src/mpf/fits_ushort.c
index 76a3fd9d528..76a3fd9d528 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/fits_ushort.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/fits_ushort.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/get_d.c b/Build/source/libs/gmp/gmp-src/mpf/get_d.c
index 8f6f9bbea1d..8f6f9bbea1d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/get_d.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/get_d.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/get_d_2exp.c b/Build/source/libs/gmp/gmp-src/mpf/get_d_2exp.c
index 17ce229f251..17ce229f251 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/get_d_2exp.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/get_d_2exp.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/get_dfl_prec.c b/Build/source/libs/gmp/gmp-src/mpf/get_dfl_prec.c
index 9a773d83acb..9a773d83acb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/get_dfl_prec.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/get_dfl_prec.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/get_prc.c b/Build/source/libs/gmp/gmp-src/mpf/get_prc.c
index 3b3283a48c5..3b3283a48c5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/get_prc.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/get_prc.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/get_si.c b/Build/source/libs/gmp/gmp-src/mpf/get_si.c
index 5b63dbd4256..5b63dbd4256 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/get_si.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/get_si.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/get_str.c b/Build/source/libs/gmp/gmp-src/mpf/get_str.c
index 98af03272e6..682819daaab 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/get_str.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/get_str.c
@@ -4,7 +4,8 @@
example, the number 3.1416 would be returned as "31416" in DIGIT_PTR and
1 in EXP.
-Copyright 1993-1997, 2000-2003, 2005, 2006, 2011 Free Software Foundation, Inc.
+Copyright 1993-1997, 2000-2003, 2005, 2006, 2011, 2015 Free Software
+Foundation, Inc.
This file is part of the GNU MP Library.
@@ -190,6 +191,15 @@ mpf_get_str (char *dbuf, mp_exp_t *exp, int base, size_t n_digits, mpf_srcptr u)
LIMBS_PER_DIGIT_IN_BASE (n_limbs_needed, n_digits, base);
+ if (un > n_limbs_needed)
+ {
+ up += un - n_limbs_needed;
+ un = n_limbs_needed;
+ }
+
+ TMP_ALLOC_LIMBS_2 (pp, 2 * n_limbs_needed + 4,
+ tp, 2 * n_limbs_needed + 4);
+
if (ue <= n_limbs_needed)
{
/* We need to multiply number by base^n to get an n_digits integer part. */
@@ -199,15 +209,7 @@ mpf_get_str (char *dbuf, mp_exp_t *exp, int base, size_t n_digits, mpf_srcptr u)
n_more_limbs_needed = n_limbs_needed - ue;
DIGITS_IN_BASE_PER_LIMB (e, n_more_limbs_needed, base);
- if (un > n_limbs_needed)
- {
- up += un - n_limbs_needed;
- un = n_limbs_needed;
- }
- pp = TMP_ALLOC_LIMBS (2 * n_limbs_needed + 2);
- tp = TMP_ALLOC_LIMBS (2 * n_limbs_needed + 2);
-
- pn = mpn_pow_1_highpart (pp, &ign, (mp_limb_t) base, e, n_limbs_needed, tp);
+ pn = mpn_pow_1_highpart (pp, &ign, (mp_limb_t) base, e, n_limbs_needed + 1, tp);
if (un > pn)
mpn_mul (tp, up, un, pp, pn); /* FIXME: mpn_mul_highpart */
else
@@ -236,15 +238,7 @@ mpf_get_str (char *dbuf, mp_exp_t *exp, int base, size_t n_digits, mpf_srcptr u)
n_less_limbs_needed = ue - n_limbs_needed;
DIGITS_IN_BASE_PER_LIMB (e, n_less_limbs_needed, base);
- if (un > n_limbs_needed)
- {
- up += un - n_limbs_needed;
- un = n_limbs_needed;
- }
- pp = TMP_ALLOC_LIMBS (2 * n_limbs_needed + 2);
- tp = TMP_ALLOC_LIMBS (2 * n_limbs_needed + 2);
-
- pn = mpn_pow_1_highpart (pp, &ign, (mp_limb_t) base, e, n_limbs_needed, tp);
+ pn = mpn_pow_1_highpart (pp, &ign, (mp_limb_t) base, e, n_limbs_needed + 1, tp);
xn = n_limbs_needed + (n_less_limbs_needed-ign);
xp = TMP_ALLOC_LIMBS (xn);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/get_ui.c b/Build/source/libs/gmp/gmp-src/mpf/get_ui.c
index eb9b30e69c0..eb9b30e69c0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/get_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/get_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/init.c b/Build/source/libs/gmp/gmp-src/mpf/init.c
index d8590f27a71..0e428d3d44c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/init.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/init.c
@@ -38,5 +38,5 @@ mpf_init (mpf_ptr r)
r->_mp_size = 0;
r->_mp_exp = 0;
r->_mp_prec = prec;
- r->_mp_d = (mp_ptr) (*__gmp_allocate_func) ((size_t) (prec + 1) * GMP_LIMB_BYTES);
+ r->_mp_d = __GMP_ALLOCATE_FUNC_LIMBS (prec + 1);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/init2.c b/Build/source/libs/gmp/gmp-src/mpf/init2.c
index a7891e33dd3..72c87260885 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/init2.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/init2.c
@@ -40,5 +40,5 @@ mpf_init2 (mpf_ptr r, mp_bitcnt_t prec_in_bits)
r->_mp_size = 0;
r->_mp_exp = 0;
r->_mp_prec = prec;
- r->_mp_d = (mp_ptr) (*__gmp_allocate_func) ((size_t) (prec + 1) * GMP_LIMB_BYTES);
+ r->_mp_d = __GMP_ALLOCATE_FUNC_LIMBS (prec + 1);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/inits.c b/Build/source/libs/gmp/gmp-src/mpf/inits.c
index fb14c6b0fd8..db7cacc4258 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/inits.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/inits.c
@@ -1,6 +1,6 @@
/* mpf_inits() -- Initialize multiple mpf_t variables and set them to 0.
-Copyright 2009 Free Software Foundation, Inc.
+Copyright 2009, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -29,7 +29,6 @@ GNU Lesser General Public License along with the GNU MP Library. If not,
see https://www.gnu.org/licenses/. */
#include <stdarg.h>
-#include <stdio.h> /* for NULL */
#include "gmp.h"
#include "gmp-impl.h"
@@ -45,5 +44,6 @@ mpf_inits (mpf_ptr x, ...)
mpf_init (x);
x = va_arg (ap, mpf_ptr);
}
+
va_end (ap);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/inp_str.c b/Build/source/libs/gmp/gmp-src/mpf/inp_str.c
index 45cc34cebba..45cc34cebba 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/inp_str.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/inp_str.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/int_p.c b/Build/source/libs/gmp/gmp-src/mpf/int_p.c
index 91e62266bef..e0e337d2f8f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/int_p.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/int_p.c
@@ -1,7 +1,7 @@
/* mpf_integer_p -- test whether an mpf is an integer */
/*
-Copyright 2001, 2002 Free Software Foundation, Inc.
+Copyright 2001, 2002, 2014-2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -36,24 +36,21 @@ see https://www.gnu.org/licenses/. */
int
mpf_integer_p (mpf_srcptr f) __GMP_NOTHROW
{
- mp_srcptr ptr;
+ mp_srcptr fp;
mp_exp_t exp;
- mp_size_t size, frac, i;
+ mp_size_t size;
size = SIZ (f);
- if (size == 0)
- return 1; /* zero is an integer */
-
exp = EXP (f);
if (exp <= 0)
- return 0; /* has only fraction limbs */
+ return (size == 0); /* zero is an integer,
+ others have only fraction limbs */
+ size = ABS (size);
- /* any fraction limbs must be zero */
- frac = ABS (size) - exp;
- ptr = PTR (f);
- for (i = 0; i < frac; i++)
- if (ptr[i] != 0)
- return 0;
+ /* Ignore zeroes at the low end of F. */
+ for (fp = PTR (f); *fp == 0; ++fp)
+ --size;
- return 1;
+ /* no fraction limbs */
+ return size <= exp;
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/iset.c b/Build/source/libs/gmp/gmp-src/mpf/iset.c
index c8c35e50e9f..246f367488b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/iset.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/iset.c
@@ -39,7 +39,7 @@ mpf_init_set (mpf_ptr r, mpf_srcptr s)
mp_size_t prec;
prec = __gmp_default_fp_limb_precision;
- r->_mp_d = (mp_ptr) (*__gmp_allocate_func) ((size_t) (prec + 1) * GMP_LIMB_BYTES);
+ r->_mp_d = __GMP_ALLOCATE_FUNC_LIMBS (prec + 1);
r->_mp_prec = prec;
prec++; /* lie not to lose precision in assignment */
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/iset_d.c b/Build/source/libs/gmp/gmp-src/mpf/iset_d.c
index d128db9b4d3..e3492e36179 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/iset_d.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/iset_d.c
@@ -36,7 +36,7 @@ mpf_init_set_d (mpf_ptr r, double val)
{
mp_size_t prec = __gmp_default_fp_limb_precision;
r->_mp_prec = prec;
- r->_mp_d = (mp_ptr) (*__gmp_allocate_func) ((size_t) (prec + 1) * GMP_LIMB_BYTES);
+ r->_mp_d = __GMP_ALLOCATE_FUNC_LIMBS (prec + 1);
mpf_set_d (r, val);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/iset_si.c b/Build/source/libs/gmp/gmp-src/mpf/iset_si.c
index f7e9005086c..179f80c9151 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/iset_si.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/iset_si.c
@@ -40,7 +40,7 @@ mpf_init_set_si (mpf_ptr r, long int val)
mp_limb_t vl;
r->_mp_prec = prec;
- r->_mp_d = (mp_ptr) (*__gmp_allocate_func) ((size_t) (prec + 1) * GMP_LIMB_BYTES);
+ r->_mp_d = __GMP_ALLOCATE_FUNC_LIMBS (prec + 1);
vl = (mp_limb_t) ABS_CAST (unsigned long int, val);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/iset_str.c b/Build/source/libs/gmp/gmp-src/mpf/iset_str.c
index a181f80c935..5cb42917685 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/iset_str.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/iset_str.c
@@ -38,7 +38,7 @@ mpf_init_set_str (mpf_ptr r, const char *s, int base)
r->_mp_size = 0;
r->_mp_exp = 0;
r->_mp_prec = prec;
- r->_mp_d = (mp_ptr) (*__gmp_allocate_func) ((size_t) (prec + 1) * GMP_LIMB_BYTES);
+ r->_mp_d = __GMP_ALLOCATE_FUNC_LIMBS (prec + 1);
return mpf_set_str (r, s, base);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/iset_ui.c b/Build/source/libs/gmp/gmp-src/mpf/iset_ui.c
index f047982116e..3f48cbd685c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/iset_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/iset_ui.c
@@ -38,7 +38,7 @@ mpf_init_set_ui (mpf_ptr r, unsigned long int val)
mp_size_t size;
r->_mp_prec = prec;
- r->_mp_d = (mp_ptr) (*__gmp_allocate_func) ((size_t) (prec + 1) * GMP_LIMB_BYTES);
+ r->_mp_d = __GMP_ALLOCATE_FUNC_LIMBS (prec + 1);
r->_mp_d[0] = val & GMP_NUMB_MASK;
size = (val != 0);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/mul.c b/Build/source/libs/gmp/gmp-src/mpf/mul.c
index 41d1db7c14a..5bde28c4b2f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/mul.c
@@ -38,9 +38,7 @@ mpf_mul (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)
mp_size_t usize, vsize;
mp_size_t sign_product;
mp_size_t prec = r->_mp_prec;
- TMP_DECL;
- TMP_MARK;
usize = u->_mp_size;
vsize = v->_mp_size;
sign_product = usize ^ vsize;
@@ -72,7 +70,9 @@ mpf_mul (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)
mp_limb_t cy_limb;
mp_ptr rp, tp;
mp_size_t adj;
+ TMP_DECL;
+ TMP_MARK;
rsize = usize + vsize;
tp = TMP_ALLOC_LIMBS (rsize);
cy_limb = (usize >= vsize
@@ -91,6 +91,7 @@ mpf_mul (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)
MPN_COPY (rp, tp, rsize);
r->_mp_exp = u->_mp_exp + v->_mp_exp - adj;
r->_mp_size = sign_product >= 0 ? rsize : -rsize;
+
+ TMP_FREE;
}
- TMP_FREE;
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/mul_2exp.c b/Build/source/libs/gmp/gmp-src/mpf/mul_2exp.c
index 83df2176d3b..83df2176d3b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/mul_2exp.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/mul_2exp.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/mul_ui.c b/Build/source/libs/gmp/gmp-src/mpf/mul_ui.c
index 031b2fe06fe..031b2fe06fe 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/mul_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/mul_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/neg.c b/Build/source/libs/gmp/gmp-src/mpf/neg.c
index 553018f306a..553018f306a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/neg.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/neg.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/out_str.c b/Build/source/libs/gmp/gmp-src/mpf/out_str.c
index 200da748063..200da748063 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/out_str.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/out_str.c
diff --git a/Build/source/libs/gmp/gmp-src/mpf/pow_ui.c b/Build/source/libs/gmp/gmp-src/mpf/pow_ui.c
new file mode 100644
index 00000000000..6d0528bedb2
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpf/pow_ui.c
@@ -0,0 +1,84 @@
+/* mpf_pow_ui -- Compute b^e.
+
+Copyright 1998, 1999, 2001, 2012, 2015 Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#include "gmp.h"
+#include "gmp-impl.h"
+#include "longlong.h"
+
+/* This uses a plain right-to-left square-and-multiply algorithm.
+
+ FIXME: When popcount(e) is not too small, it would probably speed things up
+ to use a k-ary sliding window algorithm. */
+
+void
+mpf_pow_ui (mpf_ptr r, mpf_srcptr b, unsigned long int e)
+{
+ mpf_t t;
+ int cnt;
+
+ if (e <= 1)
+ {
+ if (e == 0)
+ mpf_set_ui (r, 1);
+ else
+ mpf_set (r, b);
+ return;
+ }
+
+ count_leading_zeros (cnt, (mp_limb_t) e);
+ cnt = GMP_LIMB_BITS - 1 - cnt;
+
+ /* Increase computation precision as a function of the exponent. Adding
+ log2(popcount(e) + log2(e)) bits should be sufficient, but we add log2(e),
+ i.e. much more. With mpf's rounding of precision to whole limbs, this
+ will be excessive only when limbs are artificially small. */
+ mpf_init2 (t, mpf_get_prec (r) + cnt);
+
+ mpf_set (t, b); /* consume most significant bit */
+ while (--cnt > 0)
+ {
+ mpf_mul (t, t, t);
+ if ((e >> cnt) & 1)
+ mpf_mul (t, t, b);
+ }
+
+ /* Do the last iteration specially in order to save a copy operation. */
+ if (e & 1)
+ {
+ mpf_mul (t, t, t);
+ mpf_mul (r, t, b);
+ }
+ else
+ {
+ mpf_mul (r, t, t);
+ }
+
+ mpf_clear (t);
+}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/random2.c b/Build/source/libs/gmp/gmp-src/mpf/random2.c
index 4d7f37e976d..4d7f37e976d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/random2.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/random2.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/reldiff.c b/Build/source/libs/gmp/gmp-src/mpf/reldiff.c
index f49da081665..f49da081665 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/reldiff.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/reldiff.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/set.c b/Build/source/libs/gmp/gmp-src/mpf/set.c
index ec8161d779f..ec8161d779f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/set.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/set.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/set_d.c b/Build/source/libs/gmp/gmp-src/mpf/set_d.c
index 100194d1167..100194d1167 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/set_d.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/set_d.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/set_dfl_prec.c b/Build/source/libs/gmp/gmp-src/mpf/set_dfl_prec.c
index 04c9a551354..04c9a551354 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/set_dfl_prec.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/set_dfl_prec.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/set_prc.c b/Build/source/libs/gmp/gmp-src/mpf/set_prc.c
index 30ba06c6e65..30ba06c6e65 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/set_prc.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/set_prc.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/set_prc_raw.c b/Build/source/libs/gmp/gmp-src/mpf/set_prc_raw.c
index 77994422994..77994422994 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/set_prc_raw.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/set_prc_raw.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/set_q.c b/Build/source/libs/gmp/gmp-src/mpf/set_q.c
index c5739b2abec..c5739b2abec 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/set_q.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/set_q.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/set_si.c b/Build/source/libs/gmp/gmp-src/mpf/set_si.c
index 9c47c7511ff..9c47c7511ff 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/set_si.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/set_si.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/set_str.c b/Build/source/libs/gmp/gmp-src/mpf/set_str.c
index 9053accadeb..9053accadeb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/set_str.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/set_str.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/set_ui.c b/Build/source/libs/gmp/gmp-src/mpf/set_ui.c
index 617bce13c14..617bce13c14 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/set_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/set_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/set_z.c b/Build/source/libs/gmp/gmp-src/mpf/set_z.c
index fe91904563d..fe91904563d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/set_z.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/set_z.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/size.c b/Build/source/libs/gmp/gmp-src/mpf/size.c
index c6b22b64cc3..c6b22b64cc3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/size.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/size.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/sqrt.c b/Build/source/libs/gmp/gmp-src/mpf/sqrt.c
index 44502244e24..44502244e24 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/sqrt.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/sqrt.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/sqrt_ui.c b/Build/source/libs/gmp/gmp-src/mpf/sqrt_ui.c
index 82dec7bcb38..f390e2425b8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/sqrt_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/sqrt_ui.c
@@ -1,7 +1,7 @@
/* mpf_sqrt_ui -- Compute the square root of an unsigned integer.
-Copyright 1993, 1994, 1996, 2000, 2001, 2004, 2005 Free Software Foundation,
-Inc.
+Copyright 1993, 1994, 1996, 2000, 2001, 2004, 2005, 2015 Free Software
+Foundation, Inc.
This file is part of the GNU MP Library.
@@ -75,16 +75,16 @@ mpf_sqrt_ui (mpf_ptr r, unsigned long int u)
mp_size_t prec;
TMP_DECL;
- if (UNLIKELY (u == 0))
+ if (UNLIKELY (u <= 1))
{
- r->_mp_size = 0;
- r->_mp_exp = 0;
+ SIZ (r) = EXP (r) = u;
+ *PTR (r) = u;
return;
}
TMP_MARK;
- prec = r->_mp_prec;
+ prec = PREC (r);
zeros = 2 * prec - 2;
rsize = zeros + 1 + U2;
@@ -101,9 +101,9 @@ mpf_sqrt_ui (mpf_ptr r, unsigned long int u)
}
#endif
- mpn_sqrtrem (r->_mp_d, NULL, tp, rsize);
+ mpn_sqrtrem (PTR (r), NULL, tp, rsize);
- r->_mp_size = prec;
- r->_mp_exp = 1;
+ SIZ (r) = prec;
+ EXP (r) = 1;
TMP_FREE;
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/sub.c b/Build/source/libs/gmp/gmp-src/mpf/sub.c
index 3aaf192790a..5fb9ab60cb8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/sub.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/sub.c
@@ -1,6 +1,6 @@
/* mpf_sub -- Subtract two floats.
-Copyright 1993-1996, 1999-2002, 2004, 2005, 2011 Free Software Foundation, Inc.
+Copyright 1993-1996, 1999-2002, 2004, 2005, 2011, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -43,8 +43,8 @@ mpf_sub (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)
int negate;
TMP_DECL;
- usize = u->_mp_size;
- vsize = v->_mp_size;
+ usize = SIZ (u);
+ vsize = SIZ (v);
/* Handle special cases that don't work in generic code below. */
if (usize == 0)
@@ -64,8 +64,8 @@ mpf_sub (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)
{
__mpf_struct v_negated;
v_negated._mp_size = -vsize;
- v_negated._mp_exp = v->_mp_exp;
- v_negated._mp_d = v->_mp_d;
+ v_negated._mp_exp = EXP (v);
+ v_negated._mp_d = PTR (v);
mpf_add (r, u, &v_negated);
return;
}
@@ -76,23 +76,23 @@ mpf_sub (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)
negate = usize < 0;
/* Make U be the operand with the largest exponent. */
- if (u->_mp_exp < v->_mp_exp)
+ if (EXP (u) < EXP (v))
{
mpf_srcptr t;
t = u; u = v; v = t;
negate ^= 1;
- usize = u->_mp_size;
- vsize = v->_mp_size;
+ usize = SIZ (u);
+ vsize = SIZ (v);
}
usize = ABS (usize);
vsize = ABS (vsize);
- up = u->_mp_d;
- vp = v->_mp_d;
- rp = r->_mp_d;
- prec = r->_mp_prec + 1;
- exp = u->_mp_exp;
- ediff = u->_mp_exp - v->_mp_exp;
+ up = PTR (u);
+ vp = PTR (v);
+ rp = PTR (r);
+ prec = PREC (r) + 1;
+ exp = EXP (u);
+ ediff = exp - EXP (v);
/* If ediff is 0 or 1, we might have a situation where the operands are
extremely close. We need to scan the operands from the most significant
@@ -102,10 +102,8 @@ mpf_sub (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)
if (ediff == 0)
{
/* Skip leading limbs in U and V that are equal. */
- if (up[usize - 1] == vp[vsize - 1])
- {
/* This loop normally exits immediately. Optimize for that. */
- do
+ while (up[usize - 1] == vp[vsize - 1])
{
usize--;
vsize--;
@@ -138,8 +136,6 @@ mpf_sub (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)
goto cancellation;
}
}
- while (up[usize - 1] == vp[vsize - 1]);
- }
if (up[usize - 1] < vp[vsize - 1])
{
@@ -192,8 +188,7 @@ mpf_sub (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)
exp--;
}
}
-
- if (usize > prec - 1)
+ else if (usize > prec - 1)
{
up += usize - (prec - 1);
usize = prec - 1;
@@ -209,32 +204,18 @@ mpf_sub (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)
mp_limb_t cy_limb;
if (vsize == 0)
{
- mp_size_t size, i;
- size = usize;
- for (i = 0; i < size; i++)
- tp[i] = up[i];
- tp[size] = 1;
- rsize = size + 1;
+ MPN_COPY (tp, up, usize);
+ tp[usize] = 1;
+ rsize = usize + 1;
exp++;
- goto normalize;
+ goto normalized;
}
if (usize == 0)
{
- mp_size_t size, i;
- size = vsize;
- for (i = 0; i < size; i++)
- tp[i] = ~vp[i] & GMP_NUMB_MASK;
- cy_limb = 1 - mpn_add_1 (tp, tp, vsize, (mp_limb_t) 1);
+ cy_limb = mpn_neg (tp, vp, vsize);
rsize = vsize;
- if (cy_limb == 0)
- {
- tp[rsize] = 1;
- rsize++;
- exp++;
- }
- goto normalize;
}
- if (usize >= vsize)
+ else if (usize >= vsize)
{
/* uuuu */
/* vv */
@@ -248,13 +229,10 @@ mpf_sub (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)
{
/* uuuu */
/* vvvvvvv */
- mp_size_t size, i;
+ mp_size_t size;
size = vsize - usize;
- for (i = 0; i < size; i++)
- tp[i] = ~vp[i] & GMP_NUMB_MASK;
- cy_limb = mpn_sub_n (tp + size, up, vp + size, usize);
- cy_limb+= mpn_sub_1 (tp + size, tp + size, usize, (mp_limb_t) 1);
- cy_limb-= mpn_add_1 (tp, tp, vsize, (mp_limb_t) 1);
+ cy_limb = mpn_neg (tp, vp, size);
+ cy_limb = mpn_sub_nc (tp + size, up, vp + size, usize, cy_limb);
rsize = vsize;
}
if (cy_limb == 0)
@@ -262,6 +240,7 @@ mpf_sub (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)
tp[rsize] = 1;
rsize++;
exp++;
+ goto normalized;
}
goto normalize;
}
@@ -348,13 +327,10 @@ general_case:
{
/* uuuu */
/* vvvvvvv */
- mp_size_t size, i;
+ mp_size_t size;
size = vsize - usize;
- tp[0] = -vp[0] & GMP_NUMB_MASK;
- for (i = 1; i < size; i++)
- tp[i] = ~vp[i] & GMP_NUMB_MASK;
- mpn_sub_n (tp + size, up, vp + size, usize);
- mpn_sub_1 (tp + size, tp + size, usize, (mp_limb_t) 1);
+ ASSERT_CARRY (mpn_neg (tp, vp, size));
+ mpn_sub_nc (tp + size, up, vp + size, usize, CNST_LIMB (1));
rsize = vsize;
}
}
@@ -374,14 +350,13 @@ general_case:
{
/* uuuu */
/* vvvvv */
- mp_size_t size, i;
- size = vsize + ediff - usize;
- tp[0] = -vp[0] & GMP_NUMB_MASK;
- for (i = 1; i < size; i++)
- tp[i] = ~vp[i] & GMP_NUMB_MASK;
- mpn_sub (tp + size, up, usize, vp + size, usize - ediff);
- mpn_sub_1 (tp + size, tp + size, usize, (mp_limb_t) 1);
+ mp_size_t size;
rsize = vsize + ediff;
+ size = rsize - usize;
+ ASSERT_CARRY (mpn_neg (tp, vp, size));
+ mpn_sub (tp + size, up, usize, vp + size, usize - ediff);
+ /* Should we use sub_nc then sub_1? */
+ MPN_DECR_U (tp + size, usize, CNST_LIMB (1));
}
}
}
@@ -391,9 +366,7 @@ general_case:
/* vv */
mp_size_t size, i;
size = vsize + ediff - usize;
- tp[0] = -vp[0] & GMP_NUMB_MASK;
- for (i = 1; i < vsize; i++)
- tp[i] = ~vp[i] & GMP_NUMB_MASK;
+ ASSERT_CARRY (mpn_neg (tp, vp, vsize));
for (i = vsize; i < size; i++)
tp[i] = GMP_NUMB_MAX;
mpn_sub_1 (tp + size, up, usize, (mp_limb_t) 1);
@@ -407,13 +380,17 @@ general_case:
rsize--;
exp--;
}
+ normalized:
MPN_COPY (rp, tp, rsize);
}
done:
- r->_mp_size = negate ? -rsize : rsize;
- if (rsize == 0)
- exp = 0;
- r->_mp_exp = exp;
TMP_FREE;
+ if (rsize == 0) {
+ SIZ (r) = 0;
+ EXP (r) = 0;
+ } else {
+ SIZ (r) = negate ? -rsize : rsize;
+ EXP (r) = exp;
+ }
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/sub_ui.c b/Build/source/libs/gmp/gmp-src/mpf/sub_ui.c
index cf9b88eb004..cf9b88eb004 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/sub_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/sub_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/swap.c b/Build/source/libs/gmp/gmp-src/mpf/swap.c
index a3706528763..a3706528763 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/swap.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/swap.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/trunc.c b/Build/source/libs/gmp/gmp-src/mpf/trunc.c
index 5f94f7aec85..5f94f7aec85 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/trunc.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/trunc.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/ui_div.c b/Build/source/libs/gmp/gmp-src/mpf/ui_div.c
index ceb881ebcc2..ceb881ebcc2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/ui_div.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/ui_div.c
diff --git a/Build/source/libs/gmp/gmp-src/mpf/ui_sub.c b/Build/source/libs/gmp/gmp-src/mpf/ui_sub.c
new file mode 100644
index 00000000000..71050246622
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpf/ui_sub.c
@@ -0,0 +1,282 @@
+/* mpf_ui_sub -- Subtract a float from an unsigned long int.
+
+Copyright 1993-1996, 2001, 2002, 2005, 2014 Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#include "gmp.h"
+#include "gmp-impl.h"
+
+void
+mpf_ui_sub (mpf_ptr r, unsigned long int u, mpf_srcptr v)
+{
+#if 1
+ __mpf_struct uu;
+ mp_limb_t ul;
+
+ if (u == 0)
+ {
+ mpf_neg (r, v);
+ return;
+ }
+
+ ul = u;
+ uu._mp_size = 1;
+ uu._mp_d = &ul;
+ uu._mp_exp = 1;
+ mpf_sub (r, &uu, v);
+
+#else
+ mp_srcptr up, vp;
+ mp_ptr rp, tp;
+ mp_size_t usize, vsize, rsize;
+ mp_size_t prec;
+ mp_exp_t uexp;
+ mp_size_t ediff;
+ int negate;
+ mp_limb_t ulimb;
+ TMP_DECL;
+
+ vsize = v->_mp_size;
+
+ /* Handle special cases that don't work in generic code below. */
+ if (u == 0)
+ {
+ mpf_neg (r, v);
+ return;
+ }
+ if (vsize == 0)
+ {
+ mpf_set_ui (r, u);
+ return;
+ }
+
+ /* If signs of U and V are different, perform addition. */
+ if (vsize < 0)
+ {
+ __mpf_struct v_negated;
+ v_negated._mp_size = -vsize;
+ v_negated._mp_exp = v->_mp_exp;
+ v_negated._mp_d = v->_mp_d;
+ mpf_add_ui (r, &v_negated, u);
+ return;
+ }
+
+ /* Signs are now known to be the same. */
+ ASSERT (vsize > 0);
+ ulimb = u;
+ /* Make U be the operand with the largest exponent. */
+ negate = 1 < v->_mp_exp;
+ prec = r->_mp_prec + negate;
+ rp = r->_mp_d;
+ if (negate)
+ {
+ usize = vsize;
+ vsize = 1;
+ up = v->_mp_d;
+ vp = &ulimb;
+ uexp = v->_mp_exp;
+ ediff = uexp - 1;
+
+ /* If U extends beyond PREC, ignore the part that does. */
+ if (usize > prec)
+ {
+ up += usize - prec;
+ usize = prec;
+ }
+ ASSERT (ediff > 0);
+ }
+ else
+ {
+ vp = v->_mp_d;
+ ediff = 1 - v->_mp_exp;
+ /* Ignore leading limbs in U and V that are equal. Doing
+ this helps increase the precision of the result. */
+ if (ediff == 0 && ulimb == vp[vsize - 1])
+ {
+ usize = 0;
+ vsize--;
+ uexp = 0;
+ /* Note that V might now have leading zero limbs.
+ In that case we have to adjust uexp. */
+ for (;;)
+ {
+ if (vsize == 0) {
+ rsize = 0;
+ uexp = 0;
+ goto done;
+ }
+ if ( vp[vsize - 1] != 0)
+ break;
+ vsize--, uexp--;
+ }
+ }
+ else
+ {
+ usize = 1;
+ uexp = 1;
+ up = &ulimb;
+ }
+ ASSERT (usize <= prec);
+ }
+
+ if (ediff >= prec)
+ {
+ /* V completely cancelled. */
+ if (rp != up)
+ MPN_COPY (rp, up, usize);
+ rsize = usize;
+ }
+ else
+ {
+ /* If V extends beyond PREC, ignore the part that does.
+ Note that this can make vsize neither zero nor negative. */
+ if (vsize + ediff > prec)
+ {
+ vp += vsize + ediff - prec;
+ vsize = prec - ediff;
+ }
+
+ /* Locate the least significant non-zero limb in (the needed
+ parts of) U and V, to simplify the code below. */
+ ASSERT (vsize > 0);
+ for (;;)
+ {
+ if (vp[0] != 0)
+ break;
+ vp++, vsize--;
+ if (vsize == 0)
+ {
+ MPN_COPY (rp, up, usize);
+ rsize = usize;
+ goto done;
+ }
+ }
+ for (;;)
+ {
+ if (usize == 0)
+ {
+ MPN_COPY (rp, vp, vsize);
+ rsize = vsize;
+ negate ^= 1;
+ goto done;
+ }
+ if (up[0] != 0)
+ break;
+ up++, usize--;
+ }
+
+ ASSERT (usize > 0 && vsize > 0);
+ TMP_MARK;
+
+ tp = TMP_ALLOC_LIMBS (prec);
+
+ /* uuuu | uuuu | uuuu | uuuu | uuuu */
+ /* vvvvvvv | vv | vvvvv | v | vv */
+
+ if (usize > ediff)
+ {
+ /* U and V partially overlaps. */
+ if (ediff == 0)
+ {
+ ASSERT (usize == 1 && vsize >= 1 && ulimb == *up); /* usize is 1>ediff, vsize >= 1 */
+ if (1 < vsize)
+ {
+ /* u */
+ /* vvvvvvv */
+ rsize = vsize;
+ vsize -= 1;
+ /* mpn_cmp (up, vp + vsize - usize, usize) > 0 */
+ if (ulimb > vp[vsize])
+ {
+ tp[vsize] = ulimb - vp[vsize] - 1;
+ ASSERT_CARRY (mpn_neg (tp, vp, vsize));
+ }
+ else
+ {
+ /* vvvvvvv */ /* Swap U and V. */
+ /* u */
+ MPN_COPY (tp, vp, vsize);
+ tp[vsize] = vp[vsize] - ulimb;
+ negate = 1;
+ }
+ }
+ else /* vsize == usize == 1 */
+ {
+ /* u */
+ /* v */
+ rsize = 1;
+ negate = ulimb < vp[0];
+ tp[0] = negate ? vp[0] - ulimb: ulimb - vp[0];
+ }
+ }
+ else
+ {
+ ASSERT (vsize + ediff <= usize);
+ ASSERT (vsize == 1 && usize >= 2 && ulimb == *vp);
+ {
+ /* uuuu */
+ /* v */
+ mp_size_t size;
+ size = usize - ediff - 1;
+ MPN_COPY (tp, up, size);
+ ASSERT_NOCARRY (mpn_sub_1 (tp + size, up + size, usize - size, ulimb));
+ rsize = usize;
+ }
+ /* Other cases are not possible */
+ /* uuuu */
+ /* vvvvv */
+ }
+ }
+ else
+ {
+ /* uuuu */
+ /* vv */
+ mp_size_t size, i;
+ ASSERT_CARRY (mpn_neg (tp, vp, vsize));
+ rsize = vsize + ediff;
+ size = rsize - usize;
+ for (i = vsize; i < size; i++)
+ tp[i] = GMP_NUMB_MAX;
+ ASSERT_NOCARRY (mpn_sub_1 (tp + size, up, usize, CNST_LIMB (1)));
+ }
+
+ /* Full normalize. Optimize later. */
+ while (rsize != 0 && tp[rsize - 1] == 0)
+ {
+ rsize--;
+ uexp--;
+ }
+ MPN_COPY (rp, tp, rsize);
+ TMP_FREE;
+ }
+
+ done:
+ r->_mp_size = negate ? -rsize : rsize;
+ r->_mp_exp = uexp;
+#endif
+}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/urandomb.c b/Build/source/libs/gmp/gmp-src/mpf/urandomb.c
index 72271e8762a..72271e8762a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/urandomb.c
+++ b/Build/source/libs/gmp/gmp-src/mpf/urandomb.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/Makeasm.am b/Build/source/libs/gmp/gmp-src/mpn/Makeasm.am
index 5d7306c221e..5d7306c221e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/Makeasm.am
+++ b/Build/source/libs/gmp/gmp-src/mpn/Makeasm.am
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/Makefile.am b/Build/source/libs/gmp/gmp-src/mpn/Makefile.am
index 20b8a4a1168..fc54483ee5f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/Makefile.am
+++ b/Build/source/libs/gmp/gmp-src/mpn/Makefile.am
@@ -29,7 +29,7 @@
# see https://www.gnu.org/licenses/.
-INCLUDES = -D__GMP_WITHIN_GMP -I$(top_srcdir) \
+AM_CPPFLAGS = -D__GMP_WITHIN_GMP -I$(top_srcdir) \
-DOPERATION_`echo $* | sed 's/_$$//'`
OFILES = @mpn_objects@
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/README b/Build/source/libs/gmp/gmp-src/mpn/README
index bc046be7322..bc046be7322 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/README b/Build/source/libs/gmp/gmp-src/mpn/alpha/README
index 09c2f040473..09c2f040473 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/add_n.asm
index bc572a57a90..bc572a57a90 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/addmul_1.asm
index c4e6834b615..c4e6834b615 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/alpha-defs.m4 b/Build/source/libs/gmp/gmp-src/mpn/alpha/alpha-defs.m4
index af34c9294c9..af34c9294c9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/alpha-defs.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/alpha-defs.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/aorslsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/aorslsh1_n.asm
index 9525e669db2..9525e669db2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/aorslsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/aorslsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/aorslsh2_n.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/aorslsh2_n.asm
index bdee1d6d021..bdee1d6d021 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/aorslsh2_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/aorslsh2_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/bdiv_dbm1c.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/bdiv_dbm1c.asm
index 472966ca98e..472966ca98e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/bdiv_dbm1c.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/bdiv_dbm1c.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/cntlz.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/cntlz.asm
index 25af19b1316..25af19b1316 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/cntlz.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/cntlz.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/com.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/com.asm
index f084ab5e961..f084ab5e961 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/com.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/com.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/copyd.asm
index b41b5366cc5..b41b5366cc5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/copyi.asm
index f7e2ad6f6a9..f7e2ad6f6a9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/default.m4 b/Build/source/libs/gmp/gmp-src/mpn/alpha/default.m4
index 8fe7c4e1223..8fe7c4e1223 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/default.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/default.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/dive_1.c b/Build/source/libs/gmp/gmp-src/mpn/alpha/dive_1.c
index 88b82db2f73..88b82db2f73 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/dive_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/dive_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/divrem_2.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/divrem_2.asm
index 046b246a95e..046b246a95e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/divrem_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/divrem_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev5/diveby3.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev5/diveby3.asm
index 3758188e020..3758188e020 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev5/diveby3.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev5/diveby3.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev5/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev5/gmp-mparam.h
index b560c20afec..b560c20afec 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev5/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev5/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/add_n.asm
index 9261f31b8a1..9261f31b8a1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/aorslsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/aorslsh1_n.asm
index cb966ce0213..cb966ce0213 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/aorslsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/aorslsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/aorsmul_1.asm
index 0e68e6e7adb..0e68e6e7adb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/gmp-mparam.h
index e51d6b0d159..e51d6b0d159 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/mod_1_4.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/mod_1_4.asm
index 836de07c0fc..82c42ae4ff0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/mod_1_4.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/mod_1_4.asm
@@ -275,7 +275,7 @@ PROLOGUE(mpn_mod_1s_4p_cps,gp)
sll r17, r10, r9
mov r9, r16
jsr r26, mpn_invert_limb
- ldah r29, 0(r26)
+ LDGP( r29, 0(r26))
subq r31, r10, r2
lda r1, 1(r31)
sll r1, r10, r1
@@ -283,7 +283,6 @@ PROLOGUE(mpn_mod_1s_4p_cps,gp)
srl r0, r2, r2
ldq r26, 0(r30)
bis r2, r1, r2
- lda r29, 0(r29)
stq r0, 0(r11)
stq r10, 8(r11)
mulq r2, r3, r2
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/mul_1.asm
index 8ee19cd429d..8ee19cd429d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/README b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/README
index b214ac50adb..b214ac50adb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/addmul_1.asm
index 711d4e66e5a..711d4e66e5a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_2.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/addmul_2.asm
index 6ff6b3ad6b0..6ff6b3ad6b0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/addmul_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_3.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/addmul_3.asm
index a1ffb680eca..a1ffb680eca 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_3.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/addmul_3.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_4.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/addmul_4.asm
index 77e02a4316f..77e02a4316f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_4.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/addmul_4.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/aors_n.asm
index f6586773f57..f6586773f57 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/gmp-mparam.h
index 7949fe8df89..7949fe8df89 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/mul_1.asm
index da2ee3d0997..da2ee3d0997 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/submul_1.asm
index f473a59ba82..f473a59ba82 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/nails/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/slot.pl b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/slot.pl
index a4c8a36882d..a4c8a36882d 100755
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/slot.pl
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/slot.pl
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/sub_n.asm
index a35ba40d347..a35ba40d347 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev6/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev67/gcd_1.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev67/gcd_1.asm
index 55fa7d36731..55fa7d36731 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev67/gcd_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev67/gcd_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev67/hamdist.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev67/hamdist.asm
index 4b13e9f14f9..4b13e9f14f9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev67/hamdist.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev67/hamdist.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev67/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev67/popcount.asm
index 049c1cd2393..049c1cd2393 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev67/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/ev67/popcount.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/alpha/gmp-mparam.h
index b850bd24b5f..b850bd24b5f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/invert_limb.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/invert_limb.asm
index afc010f58c5..afc010f58c5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/invert_limb.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/invert_limb.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/lshift.asm
index c62a856aea3..c62a856aea3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/mod_34lsub1.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/mod_34lsub1.asm
index 1b03b637d8d..1b03b637d8d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/mod_34lsub1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/mod_34lsub1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/mode1o.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/mode1o.asm
index 96dccc73ee0..96dccc73ee0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/mode1o.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/mode1o.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/mul_1.asm
index a7cdbcf8ebc..a7cdbcf8ebc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/rshift.asm
index 6e1e2145589..6e1e2145589 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/sec_tabselect.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/sec_tabselect.asm
index 679b16926ed..679b16926ed 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/sec_tabselect.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/sec_tabselect.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/sqr_diag_addlsh1.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/sqr_diag_addlsh1.asm
index ee219ef7e8e..ee219ef7e8e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/sqr_diag_addlsh1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/sqr_diag_addlsh1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/sub_n.asm
index 1bb72263f85..1bb72263f85 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/submul_1.asm
index 2b63b52fa40..2b63b52fa40 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/umul.asm b/Build/source/libs/gmp/gmp-src/mpn/alpha/umul.asm
index 039081ed482..039081ed482 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/umul.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/umul.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/unicos.m4 b/Build/source/libs/gmp/gmp-src/mpn/alpha/unicos.m4
index e05cf5cca66..e05cf5cca66 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/unicos.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/alpha/unicos.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/README b/Build/source/libs/gmp/gmp-src/mpn/arm/README
index 598baa3f2e3..53c7214c636 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/README
@@ -1,4 +1,4 @@
-Copyright 2002, 2012 Free Software Foundation, Inc.
+Copyright 2002, 2012, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -31,5 +31,5 @@ see https://www.gnu.org/licenses/.
This directory contains mpn functions for ARM processors. It has been
-optimised for Cortex-A9, but the code in the top-level directory should run
-on all ARM processors at architecture level v4 or later.
+optimised mainly for Cortex-A9 and Cortex-A15, but the code in the top-level
+directory should run on all ARM processors at architecture level v4 or later.
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/aors_n.asm
index fdad9f7ba68..fdad9f7ba68 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/aorslsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/aorslsh1_n.asm
index 1cbd4ba1af4..1cbd4ba1af4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/aorslsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/aorslsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/aorsmul_1.asm
index b02fbb3b2a0..b02fbb3b2a0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/arm-defs.m4 b/Build/source/libs/gmp/gmp-src/mpn/arm/arm-defs.m4
index 6ca964a2459..6ca964a2459 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/arm-defs.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/arm-defs.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/bdiv_dbm1c.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/bdiv_dbm1c.asm
index ec3de50e8e2..ec3de50e8e2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/bdiv_dbm1c.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/bdiv_dbm1c.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/cnd_aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/cnd_aors_n.asm
index e8eb60983af..e8eb60983af 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/cnd_aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/cnd_aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/com.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/com.asm
index 42f8e3cbbe3..42f8e3cbbe3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/com.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/com.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/copyd.asm
index 3ea2035099d..3ea2035099d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/copyi.asm
index fa454702c14..fa454702c14 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/dive_1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/dive_1.asm
index a695e47c77e..ccceb3c3cc3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/dive_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/dive_1.asm
@@ -139,7 +139,7 @@ L(edu): sbc cy, r5, cy
bx r14
EPILOGUE()
- .section .rodata
+ RODATA
ctz_tab:
.byte 8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0
.byte 5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/arm/gmp-mparam.h
index 87eec3a1494..87eec3a1494 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/invert_limb.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/invert_limb.asm
index d4c3afe2da3..06ce1467ced 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/invert_limb.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/invert_limb.asm
@@ -55,7 +55,7 @@ PROLOGUE(mpn_invert_limb)
bx lr
EPILOGUE()
- .section .rodata
+ RODATA
ALIGN(2)
approx_tab:
.short 0xffc0,0xfec0,0xfdc0,0xfcc0,0xfbc0,0xfac0,0xfa00,0xf900
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/logops_n.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/logops_n.asm
index 5a61683fc2e..5a61683fc2e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/logops_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/logops_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/lshift.asm
index 9f777eb4dd8..9f777eb4dd8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/lshiftc.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/lshiftc.asm
index 5f3d6e3f5b7..5f3d6e3f5b7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/lshiftc.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/lshiftc.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/mod_34lsub1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/mod_34lsub1.asm
index ba3c06d8db1..ba3c06d8db1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/mod_34lsub1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/mod_34lsub1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/mode1o.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/mode1o.asm
index 5e0f78fc8f5..5e0f78fc8f5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/mode1o.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/mode1o.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/mul_1.asm
index f7bc1bc386c..f7bc1bc386c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/README b/Build/source/libs/gmp/gmp-src/mpn/arm/neon/README
index 79e3b48ee64..79e3b48ee64 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/neon/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/hamdist.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/neon/hamdist.asm
index 232089647df..232089647df 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/hamdist.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/neon/hamdist.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/lorrshift.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/neon/lorrshift.asm
index 3d6253fd495..3d6253fd495 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/lorrshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/neon/lorrshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/lshiftc.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/neon/lshiftc.asm
index 9e4096256d4..803963049a4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/lshiftc.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/neon/lshiftc.asm
@@ -166,7 +166,7 @@ L(evn): vmvn d17, d17
vshl.u64 d0, d17, d7
vshl.u64 d4, d17, d6
vst1.32 {d2}, [rp:64], r12
- vmvn.u8 d17, #0
+ vmov.u8 d17, #255
vorr d2, d5, d0
vshl.u64 d0, d17, d7
vorr d3, d4, d0
@@ -202,7 +202,7 @@ L(l2): vld1.32 {d16}, [ap], r12
vmvn d16, d16
vshl.u64 d1, d16, d7
vshl.u64 d5, d16, d6
- vmvn.u8 d17, #0
+ vmov.u8 d17, #255
vorr d2, d4, d1
vshl.u64 d0, d17, d7
vorr d3, d5, d0
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/neon/popcount.asm
index 2f8f9afc8d6..2f8f9afc8d6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/neon/popcount.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/sec_tabselect.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/neon/sec_tabselect.asm
index 69fceb00635..69fceb00635 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/sec_tabselect.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/neon/sec_tabselect.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/rsh1aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/rsh1aors_n.asm
index 95c1f79ad9f..95c1f79ad9f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/rsh1aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/rsh1aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/rshift.asm
index 84728d038a7..84728d038a7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/sec_tabselect.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/sec_tabselect.asm
index 8cf937a0917..8cf937a0917 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/sec_tabselect.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/sec_tabselect.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/udiv.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/udiv.asm
index 8d441c74edd..8d441c74edd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/udiv.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/udiv.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v5/gcd_1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v5/gcd_1.asm
index 169d154bf0b..169d154bf0b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v5/gcd_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v5/gcd_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v5/mod_1_1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v5/mod_1_1.asm
index 3cf0cd77636..3cf0cd77636 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v5/mod_1_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v5/mod_1_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v5/mod_1_2.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v5/mod_1_2.asm
index aa26ecb21c1..aa26ecb21c1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v5/mod_1_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v5/mod_1_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/addmul_1.asm
index 57019e4b2b6..a38af58a7df 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/addmul_1.asm
@@ -33,8 +33,9 @@ include(`../config.m4')
C cycles/limb
C StrongARM: -
C XScale -
-C Cortex-A7 ?
-C Cortex-A8 ?
+C ARM11 6.4
+C Cortex-A7 5.25
+C Cortex-A8 7
C Cortex-A9 3.25
C Cortex-A15 4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/addmul_2.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/addmul_2.asm
index 69817ce340d..33eeeec87bb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/addmul_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/addmul_2.asm
@@ -2,7 +2,7 @@ dnl ARM mpn_addmul_2.
dnl Contributed to the GNU project by Torbjörn Granlund.
-dnl Copyright 2012, 2013 Free Software Foundation, Inc.
+dnl Copyright 2012, 2013, 2015 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -35,19 +35,12 @@ include(`../config.m4')
C cycles/limb
C StrongARM: -
C XScale -
-C Cortex-A7 ?
-C Cortex-A8 ?
+C ARM11 4.68
+C Cortex-A7 3.625
+C Cortex-A8 4
C Cortex-A9 2.25
C Cortex-A15 2.5
-C This is believed to be optimal for A15 for any unrolling, and optimal for A9
-C for 4-way unrolling. Using separate pointer update instructions is necessary
-C for optimal A9 speed.
-
-C TODO:
-C * Start the first multiply or multiplies directly at function entry.
-
-
define(`rp',`r0')
define(`up',`r1')
define(`n', `r2')
@@ -64,75 +57,66 @@ define(`cyb',`r12')
ASM_START()
PROLOGUE(mpn_addmul_2)
- push { r4, r5, r6, r7, r8, r9 }
+ push { r4-r9 }
- ldm vp, { v0, v1 }
+ ldrd v0, v1, [vp, #0]
mov cya, #0
mov cyb, #0
tst n, #1
beq L(evn)
-L(odd): ldr r5, [rp, #0]
- ldr u0, [up, #0]
- ldr r4, [rp, #4]
+L(odd): ldr u1, [up, #0]
+ ldr r4, [rp, #0]
tst n, #2
beq L(fi1)
-L(fi3): sub up, up, #12
- sub rp, rp, #12
+L(fi3): sub up, up, #8
+ sub rp, rp, #8
b L(lo3)
L(fi1): sub n, n, #1
- sub up, up, #4
- sub rp, rp, #4
- b L(lo1)
+ b L(top)
-L(evn): ldr r4, [rp, #0]
- ldr u1, [up, #0]
- ldr r5, [rp, #4]
+L(evn): ldr u0, [up, #0]
+ ldr r5, [rp, #0]
tst n, #2
bne L(fi2)
-L(fi0): sub up, up, #8
- sub rp, rp, #8
+L(fi0): sub up, up, #4
+ sub rp, rp, #4
b L(lo0)
-L(fi2): subs n, n, #2
- bls L(end)
+L(fi2): sub up, up, #12
+ sub rp, rp, #12
+ b L(lo2)
ALIGN(16)
-L(top): ldr u0, [up, #4]
+L(top): ldr r5, [rp, #4]
umaal r4, cya, u1, v0
- str r4, [rp, #0]
- ldr r4, [rp, #8]
+ ldr u0, [up, #4]
umaal r5, cyb, u1, v1
-L(lo1): ldr u1, [up, #8]
+ str r4, [rp, #0]
+L(lo0): ldr r4, [rp, #8]
umaal r5, cya, u0, v0
- str r5, [rp, #4]
- ldr r5, [rp, #12]
+ ldr u1, [up, #8]
umaal r4, cyb, u0, v1
-L(lo0): ldr u0, [up, #12]
+ str r5, [rp, #4]
+L(lo3): ldr r5, [rp, #12]
umaal r4, cya, u1, v0
- str r4, [rp, #8]
- ldr r4, [rp, #16]
+ ldr u0, [up, #12]
umaal r5, cyb, u1, v1
-L(lo3): ldr u1, [up, #16]
+ str r4, [rp, #8]
+L(lo2): ldr r4, [rp, #16]!
umaal r5, cya, u0, v0
- str r5, [rp, #12]
- ldr r5, [rp, #20]
- add rp, rp, #16
+ ldr u1, [up, #16]!
umaal r4, cyb, u0, v1
- add up, up, #16
+ str r5, [rp, #-4]
subs n, n, #4
bhi L(top)
L(end): umaal r4, cya, u1, v0
- ldr u0, [up, #4]
- umaal r5, cyb, u1, v1
+ umaal cya, cyb, u1, v1
str r4, [rp, #0]
- umaal r5, cya, u0, v0
- umaal cya, cyb, u0, v1
- str r5, [rp, #4]
- str cya, [rp, #8]
+ str cya, [rp, #4]
mov r0, cyb
- pop { r4, r5, r6, r7, r8, r9 }
+ pop { r4-r9 }
bx r14
EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/addmul_3.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/addmul_3.asm
index 046543020f5..d3d183343d4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/addmul_3.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/addmul_3.asm
@@ -35,8 +35,9 @@ include(`../config.m4')
C cycles/limb
C StrongARM: -
C XScale -
-C Cortex-A7 ?
-C Cortex-A8 ?
+C ARM11 4.33
+C Cortex-A7 3.23
+C Cortex-A8 3.19
C Cortex-A9 2.125
C Cortex-A15 2
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/dive_1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/dive_1.asm
index 92de81473f9..92de81473f9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/dive_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/dive_1.asm
diff --git a/Build/source/libs/gmp/gmp-src/mpn/arm/v6/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/gmp-mparam.h
new file mode 100644
index 00000000000..67e6f777870
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/gmp-mparam.h
@@ -0,0 +1,188 @@
+/* gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 1999-2003, 2009, 2010, 2012, 2015 Free Software
+Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 32
+#define GMP_LIMB_BYTES 4
+
+/* 700 MHz ARM11 (raspberry pi) */
+/* FFT tuning limit = 10 M */
+/* Generated by tuneup.c, 2015-10-05, gcc 4.6 */
+
+#define DIVREM_1_NORM_THRESHOLD 0 /* preinv always */
+#define DIVREM_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 3
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 6
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 0 /* never mpn_mod_1_1p */
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD MP_SIZE_T_MAX
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 19
+#define USE_PREINV_DIVREM_1 1 /* preinv always */
+#define DIV_QR_1N_PI1_METHOD 1
+#define DIV_QR_1_NORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 39
+
+#define MUL_TOOM22_THRESHOLD 44
+#define MUL_TOOM33_THRESHOLD 138
+#define MUL_TOOM44_THRESHOLD 517
+#define MUL_TOOM6H_THRESHOLD 0 /* always */
+#define MUL_TOOM8H_THRESHOLD 692
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 141
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 407
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 132
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 211
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 225
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 56
+#define SQR_TOOM3_THRESHOLD 173
+#define SQR_TOOM4_THRESHOLD 711
+#define SQR_TOOM6_THRESHOLD 0 /* always */
+#define SQR_TOOM8_THRESHOLD 915
+
+#define MULMID_TOOM42_THRESHOLD 70
+
+#define MULMOD_BNM1_THRESHOLD 24
+#define SQRMOD_BNM1_THRESHOLD 28
+
+#define MUL_FFT_MODF_THRESHOLD 560 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 560, 5}, { 27, 6}, { 15, 5}, { 31, 6}, \
+ { 28, 7}, { 15, 6}, { 33, 7}, { 17, 6}, \
+ { 36, 7}, { 19, 6}, { 39, 7}, { 23, 6}, \
+ { 47, 7}, { 25, 6}, { 51, 7}, { 27, 6}, \
+ { 55, 7}, { 29, 8}, { 15, 7}, { 37, 8}, \
+ { 19, 7}, { 43, 8}, { 23, 7}, { 51, 8}, \
+ { 27, 7}, { 55, 8}, { 31, 7}, { 63, 8}, \
+ { 35, 7}, { 71, 8}, { 43, 9}, { 23, 8}, \
+ { 55, 9}, { 31, 8}, { 71, 9}, { 39, 8}, \
+ { 83, 9}, { 47, 8}, { 99, 9}, { 55,10}, \
+ { 31, 9}, { 79,10}, { 47, 9}, { 103,11}, \
+ { 31,10}, { 63, 9}, { 135,10}, { 79, 9}, \
+ { 159,10}, { 95, 9}, { 191,10}, { 111,11}, \
+ { 63,10}, { 159,11}, { 95,10}, { 207,12}, \
+ { 63,11}, { 127,10}, { 255, 9}, { 511,10}, \
+ { 271,11}, { 159,10}, { 335,11}, { 191,10}, \
+ { 399,11}, { 223,12}, { 127,11}, { 255,10}, \
+ { 511,11}, { 287,10}, { 575,11}, { 319,10}, \
+ { 639,11}, { 351,12}, { 191,11}, { 383,10}, \
+ { 767,11}, { 415,13}, { 127,12}, { 255,11}, \
+ { 575,12}, { 319,11}, { 703,12}, { 383,11}, \
+ { 799,12}, { 447,13}, { 255,12}, { 511,11}, \
+ { 1023,12}, { 575,11}, { 1151,12}, { 703,13}, \
+ { 383,12}, { 831,14}, { 255,13}, { 511,12}, \
+ { 1151,13}, { 639,12}, { 1343,13}, { 767,12}, \
+ { 1599,13}, { 895,14}, { 511,13}, { 1023,12}, \
+ { 2111,13}, { 1151,12}, { 2367,13}, { 8192,14}, \
+ { 16384,15}, { 32768,16} }
+#define MUL_FFT_TABLE3_SIZE 110
+#define MUL_FFT_THRESHOLD 5760
+
+#define SQR_FFT_MODF_THRESHOLD 505 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 505, 5}, { 27, 6}, { 15, 5}, { 31, 6}, \
+ { 29, 7}, { 15, 6}, { 33, 7}, { 17, 6}, \
+ { 35, 7}, { 19, 6}, { 40, 7}, { 23, 6}, \
+ { 47, 7}, { 29, 8}, { 15, 7}, { 37, 8}, \
+ { 19, 7}, { 43, 8}, { 23, 7}, { 49, 8}, \
+ { 27, 7}, { 55, 8}, { 31, 7}, { 63, 8}, \
+ { 43, 9}, { 23, 8}, { 55, 9}, { 31, 8}, \
+ { 71, 9}, { 39, 8}, { 83, 9}, { 47, 8}, \
+ { 99, 9}, { 55,10}, { 31, 9}, { 79,10}, \
+ { 47, 9}, { 103,11}, { 31,10}, { 63, 9}, \
+ { 135,10}, { 79, 9}, { 159,10}, { 95, 9}, \
+ { 191,10}, { 111,11}, { 63,10}, { 127, 9}, \
+ { 255,10}, { 143, 9}, { 287,10}, { 159,11}, \
+ { 95,10}, { 191, 9}, { 383,12}, { 63,11}, \
+ { 127,10}, { 255, 9}, { 511,10}, { 271, 9}, \
+ { 543,10}, { 287,11}, { 159,10}, { 351,11}, \
+ { 191,10}, { 415,11}, { 223,12}, { 127,11}, \
+ { 255,10}, { 543,11}, { 287,10}, { 607,11}, \
+ { 319,10}, { 639,11}, { 351,12}, { 191,11}, \
+ { 383,10}, { 767,11}, { 415,13}, { 127,12}, \
+ { 255,11}, { 607,12}, { 319,11}, { 703,12}, \
+ { 383,11}, { 831,12}, { 447,13}, { 255,12}, \
+ { 511,11}, { 1023,12}, { 703,13}, { 383,12}, \
+ { 831,14}, { 255,13}, { 511,12}, { 1087,13}, \
+ { 639,12}, { 1343,13}, { 767,12}, { 1599,13}, \
+ { 895,14}, { 511,13}, { 1023,12}, { 2111,13}, \
+ { 1151,12}, { 2431,13}, { 8192,14}, { 16384,15}, \
+ { 32768,16} }
+#define SQR_FFT_TABLE3_SIZE 109
+#define SQR_FFT_THRESHOLD 4672
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 55
+#define MULLO_MUL_N_THRESHOLD 11278
+#define SQRLO_BASECASE_THRESHOLD 8
+#define SQRLO_DC_THRESHOLD 51
+#define SQRLO_SQR_THRESHOLD 8907
+
+#define DC_DIV_QR_THRESHOLD 46
+#define DC_DIVAPPR_Q_THRESHOLD 148
+#define DC_BDIV_QR_THRESHOLD 57
+#define DC_BDIV_Q_THRESHOLD 160
+
+#define INV_MULMOD_BNM1_THRESHOLD 86
+#define INV_NEWTON_THRESHOLD 138
+#define INV_APPR_THRESHOLD 139
+
+#define BINV_NEWTON_THRESHOLD 216
+#define REDC_1_TO_REDC_2_THRESHOLD 6
+#define REDC_2_TO_REDC_N_THRESHOLD 124
+
+#define MU_DIV_QR_THRESHOLD 2642
+#define MU_DIVAPPR_Q_THRESHOLD 2492
+#define MUPI_DIV_QR_THRESHOLD 74
+#define MU_BDIV_QR_THRESHOLD 2130
+#define MU_BDIV_Q_THRESHOLD 2541
+
+#define POWM_SEC_TABLE 5,26,143,446
+
+#define GET_STR_DC_THRESHOLD 20
+#define GET_STR_PRECOMPUTE_THRESHOLD 39
+#define SET_STR_DC_THRESHOLD 527
+#define SET_STR_PRECOMPUTE_THRESHOLD 1069
+
+#define FAC_DSC_THRESHOLD 430
+#define FAC_ODD_THRESHOLD 55
+
+#define MATRIX22_STRASSEN_THRESHOLD 23
+#define HGCD_THRESHOLD 79
+#define HGCD_APPR_THRESHOLD 71
+#define HGCD_REDUCE_THRESHOLD 3810
+#define GCD_DC_THRESHOLD 283
+#define GCDEXT_DC_THRESHOLD 253
+#define JACOBI_BASE_METHOD 1
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/mode1o.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/mode1o.asm
index a2f77a6bf59..a2f77a6bf59 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/mode1o.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/mode1o.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/mul_1.asm
index 0fcc0e46d9b..3c6ef99b61f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/mul_1.asm
@@ -33,8 +33,9 @@ include(`../config.m4')
C cycles/limb
C StrongARM: -
C XScale -
-C Cortex-A7 ?
-C Cortex-A8 ?
+C ARM11 6.4
+C Cortex-A7 5.25
+C Cortex-A8 7
C Cortex-A9 3.25
C Cortex-A15 4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/mul_2.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/mul_2.asm
index 1679542a3c8..91a74c8fda6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/mul_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/mul_2.asm
@@ -35,8 +35,9 @@ include(`../config.m4')
C cycles/limb
C StrongARM: -
C XScale -
-C Cortex-A7 ?
-C Cortex-A8 ?
+C ARM11 5.25
+C Cortex-A7 3.13
+C Cortex-A8 5
C Cortex-A9 2.25
C Cortex-A15 2.5
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/popham.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/popham.asm
index 44c8f2361cf..c25436836a0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/popham.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/popham.asm
@@ -81,6 +81,7 @@ ifdef(`OPERATION_hamdist',`
define(`HAMD', `$1')
')
+MULFUNC_PROLOGUE(mpn_popcount mpn_hamdist)
ASM_START()
PROLOGUE(func)
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/sqr_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/sqr_basecase.asm
index d52970aaa7d..0fc4f13dadb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/sqr_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/sqr_basecase.asm
@@ -2,7 +2,7 @@ dnl ARM v6 mpn_sqr_basecase.
dnl Contributed to the GNU project by Torbjörn Granlund.
-dnl Copyright 2012, 2013 Free Software Foundation, Inc.
+dnl Copyright 2012, 2013, 2015 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -49,21 +49,25 @@ C \____________/ \____________/
C \ /
C \ /
C \ /
-C tail(0m2) tail(1m2)
+C cor3 cor2
C \ /
C \ /
C sqr_diag_addlsh1
C TODO
+C * Align more labels.
C * Further tweak counter and updates in outer loops. (This could save
C perhaps 5n cycles).
+C * Avoid sub-with-lsl in outer loops. We could keep n up-shifted, then
+C initialise loop counter i with a right shift.
C * Try to use fewer register. Perhaps coalesce r9 branch target and n_saved.
C (This could save 2-3 cycles for n > 4.)
-C * Optimise sqr_diag_addlsh1 loop. (This could save O(n) cycles.)
-C * Implement larger final corners (xit/tix). Also stop loops earlier
-C suppressing writes of upper-most rp[] values. (This could save 10-20
-C cycles for n > 4.)
-C * Is the branch table really faster than discrete branches?
+C * Optimise sqr_diag_addlsh1 loop. The current code uses old-style carry
+C propagation.
+C * Stop loops earlier suppressing writes of upper-most rp[] values.
+C * The addmul_2 loops here runs well on all cores, but mul_2 runs poorly
+C particularly on Cortex-A8.
+
define(`rp', r0)
define(`up', r1)
@@ -95,7 +99,7 @@ PROLOGUE(mpn_sqr_basecase)
b L(3m4)
-L(1m4): push {r4-r10,r11,r14}
+L(1m4): push {r4-r11, r14}
mov n_saved, n
sub i, n, #4
sub n, n, #2
@@ -109,7 +113,7 @@ L(1m4): push {r4-r10,r11,r14}
mov r4, #0
b L(ko0)
-L(3m4): push {r4-r10,r11,r14}
+L(3m4): push {r4-r11, r14}
mov n_saved, n
sub i, n, #4
sub n, n, #2
@@ -123,7 +127,7 @@ L(3m4): push {r4-r10,r11,r14}
mov r4, #0
b L(ko2)
-L(2m4): push {r4-r10,r11,r14}
+L(2m4): push {r4-r11, r14}
mov n_saved, n
sub i, n, #4
sub n, n, #2
@@ -136,7 +140,7 @@ L(2m4): push {r4-r10,r11,r14}
mov r5, #0
b L(ko1)
-L(0m4): push {r4-r10,r11,r14}
+L(0m4): push {r4-r11, r14}
mov n_saved, n
sub i, n, #4
sub n, n, #2
@@ -171,225 +175,247 @@ L(ko0): ldr u1, [up, #16]!
umaal r4, cyb, u0, v1
subs i, i, #4
bhi L(top)
+
+ umaal r4, cya, u1, v0
+ ldr u0, [up, #4]
+ umaal r5, cyb, u1, v1
+ str r4, [rp, #4]
+ umaal r5, cya, u0, v0
+ umaal cya, cyb, u0, v1
+ str r5, [rp, #8]
+ str cya, [rp, #12]
+ str cyb, [rp, #16]
+
+ add up, up, #4
+ sub n, n, #1
+ add rp, rp, #8
bx r10
L(evnloop):
- subs i, n, #4
+ subs i, n, #6
sub n, n, #2
- blt L(tix)
- ldm up, {v0,v1,u0}
- add up, up, #4
+ blt L(cor2)
+ ldm up, {v0,v1,u1}
+ add up, up, #8
mov cya, #0
mov cyb, #0
- ldm rp, {r4,r5}
- sub rp, rp, #4
+ ldr r4, [rp, #-4]
umaal r4, cya, v1, v0
- str r4, [rp, #4]
- ldr r4, [rp, #12]
- b L(lo2)
-L(ua2): ldr u0, [up, #4]
+ str r4, [rp, #-4]
+ ldr r4, [rp, #0]
+
+ ALIGN(16)
+L(ua2): ldr r5, [rp, #4]
umaal r4, cya, u1, v0
- str r4, [rp, #4]
- ldr r4, [rp, #12]
+ ldr u0, [up, #4]
umaal r5, cyb, u1, v1
-L(lo2): ldr u1, [up, #8]
+ str r4, [rp, #0]
+ ldr r4, [rp, #8]
umaal r5, cya, u0, v0
- str r5, [rp, #8]
- ldr r5, [rp, #16]
+ ldr u1, [up, #8]
umaal r4, cyb, u0, v1
- ldr u0, [up, #12]
+ str r5, [rp, #4]
+ ldr r5, [rp, #12]
umaal r4, cya, u1, v0
- str r4, [rp, #12]
- ldr r4, [rp, #20]
+ ldr u0, [up, #12]
umaal r5, cyb, u1, v1
- ldr u1, [up, #16]!
+ str r4, [rp, #8]
+ ldr r4, [rp, #16]!
umaal r5, cya, u0, v0
- str r5, [rp, #16]!
- ldr r5, [rp, #8]
+ ldr u1, [up, #16]!
umaal r4, cyb, u0, v1
+ str r5, [rp, #-4]
subs i, i, #4
- bhi L(ua2)
-L(am2_0m4):
+ bhs L(ua2)
+
umaal r4, cya, u1, v0
- ldr u0, [up, #4]
- umaal r5, cyb, u1, v1
- str r4, [rp, #4]
- umaal r5, cya, u0, v0
- umaal cya, cyb, u0, v1
- str r5, [rp, #8]
- str cya, [rp, #12]
- str cyb, [rp, #16]
- sub up, up, n, lsl #2
+ umaal cya, cyb, u1, v1
+ str r4, [rp, #0]
+ str cya, [rp, #4]
+ str cyb, [rp, #8]
+L(am2_0m4):
sub rp, rp, n, lsl #2
- add up, up, #8
+ sub up, up, n, lsl #2
+ add rp, rp, #8
+
sub i, n, #4
sub n, n, #2
- ldm up, {v0,v1,u0}
- sub up, up, #4
+ ldm up, {v0,v1,u1}
mov cya, #0
mov cyb, #0
- ldr r4, [rp, #24]
- ldr r5, [rp, #28]
- add rp, rp, #12
+ ldr r4, [rp, #4]
umaal r4, cya, v1, v0
- str r4, [rp, #12]
- ldr r4, [rp, #20]
+ str r4, [rp, #4]
+ ldr r4, [rp, #8]
b L(lo0)
-L(ua0): ldr u0, [up, #4]
+
+ ALIGN(16)
+L(ua0): ldr r5, [rp, #4]
umaal r4, cya, u1, v0
- str r4, [rp, #4]
- ldr r4, [rp, #12]
+ ldr u0, [up, #4]
umaal r5, cyb, u1, v1
- ldr u1, [up, #8]
+ str r4, [rp, #0]
+ ldr r4, [rp, #8]
umaal r5, cya, u0, v0
- str r5, [rp, #8]
- ldr r5, [rp, #16]
+ ldr u1, [up, #8]
umaal r4, cyb, u0, v1
- ldr u0, [up, #12]
+ str r5, [rp, #4]
+L(lo0): ldr r5, [rp, #12]
umaal r4, cya, u1, v0
- str r4, [rp, #12]
- ldr r4, [rp, #20]
+ ldr u0, [up, #12]
umaal r5, cyb, u1, v1
-L(lo0): ldr u1, [up, #16]!
+ str r4, [rp, #8]
+ ldr r4, [rp, #16]!
umaal r5, cya, u0, v0
- str r5, [rp, #16]!
- ldr r5, [rp, #8]
+ ldr u1, [up, #16]!
umaal r4, cyb, u0, v1
+ str r5, [rp, #-4]
subs i, i, #4
- bhi L(ua0)
-L(am2_2m4):
+ bhs L(ua0)
+
umaal r4, cya, u1, v0
- ldr u0, [up, #4]
- umaal r5, cyb, u1, v1
- str r4, [rp, #4]
- umaal r5, cya, u0, v0
- umaal cya, cyb, u0, v1
- str r5, [rp, #8]
- str cya, [rp, #12]
- str cyb, [rp, #16]
- sub up, up, n, lsl #2
+ umaal cya, cyb, u1, v1
+ str r4, [rp, #0]
+ str cya, [rp, #4]
+ str cyb, [rp, #8]
+L(am2_2m4):
sub rp, rp, n, lsl #2
- add up, up, #8
- add rp, rp, #24
+ sub up, up, n, lsl #2
+ add rp, rp, #16
b L(evnloop)
L(oddloop):
- subs i, n, #4
+ sub i, n, #5
sub n, n, #2
- blt L(xit)
- ldm up, {v0,v1,u1}
+ ldm up, {v0,v1,u0}
mov cya, #0
mov cyb, #0
- sub rp, rp, #8
- ldr r5, [rp, #8]
- ldr r4, [rp, #12]
+ ldr r5, [rp, #0]
umaal r5, cya, v1, v0
- str r5, [rp, #8]
- ldr r5, [rp, #16]
+ str r5, [rp, #0]
+ ldr r5, [rp, #4]
+ add up, up, #4
b L(lo1)
-L(ua1): ldr u0, [up, #4]
+
+ ALIGN(16)
+L(ua1): ldr r5, [rp, #4]
umaal r4, cya, u1, v0
- str r4, [rp, #4]
- ldr r4, [rp, #12]
+ ldr u0, [up, #4]
umaal r5, cyb, u1, v1
- ldr u1, [up, #8]
+ str r4, [rp, #0]
+L(lo1): ldr r4, [rp, #8]
umaal r5, cya, u0, v0
- str r5, [rp, #8]
- ldr r5, [rp, #16]
+ ldr u1, [up, #8]
umaal r4, cyb, u0, v1
-L(lo1): ldr u0, [up, #12]
+ str r5, [rp, #4]
+ ldr r5, [rp, #12]
umaal r4, cya, u1, v0
- str r4, [rp, #12]
- ldr r4, [rp, #20]
+ ldr u0, [up, #12]
umaal r5, cyb, u1, v1
- ldr u1, [up, #16]!
+ str r4, [rp, #8]
+ ldr r4, [rp, #16]!
umaal r5, cya, u0, v0
- str r5, [rp, #16]!
- ldr r5, [rp, #8]
+ ldr u1, [up, #16]!
umaal r4, cyb, u0, v1
+ str r5, [rp, #-4]
subs i, i, #4
- bhi L(ua1)
-L(am2_3m4):
+ bhs L(ua1)
+
umaal r4, cya, u1, v0
- ldr u0, [up, #4]
- umaal r5, cyb, u1, v1
- str r4, [rp, #4]
- umaal r5, cya, u0, v0
- umaal cya, cyb, u0, v1
- str r5, [rp, #8]
- str cya, [rp, #12]
- str cyb, [rp, #16]
- sub up, up, n, lsl #2
+ umaal cya, cyb, u1, v1
+ str r4, [rp, #0]
+ str cya, [rp, #4]
+ str cyb, [rp, #8]
+L(am2_3m4):
sub rp, rp, n, lsl #2
- add up, up, #8
- add rp, rp, #24
- subs i, n, #4
+ sub up, up, n, lsl #2
+ add rp, rp, #4
+
+ subs i, n, #3
+ beq L(cor3)
sub n, n, #2
- ldm up, {v0,v1,u1}
+ ldm up, {v0,v1,u0}
mov cya, #0
mov cyb, #0
- ldr r5, [rp, #0]
- ldr r4, [rp, #4]
- add up, up, #8
- umaal r5, cya, v1, v0
- str r5, [rp, #0]
ldr r5, [rp, #8]
- bls L(e3)
-L(ua3): ldr u0, [up, #4]
+ sub up, up, #4
+ umaal r5, cya, v1, v0
+ str r5, [rp, #8]
+ ldr r5, [rp, #12]
+ b L(lo3)
+
+ ALIGN(16)
+L(ua3): ldr r5, [rp, #4]
umaal r4, cya, u1, v0
- str r4, [rp, #4]
- ldr r4, [rp, #12]
+ ldr u0, [up, #4]
umaal r5, cyb, u1, v1
- ldr u1, [up, #8]
+ str r4, [rp, #0]
+ ldr r4, [rp, #8]
umaal r5, cya, u0, v0
- str r5, [rp, #8]
- ldr r5, [rp, #16]
+ ldr u1, [up, #8]
umaal r4, cyb, u0, v1
- ldr u0, [up, #12]
+ str r5, [rp, #4]
+ ldr r5, [rp, #12]
umaal r4, cya, u1, v0
- str r4, [rp, #12]
- ldr r4, [rp, #20]
+ ldr u0, [up, #12]
umaal r5, cyb, u1, v1
- ldr u1, [up, #16]!
+ str r4, [rp, #8]
+L(lo3): ldr r4, [rp, #16]!
umaal r5, cya, u0, v0
- str r5, [rp, #16]!
- ldr r5, [rp, #8]
+ ldr u1, [up, #16]!
umaal r4, cyb, u0, v1
+ str r5, [rp, #-4]
subs i, i, #4
- bhi L(ua3)
-L(e3):
-L(am2_1m4):
+ bhs L(ua3)
+
umaal r4, cya, u1, v0
- ldr u0, [up, #4]
- umaal r5, cyb, u1, v1
- str r4, [rp, #4]
- umaal r5, cya, u0, v0
- umaal cya, cyb, u0, v1
- str r5, [rp, #8]
- str cya, [rp, #12]
- str cyb, [rp, #16]
- sub up, up, n, lsl #2
+ umaal cya, cyb, u1, v1
+ str r4, [rp, #0]
+ str cya, [rp, #4]
+ str cyb, [rp, #8]
+L(am2_1m4):
sub rp, rp, n, lsl #2
- add up, up, #8
- add rp, rp, #24
+ sub up, up, n, lsl #2
+ add rp, rp, #12
b L(oddloop)
-L(xit): ldm up!, {v0,u0}
- ldr cya, [rp], #12
+
+L(cor3):ldm up, {v0,v1,u0}
+ ldr r5, [rp, #8]
+ mov cya, #0
+ mov cyb, #0
+ umaal r5, cya, v1, v0
+ str r5, [rp, #8]
+ ldr r5, [rp, #12]
+ ldr r4, [rp, #16]
+ umaal r5, cya, u0, v0
+ ldr u1, [up, #12]
+ umaal r4, cyb, u0, v1
+ str r5, [rp, #12]
+ umaal r4, cya, u1, v0
+ umaal cya, cyb, u1, v1
+ str r4, [rp, #16]
+ str cya, [rp, #20]
+ str cyb, [rp, #24]
+ add up, up, #16
+ mov cya, cyb
+ adds rp, rp, #36 C clear cy
mov cyb, #0
- umaal cya, cyb, u0, v0
+ umaal cya, cyb, u1, u0
b L(sqr_diag_addlsh1)
-L(tix): ldm up!, {v0,v1,u0}
- ldm rp, {r4,r5}
+L(cor2):
+ ldm up!, {v0,v1,u0}
+ mov r4, cya
+ mov r5, cyb
mov cya, #0
- mov cyb, #0
umaal r4, cya, v1, v0
+ mov cyb, #0
umaal r5, cya, u0, v0
- stm rp, {r4,r5}
+ strd r4, r5, [rp, #-4]
umaal cya, cyb, u0, v1
- add rp, rp, #20
+ add rp, rp, #16
C b L(sqr_diag_addlsh1)
@@ -408,7 +434,7 @@ L(sqr_diag_addlsh1):
umull w1, r5, r3, r3
mov w2, #0
mov r10, #0
-C cmn r0, #0 C clear cy (already clear by luck)
+C cmn r0, #0 C clear cy (already clear)
b L(lm)
L(tsd): adds w0, w0, rbx
@@ -431,7 +457,7 @@ L(lm): ldr w0, [rp, #4]
adc w2, r5, w2
stm rp, {w0,w1,w2}
- pop {r4-r10,r11,pc}
+ pop {r4-r11, pc}
C Straight line code for n <= 4
@@ -503,8 +529,8 @@ L(4): push {r4-r11, r14}
adcs r4, r4, r4
adcs r5, r5, r5
adcs r6, r6, r6
- adc r7, r8, #0
add rp, rp, #4
+ adc r7, r8, #0
ldm rp, {r8,r9,r10,r11,r12,r14}
adds r1, r1, r8
adcs r2, r2, r9
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/submul_1.asm
index 8a21733a0a0..8a21733a0a0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v6/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6t2/divrem_1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v6t2/divrem_1.asm
index be24615acbb..be24615acbb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6t2/divrem_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v6t2/divrem_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6t2/gcd_1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v6t2/gcd_1.asm
index 20636479630..20636479630 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6t2/gcd_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v6t2/gcd_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/addmul_1.asm
index c2277b32b28..c2277b32b28 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/aors_n.asm
index dc3f83992e4..dc3f83992e4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/cnd_aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/cnd_aors_n.asm
index b9e5cd3f793..b9e5cd3f793 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/cnd_aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/cnd_aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/com.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/com.asm
index a258afe934e..a258afe934e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/com.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/com.asm
diff --git a/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/gmp-mparam.h
new file mode 100644
index 00000000000..53301910c46
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/gmp-mparam.h
@@ -0,0 +1,193 @@
+/* gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 1999-2003, 2009, 2010, 2012-2015 Free Software
+Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 32
+#define GMP_LIMB_BYTES 4
+
+/* 1700 MHz Cortex-A15 with Neon (in spite of file position) */
+/* FFT tuning limit = 25 M */
+/* Generated by tuneup.c, 2015-10-06, gcc 4.8 */
+
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 3
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 2
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 9
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 102
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 9
+#define USE_PREINV_DIVREM_1 1 /* native */
+#define DIV_QR_1N_PI1_METHOD 1
+#define DIV_QR_1_NORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 15
+
+#define MUL_TOOM22_THRESHOLD 28
+#define MUL_TOOM33_THRESHOLD 116
+#define MUL_TOOM44_THRESHOLD 169
+#define MUL_TOOM6H_THRESHOLD 399
+#define MUL_TOOM8H_THRESHOLD 597
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 113
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 115
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 115
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 115
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 160
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 38
+#define SQR_TOOM3_THRESHOLD 126
+#define SQR_TOOM4_THRESHOLD 345
+#define SQR_TOOM6_THRESHOLD 470
+#define SQR_TOOM8_THRESHOLD 644
+
+#define MULMID_TOOM42_THRESHOLD 52
+
+#define MULMOD_BNM1_THRESHOLD 17
+#define SQRMOD_BNM1_THRESHOLD 19
+
+#define MUL_FFT_MODF_THRESHOLD 500 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 500, 5}, { 26, 6}, { 27, 7}, { 15, 6}, \
+ { 31, 7}, { 19, 6}, { 39, 7}, { 25, 6}, \
+ { 51, 7}, { 27, 8}, { 15, 7}, { 33, 8}, \
+ { 19, 7}, { 41, 8}, { 23, 7}, { 51, 8}, \
+ { 27, 9}, { 15, 8}, { 31, 7}, { 63, 8}, \
+ { 39, 9}, { 23, 8}, { 51,10}, { 15, 9}, \
+ { 31, 8}, { 67, 9}, { 47, 8}, { 99, 9}, \
+ { 55,10}, { 31, 9}, { 79,10}, { 47, 9}, \
+ { 95,11}, { 31,10}, { 63, 9}, { 135,10}, \
+ { 79, 9}, { 159,10}, { 95, 9}, { 191,10}, \
+ { 111,11}, { 63,10}, { 127, 9}, { 255,10}, \
+ { 143, 9}, { 287,10}, { 159,11}, { 95,10}, \
+ { 191, 9}, { 383, 8}, { 767,12}, { 63,11}, \
+ { 127,10}, { 255, 9}, { 511,10}, { 271, 9}, \
+ { 543,10}, { 287,11}, { 159,10}, { 319, 9}, \
+ { 639,10}, { 335, 9}, { 671,10}, { 351,11}, \
+ { 191,10}, { 383, 9}, { 767,10}, { 415,11}, \
+ { 223,12}, { 127,11}, { 255,10}, { 543,11}, \
+ { 287,10}, { 575,11}, { 319,10}, { 639,11}, \
+ { 351,12}, { 191,11}, { 383,10}, { 767,11}, \
+ { 447,13}, { 127,12}, { 255,11}, { 607,12}, \
+ { 319,11}, { 735,12}, { 383,11}, { 831,12}, \
+ { 447,11}, { 895,13}, { 255,12}, { 511,11}, \
+ { 1023,12}, { 703,13}, { 383,12}, { 895,14}, \
+ { 255,13}, { 511,12}, { 1151,13}, { 639,12}, \
+ { 1471,13}, { 767,12}, { 1663,13}, { 895,14}, \
+ { 511,13}, { 1023,12}, { 2111,13}, { 1151,12}, \
+ { 2431,13}, { 1279,14}, { 767,13}, { 1535,12}, \
+ { 3135,15}, { 511,14}, { 1023,13}, { 2303,14}, \
+ { 1279,13}, { 2559,12}, { 5119,13}, { 2815,14}, \
+ { 16384,15}, { 32768,16} }
+#define MUL_FFT_TABLE3_SIZE 122
+#define MUL_FFT_THRESHOLD 5312
+
+#define SQR_FFT_MODF_THRESHOLD 468 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 468, 5}, { 25, 6}, { 27, 7}, { 15, 6}, \
+ { 31, 7}, { 19, 6}, { 39, 7}, { 25, 6}, \
+ { 51, 7}, { 27, 8}, { 15, 7}, { 33, 8}, \
+ { 19, 7}, { 41, 8}, { 23, 7}, { 51, 8}, \
+ { 27, 9}, { 15, 8}, { 31, 7}, { 63, 8}, \
+ { 39, 9}, { 23, 8}, { 51,10}, { 15, 9}, \
+ { 31, 8}, { 67, 9}, { 39, 8}, { 79, 9}, \
+ { 47, 8}, { 95, 9}, { 55,10}, { 31, 9}, \
+ { 79,10}, { 47, 9}, { 103,11}, { 31,10}, \
+ { 63, 9}, { 135,10}, { 79, 9}, { 159,10}, \
+ { 95, 9}, { 191,10}, { 111,11}, { 63,10}, \
+ { 127, 9}, { 255,10}, { 143, 9}, { 287,10}, \
+ { 159, 9}, { 319,11}, { 95,10}, { 191, 9}, \
+ { 383, 8}, { 767,12}, { 63,11}, { 127,10}, \
+ { 255, 9}, { 511,10}, { 271, 9}, { 543,10}, \
+ { 287,11}, { 159,10}, { 319, 9}, { 639,10}, \
+ { 335, 9}, { 671,10}, { 351, 9}, { 703,11}, \
+ { 191,10}, { 383, 9}, { 767,10}, { 415,11}, \
+ { 223,12}, { 127,11}, { 255,10}, { 511,11}, \
+ { 287,10}, { 575,11}, { 319,10}, { 639,11}, \
+ { 351,12}, { 191,11}, { 383,10}, { 767,11}, \
+ { 447,13}, { 127,12}, { 255,11}, { 607,12}, \
+ { 319,11}, { 735,12}, { 383,11}, { 831,12}, \
+ { 447,13}, { 255,12}, { 511,11}, { 1023,12}, \
+ { 575,11}, { 1151,12}, { 639,11}, { 1279,12}, \
+ { 703,13}, { 383,12}, { 895,14}, { 255,13}, \
+ { 511,12}, { 1151,13}, { 639,12}, { 1407,13}, \
+ { 767,12}, { 1663,13}, { 895,14}, { 511,13}, \
+ { 1023,12}, { 2047,13}, { 1151,12}, { 2431,13}, \
+ { 1279,14}, { 767,13}, { 1535,12}, { 3135,15}, \
+ { 511,14}, { 1023,13}, { 2175,14}, { 1279,13}, \
+ { 2687,14}, { 16384,15}, { 32768,16} }
+#define SQR_FFT_TABLE3_SIZE 127
+#define SQR_FFT_THRESHOLD 4736
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 38
+#define MULLO_MUL_N_THRESHOLD 8907
+#define SQRLO_BASECASE_THRESHOLD 10
+#define SQRLO_DC_THRESHOLD 35
+#define SQRLO_SQR_THRESHOLD 8907
+
+#define DC_DIV_QR_THRESHOLD 54
+#define DC_DIVAPPR_Q_THRESHOLD 266
+#define DC_BDIV_QR_THRESHOLD 48
+#define DC_BDIV_Q_THRESHOLD 296
+
+#define INV_MULMOD_BNM1_THRESHOLD 54
+#define INV_NEWTON_THRESHOLD 274
+#define INV_APPR_THRESHOLD 276
+
+#define BINV_NEWTON_THRESHOLD 348
+#define REDC_1_TO_REDC_2_THRESHOLD 59
+#define REDC_2_TO_REDC_N_THRESHOLD 0 /* always */
+
+#define MU_DIV_QR_THRESHOLD 1787
+#define MU_DIVAPPR_Q_THRESHOLD 1787
+#define MUPI_DIV_QR_THRESHOLD 122
+#define MU_BDIV_QR_THRESHOLD 1528
+#define MU_BDIV_Q_THRESHOLD 1752
+
+#define POWM_SEC_TABLE 1,32,224,398,2211
+
+#define GET_STR_DC_THRESHOLD 16
+#define GET_STR_PRECOMPUTE_THRESHOLD 30
+#define SET_STR_DC_THRESHOLD 100
+#define SET_STR_PRECOMPUTE_THRESHOLD 807
+
+#define FAC_DSC_THRESHOLD 309
+#define FAC_ODD_THRESHOLD 28
+
+#define MATRIX22_STRASSEN_THRESHOLD 25
+#define HGCD_THRESHOLD 153
+#define HGCD_APPR_THRESHOLD 176
+#define HGCD_REDUCE_THRESHOLD 3014
+#define GCD_DC_THRESHOLD 667
+#define GCDEXT_DC_THRESHOLD 483
+#define JACOBI_BASE_METHOD 4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/logops_n.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/logops_n.asm
index 06026143e14..06026143e14 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/logops_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/logops_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/mul_1.asm
index 766ba5c57f2..766ba5c57f2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/aorsorrlsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/aorsorrlsh1_n.asm
index d8cfe3f78f2..d8cfe3f78f2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/aorsorrlsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/aorsorrlsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/aorsorrlsh2_n.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/aorsorrlsh2_n.asm
index b48204d9269..b48204d9269 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/aorsorrlsh2_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/aorsorrlsh2_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/aorsorrlshC_n.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/aorsorrlshC_n.asm
index 16c34a2699d..16c34a2699d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/aorsorrlshC_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/aorsorrlshC_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/com.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/com.asm
index 9e7a629287b..9e7a629287b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/com.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/com.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/copyd.asm
index 98fe535def5..98fe535def5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/copyi.asm
index 2e05afe5e86..2e05afe5e86 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/rsh1aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/rsh1aors_n.asm
index 2c11d6debd4..2c11d6debd4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/rsh1aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/neon/rsh1aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/submul_1.asm
index ed7bfe820b6..ed7bfe820b6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora15/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora7/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora7/gmp-mparam.h
new file mode 100644
index 00000000000..dbb0ab46f6f
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora7/gmp-mparam.h
@@ -0,0 +1,194 @@
+/* gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 1999-2003, 2009, 2010, 2012, 2015 Free Software
+Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 32
+#define GMP_LIMB_BYTES 4
+
+/* 900 MHz Cortex-A7 (raspberry pi2) */
+/* FFT tuning limit = 25 M */
+/* Generated by tuneup.c, 2015-05-15, gcc 4.6 */
+
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 3
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 6
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 7
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD MP_SIZE_T_MAX
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 18
+#define USE_PREINV_DIVREM_1 1 /* native */
+#define DIV_QR_1N_PI1_METHOD 1
+#define DIV_QR_1_NORM_THRESHOLD 16
+#define DIV_QR_1_UNNORM_THRESHOLD 1
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 47
+
+#define MUL_TOOM22_THRESHOLD 39
+#define MUL_TOOM33_THRESHOLD 129
+#define MUL_TOOM44_THRESHOLD 195
+#define MUL_TOOM6H_THRESHOLD 414
+#define MUL_TOOM8H_THRESHOLD 478
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 129
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 183
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 129
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 145
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 191
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 52
+#define SQR_TOOM3_THRESHOLD 162
+#define SQR_TOOM4_THRESHOLD 280
+#define SQR_TOOM6_THRESHOLD 399
+#define SQR_TOOM8_THRESHOLD 567
+
+#define MULMID_TOOM42_THRESHOLD 58
+
+#define MULMOD_BNM1_THRESHOLD 22
+#define SQRMOD_BNM1_THRESHOLD 27
+
+#define MUL_FFT_MODF_THRESHOLD 636 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 636, 5}, { 28, 6}, { 15, 5}, { 31, 6}, \
+ { 29, 7}, { 15, 6}, { 33, 7}, { 17, 6}, \
+ { 35, 7}, { 19, 6}, { 39, 7}, { 29, 8}, \
+ { 15, 7}, { 35, 8}, { 19, 7}, { 43, 8}, \
+ { 23, 7}, { 49, 8}, { 27, 7}, { 55, 8}, \
+ { 31, 7}, { 63, 8}, { 43, 9}, { 23, 8}, \
+ { 55, 9}, { 31, 8}, { 67, 9}, { 39, 8}, \
+ { 83, 9}, { 47, 8}, { 95, 9}, { 55,10}, \
+ { 31, 9}, { 79,10}, { 47, 9}, { 103,11}, \
+ { 31,10}, { 63, 9}, { 135,10}, { 79, 9}, \
+ { 159,10}, { 95, 9}, { 191,10}, { 111,11}, \
+ { 63,10}, { 159,11}, { 95,10}, { 191,12}, \
+ { 63,11}, { 127,10}, { 255, 9}, { 511,10}, \
+ { 271, 9}, { 543,11}, { 159,10}, { 319, 9}, \
+ { 639,10}, { 335, 9}, { 671,11}, { 191,10}, \
+ { 383, 9}, { 767,10}, { 399, 9}, { 799,11}, \
+ { 223,12}, { 127,11}, { 255,10}, { 543,11}, \
+ { 287,10}, { 607,11}, { 319,10}, { 671,11}, \
+ { 351,12}, { 191,11}, { 383,10}, { 799,11}, \
+ { 415,13}, { 127,12}, { 255,11}, { 543,10}, \
+ { 1087,11}, { 607,12}, { 319,11}, { 735,12}, \
+ { 383,11}, { 863,12}, { 447,11}, { 959,13}, \
+ { 255,12}, { 511,11}, { 1087,12}, { 575,11}, \
+ { 1215,12}, { 703,13}, { 383,12}, { 767,11}, \
+ { 1535,12}, { 959,14}, { 255,13}, { 511,12}, \
+ { 1215,13}, { 639,12}, { 1471,13}, { 767,12}, \
+ { 1663,13}, { 895,12}, { 1855,14}, { 511,13}, \
+ { 1023,12}, { 2111,13}, { 1151,12}, { 2431,13}, \
+ { 1407,14}, { 767,13}, { 1663,12}, { 3327,13}, \
+ { 1791,15}, { 511,14}, { 1023,13}, { 2431,14}, \
+ { 1279,13}, { 2815,14}, { 16384,15}, { 32768,16} }
+#define MUL_FFT_TABLE3_SIZE 124
+#define MUL_FFT_THRESHOLD 5760
+
+#define SQR_FFT_MODF_THRESHOLD 555 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 555, 5}, { 28, 6}, { 15, 5}, { 31, 6}, \
+ { 29, 7}, { 15, 6}, { 33, 7}, { 17, 6}, \
+ { 36, 7}, { 19, 6}, { 39, 7}, { 29, 8}, \
+ { 15, 7}, { 35, 8}, { 19, 7}, { 43, 8}, \
+ { 23, 7}, { 49, 8}, { 31, 7}, { 63, 8}, \
+ { 43, 9}, { 23, 8}, { 55, 9}, { 31, 8}, \
+ { 67, 9}, { 39, 8}, { 79, 9}, { 47, 8}, \
+ { 95, 9}, { 55,10}, { 31, 9}, { 79,10}, \
+ { 47, 9}, { 95,11}, { 31,10}, { 63, 9}, \
+ { 135,10}, { 79, 9}, { 159,10}, { 95, 9}, \
+ { 191,10}, { 111,11}, { 63,10}, { 143, 9}, \
+ { 287,10}, { 159,11}, { 95,10}, { 191,12}, \
+ { 63,11}, { 127,10}, { 255, 9}, { 511, 8}, \
+ { 1023, 9}, { 543,10}, { 287,11}, { 159,10}, \
+ { 319, 9}, { 639,10}, { 335, 9}, { 671,10}, \
+ { 351,11}, { 191,10}, { 383, 9}, { 767,10}, \
+ { 399, 9}, { 799,10}, { 415,12}, { 127,11}, \
+ { 255,10}, { 511, 9}, { 1023,10}, { 543,11}, \
+ { 287,10}, { 607,11}, { 319,10}, { 671,11}, \
+ { 351,12}, { 191,11}, { 383,10}, { 799,11}, \
+ { 415,10}, { 831,13}, { 127,12}, { 255,11}, \
+ { 511,10}, { 1023,11}, { 543,10}, { 1087,11}, \
+ { 607,12}, { 319,11}, { 735,12}, { 383,11}, \
+ { 863,12}, { 447,11}, { 991,12}, { 511,11}, \
+ { 1087,12}, { 575,11}, { 1215,12}, { 639,11}, \
+ { 1279,12}, { 703,13}, { 383,12}, { 959,13}, \
+ { 511,12}, { 1215,13}, { 639,12}, { 1471,13}, \
+ { 767,12}, { 1663,13}, { 895,12}, { 1855,14}, \
+ { 511,13}, { 1023,12}, { 2111,13}, { 1151,12}, \
+ { 2431,13}, { 1407,14}, { 767,13}, { 1663,12}, \
+ { 3327,13}, { 1791,15}, { 511,14}, { 1023,13}, \
+ { 2431,14}, { 1279,13}, { 2815,14}, { 16384,15}, \
+ { 32768,16} }
+#define SQR_FFT_TABLE3_SIZE 129
+#define SQR_FFT_THRESHOLD 4736
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 27
+#define MULLO_MUL_N_THRESHOLD 11278
+#define SQRLO_BASECASE_THRESHOLD 5
+#define SQRLO_DC_THRESHOLD 30
+#define SQRLO_SQR_THRESHOLD 8907
+
+#define DC_DIV_QR_THRESHOLD 32
+#define DC_DIVAPPR_Q_THRESHOLD 89
+#define DC_BDIV_QR_THRESHOLD 39
+#define DC_BDIV_Q_THRESHOLD 112
+
+#define INV_MULMOD_BNM1_THRESHOLD 76
+#define INV_NEWTON_THRESHOLD 110
+#define INV_APPR_THRESHOLD 98
+
+#define BINV_NEWTON_THRESHOLD 214
+#define REDC_1_TO_REDC_2_THRESHOLD 4
+#define REDC_2_TO_REDC_N_THRESHOLD 122
+
+#define MU_DIV_QR_THRESHOLD 1718
+#define MU_DIVAPPR_Q_THRESHOLD 1685
+#define MUPI_DIV_QR_THRESHOLD 54
+#define MU_BDIV_QR_THRESHOLD 1470
+#define MU_BDIV_Q_THRESHOLD 1685
+
+#define POWM_SEC_TABLE 1,16,102,615,2016
+
+#define GET_STR_DC_THRESHOLD 29
+#define GET_STR_PRECOMPUTE_THRESHOLD 57
+#define SET_STR_DC_THRESHOLD 272
+#define SET_STR_PRECOMPUTE_THRESHOLD 788
+
+#define FAC_DSC_THRESHOLD 360
+#define FAC_ODD_THRESHOLD 55
+
+#define MATRIX22_STRASSEN_THRESHOLD 27
+#define HGCD_THRESHOLD 55
+#define HGCD_APPR_THRESHOLD 51
+#define HGCD_REDUCE_THRESHOLD 3389
+#define GCD_DC_THRESHOLD 168
+#define GCDEXT_DC_THRESHOLD 189
+#define JACOBI_BASE_METHOD 1
diff --git a/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora8/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora8/gmp-mparam.h
new file mode 100644
index 00000000000..85205fd50f0
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora8/gmp-mparam.h
@@ -0,0 +1,207 @@
+/* gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 1999-2003, 2009, 2010, 2012, 2015 Free Software
+Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 32
+#define GMP_LIMB_BYTES 4
+
+/* 1000 MHz Cortex-A8 (beaglebone black) */
+/* FFT tuning limit = 10 M */
+/* Generated by tuneup.c, 2015-10-05, gcc 4.6 */
+
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 3
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD MP_SIZE_T_MAX
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 12
+#define USE_PREINV_DIVREM_1 1 /* native */
+#define DIV_QR_1N_PI1_METHOD 1
+#define DIV_QR_1_NORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 28
+
+#define MUL_TOOM22_THRESHOLD 39
+#define MUL_TOOM33_THRESHOLD 129
+#define MUL_TOOM44_THRESHOLD 220
+#define MUL_TOOM6H_THRESHOLD 366
+#define MUL_TOOM8H_THRESHOLD 620
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 129
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 179
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 139
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 149
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 193
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 44
+#define SQR_TOOM3_THRESHOLD 145
+#define SQR_TOOM4_THRESHOLD 384
+#define SQR_TOOM6_THRESHOLD 414
+#define SQR_TOOM8_THRESHOLD 547
+
+#define MULMID_TOOM42_THRESHOLD 40
+
+#define MULMOD_BNM1_THRESHOLD 22
+#define SQRMOD_BNM1_THRESHOLD 25
+
+#define MUL_FFT_MODF_THRESHOLD 476 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 476, 5}, { 28, 6}, { 15, 5}, { 31, 6}, \
+ { 28, 7}, { 15, 6}, { 33, 7}, { 17, 6}, \
+ { 35, 7}, { 19, 6}, { 39, 7}, { 27, 8}, \
+ { 15, 7}, { 35, 8}, { 19, 7}, { 43, 8}, \
+ { 23, 7}, { 49, 8}, { 27, 7}, { 55, 8}, \
+ { 31, 7}, { 63, 8}, { 43, 9}, { 23, 8}, \
+ { 55, 9}, { 31, 8}, { 71, 9}, { 39, 8}, \
+ { 83, 9}, { 47, 8}, { 99, 9}, { 55,10}, \
+ { 31, 9}, { 63, 8}, { 127, 9}, { 87,10}, \
+ { 47, 9}, { 103,11}, { 31,10}, { 63, 9}, \
+ { 143,10}, { 79, 9}, { 167,10}, { 95, 9}, \
+ { 191,10}, { 111,11}, { 63,10}, { 127, 9}, \
+ { 255,10}, { 143, 9}, { 287, 8}, { 575,10}, \
+ { 159, 9}, { 319,11}, { 95,10}, { 191, 9}, \
+ { 383, 8}, { 767, 9}, { 399,10}, { 207,12}, \
+ { 63,11}, { 127,10}, { 255, 9}, { 511,10}, \
+ { 271, 9}, { 543,10}, { 287, 9}, { 575,11}, \
+ { 159,10}, { 319, 9}, { 639,10}, { 335, 9}, \
+ { 671,10}, { 351, 9}, { 703,11}, { 191,10}, \
+ { 383, 9}, { 767,10}, { 399, 9}, { 799,10}, \
+ { 415, 9}, { 831,11}, { 223,12}, { 127,11}, \
+ { 255,10}, { 511, 9}, { 1023,10}, { 543,11}, \
+ { 287,10}, { 607, 9}, { 1215,11}, { 319,10}, \
+ { 671,11}, { 351,10}, { 703,12}, { 191,11}, \
+ { 383,10}, { 799,11}, { 415,10}, { 863,11}, \
+ { 447,13}, { 127,12}, { 255,11}, { 511,10}, \
+ { 1023,11}, { 543,10}, { 1087,11}, { 607,12}, \
+ { 319,11}, { 671,10}, { 1343,11}, { 735,12}, \
+ { 383,11}, { 799,10}, { 1599,11}, { 863,12}, \
+ { 447,11}, { 959,13}, { 255,12}, { 511,11}, \
+ { 1087,12}, { 575,11}, { 1215,12}, { 639,11}, \
+ { 1343,12}, { 703,11}, { 1407,13}, { 383,12}, \
+ { 767,11}, { 1599,12}, { 831,11}, { 1663,12}, \
+ { 959,14}, { 255,13}, { 511,12}, { 1215,13}, \
+ { 639,12}, { 1471,13}, { 767,12}, { 1663,13}, \
+ { 895,12}, { 1791,14}, { 511,13}, { 1023,12}, \
+ { 2111,13}, { 1151,12}, { 2431,13}, { 8192,14}, \
+ { 16384,15}, { 32768,16} }
+#define MUL_FFT_TABLE3_SIZE 150
+#define MUL_FFT_THRESHOLD 7552
+
+#define SQR_FFT_MODF_THRESHOLD 428 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 428, 5}, { 25, 6}, { 13, 5}, { 27, 6}, \
+ { 25, 7}, { 13, 6}, { 28, 7}, { 15, 6}, \
+ { 32, 7}, { 17, 6}, { 35, 7}, { 19, 6}, \
+ { 39, 7}, { 27, 8}, { 15, 7}, { 35, 8}, \
+ { 19, 7}, { 41, 8}, { 23, 7}, { 49, 8}, \
+ { 27, 9}, { 15, 8}, { 39, 9}, { 23, 8}, \
+ { 55,10}, { 15, 9}, { 31, 8}, { 67, 9}, \
+ { 39, 8}, { 83, 9}, { 47, 8}, { 95, 9}, \
+ { 55,10}, { 31, 9}, { 79,10}, { 47, 9}, \
+ { 103,11}, { 31,10}, { 63, 9}, { 135,10}, \
+ { 79, 9}, { 159, 8}, { 319, 9}, { 167,10}, \
+ { 95, 9}, { 191,10}, { 111,11}, { 63,10}, \
+ { 127, 9}, { 255, 8}, { 511, 9}, { 271,10}, \
+ { 143, 9}, { 287, 8}, { 575, 9}, { 303,10}, \
+ { 159, 9}, { 319,11}, { 95,10}, { 191, 9}, \
+ { 383, 8}, { 767, 9}, { 399,12}, { 63,11}, \
+ { 127,10}, { 255, 9}, { 511,10}, { 271, 9}, \
+ { 543,10}, { 287, 9}, { 575,10}, { 303,11}, \
+ { 159,10}, { 319, 9}, { 639,10}, { 335, 9}, \
+ { 671,10}, { 351, 9}, { 703,10}, { 367,11}, \
+ { 191,10}, { 383, 9}, { 767,10}, { 399, 9}, \
+ { 799,10}, { 415, 9}, { 831,11}, { 223,10}, \
+ { 447,12}, { 127,11}, { 255,10}, { 511, 9}, \
+ { 1023,10}, { 543,11}, { 287,10}, { 607,11}, \
+ { 319,10}, { 671,11}, { 351,10}, { 735,12}, \
+ { 191,11}, { 383,10}, { 799,11}, { 415,10}, \
+ { 863,11}, { 447,10}, { 895,13}, { 127,12}, \
+ { 255,11}, { 511,10}, { 1023,11}, { 543,10}, \
+ { 1087,11}, { 607,12}, { 319,11}, { 671,10}, \
+ { 1343,11}, { 735,12}, { 383,11}, { 799,10}, \
+ { 1599,11}, { 863,12}, { 447,11}, { 959,13}, \
+ { 255,12}, { 511,11}, { 1087,12}, { 575,11}, \
+ { 1215,12}, { 639,11}, { 1343,12}, { 703,11}, \
+ { 1407,13}, { 383,12}, { 767,11}, { 1599,12}, \
+ { 831,11}, { 1663,12}, { 959,14}, { 255,13}, \
+ { 511,12}, { 1215,13}, { 639,12}, { 1471,13}, \
+ { 767,12}, { 1663,13}, { 895,12}, { 1919,14}, \
+ { 511,13}, { 1023,12}, { 2111,13}, { 1151,12}, \
+ { 2431,13}, { 8192,14}, { 16384,15}, { 32768,16} }
+#define SQR_FFT_TABLE3_SIZE 156
+#define SQR_FFT_THRESHOLD 3712
+
+#define MULLO_BASECASE_THRESHOLD 19
+#define MULLO_DC_THRESHOLD 0 /* never mpn_mullo_basecase */
+#define MULLO_MUL_N_THRESHOLD 22
+#define SQRLO_BASECASE_THRESHOLD 13
+#define SQRLO_DC_THRESHOLD 14
+#define SQRLO_SQR_THRESHOLD 7246
+
+#define DC_DIV_QR_THRESHOLD 23
+#define DC_DIVAPPR_Q_THRESHOLD 64
+#define DC_BDIV_QR_THRESHOLD 25
+#define DC_BDIV_Q_THRESHOLD 56
+
+#define INV_MULMOD_BNM1_THRESHOLD 77
+#define INV_NEWTON_THRESHOLD 31
+#define INV_APPR_THRESHOLD 37
+
+#define BINV_NEWTON_THRESHOLD 166
+#define REDC_1_TO_REDC_2_THRESHOLD 0 /* always */
+#define REDC_2_TO_REDC_N_THRESHOLD 198
+
+#define MU_DIV_QR_THRESHOLD 1787
+#define MU_DIVAPPR_Q_THRESHOLD 1558
+#define MUPI_DIV_QR_THRESHOLD 45
+#define MU_BDIV_QR_THRESHOLD 1718
+#define MU_BDIV_Q_THRESHOLD 1685
+
+#define POWM_SEC_TABLE 1,19,101,371,1486
+
+#define GET_STR_DC_THRESHOLD 21
+#define GET_STR_PRECOMPUTE_THRESHOLD 38
+#define SET_STR_DC_THRESHOLD 146
+#define SET_STR_PRECOMPUTE_THRESHOLD 531
+
+#define FAC_DSC_THRESHOLD 155
+#define FAC_ODD_THRESHOLD 24
+
+#define MATRIX22_STRASSEN_THRESHOLD 24
+#define HGCD_THRESHOLD 42
+#define HGCD_APPR_THRESHOLD 50
+#define HGCD_REDUCE_THRESHOLD 3664
+#define GCD_DC_THRESHOLD 156
+#define GCDEXT_DC_THRESHOLD 116
+#define JACOBI_BASE_METHOD 4
diff --git a/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora9/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora9/gmp-mparam.h
new file mode 100644
index 00000000000..b1ad6b4e8ee
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm/v7a/cora9/gmp-mparam.h
@@ -0,0 +1,209 @@
+/* gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 1999-2003, 2009, 2010, 2012-2015 Free Software
+Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 32
+#define GMP_LIMB_BYTES 4
+
+/* 1000 MHz Cortex-A9 */
+/* FFT tuning limit = 25 M */
+/* Generated by tuneup.c, 2014-03-12, gcc 4.6 */
+
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 5
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 4
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 8
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD MP_SIZE_T_MAX
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 12
+#define USE_PREINV_DIVREM_1 1 /* native */
+#define DIV_QR_1N_PI1_METHOD 1
+#define DIV_QR_1_NORM_THRESHOLD 5
+#define DIV_QR_1_UNNORM_THRESHOLD 1
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 20
+
+#define MUL_TOOM22_THRESHOLD 45
+#define MUL_TOOM33_THRESHOLD 129
+#define MUL_TOOM44_THRESHOLD 387
+#define MUL_TOOM6H_THRESHOLD 537
+#define MUL_TOOM8H_THRESHOLD 774
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 141
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 237
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 141
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 258
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 211
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 64
+#define SQR_TOOM3_THRESHOLD 189
+#define SQR_TOOM4_THRESHOLD 517
+#define SQR_TOOM6_THRESHOLD 656
+#define SQR_TOOM8_THRESHOLD 0 /* always */
+
+#define MULMID_TOOM42_THRESHOLD 62
+
+#define MULMOD_BNM1_THRESHOLD 23
+#define SQRMOD_BNM1_THRESHOLD 28
+
+#define MUL_FFT_MODF_THRESHOLD 630 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 630, 5}, { 29, 6}, { 15, 5}, { 33, 6}, \
+ { 17, 5}, { 35, 6}, { 36, 7}, { 19, 6}, \
+ { 40, 7}, { 21, 6}, { 43, 7}, { 23, 6}, \
+ { 47, 7}, { 25, 6}, { 51, 7}, { 27, 6}, \
+ { 55, 7}, { 29, 8}, { 15, 7}, { 37, 8}, \
+ { 19, 7}, { 43, 8}, { 23, 7}, { 51, 8}, \
+ { 27, 7}, { 57, 9}, { 15, 8}, { 31, 7}, \
+ { 65, 8}, { 35, 7}, { 71, 8}, { 43, 9}, \
+ { 23, 8}, { 55, 9}, { 31, 8}, { 71, 9}, \
+ { 39, 8}, { 83, 9}, { 47, 8}, { 99, 9}, \
+ { 55,10}, { 31, 9}, { 79,10}, { 47, 9}, \
+ { 103,11}, { 31,10}, { 63, 9}, { 135,10}, \
+ { 79, 9}, { 167,10}, { 95, 9}, { 191,10}, \
+ { 111,11}, { 63,10}, { 159,11}, { 95,10}, \
+ { 191, 9}, { 383,12}, { 63,11}, { 127,10}, \
+ { 255, 9}, { 511,10}, { 271, 9}, { 543,11}, \
+ { 159,10}, { 319, 9}, { 639,10}, { 335, 9}, \
+ { 671,11}, { 191,10}, { 383, 9}, { 767,10}, \
+ { 399, 9}, { 799,10}, { 415,11}, { 223,12}, \
+ { 127,11}, { 255,10}, { 511, 9}, { 1023,10}, \
+ { 543,11}, { 287,10}, { 607,11}, { 319,10}, \
+ { 671,11}, { 351,12}, { 191,11}, { 383,10}, \
+ { 799,11}, { 415,10}, { 831,13}, { 127,12}, \
+ { 255,11}, { 511,10}, { 1023,11}, { 543,10}, \
+ { 1087,11}, { 607,12}, { 319,11}, { 735,12}, \
+ { 383,11}, { 831,12}, { 447,11}, { 927,13}, \
+ { 255,12}, { 511,11}, { 1087,12}, { 575,11}, \
+ { 1215,12}, { 639,11}, { 1343,12}, { 703,13}, \
+ { 383,12}, { 767,11}, { 1535,12}, { 831,11}, \
+ { 1663,12}, { 895,14}, { 255,13}, { 511,12}, \
+ { 1023,11}, { 2047,12}, { 1151,13}, { 639,12}, \
+ { 1407,13}, { 767,12}, { 1663,13}, { 895,12}, \
+ { 1791,14}, { 511,13}, { 1023,12}, { 2111,13}, \
+ { 1151,12}, { 2431,13}, { 1279,12}, { 2559,13}, \
+ { 1407,14}, { 767,13}, { 1535,12}, { 3071,13}, \
+ { 1663,12}, { 3455,13}, { 1791,15}, { 511,14}, \
+ { 1023,13}, { 2047,12}, { 4095,13}, { 2175,12}, \
+ { 4479,13}, { 2431,14}, { 1279,13}, { 2559,12}, \
+ { 5119,13}, { 2815,12}, { 5631,14}, { 16384,15}, \
+ { 32768,16} }
+#define MUL_FFT_TABLE3_SIZE 157
+#define MUL_FFT_THRESHOLD 6784
+
+#define SQR_FFT_MODF_THRESHOLD 565 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 565, 5}, { 19, 4}, { 40, 5}, { 21, 4}, \
+ { 43, 5}, { 28, 6}, { 15, 5}, { 35, 6}, \
+ { 29, 7}, { 15, 6}, { 37, 7}, { 19, 6}, \
+ { 39, 7}, { 21, 6}, { 43, 7}, { 23, 6}, \
+ { 47, 7}, { 29, 8}, { 15, 7}, { 37, 8}, \
+ { 19, 7}, { 43, 8}, { 23, 7}, { 51, 8}, \
+ { 27, 7}, { 55, 9}, { 15, 8}, { 31, 7}, \
+ { 65, 8}, { 35, 7}, { 71, 8}, { 43, 9}, \
+ { 23, 8}, { 55,10}, { 15, 9}, { 31, 8}, \
+ { 71, 9}, { 39, 8}, { 83, 9}, { 47, 8}, \
+ { 95, 9}, { 55,10}, { 31, 9}, { 79,10}, \
+ { 47, 9}, { 103,11}, { 31,10}, { 63, 9}, \
+ { 135,10}, { 79, 9}, { 159,10}, { 95, 9}, \
+ { 191,10}, { 111,11}, { 63,10}, { 159,11}, \
+ { 95,10}, { 191, 9}, { 383,12}, { 63,11}, \
+ { 127,10}, { 255, 9}, { 511, 8}, { 1023, 9}, \
+ { 527,10}, { 271, 9}, { 543,10}, { 287,11}, \
+ { 159, 9}, { 639,10}, { 335, 9}, { 671,10}, \
+ { 351,11}, { 191,10}, { 383, 9}, { 767,10}, \
+ { 399, 9}, { 799,10}, { 415,11}, { 223,12}, \
+ { 127,11}, { 255,10}, { 511, 9}, { 1023,10}, \
+ { 543,11}, { 287,10}, { 671,11}, { 351,12}, \
+ { 191,11}, { 383,10}, { 799,11}, { 415,10}, \
+ { 831,13}, { 127,12}, { 255,11}, { 511,10}, \
+ { 1023,11}, { 543,10}, { 1087,11}, { 735,12}, \
+ { 383,11}, { 831,12}, { 447,11}, { 927,13}, \
+ { 255,12}, { 511,11}, { 1087,12}, { 575,11}, \
+ { 1151,12}, { 639,11}, { 1343,12}, { 703,13}, \
+ { 383,12}, { 767,11}, { 1535,12}, { 831,11}, \
+ { 1663,12}, { 959,13}, { 511,12}, { 1023,11}, \
+ { 2047,12}, { 1151,13}, { 639,12}, { 1407,13}, \
+ { 767,12}, { 1599,13}, { 895,12}, { 1791,14}, \
+ { 511,13}, { 1023,12}, { 2111,13}, { 1151,12}, \
+ { 2431,13}, { 1279,12}, { 2559,13}, { 1407,14}, \
+ { 767,13}, { 1535,12}, { 3071,13}, { 1663,12}, \
+ { 3455,13}, { 1791,15}, { 511,14}, { 1023,13}, \
+ { 2047,12}, { 4095,13}, { 2175,12}, { 4479,13}, \
+ { 2303,14}, { 1279,13}, { 2559,12}, { 5119,13}, \
+ { 2815,14}, { 16384,15}, { 32768,16} }
+#define SQR_FFT_TABLE3_SIZE 155
+#define SQR_FFT_THRESHOLD 5568
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 37
+#define MULLO_MUL_N_THRESHOLD 13463
+#define SQRLO_BASECASE_THRESHOLD 12
+#define SQRLO_DC_THRESHOLD 22
+#define SQRLO_SQR_THRESHOLD 10950
+
+#define DC_DIV_QR_THRESHOLD 32
+#define DC_DIVAPPR_Q_THRESHOLD 99
+#define DC_BDIV_QR_THRESHOLD 43
+#define DC_BDIV_Q_THRESHOLD 102
+
+#define INV_MULMOD_BNM1_THRESHOLD 88
+#define INV_NEWTON_THRESHOLD 141
+#define INV_APPR_THRESHOLD 111
+
+#define BINV_NEWTON_THRESHOLD 312
+#define REDC_1_TO_REDC_2_THRESHOLD 6
+#define REDC_2_TO_REDC_N_THRESHOLD 140
+
+#define MU_DIV_QR_THRESHOLD 2492
+#define MU_DIVAPPR_Q_THRESHOLD 2130
+#define MUPI_DIV_QR_THRESHOLD 55
+#define MU_BDIV_QR_THRESHOLD 2130
+#define MU_BDIV_Q_THRESHOLD 2172
+
+#define POWM_SEC_TABLE 40,53,56,71,1985
+
+#define GET_STR_DC_THRESHOLD 16
+#define GET_STR_PRECOMPUTE_THRESHOLD 33
+#define SET_STR_DC_THRESHOLD 172
+#define SET_STR_PRECOMPUTE_THRESHOLD 671
+
+#define FAC_DSC_THRESHOLD 309
+#define FAC_ODD_THRESHOLD 29
+
+#define MATRIX22_STRASSEN_THRESHOLD 24
+#define HGCD_THRESHOLD 61
+#define HGCD_APPR_THRESHOLD 50
+#define HGCD_REDUCE_THRESHOLD 4120
+#define GCD_DC_THRESHOLD 408
+#define GCDEXT_DC_THRESHOLD 303
+#define JACOBI_BASE_METHOD 4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/arm64/aors_n.asm
index a880cd35cfd..a880cd35cfd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm64/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm64/aorsmul_1.asm
index bf765a7f773..e033bda2bf1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm64/aorsmul_1.asm
@@ -87,7 +87,7 @@ L(1): tbz n, #1, L(2)
csinc x15, x15, x15, COND
stp x8, x9, [rp],#16
-L(2): lsr n, n, 2
+L(2): lsr n, n, #2
cbz n, L(end)
L(top): ldp x4, x5, [up],#16
diff --git a/Build/source/libs/gmp/gmp-src/mpn/arm64/bdiv_dbm1c.asm b/Build/source/libs/gmp/gmp-src/mpn/arm64/bdiv_dbm1c.asm
new file mode 100644
index 00000000000..3ccb2b60e53
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm64/bdiv_dbm1c.asm
@@ -0,0 +1,110 @@
+dnl ARM64 mpn_bdiv_dbm1c.
+
+dnl Copyright 2008, 2011, 2012, 2014 Free Software Foundation, Inc.
+
+dnl This file is part of the GNU MP Library.
+dnl
+dnl The GNU MP Library is free software; you can redistribute it and/or modify
+dnl it under the terms of either:
+dnl
+dnl * the GNU Lesser General Public License as published by the Free
+dnl Software Foundation; either version 3 of the License, or (at your
+dnl option) any later version.
+dnl
+dnl or
+dnl
+dnl * the GNU General Public License as published by the Free Software
+dnl Foundation; either version 2 of the License, or (at your option) any
+dnl later version.
+dnl
+dnl or both in parallel, as here.
+dnl
+dnl The GNU MP Library is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+dnl for more details.
+dnl
+dnl You should have received copies of the GNU General Public License and the
+dnl GNU Lesser General Public License along with the GNU MP Library. If not,
+dnl see https://www.gnu.org/licenses/.
+
+include(`../config.m4')
+
+C cycles/limb
+C Cortex-A53 ?
+C Cortex-A57 ?
+
+define(`qp', `x0')
+define(`up', `x1')
+define(`n', `x2')
+define(`bd', `x3')
+define(`cy', `x4')
+
+ASM_START()
+ TEXT
+ ALIGN(16)
+PROLOGUE(mpn_bdiv_dbm1c)
+ ldr x5, [up], #8
+ ands x6, n, #3
+ b.eq L(fi0)
+ cmp x6, #2
+ b.cc L(fi1)
+ b.eq L(fi2)
+
+L(fi3): mul x12, x5, bd
+ umulh x13, x5, bd
+ ldr x5, [up], #8
+ b L(lo3)
+
+L(fi0): mul x10, x5, bd
+ umulh x11, x5, bd
+ ldr x5, [up], #8
+ b L(lo0)
+
+L(fi1): subs n, n, #1
+ mul x12, x5, bd
+ umulh x13, x5, bd
+ b.ls L(wd1)
+ ldr x5, [up], #8
+ b L(lo1)
+
+L(fi2): mul x10, x5, bd
+ umulh x11, x5, bd
+ ldr x5, [up], #8
+ b L(lo2)
+
+L(top): ldr x5, [up], #8
+ subs x4, x4, x10
+ str x4, [qp], #8
+ sbc x4, x4, x11
+L(lo1): mul x10, x5, bd
+ umulh x11, x5, bd
+ ldr x5, [up], #8
+ subs x4, x4, x12
+ str x4, [qp], #8
+ sbc x4, x4, x13
+L(lo0): mul x12, x5, bd
+ umulh x13, x5, bd
+ ldr x5, [up], #8
+ subs x4, x4, x10
+ str x4, [qp], #8
+ sbc x4, x4, x11
+L(lo3): mul x10, x5, bd
+ umulh x11, x5, bd
+ ldr x5, [up], #8
+ subs x4, x4, x12
+ str x4, [qp], #8
+ sbc x4, x4, x13
+L(lo2): subs n, n, #4
+ mul x12, x5, bd
+ umulh x13, x5, bd
+ b.hi L(top)
+
+L(wd2): subs x4, x4, x10
+ str x4, [qp], #8
+ sbc x4, x4, x11
+L(wd1): subs x4, x4, x12
+ str x4, [qp]
+ sbc x0, x4, x13
+ ret
+EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/cnd_aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/arm64/cnd_aors_n.asm
index e7836500d5e..e7836500d5e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/cnd_aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm64/cnd_aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-src/mpn/arm64/com.asm b/Build/source/libs/gmp/gmp-src/mpn/arm64/com.asm
new file mode 100644
index 00000000000..9b8b3a7d08d
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm64/com.asm
@@ -0,0 +1,83 @@
+dnl ARM64 mpn_com.
+
+dnl Copyright 2013, 2014 Free Software Foundation, Inc.
+
+dnl This file is part of the GNU MP Library.
+dnl
+dnl The GNU MP Library is free software; you can redistribute it and/or modify
+dnl it under the terms of either:
+dnl
+dnl * the GNU Lesser General Public License as published by the Free
+dnl Software Foundation; either version 3 of the License, or (at your
+dnl option) any later version.
+dnl
+dnl or
+dnl
+dnl * the GNU General Public License as published by the Free Software
+dnl Foundation; either version 2 of the License, or (at your option) any
+dnl later version.
+dnl
+dnl or both in parallel, as here.
+dnl
+dnl The GNU MP Library is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+dnl for more details.
+dnl
+dnl You should have received copies of the GNU General Public License and the
+dnl GNU Lesser General Public License along with the GNU MP Library. If not,
+dnl see https://www.gnu.org/licenses/.
+
+include(`../config.m4')
+
+C cycles/limb
+C Cortex-A53 ?
+C Cortex-A57 ?
+
+changecom(@&*$)
+
+define(`rp', `x0')
+define(`up', `x1')
+define(`n', `x2')
+
+ASM_START()
+PROLOGUE(mpn_com)
+ cmp n, #3
+ b.le L(bc)
+
+C Copy until rp is 128-bit aligned
+ tbz rp, #3, L(al2)
+ ld1 {v22.1d}, [up], #8
+ sub n, n, #1
+ mvn v22.8b, v22.8b
+ st1 {v22.1d}, [rp], #8
+
+L(al2): ld1 {v26.2d}, [up], #16
+ subs n, n, #6
+ b.lt L(end)
+
+ ALIGN(16)
+L(top): ld1 {v22.2d}, [up], #16
+ mvn v26.16b, v26.16b
+ st1 {v26.2d}, [rp], #16
+ ld1 {v26.2d}, [up], #16
+ mvn v22.16b, v22.16b
+ st1 {v22.2d}, [rp], #16
+ subs n, n, #4
+ b.ge L(top)
+
+L(end): mvn v26.16b, v26.16b
+ st1 {v26.2d}, [rp], #16
+
+C Copy last 0-3 limbs. Note that rp is aligned after loop, but not when we
+C arrive here via L(bc)
+L(bc): tbz n, #1, L(tl1)
+ ld1 {v22.2d}, [up], #16
+ mvn v22.16b, v22.16b
+ st1 {v22.2d}, [rp], #16
+L(tl1): tbz n, #0, L(tl2)
+ ld1 {v22.1d}, [up]
+ mvn v22.8b, v22.8b
+ st1 {v22.1d}, [rp]
+L(tl2): ret
+EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/arm64/copyd.asm
index bb477716e5b..bb477716e5b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm64/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/arm64/copyi.asm
index 8f7dbd4f520..8f7dbd4f520 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm64/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/gcd_1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm64/gcd_1.asm
index d231dbcbb94..bc03d80ddf0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/gcd_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm64/gcd_1.asm
@@ -74,19 +74,19 @@ PROLOGUE(mpn_gcd_1)
mov x19, v0
cmp n, #1
- bne L(nby1)
+ b.ne L(nby1)
C Both U and V are single limbs, reduce with bmod if u0 >> v0.
ldr x3, [up]
cmp v0, x3, lsr #BMOD_THRES_LOG2
- bhi L(red1)
+ b.hi L(red1)
L(bmod):mov x3, #0 C carry argument
bl mpn_modexact_1c_odd
b L(red0)
L(nby1):cmp n, #BMOD_1_TO_MOD_1_THRESHOLD
- blo L(bmod)
+ b.lo L(bmod)
bl mpn_mod_1
@@ -94,7 +94,7 @@ L(red0):mov x3, x0
L(red1):cmp x3, #0
rbit x12, x3
clz x12, x12
- bne L(mid)
+ b.ne L(mid)
b L(end)
ALIGN(8)
@@ -116,7 +116,7 @@ L(mid): lsr x3, x3, x12 C
')
rbit x12, x1
clz x12, x12 C
- bne L(top) C
+ b.ne L(top) C
L(end): lsl x0, x19, x20
ldp x19, x20, [sp,#16]
diff --git a/Build/source/libs/gmp/gmp-src/mpn/arm64/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/arm64/gmp-mparam.h
new file mode 100644
index 00000000000..83309c68020
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm64/gmp-mparam.h
@@ -0,0 +1,241 @@
+/* gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 2015 Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 64
+#define GMP_LIMB_BYTES 8
+
+/* 2400 MHz AppliedMicro X-Gene */
+/* FFT tuning limit = 100 M */
+/* Generated by tuneup.c, 2015-10-18, gcc 4.8 */
+
+#define DIVREM_1_NORM_THRESHOLD 0 /* always */
+#define DIVREM_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1_1P_METHOD 1
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 7
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 6
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 0 /* never mpn_mod_1_1p */
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 28
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 13
+#define USE_PREINV_DIVREM_1 1
+#define DIV_QR_1N_PI1_METHOD 1
+#define DIV_QR_1_NORM_THRESHOLD 1
+#define DIV_QR_1_UNNORM_THRESHOLD 1
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always */
+#define BMOD_1_TO_MOD_1_THRESHOLD 30
+
+#define MUL_TOOM22_THRESHOLD 14
+#define MUL_TOOM33_THRESHOLD 57
+#define MUL_TOOM44_THRESHOLD 154
+#define MUL_TOOM6H_THRESHOLD 206
+#define MUL_TOOM8H_THRESHOLD 309
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 89
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 102
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 89
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 104
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 130
+
+#define SQR_BASECASE_THRESHOLD 6
+#define SQR_TOOM2_THRESHOLD 28
+#define SQR_TOOM3_THRESHOLD 93
+#define SQR_TOOM4_THRESHOLD 160
+#define SQR_TOOM6_THRESHOLD 197
+#define SQR_TOOM8_THRESHOLD 284
+
+#define MULMID_TOOM42_THRESHOLD 34
+
+#define MULMOD_BNM1_THRESHOLD 12
+#define SQRMOD_BNM1_THRESHOLD 13
+
+#define MUL_FFT_MODF_THRESHOLD 308 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 308, 5}, { 13, 6}, { 7, 5}, { 15, 6}, \
+ { 8, 5}, { 17, 6}, { 13, 7}, { 7, 6}, \
+ { 15, 7}, { 8, 6}, { 17, 7}, { 17, 8}, \
+ { 9, 7}, { 20, 8}, { 11, 7}, { 24, 8}, \
+ { 13, 7}, { 27, 9}, { 7, 8}, { 15, 7}, \
+ { 31, 8}, { 21, 9}, { 11, 8}, { 27, 9}, \
+ { 15, 8}, { 35, 9}, { 19, 8}, { 39, 9}, \
+ { 23, 8}, { 47, 9}, { 27,10}, { 15, 9}, \
+ { 31, 8}, { 63, 9}, { 39,10}, { 23, 9}, \
+ { 55,11}, { 15,10}, { 31, 9}, { 71,10}, \
+ { 39, 9}, { 83,10}, { 47, 9}, { 99,10}, \
+ { 55,11}, { 31,10}, { 63, 9}, { 127,10}, \
+ { 79, 9}, { 159,11}, { 47,10}, { 95, 9}, \
+ { 191, 8}, { 383,10}, { 103,12}, { 31,11}, \
+ { 63,10}, { 127, 9}, { 255, 8}, { 511,10}, \
+ { 135, 9}, { 271,10}, { 143,11}, { 79,10}, \
+ { 159, 9}, { 319, 8}, { 639,10}, { 175, 9}, \
+ { 351, 8}, { 703,11}, { 95,10}, { 191, 9}, \
+ { 383, 8}, { 767,10}, { 207, 9}, { 415, 8}, \
+ { 831,11}, { 111,10}, { 223,12}, { 63,11}, \
+ { 127,10}, { 255, 9}, { 511,10}, { 271, 9}, \
+ { 543,10}, { 287, 9}, { 575,11}, { 159,10}, \
+ { 319, 9}, { 639,11}, { 175,10}, { 351, 9}, \
+ { 703,12}, { 95,11}, { 191,10}, { 383, 9}, \
+ { 767,11}, { 207,10}, { 415, 9}, { 831,11}, \
+ { 223,10}, { 447,13}, { 63,12}, { 127,11}, \
+ { 255,10}, { 511,11}, { 271,10}, { 543,11}, \
+ { 287,10}, { 575,12}, { 159,11}, { 319,10}, \
+ { 639,11}, { 351,10}, { 703,11}, { 383,10}, \
+ { 767,11}, { 415,10}, { 831,12}, { 223,11}, \
+ { 447,10}, { 895,11}, { 479,10}, { 959,13}, \
+ { 127,11}, { 543,12}, { 287,11}, { 575,10}, \
+ { 1151,12}, { 319,11}, { 639,12}, { 351,11}, \
+ { 703,10}, { 1407, 9}, { 2815,12}, { 383,11}, \
+ { 767,12}, { 415,11}, { 831,10}, { 1663,12}, \
+ { 447,11}, { 895,10}, { 1791,12}, { 479,11}, \
+ { 959,10}, { 1919,14}, { 127,13}, { 255,12}, \
+ { 511,11}, { 1023,12}, { 543,11}, { 1087,12}, \
+ { 575,11}, { 1151,13}, { 319,12}, { 639,11}, \
+ { 1279,12}, { 703,11}, { 1407,13}, { 383,12}, \
+ { 767,11}, { 1535,12}, { 831,11}, { 1663,13}, \
+ { 447,12}, { 959,11}, { 1919,14}, { 255,13}, \
+ { 511,12}, { 1087,13}, { 575,12}, { 1215,13}, \
+ { 639,12}, { 1279,13}, { 703,12}, { 1407,14}, \
+ { 383,13}, { 767,12}, { 1535,13}, { 831,12}, \
+ { 1663,13}, { 895,12}, { 1791,13}, { 959,12}, \
+ { 1919,15}, { 255,14}, { 511,13}, { 1087,12}, \
+ { 2175,13}, { 1151,14}, { 639,13}, { 1407,12}, \
+ { 2815,14}, { 767,13}, { 1663,14}, { 895,13}, \
+ { 1919,15}, { 511,14}, { 1023,13}, { 2175,14}, \
+ { 1151,13}, { 2431,14}, { 1407,13}, { 2815,15}, \
+ { 767,14}, { 1919,16}, { 511,15}, { 1023,14}, \
+ { 2431,15}, { 1279,14}, { 2943,15}, { 32768,16}, \
+ { 65536,17}, { 131072,18}, { 262144,19}, { 524288,20}, \
+ {1048576,21}, {2097152,22}, {4194304,23}, {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 220
+#define MUL_FFT_THRESHOLD 3520
+
+#define SQR_FFT_MODF_THRESHOLD 272 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 272, 5}, { 13, 6}, { 7, 5}, { 15, 6}, \
+ { 17, 7}, { 9, 6}, { 19, 7}, { 17, 8}, \
+ { 9, 7}, { 20, 8}, { 11, 7}, { 24, 8}, \
+ { 13, 9}, { 7, 8}, { 15, 7}, { 31, 8}, \
+ { 21, 9}, { 11, 8}, { 27,10}, { 7, 9}, \
+ { 15, 8}, { 33, 9}, { 19, 8}, { 39, 9}, \
+ { 23, 8}, { 47, 9}, { 27,10}, { 15, 9}, \
+ { 39,10}, { 23, 9}, { 51,11}, { 15,10}, \
+ { 31, 9}, { 67,10}, { 39, 9}, { 79,10}, \
+ { 47, 9}, { 95,10}, { 55,11}, { 31,10}, \
+ { 63, 8}, { 255,10}, { 71, 9}, { 143, 8}, \
+ { 287,10}, { 79,11}, { 47,10}, { 95, 9}, \
+ { 191,12}, { 31,11}, { 63, 9}, { 255, 8}, \
+ { 511,10}, { 143, 9}, { 287,11}, { 79,10}, \
+ { 159, 9}, { 319, 8}, { 639,10}, { 175, 9}, \
+ { 351, 8}, { 703,11}, { 95,10}, { 191, 9}, \
+ { 383, 8}, { 767,10}, { 207, 9}, { 415,12}, \
+ { 63,10}, { 255, 9}, { 511,11}, { 143,10}, \
+ { 287, 9}, { 575,11}, { 159,10}, { 319, 9}, \
+ { 639,11}, { 175,10}, { 351, 9}, { 703,12}, \
+ { 95,11}, { 191,10}, { 383, 9}, { 767,11}, \
+ { 207,10}, { 415, 9}, { 831,11}, { 223,13}, \
+ { 63,11}, { 255,10}, { 511, 9}, { 1023,11}, \
+ { 287,10}, { 575, 9}, { 1151,12}, { 159,11}, \
+ { 319,10}, { 639,11}, { 351,10}, { 703, 9}, \
+ { 1407,12}, { 191,11}, { 383,10}, { 767,11}, \
+ { 415,10}, { 831,12}, { 223,11}, { 447,10}, \
+ { 895,11}, { 479,10}, { 959,12}, { 255,11}, \
+ { 511,10}, { 1023,12}, { 287,11}, { 575,10}, \
+ { 1151,12}, { 319,11}, { 639,12}, { 351,11}, \
+ { 703,10}, { 1407,12}, { 383,11}, { 767,12}, \
+ { 415,11}, { 831,10}, { 1663,12}, { 447,11}, \
+ { 895,12}, { 479,11}, { 959,10}, { 1919,13}, \
+ { 255,12}, { 511,11}, { 1023,12}, { 543,11}, \
+ { 1087,12}, { 575,11}, { 1151,13}, { 319,12}, \
+ { 639,11}, { 1279,12}, { 703,11}, { 1407,10}, \
+ { 2815,13}, { 383,12}, { 831,11}, { 1663,13}, \
+ { 447,12}, { 895,11}, { 1791,12}, { 959,11}, \
+ { 1919,14}, { 255,13}, { 511,12}, { 1087,13}, \
+ { 575,12}, { 1215,13}, { 639,12}, { 1279,13}, \
+ { 703,12}, { 1407,11}, { 2815,14}, { 383,13}, \
+ { 831,12}, { 1663,13}, { 895,12}, { 1791,13}, \
+ { 959,12}, { 1919,15}, { 255,14}, { 511,13}, \
+ { 1087,12}, { 2175,13}, { 1215,14}, { 639,13}, \
+ { 1407,12}, { 2815,14}, { 767,13}, { 1663,14}, \
+ { 895,13}, { 1919,12}, { 3839,15}, { 511,14}, \
+ { 1023,13}, { 2175,14}, { 1151,13}, { 2431,12}, \
+ { 4863,14}, { 1407,13}, { 2815,15}, { 767,14}, \
+ { 1919,13}, { 3839,16}, { 511,15}, { 1023,14}, \
+ { 2431,13}, { 4863,15}, { 1279,14}, { 2943,13}, \
+ { 5887,15}, { 32768,16}, { 65536,17}, { 131072,18}, \
+ { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
+ {4194304,23}, {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 210
+#define SQR_FFT_THRESHOLD 2496
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 45
+#define MULLO_MUL_N_THRESHOLD 7035
+#define SQRLO_BASECASE_THRESHOLD 4
+#define SQRLO_DC_THRESHOLD 108
+#define SQRLO_SQR_THRESHOLD 4955
+
+#define DC_DIV_QR_THRESHOLD 51
+#define DC_DIVAPPR_Q_THRESHOLD 184
+#define DC_BDIV_QR_THRESHOLD 47
+#define DC_BDIV_Q_THRESHOLD 50
+
+#define INV_MULMOD_BNM1_THRESHOLD 26
+#define INV_NEWTON_THRESHOLD 228
+#define INV_APPR_THRESHOLD 204
+
+#define BINV_NEWTON_THRESHOLD 248
+#define REDC_1_TO_REDC_N_THRESHOLD 60
+
+#define MU_DIV_QR_THRESHOLD 1210
+#define MU_DIVAPPR_Q_THRESHOLD 1234
+#define MUPI_DIV_QR_THRESHOLD 116
+#define MU_BDIV_QR_THRESHOLD 889
+#define MU_BDIV_Q_THRESHOLD 1210
+
+#define POWM_SEC_TABLE 1,23,194,712,2177
+
+#define GET_STR_DC_THRESHOLD 10
+#define GET_STR_PRECOMPUTE_THRESHOLD 22
+#define SET_STR_DC_THRESHOLD 1105
+#define SET_STR_PRECOMPUTE_THRESHOLD 3109
+
+#define FAC_DSC_THRESHOLD 298
+#define FAC_ODD_THRESHOLD 27
+
+#define MATRIX22_STRASSEN_THRESHOLD 15
+#define HGCD_THRESHOLD 134
+#define HGCD_APPR_THRESHOLD 166
+#define HGCD_REDUCE_THRESHOLD 2121
+#define GCD_DC_THRESHOLD 531
+#define GCDEXT_DC_THRESHOLD 386
+#define JACOBI_BASE_METHOD 4
+
+/* Tuneup completed successfully, took 65068 seconds */
diff --git a/Build/source/libs/gmp/gmp-src/mpn/arm64/hamdist.asm b/Build/source/libs/gmp/gmp-src/mpn/arm64/hamdist.asm
new file mode 100644
index 00000000000..d298b951cf6
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm64/hamdist.asm
@@ -0,0 +1,180 @@
+dnl ARM64 Neon mpn_hamdist -- mpn bit hamming distance.
+
+dnl Copyright 2013, 2014 Free Software Foundation, Inc.
+
+dnl This file is part of the GNU MP Library.
+dnl
+dnl The GNU MP Library is free software; you can redistribute it and/or modify
+dnl it under the terms of either:
+dnl
+dnl * the GNU Lesser General Public License as published by the Free
+dnl Software Foundation; either version 3 of the License, or (at your
+dnl option) any later version.
+dnl
+dnl or
+dnl
+dnl * the GNU General Public License as published by the Free Software
+dnl Foundation; either version 2 of the License, or (at your option) any
+dnl later version.
+dnl
+dnl or both in parallel, as here.
+dnl
+dnl The GNU MP Library is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+dnl for more details.
+dnl
+dnl You should have received copies of the GNU General Public License and the
+dnl GNU Lesser General Public License along with the GNU MP Library. If not,
+dnl see https://www.gnu.org/licenses/.
+
+include(`../config.m4')
+
+C cycles/limb
+C Cortex-A53 ?
+C Cortex-A57 ?
+
+C TODO
+C * Consider greater unrolling.
+C * Arrange to align the pointer, if that helps performance. Use the same
+C read-and-mask trick we use on PCs, for simplicity and performance. (Sorry
+C valgrind!)
+C * Explore if explicit align directives, e.g., "[ptr:128]" help.
+C * See rth's gmp-devel 2013-02/03 messages about final summation tricks.
+
+changecom(@&*$)
+
+C INPUT PARAMETERS
+define(`ap', x0)
+define(`bp', x1)
+define(`n', x2)
+
+C We sum into 16 16-bit counters in v4,v5, but at the end we sum them and end
+C up with 8 16-bit counters. Therefore, we can sum to 8(2^16-1) bits, or
+C (8*2^16-1)/64 = 0x1fff limbs. We use a chunksize close to that, but which
+C allows the huge count code to jump deep into the code (at L(chu)).
+
+define(`maxsize', 0x1fff)
+define(`chunksize',0x1ff0)
+
+ASM_START()
+PROLOGUE(mpn_hamdist)
+
+ mov x11, #maxsize
+ cmp n, x11
+ b.hi L(gt8k)
+
+L(lt8k):
+ movi v4.16b, #0 C clear summation register
+ movi v5.16b, #0 C clear summation register
+
+ tbz n, #0, L(xx0)
+ sub n, n, #1
+ ld1 {v0.1d}, [ap], #8 C load 1 limb
+ ld1 {v16.1d}, [bp], #8 C load 1 limb
+ eor v0.16b, v0.16b, v16.16b
+ cnt v6.16b, v0.16b
+ uadalp v4.8h, v6.16b C could also splat
+
+L(xx0): tbz n, #1, L(x00)
+ sub n, n, #2
+ ld1 {v0.2d}, [ap], #16 C load 2 limbs
+ ld1 {v16.2d}, [bp], #16 C load 2 limbs
+ eor v0.16b, v0.16b, v16.16b
+ cnt v6.16b, v0.16b
+ uadalp v4.8h, v6.16b
+
+L(x00): tbz n, #2, L(000)
+ subs n, n, #4
+ ld1 {v0.2d,v1.2d}, [ap], #32 C load 4 limbs
+ ld1 {v16.2d,v17.2d}, [bp], #32 C load 4 limbs
+ b.ls L(sum)
+
+L(gt4): ld1 {v2.2d,v3.2d}, [ap], #32 C load 4 limbs
+ ld1 {v18.2d,v19.2d}, [bp], #32 C load 4 limbs
+ eor v0.16b, v0.16b, v16.16b
+ eor v1.16b, v1.16b, v17.16b
+ sub n, n, #4
+ cnt v6.16b, v0.16b
+ cnt v7.16b, v1.16b
+ b L(mid)
+
+L(000): subs n, n, #8
+ b.lo L(e0)
+
+L(chu): ld1 {v2.2d,v3.2d}, [ap], #32 C load 4 limbs
+ ld1 {v0.2d,v1.2d}, [ap], #32 C load 4 limbs
+ ld1 {v18.2d,v19.2d}, [bp], #32 C load 4 limbs
+ ld1 {v16.2d,v17.2d}, [bp], #32 C load 4 limbs
+ eor v2.16b, v2.16b, v18.16b
+ eor v3.16b, v3.16b, v19.16b
+ cnt v6.16b, v2.16b
+ cnt v7.16b, v3.16b
+ subs n, n, #8
+ b.lo L(end)
+
+L(top): ld1 {v2.2d,v3.2d}, [ap], #32 C load 4 limbs
+ ld1 {v18.2d,v19.2d}, [bp], #32 C load 4 limbs
+ eor v0.16b, v0.16b, v16.16b
+ eor v1.16b, v1.16b, v17.16b
+ uadalp v4.8h, v6.16b
+ cnt v6.16b, v0.16b
+ uadalp v5.8h, v7.16b
+ cnt v7.16b, v1.16b
+L(mid): ld1 {v0.2d,v1.2d}, [ap], #32 C load 4 limbs
+ ld1 {v16.2d,v17.2d}, [bp], #32 C load 4 limbs
+ eor v2.16b, v2.16b, v18.16b
+ eor v3.16b, v3.16b, v19.16b
+ subs n, n, #8
+ uadalp v4.8h, v6.16b
+ cnt v6.16b, v2.16b
+ uadalp v5.8h, v7.16b
+ cnt v7.16b, v3.16b
+ b.hs L(top)
+
+L(end): uadalp v4.8h, v6.16b
+ uadalp v5.8h, v7.16b
+L(sum): eor v0.16b, v0.16b, v16.16b
+ eor v1.16b, v1.16b, v17.16b
+ cnt v6.16b, v0.16b
+ cnt v7.16b, v1.16b
+ uadalp v4.8h, v6.16b
+ uadalp v5.8h, v7.16b
+ add v4.8h, v4.8h, v5.8h
+ C we have 8 16-bit counts
+L(e0): uaddlp v4.4s, v4.8h C we have 4 32-bit counts
+ uaddlp v4.2d, v4.4s C we have 2 64-bit counts
+ mov x0, v4.d[0]
+ mov x1, v4.d[1]
+ add x0, x0, x1
+ ret
+
+C Code for count > maxsize. Splits operand and calls above code.
+define(`ap2', x5) C caller-saves reg not used above
+define(`bp2', x6) C caller-saves reg not used above
+L(gt8k):
+ mov x8, x30
+ mov x7, n C full count (caller-saves reg not used above)
+ mov x4, #0 C total sum (caller-saves reg not used above)
+ mov x9, #chunksize*8 C caller-saves reg not used above
+ mov x10, #chunksize C caller-saves reg not used above
+
+1: add ap2, ap, x9 C point at subsequent block
+ add bp2, bp, x9 C point at subsequent block
+ mov n, #chunksize-8 C count for this invocation, adjusted for entry pt
+ movi v4.16b, #0 C clear chunk summation register
+ movi v5.16b, #0 C clear chunk summation register
+ bl L(chu) C jump deep inside code
+ add x4, x4, x0
+ mov ap, ap2 C put chunk pointer in place for calls
+ mov bp, bp2 C put chunk pointer in place for calls
+ sub x7, x7, x10
+ cmp x7, x11
+ b.hi 1b
+
+ mov n, x7 C count for final invocation
+ bl L(lt8k)
+ add x0, x4, x0
+ mov x30, x8
+ ret
+EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/invert_limb.asm b/Build/source/libs/gmp/gmp-src/mpn/arm64/invert_limb.asm
index 2302d047e58..a94b0e96118 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/invert_limb.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm64/invert_limb.asm
@@ -40,31 +40,31 @@ C Compiler generated, mildly edited. Could surely be further optimised.
ASM_START()
PROLOGUE(mpn_invert_limb)
- lsr x2, x0, 54
+ lsr x2, x0, #54
adrp x1, approx_tab
and x2, x2, #0x1fe
add x1, x1, :lo12:approx_tab
ldrh w3, [x1,x2]
- lsr x4, x0, 24
- add x4, x4, 1
- ubfiz x2, x3, 11, 16
+ lsr x4, x0, #24
+ add x4, x4, #1
+ ubfiz x2, x3, #11, #16
umull x3, w3, w3
mul x3, x3, x4
sub x2, x2, #1
- sub x2, x2, x3, lsr 40
- lsl x3, x2, 60
+ sub x2, x2, x3, lsr #40
+ lsl x3, x2, #60
mul x1, x2, x2
msub x1, x1, x4, x3
- lsl x2, x2, 13
- add x1, x2, x1, lsr 47
- and x2, x0, 1
+ lsl x2, x2, #13
+ add x1, x2, x1, lsr #47
+ and x2, x0, #1
neg x3, x2
- and x3, x3, x1, lsr 1
- add x2, x2, x0, lsr 1
+ and x3, x3, x1, lsr #1
+ add x2, x2, x0, lsr #1
msub x2, x1, x2, x3
umulh x2, x2, x1
- lsl x1, x1, 31
- add x1, x1, x2, lsr 1
+ lsl x1, x1, #31
+ add x1, x1, x2, lsr #1
mul x3, x1, x0
umulh x2, x1, x0
adds x4, x3, x0
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/logops_n.asm b/Build/source/libs/gmp/gmp-src/mpn/arm64/logops_n.asm
index 0f75700cfd5..0f75700cfd5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/logops_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm64/logops_n.asm
diff --git a/Build/source/libs/gmp/gmp-src/mpn/arm64/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/arm64/lshift.asm
new file mode 100644
index 00000000000..bf6f0ad0721
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm64/lshift.asm
@@ -0,0 +1,122 @@
+dnl ARM64 mpn_lshift.
+
+dnl Copyright 2013, 2014 Free Software Foundation, Inc.
+
+dnl This file is part of the GNU MP Library.
+
+dnl The GNU MP Library is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU Lesser General Public License as published
+dnl by the Free Software Foundation; either version 3 of the License, or (at
+dnl your option) any later version.
+
+dnl The GNU MP Library is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+dnl License for more details.
+
+dnl You should have received a copy of the GNU Lesser General Public License
+dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/.
+
+include(`../config.m4')
+
+C cycles/limb
+C Cortex-A53 ?
+C Cortex-A57 ?
+
+changecom(@&*$)
+
+define(`rp_arg', `x0')
+define(`up', `x1')
+define(`n', `x2')
+define(`cnt', `x3')
+
+define(`rp', `x16')
+
+define(`tnc',`x8')
+
+ASM_START()
+PROLOGUE(mpn_lshift)
+ add rp, rp_arg, n, lsl #3
+ add up, up, n, lsl #3
+ sub tnc, xzr, cnt
+ tbz n, #0, L(bx0)
+
+L(bx1): ldr x4, [up,#-8]
+ tbnz n, #1, L(b11)
+
+L(b01): lsr x0, x4, tnc
+ lsl x18, x4, cnt
+ sub n, n, #1
+ cbnz n, L(gt1)
+ str x18, [rp,#-8]
+ ret
+L(gt1): ldp x4, x5, [up,#-24]
+ sub up, up, #8
+ add rp, rp, #16
+ b L(lo2)
+
+L(b11): lsr x0, x4, tnc
+ lsl x9, x4, cnt
+ ldp x6, x7, [up,#-24]
+ add n, n, #1
+ add up, up, #8
+ add rp, rp, #32
+ b L(lo0)
+
+L(bx0): ldp x4, x5, [up,#-16]
+ tbz n, #1, L(b00)
+
+L(b10): lsr x0, x5, tnc
+ lsl x13, x5, cnt
+ lsr x10, x4, tnc
+ lsl x18, x4, cnt
+ sub n, n, #2
+ cbnz n, L(gt2)
+ orr x10, x10, x13
+ stp x18, x10, [rp,#-16]
+ ret
+L(gt2): ldp x4, x5, [up,#-32]
+ orr x10, x10, x13
+ str x10, [rp,#-8]
+ sub up, up, #16
+ add rp, rp, #8
+ b L(lo2)
+
+L(b00): lsr x0, x5, tnc
+ lsl x13, x5, cnt
+ lsr x10, x4, tnc
+ lsl x9, x4, cnt
+ ldp x6, x7, [up,#-32]
+ orr x10, x10, x13
+ str x10, [rp,#-8]
+ add rp, rp, #24
+ b L(lo0)
+
+ ALIGN(16)
+L(top): ldp x4, x5, [up,#-48]
+ sub rp, rp, #32 C integrate with stp?
+ sub up, up, #32 C integrate with ldp?
+ orr x11, x11, x9
+ orr x10, x10, x13
+ stp x10, x11, [rp,#-16]
+L(lo2): lsr x11, x5, tnc
+ lsl x13, x5, cnt
+ lsr x10, x4, tnc
+ lsl x9, x4, cnt
+ ldp x6, x7, [up,#-32]
+ orr x11, x11, x18
+ orr x10, x10, x13
+ stp x10, x11, [rp,#-32]
+L(lo0): sub n, n, #4
+ lsr x11, x7, tnc
+ lsl x13, x7, cnt
+ lsr x10, x6, tnc
+ lsl x18, x6, cnt
+ cbnz n, L(top)
+
+L(end): orr x11, x11, x9
+ orr x10, x10, x13
+ stp x10, x11, [rp,#-48]
+ str x18, [rp,#-56]
+ ret
+EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-src/mpn/arm64/mod_34lsub1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm64/mod_34lsub1.asm
new file mode 100644
index 00000000000..96d38121f77
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm64/mod_34lsub1.asm
@@ -0,0 +1,123 @@
+dnl ARM64 mpn_mod_34lsub1 -- remainder modulo 2^48-1.
+
+dnl Copyright 2012-2014 Free Software Foundation, Inc.
+
+dnl This file is part of the GNU MP Library.
+dnl
+dnl The GNU MP Library is free software; you can redistribute it and/or modify
+dnl it under the terms of either:
+dnl
+dnl * the GNU Lesser General Public License as published by the Free
+dnl Software Foundation; either version 3 of the License, or (at your
+dnl option) any later version.
+dnl
+dnl or
+dnl
+dnl * the GNU General Public License as published by the Free Software
+dnl Foundation; either version 2 of the License, or (at your option) any
+dnl later version.
+dnl
+dnl or both in parallel, as here.
+dnl
+dnl The GNU MP Library is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+dnl for more details.
+dnl
+dnl You should have received copies of the GNU General Public License and the
+dnl GNU Lesser General Public License along with the GNU MP Library. If not,
+dnl see https://www.gnu.org/licenses/.
+
+include(`../config.m4')
+
+C cycles/limb
+C Cortex-A53 ?
+C Cortex-A57 ?
+
+define(`ap', x0)
+define(`n', x1)
+
+changecom(@&*$)
+
+C mp_limb_t mpn_mod_34lsub1 (mp_srcptr up, mp_size_t n)
+
+C TODO
+C * An alternative inner loop which could run at 0.722 c/l:
+C adds x8, x8, x2
+C adcs x9, x9, x3
+C ldp x2, x3, [ap, #-32]
+C adcs x10, x10, x4
+C adc x12, x12, xzr
+C adds x8, x8, x5
+C ldp x4, x5, [ap, #-16]
+C sub n, n, #6
+C adcs x9, x9, x6
+C adcs x10, x10, x7
+C ldp x6, x7, [ap], #48
+C adc x12, x12, xzr
+C tbz n, #63, L(top)
+
+ASM_START()
+ TEXT
+ ALIGN(32)
+PROLOGUE(mpn_mod_34lsub1)
+ subs n, n, #3
+ mov x8, #0
+ b.lt L(le2) C n <= 2
+
+ ldp x2, x3, [ap, #0]
+ ldr x4, [ap, #16]
+ add ap, ap, #24
+ subs n, n, #3
+ b.lt L(sum) C n <= 5
+ cmn x0, #0 C clear carry
+
+L(top): ldp x5, x6, [ap, #0]
+ ldr x7, [ap, #16]
+ add ap, ap, #24
+ sub n, n, #3
+ adcs x2, x2, x5
+ adcs x3, x3, x6
+ adcs x4, x4, x7
+ tbz n, #63, L(top)
+
+ adc x8, xzr, xzr C x8 <= 1
+
+L(sum): cmn n, #2
+ mov x5, #0
+ b.lo 1f
+ ldr x5, [ap], #8
+1: mov x6, #0
+ b.ls 1f
+ ldr x6, [ap], #8
+1: adds x2, x2, x5
+ adcs x3, x3, x6
+ adcs x4, x4, xzr
+ adc x8, x8, xzr C x8 <= 2
+
+L(sum2):
+ and x0, x2, #0xffffffffffff
+ add x0, x0, x2, lsr #48
+ add x0, x0, x8
+
+ lsl x8, x3, #16
+ and x1, x8, #0xffffffffffff
+ add x0, x0, x1
+ add x0, x0, x3, lsr #32
+
+ lsl x8, x4, #32
+ and x1, x8, #0xffffffffffff
+ add x0, x0, x1
+ add x0, x0, x4, lsr #16
+ ret
+
+L(le2): cmn n, #1
+ b.ne L(1)
+ ldp x2, x3, [ap]
+ mov x4, #0
+ b L(sum2)
+L(1): ldr x2, [ap]
+ and x0, x2, #0xffffffffffff
+ add x0, x0, x2, lsr #48
+ ret
+EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/arm64/mul_1.asm
index c0c2570f0d8..c13869938c1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm64/mul_1.asm
@@ -48,8 +48,8 @@ PROLOGUE(mpn_mul_1)
and n, n, #-4
cbz x6, L(fi0)
cmp x6, #2
- bcc L(fi1)
- beq L(fi2)
+ b.cc L(fi1)
+ b.eq L(fi2)
L(fi3): mul x8, x12, v0
umulh x13, x12, v0
diff --git a/Build/source/libs/gmp/gmp-src/mpn/arm64/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/arm64/popcount.asm
new file mode 100644
index 00000000000..8c95c1fcc5e
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm64/popcount.asm
@@ -0,0 +1,156 @@
+dnl ARM64 Neon mpn_popcount -- mpn bit population count.
+
+dnl Copyright 2013, 2014 Free Software Foundation, Inc.
+
+dnl This file is part of the GNU MP Library.
+dnl
+dnl The GNU MP Library is free software; you can redistribute it and/or modify
+dnl it under the terms of either:
+dnl
+dnl * the GNU Lesser General Public License as published by the Free
+dnl Software Foundation; either version 3 of the License, or (at your
+dnl option) any later version.
+dnl
+dnl or
+dnl
+dnl * the GNU General Public License as published by the Free Software
+dnl Foundation; either version 2 of the License, or (at your option) any
+dnl later version.
+dnl
+dnl or both in parallel, as here.
+dnl
+dnl The GNU MP Library is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+dnl for more details.
+dnl
+dnl You should have received copies of the GNU General Public License and the
+dnl GNU Lesser General Public License along with the GNU MP Library. If not,
+dnl see https://www.gnu.org/licenses/.
+
+include(`../config.m4')
+
+C cycles/limb
+C Cortex-A53 ?
+C Cortex-A57 ?
+
+C TODO
+C * Consider greater unrolling.
+C * Arrange to align the pointer, if that helps performance. Use the same
+C read-and-mask trick we use on PCs, for simplicity and performance. (Sorry
+C valgrind!)
+C * Explore if explicit align directives, e.g., "[ptr:128]" help.
+C * See rth's gmp-devel 2013-02/03 messages about final summation tricks.
+
+changecom(@&*$)
+
+C INPUT PARAMETERS
+define(`ap', x0)
+define(`n', x1)
+
+C We sum into 16 16-bit counters in v4,v5, but at the end we sum them and end
+C up with 8 16-bit counters. Therefore, we can sum to 8(2^16-1) bits, or
+C (8*2^16-1)/64 = 0x1fff limbs. We use a chunksize close to that, but which
+C allows the huge count code to jump deep into the code (at L(chu)).
+
+define(`maxsize', 0x1fff)
+define(`chunksize',0x1ff0)
+
+ASM_START()
+PROLOGUE(mpn_popcount)
+
+ mov x11, #maxsize
+ cmp n, x11
+ b.hi L(gt8k)
+
+L(lt8k):
+ movi v4.16b, #0 C clear summation register
+ movi v5.16b, #0 C clear summation register
+
+ tbz n, #0, L(xx0)
+ sub n, n, #1
+ ld1 {v0.1d}, [ap], #8 C load 1 limb
+ cnt v6.16b, v0.16b
+ uadalp v4.8h, v6.16b C could also splat
+
+L(xx0): tbz n, #1, L(x00)
+ sub n, n, #2
+ ld1 {v0.2d}, [ap], #16 C load 2 limbs
+ cnt v6.16b, v0.16b
+ uadalp v4.8h, v6.16b
+
+L(x00): tbz n, #2, L(000)
+ subs n, n, #4
+ ld1 {v0.2d,v1.2d}, [ap], #32 C load 4 limbs
+ b.ls L(sum)
+
+L(gt4): ld1 {v2.2d,v3.2d}, [ap], #32 C load 4 limbs
+ sub n, n, #4
+ cnt v6.16b, v0.16b
+ cnt v7.16b, v1.16b
+ b L(mid)
+
+L(000): subs n, n, #8
+ b.lo L(e0)
+
+L(chu): ld1 {v2.2d,v3.2d}, [ap], #32 C load 4 limbs
+ ld1 {v0.2d,v1.2d}, [ap], #32 C load 4 limbs
+ cnt v6.16b, v2.16b
+ cnt v7.16b, v3.16b
+ subs n, n, #8
+ b.lo L(end)
+
+L(top): ld1 {v2.2d,v3.2d}, [ap], #32 C load 4 limbs
+ uadalp v4.8h, v6.16b
+ cnt v6.16b, v0.16b
+ uadalp v5.8h, v7.16b
+ cnt v7.16b, v1.16b
+L(mid): ld1 {v0.2d,v1.2d}, [ap], #32 C load 4 limbs
+ subs n, n, #8
+ uadalp v4.8h, v6.16b
+ cnt v6.16b, v2.16b
+ uadalp v5.8h, v7.16b
+ cnt v7.16b, v3.16b
+ b.hs L(top)
+
+L(end): uadalp v4.8h, v6.16b
+ uadalp v5.8h, v7.16b
+L(sum): cnt v6.16b, v0.16b
+ cnt v7.16b, v1.16b
+ uadalp v4.8h, v6.16b
+ uadalp v5.8h, v7.16b
+ add v4.8h, v4.8h, v5.8h
+ C we have 8 16-bit counts
+L(e0): uaddlp v4.4s, v4.8h C we have 4 32-bit counts
+ uaddlp v4.2d, v4.4s C we have 2 64-bit counts
+ mov x0, v4.d[0]
+ mov x1, v4.d[1]
+ add x0, x0, x1
+ ret
+
+C Code for count > maxsize. Splits operand and calls above code.
+define(`ap2', x5) C caller-saves reg not used above
+L(gt8k):
+ mov x8, x30
+ mov x7, n C full count (caller-saves reg not used above)
+ mov x4, #0 C total sum (caller-saves reg not used above)
+ mov x9, #chunksize*8 C caller-saves reg not used above
+ mov x10, #chunksize C caller-saves reg not used above
+
+1: add ap2, ap, x9 C point at subsequent block
+ mov n, #chunksize-8 C count for this invocation, adjusted for entry pt
+ movi v4.16b, #0 C clear chunk summation register
+ movi v5.16b, #0 C clear chunk summation register
+ bl L(chu) C jump deep inside code
+ add x4, x4, x0
+ mov ap, ap2 C put chunk pointer in place for calls
+ sub x7, x7, x10
+ cmp x7, x11
+ b.hi 1b
+
+ mov n, x7 C count for final invocation
+ bl L(lt8k)
+ add x0, x4, x0
+ mov x30, x8
+ ret
+EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-src/mpn/arm64/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/arm64/rshift.asm
new file mode 100644
index 00000000000..010b4dce087
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm64/rshift.asm
@@ -0,0 +1,121 @@
+dnl ARM64 mpn_rshift.
+
+dnl Copyright 2013, 2014 Free Software Foundation, Inc.
+
+dnl This file is part of the GNU MP Library.
+
+dnl The GNU MP Library is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU Lesser General Public License as published
+dnl by the Free Software Foundation; either version 3 of the License, or (at
+dnl your option) any later version.
+
+dnl The GNU MP Library is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+dnl License for more details.
+
+dnl You should have received a copy of the GNU Lesser General Public License
+dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/.
+
+include(`../config.m4')
+
+C cycles/limb
+C Cortex-A53 ?
+C Cortex-A57 ?
+
+changecom(@&*$)
+
+define(`rp_arg', `x0')
+define(`up', `x1')
+define(`n', `x2')
+define(`cnt', `x3')
+
+define(`rp', `x16')
+
+define(`tnc',`x8')
+
+ASM_START()
+PROLOGUE(mpn_rshift)
+ mov rp, rp_arg
+ sub tnc, xzr, cnt
+ tbz n, #0, L(bx0)
+
+L(bx1): ldr x4, [up,#0]
+ tbnz n, #1, L(b11)
+
+L(b01): lsl x0, x4, tnc
+ lsr x18, x4, cnt
+ sub n, n, #1
+ cbnz n, L(gt1)
+ str x18, [rp,#0]
+ ret
+L(gt1): ldp x5, x4, [up,#8]
+ sub up, up, #8
+ sub rp, rp, #32
+ b L(lo2)
+
+L(b11): lsl x0, x4, tnc
+ lsr x9, x4, cnt
+ ldp x7, x6, [up,#8]
+ add n, n, #1
+ sub up, up, #24
+ sub rp, rp, #48
+ b L(lo0)
+
+L(bx0): ldp x5, x4, [up,#0]
+ tbz n, #1, L(b00)
+
+L(b10): lsl x0, x5, tnc
+ lsr x13, x5, cnt
+ lsl x10, x4, tnc
+ lsr x18, x4, cnt
+ sub n, n, #2
+ cbnz n, L(gt2)
+ orr x10, x10, x13
+ stp x10, x18, [rp,#0]
+ ret
+L(gt2): ldp x5, x4, [up,#16]
+ orr x10, x10, x13
+ str x10, [rp,#0]
+ sub rp, rp, #24
+ b L(lo2)
+
+L(b00): lsl x0, x5, tnc
+ lsr x13, x5, cnt
+ lsl x10, x4, tnc
+ lsr x9, x4, cnt
+ ldp x7, x6, [up,#16]
+ orr x10, x10, x13
+ str x10, [rp,#0]
+ sub up, up, #16
+ sub rp, rp, #40
+ b L(lo0)
+
+ ALIGN(16)
+L(top): ldp x5, x4, [up,#48]
+ add rp, rp, #32 C integrate with stp?
+ add up, up, #32 C integrate with ldp?
+ orr x11, x11, x9
+ orr x10, x10, x13
+ stp x11, x10, [rp,#16]
+L(lo2): lsl x11, x5, tnc
+ lsr x13, x5, cnt
+ lsl x10, x4, tnc
+ lsr x9, x4, cnt
+ ldp x7, x6, [up,#32]
+ orr x11, x11, x18
+ orr x10, x10, x13
+ stp x11, x10, [rp,#32]
+L(lo0): sub n, n, #4
+ lsl x11, x7, tnc
+ lsr x13, x7, cnt
+ lsl x10, x6, tnc
+ lsr x18, x6, cnt
+ cbnz n, L(top)
+
+L(end): orr x11, x11, x9
+ orr x10, x10, x13
+ stp x11, x10, [rp,#48]
+ str x18, [rp,#64]
+ ret
+EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-src/mpn/arm64/sec_tabselect.asm b/Build/source/libs/gmp/gmp-src/mpn/arm64/sec_tabselect.asm
new file mode 100644
index 00000000000..bf2962cfa1b
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/arm64/sec_tabselect.asm
@@ -0,0 +1,121 @@
+dnl ARM64 Neon mpn_sec_tabselect.
+
+dnl Contributed to the GNU project by Torbjörn Granlund.
+
+dnl Copyright 2011-2014 Free Software Foundation, Inc.
+
+dnl This file is part of the GNU MP Library.
+dnl
+dnl The GNU MP Library is free software; you can redistribute it and/or modify
+dnl it under the terms of either:
+dnl
+dnl * the GNU Lesser General Public License as published by the Free
+dnl Software Foundation; either version 3 of the License, or (at your
+dnl option) any later version.
+dnl
+dnl or
+dnl
+dnl * the GNU General Public License as published by the Free Software
+dnl Foundation; either version 2 of the License, or (at your option) any
+dnl later version.
+dnl
+dnl or both in parallel, as here.
+dnl
+dnl The GNU MP Library is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+dnl for more details.
+dnl
+dnl You should have received copies of the GNU General Public License and the
+dnl GNU Lesser General Public License along with the GNU MP Library. If not,
+dnl see https://www.gnu.org/licenses/.
+
+include(`../config.m4')
+
+
+C cycles/limb
+C Cortex-A53 ?
+C Cortex-A57 ?
+
+C void
+C mpn_sec_tabselect (mp_ptr rp, mp_srcptr *tab,
+C mp_size_t n, mp_size_t nents, mp_size_t which)
+
+changecom(@&*$)
+
+define(`rp', `x0')
+define(`tp', `x1')
+define(`n', `x2')
+define(`nents', `x3')
+define(`which', `x4')
+
+define(`i', `x5')
+define(`j', `x6')
+
+define(`maskq', `v4')
+
+ASM_START()
+PROLOGUE(mpn_sec_tabselect)
+ dup v7.2d, x4 C 2 `which' copies
+
+ mov x10, #1
+ dup v6.2d, x10 C 2 copies of 1
+
+ subs j, n, #4
+ b.mi L(outer_end)
+
+L(outer_top):
+ mov i, nents
+ mov x12, tp C preserve tp
+ movi v5.16b, #0 C zero 2 counter copies
+ movi v2.16b, #0
+ movi v3.16b, #0
+ ALIGN(16)
+L(tp4): cmeq maskq.2d, v5.2d, v7.2d C compare idx copies to `which' copies
+ ld1 {v0.2d,v1.2d}, [tp]
+ add v5.2d, v5.2d, v6.2d
+ bit v2.16b, v0.16b, maskq.16b
+ bit v3.16b, v1.16b, maskq.16b
+ add tp, tp, n, lsl #3
+ sub i, i, #1
+ cbnz i, L(tp4)
+ st1 {v2.2d,v3.2d}, [rp], #32
+ add tp, x12, #32 C restore tp, point to next slice
+ subs j, j, #4
+ b.pl L(outer_top)
+L(outer_end):
+
+ tbz n, #1, L(b0x)
+ mov i, nents
+ mov x12, tp
+ movi v5.16b, #0 C zero 2 counter copies
+ movi v2.16b, #0
+ ALIGN(16)
+L(tp2): cmeq maskq.2d, v5.2d, v7.2d
+ ld1 {v0.2d}, [tp]
+ add v5.2d, v5.2d, v6.2d
+ bit v2.16b, v0.16b, maskq.16b
+ add tp, tp, n, lsl #3
+ sub i, i, #1
+ cbnz i, L(tp2)
+ st1 {v2.2d}, [rp], #16
+ add tp, x12, #16
+
+L(b0x): tbz n, #0, L(b00)
+ mov i, nents
+ mov x12, tp
+ movi v5.16b, #0 C zero 2 counter copies
+ movi v2.16b, #0
+ ALIGN(16)
+L(tp1): cmeq maskq.2d, v5.2d, v7.2d
+ ld1 {v0.1d}, [tp]
+ add v5.2d, v5.2d, v6.2d C FIXME size should be `1d'
+ bit v2.8b, v0.8b, maskq.8b
+ add tp, tp, n, lsl #3
+ sub i, i, #1
+ cbnz i, L(tp1)
+ st1 {v2.1d}, [rp], #8
+ add tp, x12, #8
+
+L(b00): ret
+EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/asm-defs.m4 b/Build/source/libs/gmp/gmp-src/mpn/asm-defs.m4
index e573cc4ca82..e573cc4ca82 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/asm-defs.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/asm-defs.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cpp-ccas b/Build/source/libs/gmp/gmp-src/mpn/cpp-ccas
index 25f7cdcbebd..25f7cdcbebd 100755..100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cpp-ccas
+++ b/Build/source/libs/gmp/gmp-src/mpn/cpp-ccas
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/README b/Build/source/libs/gmp/gmp-src/mpn/cray/README
index 3a347d28050..3a347d28050 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/add_n.c b/Build/source/libs/gmp/gmp-src/mpn/cray/add_n.c
index 65b53bf87af..65b53bf87af 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/add_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/add_n.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/addmul_1.c b/Build/source/libs/gmp/gmp-src/mpn/cray/cfp/addmul_1.c
index e1d52e4a5f4..e1d52e4a5f4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/addmul_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/cfp/addmul_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/mul_1.c b/Build/source/libs/gmp/gmp-src/mpn/cray/cfp/mul_1.c
index 611a9d2532d..611a9d2532d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/mul_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/cfp/mul_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/mulwwc90.s b/Build/source/libs/gmp/gmp-src/mpn/cray/cfp/mulwwc90.s
index 71d2285fd7e..71d2285fd7e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/mulwwc90.s
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/cfp/mulwwc90.s
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/mulwwj90.s b/Build/source/libs/gmp/gmp-src/mpn/cray/cfp/mulwwj90.s
index 1c2c7cddbea..1c2c7cddbea 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/mulwwj90.s
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/cfp/mulwwj90.s
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/submul_1.c b/Build/source/libs/gmp/gmp-src/mpn/cray/cfp/submul_1.c
index b44c97df455..b44c97df455 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/submul_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/cfp/submul_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/cray/gmp-mparam.h
index ea8c25b32e2..ea8c25b32e2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/hamdist.c b/Build/source/libs/gmp/gmp-src/mpn/cray/hamdist.c
index 8eb9ba018cd..8eb9ba018cd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/hamdist.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/hamdist.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/addmul_1.c b/Build/source/libs/gmp/gmp-src/mpn/cray/ieee/addmul_1.c
index 6318b7c9c29..6318b7c9c29 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/addmul_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/ieee/addmul_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/cray/ieee/gmp-mparam.h
index 1fdc286574a..1fdc286574a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/ieee/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/invert_limb.c b/Build/source/libs/gmp/gmp-src/mpn/cray/ieee/invert_limb.c
index f951a6e1384..f951a6e1384 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/invert_limb.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/ieee/invert_limb.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/mul_1.c b/Build/source/libs/gmp/gmp-src/mpn/cray/ieee/mul_1.c
index dad09fa8cfd..dad09fa8cfd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/mul_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/ieee/mul_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/mul_basecase.c b/Build/source/libs/gmp/gmp-src/mpn/cray/ieee/mul_basecase.c
index 6dc845dd997..6dc845dd997 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/mul_basecase.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/ieee/mul_basecase.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/sqr_basecase.c b/Build/source/libs/gmp/gmp-src/mpn/cray/ieee/sqr_basecase.c
index 840d3dd2607..840d3dd2607 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/sqr_basecase.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/ieee/sqr_basecase.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/submul_1.c b/Build/source/libs/gmp/gmp-src/mpn/cray/ieee/submul_1.c
index 27a1939019f..27a1939019f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/submul_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/ieee/submul_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/lshift.c b/Build/source/libs/gmp/gmp-src/mpn/cray/lshift.c
index 074f38041a1..074f38041a1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/lshift.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/lshift.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/mulww.f b/Build/source/libs/gmp/gmp-src/mpn/cray/mulww.f
index 9bddf05bc97..9bddf05bc97 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/mulww.f
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/mulww.f
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/popcount.c b/Build/source/libs/gmp/gmp-src/mpn/cray/popcount.c
index 48ddab875ed..48ddab875ed 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/popcount.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/popcount.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/rshift.c b/Build/source/libs/gmp/gmp-src/mpn/cray/rshift.c
index 424bede9db7..424bede9db7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/rshift.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/rshift.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/sub_n.c b/Build/source/libs/gmp/gmp-src/mpn/cray/sub_n.c
index 0cc9ad1e04a..0cc9ad1e04a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/cray/sub_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/cray/sub_n.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add.c b/Build/source/libs/gmp/gmp-src/mpn/generic/add.c
index 559f26133cf..559f26133cf 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/add.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/add_1.c
index ca2d8668528..ca2d8668528 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/add_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_err1_n.c b/Build/source/libs/gmp/gmp-src/mpn/generic/add_err1_n.c
index b8cb75f6e89..b8cb75f6e89 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_err1_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/add_err1_n.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_err2_n.c b/Build/source/libs/gmp/gmp-src/mpn/generic/add_err2_n.c
index 4b0242a32df..4b0242a32df 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_err2_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/add_err2_n.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_err3_n.c b/Build/source/libs/gmp/gmp-src/mpn/generic/add_err3_n.c
index 28cd7facf93..28cd7facf93 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_err3_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/add_err3_n.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_n.c b/Build/source/libs/gmp/gmp-src/mpn/generic/add_n.c
index 1a076709004..1a076709004 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/add_n.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_n_sub_n.c b/Build/source/libs/gmp/gmp-src/mpn/generic/add_n_sub_n.c
index 012eb3e33ad..012eb3e33ad 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_n_sub_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/add_n_sub_n.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/addmul_1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/addmul_1.c
index d76b4ad1350..d76b4ad1350 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/addmul_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/addmul_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bdiv_dbm1c.c b/Build/source/libs/gmp/gmp-src/mpn/generic/bdiv_dbm1c.c
index 22c3cfd2c80..22c3cfd2c80 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bdiv_dbm1c.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/bdiv_dbm1c.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bdiv_q.c b/Build/source/libs/gmp/gmp-src/mpn/generic/bdiv_q.c
index 1fc1bb7c099..1fc1bb7c099 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bdiv_q.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/bdiv_q.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bdiv_q_1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/bdiv_q_1.c
index 74b247d5a9a..74b247d5a9a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bdiv_q_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/bdiv_q_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bdiv_qr.c b/Build/source/libs/gmp/gmp-src/mpn/generic/bdiv_qr.c
index 6a5eedbbc2f..6a5eedbbc2f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bdiv_qr.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/bdiv_qr.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/binvert.c b/Build/source/libs/gmp/gmp-src/mpn/generic/binvert.c
index be27ea552e7..be27ea552e7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/binvert.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/binvert.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/broot.c b/Build/source/libs/gmp/gmp-src/mpn/generic/broot.c
index 6974ac8b9e8..6974ac8b9e8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/broot.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/broot.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/brootinv.c b/Build/source/libs/gmp/gmp-src/mpn/generic/brootinv.c
index b96c97f1d36..b96c97f1d36 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/brootinv.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/brootinv.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bsqrt.c b/Build/source/libs/gmp/gmp-src/mpn/generic/bsqrt.c
index 18ba26f440b..d900f67b17b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bsqrt.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/bsqrt.c
@@ -1,6 +1,6 @@
/* mpn_bsqrt, a^{1/2} (mod 2^n).
-Copyright 2009, 2010, 2012 Free Software Foundation, Inc.
+Copyright 2009, 2010, 2012, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -43,6 +43,6 @@ mpn_bsqrt (mp_ptr rp, mp_srcptr ap, mp_bitcnt_t nb, mp_ptr tp)
n = nb / GMP_NUMB_BITS;
sp = tp + n;
- mpn_bsqrtinv (sp, ap, nb, tp);
- mpn_mullo_n (rp, sp, ap, n);
+ mpn_bsqrtinv (tp, ap, nb, sp);
+ mpn_mullo_n (rp, tp, ap, n);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bsqrtinv.c b/Build/source/libs/gmp/gmp-src/mpn/generic/bsqrtinv.c
index 33df6a3c158..b779b504d2d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bsqrtinv.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/bsqrtinv.c
@@ -2,7 +2,7 @@
Contributed to the GNU project by Martin Boij (as part of perfpow.c).
-Copyright 2009, 2010, 2012 Free Software Foundation, Inc.
+Copyright 2009, 2010, 2012, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -55,8 +55,7 @@ see https://www.gnu.org/licenses/. */
int
mpn_bsqrtinv (mp_ptr rp, mp_srcptr yp, mp_bitcnt_t bnb, mp_ptr tp)
{
- mp_ptr tp2, tp3;
- mp_limb_t k;
+ mp_ptr tp2;
mp_size_t bn, order[GMP_LIMB_BITS + 1];
int i, d;
@@ -65,8 +64,6 @@ mpn_bsqrtinv (mp_ptr rp, mp_srcptr yp, mp_bitcnt_t bnb, mp_ptr tp)
bn = 1 + bnb / GMP_LIMB_BITS;
tp2 = tp + bn;
- tp3 = tp + 2 * bn;
- k = 3;
rp[0] = 1;
if (bnb == 1)
@@ -88,9 +85,11 @@ mpn_bsqrtinv (mp_ptr rp, mp_srcptr yp, mp_bitcnt_t bnb, mp_ptr tp)
bnb = order[i];
bn = 1 + bnb / GMP_LIMB_BITS;
- mpn_mul_1 (tp, rp, bn, k);
+ mpn_sqrlo (tp, rp, bn);
+ mpn_mullo_n (tp2, rp, tp, bn); /* tp2 <- rp ^ 3 */
+
+ mpn_mul_1 (tp, rp, bn, 3);
- mpn_powlo (tp2, rp, &k, 1, bn, tp3);
mpn_mullo_n (rp, yp, tp2, bn);
#if HAVE_NATIVE_mpn_rsh1sub_n
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/cmp.c b/Build/source/libs/gmp/gmp-src/mpn/generic/cmp.c
index 18c7b428444..18c7b428444 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/cmp.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/cmp.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/cnd_add_n.c b/Build/source/libs/gmp/gmp-src/mpn/generic/cnd_add_n.c
index 443f9858da5..443f9858da5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/cnd_add_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/cnd_add_n.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/cnd_sub_n.c b/Build/source/libs/gmp/gmp-src/mpn/generic/cnd_sub_n.c
index bd8e029a36f..bd8e029a36f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/cnd_sub_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/cnd_sub_n.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpf/pow_ui.c b/Build/source/libs/gmp/gmp-src/mpn/generic/cnd_swap.c
index a5af4310590..6b7419ffe78 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpf/pow_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/cnd_swap.c
@@ -1,6 +1,8 @@
-/* mpf_pow_ui -- Compute b^e.
+/* mpn_cnd_swap
-Copyright 1998, 1999, 2001, 2012 Free Software Foundation, Inc.
+ Contributed to the GNU project by Niels Möller
+
+Copyright 2013, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -32,23 +34,18 @@ see https://www.gnu.org/licenses/. */
#include "gmp-impl.h"
void
-mpf_pow_ui (mpf_ptr r, mpf_srcptr b, unsigned long int e)
+mpn_cnd_swap (mp_limb_t cnd, volatile mp_limb_t *ap, volatile mp_limb_t *bp,
+ mp_size_t n)
{
- mpf_t b2;
-
- mpf_init2 (b2, mpf_get_prec (r));
- mpf_set (b2, b);
-
- if ((e & 1) != 0)
- mpf_set (r, b);
- else
- mpf_set_ui (r, 1);
- while (e >>= 1)
+ volatile mp_limb_t mask = - (mp_limb_t) (cnd != 0);
+ mp_size_t i;
+ for (i = 0; i < n; i++)
{
- mpf_mul (b2, b2, b2);
- if ((e & 1) != 0)
- mpf_mul (r, r, b2);
+ mp_limb_t a, b, t;
+ a = ap[i];
+ b = bp[i];
+ t = (a ^ b) & mask;
+ ap[i] = a ^ t;
+ bp[i] = b ^ t;
}
-
- mpf_clear (b2);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/com.c b/Build/source/libs/gmp/gmp-src/mpn/generic/com.c
index cd8551df5ba..cd8551df5ba 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/com.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/com.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/comb_tables.c b/Build/source/libs/gmp/gmp-src/mpn/generic/comb_tables.c
index 41bcb5f879d..41bcb5f879d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/comb_tables.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/comb_tables.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/copyd.c b/Build/source/libs/gmp/gmp-src/mpn/generic/copyd.c
index ba3380a82bb..ba3380a82bb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/copyd.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/copyd.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/copyi.c b/Build/source/libs/gmp/gmp-src/mpn/generic/copyi.c
index 0c39b4534bb..0c39b4534bb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/copyi.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/copyi.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_bdiv_q.c b/Build/source/libs/gmp/gmp-src/mpn/generic/dcpi1_bdiv_q.c
index a7b86c96d44..a7b86c96d44 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_bdiv_q.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/dcpi1_bdiv_q.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_bdiv_qr.c b/Build/source/libs/gmp/gmp-src/mpn/generic/dcpi1_bdiv_qr.c
index 8a251f8d9d8..8a251f8d9d8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_bdiv_qr.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/dcpi1_bdiv_qr.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_div_q.c b/Build/source/libs/gmp/gmp-src/mpn/generic/dcpi1_div_q.c
index 32d74c31a9f..2b5da523d4f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_div_q.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/dcpi1_div_q.c
@@ -54,12 +54,12 @@ mpn_dcpi1_div_q (mp_ptr qp, mp_ptr np, mp_size_t nn,
ASSERT (nn - dn >= 3);
ASSERT (dp[dn-1] & GMP_NUMB_HIGHBIT);
- tp = TMP_SALLOC_LIMBS (nn + 1);
+ tp = TMP_ALLOC_LIMBS (nn + 1);
MPN_COPY (tp + 1, np, nn);
tp[0] = 0;
qn = nn - dn;
- wp = TMP_SALLOC_LIMBS (qn + 1);
+ wp = TMP_ALLOC_LIMBS (qn + 1);
qh = mpn_dcpi1_divappr_q (wp, tp, nn + 1, dp, dn, dinv);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_div_qr.c b/Build/source/libs/gmp/gmp-src/mpn/generic/dcpi1_div_qr.c
index 4d80c7b7692..9583ec3fe06 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_div_qr.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/dcpi1_div_qr.c
@@ -104,7 +104,7 @@ mpn_dcpi1_div_qr (mp_ptr qp,
ASSERT (nn - dn >= 3); /* to adhere to mpn_sbpi1_div_qr's limits */
ASSERT (dp[dn-1] & GMP_NUMB_HIGHBIT);
- tp = TMP_SALLOC_LIMBS (dn);
+ tp = TMP_ALLOC_LIMBS (dn);
qn = nn - dn;
qp += qn;
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_divappr_q.c b/Build/source/libs/gmp/gmp-src/mpn/generic/dcpi1_divappr_q.c
index c7b03c7f496..c7b03c7f496 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_divappr_q.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/dcpi1_divappr_q.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_q.c b/Build/source/libs/gmp/gmp-src/mpn/generic/div_q.c
index aabcef08254..a4fe0e369e5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_q.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/div_q.c
@@ -277,7 +277,7 @@ mpn_div_q (mp_ptr qp,
}
else /* divisor is already normalised */
{
- MPN_COPY (new_np, np + nn - new_nn, new_nn); /* pointless of MU will be used */
+ MPN_COPY (new_np, np + nn - new_nn, new_nn); /* pointless if MU will be used */
new_dp = (mp_ptr) dp + dn - (qn + 1);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_1.c
index 09401ac5358..09401ac5358 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1n_pi1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_1n_pi1.c
index 229ee091a43..2656e9aef9c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1n_pi1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_1n_pi1.c
@@ -49,7 +49,7 @@ see https://www.gnu.org/licenses/. */
/* FIXME: Duplicated in mod_1_1.c. Move to gmp-impl.h */
-#if defined (__GNUC__)
+#if defined (__GNUC__) && ! defined (NO_ASM)
#if HAVE_HOST_CPU_FAMILY_x86 && W_TYPE_SIZE == 32
#define add_mssaaaa(m, s1, s0, a1, a0, b1, b0) \
@@ -130,7 +130,7 @@ see https://www.gnu.org/licenses/. */
"%2" ((UDItype)(a0)), "r" ((UDItype)(b0)) __CLOBBER_CC)
#endif
-#if defined (__arm__) && W_TYPE_SIZE == 32
+#if defined (__arm__) && !defined (__thumb__) && W_TYPE_SIZE == 32
#define add_mssaaaa(m, sh, sl, ah, al, bh, bl) \
__asm__ ( "adds %2, %5, %6\n\t" \
"adcs %1, %3, %4\n\t" \
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1n_pi2.c b/Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_1n_pi2.c
index 7ea3410cb6e..e311fd2f519 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1n_pi2.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_1n_pi2.c
@@ -50,7 +50,7 @@ see https://www.gnu.org/licenses/. */
* add_sssaaaa is like longlong.h's add_ssaaaa but propagating
carry-out into an additional sum operand.
*/
-#if defined (__GNUC__) && ! defined (__INTEL_COMPILER)
+#if defined (__GNUC__) && ! defined (__INTEL_COMPILER) && ! defined (NO_ASM)
#if HAVE_HOST_CPU_FAMILY_x86 && W_TYPE_SIZE == 32
#define add_sssaaaa(s2, s1, s0, a1, a0, b1, b0) \
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1u_pi2.c b/Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_1u_pi2.c
index 83d66ef29e3..4c92eab7ada 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1u_pi2.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_1u_pi2.c
@@ -50,7 +50,7 @@ see https://www.gnu.org/licenses/. */
* add_sssaaaa is like longlong.h's add_ssaaaa but propagating
carry-out into an additional sum operand.
*/
-#if defined (__GNUC__) && ! defined (__INTEL_COMPILER)
+#if defined (__GNUC__) && ! defined (__INTEL_COMPILER) && ! defined (NO_ASM)
#if HAVE_HOST_CPU_FAMILY_x86 && W_TYPE_SIZE == 32
#define add_sssaaaa(s2, s1, s0, a1, a0, b1, b0) \
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_2.c b/Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_2.c
index cb07e0e3b42..a60a2e24494 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_2.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_2.c
@@ -55,7 +55,7 @@ see https://www.gnu.org/licenses/. */
* add_csaac accepts two addends and a carry in, and generates a sum
and a carry out. A little like a "full adder".
*/
-#if defined (__GNUC__) && ! defined (__INTEL_COMPILER)
+#if defined (__GNUC__) && ! defined (__INTEL_COMPILER) && ! defined (NO_ASM)
#if HAVE_HOST_CPU_FAMILY_x86 && W_TYPE_SIZE == 32
#define add_sssaaaa(s2, s1, s0, a1, a0, b1, b0) \
@@ -152,7 +152,7 @@ see https://www.gnu.org/licenses/. */
\
sub_ddmmss (r1, r0, n1, n0, _t1, _t0); \
\
- _mask = -(mp_limb_t) (r1 >= _q1 & (r1 > _q1 | r0 >= _q0)); /* (r1,r0) >= (q1,q0) */ \
+ _mask = -(mp_limb_t) ((r1 >= _q1) & ((r1 > _q1) | (r0 >= _q0))); /* (r1,r0) >= (q1,q0) */ \
add_ssaaaa (r1, r0, r1, r0, d1 & _mask, d0 & _mask); \
sub_ddmmss (_q3, _q2, _q3, _q2, CNST_LIMB(0), -_mask); \
\
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_2n_pi1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_2n_pi1.c
index da500e2170e..da500e2170e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_2n_pi1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_2n_pi1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_2u_pi1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_2u_pi1.c
index 0b9ddf57532..0b9ddf57532 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_2u_pi1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/div_qr_2u_pi1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dive_1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/dive_1.c
index 1c0a4e894db..1c0a4e894db 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dive_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/dive_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/diveby3.c b/Build/source/libs/gmp/gmp-src/mpn/generic/diveby3.c
index 2ffd9fe777d..2ffd9fe777d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/diveby3.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/diveby3.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divexact.c b/Build/source/libs/gmp/gmp-src/mpn/generic/divexact.c
index 47a47e3d80a..47a47e3d80a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divexact.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/divexact.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divis.c b/Build/source/libs/gmp/gmp-src/mpn/generic/divis.c
index 9e162e60d2d..c7fd41e10ee 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divis.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/divis.c
@@ -4,7 +4,7 @@
CERTAIN TO BE SUBJECT TO INCOMPATIBLE CHANGES OR DISAPPEAR COMPLETELY IN
FUTURE GNU MP RELEASES.
-Copyright 2001, 2002, 2005, 2009 Free Software Foundation, Inc.
+Copyright 2001, 2002, 2005, 2009, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -113,12 +113,12 @@ mpn_divisible_p (mp_srcptr ap, mp_size_t an,
return mpn_modexact_1_odd (ap, an, dlow) == 0;
}
+ count_trailing_zeros (twos, dlow);
if (dn == 2)
{
mp_limb_t dsecond = dp[1];
if (dsecond <= dmask)
{
- count_trailing_zeros (twos, dlow);
dlow = (dlow >> twos) | (dsecond << (GMP_NUMB_BITS-twos));
ASSERT_LIMB (dlow);
return MPN_MOD_OR_MODEXACT_1_ODD (ap, an, dlow) == 0;
@@ -135,10 +135,8 @@ mpn_divisible_p (mp_srcptr ap, mp_size_t an,
TMP_MARK;
- rp = TMP_ALLOC_LIMBS (an + 1);
- qp = TMP_ALLOC_LIMBS (an - dn + 1); /* FIXME: Could we avoid this? */
-
- count_trailing_zeros (twos, dp[0]);
+ TMP_ALLOC_LIMBS_2 (rp, an + 1,
+ qp, an - dn + 1); /* FIXME: Could we avoid this? */
if (twos != 0)
{
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divrem.c b/Build/source/libs/gmp/gmp-src/mpn/generic/divrem.c
index f420992746e..f420992746e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divrem.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/divrem.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divrem_1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/divrem_1.c
index 9157b5735e2..9157b5735e2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divrem_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/divrem_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divrem_2.c b/Build/source/libs/gmp/gmp-src/mpn/generic/divrem_2.c
index 30d24bb1025..30d24bb1025 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divrem_2.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/divrem_2.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dump.c b/Build/source/libs/gmp/gmp-src/mpn/generic/dump.c
index 3a73fe49e31..3a73fe49e31 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dump.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/dump.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/fib2_ui.c b/Build/source/libs/gmp/gmp-src/mpn/generic/fib2_ui.c
index eb6e56e736e..336e6db15b2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/fib2_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/fib2_ui.c
@@ -132,12 +132,8 @@ mpn_fib2_ui (mp_ptr fp, mp_ptr f1p, unsigned long int n)
/* Calculate F[2k+1] = 4*F[k]^2 - F[k-1]^2 + 2*(-1)^k.
n&mask is the low bit of our implied k. */
-#if HAVE_NATIVE_mpn_rsblsh2_n || HAVE_NATIVE_mpn_rsblsh_n
#if HAVE_NATIVE_mpn_rsblsh2_n
fp[size] = mpn_rsblsh2_n (fp, fp, xp, size);
-#else /* HAVE_NATIVE_mpn_rsblsh_n */
- fp[size] = mpn_rsblsh_n (fp, fp, xp, size, 2);
-#endif
if ((n & mask) == 0)
MPN_INCR_U(fp, size + 1, 2); /* possible +2 */
else
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcd.c b/Build/source/libs/gmp/gmp-src/mpn/generic/gcd.c
index b14e1ad888f..b14e1ad888f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcd.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/gcd.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcd_1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/gcd_1.c
index f6dcb4a2eb8..f6dcb4a2eb8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcd_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/gcd_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcd_subdiv_step.c b/Build/source/libs/gmp/gmp-src/mpn/generic/gcd_subdiv_step.c
index 18634bec9fa..18634bec9fa 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcd_subdiv_step.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/gcd_subdiv_step.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcdext.c b/Build/source/libs/gmp/gmp-src/mpn/generic/gcdext.c
index 1c4ff75aab8..1c4ff75aab8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcdext.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/gcdext.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcdext_1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/gcdext_1.c
index ea46cceb729..ea46cceb729 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcdext_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/gcdext_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcdext_lehmer.c b/Build/source/libs/gmp/gmp-src/mpn/generic/gcdext_lehmer.c
index 547f69a4098..547f69a4098 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcdext_lehmer.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/gcdext_lehmer.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/get_d.c b/Build/source/libs/gmp/gmp-src/mpn/generic/get_d.c
index d73d314856c..d73d314856c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/get_d.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/get_d.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/get_str.c b/Build/source/libs/gmp/gmp-src/mpn/generic/get_str.c
index 42e93c9cee4..42e93c9cee4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/get_str.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/get_str.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/generic/gmp-mparam.h
index 7dc057aa0c3..7dc057aa0c3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd.c b/Build/source/libs/gmp/gmp-src/mpn/generic/hgcd.c
index e27a9bdd820..e27a9bdd820 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/hgcd.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd2.c b/Build/source/libs/gmp/gmp-src/mpn/generic/hgcd2.c
index 129637063f9..129637063f9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd2.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/hgcd2.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd2_jacobi.c b/Build/source/libs/gmp/gmp-src/mpn/generic/hgcd2_jacobi.c
index e59c32a3414..e59c32a3414 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd2_jacobi.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/hgcd2_jacobi.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_appr.c b/Build/source/libs/gmp/gmp-src/mpn/generic/hgcd_appr.c
index 660219372f8..660219372f8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_appr.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/hgcd_appr.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_jacobi.c b/Build/source/libs/gmp/gmp-src/mpn/generic/hgcd_jacobi.c
index 0a49e5b3a78..0a49e5b3a78 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_jacobi.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/hgcd_jacobi.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_matrix.c b/Build/source/libs/gmp/gmp-src/mpn/generic/hgcd_matrix.c
index d9db331603b..d9db331603b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_matrix.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/hgcd_matrix.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_reduce.c b/Build/source/libs/gmp/gmp-src/mpn/generic/hgcd_reduce.c
index 6f3d61eceab..68b33c9ea70 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_reduce.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/hgcd_reduce.c
@@ -54,12 +54,8 @@ submul (mp_ptr rp, mp_size_t rn,
tp = TMP_ALLOC_LIMBS (an + bn);
mpn_mul (tp, ap, an, bp, bn);
- if (an + bn > rn)
- {
- ASSERT (tp[rn] == 0);
- bn--;
- }
- ASSERT_NOCARRY (mpn_sub (rp, rp, rn, tp, an + bn));
+ ASSERT ((an + bn <= rn) || (tp[rn] == 0));
+ ASSERT_NOCARRY (mpn_sub (rp, rp, rn, tp, an + bn - (an + bn > rn)));
TMP_FREE;
while (rn > an && (rp[rn-1] == 0))
@@ -143,9 +139,9 @@ hgcd_matrix_apply (const struct hgcd_matrix *M,
/* In the range of interest, mulmod_bnm1 should always beat mullo. */
modn = mpn_mulmod_bnm1_next_size (nn + 1);
- scratch = TMP_ALLOC_LIMBS (mpn_mulmod_bnm1_itch (modn, modn, M->n));
- tp = TMP_ALLOC_LIMBS (modn);
- sp = TMP_ALLOC_LIMBS (modn);
+ TMP_ALLOC_LIMBS_3 (tp, modn,
+ sp, modn,
+ scratch, mpn_mulmod_bnm1_itch (modn, modn, M->n));
ASSERT (n <= 2*modn);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_step.c b/Build/source/libs/gmp/gmp-src/mpn/generic/hgcd_step.c
index e58894ff3b4..e58894ff3b4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_step.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/hgcd_step.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/invert.c b/Build/source/libs/gmp/gmp-src/mpn/generic/invert.c
index 4bc459d728b..ba6364e1875 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/invert.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/invert.c
@@ -6,7 +6,7 @@
SAFE TO REACH THEM THROUGH DOCUMENTED INTERFACES. IN FACT, IT IS ALMOST
GUARANTEED THAT THEY WILL CHANGE OR DISAPPEAR IN A FUTURE GMP RELEASE.
-Copyright (C) 2007, 2009, 2010, 2012 Free Software Foundation, Inc.
+Copyright (C) 2007, 2009, 2010, 2012, 2014-2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -49,19 +49,18 @@ mpn_invert (mp_ptr ip, mp_srcptr dp, mp_size_t n, mp_ptr scratch)
if (n == 1)
invert_limb (*ip, *dp);
- else {
- TMP_DECL;
-
- TMP_MARK;
- if (BELOW_THRESHOLD (n, INV_APPR_THRESHOLD))
- {
+ else if (BELOW_THRESHOLD (n, INV_APPR_THRESHOLD))
+ {
/* Maximum scratch needed by this branch: 2*n */
mp_size_t i;
mp_ptr xp;
xp = scratch; /* 2 * n limbs */
- for (i = n - 1; i >= 0; i--)
- xp[i] = GMP_NUMB_MAX;
+ /* n > 1 here */
+ i = n;
+ do
+ xp[--i] = GMP_NUMB_MAX;
+ while (i);
mpn_com (xp + n, dp, n);
if (n == 2) {
mpn_divrem_2 (ip, 0, xp, 4, dp);
@@ -71,8 +70,8 @@ mpn_invert (mp_ptr ip, mp_srcptr dp, mp_size_t n, mp_ptr scratch)
/* FIXME: should we use dcpi1_div_q, for big sizes? */
mpn_sbpi1_div_q (ip, xp, 2 * n, dp, n, inv.inv32);
}
- }
- else { /* Use approximated inverse; correct the result if needed. */
+ }
+ else { /* Use approximated inverse; correct the result if needed. */
mp_limb_t e; /* The possible error in the approximate inverse */
ASSERT ( mpn_invert_itch (n) >= mpn_invertappr_itch (n) );
@@ -81,11 +80,12 @@ mpn_invert (mp_ptr ip, mp_srcptr dp, mp_size_t n, mp_ptr scratch)
if (UNLIKELY (e)) { /* Assume the error can only be "0" (no error) or "1". */
/* Code to detect and correct the "off by one" approximation. */
mpn_mul_n (scratch, ip, dp, n);
- ASSERT_NOCARRY (mpn_add_n (scratch + n, scratch + n, dp, n));
- if (! mpn_add (scratch, scratch, 2*n, dp, n))
- MPN_INCR_U (ip, n, 1); /* The value was wrong, correct it. */
+ e = mpn_add_n (scratch, scratch, dp, n); /* FIXME: we only need e.*/
+ if (LIKELY(e)) /* The high part can not give a carry by itself. */
+ e = mpn_add_nc (scratch + n, scratch + n, dp, n, e); /* FIXME:e */
+ /* If the value was wrong (no carry), correct it (increment). */
+ e ^= CNST_LIMB (1);
+ MPN_INCR_U (ip, n, e);
}
- }
- TMP_FREE;
}
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/invertappr.c b/Build/source/libs/gmp/gmp-src/mpn/generic/invertappr.c
index 12326b8b75c..c9d34758fae 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/invertappr.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/invertappr.c
@@ -12,7 +12,7 @@
SAFE TO REACH THEM THROUGH DOCUMENTED INTERFACES. IN FACT, IT IS ALMOST
GUARANTEED THAT THEY WILL CHANGE OR DISAPPEAR IN A FUTURE GMP RELEASE.
-Copyright (C) 2007, 2009, 2010, 2012 Free Software Foundation, Inc.
+Copyright (C) 2007, 2009, 2010, 2012, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -40,10 +40,6 @@ You should have received copies of the GNU General Public License and the
GNU Lesser General Public License along with the GNU MP Library. If not,
see https://www.gnu.org/licenses/. */
-/* FIXME: Remove NULL and TMP_*, as soon as all the callers properly
- allocate and pass the scratch to the function. */
-#include <stdlib.h> /* for NULL */
-
#include "gmp.h"
#include "gmp-impl.h"
#include "longlong.h"
@@ -87,27 +83,27 @@ see https://www.gnu.org/licenses/. */
{dp,n}*(B^n+{ip,n}) < B^{2n} <= {dp,n}*(B^n+{ip,n}+1) ;
the function mpn_invert (ip, dp, n, scratch) should be used instead. */
-/* Maximum scratch needed by this branch (at tp): 3*n + 2 */
+/* Maximum scratch needed by this branch (at xp): 2*n */
static mp_limb_t
-mpn_bc_invertappr (mp_ptr ip, mp_srcptr dp, mp_size_t n, mp_ptr tp)
+mpn_bc_invertappr (mp_ptr ip, mp_srcptr dp, mp_size_t n, mp_ptr xp)
{
- mp_ptr xp;
-
ASSERT (n > 0);
ASSERT (dp[n-1] & GMP_NUMB_HIGHBIT);
ASSERT (! MPN_OVERLAP_P (ip, n, dp, n));
- ASSERT (! MPN_OVERLAP_P (ip, n, tp, mpn_invertappr_itch(n)));
- ASSERT (! MPN_OVERLAP_P (dp, n, tp, mpn_invertappr_itch(n)));
+ ASSERT (! MPN_OVERLAP_P (ip, n, xp, mpn_invertappr_itch(n)));
+ ASSERT (! MPN_OVERLAP_P (dp, n, xp, mpn_invertappr_itch(n)));
/* Compute a base value of r limbs. */
if (n == 1)
invert_limb (*ip, *dp);
else {
mp_size_t i;
- xp = tp + n + 2; /* 2 * n limbs */
- for (i = n - 1; i >= 0; i--)
- xp[i] = GMP_NUMB_MAX;
+ /* n > 1 here */
+ i = n;
+ do
+ xp[--i] = GMP_NUMB_MAX;
+ while (i);
mpn_com (xp + n, dp, n);
/* Now xp contains B^2n - {dp,n}*B^n - 1 */
@@ -123,7 +119,7 @@ mpn_bc_invertappr (mp_ptr ip, mp_srcptr dp, mp_size_t n, mp_ptr tp)
mpn_sbpi1_divappr_q (ip, xp, 2 * n, dp, n, inv.inv32);
else
mpn_dcpi1_divappr_q (ip, xp, 2 * n, dp, n, &inv);
- MPN_DECR_U(ip, n, 1);
+ MPN_DECR_U(ip, n, CNST_LIMB (1));
return 1;
}
}
@@ -140,9 +136,12 @@ mpn_bc_invertappr (mp_ptr ip, mp_srcptr dp, mp_size_t n, mp_ptr tp)
Some adaptations were introduced, to allow product mod B^m-1 and return the
value e.
- USE_MUL_N = 1 (default) introduces a correction in such a way that "the
- value of B^{n+h}-T computed at step 8 cannot exceed B^n-1" (the book reads
- "2B^n-1"). This correction should not require to modify the proof.
+ We introduced a correction in such a way that "the value of
+ B^{n+h}-T computed at step 8 cannot exceed B^n-1" (the book reads
+ "2B^n-1").
+
+ Maximum scratch needed by this branch <= 2*n, but have to fit 3*rn
+ in the scratch, i.e. 3*rn <= 2*n: we require n>4.
We use a wrapped product modulo B^m-1. NOTE: is there any normalisation
problem for the [0] class? It shouldn't: we compute 2*|A*X_h - B^{n+h}| <
@@ -152,22 +151,20 @@ mpn_bc_invertappr (mp_ptr ip, mp_srcptr dp, mp_size_t n, mp_ptr tp)
incremented (because A < B^n).
FIXME: the scratch for mulmod_bnm1 does not currently fit in the scratch, it
- is allocated apart. */
-
-#define USE_MUL_N 1
+ is allocated apart.
+ */
mp_limb_t
mpn_ni_invertappr (mp_ptr ip, mp_srcptr dp, mp_size_t n, mp_ptr scratch)
{
mp_limb_t cy;
- mp_ptr xp;
mp_size_t rn, mn;
mp_size_t sizes[NPOWS], *sizp;
mp_ptr tp;
TMP_DECL;
-#define rp scratch
+#define xp scratch
- ASSERT (n > 2);
+ ASSERT (n > 4);
ASSERT (dp[n-1] & GMP_NUMB_HIGHBIT);
ASSERT (! MPN_OVERLAP_P (ip, n, dp, n));
ASSERT (! MPN_OVERLAP_P (ip, n, scratch, mpn_invertappr_itch(n)));
@@ -179,8 +176,8 @@ mpn_ni_invertappr (mp_ptr ip, mp_srcptr dp, mp_size_t n, mp_ptr scratch)
rn = n;
do {
*sizp = rn;
- rn = ((rn) >> 1) + 1;
- sizp ++;
+ rn = (rn >> 1) + 1;
+ ++sizp;
} while (ABOVE_THRESHOLD (rn, INV_NEWTON_THRESHOLD));
/* We search the inverse of 0.{dp,n}, we compute it as 1.{ip,n} */
@@ -199,12 +196,7 @@ mpn_ni_invertappr (mp_ptr ip, mp_srcptr dp, mp_size_t n, mp_ptr scratch)
}
/* Use Newton's iterations to get the desired precision.*/
- /* define rp scratch; 2rn + 1 limbs <= 2(n>>1 + 1) + 1 <= n + 3 limbs */
- /* Maximum scratch needed by this branch <= 3*n + 2 */
- xp = scratch + n + 3; /* n + rn limbs */
while (1) {
- mp_limb_t method;
-
n = *--sizp;
/*
v n v
@@ -218,65 +210,75 @@ mpn_ni_invertappr (mp_ptr ip, mp_srcptr dp, mp_size_t n, mp_ptr scratch)
/* FIXME: We do only need {xp,n+1}*/
mpn_mul (xp, dp - n, n, ip - rn, rn);
mpn_add_n (xp + rn, xp + rn, dp - n, n - rn + 1);
- method = 1; /* Remember we used (truncated) product */
- /* We computed cy.{xp,rn+n} <- 1.{ip,rn} * 0.{dp,n} */
- } else { /* Use B^n-1 wraparound */
+ cy = CNST_LIMB(1); /* Remember we truncated, Mod B^(n+1) */
+ /* We computed (truncated) {xp,n+1} <- 1.{ip,rn} * 0.{dp,n} */
+ } else { /* Use B^mn-1 wraparound */
mpn_mulmod_bnm1 (xp, mn, dp - n, n, ip - rn, rn, tp);
/* We computed {xp,mn} <- {ip,rn} * {dp,n} mod (B^mn-1) */
/* We know that 2*|ip*dp + dp*B^rn - B^{rn+n}| < B^mn-1 */
/* Add dp*B^rn mod (B^mn-1) */
ASSERT (n >= mn - rn);
- xp[mn] = 1 + mpn_add_n (xp + rn, xp + rn, dp - n, mn - rn);
- cy = mpn_add_n (xp, xp, dp - (n - (mn - rn)), n - (mn - rn));
- MPN_INCR_U (xp + n - (mn - rn), mn + 1 - n + (mn - rn), cy);
- ASSERT (n + rn >= mn);
- /* Subtract B^{rn+n} */
- MPN_DECR_U (xp + rn + n - mn, 2*mn + 1 - rn - n, 1);
- if (xp[mn])
- MPN_INCR_U (xp, mn, xp[mn] - 1);
- else
- MPN_DECR_U (xp, mn, 1);
- method = 0; /* Remember we are working Mod B^m-1 */
+ cy = mpn_add_n (xp + rn, xp + rn, dp - n, mn - rn);
+ cy = mpn_add_nc (xp, xp, dp - (n - (mn - rn)), n - (mn - rn), cy);
+ /* Subtract B^{rn+n}, maybe only compensate the carry*/
+ xp[mn] = CNST_LIMB (1); /* set a limit for DECR_U */
+ MPN_DECR_U (xp + rn + n - mn, 2 * mn + 1 - rn - n, CNST_LIMB (1) - cy);
+ MPN_DECR_U (xp, mn, CNST_LIMB (1) - xp[mn]); /* if DECR_U eroded xp[mn] */
+ cy = CNST_LIMB(0); /* Remember we are working Mod B^mn-1 */
}
- if (xp[n] < 2) { /* "positive" residue class */
- cy = 1;
- while (xp[n] || mpn_cmp (xp, dp - n, n)>0) {
- xp[n] -= mpn_sub_n (xp, xp, dp - n, n);
- cy ++;
+ if (xp[n] < CNST_LIMB (2)) { /* "positive" residue class */
+ cy = xp[n]; /* 0 <= cy <= 1 here. */
+#if HAVE_NATIVE_mpn_sublsh1_n
+ if (cy++) {
+ if (mpn_cmp (xp, dp - n, n) > 0) {
+ mp_limb_t chk;
+ chk = mpn_sublsh1_n (xp, xp, dp - n, n);
+ ASSERT (chk == xp[n]);
+ ++ cy;
+ } else
+ ASSERT_CARRY (mpn_sub_n (xp, xp, dp - n, n));
}
- MPN_DECR_U(ip - rn, rn, cy);
- ASSERT (cy <= 4); /* at most 3 cycles for the while above */
- ASSERT_NOCARRY (mpn_sub_n (xp, dp - n, xp, n));
- ASSERT (xp[n] == 0);
- } else { /* "negative" residue class */
- mpn_com (xp, xp, n + 1);
- MPN_INCR_U(xp, n + 1, method);
- ASSERT (xp[n] <= 1);
-#if USE_MUL_N
- if (xp[n]) {
- MPN_INCR_U(ip - rn, rn, 1);
+#else /* no mpn_sublsh1_n*/
+ if (cy++ && !mpn_sub_n (xp, xp, dp - n, n)) {
ASSERT_CARRY (mpn_sub_n (xp, xp, dp - n, n));
+ ++cy;
}
#endif
+ /* 1 <= cy <= 3 here. */
+#if HAVE_NATIVE_mpn_rsblsh1_n
+ if (mpn_cmp (xp, dp - n, n) > 0) {
+ ASSERT_NOCARRY (mpn_rsblsh1_n (xp + n, xp, dp - n, n));
+ ++cy;
+ } else
+ ASSERT_NOCARRY (mpn_sub_nc (xp + 2 * n - rn, dp - rn, xp + n - rn, rn, mpn_cmp (xp, dp - n, n - rn) > 0));
+#else /* no mpn_rsblsh1_n*/
+ if (mpn_cmp (xp, dp - n, n) > 0) {
+ ASSERT_NOCARRY (mpn_sub_n (xp, xp, dp - n, n));
+ ++cy;
+ }
+ ASSERT_NOCARRY (mpn_sub_nc (xp + 2 * n - rn, dp - rn, xp + n - rn, rn, mpn_cmp (xp, dp - n, n - rn) > 0));
+#endif
+ MPN_DECR_U(ip - rn, rn, cy); /* 1 <= cy <= 4 here. */
+ } else { /* "negative" residue class */
+ ASSERT (xp[n] >= GMP_NUMB_MAX - CNST_LIMB(1));
+ MPN_DECR_U(xp, n + 1, cy);
+ if (xp[n] != GMP_NUMB_MAX) {
+ MPN_INCR_U(ip - rn, rn, CNST_LIMB (1));
+ ASSERT_CARRY (mpn_add_n (xp, xp, dp - n, n));
+ }
+ mpn_com (xp + 2 * n - rn, xp + n - rn, rn);
}
- /* Compute x_ju_j. FIXME:We need {rp+rn,rn}, mulhi? */
-#if USE_MUL_N
- mpn_mul_n (rp, xp + n - rn, ip - rn, rn);
-#else
- rp[2*rn] = 0;
- mpn_mul (rp, xp + n - rn, rn + xp[n], ip - rn, rn);
-#endif
- /* We need _only_ the carry from the next addition */
- /* Anyway 2rn-n <= 2... we don't need to optimise. */
- cy = mpn_add_n (rp + rn, rp + rn, xp + n - rn, 2*rn - n);
- cy = mpn_add_nc (ip - n, rp + 3*rn - n, xp + rn, n - rn, cy);
- MPN_INCR_U (ip - rn, rn, cy + (1-USE_MUL_N)*(rp[2*rn] + xp[n]));
+ /* Compute x_ju_j. FIXME:We need {xp+rn,rn}, mulhi? */
+ mpn_mul_n (xp, xp + 2 * n - rn, ip - rn, rn);
+ cy = mpn_add_n (xp + rn, xp + rn, xp + 2 * n - rn, 2 * rn - n);
+ cy = mpn_add_nc (ip - n, xp + 3 * rn - n, xp + n + rn, n - rn, cy);
+ MPN_INCR_U (ip - rn, rn, cy);
if (sizp == sizes) { /* Get out of the cycle */
/* Check for possible carry propagation from below. */
- cy = rp[3*rn - n - 1] > GMP_NUMB_MAX - 7; /* Be conservative. */
-/* cy = mpn_add_1 (rp + rn, rp + rn, 2*rn - n, 4); */
+ cy = xp[3 * rn - n - 1] > GMP_NUMB_MAX - CNST_LIMB (7); /* Be conservative. */
+ /* cy = mpn_add_1 (xp + rn, xp + rn, 2*rn - n, 4); */
break;
}
rn = n;
@@ -284,20 +286,12 @@ mpn_ni_invertappr (mp_ptr ip, mp_srcptr dp, mp_size_t n, mp_ptr scratch)
TMP_FREE;
return cy;
-#undef rp
+#undef xp
}
mp_limb_t
mpn_invertappr (mp_ptr ip, mp_srcptr dp, mp_size_t n, mp_ptr scratch)
{
- mp_limb_t res;
- TMP_DECL;
-
- TMP_MARK;
-
- if (scratch == NULL)
- scratch = TMP_ALLOC_LIMBS (mpn_invertappr_itch (n));
-
ASSERT (n > 0);
ASSERT (dp[n-1] & GMP_NUMB_HIGHBIT);
ASSERT (! MPN_OVERLAP_P (ip, n, dp, n));
@@ -305,10 +299,7 @@ mpn_invertappr (mp_ptr ip, mp_srcptr dp, mp_size_t n, mp_ptr scratch)
ASSERT (! MPN_OVERLAP_P (dp, n, scratch, mpn_invertappr_itch(n)));
if (BELOW_THRESHOLD (n, INV_NEWTON_THRESHOLD))
- res = mpn_bc_invertappr (ip, dp, n, scratch);
+ return mpn_bc_invertappr (ip, dp, n, scratch);
else
- res = mpn_ni_invertappr (ip, dp, n, scratch);
-
- TMP_FREE;
- return res;
+ return mpn_ni_invertappr (ip, dp, n, scratch);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/jacbase.c b/Build/source/libs/gmp/gmp-src/mpn/generic/jacbase.c
index cd52bc95133..cd52bc95133 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/jacbase.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/jacbase.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/jacobi.c b/Build/source/libs/gmp/gmp-src/mpn/generic/jacobi.c
index bdc3ec67da1..bdc3ec67da1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/jacobi.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/jacobi.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/jacobi_2.c b/Build/source/libs/gmp/gmp-src/mpn/generic/jacobi_2.c
index 9f480f7834a..9f480f7834a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/jacobi_2.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/jacobi_2.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/logops_n.c b/Build/source/libs/gmp/gmp-src/mpn/generic/logops_n.c
index 1b534ff4ba5..1b534ff4ba5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/logops_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/logops_n.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/lshift.c b/Build/source/libs/gmp/gmp-src/mpn/generic/lshift.c
index 5182632976c..5182632976c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/lshift.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/lshift.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/lshiftc.c b/Build/source/libs/gmp/gmp-src/mpn/generic/lshiftc.c
index e8051b7b931..e8051b7b931 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/lshiftc.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/lshiftc.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/matrix22_mul.c b/Build/source/libs/gmp/gmp-src/mpn/generic/matrix22_mul.c
index 59531eb1b26..59531eb1b26 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/matrix22_mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/matrix22_mul.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/matrix22_mul1_inverse_vector.c b/Build/source/libs/gmp/gmp-src/mpn/generic/matrix22_mul1_inverse_vector.c
index 83b2fb51343..83b2fb51343 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/matrix22_mul1_inverse_vector.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/matrix22_mul1_inverse_vector.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mod_1.c
index 0212020201f..0212020201f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mod_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1_1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mod_1_1.c
index 2e111399eda..62e2daaf408 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mod_1_1.c
@@ -48,7 +48,7 @@ see https://www.gnu.org/licenses/. */
* add_mssaaaa is like longlong.h's add_ssaaaa, but also generates
* carry out, in the form of a mask. */
-#if defined (__GNUC__)
+#if defined (__GNUC__) && ! defined (NO_ASM)
#if HAVE_HOST_CPU_FAMILY_x86 && W_TYPE_SIZE == 32
#define add_mssaaaa(m, s1, s0, a1, a0, b1, b0) \
@@ -129,7 +129,7 @@ see https://www.gnu.org/licenses/. */
"%2" ((UDItype)(a0)), "r" ((UDItype)(b0)) __CLOBBER_CC)
#endif
-#if defined (__arm__) && W_TYPE_SIZE == 32
+#if defined (__arm__) && !defined (__thumb__) && W_TYPE_SIZE == 32
#define add_mssaaaa(m, sh, sl, ah, al, bh, bl) \
__asm__ ( "adds %2, %5, %6\n\t" \
"adcs %1, %3, %4\n\t" \
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1_2.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mod_1_2.c
index 7acf3dbdd10..7acf3dbdd10 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1_2.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mod_1_2.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1_3.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mod_1_3.c
index f4137f43155..f4137f43155 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1_3.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mod_1_3.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1_4.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mod_1_4.c
index 716a0c66de4..716a0c66de4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1_4.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mod_1_4.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_34lsub1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mod_34lsub1.c
index 7c07af7acc2..7c07af7acc2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_34lsub1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mod_34lsub1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mode1o.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mode1o.c
index ec91da223d4..ec91da223d4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mode1o.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mode1o.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_bdiv_q.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mu_bdiv_q.c
index 0a8010ec153..6f5f3166caa 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_bdiv_q.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mu_bdiv_q.c
@@ -231,6 +231,8 @@ mpn_mu_bdiv_q_itch (mp_size_t nn, mp_size_t dn)
mp_size_t qn, in, tn, itch_binvert, itch_out, itches;
mp_size_t b;
+ ASSERT_ALWAYS (DC_BDIV_Q_THRESHOLD < MU_BDIV_Q_THRESHOLD);
+
qn = nn;
if (qn > dn)
@@ -247,9 +249,7 @@ mpn_mu_bdiv_q_itch (mp_size_t nn, mp_size_t dn)
tn = mpn_mulmod_bnm1_next_size (dn);
itch_out = mpn_mulmod_bnm1_itch (tn, dn, in);
}
- itch_binvert = mpn_binvert_itch (in);
itches = dn + tn + itch_out;
- return in + MAX (itches, itch_binvert);
}
else
{
@@ -264,8 +264,10 @@ mpn_mu_bdiv_q_itch (mp_size_t nn, mp_size_t dn)
tn = mpn_mulmod_bnm1_next_size (qn);
itch_out = mpn_mulmod_bnm1_itch (tn, qn, in);
}
- itch_binvert = mpn_binvert_itch (in);
itches = tn + itch_out;
- return in + MAX (itches, itch_binvert);
}
+
+ itch_binvert = mpn_binvert_itch (in);
+ return in + MAX (itches, itch_binvert);
}
+
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_bdiv_qr.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mu_bdiv_qr.c
index d265440f2ba..54da5b0bfe1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_bdiv_qr.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mu_bdiv_qr.c
@@ -249,40 +249,31 @@ mpn_mu_bdiv_qr_itch (mp_size_t nn, mp_size_t dn)
mp_size_t qn, in, tn, itch_binvert, itch_out, itches;
mp_size_t b;
+ ASSERT_ALWAYS (DC_BDIV_Q_THRESHOLD < MU_BDIV_Q_THRESHOLD);
+
qn = nn - dn;
if (qn > dn)
{
b = (qn - 1) / dn + 1; /* ceil(qn/dn), number of blocks */
in = (qn - 1) / b + 1; /* ceil(qn/b) = ceil(qn / ceil(qn/dn)) */
- if (BELOW_THRESHOLD (in, MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD))
- {
- tn = dn + in;
- itch_out = 0;
- }
- else
- {
- tn = mpn_mulmod_bnm1_next_size (dn);
- itch_out = mpn_mulmod_bnm1_itch (tn, dn, in);
- }
- itch_binvert = mpn_binvert_itch (in);
- itches = tn + itch_out;
- return in + MAX (itches, itch_binvert);
}
else
{
in = qn - (qn >> 1);
- if (BELOW_THRESHOLD (in, MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD))
- {
- tn = dn + in;
- itch_out = 0;
- }
- else
- {
- tn = mpn_mulmod_bnm1_next_size (dn);
- itch_out = mpn_mulmod_bnm1_itch (tn, dn, in);
- }
}
+
+ if (BELOW_THRESHOLD (in, MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD))
+ {
+ tn = dn + in;
+ itch_out = 0;
+ }
+ else
+ {
+ tn = mpn_mulmod_bnm1_next_size (dn);
+ itch_out = mpn_mulmod_bnm1_itch (tn, dn, in);
+ }
+
itch_binvert = mpn_binvert_itch (in);
itches = tn + itch_out;
return in + MAX (itches, itch_binvert);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_div_q.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mu_div_q.c
index 8768ba6c60c..7fc94353233 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_div_q.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mu_div_q.c
@@ -106,7 +106,7 @@ mpn_mu_div_q (mp_ptr qp,
}
/* The max error of mpn_mu_divappr_q is +4. If the low quotient limb is
- greater than the max error, we cannot trust the quotient. */
+ smaller than the max error, we cannot trust the quotient. */
if (tp[0] > 4)
{
MPN_COPY (qp, tp + 1, qn);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_div_qr.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mu_div_qr.c
index f4700a1ea67..2a22af495c2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_div_qr.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mu_div_qr.c
@@ -187,7 +187,7 @@ mpn_mu_div_qr2 (mp_ptr qp,
{
MPN_COPY (tp + 1, dp, in);
tp[0] = 1;
- mpn_invertappr (ip, tp, in + 1, NULL);
+ mpn_invertappr (ip, tp, in + 1, tp + in + 1);
MPN_COPY_INCR (ip, ip + 1, in);
}
else
@@ -197,7 +197,7 @@ mpn_mu_div_qr2 (mp_ptr qp,
MPN_ZERO (ip, in);
else
{
- mpn_invertappr (ip, tp, in + 1, NULL);
+ mpn_invertappr (ip, tp, in + 1, tp + in + 1);
MPN_COPY_INCR (ip, ip + 1, in);
}
}
@@ -260,8 +260,8 @@ mpn_preinv_mu_div_qr (mp_ptr qp,
else
MPN_COPY_INCR (rp, np, dn);
- if (qn == 0)
- return qh; /* Degenerate use. Should we allow this? */
+ /* if (qn == 0) */ /* The while below handles this case */
+ /* return qh; */ /* Degenerate use. Should we allow this? */
while (qn > 0)
{
@@ -399,11 +399,12 @@ mpn_mu_div_qr_choose_in (mp_size_t qn, mp_size_t dn, int k)
mp_size_t
mpn_mu_div_qr_itch (mp_size_t nn, mp_size_t dn, int mua_k)
{
- mp_size_t itch_local = mpn_mulmod_bnm1_next_size (dn + 1);
mp_size_t in = mpn_mu_div_qr_choose_in (nn - dn, dn, mua_k);
- mp_size_t itch_out = mpn_mulmod_bnm1_itch (itch_local, dn, in);
+ mp_size_t itch_preinv = mpn_preinv_mu_div_qr_itch (nn, dn, in);
+ mp_size_t itch_invapp = mpn_invertappr_itch (in + 1) + in + 2; /* 3in + 4 */
- return in + itch_local + itch_out;
+ ASSERT (itch_preinv >= itch_invapp);
+ return in + MAX (itch_invapp, itch_preinv);
}
mp_size_t
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_divappr_q.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mu_divappr_q.c
index c218b59fee4..970c86245c9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_divappr_q.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mu_divappr_q.c
@@ -113,7 +113,7 @@ mpn_mu_divappr_q (mp_ptr qp,
{
MPN_COPY (tp + 1, dp, in);
tp[0] = 1;
- mpn_invertappr (ip, tp, in + 1, NULL);
+ mpn_invertappr (ip, tp, in + 1, tp + in + 1);
MPN_COPY_INCR (ip, ip + 1, in);
}
else
@@ -123,7 +123,7 @@ mpn_mu_divappr_q (mp_ptr qp,
MPN_ZERO (ip, in);
else
{
- mpn_invertappr (ip, tp, in + 1, NULL);
+ mpn_invertappr (ip, tp, in + 1, tp + in + 1);
MPN_COPY_INCR (ip, ip + 1, in);
}
}
@@ -348,7 +348,7 @@ mpn_mu_divappr_q_choose_in (mp_size_t qn, mp_size_t dn, int k)
mp_size_t
mpn_mu_divappr_q_itch (mp_size_t nn, mp_size_t dn, int mua_k)
{
- mp_size_t qn, in, itch_local, itch_out;
+ mp_size_t qn, in, itch_local, itch_out, itch_invapp;
qn = nn - dn;
if (qn + 1 < dn)
@@ -359,5 +359,8 @@ mpn_mu_divappr_q_itch (mp_size_t nn, mp_size_t dn, int mua_k)
itch_local = mpn_mulmod_bnm1_next_size (dn + 1);
itch_out = mpn_mulmod_bnm1_itch (itch_local, dn, in);
- return in + dn + itch_local + itch_out;
+ itch_invapp = mpn_invertappr_itch (in + 1) + in + 2; /* 3in + 4 */
+
+ ASSERT (dn + itch_local + itch_out >= itch_invapp);
+ return in + MAX (dn + itch_local + itch_out, itch_invapp);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mul.c
index 2d72df3d4d4..2819f61ed8d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mul.c
@@ -2,8 +2,8 @@
Contributed to the GNU project by Torbjorn Granlund.
-Copyright 1991, 1993, 1994, 1996, 1997, 1999-2003, 2005-2007, 2009, 2010, 2012
-Free Software Foundation, Inc.
+Copyright 1991, 1993, 1994, 1996, 1997, 1999-2003, 2005-2007, 2009, 2010, 2012,
+2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -209,7 +209,12 @@ mpn_mul (mp_ptr prodp,
mp_ptr scratch;
TMP_SDECL; TMP_SMARK;
- scratch = TMP_SALLOC_LIMBS (ITCH);
+#define ITCH_TOOMX2 (9 * vn / 2 + GMP_NUMB_BITS * 2)
+ scratch = TMP_SALLOC_LIMBS (ITCH_TOOMX2);
+ ASSERT (mpn_toom22_mul_itch ((5*vn-1)/4, vn) <= ITCH_TOOMX2); /* 5vn/2+ */
+ ASSERT (mpn_toom32_mul_itch ((7*vn-1)/4, vn) <= ITCH_TOOMX2); /* 7vn/6+ */
+ ASSERT (mpn_toom42_mul_itch (3 * vn - 1, vn) <= ITCH_TOOMX2); /* 9vn/2+ */
+#undef ITCH_TOOMX2
/* FIXME: This condition (repeated in the loop below) leaves from a vn*vn
square to a (3vn-1)*vn rectangle. Leaving such a rectangle is hardly
@@ -274,9 +279,17 @@ mpn_mul (mp_ptr prodp,
{
/* Use ToomX3 variants */
mp_ptr scratch;
- TMP_SDECL; TMP_SMARK;
+ TMP_DECL; TMP_MARK;
- scratch = TMP_SALLOC_LIMBS (ITCH);
+#define ITCH_TOOMX3 (4 * vn + GMP_NUMB_BITS)
+ scratch = TMP_ALLOC_LIMBS (ITCH_TOOMX3);
+ ASSERT (mpn_toom33_mul_itch ((7*vn-1)/6, vn) <= ITCH_TOOMX3); /* 7vn/2+ */
+ ASSERT (mpn_toom43_mul_itch ((3*vn-1)/2, vn) <= ITCH_TOOMX3); /* 9vn/4+ */
+ ASSERT (mpn_toom32_mul_itch ((7*vn-1)/4, vn) <= ITCH_TOOMX3); /* 7vn/6+ */
+ ASSERT (mpn_toom53_mul_itch ((11*vn-1)/6, vn) <= ITCH_TOOMX3); /* 11vn/3+ */
+ ASSERT (mpn_toom42_mul_itch ((5*vn-1)/2, vn) <= ITCH_TOOMX3); /* 15vn/4+ */
+ ASSERT (mpn_toom63_mul_itch ((5*vn-1)/2, vn) <= ITCH_TOOMX3); /* 15vn/4+ */
+#undef ITCH_TOOMX3
if (2 * un >= 5 * vn)
{
@@ -284,7 +297,7 @@ mpn_mul (mp_ptr prodp,
mp_ptr ws;
/* The maximum ws usage is for the mpn_mul result. */
- ws = TMP_SALLOC_LIMBS (7 * vn >> 1);
+ ws = TMP_ALLOC_LIMBS (7 * vn >> 1);
if (BELOW_THRESHOLD (vn, MUL_TOOM42_TO_TOOM63_THRESHOLD))
mpn_toom42_mul (prodp, up, 2 * vn, vp, vn, scratch);
@@ -355,7 +368,7 @@ mpn_mul (mp_ptr prodp,
mpn_toom63_mul (prodp, up, un, vp, vn, scratch);
}
}
- TMP_SFREE;
+ TMP_FREE;
}
else
{
@@ -364,12 +377,12 @@ mpn_mul (mp_ptr prodp,
if (BELOW_THRESHOLD (vn, MUL_TOOM6H_THRESHOLD))
{
- scratch = TMP_ALLOC_LIMBS (mpn_toom44_mul_itch (un, vn));
+ scratch = TMP_SALLOC_LIMBS (mpn_toom44_mul_itch (un, vn));
mpn_toom44_mul (prodp, up, un, vp, vn, scratch);
}
else if (BELOW_THRESHOLD (vn, MUL_TOOM8H_THRESHOLD))
{
- scratch = TMP_ALLOC_LIMBS (mpn_toom6h_mul_itch (un, vn));
+ scratch = TMP_SALLOC_LIMBS (mpn_toom6h_mul_itch (un, vn));
mpn_toom6h_mul (prodp, up, un, vp, vn, scratch);
}
else
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul_1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mul_1.c
index 6b2ee59a2c9..6b2ee59a2c9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mul_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul_basecase.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mul_basecase.c
index 9309ef72c88..9309ef72c88 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul_basecase.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mul_basecase.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul_fft.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mul_fft.c
index 5e763a3a736..d3c0b7bf220 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul_fft.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mul_fft.c
@@ -114,7 +114,7 @@ FFT_TABLE_ATTRS struct fft_table_nk mpn_fft_table3[2][FFT_TABLE3_SIZE] =
int
mpn_fft_best_k (mp_size_t n, int sqr)
{
- FFT_TABLE_ATTRS struct fft_table_nk *fft_tab, *tab;
+ const struct fft_table_nk *fft_tab, *tab;
mp_size_t tab_n, thres;
int last_k;
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul_n.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mul_n.c
index 5df8b16fa01..5df8b16fa01 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mul_n.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mullo_basecase.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mullo_basecase.c
index 2120f44c3d8..37d9018a493 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mullo_basecase.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mullo_basecase.c
@@ -1,11 +1,11 @@
/* mpn_mullo_basecase -- Internal routine to multiply two natural
- numbers of length m and n and return the low part.
+ numbers of length n and return the low part.
THIS IS AN INTERNAL FUNCTION WITH A MUTABLE INTERFACE. IT IS ONLY
SAFE TO REACH THIS FUNCTION THROUGH DOCUMENTED INTERFACES.
-Copyright (C) 2000, 2002, 2004 Free Software Foundation, Inc.
+Copyright (C) 2000, 2002, 2004, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -36,10 +36,14 @@ see https://www.gnu.org/licenses/. */
#include "gmp.h"
#include "gmp-impl.h"
-/*
- FIXME: Should use mpn_addmul_2 (and higher).
-*/
+/* FIXME: Should optionally use mpn_mul_2/mpn_addmul_2. */
+#ifndef MULLO_VARIANT
+#define MULLO_VARIANT 2
+#endif
+
+
+#if MULLO_VARIANT == 1
void
mpn_mullo_basecase (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_size_t n)
{
@@ -47,6 +51,41 @@ mpn_mullo_basecase (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_size_t n)
mpn_mul_1 (rp, up, n, vp[0]);
- for (i = 1; i < n; i++)
- mpn_addmul_1 (rp + i, up, n - i, vp[i]);
+ for (i = n - 1; i > 0; i--)
+ {
+ vp++;
+ rp++;
+ mpn_addmul_1 (rp, up, i, vp[0]);
+ }
+}
+#endif
+
+
+#if MULLO_VARIANT == 2
+void
+mpn_mullo_basecase (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_size_t n)
+{
+ mp_limb_t h;
+
+ h = up[0] * vp[n - 1];
+
+ if (n != 1)
+ {
+ mp_size_t i;
+ mp_limb_t v0;
+
+ v0 = *vp++;
+ h += up[n - 1] * v0 + mpn_mul_1 (rp, up, n - 1, v0);
+ rp++;
+
+ for (i = n - 2; i > 0; i--)
+ {
+ v0 = *vp++;
+ h += up[i] * v0 + mpn_addmul_1 (rp, up, i, v0);
+ rp++;
+ }
+ }
+
+ rp[0] = h;
}
+#endif
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mullo_n.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mullo_n.c
index dad75ee8f76..a8483d94399 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mullo_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mullo_n.c
@@ -39,18 +39,6 @@ see https://www.gnu.org/licenses/. */
#include "gmp-impl.h"
-#ifndef MULLO_BASECASE_THRESHOLD
-#define MULLO_BASECASE_THRESHOLD 0 /* never use mpn_mul_basecase */
-#endif
-
-#ifndef MULLO_DC_THRESHOLD
-#define MULLO_DC_THRESHOLD 3*MUL_TOOM22_THRESHOLD
-#endif
-
-#ifndef MULLO_MUL_N_THRESHOLD
-#define MULLO_MUL_N_THRESHOLD MUL_FFT_THRESHOLD
-#endif
-
#if TUNE_PROGRAM_BUILD || WANT_FAT_BINARY
#define MAYBE_range_basecase 1
#define MAYBE_range_toom22 1
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mulmid.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mulmid.c
index 6b4ea3253dc..6b4ea3253dc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mulmid.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mulmid.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mulmid_basecase.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mulmid_basecase.c
index 400e9764240..400e9764240 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mulmid_basecase.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mulmid_basecase.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mulmid_n.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mulmid_n.c
index 2280ba3a366..2280ba3a366 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mulmid_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mulmid_n.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mulmod_bnm1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/mulmod_bnm1.c
index 87103245838..67dc2044438 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mulmod_bnm1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/mulmod_bnm1.c
@@ -133,7 +133,7 @@ mpn_mulmod_bnm1 (mp_ptr rp, mp_size_t rn, mp_srcptr ap, mp_size_t an, mp_srcptr
/* We need at least an + bn >= n, to be able to fit one of the
recursive products at rp. Requiring strict inequality makes
- the coded slightly simpler. If desired, we could avoid this
+ the code slightly simpler. If desired, we could avoid this
restriction by initially halving rn as long as rn is even and
an + bn <= rn/2. */
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/neg.c b/Build/source/libs/gmp/gmp-src/mpn/generic/neg.c
index 2d752e912d1..2d752e912d1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/neg.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/neg.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/nussbaumer_mul.c b/Build/source/libs/gmp/gmp-src/mpn/generic/nussbaumer_mul.c
index d2bf19ad56a..d2bf19ad56a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/nussbaumer_mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/nussbaumer_mul.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/perfpow.c b/Build/source/libs/gmp/gmp-src/mpn/generic/perfpow.c
index bbed6309d52..5d5a80e941f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/perfpow.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/perfpow.c
@@ -2,7 +2,7 @@
Contributed to the GNU project by Martin Boij.
-Copyright 2009, 2010, 2012 Free Software Foundation, Inc.
+Copyright 2009, 2010, 2012, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -54,12 +54,9 @@ pow_equals (mp_srcptr np, mp_size_t n,
mp_limb_t k, mp_bitcnt_t f,
mp_ptr tp)
{
- mp_limb_t *tp2;
mp_bitcnt_t y, z;
- mp_size_t i, bn;
- int ans;
+ mp_size_t bn;
mp_limb_t h, l;
- TMP_DECL;
ASSERT (n > 1 || (n == 1 && np[0] > 1));
ASSERT (np[n - 1] > 0);
@@ -76,8 +73,6 @@ pow_equals (mp_srcptr np, mp_size_t n,
return 0;
}
- TMP_MARK;
-
/* Final check. Estimate the size of {xp,xn}^k before computing the power
with full precision. Optimization: It might pay off to make a more
accurate estimation of the logarithm of {xp,xn}, rather than using the
@@ -87,15 +82,21 @@ pow_equals (mp_srcptr np, mp_size_t n,
y -= 1; /* msb_index (xp, xn) */
umul_ppmm (h, l, k, y);
- h -= l == 0; l--; /* two-limb decrement */
+ h -= l == 0; --l; /* two-limb decrement */
z = f - 1; /* msb_index (np, n) */
if (h == 0 && l <= z)
{
+ mp_limb_t *tp2;
+ mp_size_t i;
+ int ans;
mp_limb_t size;
+ TMP_DECL;
+
size = l + k;
ASSERT_ALWAYS (size >= k);
+ TMP_MARK;
y = 2 + size / GMP_LIMB_BITS;
tp2 = TMP_ALLOC_LIMBS (y);
@@ -104,14 +105,11 @@ pow_equals (mp_srcptr np, mp_size_t n,
ans = 1;
else
ans = 0;
- }
- else
- {
- ans = 0;
+ TMP_FREE;
+ return ans;
}
- TMP_FREE;
- return ans;
+ return 0;
}
@@ -185,9 +183,8 @@ perfpow (mp_srcptr np, mp_size_t n,
gmp_init_primesieve (&ps);
b = (f + 3) >> 1;
- ip = TMP_ALLOC_LIMBS (n);
- rp = TMP_ALLOC_LIMBS (n);
- tp = TMP_ALLOC_LIMBS (5 * n); /* FIXME */
+ TMP_ALLOC_LIMBS_3 (ip, n, rp, n, tp, 5 * n);
+
MPN_ZERO (rp, n);
/* FIXME: It seems the inverse in ninv is needed only to get non-inverted
@@ -245,140 +242,73 @@ static const double logs[] =
int
mpn_perfect_power_p (mp_srcptr np, mp_size_t n)
{
- mp_size_t ncn, s, pn, xn;
mp_limb_t *nc, factor, g;
- mp_limb_t exp, *prev, *next, d, l, r, c, *tp, cry;
+ mp_limb_t exp, d;
mp_bitcnt_t twos, count;
int ans, where, neg, trial;
TMP_DECL;
- nc = (mp_ptr) np;
-
- neg = 0;
- if (n < 0)
+ neg = n < 0;
+ if (neg)
{
- neg = 1;
n = -n;
}
- if (n == 0 || (n == 1 && np[0] == 1))
+ if (n == 0 || (n == 1 && np[0] == 1)) /* Valgrind doesn't like
+ (n <= (np[0] == 1)) */
return 1;
TMP_MARK;
- g = 0;
+ count = 0;
- ncn = n;
twos = mpn_scan1 (np, 0);
- if (twos > 0)
+ if (twos != 0)
{
+ mp_size_t s;
if (twos == 1)
{
- ans = 0;
- goto ret;
+ return 0;
}
s = twos / GMP_LIMB_BITS;
if (s + 1 == n && POW2_P (np[s]))
{
- ans = ! (neg && POW2_P (twos));
- goto ret;
+ return ! (neg && POW2_P (twos));
}
count = twos % GMP_LIMB_BITS;
- ncn = n - s;
- nc = TMP_ALLOC_LIMBS (ncn);
+ n -= s;
+ np += s;
if (count > 0)
{
- mpn_rshift (nc, np + s, ncn, count);
- ncn -= (nc[ncn - 1] == 0);
- }
- else
- {
- MPN_COPY (nc, np + s, ncn);
+ nc = TMP_ALLOC_LIMBS (n);
+ mpn_rshift (nc, np, n, count);
+ n -= (nc[n - 1] == 0);
+ np = nc;
}
- g = twos;
}
+ g = twos;
- if (ncn <= SMALL)
- trial = 0;
- else if (ncn <= MEDIUM)
- trial = 1;
- else
- trial = 2;
+ trial = (n > SMALL) + (n > MEDIUM);
where = 0;
- factor = mpn_trialdiv (nc, ncn, nrtrial[trial], &where);
+ factor = mpn_trialdiv (np, n, nrtrial[trial], &where);
if (factor != 0)
{
- if (twos == 0)
+ if (count == 0) /* We did not allocate nc yet. */
{
- nc = TMP_ALLOC_LIMBS (ncn);
- MPN_COPY (nc, np, ncn);
+ nc = TMP_ALLOC_LIMBS (n);
}
- /* Remove factors found by trialdiv. Optimization: Perhaps better to use
- the strategy in mpz_remove (). */
- prev = TMP_ALLOC_LIMBS (ncn + 2);
- next = TMP_ALLOC_LIMBS (ncn + 2);
- tp = TMP_ALLOC_LIMBS (4 * ncn);
+ /* Remove factors found by trialdiv. Optimization: If remove
+ define _itch, we can allocate its scratch just once */
do
{
binvert_limb (d, factor);
- prev[0] = d;
- pn = 1;
- exp = 1;
- while (2 * pn - 1 <= ncn)
- {
- mpn_sqr (next, prev, pn);
- xn = 2 * pn;
- xn -= (next[xn - 1] == 0);
- if (mpn_divisible_p (nc, ncn, next, xn) == 0)
- break;
-
- exp <<= 1;
- pn = xn;
- MP_PTR_SWAP (next, prev);
- }
-
- /* Binary search for the exponent */
- l = exp + 1;
- r = 2 * exp - 1;
- while (l <= r)
- {
- c = (l + r) >> 1;
- if (c - exp > 1)
- {
- xn = mpn_pow_1 (tp, &d, 1, c - exp, next);
- if (pn + xn - 1 > ncn)
- {
- r = c - 1;
- continue;
- }
- mpn_mul (next, prev, pn, tp, xn);
- xn += pn;
- xn -= (next[xn - 1] == 0);
- }
- else
- {
- cry = mpn_mul_1 (next, prev, pn, d);
- next[pn] = cry;
- xn = pn + (cry != 0);
- }
-
- if (mpn_divisible_p (nc, ncn, next, xn) == 0)
- {
- r = c - 1;
- }
- else
- {
- exp = c;
- l = c + 1;
- MP_PTR_SWAP (next, prev);
- pn = xn;
- }
- }
+ /* After the first round we always have nc == np */
+ exp = mpn_remove (nc, &n, np, n, &d, 1, ~(mp_bitcnt_t)0);
if (g == 0)
g = exp;
@@ -391,25 +321,21 @@ mpn_perfect_power_p (mp_srcptr np, mp_size_t n)
goto ret;
}
- mpn_divexact (next, nc, ncn, prev, pn);
- ncn = ncn - pn;
- ncn += next[ncn] != 0;
- MPN_COPY (nc, next, ncn);
-
- if (ncn == 1 && nc[0] == 1)
+ if ((n == 1) & (nc[0] == 1))
{
ans = ! (neg && POW2_P (g));
goto ret;
}
- factor = mpn_trialdiv (nc, ncn, nrtrial[trial], &where);
+ np = nc;
+ factor = mpn_trialdiv (np, n, nrtrial[trial], &where);
}
while (factor != 0);
}
- MPN_SIZEINBASE_2EXP(count, nc, ncn, 1); /* log (nc) + 1 */
+ MPN_SIZEINBASE_2EXP(count, np, n, 1); /* log (np) + 1 */
d = (mp_limb_t) (count * logs[trial] + 1e-9) + 1;
- ans = perfpow (nc, ncn, d, g, count, neg);
+ ans = perfpow (np, n, d, g, count, neg);
ret:
TMP_FREE;
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/perfsqr.c b/Build/source/libs/gmp/gmp-src/mpn/generic/perfsqr.c
index bdd82ccd96e..bdd82ccd96e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/perfsqr.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/perfsqr.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/popham.c b/Build/source/libs/gmp/gmp-src/mpn/generic/popham.c
index 13e529b7cda..13e529b7cda 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/popham.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/popham.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/pow_1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/pow_1.c
index 2333206554c..2333206554c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/pow_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/pow_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/powlo.c b/Build/source/libs/gmp/gmp-src/mpn/generic/powlo.c
index adcd96eb518..bdd5e1703bc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/powlo.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/powlo.c
@@ -1,6 +1,6 @@
/* mpn_powlo -- Compute R = U^E mod B^n, where B is the limb base.
-Copyright 2007-2009, 2012 Free Software Foundation, Inc.
+Copyright 2007-2009, 2012, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -66,7 +66,8 @@ win_size (mp_bitcnt_t eb)
{
int k;
static mp_bitcnt_t x[] = {1,7,25,81,241,673,1793,4609,11521,28161,~(mp_bitcnt_t)0};
- for (k = 0; eb > x[k]; k++)
+ ASSERT (eb > 1);
+ for (k = 1; eb > x[k]; ++k)
;
return k;
}
@@ -74,6 +75,8 @@ win_size (mp_bitcnt_t eb)
/* rp[n-1..0] = bp[n-1..0] ^ ep[en-1..0] mod B^n, B is the limb base.
Requires that ep[en-1] is non-zero.
Uses scratch space tp[3n-1..0], i.e., 3n words. */
+/* We only use n words in the scratch space, we should pass tp + n to
+ mullo/sqrlo as a temporary area, it is needed. */
void
mpn_powlo (mp_ptr rp, mp_srcptr bp,
mp_srcptr ep, mp_size_t en,
@@ -84,7 +87,6 @@ mpn_powlo (mp_ptr rp, mp_srcptr bp,
int windowsize, this_windowsize;
mp_limb_t expbits;
mp_limb_t *pp, *this_pp, *last_pp;
- mp_limb_t *b2p;
long i;
TMP_DECL;
@@ -95,47 +97,42 @@ mpn_powlo (mp_ptr rp, mp_srcptr bp,
MPN_SIZEINBASE_2EXP(ebi, ep, en, 1);
windowsize = win_size (ebi);
+ ASSERT (windowsize < ebi);
- pp = TMP_ALLOC_LIMBS ((n << (windowsize - 1)) + n); /* + n is for mullo ign part */
+ pp = TMP_ALLOC_LIMBS ((n << (windowsize - 1)));
this_pp = pp;
MPN_COPY (this_pp, bp, n);
- b2p = tp + 2*n;
-
- /* Store b^2 in b2. */
- mpn_sqr (tp, bp, n); /* FIXME: Use "mpn_sqrlo" */
- MPN_COPY (b2p, tp, n);
+ /* Store b^2 in tp. */
+ mpn_sqrlo (tp, bp, n);
/* Precompute odd powers of b and put them in the temporary area at pp. */
for (i = (1 << (windowsize - 1)) - 1; i > 0; i--)
{
last_pp = this_pp;
this_pp += n;
- mpn_mullo_n (this_pp, last_pp, b2p, n);
+ mpn_mullo_n (this_pp, last_pp, tp, n);
}
expbits = getbits (ep, ebi, windowsize);
- if (ebi < windowsize)
- ebi = 0;
- else
- ebi -= windowsize;
+ /* FIXME: for even expbits, we can init with a mullo. */
count_trailing_zeros (cnt, expbits);
+ ebi -= windowsize;
ebi += cnt;
expbits >>= cnt;
MPN_COPY (rp, pp + n * (expbits >> 1), n);
- while (ebi != 0)
+ do
{
while (getbit (ep, ebi) == 0)
{
- mpn_sqr (tp, rp, n); /* FIXME: Use "mpn_sqrlo" */
+ mpn_sqrlo (tp, rp, n);
MPN_COPY (rp, tp, n);
- ebi--;
- if (ebi == 0)
+ if (--ebi == 0)
goto done;
}
@@ -157,17 +154,20 @@ mpn_powlo (mp_ptr rp, mp_srcptr bp,
ebi += cnt;
expbits >>= cnt;
- do
+ while (this_windowsize > 1)
{
- mpn_sqr (tp, rp, n);
- MPN_COPY (rp, tp, n);
- this_windowsize--;
+ mpn_sqrlo (tp, rp, n);
+ mpn_sqrlo (rp, tp, n);
+ this_windowsize -= 2;
}
- while (this_windowsize != 0);
- mpn_mullo_n (tp, rp, pp + n * (expbits >> 1), n);
- MPN_COPY (rp, tp, n);
- }
+ if (this_windowsize != 0)
+ mpn_sqrlo (tp, rp, n);
+ else
+ MPN_COPY (tp, rp, n);
+
+ mpn_mullo_n (rp, tp, pp + n * (expbits >> 1), n);
+ } while (ebi != 0);
done:
TMP_FREE;
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/powm.c b/Build/source/libs/gmp/gmp-src/mpn/generic/powm.c
index 9968116016b..0cd0da46ea9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/powm.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/powm.c
@@ -152,8 +152,7 @@ redcify (mp_ptr rp, mp_srcptr up, mp_size_t un, mp_srcptr mp, mp_size_t n)
TMP_DECL;
TMP_MARK;
- tp = TMP_ALLOC_LIMBS (un + n);
- qp = TMP_ALLOC_LIMBS (un + 1); /* FIXME: Put at tp+? */
+ TMP_ALLOC_LIMBS_2 (tp, un + n, qp, un + 1);
MPN_ZERO (tp, n);
MPN_COPY (tp + n, up, un);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/pre_divrem_1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/pre_divrem_1.c
index 8027f0216e5..8027f0216e5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/pre_divrem_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/pre_divrem_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/pre_mod_1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/pre_mod_1.c
index cb38f4a48f4..cb38f4a48f4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/pre_mod_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/pre_mod_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/random.c b/Build/source/libs/gmp/gmp-src/mpn/generic/random.c
index 5489becf4dc..5489becf4dc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/random.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/random.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/random2.c b/Build/source/libs/gmp/gmp-src/mpn/generic/random2.c
index 980b15367fc..980b15367fc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/random2.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/random2.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/redc_1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/redc_1.c
index 0d33421f634..0d33421f634 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/redc_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/redc_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/redc_2.c b/Build/source/libs/gmp/gmp-src/mpn/generic/redc_2.c
index 07d90fa20d1..187a8f7d624 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/redc_2.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/redc_2.c
@@ -53,7 +53,8 @@ mpn_addmul_2 (mp_ptr rp, mp_srcptr up, mp_size_t n, mp_srcptr vp)
}
#endif
-#if defined (__GNUC__) && defined (__ia64) && W_TYPE_SIZE == 64
+#if defined (__GNUC__) && ! defined (NO_ASM) \
+ && defined (__ia64) && W_TYPE_SIZE == 64
#define umul2low(ph, pl, uh, ul, vh, vl) \
do { \
mp_limb_t _ph, _pl; \
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/redc_n.c b/Build/source/libs/gmp/gmp-src/mpn/generic/redc_n.c
index c3d0cfe7fa3..c3d0cfe7fa3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/redc_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/redc_n.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/remove.c b/Build/source/libs/gmp/gmp-src/mpn/generic/remove.c
index ef1a06ea143..e1c535966b3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/remove.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/remove.c
@@ -7,7 +7,7 @@
SAFE TO REACH IT THROUGH DOCUMENTED INTERFACES. IN FACT, IT IS ALMOST
GUARANTEED THAT IT WILL CHANGE OR DISAPPEAR IN A FUTURE GMP RELEASE.
-Copyright 2009, 2012, 2013 Free Software Foundation, Inc.
+Copyright 2009, 2012-2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -80,13 +80,14 @@ mpn_bdiv_qr_wrap (mp_ptr qp, mp_ptr rp,
mp_bitcnt_t
mpn_remove (mp_ptr wp, mp_size_t *wn,
- mp_ptr up, mp_size_t un, mp_ptr vp, mp_size_t vn,
+ mp_srcptr up, mp_size_t un, mp_srcptr vp, mp_size_t vn,
mp_bitcnt_t cap)
{
- mp_ptr pwpsp[LOG];
+ mp_srcptr pwpsp[LOG];
mp_size_t pwpsn[LOG];
mp_size_t npowers;
- mp_ptr tp, qp, np, pp, qp2;
+ mp_ptr tp, qp, np, qp2;
+ mp_srcptr pp;
mp_size_t pn, nn, qn, i;
mp_bitcnt_t pwr;
TMP_DECL;
@@ -98,9 +99,9 @@ mpn_remove (mp_ptr wp, mp_size_t *wn,
TMP_MARK;
- tp = TMP_ALLOC_LIMBS ((un + 1 + vn) / 2); /* remainder */
- qp = TMP_ALLOC_LIMBS (un + 1); /* quotient, alternating */
- qp2 = TMP_ALLOC_LIMBS (un + 1); /* quotient, alternating */
+ TMP_ALLOC_LIMBS_3 (qp, un + 1, /* quotient, alternating */
+ qp2, un + 1, /* quotient, alternating */
+ tp, (un + 1 + vn) / 2); /* remainder */
pp = vp;
pn = vn;
@@ -121,7 +122,7 @@ mpn_remove (mp_ptr wp, mp_size_t *wn,
pwpsp[npowers] = pp;
pwpsn[npowers] = pn;
- npowers++;
+ ++npowers;
if (((mp_bitcnt_t) 2 << npowers) - 1 > cap)
break;
@@ -142,7 +143,7 @@ mpn_remove (mp_ptr wp, mp_size_t *wn,
pwr = ((mp_bitcnt_t) 1 << npowers) - 1;
- for (i = npowers - 1; i >= 0; i--)
+ for (i = npowers; --i >= 0;)
{
pn = pwpsn[i];
if (qn < pn)
diff --git a/Build/source/libs/gmp/gmp-src/mpn/generic/rootrem.c b/Build/source/libs/gmp/gmp-src/mpn/generic/rootrem.c
new file mode 100644
index 00000000000..d7dd375f013
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/rootrem.c
@@ -0,0 +1,516 @@
+/* mpn_rootrem(rootp,remp,ap,an,nth) -- Compute the nth root of {ap,an}, and
+ store the truncated integer part at rootp and the remainder at remp.
+
+ Contributed by Paul Zimmermann (algorithm) and
+ Paul Zimmermann and Torbjorn Granlund (implementation).
+ Marco Bodrato wrote logbased_root to seed the loop.
+
+ THE FUNCTIONS IN THIS FILE ARE INTERNAL, AND HAVE MUTABLE INTERFACES. IT'S
+ ONLY SAFE TO REACH THEM THROUGH DOCUMENTED INTERFACES. IN FACT, IT'S ALMOST
+ GUARANTEED THAT THEY'LL CHANGE OR DISAPPEAR IN A FUTURE GNU MP RELEASE.
+
+Copyright 2002, 2005, 2009-2012, 2015 Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+/* FIXME:
+ This implementation is not optimal when remp == NULL, since the complexity
+ is M(n), whereas it should be M(n/k) on average.
+*/
+
+#include <stdio.h> /* for NULL */
+
+#include "gmp.h"
+#include "gmp-impl.h"
+#include "longlong.h"
+
+static mp_size_t mpn_rootrem_internal (mp_ptr, mp_ptr, mp_srcptr, mp_size_t,
+ mp_limb_t, int);
+
+#define MPN_RSHIFT(rp,up,un,cnt) \
+ do { \
+ if ((cnt) != 0) \
+ mpn_rshift (rp, up, un, cnt); \
+ else \
+ { \
+ MPN_COPY_INCR (rp, up, un); \
+ } \
+ } while (0)
+
+#define MPN_LSHIFT(cy,rp,up,un,cnt) \
+ do { \
+ if ((cnt) != 0) \
+ cy = mpn_lshift (rp, up, un, cnt); \
+ else \
+ { \
+ MPN_COPY_DECR (rp, up, un); \
+ cy = 0; \
+ } \
+ } while (0)
+
+
+/* Put in {rootp, ceil(un/k)} the kth root of {up, un}, rounded toward zero.
+ If remp <> NULL, put in {remp, un} the remainder.
+ Return the size (in limbs) of the remainder if remp <> NULL,
+ or a non-zero value iff the remainder is non-zero when remp = NULL.
+ Assumes:
+ (a) up[un-1] is not zero
+ (b) rootp has at least space for ceil(un/k) limbs
+ (c) remp has at least space for un limbs (in case remp <> NULL)
+ (d) the operands do not overlap.
+
+ The auxiliary memory usage is 3*un+2 if remp = NULL,
+ and 2*un+2 if remp <> NULL. FIXME: This is an incorrect comment.
+*/
+mp_size_t
+mpn_rootrem (mp_ptr rootp, mp_ptr remp,
+ mp_srcptr up, mp_size_t un, mp_limb_t k)
+{
+ ASSERT (un > 0);
+ ASSERT (up[un - 1] != 0);
+ ASSERT (k > 1);
+
+ if (UNLIKELY (k == 2))
+ return mpn_sqrtrem (rootp, remp, up, un);
+ /* (un-1)/k > 2 <=> un > 3k <=> (un + 2)/3 > k */
+ if (remp == NULL && (un + 2) / 3 > k)
+ /* Pad {up,un} with k zero limbs. This will produce an approximate root
+ with one more limb, allowing us to compute the exact integral result. */
+ {
+ mp_ptr sp, wp;
+ mp_size_t rn, sn, wn;
+ TMP_DECL;
+ TMP_MARK;
+ wn = un + k;
+ sn = (un - 1) / k + 2; /* ceil(un/k) + 1 */
+ TMP_ALLOC_LIMBS_2 (wp, wn, /* will contain the padded input */
+ sp, sn); /* approximate root of padded input */
+ MPN_COPY (wp + k, up, un);
+ MPN_FILL (wp, k, 0);
+ rn = mpn_rootrem_internal (sp, NULL, wp, wn, k, 1);
+ /* The approximate root S = {sp,sn} is either the correct root of
+ {sp,sn}, or 1 too large. Thus unless the least significant limb of
+ S is 0 or 1, we can deduce the root of {up,un} is S truncated by one
+ limb. (In case sp[0]=1, we can deduce the root, but not decide
+ whether it is exact or not.) */
+ MPN_COPY (rootp, sp + 1, sn - 1);
+ TMP_FREE;
+ return rn;
+ }
+ else
+ {
+ return mpn_rootrem_internal (rootp, remp, up, un, k, 0);
+ }
+}
+
+#define LOGROOT_USED_BITS 8
+#define LOGROOT_NEEDS_TWO_CORRECTIONS 1
+#define LOGROOT_RETURNED_BITS (LOGROOT_USED_BITS + LOGROOT_NEEDS_TWO_CORRECTIONS)
+/* Puts in *rootp some bits of the k^nt root of the number
+ 2^bitn * 1.op ; where op represents the "fractional" bits.
+
+ The returned value is the number of bits of the root minus one;
+ i.e. an approximation of the root will be
+ (*rootp) * 2^(retval-LOGROOT_RETURNED_BITS+1).
+
+ Currently, only LOGROOT_USED_BITS bits of op are used (the implicit
+ one is not counted).
+ */
+static unsigned
+logbased_root (mp_ptr rootp, mp_limb_t op, mp_bitcnt_t bitn, mp_limb_t k)
+{
+ /* vlog=vector(256,i,floor((log(256+i)/log(2)-8)*256)-(i>255)) */
+ static const
+ unsigned char vlog[] = {1, 2, 4, 5, 7, 8, 9, 11, 12, 14, 15, 16, 18, 19, 21, 22,
+ 23, 25, 26, 27, 29, 30, 31, 33, 34, 35, 37, 38, 39, 40, 42, 43,
+ 44, 46, 47, 48, 49, 51, 52, 53, 54, 56, 57, 58, 59, 61, 62, 63,
+ 64, 65, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 80, 81, 82,
+ 83, 84, 85, 87, 88, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 100,
+ 101, 102, 103, 104, 105, 106, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 181, 182, 183, 184, 185, 186, 187, 188, 188, 189, 190, 191, 192, 193,
+ 194, 194, 195, 196, 197, 198, 199, 200, 200, 201, 202, 203, 204, 205, 205, 206,
+ 207, 208, 209, 209, 210, 211, 212, 213, 214, 214, 215, 216, 217, 218, 218, 219,
+ 220, 221, 222, 222, 223, 224, 225, 225, 226, 227, 228, 229, 229, 230, 231, 232,
+ 232, 233, 234, 235, 235, 236, 237, 238, 239, 239, 240, 241, 242, 242, 243, 244,
+ 245, 245, 246, 247, 247, 248, 249, 250, 250, 251, 252, 253, 253, 254, 255, 255};
+
+ /* vexp=vector(256,i,floor(2^(8+i/256)-256)-(i>255)) */
+ static const
+ unsigned char vexp[] = {0, 1, 2, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 9, 10, 11,
+ 12, 12, 13, 14, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 22, 23,
+ 23, 24, 25, 26, 26, 27, 28, 29, 30, 30, 31, 32, 33, 33, 34, 35,
+ 36, 37, 37, 38, 39, 40, 41, 41, 42, 43, 44, 45, 45, 46, 47, 48,
+ 49, 50, 50, 51, 52, 53, 54, 55, 55, 56, 57, 58, 59, 60, 61, 61,
+ 62, 63, 64, 65, 66, 67, 67, 68, 69, 70, 71, 72, 73, 74, 75, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 86, 87, 88, 89, 90,
+ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 119, 120, 121, 122,
+ 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
+ 139, 140, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 154, 155, 156,
+ 157, 158, 159, 160, 161, 163, 164, 165, 166, 167, 168, 169, 171, 172, 173, 174,
+ 175, 176, 178, 179, 180, 181, 182, 183, 185, 186, 187, 188, 189, 191, 192, 193,
+ 194, 196, 197, 198, 199, 200, 202, 203, 204, 205, 207, 208, 209, 210, 212, 213,
+ 214, 216, 217, 218, 219, 221, 222, 223, 225, 226, 227, 229, 230, 231, 232, 234,
+ 235, 236, 238, 239, 240, 242, 243, 245, 246, 247, 249, 250, 251, 253, 254, 255};
+ mp_bitcnt_t retval;
+
+ if (UNLIKELY (bitn > (~ (mp_bitcnt_t) 0) >> LOGROOT_USED_BITS))
+ {
+ /* In the unlikely case, we use two divisions and a modulo. */
+ retval = bitn / k;
+ bitn %= k;
+ bitn = (bitn << LOGROOT_USED_BITS |
+ vlog[op >> (GMP_NUMB_BITS - LOGROOT_USED_BITS)]) / k;
+ }
+ else
+ {
+ bitn = (bitn << LOGROOT_USED_BITS |
+ vlog[op >> (GMP_NUMB_BITS - LOGROOT_USED_BITS)]) / k;
+ retval = bitn >> LOGROOT_USED_BITS;
+ bitn &= (CNST_LIMB (1) << LOGROOT_USED_BITS) - 1;
+ }
+ ASSERT(bitn < CNST_LIMB (1) << LOGROOT_USED_BITS);
+ *rootp = CNST_LIMB(1) << (LOGROOT_USED_BITS - ! LOGROOT_NEEDS_TWO_CORRECTIONS)
+ | vexp[bitn] >> ! LOGROOT_NEEDS_TWO_CORRECTIONS;
+ return retval;
+}
+
+/* if approx is non-zero, does not compute the final remainder */
+static mp_size_t
+mpn_rootrem_internal (mp_ptr rootp, mp_ptr remp, mp_srcptr up, mp_size_t un,
+ mp_limb_t k, int approx)
+{
+ mp_ptr qp, rp, sp, wp, scratch;
+ mp_size_t qn, rn, sn, wn, nl, bn;
+ mp_limb_t save, save2, cy, uh;
+ mp_bitcnt_t unb; /* number of significant bits of {up,un} */
+ mp_bitcnt_t xnb; /* number of significant bits of the result */
+ mp_bitcnt_t b, kk;
+ mp_bitcnt_t sizes[GMP_NUMB_BITS + 1];
+ int ni;
+ int perf_pow;
+ unsigned ulz, snb, c, logk;
+ TMP_DECL;
+
+ /* MPN_SIZEINBASE_2EXP(unb, up, un, 1); --unb; */
+ uh = up[un - 1];
+ count_leading_zeros (ulz, uh);
+ ulz = ulz - GMP_NAIL_BITS + 1; /* Ignore the first 1. */
+ unb = (mp_bitcnt_t) un * GMP_NUMB_BITS - ulz;
+ /* unb is the (truncated) logarithm of the input U in base 2*/
+
+ if (unb < k) /* root is 1 */
+ {
+ rootp[0] = 1;
+ if (remp == NULL)
+ un -= (*up == CNST_LIMB (1)); /* Non-zero iif {up,un} > 1 */
+ else
+ {
+ mpn_sub_1 (remp, up, un, CNST_LIMB (1));
+ un -= (remp [un - 1] == 0); /* There should be at most one zero limb,
+ if we demand u to be normalized */
+ }
+ return un;
+ }
+ /* if (unb - k < k/2 + k/16) // root is 2 */
+
+ if (ulz == GMP_NUMB_BITS)
+ uh = up[un - 2];
+ else
+ uh = (uh << ulz & GMP_NUMB_MASK) | up[un - 1 - (un != 1)] >> (GMP_NUMB_BITS - ulz);
+ ASSERT (un != 1 || up[un - 1 - (un != 1)] >> (GMP_NUMB_BITS - ulz) == 1);
+
+ xnb = logbased_root (rootp, uh, unb, k);
+ snb = LOGROOT_RETURNED_BITS - 1;
+ /* xnb+1 is the number of bits of the root R */
+ /* snb+1 is the number of bits of the current approximation S */
+
+ kk = k * xnb; /* number of truncated bits in the input */
+
+ /* FIXME: Should we skip the next two loops when xnb <= snb ? */
+ for (uh = (k - 1) / 2, logk = 3; (uh >>= 1) != 0; ++logk )
+ ;
+ /* logk = ceil(log(k)/log(2)) + 1 */
+
+ /* xnb is the number of remaining bits to determine in the kth root */
+ for (ni = 0; (sizes[ni] = xnb) > snb; ++ni)
+ {
+ /* invariant: here we want xnb+1 total bits for the kth root */
+
+ /* if c is the new value of xnb, this means that we'll go from a
+ root of c+1 bits (say s') to a root of xnb+1 bits.
+ It is proved in the book "Modern Computer Arithmetic" by Brent
+ and Zimmermann, Chapter 1, that
+ if s' >= k*beta, then at most one correction is necessary.
+ Here beta = 2^(xnb-c), and s' >= 2^c, thus it suffices that
+ c >= ceil((xnb + log2(k))/2). */
+ if (xnb > logk)
+ xnb = (xnb + logk) / 2;
+ else
+ --xnb; /* add just one bit at a time */
+ }
+
+ *rootp >>= snb - xnb;
+ kk -= xnb;
+
+ ASSERT_ALWAYS (ni < GMP_NUMB_BITS + 1);
+ /* We have sizes[0] = b > sizes[1] > ... > sizes[ni] = 0 with
+ sizes[i] <= 2 * sizes[i+1].
+ Newton iteration will first compute sizes[ni-1] extra bits,
+ then sizes[ni-2], ..., then sizes[0] = b. */
+
+ TMP_MARK;
+ /* qp and wp need enough space to store S'^k where S' is an approximate
+ root. Since S' can be as large as S+2, the worst case is when S=2 and
+ S'=4. But then since we know the number of bits of S in advance, S'
+ can only be 3 at most. Similarly for S=4, then S' can be 6 at most.
+ So the worst case is S'/S=3/2, thus S'^k <= (3/2)^k * S^k. Since S^k
+ fits in un limbs, the number of extra limbs needed is bounded by
+ ceil(k*log2(3/2)/GMP_NUMB_BITS). */
+ /* THINK: with the use of logbased_root, maybe the constant is
+ 258/256 instead of 3/2 ? log2(258/256) < 1/89 < 1/64 */
+#define EXTRA 2 + (mp_size_t) (0.585 * (double) k / (double) GMP_NUMB_BITS)
+ TMP_ALLOC_LIMBS_3 (scratch, un + 1, /* used by mpn_div_q */
+ qp, un + EXTRA, /* will contain quotient and remainder
+ of R/(k*S^(k-1)), and S^k */
+ wp, un + EXTRA); /* will contain S^(k-1), k*S^(k-1),
+ and temporary for mpn_pow_1 */
+
+ if (remp == NULL)
+ rp = scratch; /* will contain the remainder */
+ else
+ rp = remp;
+ sp = rootp;
+
+ sn = 1; /* Initial approximation has one limb */
+
+ for (b = xnb; ni != 0; --ni)
+ {
+ /* 1: loop invariant:
+ {sp, sn} is the current approximation of the root, which has
+ exactly 1 + sizes[ni] bits.
+ {rp, rn} is the current remainder
+ {wp, wn} = {sp, sn}^(k-1)
+ kk = number of truncated bits of the input
+ */
+
+ /* Since each iteration treats b bits from the root and thus k*b bits
+ from the input, and we already considered b bits from the input,
+ we now have to take another (k-1)*b bits from the input. */
+ kk -= (k - 1) * b; /* remaining input bits */
+ /* {rp, rn} = floor({up, un} / 2^kk) */
+ rn = un - kk / GMP_NUMB_BITS;
+ MPN_RSHIFT (rp, up + kk / GMP_NUMB_BITS, rn, kk % GMP_NUMB_BITS);
+ rn -= rp[rn - 1] == 0;
+
+ /* 9: current buffers: {sp,sn}, {rp,rn} */
+
+ for (c = 0;; c++)
+ {
+ /* Compute S^k in {qp,qn}. */
+ /* W <- S^(k-1) for the next iteration,
+ and S^k = W * S. */
+ wn = mpn_pow_1 (wp, sp, sn, k - 1, qp);
+ mpn_mul (qp, wp, wn, sp, sn);
+ qn = wn + sn;
+ qn -= qp[qn - 1] == 0;
+
+ perf_pow = 1;
+ /* if S^k > floor(U/2^kk), the root approximation was too large */
+ if (qn > rn || (qn == rn && (perf_pow=mpn_cmp (qp, rp, rn)) > 0))
+ MPN_DECR_U (sp, sn, 1);
+ else
+ break;
+ }
+
+ /* 10: current buffers: {sp,sn}, {rp,rn}, {qp,qn}, {wp,wn} */
+
+ /* sometimes two corrections are needed with logbased_root*/
+ ASSERT (c <= 1 + LOGROOT_NEEDS_TWO_CORRECTIONS);
+ ASSERT_ALWAYS (rn >= qn);
+
+ b = sizes[ni - 1] - sizes[ni]; /* number of bits to compute in the
+ next iteration */
+ bn = b / GMP_NUMB_BITS; /* lowest limb from high part of rp[], after shift */
+
+ kk = kk - b;
+ /* nl is the number of limbs in U which contain bits [kk,kk+b-1] */
+ nl = 1 + (kk + b - 1) / GMP_NUMB_BITS - (kk / GMP_NUMB_BITS);
+ /* nl = 1 + floor((kk + b - 1) / GMP_NUMB_BITS)
+ - floor(kk / GMP_NUMB_BITS)
+ <= 1 + (kk + b - 1) / GMP_NUMB_BITS
+ - (kk - GMP_NUMB_BITS + 1) / GMP_NUMB_BITS
+ = 2 + (b - 2) / GMP_NUMB_BITS
+ thus since nl is an integer:
+ nl <= 2 + floor(b/GMP_NUMB_BITS) <= 2 + bn. */
+
+ /* 11: current buffers: {sp,sn}, {rp,rn}, {wp,wn} */
+
+ /* R = R - Q = floor(U/2^kk) - S^k */
+ if (perf_pow != 0)
+ {
+ mpn_sub (rp, rp, rn, qp, qn);
+ MPN_NORMALIZE_NOT_ZERO (rp, rn);
+
+ /* first multiply the remainder by 2^b */
+ MPN_LSHIFT (cy, rp + bn, rp, rn, b % GMP_NUMB_BITS);
+ rn = rn + bn;
+ if (cy != 0)
+ {
+ rp[rn] = cy;
+ rn++;
+ }
+
+ save = rp[bn];
+ /* we have to save rp[bn] up to rp[nl-1], i.e. 1 or 2 limbs */
+ if (nl - 1 > bn)
+ save2 = rp[bn + 1];
+ }
+ else
+ {
+ rn = bn;
+ save2 = save = 0;
+ }
+ /* 2: current buffers: {sp,sn}, {rp,rn}, {wp,wn} */
+
+ /* Now insert bits [kk,kk+b-1] from the input U */
+ MPN_RSHIFT (rp, up + kk / GMP_NUMB_BITS, nl, kk % GMP_NUMB_BITS);
+ /* set to zero high bits of rp[bn] */
+ rp[bn] &= (CNST_LIMB (1) << (b % GMP_NUMB_BITS)) - 1;
+ /* restore corresponding bits */
+ rp[bn] |= save;
+ if (nl - 1 > bn)
+ rp[bn + 1] = save2; /* the low b bits go in rp[0..bn] only, since
+ they start by bit 0 in rp[0], so they use
+ at most ceil(b/GMP_NUMB_BITS) limbs */
+ /* FIXME: Should we normalise {rp,rn} here ?*/
+
+ /* 3: current buffers: {sp,sn}, {rp,rn}, {wp,wn} */
+
+ /* compute {wp, wn} = k * {sp, sn}^(k-1) */
+ cy = mpn_mul_1 (wp, wp, wn, k);
+ wp[wn] = cy;
+ wn += cy != 0;
+
+ /* 6: current buffers: {sp,sn}, {qp,qn} */
+
+ /* multiply the root approximation by 2^b */
+ MPN_LSHIFT (cy, sp + b / GMP_NUMB_BITS, sp, sn, b % GMP_NUMB_BITS);
+ sn = sn + b / GMP_NUMB_BITS;
+ if (cy != 0)
+ {
+ sp[sn] = cy;
+ sn++;
+ }
+
+ save = sp[b / GMP_NUMB_BITS];
+
+ /* Number of limbs used by b bits, when least significant bit is
+ aligned to least limb */
+ bn = (b - 1) / GMP_NUMB_BITS + 1;
+
+ /* 4: current buffers: {sp,sn}, {rp,rn}, {wp,wn} */
+
+ /* now divide {rp, rn} by {wp, wn} to get the low part of the root */
+ if (UNLIKELY (rn < wn))
+ {
+ MPN_FILL (sp, bn, 0);
+ }
+ else
+ {
+ qn = rn - wn; /* expected quotient size */
+ if (qn <= bn) { /* Divide only if result is not too big. */
+ mpn_div_q (qp, rp, rn, wp, wn, scratch);
+ qn += qp[qn] != 0;
+ }
+
+ /* 5: current buffers: {sp,sn}, {qp,qn}.
+ Note: {rp,rn} is not needed any more since we'll compute it from
+ scratch at the end of the loop.
+ */
+
+ /* the quotient should be smaller than 2^b, since the previous
+ approximation was correctly rounded toward zero */
+ if (qn > bn || (qn == bn && (b % GMP_NUMB_BITS != 0) &&
+ qp[qn - 1] >= (CNST_LIMB (1) << (b % GMP_NUMB_BITS))))
+ {
+ for (qn = 1; qn < bn; ++qn)
+ sp[qn - 1] = GMP_NUMB_MAX;
+ sp[qn - 1] = GMP_NUMB_MAX >> (GMP_NUMB_BITS - 1 - ((b - 1) % GMP_NUMB_BITS));
+ }
+ else
+ {
+ /* 7: current buffers: {sp,sn}, {qp,qn} */
+
+ /* Combine sB and q to form sB + q. */
+ MPN_COPY (sp, qp, qn);
+ MPN_ZERO (sp + qn, bn - qn);
+ }
+ }
+ sp[b / GMP_NUMB_BITS] |= save;
+
+ /* 8: current buffer: {sp,sn} */
+
+ };
+
+ /* otherwise we have rn > 0, thus the return value is ok */
+ if (!approx || sp[0] <= CNST_LIMB (1))
+ {
+ for (c = 0;; c++)
+ {
+ /* Compute S^k in {qp,qn}. */
+ /* Last iteration: we don't need W anymore. */
+ /* mpn_pow_1 requires that both qp and wp have enough
+ space to store the result {sp,sn}^k + 1 limb */
+ qn = mpn_pow_1 (qp, sp, sn, k, wp);
+
+ perf_pow = 1;
+ if (qn > un || (qn == un && (perf_pow=mpn_cmp (qp, up, un)) > 0))
+ MPN_DECR_U (sp, sn, 1);
+ else
+ break;
+ };
+
+ /* sometimes two corrections are needed with logbased_root*/
+ ASSERT (c <= 1 + LOGROOT_NEEDS_TWO_CORRECTIONS);
+
+ rn = perf_pow != 0;
+ if (rn != 0 && remp != NULL)
+ {
+ mpn_sub (remp, up, un, qp, qn);
+ rn = un;
+ MPN_NORMALIZE_NOT_ZERO (remp, rn);
+ }
+ }
+
+ TMP_FREE;
+ return rn;
+}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/rshift.c b/Build/source/libs/gmp/gmp-src/mpn/generic/rshift.c
index ec61f2f7e24..ec61f2f7e24 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/rshift.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/rshift.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_bdiv_q.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sbpi1_bdiv_q.c
index 645b1d9b6a4..645b1d9b6a4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_bdiv_q.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sbpi1_bdiv_q.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_bdiv_qr.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sbpi1_bdiv_qr.c
index 0e56f581487..0e56f581487 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_bdiv_qr.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sbpi1_bdiv_qr.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_div_q.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sbpi1_div_q.c
index 3abbd579336..3abbd579336 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_div_q.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sbpi1_div_q.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_div_qr.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sbpi1_div_qr.c
index 0c3e4cb7298..0c3e4cb7298 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_div_qr.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sbpi1_div_qr.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_divappr_q.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sbpi1_divappr_q.c
index 3e7cf91ba61..3e7cf91ba61 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_divappr_q.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sbpi1_divappr_q.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/scan0.c b/Build/source/libs/gmp/gmp-src/mpn/generic/scan0.c
index 8171fd5afee..8171fd5afee 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/scan0.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/scan0.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/scan1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/scan1.c
index e22ad5d827a..e22ad5d827a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/scan1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/scan1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_aors_1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sec_aors_1.c
index d789a5792e8..d789a5792e8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_aors_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sec_aors_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_div.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sec_div.c
index 483b118d0dd..483b118d0dd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_div.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sec_div.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_invert.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sec_invert.c
index 43a578b2a19..72d447a9802 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_invert.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sec_invert.c
@@ -52,23 +52,6 @@ mpn_cnd_neg (int cnd, mp_limb_t *rp, const mp_limb_t *ap, mp_size_t n,
mpn_cnd_sub_n (cnd, rp, ap, scratch, n);
}
-static void
-mpn_cnd_swap (int cnd, volatile mp_limb_t *ap, volatile mp_limb_t *bp,
- mp_size_t n)
-{
- volatile mp_limb_t mask = - (mp_limb_t) (cnd != 0);
- mp_size_t i;
- for (i = 0; i < n; i++)
- {
- mp_limb_t a, b, t;
- a = ap[i];
- b = bp[i];
- t = (a ^ b) & mask;
- ap[i] = a ^ t;
- bp[i] = b ^ t;
- }
-}
-
static int
mpn_sec_eq_ui (mp_srcptr ap, mp_size_t n, mp_limb_t b)
{
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_mul.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sec_mul.c
index 2cd87fab1de..2cd87fab1de 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sec_mul.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_pi1_div.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sec_pi1_div.c
index 1e075daf732..1e075daf732 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_pi1_div.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sec_pi1_div.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_powm.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sec_powm.c
index 67de44e10af..315c7d5ba54 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_powm.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sec_powm.c
@@ -3,7 +3,7 @@
Contributed to the GNU project by Torbjörn Granlund.
-Copyright 2007-2009, 2011, 2012, 2013 Free Software Foundation, Inc.
+Copyright 2007-2009, 2011-2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -112,7 +112,7 @@ see https://www.gnu.org/licenses/. */
#ifdef TUNE_SQR_TOOM2_MAX
/* We slightly abuse TUNE_SQR_TOOM2_MAX here. If it is set for an assembly
mpn_sqr_basecase, it comes from SQR_TOOM2_THRESHOLD_MAX in the assembly
- file. An assembly mpn_sqr_basecase that does not define it, should allow
+ file. An assembly mpn_sqr_basecase that does not define it should allow
any size. */
#define SQR_BASECASE_LIM SQR_TOOM2_THRESHOLD
#endif
@@ -130,54 +130,14 @@ see https://www.gnu.org/licenses/. */
size. */
#define mpn_local_sqr(rp,up,n,tp) mpn_sqr_basecase(rp,up,n)
#else
-/* Define our own squaring function, which uses mpn_sqr_basecase for its
- allowed sizes, but its own code for larger sizes. */
-static void
-mpn_local_sqr (mp_ptr rp, mp_srcptr up, mp_size_t n, mp_ptr tp)
-{
- mp_size_t i;
-
- ASSERT (n >= 1);
- ASSERT (! MPN_OVERLAP_P (rp, 2*n, up, n));
-
- if (BELOW_THRESHOLD (n, SQR_BASECASE_LIM))
- {
- mpn_sqr_basecase (rp, up, n);
- return;
- }
-
- {
- mp_limb_t ul, lpl;
- ul = up[0];
- umul_ppmm (rp[1], lpl, ul, ul << GMP_NAIL_BITS);
- rp[0] = lpl >> GMP_NAIL_BITS;
- }
- if (n > 1)
- {
- mp_limb_t cy;
-
- cy = mpn_mul_1 (tp, up + 1, n - 1, up[0]);
- tp[n - 1] = cy;
- for (i = 2; i < n; i++)
- {
- mp_limb_t cy;
- cy = mpn_addmul_1 (tp + 2 * i - 2, up + i, n - i, up[i - 1]);
- tp[n + i - 2] = cy;
- }
- MPN_SQR_DIAGONAL (rp + 2, up + 1, n - 1);
-
- {
- mp_limb_t cy;
-#if HAVE_NATIVE_mpn_addlsh1_n
- cy = mpn_addlsh1_n (rp + 1, rp + 1, tp, 2 * n - 2);
-#else
- cy = mpn_lshift (tp, tp, 2 * n - 2, 1);
- cy += mpn_add_n (rp + 1, rp + 1, tp, 2 * n - 2);
-#endif
- rp[2 * n - 1] += cy;
- }
- }
-}
+/* Else use mpn_sqr_basecase for its allowed sizes, else mpn_mul_basecase. */
+#define mpn_local_sqr(rp,up,n,tp) \
+ do { \
+ if (BELOW_THRESHOLD (n, SQR_BASECASE_LIM)) \
+ mpn_sqr_basecase (rp, up, n); \
+ else \
+ mpn_mul_basecase(rp, up, n, up, n); \
+ } while (0)
#endif
#define getbit(p,bi) \
diff --git a/Build/source/libs/gmp/gmp-src/mpn/generic/sec_sqr.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sec_sqr.c
new file mode 100644
index 00000000000..82073cb323d
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sec_sqr.c
@@ -0,0 +1,77 @@
+/* mpn_sec_sqr.
+
+ Contributed to the GNU project by Torbjörn Granlund.
+
+Copyright 2013, 2014 Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#include "gmp.h"
+#include "gmp-impl.h"
+
+#if ! HAVE_NATIVE_mpn_sqr_basecase
+/* The limit of the generic code is SQR_TOOM2_THRESHOLD. */
+#define SQR_BASECASE_LIM SQR_TOOM2_THRESHOLD
+#endif
+
+#if HAVE_NATIVE_mpn_sqr_basecase
+#ifdef TUNE_SQR_TOOM2_MAX
+/* We slightly abuse TUNE_SQR_TOOM2_MAX here. If it is set for an assembly
+ mpn_sqr_basecase, it comes from SQR_TOOM2_THRESHOLD_MAX in the assembly
+ file. An assembly mpn_sqr_basecase that does not define it should allow
+ any size. */
+#define SQR_BASECASE_LIM SQR_TOOM2_THRESHOLD
+#endif
+#endif
+
+#ifdef WANT_FAT_BINARY
+/* For fat builds, we use SQR_TOOM2_THRESHOLD which will expand to a read from
+ __gmpn_cpuvec. Perhaps any possible sqr_basecase.asm allow any size, and we
+ limit the use unnecessarily. We cannot tell, so play it safe. FIXME. */
+#define SQR_BASECASE_LIM SQR_TOOM2_THRESHOLD
+#endif
+
+void
+mpn_sec_sqr (mp_ptr rp,
+ mp_srcptr ap, mp_size_t an,
+ mp_ptr tp)
+{
+#ifndef SQR_BASECASE_LIM
+/* If SQR_BASECASE_LIM is now not defined, use mpn_sqr_basecase for any operand
+ size. */
+ mpn_sqr_basecase (rp, ap, an);
+#else
+/* Else use mpn_sqr_basecase for its allowed sizes, else mpn_mul_basecase. */
+ mpn_mul_basecase (rp, ap, an, ap, an);
+#endif
+}
+
+mp_size_t
+mpn_sec_sqr_itch (mp_size_t an)
+{
+ return 0;
+}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_tabselect.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sec_tabselect.c
index 7ea2ffda63b..7ea2ffda63b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_tabselect.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sec_tabselect.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/set_str.c b/Build/source/libs/gmp/gmp-src/mpn/generic/set_str.c
index 71034e34bf9..71034e34bf9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/set_str.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/set_str.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sizeinbase.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sizeinbase.c
index 16633569ec2..16633569ec2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sizeinbase.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sizeinbase.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sqr.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sqr.c
index 3743761f784..3743761f784 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sqr.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sqr.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sqr_basecase.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sqr_basecase.c
index fc6a043a946..fc6a043a946 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sqr_basecase.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sqr_basecase.c
diff --git a/Build/source/libs/gmp/gmp-src/mpn/generic/sqrlo.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sqrlo.c
new file mode 100644
index 00000000000..26e53ea59e8
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sqrlo.c
@@ -0,0 +1,240 @@
+/* mpn_sqrlo -- squares an n-limb number and returns the low n limbs
+ of the result.
+
+ Contributed to the GNU project by Torbjorn Granlund and Marco Bodrato.
+
+ THIS IS (FOR NOW) AN INTERNAL FUNCTION. IT IS ONLY SAFE TO REACH THIS
+ FUNCTION THROUGH DOCUMENTED INTERFACES. IN FACT, IT IS ALMOST GUARANTEED
+ THAT IT'LL CHANGE OR DISAPPEAR IN A FUTURE GNU MP RELEASE.
+
+Copyright 2004, 2005, 2009, 2010, 2012, 2015 Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#include "gmp.h"
+#include "gmp-impl.h"
+
+#if TUNE_PROGRAM_BUILD || WANT_FAT_BINARY
+#define MAYBE_range_basecase 1
+#define MAYBE_range_toom22 1
+#else
+#define MAYBE_range_basecase \
+ ((SQRLO_DC_THRESHOLD == 0 ? SQRLO_BASECASE_THRESHOLD : SQRLO_DC_THRESHOLD) < SQR_TOOM2_THRESHOLD*36/(36-11))
+#define MAYBE_range_toom22 \
+ ((SQRLO_DC_THRESHOLD == 0 ? SQRLO_BASECASE_THRESHOLD : SQRLO_DC_THRESHOLD) < SQR_TOOM3_THRESHOLD*36/(36-11) )
+#endif
+
+/* THINK: The DC strategy uses different constants in different Toom's
+ ranges. Something smoother?
+*/
+
+/*
+ Compute the least significant half of the product {xy,n}*{yp,n}, or
+ formally {rp,n} = {xy,n}*{yp,n} Mod (B^n).
+
+ Above the given threshold, the Divide and Conquer strategy is used.
+ The operand is split in two, and a full square plus a mullo
+ is used to obtain the final result. The more natural strategy is to
+ split in two halves, but this is far from optimal when a
+ sub-quadratic multiplication is used.
+
+ Mulders suggests an unbalanced split in favour of the full product,
+ split n = n1 + n2, where an = n1 <= n2 = (1-a)n; i.e. 0 < a <= 1/2.
+
+ To compute the value of a, we assume that the cost of mullo for a
+ given size ML(n) is a fraction of the cost of a full product with
+ same size M(n), and the cost M(n)=n^e for some exponent 1 < e <= 2;
+ then we can write:
+
+ ML(n) = 2*ML(an) + M((1-a)n) => k*M(n) = 2*k*M(n)*a^e + M(n)*(1-a)^e
+
+ Given a value for e, want to minimise the value of k, i.e. the
+ function k=(1-a)^e/(1-2*a^e).
+
+ With e=2, the exponent for schoolbook multiplication, the minimum is
+ given by the values a=1-a=1/2.
+
+ With e=log(3)/log(2), the exponent for Karatsuba (aka toom22),
+ Mulders compute (1-a) = 0.694... and we approximate a with 11/36.
+
+ Other possible approximations follow:
+ e=log(5)/log(3) [Toom-3] -> a ~= 9/40
+ e=log(7)/log(4) [Toom-4] -> a ~= 7/39
+ e=log(11)/log(6) [Toom-6] -> a ~= 1/8
+ e=log(15)/log(8) [Toom-8] -> a ~= 1/10
+
+ The values above where obtained with the following trivial commands
+ in the gp-pari shell:
+
+fun(e,a)=(1-a)^e/(1-2*a^e)
+mul(a,b,c)={local(m,x,p);if(b-c<1/10000,(b+c)/2,m=1;x=b;forstep(p=c,b,(b-c)/8,if(fun(a,p)<m,m=fun(a,p);x=p));mul(a,(b+x)/2,(c+x)/2))}
+contfracpnqn(contfrac(mul(log(2*2-1)/log(2),1/2,0),5))
+contfracpnqn(contfrac(mul(log(3*2-1)/log(3),1/2,0),5))
+contfracpnqn(contfrac(mul(log(4*2-1)/log(4),1/2,0),5))
+contfracpnqn(contfrac(mul(log(6*2-1)/log(6),1/2,0),3))
+contfracpnqn(contfrac(mul(log(8*2-1)/log(8),1/2,0),3))
+
+ ,
+ |\
+ | \
+ +----,
+ | |
+ | |
+ | |\
+ | | \
+ +----+--`
+ ^ n2 ^n1^
+
+ For an actual implementation, the assumption that M(n)=n^e is
+ incorrect, as a consequence also the assumption that ML(n)=k*M(n)
+ with a constant k is wrong.
+
+ But theory suggest us two things:
+ - the best the multiplication product is (lower e), the more k
+ approaches 1, and a approaches 0.
+
+ - A value for a smaller than optimal is probably less bad than a
+ bigger one: e.g. let e=log(3)/log(2), a=0.3058_ the optimal
+ value, and k(a)=0.808_ the mul/mullo speed ratio. We get
+ k(a+1/6)=0.929_ but k(a-1/6)=0.865_.
+*/
+
+static mp_size_t
+mpn_sqrlo_itch (mp_size_t n)
+{
+ return 2*n;
+}
+
+/*
+ mpn_dc_sqrlo requires a scratch space of 2*n limbs at tp.
+ It accepts tp == rp.
+*/
+static void
+mpn_dc_sqrlo (mp_ptr rp, mp_srcptr xp, mp_size_t n, mp_ptr tp)
+{
+ mp_size_t n2, n1;
+ ASSERT (n >= 2);
+ ASSERT (! MPN_OVERLAP_P (rp, n, xp, n));
+ ASSERT (MPN_SAME_OR_SEPARATE2_P(rp, n, tp, 2*n));
+
+ /* Divide-and-conquer */
+
+ /* We need fractional approximation of the value 0 < a <= 1/2
+ giving the minimum in the function k=(1-a)^e/(1-2*a^e).
+ */
+ if (MAYBE_range_basecase && BELOW_THRESHOLD (n, SQR_TOOM2_THRESHOLD*36/(36-11)))
+ n1 = n >> 1;
+ else if (MAYBE_range_toom22 && BELOW_THRESHOLD (n, SQR_TOOM3_THRESHOLD*36/(36-11)))
+ n1 = n * 11 / (size_t) 36; /* n1 ~= n*(1-.694...) */
+ else if (BELOW_THRESHOLD (n, SQR_TOOM4_THRESHOLD*40/(40-9)))
+ n1 = n * 9 / (size_t) 40; /* n1 ~= n*(1-.775...) */
+ else if (BELOW_THRESHOLD (n, SQR_TOOM8_THRESHOLD*10/9))
+ n1 = n * 7 / (size_t) 39; /* n1 ~= n*(1-.821...) */
+ /* n1 = n * 4 / (size_t) 31; // n1 ~= n*(1-.871...) [TOOM66] */
+ else
+ n1 = n / (size_t) 10; /* n1 ~= n*(1-.899...) [TOOM88] */
+
+ n2 = n - n1;
+
+ /* Split as x = x1 2^(n2 GMP_NUMB_BITS) + x0 */
+
+ /* x0 ^ 2 */
+ mpn_sqr (tp, xp, n2);
+ MPN_COPY (rp, tp, n2);
+
+ /* x1 * x0 * 2^(n2 GMP_NUMB_BITS) */
+ if (BELOW_THRESHOLD (n1, MULLO_BASECASE_THRESHOLD))
+ mpn_mul_basecase (tp + n, xp + n2, n1, xp, n1);
+ else if (BELOW_THRESHOLD (n1, MULLO_DC_THRESHOLD))
+ mpn_mullo_basecase (tp + n, xp + n2, xp, n1);
+ else
+ mpn_mullo_n (tp + n, xp + n2, xp, n1);
+ /* mpn_dc_mullo_n (tp + n, xp + n2, xp, n1, tp + n); */
+#if HAVE_NATIVE_mpn_addlsh1_n
+ mpn_addlsh1_n (rp + n2, tp + n2, tp + n, n1);
+#else
+ mpn_lshift (rp + n2, tp + n, n1, 1);
+ mpn_add_n (rp + n2, rp + n2, tp + n2, n1);
+#endif
+}
+
+/* Avoid zero allocations when MULLO_BASECASE_THRESHOLD is 0. */
+#define SQR_BASECASE_ALLOC \
+ (SQRLO_BASECASE_THRESHOLD_LIMIT == 0 ? 1 : 2*SQRLO_BASECASE_THRESHOLD_LIMIT)
+
+/* FIXME: This function should accept a temporary area; dc_sqrlo
+ accepts a pointer tp, and handle the case tp == rp, do the same here.
+*/
+
+void
+mpn_sqrlo (mp_ptr rp, mp_srcptr xp, mp_size_t n)
+{
+ ASSERT (n >= 1);
+ ASSERT (! MPN_OVERLAP_P (rp, n, xp, n));
+
+ if (BELOW_THRESHOLD (n, SQRLO_BASECASE_THRESHOLD))
+ {
+ /* FIXME: smarter criteria? */
+#if HAVE_NATIVE_mpn_mullo_basecase || ! HAVE_NATIVE_mpn_sqr_basecase
+ /* mullo computes as many products as sqr, but directly writes
+ on the result area. */
+ mpn_mullo_basecase (rp, xp, xp, n);
+#else
+ /* Allocate workspace of fixed size on stack: fast! */
+ mp_limb_t tp[SQR_BASECASE_ALLOC];
+ mpn_sqr_basecase (tp, xp, n);
+ MPN_COPY (rp, tp, n);
+#endif
+ }
+ else if (BELOW_THRESHOLD (n, SQRLO_DC_THRESHOLD))
+ {
+ mpn_sqrlo_basecase (rp, xp, n);
+ }
+ else
+ {
+ mp_ptr tp;
+ TMP_DECL;
+ TMP_MARK;
+ tp = TMP_ALLOC_LIMBS (mpn_sqrlo_itch (n));
+ if (BELOW_THRESHOLD (n, SQRLO_SQR_THRESHOLD))
+ {
+ mpn_dc_sqrlo (rp, xp, n, tp);
+ }
+ else
+ {
+ /* For really large operands, use plain mpn_mul_n but throw away upper n
+ limbs of result. */
+#if !TUNE_PROGRAM_BUILD && (SQRLO_SQR_THRESHOLD > SQR_FFT_THRESHOLD)
+ mpn_fft_mul (tp, xp, n, xp, n);
+#else
+ mpn_sqr (tp, xp, n);
+#endif
+ MPN_COPY (rp, tp, n);
+ }
+ TMP_FREE;
+ }
+}
diff --git a/Build/source/libs/gmp/gmp-src/mpn/generic/sqrlo_basecase.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sqrlo_basecase.c
new file mode 100644
index 00000000000..c3159938f28
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sqrlo_basecase.c
@@ -0,0 +1,181 @@
+/* mpn_sqrlo_basecase -- Internal routine to square a natural number
+ of length n.
+
+ THIS IS AN INTERNAL FUNCTION WITH A MUTABLE INTERFACE. IT IS ONLY
+ SAFE TO REACH THIS FUNCTION THROUGH DOCUMENTED INTERFACES.
+
+
+Copyright 1991-1994, 1996, 1997, 2000-2005, 2008, 2010, 2011, 2015
+Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#include "gmp.h"
+#include "gmp-impl.h"
+#include "longlong.h"
+
+#ifndef SQRLO_SHORTCUT_MULTIPLICATIONS
+#if HAVE_NATIVE_mpn_addmul_1
+#define SQRLO_SHORTCUT_MULTIPLICATIONS 0
+#else
+#define SQRLO_SHORTCUT_MULTIPLICATIONS 1
+#endif
+#endif
+
+#if HAVE_NATIVE_mpn_sqr_diagonal
+#define MPN_SQR_DIAGONAL(rp, up, n) \
+ mpn_sqr_diagonal (rp, up, n)
+#else
+#define MPN_SQR_DIAGONAL(rp, up, n) \
+ do { \
+ mp_size_t _i; \
+ for (_i = 0; _i < (n); _i++) \
+ { \
+ mp_limb_t ul, lpl; \
+ ul = (up)[_i]; \
+ umul_ppmm ((rp)[2 * _i + 1], lpl, ul, ul << GMP_NAIL_BITS); \
+ (rp)[2 * _i] = lpl >> GMP_NAIL_BITS; \
+ } \
+ } while (0)
+#endif
+
+#define MPN_SQRLO_DIAGONAL(rp, up, n) \
+ do { \
+ mp_size_t nhalf; \
+ nhalf = (n) >> 1; \
+ MPN_SQR_DIAGONAL ((rp), (up), nhalf); \
+ if (((n) & 1) != 0) \
+ { \
+ mp_limb_t op; \
+ op = (up)[nhalf]; \
+ (rp)[(n) - 1] = (op * op) & GMP_NUMB_MASK; \
+ } \
+ } while (0)
+
+#if HAVE_NATIVE_mpn_addlsh1_n_ip1
+#define MPN_SQRLO_DIAG_ADDLSH1(rp, tp, up, n) \
+ do { \
+ MPN_SQRLO_DIAGONAL((rp), (up), (n)); \
+ mpn_addlsh1_n_ip1 ((rp) + 1, (tp), (n) - 1); \
+ } while (0)
+#else
+#define MPN_SQRLO_DIAG_ADDLSH1(rp, tp, up, n) \
+ do { \
+ MPN_SQRLO_DIAGONAL((rp), (up), (n)); \
+ mpn_lshift ((tp), (tp), (n) - 1, 1); \
+ mpn_add_n ((rp) + 1, (rp) + 1, (tp), (n) - 1); \
+ } while (0)
+#endif
+
+/* Avoid zero allocations when SQRLO_LO_THRESHOLD is 0 (this code not used). */
+#define SQRLO_BASECASE_ALLOC \
+ (SQRLO_DC_THRESHOLD_LIMIT < 2 ? 1 : SQRLO_DC_THRESHOLD_LIMIT - 1)
+
+/* Default mpn_sqrlo_basecase using mpn_addmul_1. */
+#ifndef SQRLO_SPECIAL_CASES
+#define SQRLO_SPECIAL_CASES 2
+#endif
+void
+mpn_sqrlo_basecase (mp_ptr rp, mp_srcptr up, mp_size_t n)
+{
+ mp_limb_t ul;
+
+ ASSERT (n >= 1);
+ ASSERT (! MPN_OVERLAP_P (rp, n, up, n));
+
+ ul = up[0];
+
+ if (n <= SQRLO_SPECIAL_CASES)
+ {
+#if SQRLO_SPECIAL_CASES == 1
+ rp[0] = (ul * ul) & GMP_NUMB_MASK;
+#else
+ if (n == 1)
+ rp[0] = (ul * ul) & GMP_NUMB_MASK;
+ else
+ {
+ mp_limb_t hi, lo, ul1;
+ umul_ppmm (hi, lo, ul, ul << GMP_NAIL_BITS);
+ rp[0] = lo >> GMP_NAIL_BITS;
+ ul1 = up[1];
+#if SQRLO_SPECIAL_CASES == 2
+ rp[1] = (hi + ul * ul1 * 2) & GMP_NUMB_MASK;
+#else
+ if (n == 2)
+ rp[1] = (hi + ul * ul1 * 2) & GMP_NUMB_MASK;
+ else
+ {
+ mp_limb_t hi1;
+#if GMP_NAIL_BITS != 0
+ ul <<= 1;
+#endif
+ umul_ppmm (hi1, lo, ul1 << GMP_NAIL_BITS, ul);
+ hi1 += ul * up[2];
+#if GMP_NAIL_BITS == 0
+ hi1 = (hi1 << 1) | (lo >> (GMP_LIMB_BITS - 1));
+ add_ssaaaa(rp[2], rp[1], hi1, lo << 1, ul1 * ul1, hi);
+#else
+ hi += lo >> GMP_NAIL_BITS;
+ rp[1] = hi & GMP_NUMB_MASK;
+ rp[2] = (hi1 + ul1 * ul1 + (hi >> GMP_NUMB_BITS)) & GMP_NUMB_MASK;
+#endif
+ }
+#endif
+ }
+#endif
+ }
+ else
+ {
+ mp_limb_t tp[SQRLO_BASECASE_ALLOC];
+ mp_size_t i;
+
+ /* must fit n-1 limbs in tp */
+ ASSERT (n <= SQRLO_DC_THRESHOLD_LIMIT);
+
+ --n;
+#if SQRLO_SHORTCUT_MULTIPLICATIONS
+ {
+ mp_limb_t cy;
+
+ cy = ul * up[n] + mpn_mul_1 (tp, up + 1, n - 1, ul);
+ for (i = 1; 2 * i + 1 < n; ++i)
+ {
+ ul = up[i];
+ cy += ul * up[n - i] + mpn_addmul_1 (tp + 2 * i, up + i + 1, n - 2 * i - 1, ul);
+ }
+ tp [n-1] = (cy + ((n & 1)?up[i] * up[i + 1]:0)) & GMP_NUMB_MASK;
+ }
+#else
+ mpn_mul_1 (tp, up + 1, n, ul);
+ for (i = 1; 2 * i < n; ++i)
+ mpn_addmul_1 (tp + 2 * i, up + i + 1, n - 2 * i, up[i]);
+#endif
+
+ MPN_SQRLO_DIAG_ADDLSH1 (rp, tp, up, n + 1);
+ }
+}
+#undef SQRLO_SPECIAL_CASES
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sqrmod_bnm1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sqrmod_bnm1.c
index fd0868b90b7..fd0868b90b7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sqrmod_bnm1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sqrmod_bnm1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sqrtrem.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sqrtrem.c
index 7d0f1200017..4835e8e5954 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sqrtrem.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sqrtrem.c
@@ -1,15 +1,15 @@
/* mpn_sqrtrem -- square root and remainder
- Contributed to the GNU project by Paul Zimmermann (most code) and
- Torbjorn Granlund (mpn_sqrtrem1).
+ Contributed to the GNU project by Paul Zimmermann (most code),
+ Torbjorn Granlund (mpn_sqrtrem1) and Marco Bodrato (mpn_dc_sqrt).
THE FUNCTIONS IN THIS FILE EXCEPT mpn_sqrtrem ARE INTERNAL WITH A
MUTABLE INTERFACE. IT IS ONLY SAFE TO REACH THEM THROUGH DOCUMENTED
INTERFACES. IN FACT, IT IS ALMOST GUARANTEED THAT THEY WILL CHANGE OR
DISAPPEAR IN A FUTURE GMP RELEASE.
-Copyright 1999-2002, 2004, 2005, 2008, 2010, 2012 Free Software Foundation,
-Inc.
+Copyright 1999-2002, 2004, 2005, 2008, 2010, 2012, 2015 Free Software
+Foundation, Inc.
This file is part of the GNU MP Library.
@@ -47,6 +47,8 @@ see https://www.gnu.org/licenses/. */
#include "gmp.h"
#include "gmp-impl.h"
#include "longlong.h"
+#define USE_DIVAPPR_Q 1
+#define TRACE(x)
static const unsigned char invsqrttab[384] = /* The common 0x100 was removed */
{
@@ -132,7 +134,7 @@ mpn_sqrtrem1 (mp_ptr rp, mp_limb_t a0)
#if GMP_NUMB_BITS > 32
a1 = a0 >> (GMP_LIMB_BITS - 1 - 32);
- t = (mp_limb_signed_t) (CNST_LIMB(0x2000000000000) - 0x30000 - a1 * x0 * x0) >> 16;
+ t = (mp_limb_signed_t) (CNST_LIMB(0x2000000000000) - 0x30000 - a1 * x0 * x0) >> 16;
x0 = (x0 << 16) + ((mp_limb_signed_t) (x0 * t) >> (16+2));
/* x0 is now a 16 bits approximation of 1/sqrt(a0) */
@@ -171,45 +173,33 @@ mpn_sqrtrem1 (mp_ptr rp, mp_limb_t a0)
static mp_limb_t
mpn_sqrtrem2 (mp_ptr sp, mp_ptr rp, mp_srcptr np)
{
- mp_limb_t qhl, q, u, np0, sp0, rp0, q2;
+ mp_limb_t q, u, np0, sp0, rp0, q2;
int cc;
ASSERT (np[1] >= GMP_NUMB_HIGHBIT / 2);
np0 = np[0];
sp0 = mpn_sqrtrem1 (rp, np[1]);
- qhl = 0;
rp0 = rp[0];
- while (rp0 >= sp0)
- {
- qhl++;
- rp0 -= sp0;
- }
- /* now rp0 < sp0 < 2^Prec */
- rp0 = (rp0 << Prec) + (np0 >> Prec);
- u = 2 * sp0;
- q = rp0 / u;
- u = rp0 - q * u;
- q += (qhl & 1) << (Prec - 1);
- qhl >>= 1; /* if qhl=1, necessary q=0 as qhl*2^Prec + q <= 2^Prec */
- /* now we have (initial rp0)<<Prec + np0>>Prec = (qhl<<Prec + q) * (2sp0) + u */
- sp0 = ((sp0 + qhl) << Prec) + q;
- cc = u >> Prec;
- rp0 = ((u << Prec) & GMP_NUMB_MASK) + (np0 & (((mp_limb_t) 1 << Prec) - 1));
- /* subtract q * q or qhl*2^(2*Prec) from rp */
+ /* rp0 <= 2*sp0 < 2^(Prec + 1) */
+ rp0 = (rp0 << (Prec - 1)) + (np0 >> (Prec + 1));
+ q = rp0 / sp0;
+ /* q <= 2^Prec, if q = 2^Prec, reduce the overestimate. */
+ q -= q >> Prec;
+ /* now we have q < 2^Prec */
+ u = rp0 - q * sp0;
+ /* now we have (rp[0]<<Prec + np0>>Prec)/2 = q * sp0 + u */
+ sp0 = (sp0 << Prec) | q;
+ cc = u >> (Prec - 1);
+ rp0 = ((u << (Prec + 1)) & GMP_NUMB_MASK) + (np0 & ((CNST_LIMB (1) << (Prec + 1)) - 1));
+ /* subtract q * q from rp */
q2 = q * q;
- cc -= (rp0 < q2) + qhl;
+ cc -= rp0 < q2;
rp0 -= q2;
- /* now subtract 2*q*2^Prec + 2^(2*Prec) if qhl is set */
if (cc < 0)
{
- if (sp0 != 0)
- {
- rp0 += sp0;
- cc += rp0 < sp0;
- }
- else
- cc++;
+ rp0 += sp0;
+ cc += rp0 < sp0;
--sp0;
rp0 += sp0;
cc += rp0 < sp0;
@@ -224,9 +214,10 @@ mpn_sqrtrem2 (mp_ptr sp, mp_ptr rp, mp_srcptr np)
and in {np, n} the low n limbs of the remainder, returns the high
limb of the remainder (which is 0 or 1).
Assumes {np, 2n} is normalized, i.e. np[2n-1] >= B/4
- where B=2^GMP_NUMB_BITS. */
+ where B=2^GMP_NUMB_BITS.
+ Needs a scratch of n/2+1 limbs. */
static mp_limb_t
-mpn_dc_sqrtrem (mp_ptr sp, mp_ptr np, mp_size_t n)
+mpn_dc_sqrtrem (mp_ptr sp, mp_ptr np, mp_size_t n, mp_limb_t approx, mp_ptr scratch)
{
mp_limb_t q; /* carry out of {sp, n} */
int c, b; /* carry out of remainder */
@@ -240,25 +231,30 @@ mpn_dc_sqrtrem (mp_ptr sp, mp_ptr np, mp_size_t n)
{
l = n / 2;
h = n - l;
- q = mpn_dc_sqrtrem (sp + l, np + 2 * l, h);
+ q = mpn_dc_sqrtrem (sp + l, np + 2 * l, h, 0, scratch);
if (q != 0)
- mpn_sub_n (np + 2 * l, np + 2 * l, sp + l, h);
- q += mpn_divrem (sp, 0, np + l, n, sp + l, h);
- c = sp[0] & 1;
- mpn_rshift (sp, sp, l, 1);
+ ASSERT_CARRY (mpn_sub_n (np + 2 * l, np + 2 * l, sp + l, h));
+ TRACE(printf("tdiv_qr(,,,,%u,,%u) -> %u\n", (unsigned) n, (unsigned) h, (unsigned) (n - h + 1)));
+ mpn_tdiv_qr (scratch, np + l, 0, np + l, n, sp + l, h);
+ q += scratch[l];
+ c = scratch[0] & 1;
+ mpn_rshift (sp, scratch, l, 1);
sp[l - 1] |= (q << (GMP_NUMB_BITS - 1)) & GMP_NUMB_MASK;
+ if (UNLIKELY ((sp[0] & approx) != 0)) /* (sp[0] & mask) > 1 */
+ return 1; /* Remainder is non-zero */
q >>= 1;
if (c != 0)
c = mpn_add_n (np + l, np + l, sp + l, h);
+ TRACE(printf("sqr(,,%u)\n", (unsigned) l));
mpn_sqr (np + n, sp, l);
b = q + mpn_sub_n (np, np, np + n, 2 * l);
c -= (l == h) ? b : mpn_sub_1 (np + 2 * l, np + 2 * l, 1, (mp_limb_t) b);
- q = mpn_add_1 (sp + l, sp + l, h, q);
if (c < 0)
{
-#if HAVE_NATIVE_mpn_addlsh1_n
- c += mpn_addlsh1_n (np, np, sp, n) + 2 * q;
+ q = mpn_add_1 (sp + l, sp + l, h, q);
+#if HAVE_NATIVE_mpn_addlsh1_n_ip1 || HAVE_NATIVE_mpn_addlsh1_n
+ c += mpn_addlsh1_n_ip1 (np, sp, n) + 2 * q;
#else
c += mpn_addmul_1 (np, sp, n, CNST_LIMB(2)) + 2 * q;
#endif
@@ -270,6 +266,156 @@ mpn_dc_sqrtrem (mp_ptr sp, mp_ptr np, mp_size_t n)
return c;
}
+#if USE_DIVAPPR_Q
+static void
+mpn_divappr_q (mp_ptr qp, mp_srcptr np, mp_size_t nn, mp_srcptr dp, mp_size_t dn, mp_ptr scratch)
+{
+ gmp_pi1_t inv;
+ mp_limb_t qh;
+ ASSERT (dn > 2);
+ ASSERT (nn >= dn);
+ ASSERT ((dp[dn-1] & GMP_NUMB_HIGHBIT) != 0);
+
+ MPN_COPY (scratch, np, nn);
+ invert_pi1 (inv, dp[dn-1], dp[dn-2]);
+ if (BELOW_THRESHOLD (dn, DC_DIVAPPR_Q_THRESHOLD))
+ qh = mpn_sbpi1_divappr_q (qp, scratch, nn, dp, dn, inv.inv32);
+ else if (BELOW_THRESHOLD (dn, MU_DIVAPPR_Q_THRESHOLD))
+ qh = mpn_dcpi1_divappr_q (qp, scratch, nn, dp, dn, &inv);
+ else
+ {
+ mp_size_t itch = mpn_mu_divappr_q_itch (nn, dn, 0);
+ TMP_DECL;
+ TMP_MARK;
+ /* Sadly, scratch is too small. */
+ qh = mpn_mu_divappr_q (qp, np, nn, dp, dn, TMP_ALLOC_LIMBS (itch));
+ TMP_FREE;
+ }
+ qp [nn - dn] = qh;
+}
+#endif
+
+/* writes in {sp, n} the square root (rounded towards zero) of {np, 2n-odd},
+ returns zero if the operand was a perfect square, one otherwise.
+ Assumes {np, 2n-odd}*4^nsh is normalized, i.e. B > np[2n-1-odd]*4^nsh >= B/4
+ where B=2^GMP_NUMB_BITS.
+ THINK: In the odd case, three more (dummy) limbs are taken into account,
+ when nsh is maximal, two limbs are discarded from the result of the
+ division. Too much? Is a single dummy limb enough? */
+static int
+mpn_dc_sqrt (mp_ptr sp, mp_srcptr np, mp_size_t n, unsigned nsh, unsigned odd)
+{
+ mp_limb_t q; /* carry out of {sp, n} */
+ int c; /* carry out of remainder */
+ mp_size_t l, h;
+ mp_ptr qp, tp, scratch;
+ TMP_DECL;
+ TMP_MARK;
+
+ ASSERT (np[2 * n - 1 - odd] != 0);
+ ASSERT (n > 4);
+ ASSERT (nsh < GMP_NUMB_BITS / 2);
+
+ l = (n - 1) / 2;
+ h = n - l;
+ ASSERT (n >= l + 2 && l + 2 >= h && h > l && l >= 1 + odd);
+ scratch = TMP_ALLOC_LIMBS (l + 2 * n + 5 - USE_DIVAPPR_Q); /* n + 2-USE_DIVAPPR_Q */
+ tp = scratch + n + 2 - USE_DIVAPPR_Q; /* n + h + 1, but tp [-1] is writable */
+ if (nsh != 0)
+ {
+ /* o is used to exactly set the lowest bits of the dividend, is it needed? */
+ int o = l > (1 + odd);
+ ASSERT_NOCARRY (mpn_lshift (tp - o, np + l - 1 - o - odd, n + h + 1 + o, 2 * nsh));
+ }
+ else
+ MPN_COPY (tp, np + l - 1 - odd, n + h + 1);
+ q = mpn_dc_sqrtrem (sp + l, tp + l + 1, h, 0, scratch);
+ if (q != 0)
+ ASSERT_CARRY (mpn_sub_n (tp + l + 1, tp + l + 1, sp + l, h));
+ qp = tp + n + 1; /* l + 2 */
+ TRACE(printf("div(appr)_q(,,%u,,%u) -> %u \n", (unsigned) n+1, (unsigned) h, (unsigned) (n + 1 - h + 1)));
+#if USE_DIVAPPR_Q
+ mpn_divappr_q (qp, tp, n + 1, sp + l, h, scratch);
+#else
+ mpn_div_q (qp, tp, n + 1, sp + l, h, scratch);
+#endif
+ q += qp [l + 1];
+ c = 1;
+ if (q > 1)
+ {
+ /* FIXME: if s!=0 we will shift later, a noop on this area. */
+ MPN_FILL (sp, l, GMP_NUMB_MAX);
+ }
+ else
+ {
+ /* FIXME: if s!=0 we will shift again later, shift just once. */
+ mpn_rshift (sp, qp + 1, l, 1);
+ sp[l - 1] |= q << (GMP_NUMB_BITS - 1);
+ if (((qp[0] >> (2 + USE_DIVAPPR_Q)) | /* < 3 + 4*USE_DIVAPPR_Q */
+ (qp[1] & (GMP_NUMB_MASK >> ((GMP_NUMB_BITS >> odd)- nsh - 1)))) == 0)
+ {
+ mp_limb_t cy;
+ /* Approximation is not good enough, the extra limb(+ nsh bits)
+ is smaller than needed to absorb the possible error. */
+ /* {qp + 1, l + 1} equals 2*{sp, l} */
+ /* FIXME: use mullo or wrap-around, or directly evaluate
+ remainder with a single sqrmod_bnm1. */
+ TRACE(printf("mul(,,%u,,%u)\n", (unsigned) h, (unsigned) (l+1)));
+ ASSERT_NOCARRY (mpn_mul (scratch, sp + l, h, qp + 1, l + 1));
+ /* Compute the remainder of the previous mpn_div(appr)_q. */
+ cy = mpn_sub_n (tp + 1, tp + 1, scratch, h);
+#if USE_DIVAPPR_Q || WANT_ASSERT
+ MPN_DECR_U (tp + 1 + h, l, cy);
+#if USE_DIVAPPR_Q
+ ASSERT (mpn_cmp (tp + 1 + h, scratch + h, l) <= 0);
+ if (mpn_cmp (tp + 1 + h, scratch + h, l) < 0)
+ {
+ /* May happen only if div result was not exact. */
+#if HAVE_NATIVE_mpn_addlsh1_n_ip1 || HAVE_NATIVE_mpn_addlsh1_n
+ cy = mpn_addlsh1_n_ip1 (tp + 1, sp + l, h);
+#else
+ cy = mpn_addmul_1 (tp + 1, sp + l, h, CNST_LIMB(2));
+#endif
+ ASSERT_NOCARRY (mpn_add_1 (tp + 1 + h, tp + 1 + h, l, cy));
+ MPN_DECR_U (sp, l, 1);
+ }
+ /* Can the root be exact when a correction was needed? We
+ did not find an example, but it depends on divappr
+ internals, and we can not assume it true in general...*/
+ /* else */
+#else /* WANT_ASSERT */
+ ASSERT (mpn_cmp (tp + 1 + h, scratch + h, l) == 0);
+#endif
+#endif
+ if (mpn_zero_p (tp + l + 1, h - l))
+ {
+ TRACE(printf("sqr(,,%u)\n", (unsigned) l));
+ mpn_sqr (scratch, sp, l);
+ c = mpn_cmp (tp + 1, scratch + l, l);
+ if (c == 0)
+ {
+ if (nsh != 0)
+ {
+ mpn_lshift (tp, np, l, 2 * nsh);
+ np = tp;
+ }
+ c = mpn_cmp (np, scratch + odd, l - odd);
+ }
+ if (c < 0)
+ {
+ MPN_DECR_U (sp, l, 1);
+ c = 1;
+ }
+ }
+ }
+ }
+ TMP_FREE;
+
+ if ((odd | nsh) != 0)
+ mpn_rshift (sp, sp, n, nsh + (odd ? GMP_NUMB_BITS / 2 : 0));
+ return c;
+}
+
mp_size_t
mpn_sqrtrem (mp_ptr sp, mp_ptr rp, mp_srcptr np, mp_size_t nn)
@@ -279,47 +425,61 @@ mpn_sqrtrem (mp_ptr sp, mp_ptr rp, mp_srcptr np, mp_size_t nn)
mp_size_t rn, tn;
TMP_DECL;
- ASSERT (nn >= 0);
+ ASSERT (nn > 0);
ASSERT_MPN (np, nn);
- /* If OP is zero, both results are zero. */
- if (nn == 0)
- return 0;
-
ASSERT (np[nn - 1] != 0);
ASSERT (rp == NULL || MPN_SAME_OR_SEPARATE_P (np, rp, nn));
ASSERT (rp == NULL || ! MPN_OVERLAP_P (sp, (nn + 1) / 2, rp, nn));
ASSERT (! MPN_OVERLAP_P (sp, (nn + 1) / 2, np, nn));
high = np[nn - 1];
- if (nn == 1 && (high & GMP_NUMB_HIGHBIT))
+ if (high & (GMP_NUMB_HIGHBIT | (GMP_NUMB_HIGHBIT / 2)))
+ c = 0;
+ else
{
- mp_limb_t r;
- sp[0] = mpn_sqrtrem1 (&r, high);
- if (rp != NULL)
- rp[0] = r;
- return r != 0;
- }
- count_leading_zeros (c, high);
- c -= GMP_NAIL_BITS;
+ count_leading_zeros (c, high);
+ c -= GMP_NAIL_BITS;
- c = c / 2; /* we have to shift left by 2c bits to normalize {np, nn} */
+ c = c / 2; /* we have to shift left by 2c bits to normalize {np, nn} */
+ }
+ if (nn == 1) {
+ if (c == 0)
+ {
+ sp[0] = mpn_sqrtrem1 (&rl, high);
+ if (rp != NULL)
+ rp[0] = rl;
+ }
+ else
+ {
+ cc = mpn_sqrtrem1 (&rl, high << (2*c)) >> c;
+ sp[0] = cc;
+ if (rp != NULL)
+ rp[0] = rl = high - cc*cc;
+ }
+ return rl != 0;
+ }
tn = (nn + 1) / 2; /* 2*tn is the smallest even integer >= nn */
+ if ((rp == NULL) && (nn > 8))
+ return mpn_dc_sqrt (sp, np, tn, c, nn & 1);
TMP_MARK;
- if (nn % 2 != 0 || c > 0)
+ if (((nn & 1) | c) != 0)
{
- tp = TMP_ALLOC_LIMBS (2 * tn);
+ mp_limb_t mask;
+ mp_ptr scratch;
+ TMP_ALLOC_LIMBS_2 (tp, 2 * tn, scratch, tn / 2 + 1);
tp[0] = 0; /* needed only when 2*tn > nn, but saves a test */
if (c != 0)
- mpn_lshift (tp + 2 * tn - nn, np, nn, 2 * c);
+ mpn_lshift (tp + (nn & 1), np, nn, 2 * c);
else
- MPN_COPY (tp + 2 * tn - nn, np, nn);
- rl = mpn_dc_sqrtrem (sp, tp, tn);
+ MPN_COPY (tp + (nn & 1), np, nn);
+ c += (nn & 1) ? GMP_NUMB_BITS / 2 : 0; /* c now represents k */
+ mask = (CNST_LIMB (1) << c) - 1;
+ rl = mpn_dc_sqrtrem (sp, tp, tn, (rp == NULL) ? mask - 1 : 0, scratch);
/* We have 2^(2k)*N = S^2 + R where k = c + (2tn-nn)*GMP_NUMB_BITS/2,
thus 2^(2k)*N = (S-s0)^2 + 2*S*s0 - s0^2 + R where s0=S mod 2^k */
- c += (nn % 2) * GMP_NUMB_BITS / 2; /* c now represents k */
- s0[0] = sp[0] & (((mp_limb_t) 1 << c) - 1); /* S mod 2^k */
+ s0[0] = sp[0] & mask; /* S mod 2^k */
rl += mpn_addmul_1 (tp, sp, tn, 2 * s0[0]); /* R = R + 2*s0*S */
cc = mpn_submul_1 (tp, s0, 1, s0[0]);
rl -= (tn > 1) ? mpn_sub_1 (tp + 1, tp + 1, tn - 1, cc) : cc;
@@ -343,11 +503,13 @@ mpn_sqrtrem (mp_ptr sp, mp_ptr rp, mp_srcptr np, mp_size_t nn)
}
else
{
- if (rp == NULL)
- rp = TMP_ALLOC_LIMBS (nn);
if (rp != np)
- MPN_COPY (rp, np, nn);
- rn = tn + (rp[tn] = mpn_dc_sqrtrem (sp, rp, tn));
+ {
+ if (rp == NULL) /* nn <= 8 */
+ rp = TMP_SALLOC_LIMBS (nn);
+ MPN_COPY (rp, np, nn);
+ }
+ rn = tn + (rp[tn] = mpn_dc_sqrtrem (sp, rp, tn, 0, TMP_ALLOC_LIMBS(tn / 2 + 1)));
}
MPN_NORMALIZE (rp, rn);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sub.c
index 3fbcbbe98b4..3fbcbbe98b4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sub.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sub_1.c
index db2e6f948f5..db2e6f948f5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sub_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_err1_n.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sub_err1_n.c
index 340313a323a..340313a323a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_err1_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sub_err1_n.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_err2_n.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sub_err2_n.c
index 63ea2451b49..63ea2451b49 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_err2_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sub_err2_n.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_err3_n.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sub_err3_n.c
index a80e05d0d96..a80e05d0d96 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_err3_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sub_err3_n.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_n.c b/Build/source/libs/gmp/gmp-src/mpn/generic/sub_n.c
index 29de2d2d891..29de2d2d891 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/sub_n.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/submul_1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/submul_1.c
index fbc3501389d..fbc3501389d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/submul_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/submul_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/tdiv_qr.c b/Build/source/libs/gmp/gmp-src/mpn/generic/tdiv_qr.c
index be213b04673..0d87663513d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/tdiv_qr.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/tdiv_qr.c
@@ -183,7 +183,7 @@ mpn_tdiv_qr (mp_ptr qp, mp_ptr rp, mp_size_t qxn,
by the qn most significant limbs from the denominator. Call
the result qest. This is either the correct quotient, but
might be 1 or 2 too large. Compute the remainder from the
- division. (This step is implemented by a mpn_divrem call.)
+ division. (This step is implemented by an mpn_divrem call.)
2) Is the most significant limb from the remainder < p, where p
is the product of the most significant limb from the quotient
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom22_mul.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom22_mul.c
index 36ac29b72d4..aa4232b6187 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom22_mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom22_mul.c
@@ -7,7 +7,7 @@
SAFE TO REACH IT THROUGH DOCUMENTED INTERFACES. IN FACT, IT IS ALMOST
GUARANTEED THAT IT WILL CHANGE OR DISAPPEAR IN A FUTURE GNU MP RELEASE.
-Copyright 2006-2010, 2012 Free Software Foundation, Inc.
+Copyright 2006-2010, 2012, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -109,7 +109,7 @@ mpn_toom22_mul (mp_ptr pp,
ASSERT (an >= bn);
- ASSERT (0 < s && s <= n);
+ ASSERT (0 < s && s <= n && s >= n - 1);
ASSERT (0 < t && t <= s);
asm1 = pp;
@@ -130,17 +130,17 @@ mpn_toom22_mul (mp_ptr pp,
mpn_sub_n (asm1, a0, a1, n);
}
}
- else
+ else /* n - s == 1 */
{
- if (mpn_zero_p (a0 + s, n - s) && mpn_cmp (a0, a1, s) < 0)
+ if (a0[s] == 0 && mpn_cmp (a0, a1, s) < 0)
{
mpn_sub_n (asm1, a1, a0, s);
- MPN_ZERO (asm1 + s, n - s);
+ asm1[s] = 0;
vm1_neg = 1;
}
else
{
- mpn_sub (asm1, a0, n, a1, s);
+ asm1[s] = a0[s] - mpn_sub_n (asm1, a0, a1, s);
}
}
@@ -202,9 +202,10 @@ mpn_toom22_mul (mp_ptr pp,
ASSERT (cy + 1 <= 3);
ASSERT (cy2 <= 2);
- mpn_incr_u (pp + 2 * n, cy2);
+ MPN_INCR_U (pp + 2 * n, s + t, cy2);
if (LIKELY (cy <= 2))
- mpn_incr_u (pp + 3 * n, cy);
+ /* if s+t==n, cy is zero, but we should not acces pp[3*n] at all. */
+ MPN_INCR_U (pp + 3 * n, s + t - n, cy);
else
- mpn_decr_u (pp + 3 * n, 1);
+ MPN_DECR_U (pp + 3 * n, s + t - n, 1);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom2_sqr.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom2_sqr.c
index 2f2fdaee6f2..df83e9e926c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom2_sqr.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom2_sqr.c
@@ -6,7 +6,7 @@
SAFE TO REACH IT THROUGH DOCUMENTED INTERFACES. IN FACT, IT IS ALMOST
GUARANTEED THAT IT WILL CHANGE OR DISAPPEAR IN A FUTURE GNU MP RELEASE.
-Copyright 2006-2010, 2012 Free Software Foundation, Inc.
+Copyright 2006-2010, 2012, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -81,7 +81,7 @@ mpn_toom2_sqr (mp_ptr pp,
s = an >> 1;
n = an - s;
- ASSERT (0 < s && s <= n);
+ ASSERT (0 < s && s <= n && s >= n - 1);
asm1 = pp;
@@ -97,16 +97,16 @@ mpn_toom2_sqr (mp_ptr pp,
mpn_sub_n (asm1, a0, a1, n);
}
}
- else
+ else /* n - s == 1 */
{
- if (mpn_zero_p (a0 + s, n - s) && mpn_cmp (a0, a1, s) < 0)
+ if (a0[s] == 0 && mpn_cmp (a0, a1, s) < 0)
{
mpn_sub_n (asm1, a1, a0, s);
- MPN_ZERO (asm1 + s, n - s);
+ asm1[s] = 0;
}
else
{
- mpn_sub (asm1, a0, n, a1, s);
+ asm1[s] = a0[s] - mpn_sub_n (asm1, a0, a1, s);
}
}
@@ -138,9 +138,9 @@ mpn_toom2_sqr (mp_ptr pp,
ASSERT (cy + 1 <= 3);
ASSERT (cy2 <= 2);
- mpn_incr_u (pp + 2 * n, cy2);
+ MPN_INCR_U (pp + 2 * n, s + s, cy2);
if (LIKELY (cy <= 2))
- mpn_incr_u (pp + 3 * n, cy);
+ MPN_INCR_U (pp + 3 * n, s + s - n, cy);
else
- mpn_decr_u (pp + 3 * n, 1);
+ MPN_DECR_U (pp + 3 * n, s + s - n, 1);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom32_mul.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom32_mul.c
index 0b05669cc4e..0b05669cc4e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom32_mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom32_mul.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom33_mul.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom33_mul.c
index 655355c39a3..655355c39a3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom33_mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom33_mul.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom3_sqr.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom3_sqr.c
index 6117c67ca68..6117c67ca68 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom3_sqr.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom3_sqr.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom42_mul.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom42_mul.c
index 9b1e7d491bf..525b5094bde 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom42_mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom42_mul.c
@@ -11,7 +11,7 @@
SAFE TO REACH IT THROUGH DOCUMENTED INTERFACES. IN FACT, IT IS ALMOST
GUARANTEED THAT IT WILL CHANGE OR DISAPPEAR IN A FUTURE GNU MP RELEASE.
-Copyright 2006-2008, 2012 Free Software Foundation, Inc.
+Copyright 2006-2008, 2012, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -75,6 +75,7 @@ mpn_toom42_mul (mp_ptr pp,
mp_ptr a0_a2;
mp_ptr as1, asm1, as2;
mp_ptr bs1, bsm1, bs2;
+ mp_ptr tmp;
TMP_DECL;
#define a0 ap
@@ -94,13 +95,13 @@ mpn_toom42_mul (mp_ptr pp,
TMP_MARK;
- as1 = TMP_SALLOC_LIMBS (n + 1);
- asm1 = TMP_SALLOC_LIMBS (n + 1);
- as2 = TMP_SALLOC_LIMBS (n + 1);
-
- bs1 = TMP_SALLOC_LIMBS (n + 1);
- bsm1 = TMP_SALLOC_LIMBS (n);
- bs2 = TMP_SALLOC_LIMBS (n + 1);
+ tmp = TMP_ALLOC_LIMBS (6 * n + 5);
+ as1 = tmp; tmp += n + 1;
+ asm1 = tmp; tmp += n + 1;
+ as2 = tmp; tmp += n + 1;
+ bs1 = tmp; tmp += n + 1;
+ bsm1 = tmp; tmp += n;
+ bs2 = tmp; tmp += n + 1;
a0_a2 = pp;
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom42_mulmid.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom42_mulmid.c
index 0251a6d7ed3..0251a6d7ed3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom42_mulmid.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom42_mulmid.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom43_mul.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom43_mul.c
index 59d45576b8b..cb1dbcdc75c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom43_mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom43_mul.c
@@ -146,7 +146,7 @@ mpn_toom43_mul (mp_ptr pp,
#endif
/* Compute as1 and asm1. */
- flags = (enum toom6_flags) (flags ^ toom6_vm1_neg & mpn_toom_eval_dgr3_pm1 (as1, asm1, ap, n, s, a0a2));
+ flags = (enum toom6_flags) (flags ^ (toom6_vm1_neg & mpn_toom_eval_dgr3_pm1 (as1, asm1, ap, n, s, a0a2)));
/* Compute bs1 and bsm1. */
bsm1[n] = mpn_add (bsm1, b0, n, b2, t);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom44_mul.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom44_mul.c
index 5abf2d14a99..fbde633c300 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom44_mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom44_mul.c
@@ -162,7 +162,7 @@ mpn_toom44_mul (mp_ptr pp,
flags = (enum toom7_flags) (toom7_w1_neg & mpn_toom_eval_dgr3_pm2 (apx, amx, ap, n, s, tp));
/* Compute bpx = b0 + 2 b1 + 4 b2 + 8 b3 and bmx = b0 - 2 b1 + 4 b2 - 8 b3. */
- flags = (enum toom7_flags) (flags ^ toom7_w1_neg & mpn_toom_eval_dgr3_pm2 (bpx, bmx, bp, n, t, tp));
+ flags = (enum toom7_flags) (flags ^ (toom7_w1_neg & mpn_toom_eval_dgr3_pm2 (bpx, bmx, bp, n, t, tp)));
TOOM44_MUL_N_REC (v2, apx, bpx, n + 1, tp); /* v2, 2n+1 limbs */
TOOM44_MUL_N_REC (vm2, amx, bmx, n + 1, tp); /* vm2, 2n+1 limbs */
@@ -217,10 +217,10 @@ mpn_toom44_mul (mp_ptr pp,
TOOM44_MUL_N_REC (vh, apx, bpx, n + 1, tp); /* vh, 2n+1 limbs */
/* Compute apx = a0 + a1 + a2 + a3 and amx = a0 - a1 + a2 - a3. */
- flags = (enum toom7_flags) (flags | toom7_w3_neg & mpn_toom_eval_dgr3_pm1 (apx, amx, ap, n, s, tp));
+ flags = (enum toom7_flags) (flags | (toom7_w3_neg & mpn_toom_eval_dgr3_pm1 (apx, amx, ap, n, s, tp)));
- /* Compute bpx = b0 + b1 + b2 + b3 bnd bmx = b0 - b1 + b2 - b3. */
- flags = (enum toom7_flags) (flags ^ toom7_w3_neg & mpn_toom_eval_dgr3_pm1 (bpx, bmx, bp, n, t, tp));
+ /* Compute bpx = b0 + b1 + b2 + b3 and bmx = b0 - b1 + b2 - b3. */
+ flags = (enum toom7_flags) (flags ^ (toom7_w3_neg & mpn_toom_eval_dgr3_pm1 (bpx, bmx, bp, n, t, tp)));
TOOM44_MUL_N_REC (vm1, amx, bmx, n + 1, tp); /* vm1, 2n+1 limbs */
/* Clobbers amx, bmx. */
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom4_sqr.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom4_sqr.c
index b4154ba83fb..b4154ba83fb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom4_sqr.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom4_sqr.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom52_mul.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom52_mul.c
index e15b5833aa0..efe9a0f6899 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom52_mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom52_mul.c
@@ -197,7 +197,7 @@ mpn_toom52_mul (mp_ptr pp,
}
/* Compute as1 and asm1. */
- flags = (enum toom6_flags) (flags ^ toom6_vm1_neg & mpn_toom_eval_pm1 (as1, asm1, 4, ap, n, s, a0a2));
+ flags = (enum toom6_flags) (flags ^ (toom6_vm1_neg & mpn_toom_eval_pm1 (as1, asm1, 4, ap, n, s, a0a2)));
ASSERT (as1[n] <= 4);
ASSERT (bs1[n] <= 1);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom53_mul.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom53_mul.c
index 41274d48e01..e7c287089b1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom53_mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom53_mul.c
@@ -10,7 +10,7 @@
SAFE TO REACH IT THROUGH DOCUMENTED INTERFACES. IN FACT, IT IS ALMOST
GUARANTEED THAT IT WILL CHANGE OR DISAPPEAR IN A FUTURE GNU MP RELEASE.
-Copyright 2006-2008, 2012 Free Software Foundation, Inc.
+Copyright 2006-2008, 2012, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -70,6 +70,7 @@ mpn_toom53_mul (mp_ptr pp,
mp_ptr gp;
mp_ptr as1, asm1, as2, asm2, ash;
mp_ptr bs1, bsm1, bs2, bsm2, bsh;
+ mp_ptr tmp;
enum toom7_flags flags;
TMP_DECL;
@@ -92,17 +93,17 @@ mpn_toom53_mul (mp_ptr pp,
TMP_MARK;
- as1 = TMP_SALLOC_LIMBS (n + 1);
- asm1 = TMP_SALLOC_LIMBS (n + 1);
- as2 = TMP_SALLOC_LIMBS (n + 1);
- asm2 = TMP_SALLOC_LIMBS (n + 1);
- ash = TMP_SALLOC_LIMBS (n + 1);
-
- bs1 = TMP_SALLOC_LIMBS (n + 1);
- bsm1 = TMP_SALLOC_LIMBS (n + 1);
- bs2 = TMP_SALLOC_LIMBS (n + 1);
- bsm2 = TMP_SALLOC_LIMBS (n + 1);
- bsh = TMP_SALLOC_LIMBS (n + 1);
+ tmp = TMP_ALLOC_LIMBS (10 * (n + 1));
+ as1 = tmp; tmp += n + 1;
+ asm1 = tmp; tmp += n + 1;
+ as2 = tmp; tmp += n + 1;
+ asm2 = tmp; tmp += n + 1;
+ ash = tmp; tmp += n + 1;
+ bs1 = tmp; tmp += n + 1;
+ bsm1 = tmp; tmp += n + 1;
+ bs2 = tmp; tmp += n + 1;
+ bsm2 = tmp; tmp += n + 1;
+ bsh = tmp; tmp += n + 1;
gp = pp;
@@ -110,7 +111,7 @@ mpn_toom53_mul (mp_ptr pp,
flags = (enum toom7_flags) (toom7_w3_neg & mpn_toom_eval_pm1 (as1, asm1, 4, ap, n, s, gp));
/* Compute as2 and asm2. */
- flags = (enum toom7_flags) (flags | toom7_w1_neg & mpn_toom_eval_pm2 (as2, asm2, 4, ap, n, s, gp));
+ flags = (enum toom7_flags) (flags | (toom7_w1_neg & mpn_toom_eval_pm2 (as2, asm2, 4, ap, n, s, gp)));
/* Compute ash = 16 a0 + 8 a1 + 4 a2 + 2 a3 + a4
= 2*(2*(2*(2*a0 + a1) + a2) + a3) + a4 */
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom54_mul.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom54_mul.c
index 939bb53ab68..939bb53ab68 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom54_mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom54_mul.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom62_mul.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom62_mul.c
index 3759e3cb3ca..afc6a1002a5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom62_mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom62_mul.c
@@ -111,7 +111,7 @@ mpn_toom62_mul (mp_ptr pp,
aflags = (enum toom7_flags) (toom7_w3_neg & mpn_toom_eval_pm1 (as1, asm1, 5, ap, n, s, gp));
/* Compute as2 and asm2. */
- aflags = (enum toom7_flags) (aflags | toom7_w1_neg & mpn_toom_eval_pm2 (as2, asm2, 5, ap, n, s, gp));
+ aflags = (enum toom7_flags) (aflags | (toom7_w1_neg & mpn_toom_eval_pm2 (as2, asm2, 5, ap, n, s, gp)));
/* Compute ash = 32 a0 + 16 a1 + 8 a2 + 4 a3 + 2 a4 + a5
= 2*(2*(2*(2*(2*a0 + a1) + a2) + a3) + a4) + a5 */
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom63_mul.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom63_mul.c
index 57c5d3e3dd8..57c5d3e3dd8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom63_mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom63_mul.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom6_sqr.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom6_sqr.c
index e5ab7dcd1d2..e5ab7dcd1d2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom6_sqr.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom6_sqr.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom6h_mul.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom6h_mul.c
index 420895be8f9..420895be8f9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom6h_mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom6h_mul.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom8_sqr.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom8_sqr.c
index 0c936788159..0c936788159 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom8_sqr.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom8_sqr.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom8h_mul.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom8h_mul.c
index 8f593903f59..8f593903f59 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom8h_mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom8h_mul.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_couple_handling.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_couple_handling.c
index 9e62bcba1c9..9e62bcba1c9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_couple_handling.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_couple_handling.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_dgr3_pm1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_eval_dgr3_pm1.c
index 50411bd3ca6..50411bd3ca6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_dgr3_pm1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_eval_dgr3_pm1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_dgr3_pm2.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_eval_dgr3_pm2.c
index 3ba6d15f3dd..3ba6d15f3dd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_dgr3_pm2.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_eval_dgr3_pm2.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_pm1.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_eval_pm1.c
index 2334b0aff4a..2334b0aff4a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_pm1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_eval_pm1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_pm2.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_eval_pm2.c
index 67afcc638ef..67afcc638ef 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_pm2.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_eval_pm2.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_pm2exp.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_eval_pm2exp.c
index b178fcac244..b178fcac244 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_pm2exp.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_eval_pm2exp.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_pm2rexp.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_eval_pm2rexp.c
index 3cac46bd905..3cac46bd905 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_pm2rexp.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_eval_pm2rexp.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_12pts.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_interpolate_12pts.c
index 180b0329a36..180b0329a36 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_12pts.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_interpolate_12pts.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_16pts.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_interpolate_16pts.c
index 5afe6641f67..5afe6641f67 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_16pts.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_interpolate_16pts.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_5pts.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_interpolate_5pts.c
index 9fa5f0b7a60..9fa5f0b7a60 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_5pts.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_interpolate_5pts.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_6pts.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_interpolate_6pts.c
index bdb2e95b892..bdb2e95b892 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_6pts.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_interpolate_6pts.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_7pts.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_interpolate_7pts.c
index 2a67dba82f3..8a101496fa1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_7pts.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_interpolate_7pts.c
@@ -7,7 +7,7 @@
SAFE TO REACH IT THROUGH DOCUMENTED INTERFACES. IN FACT, IT IS ALMOST
GUARANTEED THAT IT WILL CHANGE OR DISAPPEAR IN A FUTURE GNU MP RELEASE.
-Copyright 2006, 2007, 2009 Free Software Foundation, Inc.
+Copyright 2006, 2007, 2009, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -251,7 +251,10 @@ mpn_toom_interpolate_7pts (mp_ptr rp, mp_size_t n, enum toom7_flags flags,
cy = mpn_add_n (rp + 5*n, w4 + n, w5, n);
MPN_INCR_U (w5 + n, n + 1, w4[2*n] + cy);
if (w6n > n + 1)
- ASSERT_NOCARRY (mpn_add (rp + 6*n, rp + 6*n, w6n, w5 + n, n + 1));
+ {
+ cy = mpn_add_n (rp + 6*n, rp + 6*n, w5 + n, n + 1);
+ MPN_INCR_U (rp + 7*n + 1, w6n - n - 1, cy);
+ }
else
{
ASSERT_NOCARRY (mpn_add_n (rp + 6*n, rp + 6*n, w5 + n, w6n));
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_8pts.c b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_interpolate_8pts.c
index 9e8808334eb..bba4a3b8124 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_8pts.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/toom_interpolate_8pts.c
@@ -208,5 +208,5 @@ mpn_toom_interpolate_8pts (mp_ptr pp, mp_size_t n,
if (LIKELY(spt != n))
MPN_INCR_U (pp + 8*n, spt - n, cy + r3[3*n]);
else
- ASSERT (r3[3*n] | cy == 0);
+ ASSERT (r3[3*n] + cy == 0);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/trialdiv.c b/Build/source/libs/gmp/gmp-src/mpn/generic/trialdiv.c
index cad159c3a09..09cecfd4108 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/trialdiv.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/trialdiv.c
@@ -90,7 +90,7 @@ static const struct gmp_primes_ptab gmp_primes_ptab[] =
#define PTAB_LINES (sizeof (gmp_primes_ptab) / sizeof (gmp_primes_ptab[0]))
/* FIXME: We could optimize out one of the outer loop conditions if we
- had a final ptab entry with a huge nd field. */
+ had a final ptab entry with a huge np field. */
mp_limb_t
mpn_trialdiv (mp_srcptr tp, mp_size_t tn, mp_size_t nprimes, int *where)
{
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/udiv_w_sdiv.c b/Build/source/libs/gmp/gmp-src/mpn/generic/udiv_w_sdiv.c
index 7136429f0f8..7136429f0f8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/udiv_w_sdiv.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/udiv_w_sdiv.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/zero.c b/Build/source/libs/gmp/gmp-src/mpn/generic/zero.c
index e6e7fd3101e..e6e7fd3101e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/zero.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/zero.c
diff --git a/Build/source/libs/gmp/gmp-src/mpn/generic/zero_p.c b/Build/source/libs/gmp/gmp-src/mpn/generic/zero_p.c
new file mode 100644
index 00000000000..44c1ff20305
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/generic/zero_p.c
@@ -0,0 +1,34 @@
+/* mpn_zero_p (x,xsize) -- Return 1 if X is zero, 0 if it is non-zero.
+
+Copyright 2015 Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define __GMP_FORCE_mpn_zero_p 1
+
+#include "gmp.h"
+#include "gmp-impl.h"
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/README b/Build/source/libs/gmp/gmp-src/mpn/ia64/README
index 45c2d6337fe..45c2d6337fe 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/add_n_sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/add_n_sub_n.asm
index 34a506568f5..c15afaa59c7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/add_n_sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/add_n_sub_n.asm
@@ -53,8 +53,6 @@ define(`up1',`r14')
define(`vp0',`vp')
define(`vp1',`r15')
-define(`cmpltu', `cmp.ltu')
-define(`cmpeqor', `cmp.eq.or')
ASM_START()
PROLOGUE(mpn_add_n_sub_n)
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/addmul_1.asm
index ffa3297763c..ffa3297763c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/addmul_2.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/addmul_2.asm
index f5bc46b75df..86e8de4051a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/addmul_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/addmul_2.asm
@@ -108,36 +108,37 @@ PROLOGUE(mpn_addmul_2s)
.body
ifdef(`HAVE_ABI_32',`
-.mmi; addp4 rp = 0, rp C M I
+ {.mmi; addp4 rp = 0, rp C M I
addp4 up = 0, up C M I
addp4 vp = 0, vp C M I
-.mmi; nop 1
+}{.mmi; nop 1
nop 1
zxt4 n = n C I
- ;;')
+ ;;
+}')
-.mmi; ldf8 ux = [up], 8 C M
+ {.mmi; ldf8 ux = [up], 8 C M
ldf8 v0 = [vp], 8 C M
mov r2 = ar.lc C I0
-.mmi; ldf8 rx = [rp], 8 C M
+}{.mmi; ldf8 rx = [rp], 8 C M
and r14 = 3, n C M I
add n = -2, n C M I
;;
-.mmi; ldf8 uy = [up], 8 C M
+}{.mmi; ldf8 uy = [up], 8 C M
ldf8 v1 = [vp] C M
shr.u n = n, 2 C I0
-.mmi; ldf8 ry = [rp], -8 C M
+}{.mmi; ldf8 ry = [rp], -8 C M
cmp.eq p14, p0 = 1, r14 C M I
cmp.eq p11, p0 = 2, r14 C M I
;;
-.mmi; add srp = 16, rp C M I
+}{.mmi; add srp = 16, rp C M I
cmp.eq p15, p0 = 3, r14 C M I
mov ar.lc = n C I0
-.bbb; (p14) br.dptk L(x01) C B
+}{.bbb; (p14) br.dptk L(x01) C B
(p11) br.dptk L(x10) C B
(p15) br.dptk L(x11) C B
;;
-
+}
L(x00): cmp.ne p6, p0 = r0, r0 C suppress initial xma pair
mov fp2a_3 = f0
br L(b00)
@@ -159,52 +160,53 @@ PROLOGUE(mpn_addmul_2)
.body
ifdef(`HAVE_ABI_32',`
-.mmi; addp4 rp = 0, rp C M I
+ {.mmi; addp4 rp = 0, rp C M I
addp4 up = 0, up C M I
addp4 vp = 0, vp C M I
-.mmi; nop 1
+}{.mmi; nop 1
nop 1
zxt4 n = n C I
- ;;')
+ ;;
+}')
-.mmi; ldf8 ux = [up], 8 C M
+ {.mmi; ldf8 ux = [up], 8 C M
ldf8 v0 = [vp], 8 C M
mov r2 = ar.lc C I0
-.mmi; ldf8 rx = [rp], 8 C M
+}{.mmi; ldf8 rx = [rp], 8 C M
and r14 = 3, n C M I
add n = -2, n C M I
;;
-.mmi; ldf8 uy = [up], 8 C M
+}{.mmi; ldf8 uy = [up], 8 C M
ldf8 v1 = [vp] C M
shr.u n = n, 2 C I0
-.mmi; ldf8 ry = [rp], -8 C M
+}{.mmi; ldf8 ry = [rp], -8 C M
cmp.eq p14, p0 = 1, r14 C M I
cmp.eq p11, p0 = 2, r14 C M I
;;
-.mmi; add srp = 16, rp C M I
+}{.mmi; add srp = 16, rp C M I
cmp.eq p15, p6 = 3, r14 C M I
mov ar.lc = n C I0
-.bbb; (p14) br.dptk L(b01) C B
+}{.bbb; (p14) br.dptk L(b01) C B
(p11) br.dptk L(b10) C B
(p15) br.dptk L(b11) C B
;;
-
+}
ALIGN(32)
L(b00):
-.mmi; ldf8 r_1 = [srp], 8
+ {.mmi; ldf8 r_1 = [srp], 8
ldf8 u_1 = [up], 8
mov acc1_2 = 0
-.mmi; mov pr1_2 = 0
+}{.mmi; mov pr1_2 = 0
mov pr0_3 = 0
cmp.ne p8, p9 = r0, r0
;;
-.mfi; ldf8 r_2 = [srp], 8
+}{.mfi; ldf8 r_2 = [srp], 8
xma.l fp0b_3 = ux, v0, rx
cmp.ne p12, p13 = r0, r0
-.mfb; ldf8 u_2 = [up], 8
+}{.mfb; ldf8 u_2 = [up], 8
xma.hu fp1b_3 = ux, v0, rx
br.cloop.dptk L(gt4)
-
+}
xma.l fp0b_0 = uy, v0, ry
xma.hu fp1a_0 = uy, v0, ry
;;
@@ -253,30 +255,30 @@ L(gt4): xma.l fp0b_0 = uy, v0, ry
ALIGN(32)
L(b01):
-.mmi; ldf8 r_0 = [srp], 8 C M
+ {.mmi; ldf8 r_0 = [srp], 8 C M
ldf8 u_0 = [up], 8 C M
mov acc1_1 = 0 C M I
-.mmi; mov pr1_1 = 0 C M I
+}{.mmi; mov pr1_1 = 0 C M I
mov pr0_2 = 0 C M I
cmp.ne p6, p7 = r0, r0 C M I
;;
-.mfi; ldf8 r_1 = [srp], 8 C M
+}{.mfi; ldf8 r_1 = [srp], 8 C M
xma.l fp0b_2 = ux, v0, rx C F
cmp.ne p10, p11 = r0, r0 C M I
-.mfi; ldf8 u_1 = [up], 8 C M
+}{.mfi; ldf8 u_1 = [up], 8 C M
xma.hu fp1b_2 = ux, v0, rx C F
nop 1
;;
- xma.l fp0b_3 = uy, v0, ry C F
+} xma.l fp0b_3 = uy, v0, ry C F
xma.hu fp1a_3 = uy, v0, ry C F
;;
-.mmf; getfsig acc0 = fp0b_2 C M
+ {.mmf; getfsig acc0 = fp0b_2 C M
ldf8 r_2 = [srp], 8 C M
(p14) xma.hu fp2a_2 = ux, v1,fp1b_2 C F suppressed for addmul_2s
-.mfb; ldf8 u_2 = [up], 8 C M
+}{.mfb; ldf8 u_2 = [up], 8 C M
(p14) xma.l fp1b_2 = ux, v1,fp1b_2 C F suppressed for addmul_2s
br.cloop.dptk L(gt5)
-
+}
xma.l fp0b_0 = u_0, v0, r_0 C F
xma.hu fp1a_0 = u_0, v0, r_0 C F
;;
@@ -335,7 +337,7 @@ L(b10): br.cloop.dptk L(gt2)
cmp.ltu p8, p9 = s0, pr1_1
sub r31 = -1, acc1_1
;;
- .pred.rel "mutex", p8, p9
+ .pred.rel "mutex", p8, p9
(p8) add acc0 = pr1_2, acc1_1, 1
(p9) add acc0 = pr1_2, acc1_1
(p8) cmp.leu p10, p0 = r31, pr1_2
@@ -347,18 +349,18 @@ L(b10): br.cloop.dptk L(gt2)
L(gt2):
-.mmi; ldf8 r_3 = [srp], 8
+ {.mmi; ldf8 r_3 = [srp], 8
ldf8 u_3 = [up], 8
mov acc1_0 = 0
;;
-.mfi; ldf8 r_0 = [srp], 8
+}{.mfi; ldf8 r_0 = [srp], 8
xma.l fp0b_1 = ux, v0, rx
mov pr1_0 = 0
-.mfi; ldf8 u_0 = [up], 8
+}{.mfi; ldf8 u_0 = [up], 8
xma.hu fp1b_1 = ux, v0, rx
mov pr0_1 = 0
;;
- xma.l fp0b_2 = uy, v0, ry
+} xma.l fp0b_2 = uy, v0, ry
xma.hu fp1a_2 = uy, v0, ry
;;
getfsig acc0 = fp0b_1
@@ -378,12 +380,13 @@ L(gt2):
ldf8 u_2 = [up], 8
getfsig pr1_1 = fp1b_1
;;
-.mfi; getfsig acc1_1 = fp2a_1
+ {.mfi; getfsig acc1_1 = fp2a_1
xma.l fp0b_0 = u_0, v0, r_0
cmp.ne p8, p9 = r0, r0
-.mfb; cmp.ne p12, p13 = r0, r0
+}{.mfb; cmp.ne p12, p13 = r0, r0
xma.hu fp1a_0 = u_0, v0, r_0
br.cloop.sptk.clr L(top)
+}
br.many L(end)
@@ -455,7 +458,7 @@ L(gt3): ldf8 r_3 = [srp], 8
C *** MAIN LOOP START ***
ALIGN(32)
L(top): C 00
- .pred.rel "mutex", p12, p13
+ .pred.rel "mutex", p12, p13
getfsig pr0_3 = fp0b_3
ldf8 r_3 = [srp], 8
xma.l fp1b_3 = u_3, v1, fp1a_3
@@ -463,8 +466,8 @@ L(top): C 00
(p13) add s0 = pr1_0, acc0
xma.hu fp2a_3 = u_3, v1, fp1a_3
;; C 01
- .pred.rel "mutex", p8, p9
- .pred.rel "mutex", p12, p13
+ .pred.rel "mutex", p8, p9
+ .pred.rel "mutex", p12, p13
ldf8 u_3 = [up], 8
getfsig pr1_2 = fp1b_2
(p8) cmp.leu p6, p7 = acc0, pr0_1
@@ -472,7 +475,7 @@ L(top): C 00
(p12) cmp.leu p10, p11 = s0, pr1_0
(p13) cmp.ltu p10, p11 = s0, pr1_0
;; C 02
- .pred.rel "mutex", p6, p7
+ .pred.rel "mutex", p6, p7
getfsig acc1_2 = fp2a_2
st8 [rp] = s0, 8
xma.l fp0b_1 = u_1, v0, r_1
@@ -481,7 +484,7 @@ L(top): C 00
xma.hu fp1a_1 = u_1, v0, r_1
;; C 03
L(01):
- .pred.rel "mutex", p10, p11
+ .pred.rel "mutex", p10, p11
getfsig pr0_0 = fp0b_0
ldf8 r_0 = [srp], 8
xma.l fp1b_0 = u_0, v1, fp1a_0
@@ -489,8 +492,8 @@ L(01):
(p11) add s0 = pr1_1, acc0
xma.hu fp2a_0 = u_0, v1, fp1a_0
;; C 04
- .pred.rel "mutex", p6, p7
- .pred.rel "mutex", p10, p11
+ .pred.rel "mutex", p6, p7
+ .pred.rel "mutex", p10, p11
ldf8 u_0 = [up], 8
getfsig pr1_3 = fp1b_3
(p6) cmp.leu p8, p9 = acc0, pr0_2
@@ -498,7 +501,7 @@ L(01):
(p10) cmp.leu p12, p13 = s0, pr1_1
(p11) cmp.ltu p12, p13 = s0, pr1_1
;; C 05
- .pred.rel "mutex", p8, p9
+ .pred.rel "mutex", p8, p9
getfsig acc1_3 = fp2a_3
st8 [rp] = s0, 8
xma.l fp0b_2 = u_2, v0, r_2
@@ -507,7 +510,7 @@ L(01):
xma.hu fp1a_2 = u_2, v0, r_2
;; C 06
L(00):
- .pred.rel "mutex", p12, p13
+ .pred.rel "mutex", p12, p13
getfsig pr0_1 = fp0b_1
ldf8 r_1 = [srp], 8
xma.l fp1b_1 = u_1, v1, fp1a_1
@@ -515,8 +518,8 @@ L(00):
(p13) add s0 = pr1_2, acc0
xma.hu fp2a_1 = u_1, v1, fp1a_1
;; C 07
- .pred.rel "mutex", p8, p9
- .pred.rel "mutex", p12, p13
+ .pred.rel "mutex", p8, p9
+ .pred.rel "mutex", p12, p13
ldf8 u_1 = [up], 8
getfsig pr1_0 = fp1b_0
(p8) cmp.leu p6, p7 = acc0, pr0_3
@@ -524,7 +527,7 @@ L(00):
(p12) cmp.leu p10, p11 = s0, pr1_2
(p13) cmp.ltu p10, p11 = s0, pr1_2
;; C 08
- .pred.rel "mutex", p6, p7
+ .pred.rel "mutex", p6, p7
getfsig acc1_0 = fp2a_0
st8 [rp] = s0, 8
xma.l fp0b_3 = u_3, v0, r_3
@@ -533,7 +536,7 @@ L(00):
xma.hu fp1a_3 = u_3, v0, r_3
;; C 09
L(11):
- .pred.rel "mutex", p10, p11
+ .pred.rel "mutex", p10, p11
getfsig pr0_2 = fp0b_2
ldf8 r_2 = [srp], 8
xma.l fp1b_2 = u_2, v1, fp1a_2
@@ -541,8 +544,8 @@ L(11):
(p11) add s0 = pr1_3, acc0
xma.hu fp2a_2 = u_2, v1, fp1a_2
;; C 10
- .pred.rel "mutex", p6, p7
- .pred.rel "mutex", p10, p11
+ .pred.rel "mutex", p6, p7
+ .pred.rel "mutex", p10, p11
ldf8 u_2 = [up], 8
getfsig pr1_1 = fp1b_1
(p6) cmp.leu p8, p9 = acc0, pr0_0
@@ -550,159 +553,163 @@ L(11):
(p10) cmp.leu p12, p13 = s0, pr1_3
(p11) cmp.ltu p12, p13 = s0, pr1_3
;; C 11
- .pred.rel "mutex", p8, p9
+ .pred.rel "mutex", p8, p9
getfsig acc1_1 = fp2a_1
st8 [rp] = s0, 8
xma.l fp0b_0 = u_0, v0, r_0
(p8) add acc0 = pr0_1, acc1_3, 1
(p9) add acc0 = pr0_1, acc1_3
xma.hu fp1a_0 = u_0, v0, r_0
-L(10): br.cloop.sptk.clr L(top) C 12
+L(10): br.cloop.sptk.clr L(top) C 12
;;
C *** MAIN LOOP END ***
L(end):
- .pred.rel "mutex", p12, p13
-.mfi; getfsig pr0_3 = fp0b_3
+ .pred.rel "mutex", p12, p13
+ {.mfi; getfsig pr0_3 = fp0b_3
xma.l fp1b_3 = u_3, v1, fp1a_3
(p12) add s0 = pr1_0, acc0, 1
-.mfi; (p13) add s0 = pr1_0, acc0
+}{.mfi; (p13) add s0 = pr1_0, acc0
xma.hu fp2a_3 = u_3, v1, fp1a_3
nop 1
;;
- .pred.rel "mutex", p8, p9
- .pred.rel "mutex", p12, p13
-.mmi; getfsig pr1_2 = fp1b_2
+} .pred.rel "mutex", p8, p9
+ .pred.rel "mutex", p12, p13
+ {.mmi; getfsig pr1_2 = fp1b_2
st8 [rp] = s0, 8
(p8) cmp.leu p6, p7 = acc0, pr0_1
-.mmi; (p9) cmp.ltu p6, p7 = acc0, pr0_1
+}{.mmi; (p9) cmp.ltu p6, p7 = acc0, pr0_1
(p12) cmp.leu p10, p11 = s0, pr1_0
(p13) cmp.ltu p10, p11 = s0, pr1_0
;;
- .pred.rel "mutex", p6, p7
-.mfi; getfsig acc1_2 = fp2a_2
+} .pred.rel "mutex", p6, p7
+ {.mfi; getfsig acc1_2 = fp2a_2
xma.l fp0b_1 = u_1, v0, r_1
nop 1
-.mmf; (p6) add acc0 = pr0_2, acc1_0, 1
+}{.mmf; (p6) add acc0 = pr0_2, acc1_0, 1
(p7) add acc0 = pr0_2, acc1_0
xma.hu fp1a_1 = u_1, v0, r_1
;;
+}
L(cj5):
- .pred.rel "mutex", p10, p11
-.mfi; getfsig pr0_0 = fp0b_0
+ .pred.rel "mutex", p10, p11
+ {.mfi; getfsig pr0_0 = fp0b_0
xma.l fp1b_0 = u_0, v1, fp1a_0
(p10) add s0 = pr1_1, acc0, 1
-.mfi; (p11) add s0 = pr1_1, acc0
+}{.mfi; (p11) add s0 = pr1_1, acc0
xma.hu fp2a_0 = u_0, v1, fp1a_0
nop 1
;;
- .pred.rel "mutex", p6, p7
- .pred.rel "mutex", p10, p11
-.mmi; getfsig pr1_3 = fp1b_3
- st8 [rp] = s0, 8
+} .pred.rel "mutex", p6, p7
+ .pred.rel "mutex", p10, p11
+ {.mmi; getfsig pr1_3 = fp1b_3
+ st8 [rp] = s0, 8
(p6) cmp.leu p8, p9 = acc0, pr0_2
-.mmi; (p7) cmp.ltu p8, p9 = acc0, pr0_2
+}{.mmi; (p7) cmp.ltu p8, p9 = acc0, pr0_2
(p10) cmp.leu p12, p13 = s0, pr1_1
(p11) cmp.ltu p12, p13 = s0, pr1_1
;;
- .pred.rel "mutex", p8, p9
-.mfi; getfsig acc1_3 = fp2a_3
+} .pred.rel "mutex", p8, p9
+ {.mfi; getfsig acc1_3 = fp2a_3
xma.l fp0b_2 = u_2, v0, r_2
nop 1
-.mmf; (p8) add acc0 = pr0_3, acc1_1, 1
+}{.mmf; (p8) add acc0 = pr0_3, acc1_1, 1
(p9) add acc0 = pr0_3, acc1_1
xma.hu fp1a_2 = u_2, v0, r_2
;;
+}
L(cj4):
- .pred.rel "mutex", p12, p13
-.mfi; getfsig pr0_1 = fp0b_1
+ .pred.rel "mutex", p12, p13
+ {.mfi; getfsig pr0_1 = fp0b_1
xma.l fp1b_1 = u_1, v1, fp1a_1
(p12) add s0 = pr1_2, acc0, 1
-.mfi; (p13) add s0 = pr1_2, acc0
+}{.mfi; (p13) add s0 = pr1_2, acc0
xma.hu fp2a_1 = u_1, v1, fp1a_1
nop 1
;;
- .pred.rel "mutex", p8, p9
- .pred.rel "mutex", p12, p13
-.mmi; getfsig pr1_0 = fp1b_0
+} .pred.rel "mutex", p8, p9
+ .pred.rel "mutex", p12, p13
+ {.mmi; getfsig pr1_0 = fp1b_0
st8 [rp] = s0, 8
(p8) cmp.leu p6, p7 = acc0, pr0_3
-.mmi; (p9) cmp.ltu p6, p7 = acc0, pr0_3
+}{.mmi; (p9) cmp.ltu p6, p7 = acc0, pr0_3
(p12) cmp.leu p10, p11 = s0, pr1_2
(p13) cmp.ltu p10, p11 = s0, pr1_2
;;
- .pred.rel "mutex", p6, p7
-.mmi; getfsig acc1_0 = fp2a_0
+} .pred.rel "mutex", p6, p7
+ {.mmi; getfsig acc1_0 = fp2a_0
(p6) add acc0 = pr0_0, acc1_2, 1
(p7) add acc0 = pr0_0, acc1_2
;;
+}
L(cj3):
- .pred.rel "mutex", p10, p11
-.mfi; getfsig pr0_2 = fp0b_2
+ .pred.rel "mutex", p10, p11
+ {.mfi; getfsig pr0_2 = fp0b_2
xma.l fp1b_2 = u_2, v1, fp1a_2
(p10) add s0 = pr1_3, acc0, 1
-.mfi; (p11) add s0 = pr1_3, acc0
+}{.mfi; (p11) add s0 = pr1_3, acc0
xma.hu fp2a_2 = u_2, v1, fp1a_2
nop 1
;;
- .pred.rel "mutex", p6, p7
- .pred.rel "mutex", p10, p11
-.mmi; getfsig pr1_1 = fp1b_1
+} .pred.rel "mutex", p6, p7
+ .pred.rel "mutex", p10, p11
+ {.mmi; getfsig pr1_1 = fp1b_1
st8 [rp] = s0, 8
(p6) cmp.leu p8, p9 = acc0, pr0_0
-.mmi; (p7) cmp.ltu p8, p9 = acc0, pr0_0
+}{.mmi; (p7) cmp.ltu p8, p9 = acc0, pr0_0
(p10) cmp.leu p12, p13 = s0, pr1_3
(p11) cmp.ltu p12, p13 = s0, pr1_3
;;
- .pred.rel "mutex", p8, p9
-.mmi; getfsig acc1_1 = fp2a_1
+} .pred.rel "mutex", p8, p9
+ {.mmi; getfsig acc1_1 = fp2a_1
(p8) add acc0 = pr0_1, acc1_3, 1
(p9) add acc0 = pr0_1, acc1_3
;;
- .pred.rel "mutex", p12, p13
-.mmi; (p12) add s0 = pr1_0, acc0, 1
+} .pred.rel "mutex", p12, p13
+ {.mmi; (p12) add s0 = pr1_0, acc0, 1
(p13) add s0 = pr1_0, acc0
nop 1
;;
- .pred.rel "mutex", p8, p9
- .pred.rel "mutex", p12, p13
-.mmi; getfsig pr1_2 = fp1b_2
+} .pred.rel "mutex", p8, p9
+ .pred.rel "mutex", p12, p13
+ {.mmi; getfsig pr1_2 = fp1b_2
st8 [rp] = s0, 8
(p8) cmp.leu p6, p7 = acc0, pr0_1
-.mmi; (p9) cmp.ltu p6, p7 = acc0, pr0_1
+}{.mmi; (p9) cmp.ltu p6, p7 = acc0, pr0_1
(p12) cmp.leu p10, p11 = s0, pr1_0
(p13) cmp.ltu p10, p11 = s0, pr1_0
;;
- .pred.rel "mutex", p6, p7
-.mmi; getfsig r8 = fp2a_2
+} .pred.rel "mutex", p6, p7
+ {.mmi; getfsig r8 = fp2a_2
(p6) add acc0 = pr0_2, acc1_0, 1
(p7) add acc0 = pr0_2, acc1_0
;;
- .pred.rel "mutex", p10, p11
-.mmi; (p10) add s0 = pr1_1, acc0, 1
+} .pred.rel "mutex", p10, p11
+ {.mmi; (p10) add s0 = pr1_1, acc0, 1
(p11) add s0 = pr1_1, acc0
(p6) cmp.leu p8, p9 = acc0, pr0_2
;;
- .pred.rel "mutex", p10, p11
-.mmi; (p7) cmp.ltu p8, p9 = acc0, pr0_2
+} .pred.rel "mutex", p10, p11
+ {.mmi; (p7) cmp.ltu p8, p9 = acc0, pr0_2
(p10) cmp.leu p12, p13 = s0, pr1_1
(p11) cmp.ltu p12, p13 = s0, pr1_1
;;
- .pred.rel "mutex", p8, p9
-.mmi; st8 [rp] = s0, 8
+} .pred.rel "mutex", p8, p9
+ {.mmi; st8 [rp] = s0, 8
(p8) add acc0 = pr1_2, acc1_1, 1
(p9) add acc0 = pr1_2, acc1_1
;;
- .pred.rel "mutex", p8, p9
-.mmi; (p8) cmp.leu p10, p11 = acc0, pr1_2
+} .pred.rel "mutex", p8, p9
+ {.mmi; (p8) cmp.leu p10, p11 = acc0, pr1_2
(p9) cmp.ltu p10, p11 = acc0, pr1_2
(p12) add acc0 = 1, acc0
;;
-.mmi; st8 [rp] = acc0, 8
+}{.mmi; st8 [rp] = acc0, 8
(p12) cmpeqor p10, p0 = 0, acc0
nop 1
;;
-.mib; (p10) add r8 = 1, r8
+}{.mib; (p10) add r8 = 1, r8
mov ar.lc = r2
br.ret.sptk.many b0
+}
EPILOGUE()
ASM_END()
diff --git a/Build/source/libs/gmp/gmp-src/mpn/ia64/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/aors_n.asm
new file mode 100644
index 00000000000..7705ce61cc9
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/aors_n.asm
@@ -0,0 +1,852 @@
+dnl IA-64 mpn_add_n/mpn_sub_n -- mpn addition and subtraction.
+
+dnl Contributed to the GNU project by Torbjorn Granlund.
+
+dnl Copyright 2003-2005, 2010, 2011 Free Software Foundation, Inc.
+
+dnl This file is part of the GNU MP Library.
+dnl
+dnl The GNU MP Library is free software; you can redistribute it and/or modify
+dnl it under the terms of either:
+dnl
+dnl * the GNU Lesser General Public License as published by the Free
+dnl Software Foundation; either version 3 of the License, or (at your
+dnl option) any later version.
+dnl
+dnl or
+dnl
+dnl * the GNU General Public License as published by the Free Software
+dnl Foundation; either version 2 of the License, or (at your option) any
+dnl later version.
+dnl
+dnl or both in parallel, as here.
+dnl
+dnl The GNU MP Library is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+dnl for more details.
+dnl
+dnl You should have received copies of the GNU General Public License and the
+dnl GNU Lesser General Public License along with the GNU MP Library. If not,
+dnl see https://www.gnu.org/licenses/.
+
+include(`../config.m4')
+
+C cycles/limb
+C Itanium: 2.67
+C Itanium 2: 1.25
+
+C TODO
+C * Consider using special code for small n, using something like
+C "switch (8 * (n >= 8) + (n mod 8))" to enter it and feed-in code.
+C * The non-nc code was trimmed cycle for cycle to its current state. It is
+C probably hard to save more that an odd cycle there. The nc code is much
+C cruder (since tune/speed doesn't have any applicable direct measurements).
+C * Without the nc entry points, this becomes around 1800 bytes of object
+C code; the nc code adds over 1000 bytes. We should perhaps sacrifice a
+C few cycles for the non-nc code and let it fall into the nc code.
+
+C INPUT PARAMETERS
+define(`rp', `r32')
+define(`up', `r33')
+define(`vp', `r34')
+define(`n', `r35')
+define(`cy', `r36')
+
+ifdef(`OPERATION_add_n',`
+ define(ADDSUB, add)
+ define(CND, ltu)
+ define(INCR, 1)
+ define(LIM, -1)
+ define(LIM2, 0)
+ define(func, mpn_add_n)
+ define(func_nc, mpn_add_nc)
+')
+ifdef(`OPERATION_sub_n',`
+ define(ADDSUB, sub)
+ define(CND, gtu)
+ define(INCR, -1)
+ define(LIM, 0)
+ define(LIM2, -1)
+ define(func, mpn_sub_n)
+ define(func_nc, mpn_sub_nc)
+')
+
+define(PFDIST, 500)
+
+C Some useful aliases for registers we use
+define(`u0',`r14') define(`u1',`r15') define(`u2',`r16') define(`u3',`r17')
+define(`v0',`r24') define(`v1',`r25') define(`v2',`r26') define(`v3',`r27')
+define(`w0',`r28') define(`w1',`r29') define(`w2',`r30') define(`w3',`r31')
+define(`rpx',`r3')
+define(`upadv',`r20') define(`vpadv',`r21')
+
+MULFUNC_PROLOGUE(mpn_add_n mpn_add_nc mpn_sub_n mpn_sub_nc)
+
+ASM_START()
+PROLOGUE(func_nc)
+ .prologue
+ .save ar.lc, r2
+ .body
+ifdef(`HAVE_ABI_32',`
+ addp4 rp = 0, rp C M I
+ addp4 up = 0, up C M I
+ nop.i 0
+ addp4 vp = 0, vp C M I
+ nop.m 0
+ zxt4 n = n C I
+ ;;
+')
+
+ {.mmi; ld8 r11 = [vp], 8 C M01
+ ld8 r10 = [up], 8 C M01
+ mov r2 = ar.lc C I0
+}{.mmi; and r14 = 7, n C M I
+ cmp.lt p15, p14 = 8, n C M I
+ add n = -6, n C M I
+ ;;
+}{.mmi; add upadv = PFDIST, up C Merging these lines into the feed-in
+ add vpadv = PFDIST, vp C code could save a cycle per call at
+ mov r23 = cy C the expense of code size.
+ ;;
+}{.mmi; cmp.eq p6, p0 = 1, r14 C M I
+ cmp.eq p7, p0 = 2, r14 C M I
+ cmp.eq p8, p0 = 3, r14 C M I
+}{.bbb; (p6) br.dptk .Lc001 C B
+ (p7) br.dptk .Lc010 C B
+ (p8) br.dptk .Lc011 C B
+ ;;
+}{.mmi; cmp.eq p9, p0 = 4, r14 C M I
+ cmp.eq p10, p0 = 5, r14 C M I
+ cmp.eq p11, p0 = 6, r14 C M I
+}{.bbb; (p9) br.dptk .Lc100 C B
+ (p10) br.dptk .Lc101 C B
+ (p11) br.dptk .Lc110 C B
+ ;;
+}{.mmi; ld8 r19 = [vp], 8 C M01
+ ld8 r18 = [up], 8 C M01
+ cmp.ne p13, p0 = 0, cy C copy cy to p13 M I
+}{.mmb; cmp.eq p12, p0 = 7, r14 C M I
+ nop 0
+ (p12) br.dptk .Lc111 C B
+ ;;
+}
+
+.Lc000:
+ {.mmi; ld8 v3 = [vp], 8 C M01
+ ld8 u3 = [up], 8 C M01
+ shr.u n = n, 3 C I0
+ ;;
+}{.mmi; add vpadv = PFDIST, vp C M I
+ ld8 v0 = [vp], 8 C M01
+ mov ar.lc = n C I0
+}{.mmi; ld8 u0 = [up], 8 C M01
+ ADDSUB w1 = r10, r11 C M I
+ nop 0
+ ;;
+}{.mmi; add upadv = PFDIST, up C M I
+ ld8 v1 = [vp], 8 C M01
+ cmp.CND p7, p0 = w1, r10 C M I
+}{.mmi; ld8 u1 = [up], 8 C M01
+ ADDSUB w2 = r18, r19 C M I
+ add rpx = 8, rp C M I
+ ;;
+}{.mmi; ld8 v2 = [vp], 8 C M01
+ cmp.CND p8, p0 = w2, r18 C M I
+ (p13) cmpeqor p7, p0 = LIM, w1 C M I
+}{.mmi; ld8 u2 = [up], 8 C M01
+ (p13) add w1 = INCR, w1 C M I
+ ADDSUB w3 = u3, v3 C M I
+ ;;
+}{.mmi; ld8 v3 = [vp], 8 C M01
+ cmp.CND p9, p0 = w3, u3 C M I
+ (p7) cmpeqor p8, p0 = LIM, w2 C M I
+}{.mmb; ld8 u3 = [up], 8 C M01
+ (p7) add w2 = INCR, w2 C M I
+ br L(m0)
+}
+
+.Lc001:
+ {.mmi; (p15) ld8 v1 = [vp], 8 C M01
+ (p15) ld8 u1 = [up], 8 C M01
+ ADDSUB w0 = r10, r11 C M I
+}{.mmb; nop 0
+ nop 0
+ (p15) br L(0)
+ ;;
+}{.mmi; cmp.ne p9, p0 = 0, r23 C M I
+ mov r8 = 0
+ cmp.CND p6, p0 = w0, r10 C M I
+ ;;
+}{.mmb; (p9) cmpeqor p6, p0 = LIM, w0 C M I
+ (p9) add w0 = INCR, w0 C M I
+ br L(cj1) C B
+}
+L(0):
+ {.mmi; ld8 v2 = [vp], 8 C M01
+ ld8 u2 = [up], 8 C M01
+ shr.u n = n, 3 C I0
+ ;;
+}{.mmi; ld8 v3 = [vp], 8 C M01
+ ld8 u3 = [up], 8 C M01
+ mov ar.lc = n C I0
+}{.mmi; nop 0
+ cmp.ne p9, p0 = 0, r23 C M I
+ nop 0
+ ;;
+}{.mmi; ld8 v0 = [vp], 8 C M01
+ cmp.CND p6, p0 = w0, r10 C M I
+ add rpx = 16, rp C M I
+}{.mmb; ld8 u0 = [up], 8 C M01
+ ADDSUB w1 = u1, v1 C M I
+ br L(c1) C B
+}
+
+.Lc010:
+ {.mmi; ld8 v0 = [vp], 8 C M01
+ ld8 u0 = [up], 8 C M01
+ mov r8 = 0 C M I
+}{.mmb; ADDSUB w3 = r10, r11 C M I
+ cmp.ne p8, p0 = 0, r23 C M I
+ (p15) br L(1) C B
+ ;;
+}{.mmi; cmp.CND p9, p0 = w3, r10 C M I
+ ADDSUB w0 = u0, v0 C M I
+ (p8) add w3 = INCR, w3 C M I
+ ;;
+}{.mmb; cmp.CND p6, p0 = w0, u0 C M I
+ (p8) cmpeqor p9, p0 = LIM2, w3 C M I
+ br L(cj2) C B
+}
+L(1):
+ {.mmi; ld8 v1 = [vp], 8 C M01
+ ld8 u1 = [up], 8 C M01
+ shr.u n = n, 3 C I0
+ ;;
+}{.mmi; ld8 v2 = [vp], 8 C M01
+ ld8 u2 = [up], 8 C M01
+ mov ar.lc = n C I0
+ ;;
+}{.mmi; ld8 v3 = [vp], 8 C M01
+ ld8 u3 = [up], 8 C M01
+ cmp.CND p9, p0 = w3, r10 C M I
+ ;;
+}{.mmi; (p8) cmpeqor p9, p0 = LIM, w3 C M I
+ (p8) add w3 = INCR, w3 C M I
+ ADDSUB w0 = u0, v0 C M I
+}{.mmb; add rpx = 24, rp C M I
+ nop 0
+ br L(m23) C B
+}
+
+.Lc011:
+ {.mmi; ld8 v3 = [vp], 8 C M01
+ ld8 u3 = [up], 8 C M01
+ shr.u n = n, 3 C I0
+}{.mmi; ADDSUB w2 = r10, r11 C M I
+ cmp.ne p7, p0 = 0, r23 C M I
+ nop 0
+ ;;
+}{.mmb; ld8 v0 = [vp], 8 C M01
+ ld8 u0 = [up], 8 C M01
+ (p15) br L(2) C B
+}{.mmi; cmp.CND p8, p0 = w2, r10 C M I
+ ADDSUB w3 = u3, v3 C M I
+ nop 0
+ ;;
+}{.mmb; (p7) cmpeqor p8, p0 = LIM, w2 C M I
+ (p7) add w2 = INCR, w2 C M I
+ br L(cj3) C B
+}
+L(2):
+ {.mmi; ld8 v1 = [vp], 8 C M01
+ ld8 u1 = [up], 8 C M01
+ ADDSUB w3 = u3, v3 C M I
+ ;;
+}{.mmi; ld8 v2 = [vp], 8 C M01
+ ld8 u2 = [up], 8 C M01
+ cmp.CND p8, p0 = w2, r10 C M I
+ ;;
+}{.mmi; ld8 v3 = [vp], 8 C M01
+ cmp.CND p9, p0 = w3, u3 C M I
+ mov ar.lc = n C I0
+}{.mmi; ld8 u3 = [up], 8 C M01
+ (p7) cmpeqor p8, p0 = LIM, w2 C M I
+ (p7) add w2 = INCR, w2 C M I
+ ;;
+}{.mmi; add rpx = 32, rp C M I
+ st8 [rp] = w2, 8 C M23
+ (p8) cmpeqor p9, p0 = LIM, w3 C M I
+}{.mmb; (p8) add w3 = INCR, w3 C M I
+ ADDSUB w0 = u0, v0 C M I
+ br L(m23)
+}
+
+.Lc100:
+ {.mmi; ld8 v2 = [vp], 8 C M01
+ ld8 u2 = [up], 8 C M01
+ shr.u n = n, 3 C I0
+}{.mmi; ADDSUB w1 = r10, r11 C M I
+ nop 0
+ nop 0
+ ;;
+}{.mmi; ld8 v3 = [vp], 8 C M01
+ ld8 u3 = [up], 8 C M01
+ add rpx = 8, rp C M I
+}{.mmi; cmp.ne p6, p0 = 0, r23 C M I
+ cmp.CND p7, p0 = w1, r10 C M I
+ nop 0
+ ;;
+}{.mmi; ld8 v0 = [vp], 8 C M01
+ ld8 u0 = [up], 8 C M01
+ ADDSUB w2 = u2, v2 C M I
+}{.mmb; (p6) cmpeqor p7, p0 = LIM, w1 C M I
+ (p6) add w1 = INCR, w1 C M I
+ (p14) br L(cj4)
+ ;;
+}{.mmi; ld8 v1 = [vp], 8 C M01
+ ld8 u1 = [up], 8 C M01
+ mov ar.lc = n C I0
+ ;;
+}{.mmi; ld8 v2 = [vp], 8 C M01
+ cmp.CND p8, p0 = w2, u2 C M I
+ nop 0
+}{.mmi; ld8 u2 = [up], 8 C M01
+ nop 0
+ ADDSUB w3 = u3, v3 C M I
+ ;;
+}{.mmi; ld8 v3 = [vp], 8 C M01
+ cmp.CND p9, p0 = w3, u3 C M I
+ (p7) cmpeqor p8, p0 = LIM, w2 C M I
+}{.mmb; ld8 u3 = [up], 8 C M01
+ (p7) add w2 = INCR, w2 C M I
+ br L(m4)
+}
+
+.Lc101:
+ {.mmi; ld8 v1 = [vp], 8 C M01
+ ld8 u1 = [up], 8 C M01
+ shr.u n = n, 3 C I0
+ ;;
+}{.mmi; ld8 v2 = [vp], 8 C M01
+ ld8 u2 = [up], 8 C M01
+ mov ar.lc = n C I0
+ ;;
+}{.mmi; ld8 v3 = [vp], 8 C M01
+ ld8 u3 = [up], 8 C M01
+ ADDSUB w0 = r10, r11 C M I
+}{.mmi; cmp.ne p9, p0 = 0, r23 C M I
+ add rpx = 16, rp C M I
+ nop 0
+ ;;
+}{.mmi; ld8 v0 = [vp], 8 C M01
+ ld8 u0 = [up], 8 C M01
+ cmp.CND p6, p0 = w0, r10 C M I
+}{.mbb; ADDSUB w1 = u1, v1 C M I
+ (p15) br L(c5) C B
+ br L(end) C B
+}
+
+.Lc110:
+ {.mmi; ld8 v0 = [vp], 8 C M01
+ ld8 u0 = [up], 8 C M01
+ shr.u n = n, 3 C I0
+ ;;
+}{.mmi; add upadv = PFDIST, up C M I
+ add vpadv = PFDIST, vp C M I
+ mov ar.lc = n C I0
+}{.mmi; ld8 v1 = [vp], 8 C M01
+ ld8 u1 = [up], 8 C M01
+ ADDSUB w3 = r10, r11 C M I
+ ;;
+}{.mmi; ld8 v2 = [vp], 8 C M01
+ ld8 u2 = [up], 8 C M01
+ ADDSUB w0 = u0, v0 C M I
+}{.mmi; cmp.CND p9, p0 = w3, r10 C M I
+ cmp.ne p8, p0 = 0, r23 C M I
+ add rpx = 24, rp C M I
+ ;;
+}{.mmi; ld8 v3 = [vp], 8 C M01
+ ld8 u3 = [up], 8 C M01
+ nop 0
+}{.mmb; (p8) cmpeqor p9, p0 = LIM, w3 C M I
+ (p8) add w3 = INCR, w3 C M I
+ br L(m67) C B
+}
+
+.Lc111:
+ {.mmi; ld8 v0 = [vp], 8 C M01
+ ld8 u0 = [up], 8 C M01
+ shr.u n = n, 3 C I0
+ ;;
+}{.mmi; add upadv = PFDIST, up C M I
+ ld8 v1 = [vp], 8 C M01
+ mov ar.lc = n C I0
+}{.mmi; ld8 u1 = [up], 8 C M01
+ ADDSUB w2 = r10, r11 C M I
+ nop 0
+ ;;
+}{.mmi; add vpadv = PFDIST, vp C M I
+ ld8 v2 = [vp], 8 C M01
+ cmp.CND p8, p0 = w2, r10 C M I
+}{.mmi; ld8 u2 = [up], 8 C M01
+ ADDSUB w3 = r18, r19 C M I
+ nop 0
+ ;;
+}{.mmi; ld8 v3 = [vp], 8 C M01
+ cmp.CND p9, p0 = w3, r18 C M I
+ (p13) cmpeqor p8, p0 = LIM, w2 C M I
+}{.mmi; ld8 u3 = [up], 8 C M01
+ (p13) add w2 = INCR, w2 C M I
+ nop 0
+ ;;
+}{.mmi; add rpx = 32, rp C M I
+ st8 [rp] = w2, 8 C M23
+ (p8) cmpeqor p9, p0 = LIM, w3 C M I
+}{.mmb; (p8) add w3 = INCR, w3 C M I
+ ADDSUB w0 = u0, v0 C M I
+ br L(m67)
+}
+EPILOGUE()
+
+PROLOGUE(func)
+ .prologue
+ .save ar.lc, r2
+ .body
+ifdef(`HAVE_ABI_32',`
+ addp4 rp = 0, rp C M I
+ addp4 up = 0, up C M I
+ nop.i 0
+ addp4 vp = 0, vp C M I
+ nop.m 0
+ zxt4 n = n C I
+ ;;
+')
+
+ {.mmi; ld8 r11 = [vp], 8 C M01
+ ld8 r10 = [up], 8 C M01
+ mov r2 = ar.lc C I0
+}{.mmi; and r14 = 7, n C M I
+ cmp.lt p15, p14 = 8, n C M I
+ add n = -6, n C M I
+ ;;
+}{.mmi; cmp.eq p6, p0 = 1, r14 C M I
+ cmp.eq p7, p0 = 2, r14 C M I
+ cmp.eq p8, p0 = 3, r14 C M I
+}{.bbb; (p6) br.dptk .Lb001 C B
+ (p7) br.dptk .Lb010 C B
+ (p8) br.dptk .Lb011 C B
+ ;;
+}{.mmi; cmp.eq p9, p0 = 4, r14 C M I
+ cmp.eq p10, p0 = 5, r14 C M I
+ cmp.eq p11, p0 = 6, r14 C M I
+}{.bbb; (p9) br.dptk .Lb100 C B
+ (p10) br.dptk .Lb101 C B
+ (p11) br.dptk .Lb110 C B
+ ;;
+}{.mmi; ld8 r19 = [vp], 8 C M01
+ ld8 r18 = [up], 8 C M01
+ cmp.ne p13, p0 = r0, r0 C clear "CF" M I
+}{.mmb; cmp.eq p12, p0 = 7, r14 C M I
+ mov r23 = 0 C M I
+ (p12) br.dptk .Lb111 C B
+ ;;
+}
+
+.Lb000:
+ {.mmi; ld8 v3 = [vp], 8 C M01
+ ld8 u3 = [up], 8 C M01
+ shr.u n = n, 3 C I0
+ ;;
+}{.mmi; ld8 v0 = [vp], 8 C M01
+ ld8 u0 = [up], 8 C M01
+ ADDSUB w1 = r10, r11 C M I
+ ;;
+}{.mmi; ld8 v1 = [vp], 8 C M01
+ cmp.CND p7, p0 = w1, r10 C M I
+ mov ar.lc = n C I0
+}{.mmi; ld8 u1 = [up], 8 C M01
+ ADDSUB w2 = r18, r19 C M I
+ add rpx = 8, rp C M I
+ ;;
+}{.mmi; add upadv = PFDIST, up
+ add vpadv = PFDIST, vp
+ cmp.CND p8, p0 = w2, r18 C M I
+}{.mmi; ld8 v2 = [vp], 8 C M01
+ ld8 u2 = [up], 8 C M01
+ ADDSUB w3 = u3, v3 C M I
+ ;;
+}{.mmi; ld8 v3 = [vp], 8 C M01
+ cmp.CND p9, p0 = w3, u3 C M I
+ (p7) cmpeqor p8, p0 = LIM, w2 C M I
+}{.mmb; ld8 u3 = [up], 8 C M01
+ (p7) add w2 = INCR, w2 C M I
+ br L(m0) C B
+}
+
+ ALIGN(32)
+.Lb001:
+ {.mmi; ADDSUB w0 = r10, r11 C M I
+ (p15) ld8 v1 = [vp], 8 C M01
+ mov r8 = 0 C M I
+ ;;
+}{.mmb; cmp.CND p6, p0 = w0, r10 C M I
+ (p15) ld8 u1 = [up], 8 C M01
+ (p14) br L(cj1) C B
+ ;;
+}{.mmi; add upadv = PFDIST, up
+ add vpadv = PFDIST, vp
+ shr.u n = n, 3 C I0
+}{.mmi; ld8 v2 = [vp], 8 C M01
+ ld8 u2 = [up], 8 C M01
+ cmp.CND p6, p0 = w0, r10 C M I
+ ;;
+}{.mmi; ld8 v3 = [vp], 8 C M01
+ ld8 u3 = [up], 8 C M01
+ mov ar.lc = n C I0
+ ;;
+}{.mmi; ld8 v0 = [vp], 8 C M01
+ ld8 u0 = [up], 8 C M01
+ ADDSUB w1 = u1, v1 C M I
+ ;;
+}{.mmi; ld8 v1 = [vp], 8 C M01
+ cmp.CND p7, p0 = w1, u1 C M I
+ ADDSUB w2 = u2, v2 C M I
+}{.mmb; ld8 u1 = [up], 8 C M01
+ add rpx = 16, rp C M I
+ br L(m1) C B
+}
+
+ ALIGN(32)
+.Lb010:
+ {.mmi; ld8 v0 = [vp], 8 C M01
+ ld8 u0 = [up], 8 C M01
+ shr.u n = n, 3 C I0
+}{.mmb; ADDSUB w3 = r10, r11 C M I
+ nop 0
+ (p15) br L(gt2) C B
+ ;;
+}{.mmi; cmp.CND p9, p0 = w3, r10 C M I
+ ADDSUB w0 = u0, v0 C M I
+ mov r8 = 0 C M I
+ ;;
+}{.mmb; nop 0
+ cmp.CND p6, p0 = w0, u0 C M I
+ br L(cj2) C B
+}
+L(gt2):
+ {.mmi; ld8 v1 = [vp], 8 C M01
+ ld8 u1 = [up], 8 C M01
+ nop 0
+ ;;
+}{.mmi; add upadv = PFDIST, up
+ add vpadv = PFDIST, vp
+ mov ar.lc = n C I0
+}{.mmi; ld8 v2 = [vp], 8 C M01
+ ld8 u2 = [up], 8 C M01
+ nop 0
+ ;;
+}{.mmi; ld8 v3 = [vp], 8 C M01
+ cmp.CND p9, p0 = w3, r10 C M I
+ ADDSUB w0 = u0, v0 C M I
+}{.mmb; ld8 u3 = [up], 8 C M01
+ add rpx = 24, rp C M I
+ br L(m23) C B
+}
+
+ ALIGN(32)
+.Lb011:
+ {.mmi; ld8 v3 = [vp], 8 C M01
+ ld8 u3 = [up], 8 C M01
+ ADDSUB w2 = r10, r11 C M I
+ ;;
+}{.mmb; ld8 v0 = [vp], 8 C M01
+ ld8 u0 = [up], 8 C M01
+ (p15) br L(3) C B
+}{.mmb; cmp.CND p8, p0 = w2, r10 C M I
+ ADDSUB w3 = u3, v3 C M I
+ br L(cj3) C B
+}
+L(3):
+ {.mmi; ld8 v1 = [vp], 8 C M01
+ ld8 u1 = [up], 8 C M01
+ shr.u n = n, 3 C I0
+ ;;
+}{.mmi; add upadv = PFDIST, up
+ add vpadv = PFDIST, vp
+ ADDSUB w3 = u3, v3 C M I
+}{.mmi; ld8 v2 = [vp], 8 C M01
+ ld8 u2 = [up], 8 C M01
+ cmp.CND p8, p0 = w2, r10 C M I
+ ;;
+}{.mmi; ld8 v3 = [vp], 8 C M01
+ cmp.CND p9, p0 = w3, u3 C M I
+ mov ar.lc = n C I0
+}{.mmi; ld8 u3 = [up], 8 C M01
+ nop 0
+ nop 0
+ ;;
+}{.mmi; add rpx = 32, rp C M I
+ st8 [rp] = w2, 8 C M23
+ (p8) cmpeqor p9, p0 = LIM, w3 C M I
+}{.mmb; (p8) add w3 = INCR, w3 C M I
+ ADDSUB w0 = u0, v0 C M I
+ br L(m23) C B
+}
+
+ ALIGN(32)
+.Lb100:
+ {.mmi; ld8 v2 = [vp], 8 C M01
+ ld8 u2 = [up], 8 C M01
+ shr.u n = n, 3 C I0
+ ;;
+}{.mmi; ld8 v3 = [vp], 8 C M01
+ ld8 u3 = [up], 8 C M01
+ ADDSUB w1 = r10, r11 C M I
+ ;;
+}{.mmi; ld8 v0 = [vp], 8 C M01
+ ld8 u0 = [up], 8 C M01
+ cmp.CND p7, p0 = w1, r10 C M I
+}{.mmb; nop 0
+ ADDSUB w2 = u2, v2 C M I
+ (p14) br L(cj4) C B
+ ;;
+}
+L(gt4):
+ {.mmi; add upadv = PFDIST, up
+ add vpadv = PFDIST, vp
+ mov ar.lc = n C I0
+}{.mmi; ld8 v1 = [vp], 8 C M01
+ ld8 u1 = [up], 8 C M01
+ nop 0
+ ;;
+}{.mmi; ld8 v2 = [vp], 8 C M01
+ cmp.CND p8, p0 = w2, u2 C M I
+ nop 0
+}{.mmi; ld8 u2 = [up], 8 C M01
+ ADDSUB w3 = u3, v3 C M I
+ add rpx = 8, rp C M I
+ ;;
+}{.mmi; ld8 v3 = [vp], 8 C M01
+ cmp.CND p9, p0 = w3, u3 C M I
+ (p7) cmpeqor p8, p0 = LIM, w2 C M I
+}{.mmb; ld8 u3 = [up], 8 C M01
+ (p7) add w2 = INCR, w2 C M I
+ br L(m4) C B
+}
+
+ ALIGN(32)
+.Lb101:
+ {.mmi; ld8 v1 = [vp], 8 C M01
+ ld8 u1 = [up], 8 C M01
+ shr.u n = n, 3 C I0
+ ;;
+}{.mmi; ld8 v2 = [vp], 8 C M01
+ ld8 u2 = [up], 8 C M01
+ ADDSUB w0 = r10, r11 C M I
+ ;;
+}{.mmi; add upadv = PFDIST, up
+ add vpadv = PFDIST, vp
+ add rpx = 16, rp C M I
+}{.mmi; ld8 v3 = [vp], 8 C M01
+ ld8 u3 = [up], 8 C M01
+ nop 0
+ ;;
+}{.mmi; ld8 v0 = [vp], 8 C M01
+ cmp.CND p6, p0 = w0, r10 C M I
+ nop 0
+}{.mmb; ld8 u0 = [up], 8 C M01
+ ADDSUB w1 = u1, v1 C M I
+ (p14) br L(cj5) C B
+ ;;
+}
+L(gt5):
+ {.mmi; ld8 v1 = [vp], 8 C M01
+ cmp.CND p7, p0 = w1, u1 C M I
+ mov ar.lc = n C I0
+}{.mmb; ld8 u1 = [up], 8 C M01
+ ADDSUB w2 = u2, v2 C M I
+ br L(m5) C B
+}
+
+ ALIGN(32)
+.Lb110:
+ {.mmi; ld8 v0 = [vp], 8 C M01
+ ld8 u0 = [up], 8 C M01
+ shr.u n = n, 3 C I0
+ ;;
+}{.mmi; ld8 v1 = [vp], 8 C M01
+ ld8 u1 = [up], 8 C M01
+ ADDSUB w3 = r10, r11 C M I
+ ;;
+}{.mmi; add upadv = PFDIST, up
+ add vpadv = PFDIST, vp
+ mov ar.lc = n C I0
+}{.mmi; ld8 v2 = [vp], 8 C M01
+ ld8 u2 = [up], 8 C M01
+ nop 0
+ ;;
+}{.mmi; ld8 v3 = [vp], 8 C M01
+ cmp.CND p9, p0 = w3, r10 C M I
+ ADDSUB w0 = u0, v0 C M I
+}{.mmb; ld8 u3 = [up], 8 C M01
+ add rpx = 24, rp C M I
+ br L(m67) C B
+}
+
+ ALIGN(32)
+.Lb111:
+ {.mmi; ld8 v0 = [vp], 8 C M01
+ ld8 u0 = [up], 8 C M01
+ shr.u n = n, 3 C I0
+ ;;
+}{.mmi; ld8 v1 = [vp], 8 C M01
+ ld8 u1 = [up], 8 C M01
+ ADDSUB w2 = r10, r11 C M I
+ ;;
+}{.mmi; ld8 v2 = [vp], 8 C M01
+ cmp.CND p8, p0 = w2, r10 C M I
+ mov ar.lc = n C I0
+}{.mmi; ld8 u2 = [up], 8 C M01
+ ADDSUB w3 = r18, r19 C M I
+ nop 0
+ ;;
+}{.mmi; add upadv = PFDIST, up
+ add vpadv = PFDIST, vp
+ nop 0
+}{.mmi; ld8 v3 = [vp], 8 C M01
+ ld8 u3 = [up], 8 C M01
+ cmp.CND p9, p0 = w3, r18 C M I
+ ;;
+}{.mmi; add rpx = 32, rp C M I
+ st8 [rp] = w2, 8 C M23
+ (p8) cmpeqor p9, p0 = LIM, w3 C M I
+}{.mmb; (p8) add w3 = INCR, w3 C M I
+ ADDSUB w0 = u0, v0 C M I
+ br L(m67) C B
+}
+
+C *** MAIN LOOP START ***
+ ALIGN(32)
+L(top):
+L(c5): ld8 v1 = [vp], 8 C M01
+ cmp.CND p7, p0 = w1, u1 C M I
+ (p9) cmpeqor p6, p0 = LIM, w0 C M I
+ ld8 u1 = [up], 8 C M01
+ (p9) add w0 = INCR, w0 C M I
+ ADDSUB w2 = u2, v2 C M I
+ ;;
+L(m5): ld8 v2 = [vp], 8 C M01
+ cmp.CND p8, p0 = w2, u2 C M I
+ (p6) cmpeqor p7, p0 = LIM, w1 C M I
+ ld8 u2 = [up], 8 C M01
+ (p6) add w1 = INCR, w1 C M I
+ ADDSUB w3 = u3, v3 C M I
+ ;;
+ st8 [rp] = w0, 8 C M23
+ ld8 v3 = [vp], 8 C M01
+ cmp.CND p9, p0 = w3, u3 C M I
+ (p7) cmpeqor p8, p0 = LIM, w2 C M I
+ ld8 u3 = [up], 8 C M01
+ (p7) add w2 = INCR, w2 C M I
+ ;;
+L(m4): st8 [rp] = w1, 16 C M23
+ st8 [rpx] = w2, 32 C M23
+ (p8) cmpeqor p9, p0 = LIM, w3 C M I
+ lfetch [upadv], 64
+ (p8) add w3 = INCR, w3 C M I
+ ADDSUB w0 = u0, v0 C M I
+ ;;
+L(m23): st8 [rp] = w3, 8 C M23
+ ld8 v0 = [vp], 8 C M01
+ cmp.CND p6, p0 = w0, u0 C M I
+ ld8 u0 = [up], 8 C M01
+ ADDSUB w1 = u1, v1 C M I
+ nop.b 0
+ ;;
+L(c1): ld8 v1 = [vp], 8 C M01
+ cmp.CND p7, p0 = w1, u1 C M I
+ (p9) cmpeqor p6, p0 = LIM, w0 C M I
+ ld8 u1 = [up], 8 C M01
+ (p9) add w0 = INCR, w0 C M I
+ ADDSUB w2 = u2, v2 C M I
+ ;;
+L(m1): ld8 v2 = [vp], 8 C M01
+ cmp.CND p8, p0 = w2, u2 C M I
+ (p6) cmpeqor p7, p0 = LIM, w1 C M I
+ ld8 u2 = [up], 8 C M01
+ (p6) add w1 = INCR, w1 C M I
+ ADDSUB w3 = u3, v3 C M I
+ ;;
+ st8 [rp] = w0, 8 C M23
+ ld8 v3 = [vp], 8 C M01
+ cmp.CND p9, p0 = w3, u3 C M I
+ (p7) cmpeqor p8, p0 = LIM, w2 C M I
+ ld8 u3 = [up], 8 C M01
+ (p7) add w2 = INCR, w2 C M I
+ ;;
+L(m0): st8 [rp] = w1, 16 C M23
+ st8 [rpx] = w2, 32 C M23
+ (p8) cmpeqor p9, p0 = LIM, w3 C M I
+ lfetch [vpadv], 64
+ (p8) add w3 = INCR, w3 C M I
+ ADDSUB w0 = u0, v0 C M I
+ ;;
+L(m67): st8 [rp] = w3, 8 C M23
+ ld8 v0 = [vp], 8 C M01
+ cmp.CND p6, p0 = w0, u0 C M I
+ ld8 u0 = [up], 8 C M01
+ ADDSUB w1 = u1, v1 C M I
+ br.cloop.dptk L(top) C B
+ ;;
+C *** MAIN LOOP END ***
+
+L(end):
+ {.mmi; (p9) cmpeqor p6, p0 = LIM, w0 C M I
+ (p9) add w0 = INCR, w0 C M I
+ mov ar.lc = r2 C I0
+}
+L(cj5):
+ {.mmi; cmp.CND p7, p0 = w1, u1 C M I
+ ADDSUB w2 = u2, v2 C M I
+ nop 0
+ ;;
+}{.mmi; st8 [rp] = w0, 8 C M23
+ (p6) cmpeqor p7, p0 = LIM, w1 C M I
+ (p6) add w1 = INCR, w1 C M I
+}
+L(cj4):
+ {.mmi; cmp.CND p8, p0 = w2, u2 C M I
+ ADDSUB w3 = u3, v3 C M I
+ nop 0
+ ;;
+}{.mmi; st8 [rp] = w1, 8 C M23
+ (p7) cmpeqor p8, p0 = LIM, w2 C M I
+ (p7) add w2 = INCR, w2 C M I
+}
+L(cj3):
+ {.mmi; cmp.CND p9, p0 = w3, u3 C M I
+ ADDSUB w0 = u0, v0 C M I
+ nop 0
+ ;;
+}{.mmi; st8 [rp] = w2, 8 C M23
+ (p8) cmpeqor p9, p0 = LIM, w3 C M I
+ (p8) add w3 = INCR, w3 C M I
+}{.mmi; cmp.CND p6, p0 = w0, u0 C M I
+ nop 0
+ mov r8 = 0 C M I
+ ;;
+}
+L(cj2):
+ {.mmi; st8 [rp] = w3, 8 C M23
+ (p9) cmpeqor p6, p0 = LIM, w0 C M I
+ (p9) add w0 = INCR, w0 C M I
+ ;;
+}
+L(cj1):
+ {.mmb; st8 [rp] = w0, 8 C M23
+ (p6) mov r8 = 1 C M I
+ br.ret.sptk.many b0 C B
+}
+EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/aorsorrlsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/aorsorrlsh1_n.asm
index 9b58b9e11f0..9b58b9e11f0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/aorsorrlsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/aorsorrlsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/aorsorrlsh2_n.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/aorsorrlsh2_n.asm
index 39b384a91bb..39b384a91bb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/aorsorrlsh2_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/aorsorrlsh2_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/aorsorrlshC_n.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/aorsorrlshC_n.asm
index d327838402c..2703ce21df7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/aorsorrlshC_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/aorsorrlshC_n.asm
@@ -63,7 +63,6 @@ ifdef(`DO_rsb', `
define(`LIM', 0)
define(`func', mpn_rsblsh`'LSH`'_n)')
-define(cmpeqor, `cmp.eq.or')
define(PFDIST, 500)
define(`u0',`r14') define(`u1',`r15') define(`u2',`r16') define(`u3',`r17')
@@ -104,51 +103,53 @@ ifdef(`HAVE_ABI_32',`
(p8) br.dptk .Lb11 C B
}
-.Lb00: ld8 v0 = [vp], 8 C M01
+.Lb00:
+ {.mmi; ld8 v0 = [vp], 8 C M01
ld8 u0 = [up], 8 C M01
shr.u n = n, 2 C I0
;;
-.mmi; ld8 v1 = [vp], 8 C M01
+}{.mmi; ld8 v1 = [vp], 8 C M01
ld8 u1 = [up], 8 C M01
shl x3 = r11, LSH C I0
;;
-.mmi; ld8 v2 = [vp], 8 C M01
+}{.mmi; ld8 v2 = [vp], 8 C M01
ld8 u2 = [up], 8 C M01
shrp x0 = v0, r11, 64-LSH C I0
-.mmb; ADDSUB( w3, r10, x3) C M I
+}{.mmb; ADDSUB( w3, r10, x3) C M I
nop 0
(p15) br.dpnt .grt4 C B
;;
-.mii; CMP( p7, w3, r10, x3) C M II0
+}{.mii; CMP( p7, w3, r10, x3) C M II0
shrp x1 = v1, v0, 64-LSH C I0
ADDSUB( w0, u0, x0) C M I
;;
-.mii; CMP( p8, w0, u0, x0) C M I
+}{.mii; CMP( p8, w0, u0, x0) C M I
shrp x2 = v2, v1, 64-LSH C I0
ADDSUB( w1, u1, x1) C M I
-.mmb; nop 0
+}{.mmb; nop 0
nop 0
br .Lcj4 C B
-
+}
ALIGN(32)
-.grt4: ld8 v3 = [vp], 8 C M01
+.grt4:
+ {.mii; ld8 v3 = [vp], 8 C M01
shrp x0 = v0, r11, 64-LSH C I0
CMP( p8, w3, r10, x3) C M I
;;
-.mmi; ld8 u3 = [up], 8 C M01
+}{.mmi; ld8 u3 = [up], 8 C M01
add r11 = PFDIST, vp
shrp x1 = v1, v0, 64-LSH C I0
-.mmi; ld8 v0 = [vp], 8 C M01
+}{.mmi; ld8 v0 = [vp], 8 C M01
ADDSUB( w0, u0, x0) C M I
nop 0
;;
-.mmi; CMP( p6, w0, u0, x0) C M I
+}{.mmi; CMP( p6, w0, u0, x0) C M I
add r10 = PFDIST, up
mov.i ar.lc = n C I0
-.mmb; ADDSUB( w1, u1, x1) C M I
+}{.mmb; ADDSUB( w1, u1, x1) C M I
ld8 u0 = [up], 8 C M01
br .LL00 C B
-
+}
ALIGN(32)
.Lb01:
@@ -180,124 +181,130 @@ ifdef(`DO_add',
ADDSUB( w2, r10, x2)
')
;;
-.mmi; ld8 v1 = [vp], 8 C M01
+ {.mmi; ld8 v1 = [vp], 8 C M01
ld8 u1 = [up], 8 C M01
shrp x3 = v3, r11, 64-LSH C I0
;;
-.mmi; ld8 v2 = [vp], 8 C M01
+}{.mmi; ld8 v2 = [vp], 8 C M01
ld8 u2 = [up], 8 C M01
shrp x0 = v0, v3, 64-LSH C I0
-.mmb; CMP( p6, w2, r10, x2) C M I
+}{.mmb; CMP( p6, w2, r10, x2) C M I
ADDSUB( w3, u3, x3) C M I
br.cloop.dptk .grt5 C B
;;
-.mmi; CMP( p7, w3, u3, x3) C M I
+}{.mmi; CMP( p7, w3, u3, x3) C M I
ADDSUB( w0, u0, x0) C M I
shrp x1 = v1, v0, 64-LSH C I0
-.mmb; nop 0
+}{.mmb; nop 0
nop 0
br .Lcj5 C B
+}
.grt5:
-.mmi; add r10 = PFDIST, up
+ {.mmi; add r10 = PFDIST, up
add r11 = PFDIST, vp
shrp x0 = v0, v3, 64-LSH C I0
-.mmb; ld8 v3 = [vp], 8 C M01
+}{.mmb; ld8 v3 = [vp], 8 C M01
CMP( p8, w3, u3, x3) C M I
br .LL01 C B
-
+}
ALIGN(32)
-.Lb10: ld8 v2 = [vp], 8 C M01
+.Lb10:
+ {.mmi; ld8 v2 = [vp], 8 C M01
ld8 u2 = [up], 8 C M01
shl x1 = r11, LSH C I0
-.mmb; nop 0
+}{.mmb; nop 0
nop 0
(p15) br.dpnt .grt2 C B
;;
-.mmi; ADDSUB( w1, r10, x1) C M I
+}{.mmi; ADDSUB( w1, r10, x1) C M I
nop 0
shrp x2 = v2, r11, 64-LSH C I0
;;
-.mmi; CMP( p9, w1, r10, x1) C M I
+}{.mmi; CMP( p9, w1, r10, x1) C M I
ADDSUB( w2, u2, x2) C M I
shr.u r8 = v2, 64-LSH C retval I0
;;
-.mmb; CMP( p6, w2, u2, x2) C M I
+}{.mmb; CMP( p6, w2, u2, x2) C M I
nop 0
br .Lcj2 C B
-
-.grt2: ld8 v3 = [vp], 8 C M01
+}
+.grt2:
+ {.mmi; ld8 v3 = [vp], 8 C M01
ld8 u3 = [up], 8 C M01
shr.u n = n, 2 C I0
;;
-.mmi; ld8 v0 = [vp], 8 C M01
+}{.mmi; ld8 v0 = [vp], 8 C M01
ld8 u0 = [up], 8 C M01
mov.i ar.lc = n C I0
-.mmi; ADDSUB( w1, r10, x1) C M I
+}{.mmi; ADDSUB( w1, r10, x1) C M I
nop 0
nop 0
;;
-.mii; ld8 v1 = [vp], 8 C M01
+}{.mii; ld8 v1 = [vp], 8 C M01
shrp x2 = v2, r11, 64-LSH C I0
CMP( p8, w1, r10, x1) C M I
;;
-.mmi; add r10 = PFDIST, up
+}{.mmi; add r10 = PFDIST, up
ld8 u1 = [up], 8 C M01
shrp x3 = v3, v2, 64-LSH C I0
-.mmi; add r11 = PFDIST, vp
+}{.mmi; add r11 = PFDIST, vp
ld8 v2 = [vp], 8 C M01
ADDSUB( w2, u2, x2) C M I
;;
-.mmi; CMP( p6, w2, u2, x2) C M I
+}{.mmi; CMP( p6, w2, u2, x2) C M I
ld8 u2 = [up], 8 C M01
shrp x0 = v0, v3, 64-LSH C I0
-.mbb; ADDSUB( w3, u3, x3) C M I
+}{.mib; ADDSUB( w3, u3, x3) C M I
+ nop 0
br.cloop.dpnt L(top) C B
+}
br L(end) C B
-
-.Lb11: ld8 v1 = [vp], 8 C M01
+.Lb11:
+ {.mmi; ld8 v1 = [vp], 8 C M01
ld8 u1 = [up], 8 C M01
shl x0 = r11, LSH C I0
;;
-.mmi; ld8 v2 = [vp], 8 C M01
+}{.mmi; ld8 v2 = [vp], 8 C M01
ld8 u2 = [up], 8 C M01
shr.u n = n, 2 C I0
-.mmb; nop 0
+}{.mmb; nop 0
nop 0
(p15) br.dpnt .grt3 C B
;;
-.mii; nop 0
+}{.mii; nop 0
shrp x1 = v1, r11, 64-LSH C I0
ADDSUB( w0, r10, x0) C M I
;;
-.mii; CMP( p8, w0, r10, x0) C M I
+}{.mii; CMP( p8, w0, r10, x0) C M I
shrp x2 = v2, v1, 64-LSH C I0
ADDSUB( w1, u1, x1) C M I
;;
-.mmb; CMP( p9, w1, u1, x1) C M I
+}{.mmb; CMP( p9, w1, u1, x1) C M I
ADDSUB( w2, u2, x2) C M I
br .Lcj3 C B
+}
.grt3:
-.mmi; ld8 v3 = [vp], 8 C M01
+ {.mmi; ld8 v3 = [vp], 8 C M01
ld8 u3 = [up], 8 C M01
shrp x1 = v1, r11, 64-LSH C I0
-.mmi; ADDSUB( w0, r10, x0) C M I
+}{.mmi; ADDSUB( w0, r10, x0) C M I
nop 0
nop 0
;;
-.mmi; ld8 v0 = [vp], 8 C M01
+}{.mmi; ld8 v0 = [vp], 8 C M01
CMP( p6, w0, r10, x0) C M I
mov.i ar.lc = n C I0
-.mmi; ld8 u0 = [up], 8 C M01
+}{.mmi; ld8 u0 = [up], 8 C M01
ADDSUB( w1, u1, x1) C M I
nop 0
;;
-.mmi; add r10 = PFDIST, up
+}{.mmi; add r10 = PFDIST, up
add r11 = PFDIST, vp
shrp x2 = v2, v1, 64-LSH C I0
-.mmb; ld8 v1 = [vp], 8 C M01
+}{.mmb; ld8 v1 = [vp], 8 C M01
CMP( p8, w1, u1, x1) C M I
br .LL11 C B
-
+}
C *** MAIN LOOP START ***
ALIGN(32)
@@ -336,62 +343,70 @@ L(top): st8 [rp] = w1, 8 C M23
ld8 v2 = [vp], 8 C M01
ADDSUB( w2, u2, x2) C M I
;;
-.mmi; st8 [rp] = w0, 8 C M23
+ {.mmi; st8 [rp] = w0, 8 C M23
CMP( p6, w2, u2, x2) C M I
shrp x0 = v0, v3, 64-LSH C I0
+}{.mib;
ld8 u2 = [up], 8 C M01
ADDSUB( w3, u3, x3) C M I
br.cloop.dptk L(top) C B
;;
+}
C *** MAIN LOOP END ***
L(end):
-.mmi; st8 [rp] = w1, 8 C M23
+ {.mmi; st8 [rp] = w1, 8 C M23
(p8) cmpeqor p6, p0 = LIM, w2 C M I
shrp x1 = v1, v0, 64-LSH C I0
-.mmi;
+}{.mmi;
(p8) add w2 = INCR, w2 C M I
CMP( p7, w3, u3, x3) C M I
ADDSUB( w0, u0, x0) C M I
;;
+}
.Lcj5:
-.mmi; st8 [rp] = w2, 8 C M23
+ {.mmi; st8 [rp] = w2, 8 C M23
(p6) cmpeqor p7, p0 = LIM, w3 C M I
shrp x2 = v2, v1, 64-LSH C I0
-.mmi;
+}{.mmi;
(p6) add w3 = INCR, w3 C M I
CMP( p8, w0, u0, x0) C M I
ADDSUB( w1, u1, x1) C M I
;;
+}
.Lcj4:
-.mmi; st8 [rp] = w3, 8 C M23
+ {.mmi; st8 [rp] = w3, 8 C M23
(p7) cmpeqor p8, p0 = LIM, w0 C M I
mov.i ar.lc = r2 C I0
-.mmi;
+}{.mmi;
(p7) add w0 = INCR, w0 C M I
CMP( p9, w1, u1, x1) C M I
ADDSUB( w2, u2, x2) C M I
;;
+}
.Lcj3:
-.mmi; st8 [rp] = w0, 8 C M23
+ {.mmi; st8 [rp] = w0, 8 C M23
(p8) cmpeqor p9, p0 = LIM, w1 C M I
shr.u r8 = v2, 64-LSH C I0
-.mmi;
+}{.mmi;
(p8) add w1 = INCR, w1 C M I
CMP( p6, w2, u2, x2) C M I
nop 0
;;
+}
.Lcj2:
-.mmi; st8 [rp] = w1, 8 C M23
+ {.mmi; st8 [rp] = w1, 8 C M23
(p9) cmpeqor p6, p0 = LIM, w2 C M I
(p9) add w2 = INCR, w2 C M I
;;
+}
.Lcj1:
-.mmb; st8 [rp] = w2 C M23
+ {.mmb; st8 [rp] = w2 C M23
ifdef(`DO_rsb',`
(p6) add r8 = -1, r8 C M I
',`
(p6) add r8 = 1, r8 C M I
') br.ret.sptk.many b0 C B
+}
EPILOGUE()
ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/bdiv_dbm1c.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/bdiv_dbm1c.asm
index 47e4553cda5..47e4553cda5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/bdiv_dbm1c.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/bdiv_dbm1c.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/cnd_aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/cnd_aors_n.asm
index dc4a937403e..edd05524c6f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/cnd_aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/cnd_aors_n.asm
@@ -58,7 +58,6 @@ ifdef(`OPERATION_cnd_sub_n',`
define(func, mpn_cnd_sub_n)
')
-define(cmpeqor, `cmp.eq.or')
define(PFDIST, 160)
C Some useful aliases for registers we use
@@ -86,22 +85,22 @@ ifdef(`HAVE_ABI_32',`
zxt4 n = n C I
;;
')
-.mmi; and r3 = 3, n C M I
+ {.mmi; and r3 = 3, n C M I
add n = -1, n C M I
mov r2 = ar.lc C I0
-.mmi; cmp.ne p6, p7 = 0, cnd C M I
+}{.mmi; cmp.ne p6, p7 = 0, cnd C M I
add vp2 = 8, vp C M I
add up2 = 8, up C M I
;;
-.mmi; add upadv = PFDIST, up C M I
+}{.mmi; add upadv = PFDIST, up C M I
add vpadv = PFDIST, vp C M I
shr.u n = n, 2 C I0
.pred.rel "mutex", p6, p7
-.mmi; add rp2 = 8, rp C M I
+}{.mmi; add rp2 = 8, rp C M I
(p6) mov cnd = -1 C M I
(p7) mov cnd = 0 C M I
;;
- cmp.eq p9, p0 = 1, r3 C M I
+} cmp.eq p9, p0 = 1, r3 C M I
cmp.eq p7, p0 = 2, r3 C M I
cmp.eq p8, p0 = 3, r3 C M I
(p9) br L(b1) C B
@@ -109,11 +108,11 @@ ifdef(`HAVE_ABI_32',`
(p8) br L(b3) C B
;;
L(b0):
-.mmi; ld8 v2 = [vp1], 16 C M01
+ {.mmi; ld8 v2 = [vp1], 16 C M01
ld8 v3 = [vp2], 16 C M01
mov ar.lc = n C I0
;;
- ld8 u2 = [up1], 16 C M01
+} ld8 u2 = [up1], 16 C M01
ld8 u3 = [up2], 16 C M01
and x2 = v2, cnd C M I
and x3 = v3, cnd C M I
@@ -161,11 +160,11 @@ L(b3): ld8 v3 = [vp1], 8 C M01
C fall through
L(b2):
-.mmi; ld8 v0 = [vp1], 16 C M01
+ {.mmi; ld8 v0 = [vp1], 16 C M01
ld8 v1 = [vp2], 16 C M01
mov ar.lc = n C I0
;;
- ld8 u0 = [up1], 16 C M01
+} ld8 u0 = [up1], 16 C M01
ld8 u1 = [up2], 16 C M01
and x0 = v0, cnd C M I
and x1 = v1, cnd C M I
@@ -187,73 +186,79 @@ L(gt2):
C *** MAIN LOOP START ***
C ALIGN(32)
L(top):
-.mmi; ld8 v2 = [vp1], 16 C M01
+ {.mmi; ld8 v2 = [vp1], 16 C M01
ld8 v3 = [vp2], 16 C M01
cmp.CND p6, p0 = w0, u0 C M I
-.mmi; st8 [rp1] = w2, 16 C M23
+}{.mmi; st8 [rp1] = w2, 16 C M23
st8 [rp2] = w3, 16 C M23
cmp.CND p7, p0 = w1, u1 C M I
;;
+}
L(lo2):
-.mmi; ld8 u2 = [up1], 16 C M01
+ {.mmi; ld8 u2 = [up1], 16 C M01
ld8 u3 = [up2], 16 C M01
(p9) cmpeqor p6, p0 = LIM, w0 C M I
-.mmi; and x2 = v2, cnd C M I
+}{.mmi; and x2 = v2, cnd C M I
and x3 = v3, cnd C M I
(p9) add w0 = INCR, w0 C M I
;;
-.mmi; ADDSUB w2 = u2, x2 C M I
+}{.mmi; ADDSUB w2 = u2, x2 C M I
(p6) cmpeqor p7, p0 = LIM, w1 C M I
(p6) add w1 = INCR, w1 C M I
-.mmi; ADDSUB w3 = u3, x3 C M I
+}{.mmi; ADDSUB w3 = u3, x3 C M I
lfetch [upadv], 32
nop 0
;;
-.mmi; ld8 v0 = [vp1], 16 C M01
+}{.mmi; ld8 v0 = [vp1], 16 C M01
ld8 v1 = [vp2], 16 C M01
cmp.CND p8, p0 = w2, u2 C M I
-.mmi; st8 [rp1] = w0, 16 C M23
+}{.mmi; st8 [rp1] = w0, 16 C M23
st8 [rp2] = w1, 16 C M23
cmp.CND p9, p0 = w3, u3 C M I
;;
+}
L(lo0):
-.mmi; ld8 u0 = [up1], 16 C M01
+ {.mmi; ld8 u0 = [up1], 16 C M01
ld8 u1 = [up2], 16 C M01
(p7) cmpeqor p8, p0 = LIM, w2 C M I
-.mmi; and x0 = v0, cnd C M I
+}{.mmi; and x0 = v0, cnd C M I
and x1 = v1, cnd C M I
(p7) add w2 = INCR, w2 C M I
;;
-.mmi; ADDSUB w0 = u0, x0 C M I
+}{.mmi; ADDSUB w0 = u0, x0 C M I
(p8) cmpeqor p9, p0 = LIM, w3 C M I
(p8) add w3 = INCR, w3 C M I
-.mmb; ADDSUB w1 = u1, x1 C M I
+}{.mmb; ADDSUB w1 = u1, x1 C M I
lfetch [vpadv], 32
br.cloop.dptk L(top) C B
;;
+}
C *** MAIN LOOP END ***
L(end):
-.mmi; st8 [rp1] = w2, 16 C M23
+ {.mmi; st8 [rp1] = w2, 16 C M23
st8 [rp2] = w3, 16 C M23
cmp.CND p6, p0 = w0, u0 C M I
;;
+}
L(e2):
-.mmi; cmp.CND p7, p0 = w1, u1 C M I
+ {.mmi; cmp.CND p7, p0 = w1, u1 C M I
(p9) cmpeqor p6, p0 = LIM, w0 C M I
(p9) add w0 = INCR, w0 C M I
;;
-.mmi; mov r8 = 0 C M I
+}{.mmi; mov r8 = 0 C M I
(p6) cmpeqor p7, p0 = LIM, w1 C M I
(p6) add w1 = INCR, w1 C M I
;;
-.mmi; st8 [rp1] = w0, 16 C M23
+}{.mmi; st8 [rp1] = w0, 16 C M23
st8 [rp2] = w1, 16 C M23
mov ar.lc = r2 C I0
+}
L(e1):
-.mmb; nop 0
+ {.mmb; nop 0
(p7) mov r8 = 1 C M I
br.ret.sptk.many b0 C B
+}
EPILOGUE()
ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/copyd.asm
index b94a1af3624..b94a1af3624 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/copyi.asm
index 49ed192021a..49ed192021a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/dive_1.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/dive_1.asm
index 5e4a273530c..5e4a273530c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/dive_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/dive_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/divrem_1.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/divrem_1.asm
index e8878209db7..e8878209db7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/divrem_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/divrem_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/divrem_2.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/divrem_2.asm
index 9864311278c..9864311278c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/divrem_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/divrem_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/gcd_1.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/gcd_1.asm
index 28e9a63ca39..3afabd706fa 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/gcd_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/gcd_1.asm
@@ -3,7 +3,7 @@ dnl Itanium-2 mpn_gcd_1 -- mpn by 1 gcd.
dnl Contributed to the GNU project by Kevin Ryde, innerloop by Torbjorn
dnl Granlund.
-dnl Copyright 2002-2005, 2012, 2013 Free Software Foundation, Inc.
+dnl Copyright 2002-2005, 2012, 2013, 2015 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -103,12 +103,13 @@ C ctz_table[n] is the number of trailing zeros on n, or MAXSHIFT if n==0.
deflit(MAXSHIFT, 7)
deflit(MASK, eval((m4_lshift(1,MAXSHIFT))-1))
- .section ".rodata"
+C .section ".rodata"
+ .rodata
ALIGN(m4_lshift(1,MAXSHIFT)) C align table to allow using dep
ctz_table:
- .byte MAXSHIFT
+ data1 MAXSHIFT
forloop(i,1,MASK,
-` .byte m4_count_trailing_zeros(i)
+` data1 m4_count_trailing_zeros(i)
')
PROLOGUE(mpn_gcd_1)
@@ -132,95 +133,98 @@ define(out_divisor, r42)
define(out_carry, r43) define(outputs, 4)
.prologue
-{ .mmi;
+ {.mmi;
ifdef(`HAVE_ABI_32',
` addp4 r9 = 0, xp_orig define(xp,r9)', C M0
` define(xp,xp_orig)')
.save ar.pfs, save_pfs
alloc save_pfs = ar.pfs, inputs, locals, outputs, 0 C M2
.save rp, save_rp
- mov save_rp = b0 C I0
-}{ .body
- add r10 = -1, y C M3 y-1
-} ;;
-
-{ .mmi; ld8 x = [xp] C M0 x = xp[0] if no modexact
- ld8 x_orig = [xp] C M1 orig x for common twos
- cmp.ne p6,p0 = 1, xsize C I0
-}{ .mmi; andcm y_twos = r10, y C M2 (y-1)&~y
- mov out_xp = xp_orig C M3
- mov out_xsize = xsize C I1
-} ;;
-
- mov out_carry = 0
-
- popcnt y_twos = y_twos C I0 y twos
- ;;
-
-{ .mmi; add x_orig_one = -1, x_orig C M0 orig x-1
- shr.u out_divisor = y, y_twos C I0 y without twos
-}{ shr.u y = y, y_twos C I1 y without twos
+ mov save_rp = b0 C I0
+}{.mbb; .body
+ add r10 = -1, y C M3 y-1
+ nop.b 0 C B0
+ nop.b 0 C B1
+ ;;
+
+}{.mmi; ld8 x = [xp] C M0 x = xp[0] if no modexact
+ ld8 x_orig = [xp] C M1 orig x for common twos
+ cmp.ne p6,p0 = 1, xsize C I0
+}{.mmi; andcm y_twos = r10, y C M2 (y-1)&~y
+ mov out_xp = xp_orig C M3
+ mov out_xsize = xsize C I1
+ ;;
+}{.mmi; mov out_carry = 0 C M0
+ nop.m 0 C M1
+ popcnt y_twos = y_twos C I0 y twos
+ ;;
+}{.mmi; add x_orig_one = -1, x_orig C M0 orig x-1
+ nop.m 0 C M1
+ shr.u out_divisor = y, y_twos C I0 y without twos
+}{.mib; nop.m 0 C M2
+ shr.u y = y, y_twos C I1 y without twos
(p6) br.call.sptk.many b0 = mpn_modexact_1c_odd C if xsize>1
-} ;;
-
- C modexact can leave x==0
-{ .mmi; cmp.eq p6,p0 = 0, x C M0 if {xp,xsize} % y == 0
+ ;;
+}
+ C modexact can leave x==0
+ {.mmi; cmp.eq p6,p0 = 0, x C M0 if {xp,xsize} % y == 0
andcm x_orig = x_orig_one, x_orig C M1 orig (x-1)&~x
- add r9 = -1, x C I0 x-1
-} ;;
-
-{ .mmi; andcm r9 = r9, x C M0 (x-1)&~x
- mov b0 = save_rp C I0
-} ;;
-
- popcnt x_orig = x_orig C I0 orig x twos
- popcnt r9 = r9 C I0 x twos
- ;;
-
-{ cmp.lt p7,p0 = x_orig, y_twos C M0 orig x_twos < y_twos
- shr.u x = x, r9 C I0 x odd
-} ;;
-
-{ (p7) mov y_twos = x_orig C M0 common twos
+ add r9 = -1, x C I0 x-1
+ ;;
+}{.mmi; andcm r9 = r9, x C M0 (x-1)&~x
+ nop.m 0 C M1
+ mov b0 = save_rp C I0
+ ;;
+}{.mii; nop.m 0 C M0
+ popcnt x_orig = x_orig C I0 orig x twos
+ popcnt r9 = r9 C I0 x twos
+ ;;
+}{.mmi; cmp.lt p7,p0 = x_orig, y_twos C M0 orig x_twos < y_twos
+ addl r22 = @ltoff(ctz_table), r1
+ shr.u x = x, r9 C I0 x odd
+ ;;
+}{.mib;
+ (p7) mov y_twos = x_orig C M0 common twos
add r10 = -1, y C I0 y-1
(p6) br.dpnt.few L(done_y) C B0 x%y==0 then result y
-} ;;
-
- addl r22 = @ltoffx(ctz_table#), r1
+ ;;
+}
mov r25 = m4_lshift(MASK, MAXSHIFT)
- ;;
- ld8.mov r22 = [r22], ctz_table#
+ ld8 r22 = [r22]
br L(ent)
+ ;;
- ALIGN(32)
-L(top): .pred.rel "mutex", p6,p7
-.mmi; (p7) mov y = x
+ ALIGN(32)
+L(top):
+ .pred.rel "mutex", p6,p7
+ {.mmi; (p7) mov y = x
(p6) sub x = x, y
dep r21 = r19, r22, 0, MAXSHIFT C concat(table,lowbits)
-.mmi; and r20 = MASK, r19
+}{.mmi; and r20 = MASK, r19
(p7) mov x = r19
nop 0
- ;;
+ ;;
+}
L(mid):
-.mmb; ld1 r16 = [r21]
+{.mmb; ld1 r16 = [r21]
cmp.eq p10,p0 = 0, r20
(p10) br.spnt.few.clr L(shift_alot)
- ;;
-.mmi; nop 0
+ ;;
+}{.mmi; nop 0
nop 0
shr.u x = x, r16
- ;;
+ ;;
+}
L(ent):
-.mmi; sub r19 = y, x
+ {.mmi; sub r19 = y, x
cmp.gtu p6,p7 = x, y
cmp.ne p8,p0 = x, y
-.mmb; nop 0
+}{.mmb; nop 0
nop 0
(p8) br.sptk.few.clr L(top)
+}
-
- C result is y
-L(done_y):
+L(done_y): C result is y
mov ar.pfs = save_pfs C I0
shl r8 = y, y_twos C I common factors of 2
br.ret.sptk.many b0
@@ -228,7 +232,7 @@ L(done_y):
L(shift_alot):
and r20 = x, r25
shr.u x = x, MAXSHIFT
- ;;
+ ;;
dep r21 = x, r22, 0, MAXSHIFT
br L(mid)
EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-src/mpn/ia64/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/ia64/gmp-mparam.h
new file mode 100644
index 00000000000..cda7573a1bd
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/gmp-mparam.h
@@ -0,0 +1,204 @@
+/* gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 2000-2005, 2009-2011, 2014, 2015 Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 64
+#define GMP_LIMB_BYTES 8
+
+/* 900MHz Itanium2 (titanic.gmplib.org) */
+/* FFT tuning limit = 60 M */
+/* Generated by tuneup.c, 2015-10-11, gcc 4.4 */
+
+#define MOD_1_1P_METHOD 2
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 3
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 26
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 10
+#define USE_PREINV_DIVREM_1 1 /* native */
+#define DIV_QR_1N_PI1_METHOD 1
+#define DIV_QR_1_NORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_2_PI2_THRESHOLD 12
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD MP_SIZE_T_MAX /* never */
+
+#define MUL_TOOM22_THRESHOLD 39
+#define MUL_TOOM33_THRESHOLD 129
+#define MUL_TOOM44_THRESHOLD 214
+#define MUL_TOOM6H_THRESHOLD 318
+#define MUL_TOOM8H_THRESHOLD 430
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 121
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 145
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 124
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 151
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 201
+
+#define SQR_BASECASE_THRESHOLD 11
+#define SQR_TOOM2_THRESHOLD 85
+#define SQR_TOOM3_THRESHOLD 131
+#define SQR_TOOM4_THRESHOLD 494
+#define SQR_TOOM6_THRESHOLD 0 /* always */
+#define SQR_TOOM8_THRESHOLD 0 /* always */
+
+#define MULMID_TOOM42_THRESHOLD 98
+
+#define MULMOD_BNM1_THRESHOLD 23
+#define SQRMOD_BNM1_THRESHOLD 25
+
+#define MUL_FFT_MODF_THRESHOLD 500 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 500, 5}, { 29, 6}, { 35, 7}, { 18, 6}, \
+ { 37, 7}, { 19, 6}, { 39, 7}, { 33, 8}, \
+ { 17, 7}, { 37, 8}, { 19, 7}, { 39, 8}, \
+ { 21, 7}, { 43, 8}, { 37, 9}, { 19, 8}, \
+ { 43, 9}, { 23, 8}, { 49, 9}, { 27, 8}, \
+ { 57, 9}, { 43,10}, { 23, 9}, { 59,10}, \
+ { 31, 9}, { 71,10}, { 39, 9}, { 87,10}, \
+ { 47, 9}, { 99,10}, { 55,11}, { 31,10}, \
+ { 87,11}, { 47,10}, { 111,12}, { 31,11}, \
+ { 63,10}, { 143,11}, { 79,10}, { 167,11}, \
+ { 95,10}, { 191,11}, { 111,12}, { 63,11}, \
+ { 143,10}, { 287,11}, { 159,12}, { 95,11}, \
+ { 191,10}, { 399,11}, { 207,10}, { 431,13}, \
+ { 63,12}, { 127,11}, { 271,10}, { 543,11}, \
+ { 287,10}, { 575,11}, { 303,12}, { 159,11}, \
+ { 335,10}, { 671,11}, { 367,12}, { 191,11}, \
+ { 431,12}, { 223,13}, { 127,12}, { 255,11}, \
+ { 543,12}, { 287,11}, { 607,12}, { 351,11}, \
+ { 703,13}, { 191,12}, { 415,11}, { 863,12}, \
+ { 447,14}, { 127,13}, { 255,12}, { 607,13}, \
+ { 319,12}, { 735,13}, { 383,12}, { 863,13}, \
+ { 447,12}, { 927,11}, { 1855,12}, { 959,14}, \
+ { 255,13}, { 575,12}, { 1247,13}, { 703,14}, \
+ { 383,13}, { 831,12}, { 1727,13}, { 895,12}, \
+ { 1791,15}, { 255,14}, { 511,13}, { 1087,12}, \
+ { 2175,13}, { 1151,14}, { 639,13}, { 1343,12}, \
+ { 2687,13}, { 1471,14}, { 767,13}, { 1599,12}, \
+ { 3199,13}, { 1663,14}, { 895,13}, { 1855,15}, \
+ { 511,14}, { 1023,13}, { 2175,14}, { 1151,13}, \
+ { 2431,14}, { 1279,13}, { 2687,14}, { 1407,15}, \
+ { 767,14}, { 1663,13}, { 3455,14}, { 1791,16}, \
+ { 511,15}, { 1023,14}, { 2431,15}, { 1279,14}, \
+ { 2943,15}, { 1535,14}, { 3455,15}, { 1791,14}, \
+ { 16384,15}, { 32768,16}, { 65536,17}, { 131072,18}, \
+ { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
+ {4194304,23}, {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 142
+#define MUL_FFT_THRESHOLD 5760
+
+#define SQR_FFT_MODF_THRESHOLD 464 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 464, 5}, { 29, 6}, { 15, 5}, { 31, 6}, \
+ { 35, 7}, { 18, 6}, { 37, 7}, { 33, 8}, \
+ { 17, 7}, { 37, 8}, { 19, 7}, { 40, 8}, \
+ { 29, 9}, { 15, 8}, { 37, 9}, { 19, 8}, \
+ { 43, 9}, { 23, 8}, { 49, 9}, { 27, 8}, \
+ { 57, 9}, { 43,10}, { 23, 9}, { 55,10}, \
+ { 31, 9}, { 71,10}, { 39, 9}, { 83,10}, \
+ { 47, 9}, { 99,10}, { 55,11}, { 31,10}, \
+ { 87,11}, { 47,10}, { 111,12}, { 31,11}, \
+ { 63,10}, { 135,11}, { 79,10}, { 167,11}, \
+ { 95,10}, { 191,11}, { 111,12}, { 63,11}, \
+ { 143,10}, { 287,11}, { 159,10}, { 319,12}, \
+ { 95,11}, { 191,10}, { 399,11}, { 207,10}, \
+ { 415,13}, { 63,12}, { 127,11}, { 255,10}, \
+ { 511,11}, { 271,10}, { 543,11}, { 287,10}, \
+ { 575,11}, { 303,12}, { 159,11}, { 335,10}, \
+ { 671,11}, { 367,10}, { 735,12}, { 191,11}, \
+ { 399,10}, { 799,11}, { 431,12}, { 223,11}, \
+ { 463,13}, { 127,12}, { 255,11}, { 543,12}, \
+ { 287,11}, { 607,12}, { 319,11}, { 671,12}, \
+ { 351,11}, { 735,13}, { 191,12}, { 415,11}, \
+ { 863,12}, { 447,14}, { 127,13}, { 255,12}, \
+ { 607,13}, { 319,12}, { 735,13}, { 383,12}, \
+ { 863,13}, { 447,12}, { 959,14}, { 255,13}, \
+ { 575,12}, { 1183,13}, { 703,14}, { 383,13}, \
+ { 831,12}, { 1663,13}, { 895,12}, { 1791,15}, \
+ { 255,14}, { 511,13}, { 1087,12}, { 2175,13}, \
+ { 1151,14}, { 639,13}, { 1343,12}, { 2687,13}, \
+ { 1407,14}, { 767,13}, { 1599,12}, { 3199,13}, \
+ { 1663,14}, { 895,13}, { 1855,15}, { 511,14}, \
+ { 1023,13}, { 2175,14}, { 1151,13}, { 2431,14}, \
+ { 1279,13}, { 2687,14}, { 1407,15}, { 767,14}, \
+ { 1663,13}, { 3327,14}, { 1791,16}, { 511,15}, \
+ { 1023,14}, { 2431,15}, { 1279,14}, { 2943,15}, \
+ { 1535,14}, { 3327,15}, { 1791,14}, { 16384,15}, \
+ { 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
+ { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
+ {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 149
+#define SQR_FFT_THRESHOLD 4032
+
+#define MULLO_BASECASE_THRESHOLD 36
+#define MULLO_DC_THRESHOLD 0 /* never mpn_mullo_basecase */
+#define MULLO_MUL_N_THRESHOLD 11278
+#define SQRLO_BASECASE_THRESHOLD 0 /* always */
+#define SQRLO_DC_THRESHOLD 11
+#define SQRLO_SQR_THRESHOLD 7916
+
+#define DC_DIV_QR_THRESHOLD 59
+#define DC_DIVAPPR_Q_THRESHOLD 222
+#define DC_BDIV_QR_THRESHOLD 94
+#define DC_BDIV_Q_THRESHOLD 264
+
+#define INV_MULMOD_BNM1_THRESHOLD 78
+#define INV_NEWTON_THRESHOLD 133
+#define INV_APPR_THRESHOLD 133
+
+#define BINV_NEWTON_THRESHOLD 250
+#define REDC_1_TO_REDC_2_THRESHOLD 0 /* always */
+#define REDC_2_TO_REDC_N_THRESHOLD 148
+
+#define MU_DIV_QR_THRESHOLD 1187
+#define MU_DIVAPPR_Q_THRESHOLD 1120
+#define MUPI_DIV_QR_THRESHOLD 0 /* always */
+#define MU_BDIV_QR_THRESHOLD 1210
+#define MU_BDIV_Q_THRESHOLD 1470
+
+#define POWM_SEC_TABLE 1,34,321,1985
+
+#define GET_STR_DC_THRESHOLD 15
+#define GET_STR_PRECOMPUTE_THRESHOLD 21
+#define SET_STR_DC_THRESHOLD 1216
+#define SET_STR_PRECOMPUTE_THRESHOLD 3170
+
+#define FAC_DSC_THRESHOLD 746
+#define FAC_ODD_THRESHOLD 0 /* always */
+
+#define MATRIX22_STRASSEN_THRESHOLD 24
+#define HGCD_THRESHOLD 117
+#define HGCD_APPR_THRESHOLD 111
+#define HGCD_REDUCE_THRESHOLD 3389
+#define GCD_DC_THRESHOLD 460
+#define GCDEXT_DC_THRESHOLD 411
+#define JACOBI_BASE_METHOD 2
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/hamdist.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/hamdist.asm
index 477df4cd718..477df4cd718 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/hamdist.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/hamdist.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/ia64-defs.m4 b/Build/source/libs/gmp/gmp-src/mpn/ia64/ia64-defs.m4
index f71d280b179..f71d280b179 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/ia64-defs.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/ia64-defs.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/invert_limb.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/invert_limb.asm
index 5effdda815c..5effdda815c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/invert_limb.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/invert_limb.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/logops_n.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/logops_n.asm
index e4a2f61cce5..e4a2f61cce5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/logops_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/logops_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/lorrshift.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/lorrshift.asm
index 694aaf0f400..694aaf0f400 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/lorrshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/lorrshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/lshiftc.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/lshiftc.asm
index c4024864846..e8cec872956 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/lshiftc.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/lshiftc.asm
@@ -340,8 +340,8 @@ L(gt3):
}{.mmi; ld8 r16 = [up], UPD
nop 0
BSH r21 = r17, tnc
- ;; }
- {.mmi nop 0
+ ;;
+}{.mmi; nop 0
nop 0
FSH r22 = r17, cnt
}{.mib; ld8 r17 = [up], UPD
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/mod_34lsub1.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/mod_34lsub1.asm
index edf3602c4c0..77891178f2b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/mod_34lsub1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/mod_34lsub1.asm
@@ -102,60 +102,60 @@ ifelse(0,1,`
L(gt1):
-.mmi; nop.m 0
+ {.mmi; nop.m 0
mov a0 = 0
add n = -2, n
-.mmi; mov c0 = 0
+}{.mmi; mov c0 = 0
mov c1 = 0
mov c2 = 0
;;
-.mmi; ld8 u1 = [up], 8
+}{.mmi; ld8 u1 = [up], 8
mov a1 = 0
cmp.ltu p6, p0 = r0, r0 C clear p6
-.mmb; cmp.gt p9, p0 = 3, n
+}{.mmb; cmp.gt p9, p0 = 3, n
mov a2 = 0
(p9) br.cond.dptk L(end)
;;
-
+}
ALIGN(32)
L(top):
-.mmi; ld8 u2 = [up], 8
+ {.mmi; ld8 u2 = [up], 8
(p6) add c0 = 1, c0
cmp.ltu p7, p0 = a0, u0
-.mmb; sub a0 = a0, u0
+}{.mmb; sub a0 = a0, u0
add n = -3, n
nop.b 0
;;
-.mmi; ld8 u0 = [up], 8
+}{.mmi; ld8 u0 = [up], 8
(p7) add c1 = 1, c1
cmp.ltu p8, p0 = a1, u1
-.mmb; sub a1 = a1, u1
+}{.mmb; sub a1 = a1, u1
cmp.le p9, p0 = 3, n
nop.b 0
;;
-.mmi; ld8 u1 = [up], 8
+}{.mmi; ld8 u1 = [up], 8
(p8) add c2 = 1, c2
cmp.ltu p6, p0 = a2, u2
-.mmb; sub a2 = a2, u2
+}{.mmb; sub a2 = a2, u2
nop.m 0
dnl br.cloop.dptk L(top)
(p9) br.cond.dptk L(top)
;;
-
+}
L(end):
cmp.eq p10, p0 = 0, n
cmp.eq p11, p0 = 1, n
(p10) br L(0)
L(2):
-.mmi; ld8 u2 = [up], 8
+ {.mmi; ld8 u2 = [up], 8
(p6) add c0 = 1, c0
cmp.ltu p7, p0 = a0, u0
-.mmb; sub a0 = a0, u0
+}{.mmb; sub a0 = a0, u0
nop.m 0
(p11) br L(1)
;;
- ld8 u0 = [up], 8
+} ld8 u0 = [up], 8
(p7) add c1 = 1, c1
cmp.ltu p8, p0 = a1, u1
sub a1 = a1, u1
@@ -214,13 +214,14 @@ C | | | | |
dep.z r14 = c1, 16, 32 C 48 bits
dep.z r15 = c2, 32, 16 C 48 bits
;;
-.mmi; add r24 = r24, r25
+ {.mmi; add r24 = r24, r25
add r26 = r26, r27
add r28 = r28, r29
-.mmi; add r10 = r10, r11
+}{.mmi; add r10 = r10, r11
add r30 = r30, r31
add r14 = r14, r15
;;
+}
movl r8 = 0xffffffffffff0
add r24 = r24, r26
add r10 = r10, r30
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/mode1o.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/mode1o.asm
index 14d5e816029..14d5e816029 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/mode1o.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/mode1o.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/mul_1.asm
index 21bf6d0e14f..21bf6d0e14f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/mul_2.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/mul_2.asm
index 2bbce972673..5343f64427e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/mul_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/mul_2.asm
@@ -103,36 +103,37 @@ PROLOGUE(mpn_mul_2)
.body
ifdef(`HAVE_ABI_32',`
-.mmi; addp4 rp = 0, rp C M I
+ {.mmi; addp4 rp = 0, rp C M I
addp4 up = 0, up C M I
addp4 vp = 0, vp C M I
-.mmi; nop 1
+}{.mmi; nop 1
nop 1
zxt4 n = n C I
- ;;')
+ ;;
+}')
-.mmi; ldf8 ux = [up], 8 C M
+ {.mmi; ldf8 ux = [up], 8 C M
ldf8 v0 = [vp], 8 C M
mov r2 = ar.lc C I0
-.mmi; nop 1 C M
+}{.mmi; nop 1 C M
and r14 = 3, n C M I
add n = -2, n C M I
;;
-.mmi; ldf8 uy = [up], 8 C M
+}{.mmi; ldf8 uy = [up], 8 C M
ldf8 v1 = [vp] C M
shr.u n = n, 2 C I0
-.mmi; nop 1 C M
+}{.mmi; nop 1 C M
cmp.eq p10, p0 = 1, r14 C M I
cmp.eq p11, p0 = 2, r14 C M I
;;
-.mmi; nop 1 C M
+}{.mmi; nop 1 C M
cmp.eq p12, p0 = 3, r14 C M I
mov ar.lc = n C I0
-.bbb; (p10) br.dptk L(b01) C B
+}{.bbb; (p10) br.dptk L(b01) C B
(p11) br.dptk L(b10) C B
(p12) br.dptk L(b11) C B
;;
-
+}
ALIGN(32)
L(b00): ldf8 u_1 = [up], 8
mov acc1_2 = 0
@@ -268,7 +269,7 @@ L(b10): br.cloop.dptk L(gt2)
cmp.ltu p8, p9 = s0, pr1_1
sub r31 = -1, acc1_1
;;
- .pred.rel "mutex", p8, p9
+ .pred.rel "mutex", p8, p9
(p8) add acc0 = pr1_2, acc1_1, 1
(p9) add acc0 = pr1_2, acc1_1
(p8) cmp.leu p10, p0 = r31, pr1_2
@@ -305,13 +306,13 @@ L(gt2): ldf8 u_3 = [up], 8
ldf8 u_2 = [up], 8
getfsig pr1_1 = fp1b_1
;;
-.mfi; getfsig acc1_1 = fp2a_1
+ {.mfi; getfsig acc1_1 = fp2a_1
xma.l fp0b_0 = u_0, v0, f0
cmp.ne p8, p9 = r0, r0
-.mfb; cmp.ne p12, p13 = r0, r0
+}{.mfb; cmp.ne p12, p13 = r0, r0
xma.hu fp1a_0 = u_0, v0, f0
br L(10)
-
+}
ALIGN(32)
L(b11): mov acc1_3 = 0
@@ -375,8 +376,8 @@ L(gt3): xma.l fp0b_0 = ux, v0, f0
C *** MAIN LOOP START ***
ALIGN(32)
L(top): C 00
- .pred.rel "mutex", p8, p9
- .pred.rel "mutex", p12, p13
+ .pred.rel "mutex", p8, p9
+ .pred.rel "mutex", p12, p13
ldf8 u_3 = [up], 8
getfsig pr1_2 = fp1b_2
(p8) cmp.leu p6, p7 = acc0, pr0_1
@@ -384,7 +385,7 @@ L(top): C 00
(p12) cmp.leu p10, p11 = s0, pr1_0
(p13) cmp.ltu p10, p11 = s0, pr1_0
;; C 01
- .pred.rel "mutex", p6, p7
+ .pred.rel "mutex", p6, p7
getfsig acc1_2 = fp2a_2
st8 [rp] = s0, 8
xma.l fp0b_1 = u_1, v0, f0
@@ -393,7 +394,7 @@ L(top): C 00
xma.hu fp1a_1 = u_1, v0, f0
;; C 02
L(01):
- .pred.rel "mutex", p10, p11
+ .pred.rel "mutex", p10, p11
getfsig pr0_0 = fp0b_0
xma.l fp1b_0 = u_0, v1, fp1a_0
(p10) add s0 = pr1_1, acc0, 1
@@ -401,8 +402,8 @@ L(01):
xma.hu fp2a_0 = u_0, v1, fp1a_0
nop 1
;; C 03
- .pred.rel "mutex", p6, p7
- .pred.rel "mutex", p10, p11
+ .pred.rel "mutex", p6, p7
+ .pred.rel "mutex", p10, p11
ldf8 u_0 = [up], 8
getfsig pr1_3 = fp1b_3
(p6) cmp.leu p8, p9 = acc0, pr0_2
@@ -410,7 +411,7 @@ L(01):
(p10) cmp.leu p12, p13 = s0, pr1_1
(p11) cmp.ltu p12, p13 = s0, pr1_1
;; C 04
- .pred.rel "mutex", p8, p9
+ .pred.rel "mutex", p8, p9
getfsig acc1_3 = fp2a_3
st8 [rp] = s0, 8
xma.l fp0b_2 = u_2, v0, f0
@@ -419,7 +420,7 @@ L(01):
xma.hu fp1a_2 = u_2, v0, f0
;; C 05
L(00):
- .pred.rel "mutex", p12, p13
+ .pred.rel "mutex", p12, p13
getfsig pr0_1 = fp0b_1
xma.l fp1b_1 = u_1, v1, fp1a_1
(p12) add s0 = pr1_2, acc0, 1
@@ -427,8 +428,8 @@ L(00):
xma.hu fp2a_1 = u_1, v1, fp1a_1
nop 1
;; C 06
- .pred.rel "mutex", p8, p9
- .pred.rel "mutex", p12, p13
+ .pred.rel "mutex", p8, p9
+ .pred.rel "mutex", p12, p13
ldf8 u_1 = [up], 8
getfsig pr1_0 = fp1b_0
(p8) cmp.leu p6, p7 = acc0, pr0_3
@@ -436,7 +437,7 @@ L(00):
(p12) cmp.leu p10, p11 = s0, pr1_2
(p13) cmp.ltu p10, p11 = s0, pr1_2
;; C 07
- .pred.rel "mutex", p6, p7
+ .pred.rel "mutex", p6, p7
getfsig acc1_0 = fp2a_0
st8 [rp] = s0, 8
xma.l fp0b_3 = u_3, v0, f0
@@ -445,7 +446,7 @@ L(00):
xma.hu fp1a_3 = u_3, v0, f0
;; C 08
L(11):
- .pred.rel "mutex", p10, p11
+ .pred.rel "mutex", p10, p11
getfsig pr0_2 = fp0b_2
xma.l fp1b_2 = u_2, v1, fp1a_2
(p10) add s0 = pr1_3, acc0, 1
@@ -453,8 +454,8 @@ L(11):
xma.hu fp2a_2 = u_2, v1, fp1a_2
nop 1
;; C 09
- .pred.rel "mutex", p6, p7
- .pred.rel "mutex", p10, p11
+ .pred.rel "mutex", p6, p7
+ .pred.rel "mutex", p10, p11
ldf8 u_2 = [up], 8
getfsig pr1_1 = fp1b_1
(p6) cmp.leu p8, p9 = acc0, pr0_0
@@ -462,7 +463,7 @@ L(11):
(p10) cmp.leu p12, p13 = s0, pr1_3
(p11) cmp.ltu p12, p13 = s0, pr1_3
;; C 10
- .pred.rel "mutex", p8, p9
+ .pred.rel "mutex", p8, p9
getfsig acc1_1 = fp2a_1
st8 [rp] = s0, 8
xma.l fp0b_0 = u_0, v0, f0
@@ -471,7 +472,7 @@ L(11):
xma.hu fp1a_0 = u_0, v0, f0
;; C 11
L(10):
- .pred.rel "mutex", p12, p13
+ .pred.rel "mutex", p12, p13
getfsig pr0_3 = fp0b_3
xma.l fp1b_3 = u_3, v1, fp1a_3
(p12) add s0 = pr1_0, acc0, 1
@@ -481,140 +482,144 @@ L(10):
;;
C *** MAIN LOOP END ***
- .pred.rel "mutex", p8, p9
- .pred.rel "mutex", p12, p13
-.mmi; getfsig pr1_2 = fp1b_2
+ .pred.rel "mutex", p8, p9
+ .pred.rel "mutex", p12, p13
+ {.mmi; getfsig pr1_2 = fp1b_2
st8 [rp] = s0, 8
(p8) cmp.leu p6, p7 = acc0, pr0_1
-.mmi; (p9) cmp.ltu p6, p7 = acc0, pr0_1
+}{.mmi; (p9) cmp.ltu p6, p7 = acc0, pr0_1
(p12) cmp.leu p10, p11 = s0, pr1_0
(p13) cmp.ltu p10, p11 = s0, pr1_0
;;
- .pred.rel "mutex", p6, p7
-.mfi; getfsig acc1_2 = fp2a_2
+} .pred.rel "mutex", p6, p7
+ {.mfi; getfsig acc1_2 = fp2a_2
xma.l fp0b_1 = u_1, v0, f0
nop 1
-.mmf; (p6) add acc0 = pr0_2, acc1_0, 1
+}{.mmf; (p6) add acc0 = pr0_2, acc1_0, 1
(p7) add acc0 = pr0_2, acc1_0
xma.hu fp1a_1 = u_1, v0, f0
;;
+}
L(cj5):
- .pred.rel "mutex", p10, p11
-.mfi; getfsig pr0_0 = fp0b_0
+ .pred.rel "mutex", p10, p11
+ {.mfi; getfsig pr0_0 = fp0b_0
xma.l fp1b_0 = u_0, v1, fp1a_0
(p10) add s0 = pr1_1, acc0, 1
-.mfi; (p11) add s0 = pr1_1, acc0
+}{.mfi; (p11) add s0 = pr1_1, acc0
xma.hu fp2a_0 = u_0, v1, fp1a_0
nop 1
;;
- .pred.rel "mutex", p6, p7
- .pred.rel "mutex", p10, p11
-.mmi; getfsig pr1_3 = fp1b_3
+} .pred.rel "mutex", p6, p7
+ .pred.rel "mutex", p10, p11
+ {.mmi; getfsig pr1_3 = fp1b_3
st8 [rp] = s0, 8
(p6) cmp.leu p8, p9 = acc0, pr0_2
-.mmi; (p7) cmp.ltu p8, p9 = acc0, pr0_2
+}{.mmi; (p7) cmp.ltu p8, p9 = acc0, pr0_2
(p10) cmp.leu p12, p13 = s0, pr1_1
(p11) cmp.ltu p12, p13 = s0, pr1_1
;;
- .pred.rel "mutex", p8, p9
-.mfi; getfsig acc1_3 = fp2a_3
+} .pred.rel "mutex", p8, p9
+ {.mfi; getfsig acc1_3 = fp2a_3
xma.l fp0b_2 = u_2, v0, f0
nop 1
-.mmf; (p8) add acc0 = pr0_3, acc1_1, 1
+}{.mmf; (p8) add acc0 = pr0_3, acc1_1, 1
(p9) add acc0 = pr0_3, acc1_1
xma.hu fp1a_2 = u_2, v0, f0
;;
+}
L(cj4):
- .pred.rel "mutex", p12, p13
-.mfi; getfsig pr0_1 = fp0b_1
+ .pred.rel "mutex", p12, p13
+ {.mfi; getfsig pr0_1 = fp0b_1
xma.l fp1b_1 = u_1, v1, fp1a_1
(p12) add s0 = pr1_2, acc0, 1
-.mfi; (p13) add s0 = pr1_2, acc0
+}{.mfi; (p13) add s0 = pr1_2, acc0
xma.hu fp2a_1 = u_1, v1, fp1a_1
nop 1
;;
- .pred.rel "mutex", p8, p9
- .pred.rel "mutex", p12, p13
-.mmi; getfsig pr1_0 = fp1b_0
+} .pred.rel "mutex", p8, p9
+ .pred.rel "mutex", p12, p13
+ {.mmi; getfsig pr1_0 = fp1b_0
st8 [rp] = s0, 8
(p8) cmp.leu p6, p7 = acc0, pr0_3
-.mmi; (p9) cmp.ltu p6, p7 = acc0, pr0_3
+}{.mmi; (p9) cmp.ltu p6, p7 = acc0, pr0_3
(p12) cmp.leu p10, p11 = s0, pr1_2
(p13) cmp.ltu p10, p11 = s0, pr1_2
;;
- .pred.rel "mutex", p6, p7
-.mmi; getfsig acc1_0 = fp2a_0
+} .pred.rel "mutex", p6, p7
+ {.mmi; getfsig acc1_0 = fp2a_0
(p6) add acc0 = pr0_0, acc1_2, 1
(p7) add acc0 = pr0_0, acc1_2
;;
+}
L(cj3):
- .pred.rel "mutex", p10, p11
-.mfi; getfsig pr0_2 = fp0b_2
+ .pred.rel "mutex", p10, p11
+ {.mfi; getfsig pr0_2 = fp0b_2
xma.l fp1b_2 = u_2, v1, fp1a_2
(p10) add s0 = pr1_3, acc0, 1
-.mfi; (p11) add s0 = pr1_3, acc0
+}{.mfi; (p11) add s0 = pr1_3, acc0
xma.hu fp2a_2 = u_2, v1, fp1a_2
nop 1
;;
- .pred.rel "mutex", p6, p7
- .pred.rel "mutex", p10, p11
-.mmi; getfsig pr1_1 = fp1b_1
+} .pred.rel "mutex", p6, p7
+ .pred.rel "mutex", p10, p11
+ {.mmi; getfsig pr1_1 = fp1b_1
st8 [rp] = s0, 8
(p6) cmp.leu p8, p9 = acc0, pr0_0
-.mmi; (p7) cmp.ltu p8, p9 = acc0, pr0_0
+}{.mmi; (p7) cmp.ltu p8, p9 = acc0, pr0_0
(p10) cmp.leu p12, p13 = s0, pr1_3
(p11) cmp.ltu p12, p13 = s0, pr1_3
;;
- .pred.rel "mutex", p8, p9
-.mmi; getfsig acc1_1 = fp2a_1
+} .pred.rel "mutex", p8, p9
+ {.mmi; getfsig acc1_1 = fp2a_1
(p8) add acc0 = pr0_1, acc1_3, 1
(p9) add acc0 = pr0_1, acc1_3
;;
- .pred.rel "mutex", p12, p13
-.mmi; (p12) add s0 = pr1_0, acc0, 1
+} .pred.rel "mutex", p12, p13
+ {.mmi; (p12) add s0 = pr1_0, acc0, 1
(p13) add s0 = pr1_0, acc0
nop 1
;;
- .pred.rel "mutex", p8, p9
- .pred.rel "mutex", p12, p13
-.mmi; getfsig pr1_2 = fp1b_2
+} .pred.rel "mutex", p8, p9
+ .pred.rel "mutex", p12, p13
+ {.mmi; getfsig pr1_2 = fp1b_2
st8 [rp] = s0, 8
(p8) cmp.leu p6, p7 = acc0, pr0_1
-.mmi; (p9) cmp.ltu p6, p7 = acc0, pr0_1
+}{.mmi; (p9) cmp.ltu p6, p7 = acc0, pr0_1
(p12) cmp.leu p10, p11 = s0, pr1_0
(p13) cmp.ltu p10, p11 = s0, pr1_0
;;
- .pred.rel "mutex", p6, p7
-.mmi; getfsig r8 = fp2a_2
+} .pred.rel "mutex", p6, p7
+ {.mmi; getfsig r8 = fp2a_2
(p6) add acc0 = pr0_2, acc1_0, 1
(p7) add acc0 = pr0_2, acc1_0
;;
- .pred.rel "mutex", p10, p11
-.mmi; (p10) add s0 = pr1_1, acc0, 1
+} .pred.rel "mutex", p10, p11
+ {.mmi; (p10) add s0 = pr1_1, acc0, 1
(p11) add s0 = pr1_1, acc0
(p6) cmp.leu p8, p9 = acc0, pr0_2
;;
- .pred.rel "mutex", p10, p11
-.mmi; (p7) cmp.ltu p8, p9 = acc0, pr0_2
+} .pred.rel "mutex", p10, p11
+ {.mmi; (p7) cmp.ltu p8, p9 = acc0, pr0_2
(p10) cmp.leu p12, p13 = s0, pr1_1
(p11) cmp.ltu p12, p13 = s0, pr1_1
;;
- .pred.rel "mutex", p8, p9
-.mmi; st8 [rp] = s0, 8
+} .pred.rel "mutex", p8, p9
+ {.mmi; st8 [rp] = s0, 8
(p8) add acc0 = pr1_2, acc1_1, 1
(p9) add acc0 = pr1_2, acc1_1
;;
- .pred.rel "mutex", p8, p9
-.mmi; (p8) cmp.leu p10, p11 = acc0, pr1_2
+} .pred.rel "mutex", p8, p9
+ {.mmi; (p8) cmp.leu p10, p11 = acc0, pr1_2
(p9) cmp.ltu p10, p11 = acc0, pr1_2
(p12) add acc0 = 1, acc0
;;
-.mmi; st8 [rp] = acc0, 8
+}{.mmi; st8 [rp] = acc0, 8
(p12) cmpeqor p10, p0 = 0, acc0
nop 1
;;
-.mib; (p10) add r8 = 1, r8
+}{.mib; (p10) add r8 = 1, r8
mov ar.lc = r2
br.ret.sptk.many b0
+}
EPILOGUE()
ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/popcount.asm
index c0b5c5c1cfa..c0b5c5c1cfa 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/popcount.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/rsh1aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/rsh1aors_n.asm
index 3c7defb0bae..3c7defb0bae 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/rsh1aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/rsh1aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/sec_tabselect.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/sec_tabselect.asm
index f116ea38435..9b11cde8c2f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/sec_tabselect.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/sec_tabselect.asm
@@ -54,97 +54,95 @@ define(`rp2', `r14')
define(`tp2', `r15')
ASM_START()
- TEXT
- ALIGN(16)
PROLOGUE(mpn_sec_tabselect)
.prologue
.save ar.lc, r2
.body
ifdef(`HAVE_ABI_32',`
-.mmi; addp4 rp = 0, rp C M I
+ {.mmi; addp4 rp = 0, rp C M I
addp4 tp = 0, tp C M I
zxt4 n = n C I
-.mii; nop 0
+}{.mii; nop 0
zxt4 nents = nents C I
zxt4 which = which C I
;;
-')
-.mmi; add rp2 = 8, rp1
+}')
+ {.mmi; add rp2 = 8, rp1
add tp2 = 8, tp1
add r6 = -2, n
;;
-.mmi; cmp.eq p10, p0 = 1, n
+}{.mmi; cmp.eq p10, p0 = 1, n
and r9 = 1, n C set cr0 for use in inner loop
shr.u r6 = r6, 1 C inner loop count
;;
-.mmi; cmp.eq p8, p0 = 0, r9
+}{.mmi; cmp.eq p8, p0 = 0, r9
sub which = nents, which
shl n = n, 3
;;
-
+}
L(outer):
-.mmi cmp.eq p6, p7 = which, nents C are we at the selected table entry?
+ {.mmi; cmp.eq p6, p7 = which, nents C are we at the selected table entry?
nop 0
mov ar.lc = r6 C I0
;;
-.mmb;
+}{.mmb;
(p6) mov mask = -1
(p7) mov mask = 0
(p8) br.dptk L(top) C branch to loop entry if n even
;;
-
-.mmi; ld8 r16 = [tp1], 8
+}{.mmi; ld8 r16 = [tp1], 8
add tp2 = 8, tp2
nop 0
;;
-.mmi; ld8 r18 = [rp1]
+}{.mmi; ld8 r18 = [rp1]
and r16 = r16, mask
nop 0
;;
-.mmi; andcm r18 = r18, mask
+}{.mmi; andcm r18 = r18, mask
;;
or r16 = r16, r18
nop 0
;;
-.mmb; st8 [rp1] = r16, 8
+}{.mmb; st8 [rp1] = r16, 8
add rp2 = 8, rp2
(p10) br.dpnt L(end)
-
+}
ALIGN(32)
L(top):
-.mmi; ld8 r16 = [tp1], 16
+ {.mmi; ld8 r16 = [tp1], 16
ld8 r17 = [tp2], 16
nop 0
;;
-.mmi; ld8 r18 = [rp1]
+}{.mmi; ld8 r18 = [rp1]
and r16 = r16, mask
nop 0
-.mmi; ld8 r19 = [rp2]
+}{.mmi; ld8 r19 = [rp2]
and r17 = r17, mask
nop 0
;;
-.mmi; andcm r18 = r18, mask
+}{.mmi; andcm r18 = r18, mask
andcm r19 = r19, mask
nop 0
;;
-.mmi; or r16 = r16, r18
+}{.mmi; or r16 = r16, r18
or r17 = r17, r19
nop 0
;;
-.mmb; st8 [rp1] = r16, 16
+}{.mmb; st8 [rp1] = r16, 16
st8 [rp2] = r17, 16
br.cloop.dptk L(top)
;;
+}
L(end):
-.mmi; sub rp1 = rp1, n C move rp back to beginning
+ {.mmi; sub rp1 = rp1, n C move rp back to beginning
sub rp2 = rp2, n C move rp back to beginning
cmp.ne p9, p0 = 1, nents
-.mmb; add nents = -1, nents
+}{.mmb; add nents = -1, nents
nop 0
(p9) br.dptk L(outer)
;;
-
-.mib; nop 0
+}{.mib; nop 0
nop 0
br.ret.sptk.many b0
+}
EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/sqr_diag_addlsh1.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/sqr_diag_addlsh1.asm
index f9288298b36..727f489b127 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/sqr_diag_addlsh1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/sqr_diag_addlsh1.asm
@@ -60,6 +60,13 @@ define(`tp_param', `r33') define(`tp', `r15') C size: 2n - 2
define(`up_param', `r34') define(`up', `r31') C size: n
define(`n', `r35')
+ifdef(`HAVE_ABI_32',`
+ define(`ABI64', `')
+ define(`ABI32', `$1')
+',`
+ define(`ABI64', `$1')
+ define(`ABI32', `')
+')
ASM_START()
PROLOGUE(mpn_sqr_diag_addlsh1)
@@ -69,76 +76,81 @@ PROLOGUE(mpn_sqr_diag_addlsh1)
.save ar.lc, r3
.body
-.mmi; alloc r2 = ar.pfs, 4,24,0,24 C M
- nop 4711
+ {.mii; alloc r2 = ar.pfs, 4,24,0,24 C M
mov r3 = ar.lc C I0
-.mmi; mov tp = tp_param C M I
- mov up = up_param C M I
- mov rp = rp_param C M I
+ ABI64(` nop 4711 ')
+ ABI32(` zxt4 n = n ')
+}{.mmi; ABI64(` mov tp = tp_param ') C M I
+ ABI32(` addp4 tp = 0, tp_param') C M I
+ ABI64(` mov up = up_param ') C M I
+ ABI32(` addp4 up = 0, up_param') C M I
+ ABI64(` mov rp = rp_param ') C M I
+ ABI32(` addp4 rp = 0, rp_param') C M I
;;
-.mmi; ld8 r36 = [tp], 8 C M
+}{.mmi; ld8 r36 = [tp], 8 C M
add r20 = -2, n C M I
mov r9 = ar.ec C I0
;;
-.mmi; ld8 r32 = [tp], 8 C M
+}{.mmi; ld8 r32 = [tp], 8 C M
mov r16 = 0 C M I
mov ar.ec = 7 C I0
;;
-.mmi; nop 4711
+}{.mmi; nop 4711
mov r44 = 0 C M I
mov ar.lc = r20 C I0
;;
-.mii; mov r33 = 0
+}{.mii; mov r33 = 0
mov r10 = pr C I0
mov pr.rot = 0x30000 C I0
;;
- br.cexit.spnt.few.clr L(end)
+} br.cexit.spnt.few.clr L(end)
dnl *** MAIN LOOP START ***
ALIGN(32)
L(top):
-.mfi; (p18) ldf8 f33 = [up], 8 C M
+ {.mfi; (p18) ldf8 f33 = [up], 8 C M
(p20) xma.l f36 = f35, f35, f42 C F
(p41) cmpequc p50, p0 = -1, r44 C M I
-.mfi; setfsig f40 = r16 C M23
+}{.mfi; setfsig f40 = r16 C M23
(p20) xma.hu f38 = f35, f35, f42 C F
(p23) add r50 = r41, r49 C M I
;;
-.mmi; (p16) ld8 r36 = [tp], 8 C M
+}{.mmi; (p16) ld8 r36 = [tp], 8 C M
(p23) cmpltu p40, p0 = r50, r41 C cyout hi M I
(p19) shrp r45 = r38, r35, 63 C non-critical I0
-.mmi; (p21) getfsig r39 = f39 C hi M2
+}{.mmi; (p21) getfsig r39 = f39 C hi M2
(p24) st8 [rp] = r51, 8 C hi M23
(p41) add r44 = 1, r44 C M I
;;
-.mmi; (p16) ld8 r32 = [tp], 8 C M
+}{.mmi; (p16) ld8 r32 = [tp], 8 C M
(p50) cmpeqor p40, p0 = -1, r50 C cyout hi M I
(p17) shrp r16 = r33, r37, 63 C critical I0
-.mmi; (p21) getfsig r42 = f37 C lo M2
+}{.mmi; (p21) getfsig r42 = f37 C lo M2
(p23) st8 [rp] = r44, 8 C lo M23
(p50) add r50 = 1, r50 C M I
;;
- br.ctop.sptk.few.clr L(top) C B
+} br.ctop.sptk.few.clr L(top) C B
dnl *** MAIN LOOP END ***
;;
L(end):
-.mmi; nop 4711
+ {.mmi; nop 4711
(p41) add r44 = 1, r44 C M I
shr.u r48 = r39, 63 C I0
;;
-.mmi; st8 [rp] = r51, 8 C M23
+}{.mmi; st8 [rp] = r51, 8 C M23
(p41) cmpequc p6, p0 = 0, r44 C M I
add r50 = r41, r48 C M I
;;
-.mmi; st8 [rp] = r44, 8 C M23
+}{.mmi; st8 [rp] = r44, 8 C M23
(p6) add r50 = 1, r50 C M I
mov ar.lc = r3 C I0
;;
-.mii; st8 [rp] = r50 C M23
+}{.mii; st8 [rp] = r50 C M23
mov ar.ec = r9 C I0
mov pr = r10 C I0
;;
-.mib; nop 4711
+}{.mib; nop 4711
mov ar.pfs = r2 C I0
br.ret.sptk.many b0 C B
+}
EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/ia64/submul_1.asm
index cb2a5525b5a..cb2a5525b5a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/ia64/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/lisp/gmpasm-mode.el b/Build/source/libs/gmp/gmp-src/mpn/lisp/gmpasm-mode.el
index 06b74bd6ce7..06b74bd6ce7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/lisp/gmpasm-mode.el
+++ b/Build/source/libs/gmp/gmp-src/mpn/lisp/gmpasm-mode.el
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m4-ccas b/Build/source/libs/gmp/gmp-src/mpn/m4-ccas
index 16d80c6f51b..16d80c6f51b 100755..100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m4-ccas
+++ b/Build/source/libs/gmp/gmp-src/mpn/m4-ccas
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/README b/Build/source/libs/gmp/gmp-src/mpn/m68k/README
index 5261564df2b..5261564df2b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/m68k/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/m68k/aors_n.asm
index f7d379ec013..f7d379ec013 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/m68k/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/m68k/gmp-mparam.h
index 9ac7b410197..9ac7b410197 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/m68k/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/m68k/lshift.asm
index f202abfe434..f202abfe434 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/m68k/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/m68k-defs.m4 b/Build/source/libs/gmp/gmp-src/mpn/m68k/m68k-defs.m4
index 15289f676fc..15289f676fc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/m68k-defs.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/m68k/m68k-defs.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/m68k/mc68020/aorsmul_1.asm
index 4ee30ad9b30..4ee30ad9b30 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/m68k/mc68020/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/m68k/mc68020/mul_1.asm
index f5fbb3063b6..f5fbb3063b6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/m68k/mc68020/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/udiv.asm b/Build/source/libs/gmp/gmp-src/mpn/m68k/mc68020/udiv.asm
index aadeab999ae..aadeab999ae 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/udiv.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/m68k/mc68020/udiv.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/umul.asm b/Build/source/libs/gmp/gmp-src/mpn/m68k/mc68020/umul.asm
index f19314e9bbb..f19314e9bbb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/umul.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/m68k/mc68020/umul.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/m68k/rshift.asm
index 21b5f89f483..21b5f89f483 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/m68k/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/t-m68k-defs.pl b/Build/source/libs/gmp/gmp-src/mpn/m68k/t-m68k-defs.pl
index 91c21fa1f8a..91c21fa1f8a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/t-m68k-defs.pl
+++ b/Build/source/libs/gmp/gmp-src/mpn/m68k/t-m68k-defs.pl
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/README b/Build/source/libs/gmp/gmp-src/mpn/m88k/README
index 1b51e83079e..1b51e83079e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/m88k/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/add_n.s b/Build/source/libs/gmp/gmp-src/mpn/m88k/add_n.s
index dbdb22f8888..dbdb22f8888 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/add_n.s
+++ b/Build/source/libs/gmp/gmp-src/mpn/m88k/add_n.s
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/add_n.S b/Build/source/libs/gmp/gmp-src/mpn/m88k/mc88110/add_n.S
index c3b12b3cd05..c3b12b3cd05 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/add_n.S
+++ b/Build/source/libs/gmp/gmp-src/mpn/m88k/mc88110/add_n.S
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/addmul_1.s b/Build/source/libs/gmp/gmp-src/mpn/m88k/mc88110/addmul_1.s
index 321221f23ca..321221f23ca 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/addmul_1.s
+++ b/Build/source/libs/gmp/gmp-src/mpn/m88k/mc88110/addmul_1.s
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/mul_1.s b/Build/source/libs/gmp/gmp-src/mpn/m88k/mc88110/mul_1.s
index 28fd14b77b1..28fd14b77b1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/mul_1.s
+++ b/Build/source/libs/gmp/gmp-src/mpn/m88k/mc88110/mul_1.s
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/sub_n.S b/Build/source/libs/gmp/gmp-src/mpn/m88k/mc88110/sub_n.S
index f0a8ecb3f06..f0a8ecb3f06 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/sub_n.S
+++ b/Build/source/libs/gmp/gmp-src/mpn/m88k/mc88110/sub_n.S
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mul_1.s b/Build/source/libs/gmp/gmp-src/mpn/m88k/mul_1.s
index c8abdc0b7f4..c8abdc0b7f4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mul_1.s
+++ b/Build/source/libs/gmp/gmp-src/mpn/m88k/mul_1.s
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/sub_n.s b/Build/source/libs/gmp/gmp-src/mpn/m88k/sub_n.s
index 2bd8f09ca3d..2bd8f09ca3d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/sub_n.s
+++ b/Build/source/libs/gmp/gmp-src/mpn/m88k/sub_n.s
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/minithres/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/minithres/gmp-mparam.h
index 1b8f3115160..35fcb7762cb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/minithres/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/minithres/gmp-mparam.h
@@ -75,6 +75,10 @@ see https://www.gnu.org/licenses/. */
#define MULLO_BASECASE_THRESHOLD 0
#define MULLO_DC_THRESHOLD 2
#define MULLO_MUL_N_THRESHOLD 4
+#define SQRLO_BASECASE_THRESHOLD 0
+#define SQRLO_DC_THRESHOLD 2
+#define SQRLO_SQR_THRESHOLD 4
+
#define DC_DIV_QR_THRESHOLD 6
#define DC_DIVAPPR_Q_THRESHOLD 6
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/mips32/add_n.asm
index e7d4c48f480..e7d4c48f480 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips32/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/mips32/addmul_1.asm
index 9aa9e163ce8..9aa9e163ce8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips32/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/mips32/gmp-mparam.h
index 986135df964..986135df964 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips32/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/mips32/lshift.asm
index 6a58bb4579b..6a58bb4579b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips32/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/mips-defs.m4 b/Build/source/libs/gmp/gmp-src/mpn/mips32/mips-defs.m4
index 5fa89eca35d..5fa89eca35d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/mips-defs.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips32/mips-defs.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/mips.m4 b/Build/source/libs/gmp/gmp-src/mpn/mips32/mips.m4
index 8b49e575e41..8b49e575e41 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/mips.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips32/mips.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/mips32/mul_1.asm
index 4337bc2bd40..4337bc2bd40 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips32/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/mips32/rshift.asm
index 4b54510408f..4b54510408f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips32/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/mips32/sub_n.asm
index a962ce1b79d..a962ce1b79d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips32/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/mips32/submul_1.asm
index 335722b4e57..335722b4e57 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips32/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/umul.asm b/Build/source/libs/gmp/gmp-src/mpn/mips32/umul.asm
index 1ced0eb883e..1ced0eb883e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/umul.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips32/umul.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/README b/Build/source/libs/gmp/gmp-src/mpn/mips64/README
index 7ddd0e572c7..7ddd0e572c7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips64/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/mips64/add_n.asm
index 6856407efdb..6856407efdb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips64/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/mips64/addmul_1.asm
index 8ff0976e252..8ff0976e252 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips64/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/mips64/gmp-mparam.h
index b7fcf24a413..b7fcf24a413 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips64/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/mips64/lshift.asm
index 3440eaf80b5..3440eaf80b5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips64/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/mips64/mul_1.asm
index 77acf0ac257..77acf0ac257 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips64/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/mips64/rshift.asm
index 9253cb51d85..9253cb51d85 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips64/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/sqr_diagonal.asm b/Build/source/libs/gmp/gmp-src/mpn/mips64/sqr_diagonal.asm
index dcb87dc21f1..dcb87dc21f1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/sqr_diagonal.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips64/sqr_diagonal.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/mips64/sub_n.asm
index 6a698976eba..6a698976eba 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips64/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/mips64/submul_1.asm
index 089589cd736..089589cd736 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips64/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/umul.asm b/Build/source/libs/gmp/gmp-src/mpn/mips64/umul.asm
index b9aac575912..b9aac575912 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/umul.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/mips64/umul.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/README b/Build/source/libs/gmp/gmp-src/mpn/pa32/README
index 4323390c9b8..4323390c9b8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/add_n.asm
index 46f39377ea8..46f39377ea8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/pa32/gmp-mparam.h
index 377efcb1565..377efcb1565 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/addmul_1.asm
index ec2f2198e84..ec2f2198e84 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/gmp-mparam.h
index 1261b24c83e..1261b24c83e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/mul_1.asm
index 6e60c2f61fe..6e60c2f61fe 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/pa7100/add_n.asm
index b96d4038268..b96d4038268 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/pa7100/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/pa7100/addmul_1.asm
index fb16100d83d..fb16100d83d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/pa7100/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/pa7100/lshift.asm
index d65db2a76bf..d65db2a76bf 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/pa7100/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/pa7100/rshift.asm
index f7896fc949b..f7896fc949b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/pa7100/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/pa7100/sub_n.asm
index df3f6e8b819..df3f6e8b819 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/pa7100/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/pa7100/submul_1.asm
index 5ea08cbee55..5ea08cbee55 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/pa7100/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/sqr_diagonal.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/sqr_diagonal.asm
index 1c7a18e37d6..1c7a18e37d6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/sqr_diagonal.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/sqr_diagonal.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/submul_1.asm
index a9b11d24a89..a9b11d24a89 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/udiv.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/udiv.asm
index 626ecd202b0..626ecd202b0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/udiv.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/udiv.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/umul.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/umul.asm
index 18b923cd5a9..18b923cd5a9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/umul.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa1_1/umul.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa2_0/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa2_0/add_n.asm
index 8d881b8b086..8d881b8b086 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa2_0/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa2_0/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa2_0/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa2_0/gmp-mparam.h
index 6016274714d..6016274714d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa2_0/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa2_0/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa2_0/sqr_diagonal.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa2_0/sqr_diagonal.asm
index c55112fac53..c55112fac53 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa2_0/sqr_diagonal.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa2_0/sqr_diagonal.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa2_0/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa2_0/sub_n.asm
index 47b3163fe3c..47b3163fe3c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa2_0/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/hppa2_0/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/lshift.asm
index 5ea497c1f19..5ea497c1f19 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/pa-defs.m4 b/Build/source/libs/gmp/gmp-src/mpn/pa32/pa-defs.m4
index b26e715fc5b..b26e715fc5b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/pa-defs.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/pa-defs.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/rshift.asm
index c5eac830c9b..c5eac830c9b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/sub_n.asm
index 9c71655b983..9c71655b983 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/udiv.asm b/Build/source/libs/gmp/gmp-src/mpn/pa32/udiv.asm
index addbf41ef51..addbf41ef51 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/udiv.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa32/udiv.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/README b/Build/source/libs/gmp/gmp-src/mpn/pa64/README
index a51ce028a4e..a51ce028a4e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa64/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/pa64/addmul_1.asm
index 2cb9af9f147..2cb9af9f147 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa64/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/pa64/aors_n.asm
index ab4536fefba..ab4536fefba 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa64/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/aorslsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/pa64/aorslsh1_n.asm
index 2a55ddea30f..2a55ddea30f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/aorslsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa64/aorslsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/pa64/gmp-mparam.h
index c2719c3c897..c2719c3c897 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa64/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/pa64/lshift.asm
index c0fc2921c16..c0fc2921c16 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa64/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/pa64/mul_1.asm
index 6935c23ccd7..6935c23ccd7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa64/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/pa64/rshift.asm
index cfc242ea9ca..cfc242ea9ca 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa64/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/sqr_diagonal.asm b/Build/source/libs/gmp/gmp-src/mpn/pa64/sqr_diagonal.asm
index f6fadc93c63..f6fadc93c63 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/sqr_diagonal.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa64/sqr_diagonal.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/pa64/submul_1.asm
index f8a1968e45b..f8a1968e45b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa64/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/udiv.asm b/Build/source/libs/gmp/gmp-src/mpn/pa64/udiv.asm
index 1380a85932e..1380a85932e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/udiv.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa64/udiv.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/umul.asm b/Build/source/libs/gmp/gmp-src/mpn/pa64/umul.asm
index c3341ecfe60..c3341ecfe60 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/umul.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/pa64/umul.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/power/add_n.asm
index 6d6ca73da98..6d6ca73da98 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/power/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/power/addmul_1.asm
index 76d8df3c76c..76d8df3c76c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/power/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/power/gmp-mparam.h
index 7cb36f963e7..7cb36f963e7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/power/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/power/lshift.asm
index efa210556d0..efa210556d0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/power/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/power/mul_1.asm
index 38b7b66be0b..38b7b66be0b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/power/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/power/rshift.asm
index 1d1815ccb51..1d1815ccb51 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/power/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/sdiv.asm b/Build/source/libs/gmp/gmp-src/mpn/power/sdiv.asm
index 4a9ed143b8a..4a9ed143b8a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/sdiv.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/power/sdiv.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/power/sub_n.asm
index 390c802d8bc..390c802d8bc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/power/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/power/submul_1.asm
index 1788e0d4f4f..1788e0d4f4f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/power/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/umul.asm b/Build/source/libs/gmp/gmp-src/mpn/power/umul.asm
index 5a0599e21d9..5a0599e21d9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/power/umul.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/power/umul.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/750/com.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/750/com.asm
index 1b8b574b9cc..1b8b574b9cc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/750/com.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/750/com.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/750/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/750/gmp-mparam.h
index 3667e8596d2..3667e8596d2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/750/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/750/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/750/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/750/lshift.asm
index 3a1c1a7212e..3a1c1a7212e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/750/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/750/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/750/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/750/rshift.asm
index 4825fee6183..4825fee6183 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/750/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/750/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/README b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/README
index 887e78b2903..887e78b2903 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/addlsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/addlsh1_n.asm
index 71645c3ec32..71645c3ec32 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/addlsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/addlsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/addmul_1.asm
index 7f47ab2ce72..07486df2fac 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/addmul_1.asm
@@ -90,9 +90,11 @@ L(end): stw r8,4(r3)
addze r3,r10
blr
-L(big): stmw r30,-32(r1)
+L(big): stwu r1,-16(r1)
addi r5,r5,-1
+ stw r30,8(r1)
srwi r0,r5,2
+ stw r31,12(r1)
mtctr r0
lwz r7,0(r4)
@@ -150,6 +152,8 @@ L(loopE):
bdnz L(loopE)
L(endx):
addze r3,r0
- lmw r30,-32(r1)
+ lwz r30,8(r1)
+ lwz r31,12(r1)
+ addi r1,r1,16
blr
EPILOGUE(mpn_addmul_1)
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/aix.m4 b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/aix.m4
index fde20200b24..fde20200b24 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/aix.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/aix.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/aors_n.asm
index 25ece0966e9..25ece0966e9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/bdiv_dbm1c.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/bdiv_dbm1c.asm
index 72b2c482e4d..72b2c482e4d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/bdiv_dbm1c.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/bdiv_dbm1c.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/darwin.m4 b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/darwin.m4
index db4226800b3..db4226800b3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/darwin.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/darwin.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/diveby3.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/diveby3.asm
index 288a7d30ac8..288a7d30ac8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/diveby3.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/diveby3.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/divrem_2.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/divrem_2.asm
index c6e64efe233..c6e64efe233 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/divrem_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/divrem_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/eabi.m4 b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/eabi.m4
index cd7633c6330..cd7633c6330 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/eabi.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/eabi.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/elf.m4 b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/elf.m4
index a64a1271ff8..1ed9c124d78 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/elf.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/elf.m4
@@ -53,8 +53,10 @@ define(`LEA',
m4_assert_numargs(2)
`ifdef(`PIC',`
mflr r0
- bl _GLOBAL_OFFSET_TABLE_@local-4
- mflr $1
+ bcl 20, 31, 1f
+1: mflr $1
+ addis $1, $1, (_GLOBAL_OFFSET_TABLE_-1b)@ha
+ addi $1, $1, (_GLOBAL_OFFSET_TABLE_-1b)@l
mtlr r0
lwz $1, $2@got($1)
',`
@@ -62,6 +64,7 @@ m4_assert_numargs(2)
la $1, $2@l($1)
')')
+
define(`LEAL',
m4_assert_numargs(2)
`LEA($1,$2)')
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/gmp-mparam.h
index 784a6d7b747..e835a39b3e6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/gmp-mparam.h
@@ -1,6 +1,6 @@
/* PowerPC-32 gmp-mparam.h -- Compiler/machine parameter header file.
-Copyright 1991, 1993, 1994, 1999-2004, 2008-2010, 2014 Free Software
+Copyright 1991, 1993, 1994, 1999-2004, 2008-2010, 2014, 2015 Free Software
Foundation, Inc.
This file is part of the GNU MP Library.
@@ -42,8 +42,8 @@ see https://www.gnu.org/licenses/. */
7400/7410 (G4), both which have much slower multiply instructions. */
/* 1417 MHz PPC 7447A */
-/* FFT tuning limit = 12500000 */
-/* Generated by tuneup.c, 2014-03-12, gcc 4.6 */
+/* FFT tuning limit = 15 M */
+/* Generated by tuneup.c, 2015-10-08, gcc 4.6 */
#define DIVREM_1_NORM_THRESHOLD 0 /* always */
#define DIVREM_1_UNNORM_THRESHOLD 0 /* always */
@@ -53,7 +53,7 @@ see https://www.gnu.org/licenses/. */
#define MOD_1N_TO_MOD_1_1_THRESHOLD 8
#define MOD_1U_TO_MOD_1_1_THRESHOLD 6
#define MOD_1_1_TO_MOD_1_2_THRESHOLD 8
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 49
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 45
#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 18
#define USE_PREINV_DIVREM_1 1
#define DIV_QR_1N_PI1_METHOD 1
@@ -78,58 +78,59 @@ see https://www.gnu.org/licenses/. */
#define SQR_BASECASE_THRESHOLD 0 /* always */
#define SQR_TOOM2_THRESHOLD 22
#define SQR_TOOM3_THRESHOLD 74
-#define SQR_TOOM4_THRESHOLD 130
-#define SQR_TOOM6_THRESHOLD 189
-#define SQR_TOOM8_THRESHOLD 284
+#define SQR_TOOM4_THRESHOLD 142
+#define SQR_TOOM6_THRESHOLD 190
+#define SQR_TOOM8_THRESHOLD 333
#define MULMID_TOOM42_THRESHOLD 32
#define MULMOD_BNM1_THRESHOLD 9
-#define SQRMOD_BNM1_THRESHOLD 14
+#define SQRMOD_BNM1_THRESHOLD 13
#define MUL_FFT_MODF_THRESHOLD 284 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 284, 5}, { 15, 6}, { 8, 5}, { 17, 6}, \
- { 17, 7}, { 9, 6}, { 20, 7}, { 11, 6}, \
- { 23, 7}, { 13, 8}, { 7, 7}, { 19, 8}, \
- { 11, 7}, { 25, 9}, { 7, 8}, { 15, 7}, \
- { 33, 8}, { 19, 7}, { 39, 8}, { 23, 7}, \
- { 47, 8}, { 27, 9}, { 15, 8}, { 39, 9}, \
- { 23, 8}, { 47,10}, { 15, 9}, { 31, 8}, \
- { 67, 9}, { 39, 8}, { 79, 9}, { 47, 8}, \
- { 95,10}, { 31, 9}, { 71, 8}, { 143, 9}, \
- { 79,10}, { 47, 9}, { 95,11}, { 31,10}, \
- { 63, 9}, { 127, 8}, { 255, 9}, { 135, 8}, \
- { 271, 9}, { 143,10}, { 79, 9}, { 159, 8}, \
- { 319, 9}, { 175,10}, { 95, 9}, { 191, 8}, \
- { 383, 9}, { 207, 8}, { 415,11}, { 63,10}, \
- { 127, 9}, { 255, 8}, { 511, 9}, { 271,10}, \
- { 143, 9}, { 287, 8}, { 575,10}, { 159, 9}, \
- { 319,10}, { 175,11}, { 95,10}, { 191, 9}, \
- { 383,10}, { 207, 9}, { 415, 8}, { 831,12}, \
- { 63,11}, { 127,10}, { 255, 9}, { 511,10}, \
- { 271, 9}, { 543, 8}, { 1087,10}, { 287, 9}, \
- { 575,11}, { 159,10}, { 319, 9}, { 639,10}, \
- { 351, 9}, { 703,11}, { 191,10}, { 415, 9}, \
- { 831,11}, { 223,10}, { 447, 9}, { 895,10}, \
- { 479, 9}, { 959,12}, { 127,11}, { 255,10}, \
- { 543, 9}, { 1087,11}, { 287,10}, { 575,11}, \
- { 319,10}, { 639,11}, { 351,10}, { 703, 9}, \
- { 1407,12}, { 191,11}, { 383,10}, { 767,11}, \
- { 415,10}, { 831,11}, { 447,10}, { 895,11}, \
- { 479,10}, { 959,13}, { 127,12}, { 255,11}, \
- { 543,10}, { 1087,11}, { 607,12}, { 319,11}, \
- { 639,10}, { 1279,11}, { 703,10}, { 1407,12}, \
- { 383,11}, { 831,12}, { 447,11}, { 959,13}, \
- { 255,12}, { 511,11}, { 1087,12}, { 575,11}, \
- { 1215,10}, { 2431,12}, { 639,11}, { 1279,12}, \
- { 703,11}, { 1407,13}, { 383,12}, { 895,11}, \
- { 1791,12}, { 959,14}, { 255,13}, { 511,12}, \
+ { 9, 5}, { 19, 6}, { 17, 7}, { 9, 6}, \
+ { 20, 7}, { 11, 6}, { 23, 7}, { 13, 8}, \
+ { 7, 7}, { 19, 8}, { 11, 7}, { 25, 9}, \
+ { 7, 8}, { 15, 7}, { 33, 8}, { 19, 7}, \
+ { 39, 8}, { 23, 7}, { 47, 8}, { 27, 9}, \
+ { 15, 8}, { 39, 9}, { 23, 8}, { 47,10}, \
+ { 15, 9}, { 31, 8}, { 67, 9}, { 39, 8}, \
+ { 79, 9}, { 47, 8}, { 95,10}, { 31, 9}, \
+ { 71, 8}, { 143, 9}, { 79,10}, { 47, 9}, \
+ { 95,11}, { 31,10}, { 63, 9}, { 127, 8}, \
+ { 255, 9}, { 135, 8}, { 271, 9}, { 143,10}, \
+ { 79, 9}, { 159, 8}, { 319, 9}, { 175,10}, \
+ { 95, 9}, { 191, 8}, { 383, 9}, { 207, 8}, \
+ { 415,11}, { 63,10}, { 127, 9}, { 255, 8}, \
+ { 511, 9}, { 271,10}, { 143, 9}, { 287, 8}, \
+ { 575,10}, { 159, 9}, { 319,10}, { 175,11}, \
+ { 95,10}, { 191, 9}, { 383,10}, { 207, 9}, \
+ { 415, 8}, { 831,12}, { 63,11}, { 127,10}, \
+ { 255, 9}, { 511,10}, { 271, 9}, { 543, 8}, \
+ { 1087,10}, { 287, 9}, { 575,11}, { 159,10}, \
+ { 319, 9}, { 639,10}, { 351, 9}, { 703,11}, \
+ { 191,10}, { 415, 9}, { 831,11}, { 223,10}, \
+ { 447, 9}, { 895,10}, { 479, 9}, { 959,12}, \
+ { 127,11}, { 255,10}, { 543, 9}, { 1087,11}, \
+ { 287,10}, { 607,11}, { 319,10}, { 639,11}, \
+ { 351,10}, { 703, 9}, { 1407,12}, { 191,11}, \
+ { 383,10}, { 767,11}, { 415,10}, { 831,11}, \
+ { 447,10}, { 895,11}, { 479,10}, { 959,13}, \
+ { 127,12}, { 255,11}, { 543,10}, { 1087,11}, \
+ { 607,12}, { 319,11}, { 639,10}, { 1279,11}, \
+ { 703,10}, { 1407,12}, { 383,11}, { 831,12}, \
+ { 447,11}, { 959,13}, { 255,12}, { 511,11}, \
+ { 1087,12}, { 575,11}, { 1215,10}, { 2431,12}, \
+ { 639,11}, { 1279,12}, { 703,11}, { 1407,13}, \
+ { 383,12}, { 959,14}, { 255,13}, { 511,12}, \
{ 1215,11}, { 2431,13}, { 639,12}, { 1471,13}, \
{ 767,12}, { 1599,13}, { 895,12}, { 1919,14}, \
{ 511,13}, { 1023,12}, { 2111,13}, { 1151,12}, \
- { 2431,13}, { 1407,14}, { 16384,15}, { 32768,16} }
-#define MUL_FFT_TABLE3_SIZE 160
+ { 2431,13}, { 1407,14}, { 767,13}, { 1535,12}, \
+ { 3071,13}, { 8192,14}, { 16384,15}, { 32768,16} }
+#define MUL_FFT_TABLE3_SIZE 164
#define MUL_FFT_THRESHOLD 3712
#define SQR_FFT_MODF_THRESHOLD 248 /* k = 5 */
@@ -140,73 +141,69 @@ see https://www.gnu.org/licenses/. */
{ 11, 7}, { 25, 9}, { 7, 8}, { 15, 7}, \
{ 33, 8}, { 19, 7}, { 39, 8}, { 27, 9}, \
{ 15, 8}, { 39, 9}, { 23, 8}, { 47,10}, \
- { 15, 9}, { 31, 8}, { 67, 9}, { 39, 8}, \
- { 79, 9}, { 47, 8}, { 95,10}, { 31, 9}, \
- { 63, 8}, { 127, 9}, { 71, 8}, { 143, 9}, \
- { 79,10}, { 47, 9}, { 95,11}, { 31,10}, \
- { 63, 9}, { 127, 8}, { 255, 7}, { 511, 9}, \
- { 143,10}, { 79, 9}, { 159, 8}, { 319, 9}, \
- { 175, 8}, { 351,10}, { 95, 9}, { 191, 8}, \
- { 383, 9}, { 207, 8}, { 415, 7}, { 831,11}, \
- { 63,10}, { 127, 9}, { 255, 8}, { 511,10}, \
- { 143, 9}, { 287, 8}, { 575,10}, { 159, 9}, \
- { 319,10}, { 175, 9}, { 351,11}, { 95,10}, \
- { 191, 9}, { 383,10}, { 207, 9}, { 415, 8}, \
- { 831,12}, { 63,11}, { 127,10}, { 255, 9}, \
- { 511,10}, { 271, 9}, { 543,10}, { 287, 9}, \
- { 575,11}, { 159,10}, { 319, 9}, { 639,10}, \
- { 351, 9}, { 703,11}, { 191,10}, { 383, 9}, \
- { 767,10}, { 415, 9}, { 831,11}, { 223,10}, \
- { 447, 9}, { 895,12}, { 127,11}, { 255,10}, \
- { 543,11}, { 287,10}, { 607,11}, { 319,10}, \
- { 639,11}, { 351,10}, { 703, 9}, { 1407,12}, \
- { 191,11}, { 383,10}, { 767,11}, { 415,10}, \
- { 831,11}, { 447,10}, { 895,11}, { 479,13}, \
- { 127,12}, { 255,11}, { 543,10}, { 1087,11}, \
- { 607,12}, { 319,11}, { 639,10}, { 1279,11}, \
- { 703,10}, { 1407,12}, { 383,11}, { 831,12}, \
- { 447,11}, { 959,13}, { 255,12}, { 511,11}, \
- { 1087,12}, { 575,11}, { 1215,12}, { 639,11}, \
- { 1279,12}, { 703,11}, { 1407,13}, { 383,12}, \
- { 959,14}, { 255,13}, { 511,12}, { 1215,13}, \
- { 639,12}, { 1471,13}, { 767,12}, { 1599,13}, \
- { 895,12}, { 1919,14}, { 511,13}, { 1023,12}, \
- { 2111,13}, { 1151,12}, { 2431,13}, { 1407,14}, \
- { 16384,15}, { 32768,16} }
-#define SQR_FFT_TABLE3_SIZE 154
+ { 15, 9}, { 31, 8}, { 63, 9}, { 39, 8}, \
+ { 79, 9}, { 47,10}, { 31, 9}, { 63, 8}, \
+ { 127, 9}, { 71, 8}, { 143, 9}, { 79,10}, \
+ { 47, 9}, { 95,11}, { 31,10}, { 63, 9}, \
+ { 127, 8}, { 255, 7}, { 511, 9}, { 143,10}, \
+ { 79, 9}, { 159, 8}, { 319, 9}, { 175, 8}, \
+ { 351,10}, { 95, 9}, { 191, 8}, { 383, 9}, \
+ { 207, 8}, { 415, 7}, { 831,11}, { 63,10}, \
+ { 127, 9}, { 255, 8}, { 511,10}, { 143, 9}, \
+ { 287, 8}, { 575,10}, { 159, 9}, { 319,10}, \
+ { 175, 9}, { 351,11}, { 95,10}, { 191, 9}, \
+ { 383,10}, { 207, 9}, { 415, 8}, { 831,12}, \
+ { 63,11}, { 127,10}, { 255, 9}, { 511,10}, \
+ { 271, 9}, { 543,10}, { 287, 9}, { 575,11}, \
+ { 159,10}, { 319, 9}, { 639,10}, { 351, 9}, \
+ { 703,11}, { 191,10}, { 383, 9}, { 767,10}, \
+ { 415, 9}, { 831,11}, { 223,10}, { 447, 9}, \
+ { 895,12}, { 127,11}, { 255,10}, { 543,11}, \
+ { 287,10}, { 607,11}, { 319,10}, { 639,11}, \
+ { 351,10}, { 703, 9}, { 1407,12}, { 191,11}, \
+ { 383,10}, { 767,11}, { 415,10}, { 831,11}, \
+ { 447,10}, { 895,11}, { 479,13}, { 127,12}, \
+ { 255,11}, { 543,10}, { 1087,11}, { 607,12}, \
+ { 319,11}, { 639,10}, { 1279,11}, { 703,10}, \
+ { 1407,12}, { 383,11}, { 831,12}, { 447,11}, \
+ { 959,13}, { 255,12}, { 511,11}, { 1087,12}, \
+ { 575,11}, { 1215,12}, { 639,11}, { 1279,12}, \
+ { 703,11}, { 1407,13}, { 383,12}, { 959,14}, \
+ { 255,13}, { 511,12}, { 1215,13}, { 639,12}, \
+ { 1471,13}, { 767,12}, { 1599,13}, { 895,12}, \
+ { 1919,14}, { 511,13}, { 1023,12}, { 2111,13}, \
+ { 1151,12}, { 2431,13}, { 1407,14}, { 767,13}, \
+ { 1535,12}, { 3199,13}, { 8192,14}, { 16384,15}, \
+ { 32768,16} }
+#define SQR_FFT_TABLE3_SIZE 157
#define SQR_FFT_THRESHOLD 2688
-#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 45
+#define MULLO_BASECASE_THRESHOLD 2
+#define MULLO_DC_THRESHOLD 50
#define MULLO_MUL_N_THRESHOLD 6633
+#define SQRLO_BASECASE_THRESHOLD 4
+#define SQRLO_DC_THRESHOLD 115
+#define SQRLO_SQR_THRESHOLD 5274
-#define DC_DIV_QR_THRESHOLD 44
-#define DC_DIVAPPR_Q_THRESHOLD 142
-#define DC_BDIV_QR_THRESHOLD 54
-#define DC_BDIV_Q_THRESHOLD 124
+#define DC_DIV_QR_THRESHOLD 43
+#define DC_DIVAPPR_Q_THRESHOLD 141
+#define DC_BDIV_QR_THRESHOLD 51
+#define DC_BDIV_Q_THRESHOLD 120
#define INV_MULMOD_BNM1_THRESHOLD 43
-#define INV_NEWTON_THRESHOLD 179
-#define INV_APPR_THRESHOLD 157
+#define INV_NEWTON_THRESHOLD 173
+#define INV_APPR_THRESHOLD 156
-#define BINV_NEWTON_THRESHOLD 214
-#define REDC_1_TO_REDC_N_THRESHOLD 55
+#define BINV_NEWTON_THRESHOLD 204
+#define REDC_1_TO_REDC_N_THRESHOLD 51
-#define MU_DIV_QR_THRESHOLD 998
+#define MU_DIV_QR_THRESHOLD 1017
#define MU_DIVAPPR_Q_THRESHOLD 1078
#define MUPI_DIV_QR_THRESHOLD 84
#define MU_BDIV_QR_THRESHOLD 872
#define MU_BDIV_Q_THRESHOLD 1078
-#define POWM_SEC_TABLE 1,19,102,428,1378
-
-#define MATRIX22_STRASSEN_THRESHOLD 12
-#define HGCD_THRESHOLD 120
-#define HGCD_APPR_THRESHOLD 166
-#define HGCD_REDUCE_THRESHOLD 1679
-#define GCD_DC_THRESHOLD 339
-#define GCDEXT_DC_THRESHOLD 273
-#define JACOBI_BASE_METHOD 4
+#define POWM_SEC_TABLE 1,16,102,428,1378
#define GET_STR_DC_THRESHOLD 12
#define GET_STR_PRECOMPUTE_THRESHOLD 27
@@ -214,4 +211,12 @@ see https://www.gnu.org/licenses/. */
#define SET_STR_PRECOMPUTE_THRESHOLD 1505
#define FAC_DSC_THRESHOLD 141
-#define FAC_ODD_THRESHOLD 29
+#define FAC_ODD_THRESHOLD 34
+
+#define MATRIX22_STRASSEN_THRESHOLD 12
+#define HGCD_THRESHOLD 118
+#define HGCD_APPR_THRESHOLD 161
+#define HGCD_REDUCE_THRESHOLD 1679
+#define GCD_DC_THRESHOLD 351
+#define GCDEXT_DC_THRESHOLD 273
+#define JACOBI_BASE_METHOD 4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/invert_limb.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/invert_limb.asm
index 612bfe523c7..612bfe523c7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/invert_limb.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/invert_limb.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/lshift.asm
index 948f8c6cf3e..ce85d4d33eb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/lshift.asm
@@ -83,7 +83,8 @@ L(end2):
blr
L(BIG):
- stmw r24, -32(r1) C save registers we are supposed to preserve
+ stwu r1, -48(r1)
+ stmw r24, 8(r1) C save registers we are supposed to preserve
lwzu r9, -4(r4)
subfic r8, r6, 32
srw r3, r9, r8 C compute function return value
@@ -161,6 +162,7 @@ L(loopU):
stw r27, -16(r7)
stw r12, -20(r7)
- lmw r24, -32(r1) C restore registers
+ lmw r24, 8(r1) C restore registers
+ addi r1, r1, 48
blr
EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/lshiftc.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/lshiftc.asm
index 61606d1b66e..b683def0d9c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/lshiftc.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/lshiftc.asm
@@ -85,7 +85,8 @@ L(end2):
blr
L(BIG):
- stmw r24, -32(r1) C save registers we are supposed to preserve
+ stwu r1, -48(r1)
+ stmw r24, 8(r1) C save registers we are supposed to preserve
lwzu r9, -4(r4)
subfic r8, r6, 32
srw r3, r9, r8 C compute function return value
@@ -163,6 +164,7 @@ L(loopU):
stw r27, -16(r7)
nor r12, r12, r12
stw r12, -20(r7)
- lmw r24, -32(r1) C restore registers
+ lmw r24, 8(r1) C restore registers
+ addi r1, r1, 48
blr
EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/mod_34lsub1.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/mod_34lsub1.asm
index 6d7fe4d0890..6d7fe4d0890 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/mod_34lsub1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/mod_34lsub1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/mode1o.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/mode1o.asm
index e8a6b5e28ad..e8a6b5e28ad 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/mode1o.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/mode1o.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/mul_1.asm
index e42087cfa8b..e42087cfa8b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p3-p7/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/p3-p7/aors_n.asm
index c44df8fa509..3b6685e70cc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p3-p7/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/p3-p7/aors_n.asm
@@ -74,16 +74,16 @@ EPILOGUE()
PROLOGUE(func)
CLRCB
-L(ent): stw r31, -4(r1)
- stw r30, -8(r1)
- stw r29, -12(r1)
- stw r28, -16(r1)
-
+L(ent): stwu r1, -32(r1)
rlwinm. r0, r6, 0,30,31 C r0 = n & 3, set cr0
cmpwi cr6, r0, 2
+ stw r28, 8(r1)
addi r6, r6, 3 C compute count...
+ stw r29, 12(r1)
srwi r6, r6, 2 C ...for ctr
+ stw r30, 16(r1)
mtctr r6 C copy count into ctr
+ stw r31, 20(r1)
beq cr0, L(b00)
blt cr6, L(b01)
beq cr6, L(b10)
@@ -175,12 +175,13 @@ L(end): ADDSUBC r28, r7, r6
stw r30, 8(r3)
stw r31, 12(r3)
-L(ret): lwz r31, -4(r1)
- lwz r30, -8(r1)
- lwz r29, -12(r1)
- lwz r28, -16(r1)
-
+L(ret):
+ lwz r28, 8(r1)
+ lwz r29, 12(r1)
subfe r3, r0, r0 C -cy
+ lwz r30, 16(r1)
GENRVAL
+ lwz r31, 20(r1)
+ addi r1, r1, 32
blr
EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p3/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/p3/gmp-mparam.h
index 33826956a2e..33826956a2e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p3/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/p3/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p4/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/p4/gmp-mparam.h
index 20830a0bd72..20830a0bd72 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p4/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/p4/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p5/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/p5/gmp-mparam.h
index faa1e81da41..faa1e81da41 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p5/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/p5/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p6/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/p6/gmp-mparam.h
index c9504b63b31..c9504b63b31 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p6/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/p6/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p7/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/p7/gmp-mparam.h
index 35bb61dca26..35bb61dca26 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p7/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/p7/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/powerpc-defs.m4 b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/powerpc-defs.m4
index 0c142a2e0cf..0c142a2e0cf 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/powerpc-defs.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/powerpc-defs.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/rshift.asm
index cb0046d5ee9..d86cdcbd630 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/rshift.asm
@@ -81,7 +81,8 @@ L(end2):
blr
L(BIG):
- stmw r24, -32(r1) C save registers we are supposed to preserve
+ stwu r1, -48(r1)
+ stmw r24, 8(r1) C save registers we are supposed to preserve
lwz r9, 0(r4)
subfic r8, r6, 32
slw r3, r9, r8 C compute function return value
@@ -159,6 +160,7 @@ L(loopU):
stw r27, 16(r7)
stw r12, 20(r7)
- lmw r24, -32(r1) C restore registers
+ lmw r24, 8(r1) C restore registers
+ addi r1, r1, 48
blr
EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/sec_tabselect.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/sec_tabselect.asm
index a3f24d56780..d50718e7c82 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/sec_tabselect.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/sec_tabselect.asm
@@ -55,8 +55,9 @@ define(`mask', `r11')
ASM_START()
PROLOGUE(mpn_sec_tabselect)
+ stwu r1, -32(r1)
addic. j, n, -4 C outer loop induction variable
- stmw r27, -32(r1)
+ stmw r27, 8(r1)
slwi stride, n, 2
blt cr0, L(outer_end)
@@ -136,6 +137,7 @@ L(tp1): addic i, i, -1
bdnz L(tp1)
stw r28, 0(rp)
-L(b00): lmw r27, -32(r1)
+L(b00): lmw r27, 8(r1)
+ addi r1, r1, 32
blr
EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/sqr_diag_addlsh1.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/sqr_diag_addlsh1.asm
index f7aba33ee59..f7aba33ee59 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/sqr_diag_addlsh1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/sqr_diag_addlsh1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/sublsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/sublsh1_n.asm
index 6dc6460016f..6dc6460016f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/sublsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/sublsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/submul_1.asm
index 9fcdaa291b0..8ef37b04202 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/submul_1.asm
@@ -78,9 +78,11 @@ L(end): stw r8,4(r3)
addze r3,r10
blr
-L(big): stmw r30,-32(r1)
+L(big): stwu r1,-16(r1)
addi r5,r5,-1
+ stw r30,8(r1)
srwi r0,r5,2
+ stw r31,12(r1)
mtctr r0
lwz r7,0(r4)
@@ -142,6 +144,8 @@ L(loopE):
bdnz L(loopE)
L(endx):
addze r3,r0
- lmw r30,-32(r1)
+ lwz r30,8(r1)
+ lwz r31,12(r1)
+ addi r1,r1,16
blr
EPILOGUE(mpn_submul_1)
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/umul.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/umul.asm
index a5811e1651f..a5811e1651f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/umul.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/umul.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/vmx/copyd.asm
index 6aac6b83896..dee7266200e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/vmx/copyd.asm
@@ -48,7 +48,7 @@ C read-modify-write tricks.
C * The VMX code is used from the smallest sizes it handles, but measurements
C show a large speed bump at the cutoff points. Small copying (perhaps
C using some read-modify-write technique) should be optimized.
-C * Make a mpn_com based on this code.
+C * Make an mpn_com based on this code.
define(`GMP_LIMB_BYTES', eval(GMP_LIMB_BITS/8))
define(`LIMBS_PER_VR', eval(16/GMP_LIMB_BYTES))
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/vmx/copyi.asm
index a97a0fa6dc8..992b46873e3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/vmx/copyi.asm
@@ -48,7 +48,7 @@ C read-modify-write tricks.
C * The VMX code is used from the smallest sizes it handles, but measurements
C show a large speed bump at the cutoff points. Small copying (perhaps
C using some read-modify-write technique) should be optimized.
-C * Make a mpn_com based on this code.
+C * Make an mpn_com based on this code.
define(`GMP_LIMB_BYTES', eval(GMP_LIMB_BITS/8))
define(`LIMBS_PER_VR', eval(16/GMP_LIMB_BYTES))
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/logops_n.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/vmx/logops_n.asm
index d656d3b73f7..d656d3b73f7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/logops_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/vmx/logops_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/mod_34lsub1.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/vmx/mod_34lsub1.asm
index 9b7e4f1a503..2bb11cd1732 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/mod_34lsub1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/vmx/mod_34lsub1.asm
@@ -140,6 +140,7 @@ L(ret): mr r3, r9
L(large):
+ stwu r1, -32(r1)
mfspr r10, 256
oris r0, r10, 0xffff C Set VRSAVE bit 0-15
mtspr 256, r0
@@ -341,11 +342,12 @@ C We now have 4 128-bit accumulators to sum
C Reduce 32-bit fields
vsumsws x0, x0, z
- li r7, -16 C FIXME: does all ppc32 ABIs...
- stvx x0, r7, r1 C FIXME: ...support storing below sp?
- lwz r3, -4(r1)
+ li r7, 16
+ stvx x0, r7, r1
+ lwz r3, 28(r1)
mtspr 256, r10
+ addi r1, r1, 32
blr
EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/vmx/popcount.asm
index 943c92d1273..943c92d1273 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc32/vmx/popcount.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/README b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/README
index 50dd3995c3d..50dd3995c3d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/aix.m4 b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/aix.m4
index bf6517d69d9..bf6517d69d9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/aix.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/aix.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/com.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/com.asm
index 074b7ff6e4f..074b7ff6e4f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/com.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/com.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/copyd.asm
index c6ce9309f1d..c6ce9309f1d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/copyi.asm
index 9a86cb21cc6..9a86cb21cc6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/darwin.m4 b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/darwin.m4
index a3180e48fd7..a3180e48fd7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/darwin.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/darwin.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/elf.m4 b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/elf.m4
index ddb5a8ed79d..ddb5a8ed79d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/elf.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/elf.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/logops_n.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/logops_n.asm
index 2fa6985d7a4..2fa6985d7a4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/logops_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/logops_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/lshift.asm
index 880944a4aed..880944a4aed 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/lshiftc.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/lshiftc.asm
index 7cf6a83428c..7cf6a83428c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/lshiftc.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/lshiftc.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/add_n.asm
index 1da8087fe13..1da8087fe13 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/addmul_1.asm
index bdc39512ac5..bdc39512ac5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/mul_1.asm
index 3a17e987972..3a17e987972 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/p4/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/p4/gmp-mparam.h
index a7271381c5c..a7271381c5c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/p4/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/p4/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/sqr_diagonal.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/sqr_diagonal.asm
index ff5f4b3cfba..ff5f4b3cfba 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/sqr_diagonal.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/sqr_diagonal.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/sub_n.asm
index 6fdc1d47197..6fdc1d47197 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/submul_1.asm
index 22601c417e2..22601c417e2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode32/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/aors_n.asm
index 0e8474fdcc2..0e8474fdcc2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/aorsmul_1.asm
index 0c12f9b6608..0c12f9b6608 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aorsorrlsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/aorsorrlsh1_n.asm
index 2c5400ab526..2c5400ab526 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aorsorrlsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/aorsorrlsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aorsorrlsh2_n.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/aorsorrlsh2_n.asm
index 447791abb06..447791abb06 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aorsorrlsh2_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/aorsorrlsh2_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aorsorrlshC_n.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/aorsorrlshC_n.asm
index 6158f541fc0..6158f541fc0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aorsorrlshC_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/aorsorrlshC_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/bdiv_dbm1c.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/bdiv_dbm1c.asm
index 45cded97159..45cded97159 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/bdiv_dbm1c.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/bdiv_dbm1c.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/cnd_aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/cnd_aors_n.asm
index 24968c19125..24968c19125 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/cnd_aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/cnd_aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/dive_1.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/dive_1.asm
index 434dde9145c..434dde9145c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/dive_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/dive_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/divrem_1.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/divrem_1.asm
index b2838770064..b2838770064 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/divrem_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/divrem_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/divrem_2.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/divrem_2.asm
index 73ec23c94d5..73ec23c94d5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/divrem_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/divrem_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/gcd_1.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/gcd_1.asm
index 8762bbbef50..a2073441684 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/gcd_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/gcd_1.asm
@@ -43,6 +43,9 @@ define(`up', `r3')
define(`n', `r4')
define(`v0', `r5')
+ifdef(`BMOD_1_TO_MOD_1_THRESHOLD',,
+ `define(`BMOD_1_TO_MOD_1_THRESHOLD',30)')
+
EXTERN_FUNC(mpn_mod_1)
EXTERN_FUNC(mpn_modexact_1c_odd)
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/gmp-mparam.h
index f8305f47202..f8305f47202 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/invert_limb.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/invert_limb.asm
index dfdba6451ed..dfdba6451ed 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/invert_limb.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/invert_limb.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mod_1_1.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/mod_1_1.asm
index 873373054f5..873373054f5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mod_1_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/mod_1_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mod_1_4.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/mod_1_4.asm
index 0b7d6bf6997..0b7d6bf6997 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mod_1_4.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/mod_1_4.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mod_34lsub1.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/mod_34lsub1.asm
index c35e0e37a4a..c35e0e37a4a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mod_34lsub1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/mod_34lsub1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mode1o.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/mode1o.asm
index 726339a9310..726339a9310 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mode1o.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/mode1o.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/mul_1.asm
index 27a8f8fb4d1..27a8f8fb4d1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/mul_basecase.asm
index 18731879e4b..18731879e4b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mul_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/mul_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p3/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p3/gmp-mparam.h
index 61a437b6e6c..61a437b6e6c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p3/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p3/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p4/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p4/gmp-mparam.h
new file mode 100644
index 00000000000..d5eff84b741
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p4/gmp-mparam.h
@@ -0,0 +1,212 @@
+/* POWER4/PowerPC970 gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 2008-2010, 2014, 2015 Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 64
+#define GMP_LIMB_BYTES 8
+
+/* 1800 MHz PPC970 */
+/* FFT tuning limit = 15 M */
+/* Generated by tuneup.c, 2015-10-09, gcc 4.0 */
+
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 7
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 9
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 22
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 16
+#define USE_PREINV_DIVREM_1 0
+#define DIV_QR_1N_PI1_METHOD 1
+#define DIV_QR_1_NORM_THRESHOLD 1
+#define DIV_QR_1_UNNORM_THRESHOLD 1
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 35
+
+#define MUL_TOOM22_THRESHOLD 14
+#define MUL_TOOM33_THRESHOLD 53
+#define MUL_TOOM44_THRESHOLD 136
+#define MUL_TOOM6H_THRESHOLD 197
+#define MUL_TOOM8H_THRESHOLD 272
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 89
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 91
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 89
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 90
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 76
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 22
+#define SQR_TOOM3_THRESHOLD 73
+#define SQR_TOOM4_THRESHOLD 202
+#define SQR_TOOM6_THRESHOLD 0 /* always */
+#define SQR_TOOM8_THRESHOLD 430
+
+#define MULMID_TOOM42_THRESHOLD 34
+
+#define MULMOD_BNM1_THRESHOLD 11
+#define SQRMOD_BNM1_THRESHOLD 13
+
+#define MUL_FFT_MODF_THRESHOLD 444 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 444, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \
+ { 10, 5}, { 21, 6}, { 13, 5}, { 28, 6}, \
+ { 19, 7}, { 10, 6}, { 21, 7}, { 11, 6}, \
+ { 23, 7}, { 12, 6}, { 25, 7}, { 21, 8}, \
+ { 11, 7}, { 25, 8}, { 13, 7}, { 28, 8}, \
+ { 15, 7}, { 31, 8}, { 21, 9}, { 11, 8}, \
+ { 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
+ { 39, 9}, { 23, 8}, { 49, 9}, { 27,10}, \
+ { 15, 9}, { 39,10}, { 23, 9}, { 55,11}, \
+ { 15,10}, { 31, 9}, { 71,10}, { 39, 9}, \
+ { 83,10}, { 47, 9}, { 95,10}, { 55,11}, \
+ { 31,10}, { 63, 9}, { 127,10}, { 87,11}, \
+ { 47,10}, { 103,12}, { 31,11}, { 63,10}, \
+ { 135, 9}, { 271,11}, { 79,10}, { 159, 9}, \
+ { 319,10}, { 167,11}, { 95, 9}, { 383, 8}, \
+ { 767,10}, { 199,11}, { 111,12}, { 63,11}, \
+ { 127,10}, { 255, 9}, { 511,10}, { 271, 9}, \
+ { 543,11}, { 143,10}, { 287, 9}, { 575,10}, \
+ { 303, 9}, { 607,11}, { 159,10}, { 319, 9}, \
+ { 639,10}, { 335, 9}, { 671,10}, { 351,12}, \
+ { 95,10}, { 383, 9}, { 767,10}, { 415, 9}, \
+ { 831,13}, { 63,12}, { 127,11}, { 255,10}, \
+ { 511,11}, { 271,10}, { 543,11}, { 287,10}, \
+ { 575,11}, { 303,10}, { 607,12}, { 159,11}, \
+ { 319,10}, { 639,11}, { 335,10}, { 671,11}, \
+ { 351,10}, { 703,11}, { 383,10}, { 767,11}, \
+ { 415,10}, { 831,12}, { 223,10}, { 895,13}, \
+ { 127,12}, { 255,11}, { 543,12}, { 287,11}, \
+ { 607,12}, { 319,11}, { 671,12}, { 351,11}, \
+ { 703,12}, { 383,11}, { 767,12}, { 415,11}, \
+ { 895,14}, { 127,13}, { 255,12}, { 607,13}, \
+ { 319,12}, { 703,13}, { 383,12}, { 895,14}, \
+ { 255,13}, { 511,12}, { 1023,13}, { 575,12}, \
+ { 1151,13}, { 703,14}, { 383,13}, { 895,15}, \
+ { 255,14}, { 511,13}, { 1023,12}, { 2047,13}, \
+ { 1087,12}, { 2175,13}, { 1151,14}, { 639,13}, \
+ { 1343,12}, { 2687,13}, { 1407,14}, { 767,13}, \
+ { 1663,14}, { 895,15}, { 32768,16}, { 65536,17}, \
+ { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
+ {2097152,22}, {4194304,23}, {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 159
+#define MUL_FFT_THRESHOLD 9088
+
+#define SQR_FFT_MODF_THRESHOLD 344 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 344, 5}, { 15, 6}, { 8, 5}, { 17, 6}, \
+ { 9, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
+ { 13, 5}, { 28, 6}, { 21, 7}, { 11, 6}, \
+ { 23, 7}, { 12, 6}, { 25, 7}, { 14, 6}, \
+ { 29, 7}, { 21, 8}, { 11, 7}, { 25, 8}, \
+ { 13, 7}, { 27, 8}, { 15, 7}, { 31, 8}, \
+ { 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
+ { 35, 9}, { 19, 8}, { 39, 9}, { 23, 8}, \
+ { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
+ { 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
+ { 67,10}, { 39, 9}, { 79,10}, { 47, 9}, \
+ { 95,10}, { 55,11}, { 31,10}, { 79,11}, \
+ { 47,10}, { 95, 9}, { 191,10}, { 103,12}, \
+ { 31,11}, { 63,10}, { 127, 9}, { 255, 8}, \
+ { 511,10}, { 135, 9}, { 271, 8}, { 543,11}, \
+ { 79, 9}, { 319, 8}, { 639,11}, { 95,10}, \
+ { 191, 9}, { 383, 8}, { 767,10}, { 207, 9}, \
+ { 415,12}, { 63,11}, { 127,10}, { 255, 9}, \
+ { 511,10}, { 271, 9}, { 543,10}, { 287, 9}, \
+ { 575,10}, { 303, 9}, { 607,10}, { 319, 9}, \
+ { 639,10}, { 335,11}, { 175,10}, { 351, 9}, \
+ { 703,11}, { 191,10}, { 383, 9}, { 767,11}, \
+ { 207,10}, { 415, 9}, { 831,13}, { 63,12}, \
+ { 127,11}, { 255,10}, { 511,11}, { 271,10}, \
+ { 543,11}, { 287,10}, { 575,11}, { 303,10}, \
+ { 607,11}, { 319,10}, { 639,11}, { 335,10}, \
+ { 671,11}, { 351,10}, { 703,12}, { 191,11}, \
+ { 383,10}, { 767,11}, { 415,10}, { 831,12}, \
+ { 223,10}, { 895,11}, { 479,13}, { 127,12}, \
+ { 255,11}, { 543,12}, { 287,11}, { 607,12}, \
+ { 319,11}, { 671,12}, { 351,11}, { 703,13}, \
+ { 191,12}, { 383,11}, { 767,12}, { 415,11}, \
+ { 831,10}, { 1663,11}, { 895,12}, { 479,14}, \
+ { 127,13}, { 255,12}, { 607,13}, { 319,12}, \
+ { 703,13}, { 383,12}, { 831,11}, { 1663,12}, \
+ { 927,14}, { 255,13}, { 511,12}, { 1023,13}, \
+ { 575,12}, { 1151,13}, { 639,12}, { 1279,13}, \
+ { 703,14}, { 383,13}, { 895,15}, { 255,14}, \
+ { 511,13}, { 1023,12}, { 2175,13}, { 1151,12}, \
+ { 2303,13}, { 1215,14}, { 639,13}, { 1343,12}, \
+ { 2687,13}, { 1407,14}, { 767,13}, { 1663,14}, \
+ { 895,15}, { 32768,16}, { 65536,17}, { 131072,18}, \
+ { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
+ {4194304,23}, {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 174
+#define SQR_FFT_THRESHOLD 6272
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 43
+#define MULLO_MUL_N_THRESHOLD 18087
+#define SQRLO_BASECASE_THRESHOLD 2
+#define SQRLO_DC_THRESHOLD 79
+#define SQRLO_SQR_THRESHOLD 12322
+
+#define DC_DIV_QR_THRESHOLD 42
+#define DC_DIVAPPR_Q_THRESHOLD 159
+#define DC_BDIV_QR_THRESHOLD 46
+#define DC_BDIV_Q_THRESHOLD 110
+
+#define INV_MULMOD_BNM1_THRESHOLD 26
+#define INV_NEWTON_THRESHOLD 177
+#define INV_APPR_THRESHOLD 165
+
+#define BINV_NEWTON_THRESHOLD 198
+#define REDC_1_TO_REDC_N_THRESHOLD 56
+
+#define MU_DIV_QR_THRESHOLD 1017
+#define MU_DIVAPPR_Q_THRESHOLD 1142
+#define MUPI_DIV_QR_THRESHOLD 90
+#define MU_BDIV_QR_THRESHOLD 924
+#define MU_BDIV_Q_THRESHOLD 1017
+
+#define POWM_SEC_TABLE 7,17,86,579,1925
+
+#define GET_STR_DC_THRESHOLD 14
+#define GET_STR_PRECOMPUTE_THRESHOLD 23
+#define SET_STR_DC_THRESHOLD 788
+#define SET_STR_PRECOMPUTE_THRESHOLD 1713
+
+#define FAC_DSC_THRESHOLD 512
+#define FAC_ODD_THRESHOLD 25
+
+#define MATRIX22_STRASSEN_THRESHOLD 10
+#define HGCD_THRESHOLD 113
+#define HGCD_APPR_THRESHOLD 115
+#define HGCD_REDUCE_THRESHOLD 4633
+#define GCD_DC_THRESHOLD 330
+#define GCDEXT_DC_THRESHOLD 242
+#define JACOBI_BASE_METHOD 4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p5/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p5/gmp-mparam.h
index 15b009c357a..15b009c357a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p5/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p5/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p6/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p6/aorsmul_1.asm
index 5a85f84f4a8..c572b917e22 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p6/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p6/aorsmul_1.asm
@@ -71,6 +71,8 @@ ifdef(`OPERATION_submul_1',`
define(CLRRSC, `subfc $1, r0, r0')
')
+MULFUNC_PROLOGUE(mpn_addmul_1 mpn_submul_1)
+
ASM_START()
PROLOGUE(func)
std r31, -8(r1)
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p6/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p6/gmp-mparam.h
index c7e2f894ad4..c7e2f894ad4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p6/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p6/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p6/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p6/mul_basecase.asm
index 3d32b46c353..3d32b46c353 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p6/mul_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p6/mul_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aormul_2.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/aormul_2.asm
index 8731e01a894..8731e01a894 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aormul_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/aormul_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/aors_n.asm
index 857c701dec3..857c701dec3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aorsorrlsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/aorsorrlsh1_n.asm
index ddf5fd84b10..ddf5fd84b10 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aorsorrlsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/aorsorrlsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aorsorrlsh2_n.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/aorsorrlsh2_n.asm
index 3f9d88d6ca6..3f9d88d6ca6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aorsorrlsh2_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/aorsorrlsh2_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aorsorrlshC_n.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/aorsorrlshC_n.asm
index 525120262fc..525120262fc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aorsorrlshC_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/aorsorrlshC_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/gcd_1.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/gcd_1.asm
index 47cb40bdc55..47cb40bdc55 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/gcd_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/gcd_1.asm
diff --git a/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/gmp-mparam.h
new file mode 100644
index 00000000000..783f3c6bf75
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p7/gmp-mparam.h
@@ -0,0 +1,245 @@
+/* POWER7 gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 1999-2003, 2009-2011, 2013-2015 Free Software
+Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 64
+#define GMP_LIMB_BYTES 8
+
+/* 3425 MHz POWER8/SMT4 (gcc112.fsffrance.org) */
+/* FFT tuning limit = 100 M */
+/* Generated by tuneup.c, 2015-10-09, gcc 4.9 */
+
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 7
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 6
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 13
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 26
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 9
+#define USE_PREINV_DIVREM_1 0
+#define DIV_QR_1N_PI1_METHOD 1
+#define DIV_QR_1_NORM_THRESHOLD 2
+#define DIV_QR_1_UNNORM_THRESHOLD 1
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 35
+
+#define MUL_TOOM22_THRESHOLD 22
+#define MUL_TOOM33_THRESHOLD 72
+#define MUL_TOOM44_THRESHOLD 202
+#define MUL_TOOM6H_THRESHOLD 278
+#define MUL_TOOM8H_THRESHOLD 406
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 69
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 134
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 128
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 137
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 106
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 32
+#define SQR_TOOM3_THRESHOLD 96
+#define SQR_TOOM4_THRESHOLD 178
+#define SQR_TOOM6_THRESHOLD 270
+#define SQR_TOOM8_THRESHOLD 357
+
+#define MULMID_TOOM42_THRESHOLD 42
+
+#define MULMOD_BNM1_THRESHOLD 16
+#define SQRMOD_BNM1_THRESHOLD 19
+
+#define MUL_FFT_MODF_THRESHOLD 404 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 404, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
+ { 21, 7}, { 12, 6}, { 25, 7}, { 21, 8}, \
+ { 11, 7}, { 25, 8}, { 13, 7}, { 28, 8}, \
+ { 15, 7}, { 32, 8}, { 17, 7}, { 35, 8}, \
+ { 19, 7}, { 39, 8}, { 21, 9}, { 11, 8}, \
+ { 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
+ { 41, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
+ { 15, 9}, { 39,10}, { 23, 9}, { 51,11}, \
+ { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
+ { 79,10}, { 47, 9}, { 95,10}, { 55,11}, \
+ { 31,10}, { 79,11}, { 47,10}, { 95,12}, \
+ { 31,11}, { 63,10}, { 135,11}, { 79,10}, \
+ { 159,11}, { 95,10}, { 191, 9}, { 383,12}, \
+ { 63,11}, { 127,10}, { 255, 9}, { 511,10}, \
+ { 271,11}, { 143,10}, { 287, 9}, { 575,11}, \
+ { 159,10}, { 319,12}, { 95,11}, { 191,10}, \
+ { 383,13}, { 63,12}, { 127,11}, { 255, 9}, \
+ { 1023,10}, { 543, 9}, { 1087,11}, { 287,10}, \
+ { 575, 9}, { 1151,11}, { 303,12}, { 159,11}, \
+ { 319,10}, { 639,11}, { 335,10}, { 671,11}, \
+ { 351,10}, { 703, 9}, { 1407,11}, { 383,10}, \
+ { 767,11}, { 415,10}, { 831,12}, { 223,11}, \
+ { 447,10}, { 895,13}, { 127,12}, { 255,11}, \
+ { 511,10}, { 1023,11}, { 543,10}, { 1087,12}, \
+ { 287,11}, { 575,10}, { 1151,11}, { 607,10}, \
+ { 1215,12}, { 319,11}, { 639,10}, { 1279,11}, \
+ { 671,12}, { 351,11}, { 703,10}, { 1407,13}, \
+ { 191,12}, { 383,11}, { 767,12}, { 415,11}, \
+ { 831,10}, { 1663,12}, { 447,11}, { 895,14}, \
+ { 127,13}, { 255,12}, { 511,11}, { 1023,12}, \
+ { 543,11}, { 1087,10}, { 2175,12}, { 575,11}, \
+ { 1151,12}, { 607,11}, { 1215,13}, { 319,12}, \
+ { 639,11}, { 1279,12}, { 671,11}, { 1343,12}, \
+ { 703,13}, { 383,12}, { 767,11}, { 1535,12}, \
+ { 831,11}, { 1663,13}, { 447,12}, { 959,11}, \
+ { 1919,14}, { 255,13}, { 511,12}, { 1087,11}, \
+ { 2175,13}, { 575,12}, { 1215,11}, { 2431,13}, \
+ { 639,12}, { 1343,13}, { 703,12}, { 1407,14}, \
+ { 383,13}, { 767,12}, { 1535,13}, { 831,12}, \
+ { 1663,13}, { 959,12}, { 1919,15}, { 255,14}, \
+ { 511,13}, { 1023,11}, { 4223,13}, { 1087,12}, \
+ { 2175,13}, { 1215,12}, { 2431,14}, { 639,13}, \
+ { 1343,12}, { 2687,13}, { 1407,12}, { 2815,14}, \
+ { 767,13}, { 1535,12}, { 3071,13}, { 1599,12}, \
+ { 3199,13}, { 1663,14}, { 895,13}, { 1919,15}, \
+ { 511,14}, { 1023,13}, { 2047,12}, { 4095,13}, \
+ { 2175,14}, { 1151,13}, { 2431,12}, { 4863,14}, \
+ { 1279,13}, { 2687,14}, { 1407,13}, { 2815,15}, \
+ { 767,14}, { 1535,13}, { 3199,14}, { 1663,13}, \
+ { 3327,12}, { 6655,13}, { 3455,12}, { 6911,14}, \
+ { 1919,13}, { 3839,16}, { 511,15}, { 1023,14}, \
+ { 2047,13}, { 4095,14}, { 2175,13}, { 4351,12}, \
+ { 8703,14}, { 2431,13}, { 4863,15}, { 1279,14}, \
+ { 2943,13}, { 5887,12}, { 11775,15}, { 1535,14}, \
+ { 3327,13}, { 6655,14}, { 3455,13}, { 6911,15}, \
+ { 1791,14}, { 3583,13}, { 7167,14}, { 3839,16}, \
+ { 1023,15}, { 2047,14}, { 4351,13}, { 8703,14}, \
+ { 4479,15}, { 2303,14}, { 4863,13}, { 9983,15}, \
+ { 2559,14}, { 5247,15}, { 2815,14}, { 5631,13}, \
+ { 11263,14}, { 5887,13}, { 11775,16}, { 65536,17}, \
+ { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
+ {2097152,22}, {4194304,23}, {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 247
+#define MUL_FFT_THRESHOLD 4544
+
+#define SQR_FFT_MODF_THRESHOLD 344 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 344, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
+ { 21, 7}, { 11, 6}, { 23, 7}, { 21, 8}, \
+ { 11, 7}, { 25, 8}, { 13, 7}, { 27, 8}, \
+ { 15, 7}, { 31, 8}, { 21, 9}, { 11, 8}, \
+ { 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
+ { 41, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
+ { 15, 9}, { 39,10}, { 23, 9}, { 51,11}, \
+ { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
+ { 79,10}, { 55,11}, { 31,10}, { 79,11}, \
+ { 47,10}, { 95,12}, { 31,11}, { 63,10}, \
+ { 127, 9}, { 255,11}, { 79, 9}, { 319,11}, \
+ { 95,10}, { 191, 9}, { 383,12}, { 63,11}, \
+ { 127,10}, { 255, 9}, { 511,10}, { 271, 9}, \
+ { 543,11}, { 143,10}, { 287, 9}, { 575,10}, \
+ { 303, 9}, { 607,10}, { 319,12}, { 95,11}, \
+ { 191,10}, { 383,13}, { 63,12}, { 127,11}, \
+ { 255,10}, { 511,11}, { 271,10}, { 543,11}, \
+ { 287,10}, { 575,11}, { 303,10}, { 607,11}, \
+ { 319,10}, { 639,11}, { 351,10}, { 703,12}, \
+ { 191,11}, { 383,10}, { 767,11}, { 415,12}, \
+ { 223,11}, { 447,10}, { 895,13}, { 127,12}, \
+ { 255,11}, { 511,10}, { 1023,11}, { 543,12}, \
+ { 287,11}, { 575,10}, { 1151,11}, { 607,12}, \
+ { 319,11}, { 639,10}, { 1279,12}, { 351,11}, \
+ { 703,13}, { 191,12}, { 383,11}, { 767,12}, \
+ { 415,11}, { 831,12}, { 447,11}, { 895,14}, \
+ { 127,13}, { 255,12}, { 511,11}, { 1023,12}, \
+ { 575,11}, { 1151,12}, { 607,13}, { 319,12}, \
+ { 639,11}, { 1279,12}, { 671,11}, { 1343,12}, \
+ { 703,11}, { 1407,13}, { 383,12}, { 767,11}, \
+ { 1535,12}, { 831,11}, { 1663,13}, { 447,12}, \
+ { 959,11}, { 1919,14}, { 255,13}, { 511,12}, \
+ { 1087,11}, { 2175,13}, { 575,12}, { 1215,11}, \
+ { 2431,13}, { 639,12}, { 1343,13}, { 703,12}, \
+ { 1407,14}, { 383,13}, { 767,12}, { 1535,13}, \
+ { 831,12}, { 1663,13}, { 959,12}, { 1919,15}, \
+ { 255,14}, { 511,13}, { 1087,12}, { 2175,13}, \
+ { 1215,12}, { 2431,14}, { 639,13}, { 1343,12}, \
+ { 2687,13}, { 1407,12}, { 2815,14}, { 767,13}, \
+ { 1663,14}, { 895,13}, { 1919,12}, { 3839,15}, \
+ { 511,14}, { 1023,13}, { 2175,14}, { 1151,13}, \
+ { 2431,12}, { 4863,14}, { 1407,13}, { 2815,15}, \
+ { 767,14}, { 1535,13}, { 3071,14}, { 1663,13}, \
+ { 3455,14}, { 1791,13}, { 3583,14}, { 1919,13}, \
+ { 3839,16}, { 511,15}, { 1023,14}, { 2431,13}, \
+ { 4863,15}, { 1279,14}, { 2815,13}, { 5631,14}, \
+ { 2943,13}, { 5887,12}, { 11775,15}, { 1535,14}, \
+ { 3199,15}, { 1791,14}, { 3583,13}, { 7679,12}, \
+ { 15359,16}, { 1023,15}, { 2047,14}, { 4223,15}, \
+ { 2303,14}, { 4863,13}, { 9983,15}, { 2815,14}, \
+ { 5631,13}, { 11263,14}, { 5887,13}, { 11775,16}, \
+ { 65536,17}, { 131072,18}, { 262144,19}, { 524288,20}, \
+ {1048576,21}, {2097152,22}, {4194304,23}, {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 212
+#define SQR_FFT_THRESHOLD 2880
+
+#define MULLO_BASECASE_THRESHOLD 3
+#define MULLO_DC_THRESHOLD 23
+#define MULLO_MUL_N_THRESHOLD 8907
+#define SQRLO_BASECASE_THRESHOLD 3
+#define SQRLO_DC_THRESHOLD 114
+#define SQRLO_SQR_THRESHOLD 5742
+
+#define DC_DIV_QR_THRESHOLD 32
+#define DC_DIVAPPR_Q_THRESHOLD 148
+#define DC_BDIV_QR_THRESHOLD 47
+#define DC_BDIV_Q_THRESHOLD 108
+
+#define INV_MULMOD_BNM1_THRESHOLD 58
+#define INV_NEWTON_THRESHOLD 147
+#define INV_APPR_THRESHOLD 132
+
+#define BINV_NEWTON_THRESHOLD 278
+#define REDC_1_TO_REDC_2_THRESHOLD 59
+#define REDC_2_TO_REDC_N_THRESHOLD 0 /* always */
+
+#define MU_DIV_QR_THRESHOLD 1142
+#define MU_DIVAPPR_Q_THRESHOLD 1142
+#define MUPI_DIV_QR_THRESHOLD 50
+#define MU_BDIV_QR_THRESHOLD 1120
+#define MU_BDIV_Q_THRESHOLD 1470
+
+#define POWM_SEC_TABLE 3,25,194,712,2177
+
+#define GET_STR_DC_THRESHOLD 8
+#define GET_STR_PRECOMPUTE_THRESHOLD 17
+#define SET_STR_DC_THRESHOLD 795
+#define SET_STR_PRECOMPUTE_THRESHOLD 2655
+
+#define FAC_DSC_THRESHOLD 378
+#define FAC_ODD_THRESHOLD 24
+
+#define MATRIX22_STRASSEN_THRESHOLD 11
+#define HGCD_THRESHOLD 90
+#define HGCD_APPR_THRESHOLD 136
+#define HGCD_REDUCE_THRESHOLD 2479
+#define GCD_DC_THRESHOLD 393
+#define GCDEXT_DC_THRESHOLD 408
+#define JACOBI_BASE_METHOD 4
diff --git a/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p8/invert_limb.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p8/invert_limb.asm
new file mode 100644
index 00000000000..9c2b79859de
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/p8/invert_limb.asm
@@ -0,0 +1,53 @@
+dnl PowerPC-64 mpn_invert_limb -- Invert a normalized limb.
+
+dnl Copyright 2015 Free Software Foundation, Inc.
+
+dnl This file is part of the GNU MP Library.
+dnl
+dnl The GNU MP Library is free software; you can redistribute it and/or modify
+dnl it under the terms of either:
+dnl
+dnl * the GNU Lesser General Public License as published by the Free
+dnl Software Foundation; either version 3 of the License, or (at your
+dnl option) any later version.
+dnl
+dnl or
+dnl
+dnl * the GNU General Public License as published by the Free Software
+dnl Foundation; either version 2 of the License, or (at your option) any
+dnl later version.
+dnl
+dnl or both in parallel, as here.
+dnl
+dnl The GNU MP Library is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+dnl for more details.
+dnl
+dnl You should have received copies of the GNU General Public License and the
+dnl GNU Lesser General Public License along with the GNU MP Library. If not,
+dnl see https://www.gnu.org/licenses/.
+
+include(`../config.m4')
+
+C cycles/limb (approximate)
+C POWER3/PPC630 -
+C POWER4/PPC970 -
+C POWER5 -
+C POWER6 -
+C POWER7 ?
+C POWER8 32
+
+C This runs on POWER7 and later, but is faster only on later CPUs.
+C We might want to inline this, considering its small footprint.
+
+ASM_START()
+PROLOGUE(mpn_invert_limb)
+ sldi. r4, r3, 1
+ neg r5, r3
+ divdeu r3, r5, r3
+ beq- L(1)
+ blr
+L(1): li r3, -1
+ blr
+EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/rsh1aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/rsh1aors_n.asm
index 7f7734bcef7..1f57bdf8d3f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/rsh1aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/rsh1aors_n.asm
@@ -60,6 +60,7 @@ define(`x1', `r12')
define(`u0', `r8')
define(`v0', `r10')
+MULFUNC_PROLOGUE(mpn_rsh1add_n mpn_rsh1sub_n)
ASM_START()
PROLOGUE(func)
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/sqr_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/sqr_basecase.asm
index e76bb8878d8..e76bb8878d8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/sqr_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/mode64/sqr_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p6/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/p6/lshift.asm
index 1a200fb3463..1a200fb3463 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p6/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/p6/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p6/lshiftc.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/p6/lshiftc.asm
index e4b3caaab8a..e4b3caaab8a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p6/lshiftc.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/p6/lshiftc.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p6/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/p6/rshift.asm
index 9e848c1fc78..9e848c1fc78 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p6/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/p6/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p7/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/p7/copyd.asm
index f04ca586e88..f04ca586e88 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p7/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/p7/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p7/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/p7/copyi.asm
index 854cf9f8090..854cf9f8090 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p7/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/p7/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p7/hamdist.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/p7/hamdist.asm
index 5af98946f75..5af98946f75 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p7/hamdist.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/p7/hamdist.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p7/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/p7/popcount.asm
index eac72a64935..eac72a64935 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p7/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/p7/popcount.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/rshift.asm
index 7654a16ae8c..7654a16ae8c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/sec_tabselect.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/sec_tabselect.asm
index 085577ca9be..085577ca9be 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/sec_tabselect.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/sec_tabselect.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/umul.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/umul.asm
index 7fcc72f18f5..7fcc72f18f5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/umul.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/umul.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/vmx/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/vmx/popcount.asm
index b95fb88b1ae..b95fb88b1ae 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/vmx/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/powerpc64/vmx/popcount.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/README b/Build/source/libs/gmp/gmp-src/mpn/s390_32/README
index 59519ba5384..59519ba5384 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_32/addmul_1.asm
index 97189a8e765..97189a8e765 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_32/copyd.asm
index ff252bc1a6e..ff252bc1a6e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_32/copyi.asm
index 1df32f100e5..1df32f100e5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/addmul_1.asm
index 4375b74ae09..4375b74ae09 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/aors_n.asm
index 98b0dbc7b08..98b0dbc7b08 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/aorslsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/aorslsh1_n.asm
index f2b222b121d..f2b222b121d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/aorslsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/aorslsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/bdiv_dbm1c.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/bdiv_dbm1c.asm
index 568a2a44e8f..568a2a44e8f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/bdiv_dbm1c.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/bdiv_dbm1c.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/gmp-mparam.h
index a805fa1492d..a805fa1492d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/mul_1.asm
index 04be9636518..04be9636518 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/mul_basecase.asm
index 2c8138d8d28..2c8138d8d28 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/mul_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/mul_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/sqr_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/sqr_basecase.asm
index dcc13112bf3..dcc13112bf3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/sqr_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/sqr_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/submul_1.asm
index a71e57e2307..a71e57e2307 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/esame/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/s390_32/gmp-mparam.h
index 1aca74a8188..1aca74a8188 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/logops_n.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_32/logops_n.asm
index 1f2cd2a8f63..1f2cd2a8f63 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/logops_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/logops_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_32/lshift.asm
index da7d76e844a..da7d76e844a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/lshiftc.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_32/lshiftc.asm
index f6016732494..f6016732494 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/lshiftc.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/lshiftc.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_32/mul_1.asm
index e3ad0c59d8c..e3ad0c59d8c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_32/rshift.asm
index 5f2cf37ca0a..5f2cf37ca0a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_32/submul_1.asm
index da7d849d5d3..da7d849d5d3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_32/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/README b/Build/source/libs/gmp/gmp-src/mpn/s390_64/README
index 8f482a9cd29..52609e8f1df 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/README
@@ -54,7 +54,7 @@ separate feed-in paths.
mpn_lshift, mpn_rshift
-The current code runs at pipeline decode bandwith on z990.
+The current code runs at pipeline decode bandwidth on z990.
mpn_add_n, mpn_sub_n
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_64/addmul_1.asm
index 84cca123613..84cca123613 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/aorrlsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_64/aorrlsh1_n.asm
index 697259efefb..697259efefb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/aorrlsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/aorrlsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_64/aors_n.asm
index a3c3ca791c2..a3c3ca791c2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/bdiv_dbm1c.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_64/bdiv_dbm1c.asm
index 35e900a2797..35e900a2797 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/bdiv_dbm1c.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/bdiv_dbm1c.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_64/copyd.asm
index 8631e19f008..8631e19f008 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_64/copyi.asm
index bfb88814eaa..bfb88814eaa 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/s390_64/gmp-mparam.h
index dacd9966a4b..dacd9966a4b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/invert_limb.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_64/invert_limb.asm
index edcebddf1c0..edcebddf1c0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/invert_limb.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/invert_limb.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/logops_n.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_64/logops_n.asm
index 914cfb6a415..914cfb6a415 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/logops_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/logops_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_64/lshift.asm
index 4dae035a62f..4dae035a62f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/lshiftc.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_64/lshiftc.asm
index 92552d529a3..92552d529a3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/lshiftc.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/lshiftc.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/mod_34lsub1.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_64/mod_34lsub1.asm
index fd40011a8c7..fd40011a8c7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/mod_34lsub1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/mod_34lsub1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_64/mul_1.asm
index a8f6da9a0fb..a8f6da9a0fb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_64/mul_basecase.asm
index 7d14ea98d26..7d14ea98d26 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/mul_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/mul_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_64/rshift.asm
index e870971650c..e870971650c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/sqr_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_64/sqr_basecase.asm
index bf31bd55468..bf31bd55468 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/sqr_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/sqr_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/sublsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_64/sublsh1_n.asm
index 50f127acef9..50f127acef9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/sublsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/sublsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/s390_64/submul_1.asm
index 91c4b06631b..91c4b06631b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-src/mpn/s390_64/z10/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/s390_64/z10/gmp-mparam.h
new file mode 100644
index 00000000000..c3a9416131c
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/s390_64/z10/gmp-mparam.h
@@ -0,0 +1,233 @@
+/* S/390-64 gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 2000-2011, 2014, 2015 Free Software Foundation,
+Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 64
+#define GMP_LIMB_BYTES 8
+
+/* 4400 MHz IBM z10 */
+/* FFT tuning limit = 30 M */
+/* Generated by tuneup.c, 2015-10-09, gcc 4.8 */
+
+#define DIVREM_1_NORM_THRESHOLD 0 /* always */
+#define DIVREM_1_UNNORM_THRESHOLD 3
+#define MOD_1_1P_METHOD 2
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 3
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 6
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 15
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 17
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 24
+#define USE_PREINV_DIVREM_1 1
+#define DIV_QR_1N_PI1_METHOD 1
+#define DIV_QR_1_NORM_THRESHOLD 2
+#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always */
+#define BMOD_1_TO_MOD_1_THRESHOLD 48
+
+#define MUL_TOOM22_THRESHOLD 9
+#define MUL_TOOM33_THRESHOLD 65
+#define MUL_TOOM44_THRESHOLD 94
+#define MUL_TOOM6H_THRESHOLD 129
+#define MUL_TOOM8H_THRESHOLD 187
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 65
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 61
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 62
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 64
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 85
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 11
+#define SQR_TOOM3_THRESHOLD 80
+#define SQR_TOOM4_THRESHOLD 118
+#define SQR_TOOM6_THRESHOLD 189
+#define SQR_TOOM8_THRESHOLD 236
+
+#define MULMID_TOOM42_THRESHOLD 24
+
+#define MULMOD_BNM1_THRESHOLD 7
+#define SQRMOD_BNM1_THRESHOLD 9
+
+#define MUL_FFT_MODF_THRESHOLD 252 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 252, 5}, { 9, 6}, { 5, 5}, { 11, 6}, \
+ { 6, 5}, { 13, 6}, { 7, 5}, { 15, 6}, \
+ { 13, 7}, { 7, 6}, { 15, 7}, { 13, 8}, \
+ { 7, 7}, { 15, 8}, { 9, 7}, { 19, 8}, \
+ { 11, 7}, { 23, 8}, { 13, 9}, { 7, 8}, \
+ { 15, 7}, { 31, 8}, { 19, 9}, { 11, 8}, \
+ { 27,10}, { 7, 9}, { 15, 8}, { 31, 9}, \
+ { 19, 8}, { 41, 9}, { 27,10}, { 15, 9}, \
+ { 39,10}, { 23, 9}, { 47,11}, { 15,10}, \
+ { 31, 9}, { 67,10}, { 39, 9}, { 79,10}, \
+ { 47,11}, { 31,10}, { 63, 9}, { 127, 8}, \
+ { 255,10}, { 71, 9}, { 143, 8}, { 287, 7}, \
+ { 575, 6}, { 1151,10}, { 79,11}, { 47,12}, \
+ { 31,11}, { 63,10}, { 127, 9}, { 255, 8}, \
+ { 511,10}, { 143,11}, { 79,10}, { 159, 9}, \
+ { 319, 8}, { 639,10}, { 175, 8}, { 703,11}, \
+ { 95,10}, { 191, 9}, { 383, 8}, { 767, 9}, \
+ { 415, 8}, { 831, 7}, { 1663,10}, { 239, 9}, \
+ { 479,12}, { 63,11}, { 127,10}, { 255, 9}, \
+ { 511,11}, { 143,10}, { 287, 9}, { 575, 8}, \
+ { 1151,10}, { 319, 9}, { 639,11}, { 175,10}, \
+ { 351, 9}, { 703, 8}, { 1407, 7}, { 2815,11}, \
+ { 191,10}, { 383, 9}, { 767,10}, { 415,11}, \
+ { 223,10}, { 447, 9}, { 895,13}, { 63,11}, \
+ { 255,10}, { 575, 9}, { 1151,12}, { 159,11}, \
+ { 319,10}, { 639, 9}, { 1279,10}, { 703, 9}, \
+ { 1407,12}, { 191,10}, { 767,11}, { 415,12}, \
+ { 223,11}, { 447,10}, { 895,11}, { 479,13}, \
+ { 127,12}, { 255,11}, { 511,12}, { 287,10}, \
+ { 1151,12}, { 319,11}, { 703,10}, { 1407, 9}, \
+ { 2815,12}, { 383,11}, { 767,12}, { 415,11}, \
+ { 831,10}, { 1663,12}, { 447,11}, { 895,10}, \
+ { 1791, 9}, { 3583,12}, { 479,11}, { 959,10}, \
+ { 1919, 9}, { 3839,12}, { 511, 9}, { 4095, 6}, \
+ { 32767, 8}, { 8447,11}, { 1151,13}, { 319,12}, \
+ { 639,10}, { 2559,12}, { 703,10}, { 2815,12}, \
+ { 831,11}, { 1663,12}, { 895,11}, { 1791,12}, \
+ { 959,11}, { 1919,14}, { 255,13}, { 511,11}, \
+ { 2047,12}, { 1215,10}, { 4863,11}, { 2559,14}, \
+ { 383,12}, { 1535,13}, { 831,12}, { 1663,13}, \
+ { 895,12}, { 1791,11}, { 3583,15}, { 255,14}, \
+ { 511,13}, { 1151,14}, { 639,13}, { 1279,12}, \
+ { 2559,13}, { 1407,12}, { 2815,14}, { 767,13}, \
+ { 1663,10}, { 13311,14}, { 895,13}, { 1791,12}, \
+ { 3583,13}, { 1919,12}, { 3839,10}, { 15359,14}, \
+ { 1151,13}, { 2431,12}, { 4863,14}, { 1279,13}, \
+ { 2559,14}, { 1407,13}, { 2815,15}, { 767,14}, \
+ { 1791,13}, { 8192,14}, { 16384,15}, { 32768,16}, \
+ { 65536,17}, { 131072,18}, { 262144,19}, { 524288,20}, \
+ {1048576,21}, {2097152,22}, {4194304,23}, {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 200
+#define MUL_FFT_THRESHOLD 1728
+
+#define SQR_FFT_MODF_THRESHOLD 212 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 212, 5}, { 7, 4}, { 15, 5}, { 9, 4}, \
+ { 19, 6}, { 5, 5}, { 11, 6}, { 6, 5}, \
+ { 13, 6}, { 7, 5}, { 15, 6}, { 9, 5}, \
+ { 19, 6}, { 13, 7}, { 7, 6}, { 15, 7}, \
+ { 9, 6}, { 19, 7}, { 13, 8}, { 7, 7}, \
+ { 16, 8}, { 9, 7}, { 19, 8}, { 11, 7}, \
+ { 23, 8}, { 13, 9}, { 7, 8}, { 19, 9}, \
+ { 11, 8}, { 25,10}, { 7, 9}, { 15, 8}, \
+ { 31, 9}, { 23,10}, { 15, 9}, { 39,10}, \
+ { 23,11}, { 15,10}, { 31, 9}, { 63,10}, \
+ { 47,11}, { 31,10}, { 63, 9}, { 127, 8}, \
+ { 255,10}, { 71, 9}, { 143, 8}, { 287, 7}, \
+ { 575,11}, { 47,12}, { 31,11}, { 63,10}, \
+ { 127, 9}, { 255, 8}, { 511,10}, { 143, 9}, \
+ { 287, 8}, { 575, 7}, { 1151,11}, { 79,10}, \
+ { 159, 9}, { 319,10}, { 175, 9}, { 351, 8}, \
+ { 703, 7}, { 1407,10}, { 191, 9}, { 383,10}, \
+ { 207,11}, { 111,10}, { 223,12}, { 63,11}, \
+ { 127,10}, { 255, 9}, { 511,11}, { 143,10}, \
+ { 287, 9}, { 575, 8}, { 1151,11}, { 159,10}, \
+ { 319, 9}, { 639,11}, { 175,10}, { 351, 9}, \
+ { 703, 8}, { 1407,11}, { 191,10}, { 383,11}, \
+ { 207,10}, { 415,11}, { 223,10}, { 447,13}, \
+ { 63,12}, { 127,11}, { 255,10}, { 511,11}, \
+ { 287,10}, { 575, 9}, { 1151,12}, { 159,11}, \
+ { 319,10}, { 639,11}, { 351,10}, { 703, 9}, \
+ { 1407,12}, { 191,11}, { 383,10}, { 767,11}, \
+ { 415,12}, { 223,11}, { 447,10}, { 895, 9}, \
+ { 1791,13}, { 127,12}, { 255,11}, { 511,12}, \
+ { 287,11}, { 575,10}, { 1151,11}, { 607,12}, \
+ { 319,11}, { 639,12}, { 351,11}, { 703,10}, \
+ { 1407,13}, { 191,12}, { 383,11}, { 767,12}, \
+ { 415,11}, { 831,10}, { 1663,12}, { 447,11}, \
+ { 895,10}, { 1791,14}, { 127,13}, { 255,12}, \
+ { 511,11}, { 1023,10}, { 2047,11}, { 1151,12}, \
+ { 607,13}, { 319,11}, { 1279, 9}, { 5119, 8}, \
+ { 10751, 4}, { 172031, 7}, { 22015,11}, { 1407,10}, \
+ { 2943, 8}, { 11775, 9}, { 6143,12}, { 831, 8}, \
+ { 13311,11}, { 1791,14}, { 255,11}, { 2047,13}, \
+ { 575,12}, { 1151,13}, { 639,12}, { 1279,13}, \
+ { 703,12}, { 1407,11}, { 2815,12}, { 1471, 9}, \
+ { 11775,13}, { 767,12}, { 1535,13}, { 831,12}, \
+ { 1663,13}, { 895,11}, { 3583,13}, { 959,12}, \
+ { 1919,10}, { 7679, 9}, { 15359,11}, { 3967,14}, \
+ { 511,13}, { 1151,12}, { 2303,13}, { 1215,14}, \
+ { 639,13}, { 1279,12}, { 2559,14}, { 767,13}, \
+ { 1663,14}, { 895,15}, { 511,13}, { 2047,14}, \
+ { 1279,13}, { 2815,15}, { 767,14}, { 1791,13}, \
+ { 3583,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
+ { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
+ {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 201
+#define SQR_FFT_THRESHOLD 1344
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 33
+#define MULLO_MUL_N_THRESHOLD 2586
+#define SQRLO_BASECASE_THRESHOLD 0 /* always */
+#define SQRLO_DC_THRESHOLD 63
+#define SQRLO_SQR_THRESHOLD 2663
+
+#define DC_DIV_QR_THRESHOLD 37
+#define DC_DIVAPPR_Q_THRESHOLD 143
+#define DC_BDIV_QR_THRESHOLD 37
+#define DC_BDIV_Q_THRESHOLD 86
+
+#define INV_MULMOD_BNM1_THRESHOLD 16
+#define INV_NEWTON_THRESHOLD 147
+#define INV_APPR_THRESHOLD 141
+
+#define BINV_NEWTON_THRESHOLD 141
+#define REDC_1_TO_REDC_N_THRESHOLD 39
+
+#define MU_DIV_QR_THRESHOLD 807
+#define MU_DIVAPPR_Q_THRESHOLD 807
+#define MUPI_DIV_QR_THRESHOLD 81
+#define MU_BDIV_QR_THRESHOLD 654
+#define MU_BDIV_Q_THRESHOLD 792
+
+#define POWM_SEC_TABLE 1,28,163,1083,2111
+
+#define GET_STR_DC_THRESHOLD 19
+#define GET_STR_PRECOMPUTE_THRESHOLD 33
+#define SET_STR_DC_THRESHOLD 898
+#define SET_STR_PRECOMPUTE_THRESHOLD 2031
+
+#define FAC_DSC_THRESHOLD 372
+#define FAC_ODD_THRESHOLD 23
+
+#define MATRIX22_STRASSEN_THRESHOLD 17
+#define HGCD_THRESHOLD 105
+#define HGCD_APPR_THRESHOLD 111
+#define HGCD_REDUCE_THRESHOLD 1137
+#define GCD_DC_THRESHOLD 285
+#define GCDEXT_DC_THRESHOLD 210
+#define JACOBI_BASE_METHOD 4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sh/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sh/add_n.asm
index 79d17d01299..79d17d01299 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sh/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sh/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sh/sh2/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sh/sh2/addmul_1.asm
index c914b29541e..c914b29541e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sh/sh2/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sh/sh2/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sh/sh2/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sh/sh2/mul_1.asm
index 83548a6953b..83548a6953b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sh/sh2/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sh/sh2/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sh/sh2/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sh/sh2/submul_1.asm
index bef2abd9b25..bef2abd9b25 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sh/sh2/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sh/sh2/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sh/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sh/sub_n.asm
index 465bc806fa9..465bc806fa9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sh/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sh/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/README b/Build/source/libs/gmp/gmp-src/mpn/sparc32/README
index f2dd1160f79..f2dd1160f79 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/add_n.asm
index 8549195d92c..8549195d92c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/addmul_1.asm
index 92d5d78d511..92d5d78d511 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/sparc32/gmp-mparam.h
index a3bc6125430..a3bc6125430 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/lshift.asm
index 8321343d6bb..8321343d6bb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/mul_1.asm
index 42b4168be14..42b4168be14 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/rshift.asm
index e1554766fe1..e1554766fe1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/sparc-defs.m4 b/Build/source/libs/gmp/gmp-src/mpn/sparc32/sparc-defs.m4
index 5a0d4252047..5a0d4252047 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/sparc-defs.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/sparc-defs.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/sub_n.asm
index 24a576d82b8..24a576d82b8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/submul_1.asm
index 73f93770067..73f93770067 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/udiv.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/udiv.asm
index 23ab3de1dbb..23ab3de1dbb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/udiv.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/udiv.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/udiv_nfp.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/udiv_nfp.asm
index ebbb820639e..ebbb820639e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/udiv_nfp.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/udiv_nfp.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/add_n.asm
index c781596dadc..c781596dadc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/addmul_1.asm
index 89da1864577..89da1864577 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/gmp-mparam.h
index 6f9d5a44ca6..6f9d5a44ca6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/mul_1.asm
index 0239cd28cd3..0239cd28cd3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/sqr_diagonal.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/sqr_diagonal.asm
index 3b906ef202e..3b906ef202e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/sqr_diagonal.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/sqr_diagonal.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/sub_n.asm
index 946bc3ff8e2..946bc3ff8e2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/submul_1.asm
index 89200709c4c..89200709c4c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/ultrasparct1/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/umul.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/umul.asm
index 3a20b95cb50..3a20b95cb50 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/umul.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/umul.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/addmul_1.asm
index 00520927843..00520927843 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/gmp-mparam.h
index e57897b439d..e57897b439d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/mul_1.asm
index e26c853aed8..e26c853aed8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/submul_1.asm
index 187314eceff..187314eceff 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/supersparc/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/supersparc/gmp-mparam.h
index 1ac9239e3c5..1ac9239e3c5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/supersparc/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/supersparc/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/supersparc/udiv.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/supersparc/udiv.asm
index 12f66ce6a27..12f66ce6a27 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/supersparc/udiv.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/supersparc/udiv.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/udiv.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/udiv.asm
index 12f66ce6a27..12f66ce6a27 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/udiv.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/udiv.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/umul.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/umul.asm
index 1a2e84b1f6e..1a2e84b1f6e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/umul.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v8/umul.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/README b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/README
index 9b39713271d..9b39713271d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/add_n.asm
index 7bd5974fd38..7bd5974fd38 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/addmul_1.asm
index 2adf7a8a2f7..2adf7a8a2f7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/gmp-mparam.h
index f909e2cf18e..f909e2cf18e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/mul_1.asm
index 40aeffad4f3..40aeffad4f3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/sqr_diagonal.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/sqr_diagonal.asm
index e0242798496..e0242798496 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/sqr_diagonal.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/sqr_diagonal.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/sub_n.asm
index 636c73bf35c..636c73bf35c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/submul_1.asm
index 92d0ce7db9e..92d0ce7db9e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/udiv.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/udiv.asm
index 61dde97a66e..61dde97a66e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/udiv.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc32/v9/udiv.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/README b/Build/source/libs/gmp/gmp-src/mpn/sparc64/README
index e2c051a02b8..e2c051a02b8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/copyd.asm
index ab105d39c78..ab105d39c78 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/copyi.asm
index 45663dc2a35..45663dc2a35 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/dive_1.c b/Build/source/libs/gmp/gmp-src/mpn/sparc64/dive_1.c
index c3fbf01b14c..c3fbf01b14c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/dive_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/dive_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/divrem_1.c b/Build/source/libs/gmp/gmp-src/mpn/sparc64/divrem_1.c
index 531494a94f6..531494a94f6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/divrem_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/divrem_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/gcd_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/gcd_1.asm
index e4d8de6a28e..e4d8de6a28e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/gcd_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/gcd_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/sparc64/gmp-mparam.h
index 5ac2c461c5e..5ac2c461c5e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/lshift.asm
index 90bbb454f0c..90bbb454f0c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/lshiftc.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/lshiftc.asm
index 4a0f0a3e40c..4a0f0a3e40c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/lshiftc.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/lshiftc.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/mod_1.c b/Build/source/libs/gmp/gmp-src/mpn/sparc64/mod_1.c
index f1c51970d97..f1c51970d97 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/mod_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/mod_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/mod_1_4.c b/Build/source/libs/gmp/gmp-src/mpn/sparc64/mod_1_4.c
index cc1b9484bcc..cc1b9484bcc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/mod_1_4.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/mod_1_4.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/mode1o.c b/Build/source/libs/gmp/gmp-src/mpn/sparc64/mode1o.c
index 7c8fc1cf3d8..7c8fc1cf3d8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/mode1o.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/mode1o.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/rshift.asm
index 3f8e11fee7d..3f8e11fee7d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/sec_tabselect.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/sec_tabselect.asm
index 22e0dc5ef12..22e0dc5ef12 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/sec_tabselect.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/sec_tabselect.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/sparc64.h b/Build/source/libs/gmp/gmp-src/mpn/sparc64/sparc64.h
index 09fc16d46a4..09fc16d46a4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/sparc64.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/sparc64.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/add_n.asm
index 92374d2552d..92374d2552d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/addmul_1.asm
index 48a94146ff6..48a94146ff6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/addmul_2.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/addmul_2.asm
index 37674d7423b..37674d7423b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/addmul_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/addmul_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/lshiftc.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/lshiftc.asm
index 47286d569e7..47286d569e7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/lshiftc.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/lshiftc.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/mul_1.asm
index 871d562fcb2..871d562fcb2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/sqr_diagonal.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/sqr_diagonal.asm
index 43c69d31d12..43c69d31d12 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/sqr_diagonal.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/sqr_diagonal.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/sub_n.asm
index 9fb7f707475..9fb7f707475 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/submul_1.asm
index 0bdb566b9f3..0bdb566b9f3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc1234/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc34/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc34/gmp-mparam.h
new file mode 100644
index 00000000000..c88e68059a3
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparc34/gmp-mparam.h
@@ -0,0 +1,222 @@
+/* ultrasparc3/4 gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 1999-2002, 2004, 2006, 2008-2010, 2014, 2015 Free
+Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 64
+#define GMP_LIMB_BYTES 8
+
+/* 1593 MHz ultrasparc3 running Solaris 10 (swift.nada.kth.se) */
+/* FFT tuning limit = 100 M */
+/* Generated by tuneup.c, 2015-10-09, gcc 3.4 */
+
+#define DIVREM_1_NORM_THRESHOLD 0 /* always */
+#define DIVREM_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1_1P_METHOD 2
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 7
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 22
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 29
+#define USE_PREINV_DIVREM_1 1
+#define DIV_QR_1N_PI1_METHOD 1
+#define DIV_QR_1_NORM_THRESHOLD 2
+#define DIV_QR_1_UNNORM_THRESHOLD 1
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always */
+#define BMOD_1_TO_MOD_1_THRESHOLD MP_SIZE_T_MAX /* never */
+
+#define MUL_TOOM22_THRESHOLD 28
+#define MUL_TOOM33_THRESHOLD 93
+#define MUL_TOOM44_THRESHOLD 142
+#define MUL_TOOM6H_THRESHOLD 165
+#define MUL_TOOM8H_THRESHOLD 278
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 93
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 114
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 88
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 50
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 67
+
+#define SQR_BASECASE_THRESHOLD 7
+#define SQR_TOOM2_THRESHOLD 70
+#define SQR_TOOM3_THRESHOLD 101
+#define SQR_TOOM4_THRESHOLD 184
+#define SQR_TOOM6_THRESHOLD 0 /* always */
+#define SQR_TOOM8_THRESHOLD 339
+
+#define MULMID_TOOM42_THRESHOLD 40
+
+#define MULMOD_BNM1_THRESHOLD 14
+#define SQRMOD_BNM1_THRESHOLD 9
+
+#define MUL_FFT_MODF_THRESHOLD 212 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 212, 5}, { 13, 6}, { 17, 7}, { 9, 6}, \
+ { 19, 7}, { 17, 8}, { 9, 7}, { 20, 8}, \
+ { 11, 7}, { 23, 8}, { 13, 9}, { 7, 8}, \
+ { 19, 9}, { 11, 8}, { 25,10}, { 7, 9}, \
+ { 15, 8}, { 33, 9}, { 19, 8}, { 39, 9}, \
+ { 23, 8}, { 47, 9}, { 27,10}, { 15, 9}, \
+ { 39,10}, { 23, 9}, { 47,11}, { 15,10}, \
+ { 31, 9}, { 63, 8}, { 127, 7}, { 255, 9}, \
+ { 67,10}, { 39, 9}, { 79, 8}, { 159, 7}, \
+ { 319, 9}, { 83,10}, { 47, 9}, { 95, 8}, \
+ { 191, 7}, { 383,10}, { 55,11}, { 31,10}, \
+ { 63, 9}, { 127, 8}, { 255, 7}, { 511,10}, \
+ { 71, 9}, { 143, 8}, { 287,10}, { 79, 9}, \
+ { 159, 8}, { 319, 9}, { 175, 8}, { 351,11}, \
+ { 47,10}, { 95, 9}, { 191, 8}, { 383, 7}, \
+ { 767,10}, { 103,12}, { 31,11}, { 63,10}, \
+ { 127, 9}, { 287,11}, { 79,10}, { 159, 9}, \
+ { 319, 8}, { 639,10}, { 175, 9}, { 351, 8}, \
+ { 703,11}, { 95,10}, { 207, 9}, { 415,11}, \
+ { 111,10}, { 223, 9}, { 479,12}, { 63,11}, \
+ { 127,10}, { 255,11}, { 143,10}, { 287, 9}, \
+ { 575,10}, { 319, 9}, { 639,11}, { 175,10}, \
+ { 351,11}, { 191,10}, { 383,11}, { 207,10}, \
+ { 415,11}, { 223,10}, { 447,13}, { 63,12}, \
+ { 127,11}, { 287,10}, { 575,11}, { 319,10}, \
+ { 703,12}, { 191,11}, { 383,12}, { 223,11}, \
+ { 447,13}, { 127,12}, { 287,11}, { 575,12}, \
+ { 351,13}, { 191,12}, { 479,14}, { 127,13}, \
+ { 255,12}, { 575,13}, { 319,12}, { 703,13}, \
+ { 383,12}, { 767,13}, { 447,12}, { 895,14}, \
+ { 255,13}, { 511,12}, { 1023,13}, { 575,12}, \
+ { 1151,13}, { 703,14}, { 383,13}, { 831,12}, \
+ { 1663,13}, { 895,15}, { 255,14}, { 511,13}, \
+ { 1151,14}, { 639,13}, { 1407,12}, { 2815,14}, \
+ { 767,13}, { 1663,14}, { 895,13}, { 1791,15}, \
+ { 511,14}, { 1023,13}, { 2047,14}, { 1151,13}, \
+ { 2303,14}, { 1407,13}, { 2815,15}, { 767,14}, \
+ { 1791,16}, { 511,15}, { 1023,14}, { 2303,15}, \
+ { 1279,14}, { 2815,15}, { 1535,14}, { 3199,15}, \
+ { 1791,16}, { 1023,15}, { 2047,14}, { 4223,15}, \
+ { 2303,14}, { 4863,15}, { 2815,16}, { 65536,17}, \
+ { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
+ {2097152,22}, {4194304,23}, {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 171
+#define MUL_FFT_THRESHOLD 2240
+
+#define SQR_FFT_MODF_THRESHOLD 244 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 244, 5}, { 8, 4}, { 17, 5}, { 15, 6}, \
+ { 8, 5}, { 17, 6}, { 17, 7}, { 9, 6}, \
+ { 19, 7}, { 17, 8}, { 9, 7}, { 20, 8}, \
+ { 11, 7}, { 23, 8}, { 13, 9}, { 7, 8}, \
+ { 19, 9}, { 11, 8}, { 25,10}, { 7, 9}, \
+ { 15, 8}, { 31, 9}, { 19, 8}, { 39, 9}, \
+ { 27,10}, { 15, 9}, { 39,10}, { 23, 9}, \
+ { 47,11}, { 15,10}, { 31, 9}, { 67,10}, \
+ { 39, 9}, { 79, 8}, { 159,10}, { 47, 9}, \
+ { 95,10}, { 55,11}, { 31,10}, { 63, 9}, \
+ { 127, 8}, { 255,10}, { 71, 9}, { 143, 8}, \
+ { 287, 7}, { 575,10}, { 79, 9}, { 159,11}, \
+ { 47, 9}, { 191, 8}, { 383, 7}, { 767, 9}, \
+ { 207,12}, { 31,11}, { 63,10}, { 127, 9}, \
+ { 255, 8}, { 511,10}, { 135, 9}, { 271,10}, \
+ { 143, 9}, { 287,11}, { 79,10}, { 159, 9}, \
+ { 319, 8}, { 639,10}, { 175, 9}, { 351, 8}, \
+ { 703, 7}, { 1407,11}, { 95,10}, { 191, 9}, \
+ { 383, 8}, { 767,10}, { 207, 9}, { 415,10}, \
+ { 223, 9}, { 447,12}, { 63,11}, { 127,10}, \
+ { 271, 9}, { 543,10}, { 287, 9}, { 575, 8}, \
+ { 1151,11}, { 159,10}, { 319, 9}, { 639,10}, \
+ { 351, 9}, { 703, 8}, { 1407, 7}, { 2815,11}, \
+ { 207,10}, { 415, 9}, { 831,11}, { 223,10}, \
+ { 447, 9}, { 895,13}, { 63,11}, { 271,10}, \
+ { 543,11}, { 287,12}, { 159,11}, { 351,10}, \
+ { 703,12}, { 191,11}, { 415,10}, { 831,12}, \
+ { 223,13}, { 127,12}, { 255,11}, { 511,10}, \
+ { 1023,11}, { 543,12}, { 287,11}, { 607,12}, \
+ { 319,11}, { 639,12}, { 415,11}, { 895,12}, \
+ { 479,14}, { 127,13}, { 255,12}, { 543,11}, \
+ { 1087,12}, { 575,11}, { 1151,13}, { 319,12}, \
+ { 639,11}, { 1279,12}, { 703,10}, { 2815,12}, \
+ { 831,11}, { 1663,13}, { 447,12}, { 959,14}, \
+ { 255,13}, { 511,12}, { 1087,13}, { 703,12}, \
+ { 1407,14}, { 383,13}, { 767,12}, { 1535,13}, \
+ { 895,15}, { 255,14}, { 511,13}, { 1215,14}, \
+ { 639,13}, { 1279,14}, { 767,13}, { 1663,14}, \
+ { 895,13}, { 1919,15}, { 511,14}, { 1023,13}, \
+ { 2175,14}, { 1151,13}, { 2431,14}, { 1407,15}, \
+ { 767,14}, { 1791,16}, { 511,15}, { 1023,14}, \
+ { 2303,15}, { 1279,14}, { 2815,15}, { 1535,14}, \
+ { 3199,15}, { 1791,16}, { 1023,15}, { 2047,14}, \
+ { 4351,15}, { 2303,14}, { 4863,15}, { 2815,16}, \
+ { 65536,17}, { 131072,18}, { 262144,19}, { 524288,20}, \
+ {1048576,21}, {2097152,22}, {4194304,23}, {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 184
+#define SQR_FFT_THRESHOLD 1728
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 29
+#define MULLO_MUL_N_THRESHOLD 4392
+#define SQRLO_BASECASE_THRESHOLD 2
+#define SQRLO_DC_THRESHOLD 63
+#define SQRLO_SQR_THRESHOLD 3176
+
+#define DC_DIV_QR_THRESHOLD 16
+#define DC_DIVAPPR_Q_THRESHOLD 64
+#define DC_BDIV_QR_THRESHOLD 30
+#define DC_BDIV_Q_THRESHOLD 86
+
+#define INV_MULMOD_BNM1_THRESHOLD 58
+#define INV_NEWTON_THRESHOLD 17
+#define INV_APPR_THRESHOLD 15
+
+#define BINV_NEWTON_THRESHOLD 109
+#define REDC_1_TO_REDC_2_THRESHOLD 0 /* always */
+#define REDC_2_TO_REDC_N_THRESHOLD 117
+
+#define MU_DIV_QR_THRESHOLD 618
+#define MU_DIVAPPR_Q_THRESHOLD 618
+#define MUPI_DIV_QR_THRESHOLD 0 /* always */
+#define MU_BDIV_QR_THRESHOLD 680
+#define MU_BDIV_Q_THRESHOLD 807
+
+#define POWM_SEC_TABLE 3,22,102,579,1555
+
+#define GET_STR_DC_THRESHOLD 20
+#define GET_STR_PRECOMPUTE_THRESHOLD 28
+#define SET_STR_DC_THRESHOLD 381
+#define SET_STR_PRECOMPUTE_THRESHOLD 1042
+
+#define FAC_DSC_THRESHOLD 462
+#define FAC_ODD_THRESHOLD 0 /* always */
+
+#define MATRIX22_STRASSEN_THRESHOLD 12
+#define HGCD_THRESHOLD 45
+#define HGCD_APPR_THRESHOLD 50
+#define HGCD_REDUCE_THRESHOLD 1094
+#define GCD_DC_THRESHOLD 126
+#define GCDEXT_DC_THRESHOLD 132
+#define JACOBI_BASE_METHOD 4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/add_n.asm
index 954c7f6d357..954c7f6d357 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/addlsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/addlsh1_n.asm
index 313479773fd..313479773fd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/addlsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/addlsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/addlsh2_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/addlsh2_n.asm
index ee1afd01160..ee1afd01160 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/addlsh2_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/addlsh2_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/addlshC_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/addlshC_n.asm
index 5be9a0d30aa..5be9a0d30aa 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/addlshC_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/addlshC_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/addmul_1.asm
index 29dba966f3d..29dba966f3d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/gmp-mparam.h
index 99db78ac0f2..99db78ac0f2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/mul_1.asm
index 1fea2a19ef9..1fea2a19ef9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/rsblsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/rsblsh1_n.asm
index 51bd4ab45b8..51bd4ab45b8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/rsblsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/rsblsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/rsblsh2_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/rsblsh2_n.asm
index f0d208e198f..f0d208e198f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/rsblsh2_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/rsblsh2_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/rsblshC_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/rsblshC_n.asm
index 7c03e9f97f2..7c03e9f97f2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/rsblshC_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/rsblshC_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/sub_n.asm
index c2af89f08f9..c2af89f08f9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/sublsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/sublsh1_n.asm
index 8c8fa80401e..8c8fa80401e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/sublsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/sublsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/sublsh2_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/sublsh2_n.asm
index 2fd5eee71af..2fd5eee71af 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/sublsh2_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/sublsh2_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/sublshC_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/sublshC_n.asm
index 01eafef1bce..01eafef1bce 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/sublshC_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/sublshC_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/submul_1.asm
index 4f553a80638..4f553a80638 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct1/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/add_n.asm
index 01707468956..01707468956 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/addmul_1.asm
index 939811e1ce2..939811e1ce2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/aormul_2.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/aormul_2.asm
index ccc6a4408d5..ccc6a4408d5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/aormul_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/aormul_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/aormul_4.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/aormul_4.asm
index 845f6d6d692..845f6d6d692 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/aormul_4.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/aormul_4.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/aorslsh_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/aorslsh_n.asm
index 1014b1ba23a..1014b1ba23a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/aorslsh_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/aorslsh_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/bdiv_dbm1c.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/bdiv_dbm1c.asm
index 550860d3689..550860d3689 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/bdiv_dbm1c.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/bdiv_dbm1c.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/cnd_aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/cnd_aors_n.asm
index f10ee72c1ff..f10ee72c1ff 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/cnd_aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/cnd_aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/dive_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/dive_1.asm
index d7dbdf953c1..d7dbdf953c1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/dive_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/dive_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/hamdist.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/hamdist.asm
index 20ed8bf15b2..20ed8bf15b2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/hamdist.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/hamdist.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/invert_limb.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/invert_limb.asm
index 4da49cf0301..4da49cf0301 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/invert_limb.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/invert_limb.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/missing.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/missing.asm
index c79032dd388..c79032dd388 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/missing.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/missing.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/missing.m4 b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/missing.m4
index e5d6d8e98e6..e5d6d8e98e6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/missing.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/missing.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/mod_1_4.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/mod_1_4.asm
index 08facbd1ccd..08facbd1ccd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/mod_1_4.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/mod_1_4.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/mod_34lsub1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/mod_34lsub1.asm
index 874428069e8..874428069e8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/mod_34lsub1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/mod_34lsub1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/mode1o.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/mode1o.asm
index 494e1d3f4f3..494e1d3f4f3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/mode1o.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/mode1o.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/mul_1.asm
index af05d627bcf..af05d627bcf 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/popcount.asm
index de80f3c8098..de80f3c8098 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/popcount.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/sqr_diag_addlsh1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/sqr_diag_addlsh1.asm
index 216ddc0ba1e..216ddc0ba1e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/sqr_diag_addlsh1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/sqr_diag_addlsh1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/sub_n.asm
index 0e4bc939e30..0e4bc939e30 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/submul_1.asm
index 5635d1bdbd8..5635d1bdbd8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/sparc64/ultrasparct3/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/thumb/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/thumb/add_n.asm
index 08ed60b9be0..08ed60b9be0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/thumb/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/thumb/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/thumb/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/thumb/sub_n.asm
index a38572048ee..a38572048ee 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/thumb/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/thumb/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/vax/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/vax/add_n.asm
index 0a0bf78ab34..0a0bf78ab34 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/vax/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/vax/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/vax/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/vax/addmul_1.asm
index 8a6f636bdf0..8a6f636bdf0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/vax/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/vax/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/vax/elf.m4 b/Build/source/libs/gmp/gmp-src/mpn/vax/elf.m4
index e04f0bafc9f..e04f0bafc9f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/vax/elf.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/vax/elf.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/vax/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/vax/gmp-mparam.h
index 9f20b9b783e..9f20b9b783e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/vax/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/vax/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/vax/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/vax/lshift.asm
index 941e9994b87..941e9994b87 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/vax/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/vax/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/vax/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/vax/mul_1.asm
index 8e4dcd21775..8e4dcd21775 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/vax/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/vax/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/vax/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/vax/rshift.asm
index 00b2daac01e..00b2daac01e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/vax/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/vax/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/vax/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/vax/sub_n.asm
index 2844ef2cc1c..2844ef2cc1c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/vax/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/vax/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/vax/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/vax/submul_1.asm
index 60d47fcd6f7..60d47fcd6f7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/vax/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/vax/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/README b/Build/source/libs/gmp/gmp-src/mpn/x86/README
index 8d7ac9080dd..8d7ac9080dd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/aors_n.asm
index 5d359f59b65..5d359f59b65 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/aorsmul_1.asm
index 54a8905441d..54a8905441d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aorrlsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/aorrlsh1_n.asm
index cd1a650022f..cd1a650022f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aorrlsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/aorrlsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aorrlsh2_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/aorrlsh2_n.asm
index 10f4419de9e..10f4419de9e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aorrlsh2_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/aorrlsh2_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aorrlshC_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/aorrlshC_n.asm
index 71cfe490d6e..71cfe490d6e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aorrlshC_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/aorrlshC_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/aors_n.asm
index 45ec287c3a1..45ec287c3a1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aorslshC_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/aorslshC_n.asm
index 75ace65e513..75ace65e513 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aorslshC_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/aorslshC_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/bdiv_q_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/bdiv_q_1.asm
index 31e908ec446..31e908ec446 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/bdiv_q_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/bdiv_q_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/cnd_add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/cnd_add_n.asm
index 50bf2ad64b8..50bf2ad64b8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/cnd_add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/cnd_add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/cnd_sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/cnd_sub_n.asm
index 221bedca379..221bedca379 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/cnd_sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/cnd_sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/dive_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/dive_1.asm
index 71036a15a4d..71036a15a4d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/dive_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/dive_1.asm
diff --git a/Build/source/libs/gmp/gmp-src/mpn/x86/atom/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/gmp-mparam.h
new file mode 100644
index 00000000000..7e6c4196816
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/gmp-mparam.h
@@ -0,0 +1,207 @@
+/* Intel Atom/32 gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 2000-2011, 2014-2015 Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 32
+#define GMP_LIMB_BYTES 4
+
+/* 1600 MHz Diamondville (Atom 330) */
+/* FFT tuning limit = 50 M */
+/* Generated by tuneup.c, 2015-10-09, gcc 4.7 */
+
+#define MOD_1_NORM_THRESHOLD 3
+#define MOD_1_UNNORM_THRESHOLD 5
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 10
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 10
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 17
+#define USE_PREINV_DIVREM_1 1 /* native */
+#define DIV_QR_1N_PI1_METHOD 1
+#define DIV_QR_1_NORM_THRESHOLD 4
+#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 31
+
+#define MUL_TOOM22_THRESHOLD 20
+#define MUL_TOOM33_THRESHOLD 81
+#define MUL_TOOM44_THRESHOLD 178
+#define MUL_TOOM6H_THRESHOLD 270
+#define MUL_TOOM8H_THRESHOLD 381
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 120
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 126
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 115
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 127
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 106
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 32
+#define SQR_TOOM3_THRESHOLD 121
+#define SQR_TOOM4_THRESHOLD 184
+#define SQR_TOOM6_THRESHOLD 303
+#define SQR_TOOM8_THRESHOLD 527
+
+#define MULMID_TOOM42_THRESHOLD 54
+
+#define MULMOD_BNM1_THRESHOLD 16
+#define SQRMOD_BNM1_THRESHOLD 17
+
+#define MUL_FFT_MODF_THRESHOLD 380 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 380, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
+ { 12, 5}, { 25, 6}, { 21, 7}, { 11, 6}, \
+ { 25, 7}, { 13, 6}, { 27, 7}, { 15, 6}, \
+ { 31, 7}, { 21, 8}, { 11, 7}, { 27, 8}, \
+ { 15, 7}, { 35, 8}, { 19, 7}, { 39, 8}, \
+ { 23, 7}, { 47, 8}, { 27, 9}, { 15, 8}, \
+ { 39, 9}, { 23, 8}, { 51,10}, { 15, 9}, \
+ { 31, 8}, { 67, 9}, { 39, 8}, { 79, 9}, \
+ { 47, 8}, { 99, 9}, { 55,10}, { 31, 9}, \
+ { 79,10}, { 47, 9}, { 95,11}, { 31,10}, \
+ { 63, 9}, { 135,10}, { 79, 9}, { 159,10}, \
+ { 95, 9}, { 191,10}, { 111,11}, { 63,10}, \
+ { 127, 9}, { 255, 8}, { 511, 9}, { 271,10}, \
+ { 143, 9}, { 287, 8}, { 575, 9}, { 303,10}, \
+ { 159, 9}, { 319,11}, { 95,10}, { 191, 9}, \
+ { 383,12}, { 63,11}, { 127,10}, { 255, 9}, \
+ { 511,10}, { 271, 9}, { 543,10}, { 287, 9}, \
+ { 575,10}, { 303,11}, { 159,10}, { 319, 9}, \
+ { 639,10}, { 351,11}, { 191,10}, { 383, 9}, \
+ { 767,10}, { 415,11}, { 223,10}, { 447,12}, \
+ { 127,11}, { 255,10}, { 543,11}, { 287,10}, \
+ { 607,11}, { 319,10}, { 639,11}, { 351,10}, \
+ { 703,12}, { 191,11}, { 383,10}, { 767,11}, \
+ { 415,10}, { 831,11}, { 447,13}, { 127,12}, \
+ { 255,11}, { 543,10}, { 1087,11}, { 607,12}, \
+ { 319,11}, { 735,12}, { 383,11}, { 831,12}, \
+ { 447,11}, { 959,13}, { 255,12}, { 511,11}, \
+ { 1087,12}, { 575,11}, { 1215,12}, { 639,11}, \
+ { 1279,12}, { 703,11}, { 1407,13}, { 383,12}, \
+ { 959,14}, { 255,13}, { 511,12}, { 1215,13}, \
+ { 639,12}, { 1471,13}, { 767,12}, { 1599,13}, \
+ { 895,12}, { 1791,14}, { 511,13}, { 1023,12}, \
+ { 2111,13}, { 1151,12}, { 2431,13}, { 1407,14}, \
+ { 767,13}, { 1663,12}, { 3455,13}, { 1791,15}, \
+ { 511,14}, { 1023,13}, { 2431,14}, { 1279,13}, \
+ { 2943,12}, { 5887,14}, { 1535,13}, { 3455,14}, \
+ { 1791,13}, { 3839,15}, { 1023,14}, { 2047,13}, \
+ { 4223,14}, { 2303,13}, { 4991,12}, { 9983,14}, \
+ { 2815,13}, { 5887,15}, { 32768,16} }
+#define MUL_FFT_TABLE3_SIZE 155
+#define MUL_FFT_THRESHOLD 4544
+
+#define SQR_FFT_MODF_THRESHOLD 340 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 340, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
+ { 12, 5}, { 25, 6}, { 21, 7}, { 11, 6}, \
+ { 25, 7}, { 13, 6}, { 28, 7}, { 15, 6}, \
+ { 31, 7}, { 21, 8}, { 11, 7}, { 27, 8}, \
+ { 15, 7}, { 35, 8}, { 19, 7}, { 41, 8}, \
+ { 23, 7}, { 47, 8}, { 27, 9}, { 15, 8}, \
+ { 39, 9}, { 23, 8}, { 51,10}, { 15, 9}, \
+ { 31, 8}, { 67, 9}, { 39, 8}, { 79, 9}, \
+ { 47,10}, { 31, 9}, { 79,10}, { 47, 9}, \
+ { 95,11}, { 31,10}, { 63, 9}, { 127, 8}, \
+ { 255, 7}, { 511, 9}, { 135, 8}, { 271, 9}, \
+ { 143,10}, { 79, 8}, { 319, 7}, { 639,10}, \
+ { 95, 9}, { 191, 8}, { 383,10}, { 111,11}, \
+ { 63,10}, { 127, 9}, { 255, 8}, { 511, 9}, \
+ { 271, 8}, { 543,10}, { 143, 9}, { 287, 8}, \
+ { 607, 9}, { 319,11}, { 95,10}, { 191,12}, \
+ { 63,11}, { 127,10}, { 255, 9}, { 511,10}, \
+ { 271, 9}, { 543,10}, { 287, 9}, { 575,10}, \
+ { 303, 9}, { 607,10}, { 319, 9}, { 639,10}, \
+ { 335, 9}, { 671,10}, { 351, 9}, { 703,11}, \
+ { 191,10}, { 383, 9}, { 767,10}, { 415,11}, \
+ { 223,10}, { 447,12}, { 127,11}, { 255,10}, \
+ { 543,11}, { 287,10}, { 607,11}, { 319,10}, \
+ { 671,11}, { 351,10}, { 703,12}, { 191,11}, \
+ { 383,10}, { 767,11}, { 415,10}, { 831,11}, \
+ { 479,13}, { 127,12}, { 255,11}, { 543,10}, \
+ { 1087,11}, { 607,12}, { 319,11}, { 671,10}, \
+ { 1343,11}, { 735,12}, { 383,11}, { 831,12}, \
+ { 447,11}, { 959,13}, { 255,12}, { 511,11}, \
+ { 1087,12}, { 575,11}, { 1215,12}, { 639,11}, \
+ { 1343,12}, { 703,13}, { 383,12}, { 959,14}, \
+ { 255,13}, { 511,12}, { 1215,13}, { 639,12}, \
+ { 1471,13}, { 767,12}, { 1599,13}, { 895,14}, \
+ { 511,13}, { 1023,12}, { 2111,13}, { 1151,12}, \
+ { 2431,13}, { 1407,14}, { 767,13}, { 1663,12}, \
+ { 3455,15}, { 511,14}, { 1023,13}, { 2431,14}, \
+ { 1279,13}, { 2943,12}, { 5887,14}, { 1535,13}, \
+ { 3455,14}, { 1791,13}, { 3839,15}, { 1023,14}, \
+ { 2047,13}, { 4351,14}, { 2303,13}, { 4991,12}, \
+ { 9983,14}, { 2815,13}, { 5887,15}, { 32768,16} }
+#define SQR_FFT_TABLE3_SIZE 160
+#define SQR_FFT_THRESHOLD 3712
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 56
+#define MULLO_MUL_N_THRESHOLD 8907
+#define SQRLO_BASECASE_THRESHOLD 0 /* always */
+#define SQRLO_DC_THRESHOLD 114
+#define SQRLO_SQR_THRESHOLD 6654
+
+#define DC_DIV_QR_THRESHOLD 71
+#define DC_DIVAPPR_Q_THRESHOLD 250
+#define DC_BDIV_QR_THRESHOLD 68
+#define DC_BDIV_Q_THRESHOLD 172
+
+#define INV_MULMOD_BNM1_THRESHOLD 38
+#define INV_NEWTON_THRESHOLD 250
+#define INV_APPR_THRESHOLD 250
+
+#define BINV_NEWTON_THRESHOLD 264
+#define REDC_1_TO_REDC_N_THRESHOLD 71
+
+#define MU_DIV_QR_THRESHOLD 1442
+#define MU_DIVAPPR_Q_THRESHOLD 1442
+#define MUPI_DIV_QR_THRESHOLD 114
+#define MU_BDIV_QR_THRESHOLD 1017
+#define MU_BDIV_Q_THRESHOLD 1210
+
+#define POWM_SEC_TABLE 3,16,96,416,1985
+
+#define GET_STR_DC_THRESHOLD 13
+#define GET_STR_PRECOMPUTE_THRESHOLD 25
+#define SET_STR_DC_THRESHOLD 396
+#define SET_STR_PRECOMPUTE_THRESHOLD 1105
+
+#define FAC_DSC_THRESHOLD 224
+#define FAC_ODD_THRESHOLD 29
+
+#define MATRIX22_STRASSEN_THRESHOLD 17
+#define HGCD_THRESHOLD 126
+#define HGCD_APPR_THRESHOLD 165
+#define HGCD_REDUCE_THRESHOLD 2479
+#define GCD_DC_THRESHOLD 511
+#define GCDEXT_DC_THRESHOLD 333
+#define JACOBI_BASE_METHOD 2
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/logops_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/logops_n.asm
index 3cb6d7310c2..3cb6d7310c2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/logops_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/logops_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/lshift.asm
index f2c70dd3e85..f2c70dd3e85 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/lshiftc.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/lshiftc.asm
index 5be53ed19d4..5be53ed19d4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/lshiftc.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/lshiftc.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mmx/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/mmx/copyd.asm
index b80fb033fec..b80fb033fec 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mmx/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/mmx/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mmx/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/mmx/copyi.asm
index 49b6b8d662e..49b6b8d662e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mmx/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/mmx/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mmx/hamdist.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/mmx/hamdist.asm
index 3fe82532404..3fe82532404 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mmx/hamdist.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/mmx/hamdist.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mod_34lsub1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/mod_34lsub1.asm
index 6d57ba385df..6d57ba385df 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mod_34lsub1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/mod_34lsub1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mode1o.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/mode1o.asm
index c9ee6bd2db3..c9ee6bd2db3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mode1o.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/mode1o.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/rshift.asm
index 1cb5dbefe9b..1cb5dbefe9b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/aorsmul_1.asm
index 969a14a9196..969a14a9196 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/bdiv_dbm1c.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/bdiv_dbm1c.asm
index 782e914019c..782e914019c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/bdiv_dbm1c.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/bdiv_dbm1c.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/divrem_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/divrem_1.asm
index f84709a22e4..f84709a22e4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/divrem_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/divrem_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/mod_1_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/mod_1_1.asm
index ae6581d9b65..ae6581d9b65 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/mod_1_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/mod_1_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/mod_1_4.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/mod_1_4.asm
index 31faa3f0a3c..31faa3f0a3c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/mod_1_4.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/mod_1_4.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/mul_1.asm
index aa3bb974bb5..aa3bb974bb5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/mul_basecase.asm
index 97d3aeb5ad7..97d3aeb5ad7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/mul_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/mul_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/popcount.asm
index 7847aec8e66..7847aec8e66 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/popcount.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/sqr_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/sqr_basecase.asm
index af19ed854d9..af19ed854d9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/sqr_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sse2/sqr_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sublsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sublsh1_n.asm
index d3e7e5b5cbd..d3e7e5b5cbd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sublsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sublsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sublsh2_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sublsh2_n.asm
index 79405cf9f4b..79405cf9f4b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sublsh2_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/atom/sublsh2_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bd1/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/bd1/gmp-mparam.h
index 7d80a1cb4c0..7d80a1cb4c0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bd1/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/bd1/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bd2/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/bd2/gmp-mparam.h
index c5a53f2f9f7..57223ea360f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bd2/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/bd2/gmp-mparam.h
@@ -1,7 +1,7 @@
/* AMD bd2 gmp-mparam.h -- Compiler/machine parameter header file.
-Copyright 1991, 1993, 1994, 2000-2005, 2008-2010, 2014 Free Software
-Foundation, Inc.
+Copyright 1991, 1993, 1994, 2000-2005, 2008-2010, 2014, 2015 Free
+Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -34,7 +34,6 @@ see https://www.gnu.org/licenses/. */
/* 4000 MHz Piledriver Vishera */
/* FFT tuning limit = 40000000 */
-/* Generated by tuneup.c, 2014-03-12, gcc 4.8 */
#define MOD_1_NORM_THRESHOLD 0 /* always */
#define MOD_1_UNNORM_THRESHOLD 3
@@ -171,6 +170,9 @@ see https://www.gnu.org/licenses/. */
#define MULLO_BASECASE_THRESHOLD 3
#define MULLO_DC_THRESHOLD 34
#define MULLO_MUL_N_THRESHOLD 13463
+#define SQRLO_BASECASE_THRESHOLD 7
+#define SQRLO_DC_THRESHOLD 43
+#define SQRLO_SQR_THRESHOLD 11278
#define DC_DIV_QR_THRESHOLD 67
#define DC_DIVAPPR_Q_THRESHOLD 196
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bdiv_dbm1c.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/bdiv_dbm1c.asm
index 0288c475cdc..0288c475cdc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bdiv_dbm1c.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/bdiv_dbm1c.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bdiv_q_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/bdiv_q_1.asm
index 825cd296a1f..132de067dba 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bdiv_q_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/bdiv_q_1.asm
@@ -205,4 +205,4 @@ ifdef(`PIC',`
jmp L(common)
EPILOGUE()
-
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bobcat/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/bobcat/gmp-mparam.h
index 198081f9fd8..198081f9fd8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bobcat/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/bobcat/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/cnd_aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/cnd_aors_n.asm
index 74f4917ecc4..74f4917ecc4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/cnd_aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/cnd_aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/copyd.asm
index 51fa19568b0..51fa19568b0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/copyi.asm
index f6b0354b4fb..f6b0354b4fb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/core2/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/core2/gmp-mparam.h
index b370eb58771..b370eb58771 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/core2/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/core2/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/coreihwl/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/coreihwl/gmp-mparam.h
index e2b289cc3cb..e2b289cc3cb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/coreihwl/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/coreihwl/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/coreinhm/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/coreinhm/gmp-mparam.h
index 13289c0c239..13289c0c239 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/coreinhm/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/coreinhm/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/coreisbr/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/coreisbr/gmp-mparam.h
index 9b227a71ba2..9b227a71ba2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/coreisbr/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/coreisbr/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/darwin.m4 b/Build/source/libs/gmp/gmp-src/mpn/x86/darwin.m4
index f8363db3f78..c449216d1c9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/darwin.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/darwin.m4
@@ -1,5 +1,5 @@
divert(-1)
-dnl Copyright 2007, 2011, 2012 Free Software Foundation, Inc.
+dnl Copyright 2007, 2011, 2012, 2014 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -31,6 +31,7 @@ define(`DARWIN')
dnl Usage LEA(symbol,reg)
+dnl Usage LEAL(symbol_local_to_file,reg)
dnl
dnl We maintain lists of stuff to append in load_eip and darwin_bd. The
dnl `index' stuff is needed to suppress repeated definitions. To avoid
@@ -43,7 +44,9 @@ m4_assert_numargs(2)
`ifdef(`PIC',`
ifelse(index(defn(`load_eip'), `$2'),-1,
`m4append(`load_eip',
-`L(movl_eip_`'substr($2,1)):
+` TEXT
+ ALIGN(16)
+L(movl_eip_`'substr($2,1)):
movl (%esp), $2
ret_internal
')')
@@ -61,10 +64,27 @@ L($1`'$non_lazy_ptr):
movl `$'$1, $2
')')
+define(`LEAL',
+m4_assert_numargs(2)
+`ifdef(`PIC',`
+ifelse(index(defn(`load_eip'), `$2'),-1,
+`m4append(`load_eip',
+` TEXT
+ ALIGN(16)
+L(movl_eip_`'substr($2,1)):
+ movl (%esp), $2
+ ret_internal
+')')
+ call L(movl_eip_`'substr($2,1))
+ leal $1-.($2), $2
+',`
+ movl `$'$1, $2
+')')
+
-dnl EPILOGUE_cpu
+dnl ASM_END
-define(`EPILOGUE_cpu',`load_eip`'darwin_bd')
+define(`ASM_END',`load_eip`'darwin_bd')
define(`load_eip', `') dnl updated in LEA
define(`darwin_bd', `') dnl updated in LEA
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/dive_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/dive_1.asm
index 9a6cbb7931d..5bb0f45b1a9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/dive_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/dive_1.asm
@@ -187,3 +187,4 @@ L(one):
ret
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/divrem_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/divrem_1.asm
index 255d4935c38..255d4935c38 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/divrem_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/divrem_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/divrem_2.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/divrem_2.asm
index 4c38ad0acb9..4c38ad0acb9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/divrem_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/divrem_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/com.c b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/com.c
index d359d4ce730..d359d4ce730 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/com.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/com.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/fat.c b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/fat.c
index 1740813886d..bd84219a9ef 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/fat.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/fat.c
@@ -4,7 +4,7 @@
THEY'RE ALMOST CERTAIN TO BE SUBJECT TO INCOMPATIBLE CHANGES OR DISAPPEAR
COMPLETELY IN FUTURE GNU MP RELEASES.
-Copyright 2003, 2004, 2011, 2012 Free Software Foundation, Inc.
+Copyright 2003, 2004, 2011-2013, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -62,7 +62,7 @@ int __gmpn_cpuid_available (void);
static struct {
const char *name;
- const char vendor[13];
+ const char *vendor;
unsigned fms;
} fake_cpuid_table[] = {
{ "i386", "" },
@@ -76,11 +76,21 @@ static struct {
{ "prescott", "GenuineIntel", MAKE_FMS (15, 3) },
{ "nocona", "GenuineIntel", MAKE_FMS (15, 4) },
{ "core2", "GenuineIntel", MAKE_FMS (6, 0xf) },
- { "coreinhm", "GenuineIntel", MAKE_FMS (6, 0x1a) },
- { "coreiwsm", "GenuineIntel", MAKE_FMS (6, 0x25) },
- { "coreisbr", "GenuineIntel", MAKE_FMS (6, 0x2a) },
- { "coreihwl", "GenuineIntel", MAKE_FMS (6, 0x3c) },
+ { "nehalem", "GenuineIntel", MAKE_FMS (6, 0x1a) },
+ { "nhm", "GenuineIntel", MAKE_FMS (6, 0x1a) },
{ "atom", "GenuineIntel", MAKE_FMS (6, 0x1c) },
+ { "westmere", "GenuineIntel", MAKE_FMS (6, 0x25) },
+ { "wsm", "GenuineIntel", MAKE_FMS (6, 0x25) },
+ { "sandybridge","GenuineIntel", MAKE_FMS (6, 0x2a) },
+ { "sbr", "GenuineIntel", MAKE_FMS (6, 0x2a) },
+ { "silvermont", "GenuineIntel", MAKE_FMS (6, 0x37) },
+ { "slm", "GenuineIntel", MAKE_FMS (6, 0x37) },
+ { "haswell", "GenuineIntel", MAKE_FMS (6, 0x3c) },
+ { "hwl", "GenuineIntel", MAKE_FMS (6, 0x3c) },
+ { "broadwell", "GenuineIntel", MAKE_FMS (6, 0x3d) },
+ { "bwl", "GenuineIntel", MAKE_FMS (6, 0x3d) },
+ { "skylake", "GenuineIntel", MAKE_FMS (6, 0x5e) },
+ { "sky", "GenuineIntel", MAKE_FMS (6, 0x5e) },
{ "k5", "AuthenticAMD", MAKE_FMS (5, 0) },
{ "k6", "AuthenticAMD", MAKE_FMS (5, 3) },
@@ -91,6 +101,10 @@ static struct {
{ "k10", "AuthenticAMD", MAKE_FMS (16, 0) },
{ "bobcat", "AuthenticAMD", MAKE_FMS (20, 1) },
{ "bulldozer", "AuthenticAMD", MAKE_FMS (21, 1) },
+ { "piledriver", "AuthenticAMD", MAKE_FMS (21, 2) },
+ { "steamroller","AuthenticAMD", MAKE_FMS (21, 0x30) },
+ { "excavator", "AuthenticAMD", MAKE_FMS (21, 0x60) },
+ { "jaguar", "AuthenticAMD", MAKE_FMS (22, 1) },
{ "viac3", "CentaurHauls", MAKE_FMS (6, 0) },
{ "viac32", "CentaurHauls", MAKE_FMS (6, 9) },
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/fat_entry.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/fat_entry.asm
index 6e3cb44dd56..25655cfbff9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/fat_entry.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/fat_entry.asm
@@ -1,6 +1,6 @@
dnl x86 fat binary entrypoints.
-dnl Copyright 2003, 2012 Free Software Foundation, Inc.
+dnl Copyright 2003, 2012, 2014 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -66,13 +66,19 @@ dnl $1 in it.
define(FAT_ENTRY,
m4_assert_numargs(2)
` ALIGN(ifdef(`PIC',16,8))
-`'PROLOGUE($1)
-ifdef(`PIC',
-` call L(movl_eip_edx)
+`'PROLOGUE($1)dnl
+ifdef(`PIC',`dnl
+ifdef(`DARWIN',`
+ call L(movl_eip_edx)
+ movl L(___gmpn_cpuvec)$non_lazy_ptr-.(%edx), %edx
+ jmp *m4_empty_if_zero($2)(%edx)
+',`dnl
+ call L(movl_eip_edx)
L(entry_here$2):
addl $_GLOBAL_OFFSET_TABLE_+[.-L(entry_here$2)], %edx
movl GSYM_PREFIX`'__gmpn_cpuvec@GOT(%edx), %edx
jmp *m4_empty_if_zero($2)(%edx)
+')
',`dnl non-PIC
jmp *GSYM_PREFIX`'__gmpn_cpuvec+$2
')
@@ -94,6 +100,13 @@ ifdef(`PIC',`
L(movl_eip_edx):
movl (%esp), %edx
ret_internal
+ifdef(`DARWIN',`
+ .section __IMPORT,__pointers,non_lazy_symbol_pointers
+L(___gmpn_cpuvec)$non_lazy_ptr:
+ .indirect_symbol ___gmpn_cpuvec
+ .long 0
+ TEXT
+')
')
@@ -120,7 +133,7 @@ dnl something with $1 in it.
define(FAT_INIT,
m4_assert_numargs(2)
-`PROLOGUE($1)
+`PROLOGUE($1)dnl
movb $`'$2, %al
jmp L(fat_init)
EPILOGUE()
@@ -132,23 +145,32 @@ L(fat_init):
movzbl %al, %eax
pushl %eax
-ifdef(`PIC',`
+ifdef(`PIC',`dnl
+ifdef(`DARWIN',`
+ sub $8, %esp
+ CALL( __gmpn_cpuvec_init)
+ add $8, %esp
+ call L(movl_eip_edx)
+ movl L(___gmpn_cpuvec)$non_lazy_ptr-.(%edx), %edx
+',`dnl
pushl %ebx
call L(movl_eip_ebx)
L(init_here):
addl $_GLOBAL_OFFSET_TABLE_+[.-L(init_here)], %ebx
- call GSYM_PREFIX`'__gmpn_cpuvec_init@PLT
+ CALL( __gmpn_cpuvec_init)
movl GSYM_PREFIX`'__gmpn_cpuvec@GOT(%ebx), %edx
popl %ebx
+')
popl %eax
jmp *(%edx,%eax)
L(movl_eip_ebx):
movl (%esp), %ebx
ret_internal
-
',`dnl non-PIC
- call GSYM_PREFIX`'__gmpn_cpuvec_init
+ sub $8, %esp C needed on Darwin, harmless elsewhere
+ CALL( __gmpn_cpuvec_init)
+ add $8, %esp C needed on Darwin, harmless elsewhere
popl %eax
jmp *GSYM_PREFIX`'__gmpn_cpuvec(%eax)
')
@@ -218,3 +240,4 @@ PROLOGUE(__gmpn_cpuid_available)
L(available):
ret
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/gcd_1.c b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/gcd_1.c
index f809bd80928..f809bd80928 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/gcd_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/gcd_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/gmp-mparam.h
index 3641a6bafad..3641a6bafad 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/lshiftc.c b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/lshiftc.c
index 9ecf48978f9..9ecf48978f9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/lshiftc.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/lshiftc.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1.c b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/mod_1.c
index 4f149cc353c..4f149cc353c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/mod_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1_1.c b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/mod_1_1.c
index 92eaa7a87f6..92eaa7a87f6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/mod_1_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1_2.c b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/mod_1_2.c
index 9095a61c938..9095a61c938 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1_2.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/mod_1_2.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1_4.c b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/mod_1_4.c
index 51c0def4439..51c0def4439 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1_4.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/mod_1_4.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mode1o.c b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/mode1o.c
index 870ddb899bd..870ddb899bd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mode1o.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/mode1o.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mullo_basecase.c b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/mullo_basecase.c
index 7f86be64c52..7f86be64c52 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mullo_basecase.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/mullo_basecase.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/redc_1.c b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/redc_1.c
index 00254033538..00254033538 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/redc_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/redc_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/redc_2.c b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/redc_2.c
index 1932d583231..1932d583231 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/redc_2.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/fat/redc_2.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/geode/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/geode/gmp-mparam.h
index cc9c9f17893..cc9c9f17893 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/geode/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/geode/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/gmp-mparam.h
index 2cb19848892..2cb19848892 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/i486/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/i486/gmp-mparam.h
index aa7dbad45ba..aa7dbad45ba 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/i486/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/i486/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k10/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/k10/gmp-mparam.h
index 2a1ae5a6bb1..90cb96f911e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k10/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k10/gmp-mparam.h
@@ -1,6 +1,6 @@
/* x86/k10 gmp-mparam.h -- Compiler/machine parameter header file.
-Copyright 1991, 1993, 1994, 2000-2011, 2014 Free Software Foundation, Inc.
+Copyright 1991, 1993, 1994, 2000-2011, 2014-2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -170,9 +170,12 @@ see https://www.gnu.org/licenses/. */
#define SQR_FFT_TABLE3_SIZE 172
#define SQR_FFT_THRESHOLD 5504
-#define MULLO_BASECASE_THRESHOLD 7
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
#define MULLO_DC_THRESHOLD 40
#define MULLO_MUL_N_THRESHOLD 13463
+#define SQRLO_BASECASE_THRESHOLD 7
+#define SQRLO_DC_THRESHOLD 143
+#define SQRLO_SQR_THRESHOLD 11000
#define DC_DIV_QR_THRESHOLD 59
#define DC_DIVAPPR_Q_THRESHOLD 270
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/README b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/README
index 1d65af3851f..1d65af3851f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/aors_n.asm
index 168f9b4ae4a..168f9b4ae4a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/aorsmul_1.asm
index eaa92ebb24b..eaa92ebb24b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/cross.pl b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/cross.pl
index fc921a56b71..fc921a56b71 100755
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/cross.pl
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/cross.pl
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/divrem_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/divrem_1.asm
index b4cea4fa2a7..b4cea4fa2a7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/divrem_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/divrem_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/gcd_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/gcd_1.asm
index 0c233ff3626..a45774d3721 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/gcd_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/gcd_1.asm
@@ -1,6 +1,6 @@
dnl AMD K6 mpn_gcd_1 -- mpn by 1 gcd.
-dnl Copyright 2000-2002, 2004 Free Software Foundation, Inc.
+dnl Copyright 2000-2002, 2004, 2014 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -321,15 +321,12 @@ L(modexact):
pushl %ebx FRAME_pushl()
-ifdef(`PIC',`
+ifdef(`PIC_WITH_EBX',`
nop C code alignment
call L(movl_eip_ebx)
-L(here):
- addl $_GLOBAL_OFFSET_TABLE_, %ebx
- call GSYM_PREFIX`'mpn_modexact_1_odd@PLT
-',`
- call GSYM_PREFIX`'mpn_modexact_1_odd
+ add $_GLOBAL_OFFSET_TABLE_, %ebx
')
+ CALL( mpn_modexact_1_odd)
movl %esi, %edx C y odd
movl SAVE_ESI, %esi
@@ -353,7 +350,7 @@ L(here):
ret
-ifdef(`PIC',`
+ifdef(`PIC_WITH_EBX',`
L(movl_eip_ebx):
movl (%esp), %ebx
ret_internal
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/gmp-mparam.h
index f03f1b2d918..f03f1b2d918 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/k62mmx/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/k62mmx/copyd.asm
index f80a5a1cdb5..f80a5a1cdb5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/k62mmx/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/k62mmx/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/k62mmx/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/k62mmx/lshift.asm
index c86575feed9..c86575feed9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/k62mmx/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/k62mmx/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/k62mmx/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/k62mmx/rshift.asm
index f604a7bd529..f604a7bd529 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/k62mmx/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/k62mmx/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/com.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mmx/com.asm
index b747454627b..b747454627b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/com.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mmx/com.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/dive_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mmx/dive_1.asm
index b644dca8cd4..1bbad3a3185 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/dive_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mmx/dive_1.asm
@@ -279,3 +279,4 @@ L(even_two):
ret
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/logops_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mmx/logops_n.asm
index e17930bb2db..e17930bb2db 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/logops_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mmx/logops_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mmx/lshift.asm
index 45be5826337..45be5826337 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mmx/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/popham.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mmx/popham.asm
index 2b19d0b5ee0..2b19d0b5ee0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/popham.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mmx/popham.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mmx/rshift.asm
index cd0382f322c..cd0382f322c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mmx/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mod_34lsub1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mod_34lsub1.asm
index 7e30503e544..7e30503e544 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mod_34lsub1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mod_34lsub1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mode1o.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mode1o.asm
index a13f647b811..4a338bd7bad 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mode1o.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mode1o.asm
@@ -173,3 +173,4 @@ L(entry):
ret
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mul_1.asm
index 3ef7ec24fe7..3ef7ec24fe7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mul_basecase.asm
index 7030001c3f2..7030001c3f2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mul_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/mul_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/pre_mod_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/pre_mod_1.asm
index 34db20d3866..34db20d3866 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/pre_mod_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/pre_mod_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/sqr_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/sqr_basecase.asm
index b7ecb5cc8a1..b7ecb5cc8a1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/sqr_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k6/sqr_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/README b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/README
index 5711b612c5c..5711b612c5c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/addlsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/addlsh1_n.asm
index a957b6f78e6..a957b6f78e6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/addlsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/addlsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/aors_n.asm
index 1a08072029f..1a08072029f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/aorsmul_1.asm
index eec8df6de25..eec8df6de25 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/bdiv_q_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/bdiv_q_1.asm
index df3477f539a..2af7bb9eb30 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/bdiv_q_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/bdiv_q_1.asm
@@ -242,3 +242,4 @@ ifdef(`PIC',`
jmp L(common)
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/dive_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/dive_1.asm
index 8eb4f45ac0f..458bd025395 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/dive_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/dive_1.asm
@@ -205,3 +205,4 @@ L(one):
ret
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/gcd_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/gcd_1.asm
index c7d12c83c01..833d05d934c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/gcd_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/gcd_1.asm
@@ -3,7 +3,8 @@ dnl x86 mpn_gcd_1 optimised for AMD K7.
dnl Contributed to the GNU project by by Kevin Ryde. Rehacked by Torbjorn
dnl Granlund.
-dnl Copyright 2000-2002, 2005, 2009, 2011, 2012 Free Software Foundation, Inc.
+dnl Copyright 2000-2002, 2005, 2009, 2011, 2012, 2014, 2015 Free Software
+dnl Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -53,6 +54,8 @@ C Numbers measured with: speed -CD -s16-32 -t16 mpn_gcd_1
C TODO
C * Tune overhead, this takes 2-3 cycles more than old code when v0 is tiny.
C * Stream things better through registers, avoiding some copying.
+C * For ELF, avoid putting GOT base in both ebx and esi. Needs special
+C LEA/LEAL or else discrete code here.
C ctz_table[n] is the number of trailing zeros on n, or MAXSHIFT if n==0.
@@ -124,9 +127,10 @@ C Both U and V are single limbs, reduce with bmod if u0 >> v0.
jmp L(reduced)
L(reduce_nby1):
-ifdef(`PIC_WITH_EBX',`
+ifdef(`PIC_WITH_EBX',`dnl
push %ebx
- call L(movl_eip_to_ebx)
+ add $-4, %esp
+ call L(movl_eip_ebx)
add $_GLOBAL_OFFSET_TABLE_, %ebx
')
push v0 C param 3
@@ -140,14 +144,16 @@ L(bmod):
CALL( mpn_modexact_1_odd)
L(called):
- add $12, %esp C deallocate params
-ifdef(`PIC_WITH_EBX',`
+ifdef(`PIC_WITH_EBX',`dnl
+ add $16, %esp C deallocate params
pop %ebx
+',`
+ add $12, %esp C deallocate params
')
L(reduced):
pop %edx
- LEA( ctz_table, %esi)
+ LEAL( ctz_table, %esi)
test %eax, %eax
mov %eax, %ecx
jnz L(mid)
@@ -178,9 +184,10 @@ L(shift_alot):
mov %eax, %ecx
jmp L(mid)
-ifdef(`PIC_WITH_EBX',`
-L(movl_eip_to_ebx):
+ifdef(`PIC_WITH_EBX',`dnl
+L(movl_eip_ebx):
mov (%esp), %ebx
ret
')
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-src/mpn/x86/k7/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/gmp-mparam.h
new file mode 100644
index 00000000000..7a507472424
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/gmp-mparam.h
@@ -0,0 +1,253 @@
+/* AMD K7 gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 2000-2005, 2008-2010, 2014, 2015 Free Software
+Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 32
+#define GMP_LIMB_BYTES 4
+
+/* 2083 MHz K7 Barton */
+/* FFT tuning limit = 30 M */
+/* Generated by tuneup.c, 2015-10-11, gcc 4.5 */
+
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 3
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 9
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 24
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 12
+#define USE_PREINV_DIVREM_1 1 /* native */
+#define DIV_QR_1N_PI1_METHOD 1
+#define DIV_QR_1_NORM_THRESHOLD 3
+#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 24
+
+#define MUL_TOOM22_THRESHOLD 28
+#define MUL_TOOM33_THRESHOLD 85
+#define MUL_TOOM44_THRESHOLD 145
+#define MUL_TOOM6H_THRESHOLD 206
+#define MUL_TOOM8H_THRESHOLD 454
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 85
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 99
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 97
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 102
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 124
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 48
+#define SQR_TOOM3_THRESHOLD 83
+#define SQR_TOOM4_THRESHOLD 208
+#define SQR_TOOM6_THRESHOLD 294
+#define SQR_TOOM8_THRESHOLD 430
+
+#define MULMID_TOOM42_THRESHOLD 56
+
+#define MULMOD_BNM1_THRESHOLD 17
+#define SQRMOD_BNM1_THRESHOLD 18
+
+#define MUL_FFT_MODF_THRESHOLD 666 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 666, 5}, { 25, 6}, { 13, 5}, { 27, 6}, \
+ { 25, 7}, { 13, 6}, { 27, 7}, { 15, 6}, \
+ { 32, 7}, { 17, 6}, { 35, 7}, { 19, 6}, \
+ { 39, 7}, { 23, 6}, { 47, 7}, { 27, 8}, \
+ { 15, 7}, { 35, 8}, { 19, 7}, { 41, 8}, \
+ { 23, 7}, { 47, 8}, { 31, 7}, { 63, 8}, \
+ { 39, 9}, { 23, 8}, { 51, 9}, { 31, 8}, \
+ { 67, 9}, { 39, 8}, { 79, 9}, { 47, 8}, \
+ { 95, 9}, { 55,10}, { 31, 9}, { 63, 8}, \
+ { 127, 9}, { 71, 8}, { 143, 9}, { 79,10}, \
+ { 47, 9}, { 103,11}, { 31,10}, { 63, 9}, \
+ { 143,10}, { 79, 9}, { 167,10}, { 95, 9}, \
+ { 199,10}, { 111,11}, { 63,10}, { 143, 9}, \
+ { 287, 8}, { 575,10}, { 159,11}, { 95,10}, \
+ { 191, 9}, { 383, 8}, { 767,10}, { 207,12}, \
+ { 63,11}, { 127,10}, { 271, 9}, { 543, 8}, \
+ { 1087,10}, { 287, 9}, { 575,11}, { 159, 9}, \
+ { 639, 8}, { 1279,10}, { 335, 9}, { 671, 8}, \
+ { 1343, 9}, { 703,11}, { 191,10}, { 383, 9}, \
+ { 767,10}, { 399, 9}, { 799, 8}, { 1599,10}, \
+ { 415, 9}, { 831,11}, { 223,12}, { 127,11}, \
+ { 255,10}, { 543, 9}, { 1087,11}, { 287,10}, \
+ { 575, 9}, { 1151,10}, { 607, 9}, { 1215, 8}, \
+ { 2431,11}, { 319,10}, { 671, 9}, { 1343,11}, \
+ { 351,10}, { 703, 9}, { 1407,12}, { 191,11}, \
+ { 383,10}, { 799, 9}, { 1599,11}, { 415,10}, \
+ { 831, 9}, { 1663,10}, { 863, 9}, { 1727,11}, \
+ { 447,13}, { 127,12}, { 255,11}, { 543,10}, \
+ { 1087, 9}, { 2175,10}, { 1119,11}, { 575,10}, \
+ { 1151,11}, { 607,10}, { 1215, 9}, { 2431,12}, \
+ { 319,11}, { 671,10}, { 1343, 9}, { 2687,11}, \
+ { 735,10}, { 1471, 9}, { 2943,12}, { 383,11}, \
+ { 799,10}, { 1599,11}, { 863,10}, { 1727,12}, \
+ { 447,11}, { 895,10}, { 1791, 9}, { 3583,11}, \
+ { 959,10}, { 1919,11}, { 991,13}, { 255,12}, \
+ { 511,11}, { 1023,10}, { 2111,11}, { 1119,12}, \
+ { 575,11}, { 1151,10}, { 2303,11}, { 1215,10}, \
+ { 2431,12}, { 639,11}, { 1343,10}, { 2687,12}, \
+ { 703,11}, { 1407,10}, { 2815,11}, { 1471,10}, \
+ { 2943,13}, { 383,12}, { 767,11}, { 1599,12}, \
+ { 831,11}, { 1663,10}, { 3327,11}, { 1727,10}, \
+ { 3455,12}, { 895,11}, { 1791,10}, { 3583,12}, \
+ { 959,11}, { 1919,10}, { 3839,14}, { 255,13}, \
+ { 511,12}, { 1023,11}, { 2047,12}, { 1087,11}, \
+ { 2175,10}, { 4351,11}, { 2239,12}, { 1151,11}, \
+ { 2303,12}, { 1215,11}, { 2431,13}, { 639,12}, \
+ { 1343,11}, { 2687,12}, { 1407,11}, { 2815,12}, \
+ { 1471,11}, { 2943,13}, { 767,12}, { 1663,11}, \
+ { 3327,12}, { 1727,13}, { 895,12}, { 1791,11}, \
+ { 3583,12}, { 1919,11}, { 3839,12}, { 1983,11}, \
+ { 3967,14}, { 511,13}, { 1023,12}, { 2239,13}, \
+ { 1151,12}, { 2495,13}, { 1279,12}, { 2623,13}, \
+ { 1407,12}, { 2943,14}, { 767,13}, { 1535,12}, \
+ { 3071,13}, { 1663,12}, { 3455,13}, { 1791,12}, \
+ { 3583,13}, { 1919,12}, { 3967,15}, { 511,14}, \
+ { 1023,13}, { 2047,12}, { 4095,13}, { 2175,12}, \
+ { 4351,13}, { 2431,12}, { 4863,14}, { 1279,13}, \
+ { 2559,12}, { 5119,13}, { 2943,12}, { 5887,14}, \
+ { 1535,13}, { 3071,12}, { 6143,13}, { 3199,12}, \
+ { 6399,13}, { 3327,12}, { 6655,11}, { 13311,12}, \
+ { 6911,14}, { 1791,13}, { 3583,12}, { 7167,13}, \
+ { 8192,14}, { 16384,15}, { 32768,16} }
+#define MUL_FFT_TABLE3_SIZE 247
+#define MUL_FFT_THRESHOLD 7552
+
+#define SQR_FFT_MODF_THRESHOLD 565 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 565, 5}, { 25, 6}, { 13, 5}, { 27, 6}, \
+ { 25, 7}, { 13, 6}, { 27, 7}, { 15, 6}, \
+ { 32, 7}, { 17, 6}, { 35, 7}, { 19, 6}, \
+ { 39, 7}, { 23, 6}, { 47, 7}, { 27, 8}, \
+ { 15, 7}, { 35, 8}, { 19, 7}, { 41, 8}, \
+ { 23, 7}, { 47, 8}, { 27, 9}, { 15, 8}, \
+ { 31, 7}, { 63, 8}, { 39, 9}, { 23, 8}, \
+ { 51, 9}, { 31, 8}, { 67, 9}, { 39, 8}, \
+ { 79, 9}, { 47, 8}, { 95,10}, { 31, 9}, \
+ { 79,10}, { 47, 9}, { 95,11}, { 31,10}, \
+ { 63, 9}, { 143,10}, { 79, 9}, { 167,10}, \
+ { 95, 9}, { 191,10}, { 111,11}, { 63,10}, \
+ { 143, 9}, { 287, 8}, { 575,10}, { 159, 9}, \
+ { 319,11}, { 95,10}, { 191, 9}, { 383, 8}, \
+ { 767,12}, { 63,11}, { 127,10}, { 255, 9}, \
+ { 543, 8}, { 1087,10}, { 287, 9}, { 575, 8}, \
+ { 1151,11}, { 159,10}, { 319, 9}, { 639, 8}, \
+ { 1279,10}, { 335, 9}, { 671, 8}, { 1343,10}, \
+ { 351, 9}, { 703, 8}, { 1407,11}, { 191,10}, \
+ { 383, 9}, { 767,10}, { 399, 9}, { 799, 8}, \
+ { 1599,10}, { 415, 9}, { 831, 8}, { 1663, 9}, \
+ { 863,11}, { 223,10}, { 447, 9}, { 895,12}, \
+ { 127,11}, { 255,10}, { 543, 9}, { 1087,11}, \
+ { 287,10}, { 575, 9}, { 1151,10}, { 607, 9}, \
+ { 1215, 8}, { 2431,11}, { 319,10}, { 671, 9}, \
+ { 1343,11}, { 351,10}, { 703, 9}, { 1407,10}, \
+ { 735,12}, { 191,11}, { 383,10}, { 799, 9}, \
+ { 1599,11}, { 415,10}, { 831, 9}, { 1663,10}, \
+ { 863, 9}, { 1727,11}, { 447,13}, { 127,12}, \
+ { 255,11}, { 511,10}, { 1023,11}, { 543,10}, \
+ { 1087, 9}, { 2175,10}, { 1119,11}, { 575,10}, \
+ { 1151,11}, { 607,10}, { 1215, 9}, { 2431,12}, \
+ { 319,11}, { 639,10}, { 1279,11}, { 671,10}, \
+ { 1343, 9}, { 2687,11}, { 703,10}, { 1407,11}, \
+ { 735,10}, { 1471, 9}, { 2943,12}, { 383,11}, \
+ { 767,10}, { 1535,11}, { 799,10}, { 1599,11}, \
+ { 831,10}, { 1663,11}, { 863,10}, { 1727,12}, \
+ { 447,11}, { 895,10}, { 1791,11}, { 959,10}, \
+ { 1919,11}, { 991,10}, { 1983,13}, { 255,12}, \
+ { 511,11}, { 1023,10}, { 2111,11}, { 1087,12}, \
+ { 575,11}, { 1151,10}, { 2303,11}, { 1215,10}, \
+ { 2431,12}, { 639,11}, { 1343,10}, { 2687,12}, \
+ { 703,11}, { 1407,10}, { 2815,11}, { 1471,10}, \
+ { 2943,13}, { 383,12}, { 767,11}, { 1599,12}, \
+ { 831,11}, { 1663,10}, { 3327,11}, { 1727,10}, \
+ { 3455,12}, { 895,11}, { 1791,10}, { 3583,12}, \
+ { 959,11}, { 1919,10}, { 3839,13}, { 511,12}, \
+ { 1023,11}, { 2047,12}, { 1087,11}, { 2175,10}, \
+ { 4351,11}, { 2239,12}, { 1151,11}, { 2303,12}, \
+ { 1215,11}, { 2431,13}, { 639,12}, { 1343,11}, \
+ { 2687,12}, { 1407,11}, { 2815,12}, { 1471,11}, \
+ { 2943,13}, { 767,12}, { 1599,11}, { 3199,12}, \
+ { 1663,11}, { 3327,12}, { 1727,11}, { 3455,13}, \
+ { 895,12}, { 1791,11}, { 3583,12}, { 1919,11}, \
+ { 3839,12}, { 1983,14}, { 511,13}, { 1023,12}, \
+ { 2239,13}, { 1151,12}, { 2431,13}, { 1279,12}, \
+ { 2687,13}, { 1407,12}, { 2943,14}, { 767,13}, \
+ { 1535,12}, { 3071,13}, { 1663,12}, { 3455,13}, \
+ { 1791,10}, { 14335,12}, { 3967,11}, { 7935,15}, \
+ { 511,14}, { 1023,13}, { 2047,12}, { 4095,13}, \
+ { 2175,12}, { 4351,13}, { 2431,14}, { 1279,13}, \
+ { 2943,12}, { 5887,14}, { 16384,15}, { 32768,16} }
+#define SQR_FFT_TABLE3_SIZE 248
+#define SQR_FFT_THRESHOLD 5760
+
+#define MULLO_BASECASE_THRESHOLD 3
+#define MULLO_DC_THRESHOLD 34
+#define MULLO_MUL_N_THRESHOLD 13463
+#define SQRLO_BASECASE_THRESHOLD 6
+#define SQRLO_DC_THRESHOLD 134
+#define SQRLO_SQR_THRESHOLD 11278
+
+#define DC_DIV_QR_THRESHOLD 47
+#define DC_DIVAPPR_Q_THRESHOLD 206
+#define DC_BDIV_QR_THRESHOLD 41
+#define DC_BDIV_Q_THRESHOLD 140
+
+#define INV_MULMOD_BNM1_THRESHOLD 66
+#define INV_NEWTON_THRESHOLD 189
+#define INV_APPR_THRESHOLD 195
+
+#define BINV_NEWTON_THRESHOLD 220
+#define REDC_1_TO_REDC_N_THRESHOLD 59
+
+#define MU_DIV_QR_THRESHOLD 1528
+#define MU_DIVAPPR_Q_THRESHOLD 1442
+#define MUPI_DIV_QR_THRESHOLD 79
+#define MU_BDIV_QR_THRESHOLD 1258
+#define MU_BDIV_Q_THRESHOLD 1442
+
+#define POWM_SEC_TABLE 1,16,114,452,1221,2577
+
+#define GET_STR_DC_THRESHOLD 15
+#define GET_STR_PRECOMPUTE_THRESHOLD 31
+#define SET_STR_DC_THRESHOLD 274
+#define SET_STR_PRECOMPUTE_THRESHOLD 1100
+
+#define FAC_DSC_THRESHOLD 360
+#define FAC_ODD_THRESHOLD 24
+
+#define MATRIX22_STRASSEN_THRESHOLD 16
+#define HGCD_THRESHOLD 119
+#define HGCD_APPR_THRESHOLD 136
+#define HGCD_REDUCE_THRESHOLD 3389
+#define GCD_DC_THRESHOLD 443
+#define GCDEXT_DC_THRESHOLD 318
+#define JACOBI_BASE_METHOD 1
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/invert_limb.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/invert_limb.asm
index 6cce455a9de..31a867e68a4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/invert_limb.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/invert_limb.asm
@@ -2,7 +2,7 @@ dnl x86 mpn_invert_limb
dnl Contributed to the GNU project by Niels Möller
-dnl Copyright 2009, 2011 Free Software Foundation, Inc.
+dnl Copyright 2009, 2011, 2015 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -79,7 +79,7 @@ deflit(`FRAME', 0)
mov %eax, %edi
shr $22, %eax
ifdef(`PIC',`
- LEA( approx_tab, %ebx)
+ LEAL( approx_tab, %ebx)
movzwl -1024(%ebx, %eax, 2), %eax
',`
movzwl -1024+approx_tab(%eax, %eax), %eax C %eax = v0
@@ -191,3 +191,4 @@ DEF_OBJECT(approx_tab,2)
.value 0x40f4,0x40e3,0x40d3,0x40c2,0x40b2,0x40a2,0x4091,0x4081
.value 0x4071,0x4061,0x4050,0x4040,0x4030,0x4020,0x4010,0x4000
END_OBJECT(approx_tab)
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/com.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/com.asm
index a258c224f12..a258c224f12 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/com.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/com.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/copyd.asm
index 59ece40920b..59ece40920b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/copyi.asm
index 9a28f927ec9..9a28f927ec9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/divrem_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/divrem_1.asm
index cf343280bbd..cf343280bbd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/divrem_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/divrem_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/lshift.asm
index b3383cf2c30..b3383cf2c30 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/popham.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/popham.asm
index 95965b74d40..95965b74d40 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/popham.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/popham.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/rshift.asm
index 345d23a25e3..345d23a25e3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mmx/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mod_1_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mod_1_1.asm
index 1bbe6f92d76..1bbe6f92d76 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mod_1_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mod_1_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mod_1_4.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mod_1_4.asm
index bb7597edd29..bb7597edd29 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mod_1_4.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mod_1_4.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mod_34lsub1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mod_34lsub1.asm
index ee3ad04099d..ee3ad04099d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mod_34lsub1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mod_34lsub1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mode1o.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mode1o.asm
index 6472ec5949b..23940331e69 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mode1o.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mode1o.asm
@@ -178,3 +178,4 @@ L(top):
ret
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mul_1.asm
index 755cd2ed50c..755cd2ed50c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mul_basecase.asm
index 4dfb5008852..4dfb5008852 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mul_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/mul_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/sqr_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/sqr_basecase.asm
index 7b6a97e0df4..7b6a97e0df4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/sqr_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/sqr_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/sublsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/sublsh1_n.asm
index 523b01218db..523b01218db 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/sublsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k7/sublsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k8/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/k8/gmp-mparam.h
index 8d95fef80b7..8d95fef80b7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k8/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/k8/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/lshift.asm
index 6ee6153cc28..6ee6153cc28 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/mmx/sec_tabselect.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/mmx/sec_tabselect.asm
index aae158abf7b..aae158abf7b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/mmx/sec_tabselect.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/mmx/sec_tabselect.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/mod_34lsub1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/mod_34lsub1.asm
index e09e702c6f8..e09e702c6f8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/mod_34lsub1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/mod_34lsub1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/mul_1.asm
index 421de622253..421de622253 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/mul_basecase.asm
index 8339732a80c..8339732a80c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/mul_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/mul_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/nano/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/nano/gmp-mparam.h
index cd8ac4e1d6e..cd8ac4e1d6e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/nano/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/nano/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/README b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/README
index f19d47b94fa..f19d47b94fa 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/aors_n.asm
index df51c2e6f76..df51c2e6f76 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/aorsmul_1.asm
index bc8c49c62e8..bc8c49c62e8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/bdiv_q_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/bdiv_q_1.asm
index 2cc179c2384..a0a9d907abf 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/bdiv_q_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/bdiv_q_1.asm
@@ -284,3 +284,4 @@ ifdef(`PIC',`
jmp L(common)
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/copyd.asm
index 1be7636835e..1be7636835e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/dive_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/dive_1.asm
index aa7ba880c97..7d61a184e93 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/dive_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/dive_1.asm
@@ -264,3 +264,4 @@ L(even_one):
ret
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/gcd_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/gcd_1.asm
index f6518f6e199..eafbf4a79db 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/gcd_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/gcd_1.asm
@@ -2,7 +2,8 @@ dnl x86 mpn_gcd_1 optimised for processors with fast BSF.
dnl Based on the K7 gcd_1.asm, by Kevin Ryde. Rehacked by Torbjorn Granlund.
-dnl Copyright 2000-2002, 2005, 2009, 2011, 2012 Free Software Foundation, Inc.
+dnl Copyright 2000-2002, 2005, 2009, 2011, 2012, 2015 Free Software
+dnl Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -94,8 +95,9 @@ C Both U and V are single limbs, reduce with bmod if u0 >> v0.
L(reduce_nby1):
cmp $BMOD_1_TO_MOD_1_THRESHOLD, n
jl L(bmod)
-ifdef(`PIC_WITH_EBX',`
+ifdef(`PIC_WITH_EBX',`dnl
push %ebx
+ add $-4, %esp
call L(movl_eip_to_ebx)
add $_GLOBAL_OFFSET_TABLE_, %ebx
')
@@ -108,6 +110,7 @@ ifdef(`PIC_WITH_EBX',`
L(bmod):
ifdef(`PIC_WITH_EBX',`dnl
push %ebx
+ add $-4, %esp
call L(movl_eip_to_ebx)
add $_GLOBAL_OFFSET_TABLE_, %ebx
')
@@ -117,9 +120,11 @@ ifdef(`PIC_WITH_EBX',`dnl
CALL( mpn_modexact_1_odd)
L(called):
- add $12, %esp C deallocate params
ifdef(`PIC_WITH_EBX',`dnl
+ add $16, %esp C deallocate params
pop %ebx
+',`
+ add $12, %esp C deallocate params
')
L(reduced):
pop %edx
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/gmp-mparam.h
index 96c96fd5586..96c96fd5586 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/lshsub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/lshsub_n.asm
index 7ada213644b..7ada213644b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/lshsub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/lshsub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/divrem_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/mmx/divrem_1.asm
index 5300616c14d..5300616c14d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/divrem_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/mmx/divrem_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/mmx/gmp-mparam.h
index 35c3aadfc1f..35c3aadfc1f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/mmx/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/mmx/lshift.asm
index febd1c0e6ca..febd1c0e6ca 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/mmx/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/popham.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/mmx/popham.asm
index fd340e4b450..fd340e4b450 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/popham.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/mmx/popham.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/mmx/rshift.asm
index 77aa1909fa7..77aa1909fa7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/mmx/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mod_34lsub1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/mod_34lsub1.asm
index b88ab5d17cd..b88ab5d17cd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mod_34lsub1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/mod_34lsub1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mode1o.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/mode1o.asm
index c62b676e5ad..70831959f72 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mode1o.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/mode1o.asm
@@ -167,3 +167,4 @@ L(top):
ret
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/mul_basecase.asm
index d87bc12b606..d87bc12b606 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mul_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/mul_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/p3mmx/popham.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/p3mmx/popham.asm
index db2f2601c9e..db2f2601c9e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/p3mmx/popham.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/p3mmx/popham.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sqr_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sqr_basecase.asm
index 8fc7fdf3753..8fc7fdf3753 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sqr_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sqr_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/addmul_1.asm
index 144b627aa36..144b627aa36 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/gmp-mparam.h
index 69226289a7d..a1e261b61d0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/gmp-mparam.h
@@ -159,6 +159,9 @@ see https://www.gnu.org/licenses/. */
#define MULLO_BASECASE_THRESHOLD 0 /* always */
#define MULLO_DC_THRESHOLD 31
#define MULLO_MUL_N_THRESHOLD 13463
+#define SQRLO_BASECASE_THRESHOLD 0 /* always */
+#define SQRLO_DC_THRESHOLD 100
+#define SQRLO_SQR_THRESHOLD 9236
#define DC_DIV_QR_THRESHOLD 25
#define DC_DIVAPPR_Q_THRESHOLD 55
@@ -180,14 +183,6 @@ see https://www.gnu.org/licenses/. */
#define POWM_SEC_TABLE 2,23,258,879,2246
-#define MATRIX22_STRASSEN_THRESHOLD 17
-#define HGCD_THRESHOLD 69
-#define HGCD_APPR_THRESHOLD 112
-#define HGCD_REDUCE_THRESHOLD 3389
-#define GCD_DC_THRESHOLD 386
-#define GCDEXT_DC_THRESHOLD 303
-#define JACOBI_BASE_METHOD 1
-
#define GET_STR_DC_THRESHOLD 13
#define GET_STR_PRECOMPUTE_THRESHOLD 25
#define SET_STR_DC_THRESHOLD 582
@@ -195,3 +190,11 @@ see https://www.gnu.org/licenses/. */
#define FAC_DSC_THRESHOLD 178
#define FAC_ODD_THRESHOLD 34
+
+#define MATRIX22_STRASSEN_THRESHOLD 17
+#define HGCD_THRESHOLD 69
+#define HGCD_APPR_THRESHOLD 112
+#define HGCD_REDUCE_THRESHOLD 3389
+#define GCD_DC_THRESHOLD 386
+#define GCDEXT_DC_THRESHOLD 303
+#define JACOBI_BASE_METHOD 1
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mod_1_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/mod_1_1.asm
index 8b7b7adaa5f..8b7b7adaa5f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mod_1_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/mod_1_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mod_1_4.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/mod_1_4.asm
index 49c96c60b9c..49c96c60b9c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mod_1_4.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/mod_1_4.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/mul_1.asm
index 50e5b6983aa..50e5b6983aa 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/mul_basecase.asm
index 4687625790c..4687625790c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mul_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/mul_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/popcount.asm
index 4c02b93be28..4c02b93be28 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/popcount.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/sqr_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/sqr_basecase.asm
index 76b574b6c74..76b574b6c74 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/sqr_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/sqr_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/submul_1.asm
index 98a603ce93e..98a603ce93e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/p6/sse2/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/README b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/README
index 305936bbd94..305936bbd94 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/aors_n.asm
index 01ebfb96ae4..01ebfb96ae4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/aorsmul_1.asm
index d83cc4513b6..d83cc4513b6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/bdiv_q_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/bdiv_q_1.asm
index 9fee3cb87a2..c2c4f58b6d7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/bdiv_q_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/bdiv_q_1.asm
@@ -2,7 +2,7 @@ dnl Intel Pentium mpn_divexact_1 -- mpn by limb exact division.
dnl Rearranged from mpn/x86/pentium/dive_1.asm by Marco Bodrato.
-dnl Copyright 2001, 2002, 2011 Free Software Foundation, Inc.
+dnl Copyright 2001, 2002, 2011, 2014 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -81,6 +81,10 @@ L(strip_twos):
pushl %ebp FRAME_pushl()
ifdef(`PIC',`
+ifdef(`DARWIN',`
+ LEA( binvert_limb_table, %ebp)
+ movzbl (%eax,%ebp), %eax
+',`
call L(here)
L(here):
popl %ebp C eip
@@ -90,6 +94,7 @@ L(here):
movl binvert_limb_table@GOT(%ebp), %ebp
C AGI
movzbl (%eax,%ebp), %eax
+')
',`
dnl non-PIC
@@ -258,3 +263,4 @@ L(one):
ret
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/com.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/com.asm
index b0805452a62..b0805452a62 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/com.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/com.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/copyd.asm
index 72a543b2a37..72a543b2a37 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/copyi.asm
index d983d6b46ec..d983d6b46ec 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/dive_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/dive_1.asm
index f80632f4794..21b5287ca5f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/dive_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/dive_1.asm
@@ -1,6 +1,6 @@
dnl Intel Pentium mpn_divexact_1 -- mpn by limb exact division.
-dnl Copyright 2001, 2002 Free Software Foundation, Inc.
+dnl Copyright 2001, 2002, 2014 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -116,19 +116,10 @@ L(strip_twos):
pushl %ebx FRAME_pushl()
pushl %ebp FRAME_pushl()
-ifdef(`PIC',`
- call L(here)
-L(here):
- popl %ebp C eip
-
- addl $_GLOBAL_OFFSET_TABLE_+[.-L(here)], %ebp
- C AGI
- movl binvert_limb_table@GOT(%ebp), %ebp
- C AGI
- movzbl (%eax,%ebp), %eax
+ifdef(`PIC',`dnl
+ LEA( binvert_limb_table, %ebp)
+ movzbl (%eax,%ebp), %eax C inv 8 bits
',`
-
-dnl non-PIC
movzbl binvert_limb_table(%eax), %eax C inv 8 bits
')
@@ -270,3 +261,4 @@ L(even_entry):
ret
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/gmp-mparam.h
index befa6e27a95..befa6e27a95 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/hamdist.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/hamdist.asm
index 2d7bc99b126..6c6c1a12583 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/hamdist.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/hamdist.asm
@@ -1,6 +1,6 @@
dnl Intel P5 mpn_hamdist -- mpn hamming distance.
-dnl Copyright 2001, 2002 Free Software Foundation, Inc.
+dnl Copyright 2001, 2002, 2014, 2015 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -46,6 +46,9 @@ deflit(TABLE_NAME,
m4_assert_defined(`GSYM_PREFIX')
GSYM_PREFIX`'mpn_popcount``'_table')
+C FIXME: referencing popcount.asm's table is incorrect as it hurt incremental
+C linking.
+
defframe(PARAM_SIZE,12)
defframe(PARAM_SRC2, 8)
defframe(PARAM_SRC1, 4)
@@ -65,7 +68,14 @@ deflit(`FRAME',0)
ifdef(`PIC',`
pushl %ebx FRAME_pushl()
pushl %ebp FRAME_pushl()
-
+ifdef(`DARWIN',`
+ movl PARAM_SRC1, %esi
+ movl PARAM_SRC2, %edi
+ LEA( TABLE_NAME, %ebp)
+ xorl %ebx, %ebx C byte
+ xorl %edx, %edx C byte
+ xorl %eax, %eax C total
+',`
call L(here) FRAME_pushl()
L(here):
movl PARAM_SRC1, %esi
@@ -79,8 +89,8 @@ L(here):
movl TABLE_NAME@GOT(%ebp), %ebp
xorl %eax, %eax C total
+')
define(TABLE,`(%ebp,$1)')
-
',`
dnl non-PIC
movl PARAM_SRC1, %esi
@@ -141,3 +151,4 @@ ifdef(`PIC',`
ret
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/logops_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/logops_n.asm
index 18773172e98..18773172e98 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/logops_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/logops_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/lshift.asm
index 2a31f36c6ed..2a31f36c6ed 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mmx/gmp-mparam.h
index 02a0def127b..02a0def127b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mmx/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/hamdist.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mmx/hamdist.asm
index 72e31966976..72e31966976 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/hamdist.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mmx/hamdist.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mmx/lshift.asm
index 04b0ddcc8f0..04b0ddcc8f0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mmx/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mmx/mul_1.asm
index 4ced577b13a..4ced577b13a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mmx/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mmx/rshift.asm
index e3b274bb636..e3b274bb636 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mmx/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mod_34lsub1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mod_34lsub1.asm
index 2d88223b847..2d88223b847 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mod_34lsub1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mod_34lsub1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mode1o.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mode1o.asm
index eb2790e1a08..a90abca5a56 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mode1o.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mode1o.asm
@@ -1,6 +1,6 @@
dnl Intel Pentium mpn_modexact_1_odd -- exact division style remainder.
-dnl Copyright 2000-2002 Free Software Foundation, Inc.
+dnl Copyright 2000-2002, 2014 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -82,6 +82,18 @@ deflit(`FRAME',0)
L(start_1c):
ifdef(`PIC',`
+ifdef(`DARWIN',`
+ shrl %eax C d/2
+ LEA( binvert_limb_table, %ecx)
+ pushl %ebx FRAME_pushl()
+ movl PARAM_SIZE, %ebx
+
+ andl $127, %eax
+ subl $2, %ebx
+
+ movb (%eax,%ecx), %cl
+ jc L(one_limb)
+',`
call L(here) FRAME_pushl()
L(here):
@@ -99,7 +111,7 @@ L(here):
movb (%eax,%ecx), %cl C inv 8 bits
jc L(one_limb)
-
+')
',`
dnl non-PIC
shrl %eax C d/2
@@ -264,3 +276,4 @@ deflit(`FRAME',4)
ret
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mul_1.asm
index a0858af2b41..a0858af2b41 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mul_2.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mul_2.asm
index 4c7beb5df27..4c7beb5df27 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mul_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mul_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mul_basecase.asm
index 50e15d35672..50e15d35672 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mul_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/mul_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/popcount.asm
index b8d84ad2e2b..0e82144a929 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/popcount.asm
@@ -1,6 +1,6 @@
dnl Intel P5 mpn_popcount -- mpn bit population count.
-dnl Copyright 2001, 2002 Free Software Foundation, Inc.
+dnl Copyright 2001, 2002, 2014, 2015 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -44,6 +44,9 @@ deflit(TABLE_NAME,
m4_assert_defined(`GSYM_PREFIX')
GSYM_PREFIX`'mpn_popcount``'_table')
+C FIXME: exporting the table to hamdist is incorrect as it hurt incremental
+C linking.
+
RODATA
ALIGN(8)
GLOBL TABLE_NAME
@@ -67,7 +70,14 @@ deflit(`FRAME',0)
ifdef(`PIC',`
pushl %ebx FRAME_pushl()
pushl %ebp FRAME_pushl()
-
+ifdef(`DARWIN',`
+ shll %ecx C size in byte pairs
+ LEA( TABLE_NAME, %ebp)
+ movl PARAM_SRC, %esi
+ xorl %eax, %eax C total
+ xorl %ebx, %ebx C byte
+ xorl %edx, %edx C byte
+',`
call L(here)
L(here):
popl %ebp
@@ -81,6 +91,7 @@ L(here):
movl TABLE_NAME@GOT(%ebp), %ebp
xorl %edx, %edx C byte
+')
define(TABLE,`(%ebp,$1)')
',`
dnl non-PIC
@@ -132,3 +143,4 @@ ifdef(`PIC',`
ret
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/rshift.asm
index 2105c4c9352..2105c4c9352 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/sqr_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/sqr_basecase.asm
index b11d767da2f..b11d767da2f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/sqr_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium/sqr_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/README b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/README
index 90f752e5d5a..90f752e5d5a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/copyd.asm
index 82af81c522b..82af81c522b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/copyi.asm
index b6148879fa4..b6148879fa4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/mmx/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/mmx/lshift.asm
index b5eca66698d..b5eca66698d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/mmx/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/mmx/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/mmx/popham.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/mmx/popham.asm
index 9563cb57e49..9563cb57e49 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/mmx/popham.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/mmx/popham.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/mmx/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/mmx/rshift.asm
index 3ac0094a5a0..3ac0094a5a0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/mmx/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/mmx/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/add_n.asm
index 8e2380e4931..8e2380e4931 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/addlsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/addlsh1_n.asm
index 93b63b2018d..93b63b2018d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/addlsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/addlsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/addmul_1.asm
index 78102072bfc..78102072bfc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/bdiv_dbm1c.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/bdiv_dbm1c.asm
index 354300e4de1..354300e4de1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/bdiv_dbm1c.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/bdiv_dbm1c.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/bdiv_q_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/bdiv_q_1.asm
index f7f461d56f0..d5008f4748d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/bdiv_q_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/bdiv_q_1.asm
@@ -231,3 +231,4 @@ ifdef(`PIC',`
jmp L(entry)
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/cnd_add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/cnd_add_n.asm
index b3f3474e675..b3f3474e675 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/cnd_add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/cnd_add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/cnd_sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/cnd_sub_n.asm
index 339a23e0b6e..339a23e0b6e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/cnd_sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/cnd_sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/dive_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/dive_1.asm
index 238f0dd8a50..0ceef5bc8a2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/dive_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/dive_1.asm
@@ -213,3 +213,4 @@ L(done):
ret
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/divrem_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/divrem_1.asm
index 0146fab1177..0146fab1177 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/divrem_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/divrem_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/gmp-mparam.h
index a94ae868b37..a94ae868b37 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mod_1_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/mod_1_1.asm
index ee88babeeea..ee88babeeea 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mod_1_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/mod_1_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mod_1_4.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/mod_1_4.asm
index eb2edb6297d..eb2edb6297d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mod_1_4.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/mod_1_4.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mod_34lsub1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/mod_34lsub1.asm
index 31e25b79bc3..31e25b79bc3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mod_34lsub1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/mod_34lsub1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mode1o.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/mode1o.asm
index 778c478169d..aa9ef31d826 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mode1o.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/mode1o.asm
@@ -172,3 +172,4 @@ L(done):
ret
EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/mul_1.asm
index 6347b8bf624..6347b8bf624 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/mul_basecase.asm
index 6e3775ae096..6e3775ae096 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mul_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/mul_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/popcount.asm
index b8238b9b66e..729f4aa7692 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/popcount.asm
@@ -1,6 +1,6 @@
dnl X86-32 and X86-64 mpn_popcount using SSE2.
-dnl Copyright 2006, 2007, 2011 Free Software Foundation, Inc.
+dnl Copyright 2006, 2007, 2011, 2015 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -58,7 +58,7 @@ C Intel atom 10.8
C VIA nano 6.5
C TODO
-C * Make a mpn_hamdist based on this. Alignment could either be handled by
+C * Make an mpn_hamdist based on this. Alignment could either be handled by
C using movdqu for one operand and movdqa for the other, or by painfully
C shifting as we go. Unfortunately, there seem to be no usable shift
C instruction, except for one that takes an immediate count.
@@ -99,6 +99,10 @@ define(`LIMBS_PER_2XMM', eval(32/GMP_LIMB_BYTES))
undefine(`psadbw') C override inherited m4 version
+C This file is shared between 32-bit and 64-bit builds. Only the former has
+C LEAL. Default LEAL as an alias of LEA.
+ifdef(`LEAL',,`define(`LEAL', `LEA($1,$2)')')
+
ASM_START()
C Make cnsts global to work around Apple relocation bug.
@@ -117,7 +121,7 @@ LIMB32(`push %ebx ')
pxor %xmm3, %xmm3 C zero grand total count
LIMB64(`pxor zero, zero ')
ifdef(`PIC',`
- LEA( cnsts, breg)
+ LEAL( cnsts, breg)
',`
LIMB32(`mov $cnsts, breg ')
LIMB64(`movabs $cnsts, breg ')
@@ -278,3 +282,4 @@ C Masks for low end of number
.byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
.byte 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff
END_OBJECT(dummy)
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/rsh1add_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/rsh1add_n.asm
index f421d1323eb..f421d1323eb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/rsh1add_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/rsh1add_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/sqr_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/sqr_basecase.asm
index 2dd57d25d9a..2dd57d25d9a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/sqr_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/sqr_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/sub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/sub_n.asm
index 5ba1c018ecb..5ba1c018ecb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/sub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/sub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/submul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/submul_1.asm
index 020675bd7bb..020675bd7bb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/submul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/pentium4/sse2/submul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/rshift.asm
index a60dcaa4b23..a60dcaa4b23 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/sec_tabselect.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/sec_tabselect.asm
index c7c2e059f14..c7c2e059f14 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/sec_tabselect.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/sec_tabselect.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/sqr_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/sqr_basecase.asm
index 39f8a89805f..39f8a89805f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/sqr_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/sqr_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/t-zdisp.sh b/Build/source/libs/gmp/gmp-src/mpn/x86/t-zdisp.sh
index 61efdd6c4ff..61efdd6c4ff 100755
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/t-zdisp.sh
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/t-zdisp.sh
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/t-zdisp2.pl b/Build/source/libs/gmp/gmp-src/mpn/x86/t-zdisp2.pl
index b441b6579a7..b441b6579a7 100755
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/t-zdisp2.pl
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/t-zdisp2.pl
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/udiv.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/udiv.asm
index a3ee08860f2..a3ee08860f2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/udiv.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/udiv.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/umul.asm b/Build/source/libs/gmp/gmp-src/mpn/x86/umul.asm
index 34fe4344008..34fe4344008 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/umul.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/umul.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/x86-defs.m4 b/Build/source/libs/gmp/gmp-src/mpn/x86/x86-defs.m4
index 1538b6820c4..56dfa03e681 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86/x86-defs.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86/x86-defs.m4
@@ -1,10 +1,8 @@
divert(-1)
-
dnl m4 macros for x86 assembler.
-
-dnl Copyright 1999-2003, 2007, 2010, 2012 Free Software Foundation, Inc.
+dnl Copyright 1999-2003, 2007, 2010, 2012, 2014 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -954,17 +952,19 @@ m4_assert_numargs(1)
dnl Usage LEA(symbol,reg)
+dnl Usage LEAL(symbol_local_to_file,reg)
define(`LEA',
m4_assert_numargs(2)
-`ifdef(`PIC',`
-define(`EPILOGUE_cpu',
-`
+`ifdef(`PIC',`dnl
+ifelse(index(defn(`load_eip'), `$2'),-1,
+`m4append(`load_eip',
+` TEXT
+ ALIGN(16)
L(movl_eip_`'substr($2,1)):
movl (%esp), $2
ret_internal
- SIZE($'`1, .-$'`1)')
-
+')')dnl
call L(movl_eip_`'substr($2,1))
addl $_GLOBAL_OFFSET_TABLE_, $2
movl $1@GOT($2), $2
@@ -972,6 +972,31 @@ L(movl_eip_`'substr($2,1)):
movl `$'$1, $2
')')
+define(`LEAL',
+m4_assert_numargs(2)
+`ifdef(`PIC',`dnl
+ifelse(index(defn(`load_eip'), `$2'),-1,
+`m4append(`load_eip',
+` TEXT
+ ALIGN(16)
+L(movl_eip_`'substr($2,1)):
+ movl (%esp), $2
+ ret_internal
+')')dnl
+ call L(movl_eip_`'substr($2,1))
+ addl $_GLOBAL_OFFSET_TABLE_, $2
+ leal $1@GOTOFF($2), $2
+',`
+ movl `$'$1, $2
+')')
+
+dnl ASM_END
+
+define(`ASM_END',`load_eip')
+
+define(`load_eip', `') dnl updated in LEA/LEAL
+
+
define(`DEF_OBJECT',
m4_assert_numargs_range(1,2)
`RODATA
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/README b/Build/source/libs/gmp/gmp-src/mpn/x86_64/README
index 9c8a5866227..9c8a5866227 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/addaddmul_1msb0.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/addaddmul_1msb0.asm
index 87c21b4aca9..87c21b4aca9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/addaddmul_1msb0.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/addaddmul_1msb0.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/addmul_2.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/addmul_2.asm
index 18307d719fc..18307d719fc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/addmul_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/addmul_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/aorrlsh1_n.asm
index 6ee08728232..6ee08728232 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/aorrlsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlsh2_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/aorrlsh2_n.asm
index 999e972fb46..999e972fb46 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlsh2_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/aorrlsh2_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlshC_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/aorrlshC_n.asm
index 5a9fd4dfb9d..5a9fd4dfb9d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlshC_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/aorrlshC_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlsh_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/aorrlsh_n.asm
index 5ca128fbf35..5ca128fbf35 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlsh_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/aorrlsh_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aors_err1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/aors_err1_n.asm
index 54d0b3f9b75..54d0b3f9b75 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aors_err1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/aors_err1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aors_err2_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/aors_err2_n.asm
index ce5c2a49b6d..ce5c2a49b6d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aors_err2_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/aors_err2_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aors_err3_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/aors_err3_n.asm
index bb6d0c53662..bb6d0c53662 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aors_err3_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/aors_err3_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/aors_n.asm
index 8941f7a17b9..8941f7a17b9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/aorsmul_1.asm
index e3fc005757f..e3fc005757f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/addmul_2.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/addmul_2.asm
index c1dcdc44aad..c1dcdc44aad 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/addmul_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/addmul_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/aorrlsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/aorrlsh1_n.asm
index f44de19fefc..f44de19fefc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/aorrlsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/aorrlsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/aorrlsh2_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/aorrlsh2_n.asm
index 02fb29dd74f..02fb29dd74f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/aorrlsh2_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/aorrlsh2_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/aors_n.asm
index 2c0b7b31a88..2c0b7b31a88 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/aorsmul_1.asm
index e95315347cc..e95315347cc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/com.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/com.asm
index 6b6460fffeb..6b6460fffeb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/com.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/com.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/copyd.asm
index e3092794c0e..e3092794c0e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/copyi.asm
index 00ec3c23c66..00ec3c23c66 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/dive_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/dive_1.asm
index d9ba5fe6f02..d9ba5fe6f02 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/dive_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/dive_1.asm
diff --git a/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/gmp-mparam.h
new file mode 100644
index 00000000000..229d37bf5cd
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/gmp-mparam.h
@@ -0,0 +1,216 @@
+/* Intel Atom/64 gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 2000-2010, 2012, 2014, 2015 Free Software
+Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 64
+#define GMP_LIMB_BYTES 8
+
+#define SHLD_SLOW 1
+#define SHRD_SLOW 1
+
+/* 1600 MHz Diamondville (Atom 330) */
+/* FFT tuning limit = 25 M */
+/* Generated by tuneup.c, 2015-10-06, gcc 4.7 */
+
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 5
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 4
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD MP_SIZE_T_MAX
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 11
+#define USE_PREINV_DIVREM_1 1 /* native */
+#define DIV_QR_1_NORM_THRESHOLD 1
+#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 16
+
+#define MUL_TOOM22_THRESHOLD 12
+#define MUL_TOOM33_THRESHOLD 74
+#define MUL_TOOM44_THRESHOLD 118
+#define MUL_TOOM6H_THRESHOLD 157
+#define MUL_TOOM8H_THRESHOLD 236
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 73
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 84
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 81
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 80
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 58
+
+#define SQR_BASECASE_THRESHOLD 5
+#define SQR_TOOM2_THRESHOLD 24
+#define SQR_TOOM3_THRESHOLD 57
+#define SQR_TOOM4_THRESHOLD 179
+#define SQR_TOOM6_THRESHOLD 0 /* always */
+#define SQR_TOOM8_THRESHOLD 260
+
+#define MULMID_TOOM42_THRESHOLD 18
+
+#define MULMOD_BNM1_THRESHOLD 9
+#define SQRMOD_BNM1_THRESHOLD 7
+
+#define MUL_FFT_MODF_THRESHOLD 252 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 252, 5}, { 13, 6}, { 7, 5}, { 15, 6}, \
+ { 13, 7}, { 7, 6}, { 17, 7}, { 9, 6}, \
+ { 19, 7}, { 13, 8}, { 7, 7}, { 17, 8}, \
+ { 9, 7}, { 19, 8}, { 11, 7}, { 23, 8}, \
+ { 13, 9}, { 7, 8}, { 19, 9}, { 11, 8}, \
+ { 25,10}, { 7, 9}, { 15, 8}, { 31, 9}, \
+ { 19, 8}, { 39, 9}, { 23, 8}, { 47,10}, \
+ { 15, 9}, { 35,10}, { 23, 9}, { 47,11}, \
+ { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
+ { 79,10}, { 47, 9}, { 95,11}, { 31,10}, \
+ { 63, 9}, { 127, 8}, { 255,10}, { 71, 8}, \
+ { 287,10}, { 79,11}, { 47,10}, { 95,12}, \
+ { 31,11}, { 63,10}, { 127, 9}, { 255, 8}, \
+ { 511,10}, { 143, 9}, { 287,11}, { 79,10}, \
+ { 159, 9}, { 319,10}, { 175, 9}, { 351,11}, \
+ { 95,10}, { 191, 9}, { 383,10}, { 207, 9}, \
+ { 415,10}, { 223,12}, { 63,11}, { 127,10}, \
+ { 255, 9}, { 511,11}, { 143,10}, { 287, 9}, \
+ { 575,11}, { 159,10}, { 319,11}, { 175,10}, \
+ { 351,12}, { 95,11}, { 191,10}, { 383,11}, \
+ { 207,10}, { 415,11}, { 223,13}, { 63,12}, \
+ { 127,11}, { 255,10}, { 511,11}, { 287,10}, \
+ { 575,12}, { 159,11}, { 319,10}, { 639,11}, \
+ { 351,10}, { 703,12}, { 191,11}, { 415,12}, \
+ { 223,11}, { 447,10}, { 895,11}, { 479,13}, \
+ { 127,12}, { 255,11}, { 511,12}, { 287,11}, \
+ { 575,12}, { 319,11}, { 639,12}, { 351,11}, \
+ { 703,13}, { 191,12}, { 479,14}, { 127,13}, \
+ { 255,12}, { 575,13}, { 319,12}, { 703,11}, \
+ { 1407,13}, { 383,12}, { 767,13}, { 447,12}, \
+ { 895,14}, { 255,13}, { 511,12}, { 1023,13}, \
+ { 575,12}, { 1151,13}, { 703,12}, { 1407,14}, \
+ { 383,13}, { 831,12}, { 1663,13}, { 895,15}, \
+ { 255,14}, { 511,13}, { 1087,12}, { 2175,13}, \
+ { 1151,14}, { 639,13}, { 1407,12}, { 2815,14}, \
+ { 767,13}, { 1663,14}, { 895,13}, { 1919,15}, \
+ { 511,14}, { 1023,13}, { 2175,14}, { 1151,13}, \
+ { 2431,12}, { 4863,14}, { 1407,13}, { 2815,15}, \
+ { 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
+ { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
+ {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 161
+#define MUL_FFT_THRESHOLD 2240
+
+#define SQR_FFT_MODF_THRESHOLD 208 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 208, 5}, { 11, 6}, { 6, 5}, { 13, 6}, \
+ { 7, 5}, { 15, 6}, { 13, 7}, { 7, 6}, \
+ { 15, 7}, { 13, 8}, { 7, 7}, { 17, 8}, \
+ { 9, 7}, { 19, 8}, { 11, 7}, { 23, 8}, \
+ { 13, 9}, { 7, 8}, { 19, 9}, { 11, 8}, \
+ { 25,10}, { 7, 9}, { 15, 8}, { 31, 9}, \
+ { 19, 8}, { 39, 9}, { 23,10}, { 15, 9}, \
+ { 39,10}, { 23, 9}, { 51,11}, { 15,10}, \
+ { 31, 9}, { 63, 8}, { 127, 9}, { 67,10}, \
+ { 39, 9}, { 79, 8}, { 159, 7}, { 319,10}, \
+ { 47, 8}, { 191,11}, { 31,10}, { 63, 8}, \
+ { 255,10}, { 71, 9}, { 143, 8}, { 287, 7}, \
+ { 575, 9}, { 159, 8}, { 319,11}, { 47, 9}, \
+ { 191, 8}, { 383,12}, { 31,11}, { 63,10}, \
+ { 127, 9}, { 255, 8}, { 511,10}, { 143, 9}, \
+ { 287, 8}, { 575,10}, { 159, 9}, { 319,10}, \
+ { 175, 9}, { 351, 8}, { 703,10}, { 191, 9}, \
+ { 383,10}, { 207,11}, { 111,10}, { 223, 9}, \
+ { 447,12}, { 63,11}, { 127,10}, { 255, 9}, \
+ { 511,11}, { 143,10}, { 287, 9}, { 575,11}, \
+ { 159,10}, { 319,11}, { 175,10}, { 351, 9}, \
+ { 703,11}, { 191,10}, { 383,11}, { 207,10}, \
+ { 415,11}, { 223,10}, { 447,13}, { 63,12}, \
+ { 127,11}, { 255,10}, { 511,11}, { 287,10}, \
+ { 575,12}, { 159,11}, { 319,10}, { 639,11}, \
+ { 351,10}, { 703,12}, { 191,11}, { 415,12}, \
+ { 223,11}, { 447,10}, { 895,13}, { 127,12}, \
+ { 255,11}, { 511,12}, { 287,11}, { 575,12}, \
+ { 319,11}, { 639,12}, { 351,11}, { 703,13}, \
+ { 191,12}, { 447,11}, { 895,14}, { 127,13}, \
+ { 255,12}, { 511,11}, { 1023,12}, { 575,13}, \
+ { 319,12}, { 703,13}, { 383,12}, { 767,13}, \
+ { 447,12}, { 895,14}, { 255,13}, { 511,12}, \
+ { 1023,13}, { 575,12}, { 1151,13}, { 703,14}, \
+ { 383,13}, { 831,12}, { 1663,13}, { 895,15}, \
+ { 255,14}, { 511,13}, { 1087,12}, { 2175,13}, \
+ { 1151,14}, { 639,13}, { 1407,12}, { 2815,14}, \
+ { 767,13}, { 1663,14}, { 895,13}, { 1791,12}, \
+ { 3583,15}, { 511,14}, { 1023,13}, { 2175,14}, \
+ { 1151,13}, { 2431,12}, { 4863,14}, { 1279,13}, \
+ { 2559,14}, { 1407,13}, { 2815,15}, { 32768,16}, \
+ { 65536,17}, { 131072,18}, { 262144,19}, { 524288,20}, \
+ {1048576,21}, {2097152,22}, {4194304,23}, {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 172
+#define SQR_FFT_THRESHOLD 1728
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 39
+#define MULLO_MUL_N_THRESHOLD 4392
+#define SQRLO_BASECASE_THRESHOLD 0 /* always */
+#define SQRLO_DC_THRESHOLD 107
+#define SQRLO_SQR_THRESHOLD 3176
+
+#define DC_DIV_QR_THRESHOLD 43
+#define DC_DIVAPPR_Q_THRESHOLD 123
+#define DC_BDIV_QR_THRESHOLD 40
+#define DC_BDIV_Q_THRESHOLD 80
+
+#define INV_MULMOD_BNM1_THRESHOLD 22
+#define INV_NEWTON_THRESHOLD 153
+#define INV_APPR_THRESHOLD 138
+
+#define BINV_NEWTON_THRESHOLD 179
+#define REDC_1_TO_REDC_2_THRESHOLD 16
+#define REDC_2_TO_REDC_N_THRESHOLD 43
+
+#define MU_DIV_QR_THRESHOLD 855
+#define MU_DIVAPPR_Q_THRESHOLD 855
+#define MUPI_DIV_QR_THRESHOLD 78
+#define MU_BDIV_QR_THRESHOLD 762
+#define MU_BDIV_Q_THRESHOLD 807
+
+#define POWM_SEC_TABLE 1,16,126,452,1420
+
+#define GET_STR_DC_THRESHOLD 14
+#define GET_STR_PRECOMPUTE_THRESHOLD 29
+#define SET_STR_DC_THRESHOLD 686
+#define SET_STR_PRECOMPUTE_THRESHOLD 1510
+
+#define FAC_DSC_THRESHOLD 1065
+#define FAC_ODD_THRESHOLD 0 /* always */
+
+#define MATRIX22_STRASSEN_THRESHOLD 15
+#define HGCD_THRESHOLD 104
+#define HGCD_APPR_THRESHOLD 104
+#define HGCD_REDUCE_THRESHOLD 1329
+#define GCD_DC_THRESHOLD 273
+#define GCDEXT_DC_THRESHOLD 213
+#define JACOBI_BASE_METHOD 2
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/lshift.asm
index 1b37d5dccf9..1b37d5dccf9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/lshiftc.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/lshiftc.asm
index 7385f8fd444..7385f8fd444 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/lshiftc.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/lshiftc.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/mul_1.asm
index d76a3d3b8c9..d76a3d3b8c9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/mul_2.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/mul_2.asm
index f3fc3afdd1b..f3fc3afdd1b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/mul_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/mul_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/popcount.asm
index fb14dd3d318..fb14dd3d318 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/popcount.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/redc_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/redc_1.asm
index d93c19fdc05..62b9a8471f1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/redc_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/redc_1.asm
@@ -276,7 +276,12 @@ IFDOS(` lea (up,n,8), %rdx C param 2: up
mov n, %r9 C param 4: n
mov rp, %rcx ') C param 1: rp
+IFSTD(` sub $8, %rsp ')
+IFDOS(` sub $40, %rsp ')
+ ASSERT(nz, `test $15, %rsp')
CALL( mpn_add_n)
+IFSTD(` add $8, %rsp ')
+IFDOS(` add $40, %rsp ')
L(ret): pop %r15
pop %r14
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/rsh1aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/rsh1aors_n.asm
index 6f5f6384a7d..6f5f6384a7d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/rsh1aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/rsh1aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/rshift.asm
index 29c027de499..29c027de499 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/sublsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/sublsh1_n.asm
index 1306acde2be..1306acde2be 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/sublsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/atom/sublsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/README b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/README
index ccd210e0d6d..ccd210e0d6d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/README
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/aorrlsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/aorrlsh1_n.asm
index c34a5fa134b..c34a5fa134b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/aorrlsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/aorrlsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/aorsmul_1.asm
index 96fec9f5ac5..96fec9f5ac5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/com.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/com.asm
index 43f356117ac..43f356117ac 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/com.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/com.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/copyd.asm
index 675cdc3f6b2..675cdc3f6b2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/copyi.asm
index ceef0365859..ceef0365859 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/gcd_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/gcd_1.asm
index 3d8e5c7ab12..3d8e5c7ab12 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/gcd_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/gcd_1.asm
diff --git a/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/gmp-mparam.h
new file mode 100644
index 00000000000..c279bcda6d1
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/gmp-mparam.h
@@ -0,0 +1,241 @@
+/* AMD bd1 gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 2000-2010, 2012, 2014, 2015 Free Software
+Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 64
+#define GMP_LIMB_BYTES 8
+
+/* 3600 MHz Bulldozer Zambezi */
+/* FFT tuning limit = 100 M */
+/* Generated by tuneup.c, 2015-10-14, gcc 4.8 */
+
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 5
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 18
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 31
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 10
+#define USE_PREINV_DIVREM_1 1 /* native */
+#define DIV_QR_1_NORM_THRESHOLD 1
+#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 22
+
+#define MUL_TOOM22_THRESHOLD 20
+#define MUL_TOOM33_THRESHOLD 57
+#define MUL_TOOM44_THRESHOLD 166
+#define MUL_TOOM6H_THRESHOLD 274
+#define MUL_TOOM8H_THRESHOLD 339
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 97
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 108
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 105
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 113
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 148
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 21
+#define SQR_TOOM3_THRESHOLD 81
+#define SQR_TOOM4_THRESHOLD 232
+#define SQR_TOOM6_THRESHOLD 318
+#define SQR_TOOM8_THRESHOLD 430
+
+#define MULMID_TOOM42_THRESHOLD 22
+
+#define MULMOD_BNM1_THRESHOLD 11
+#define SQRMOD_BNM1_THRESHOLD 15
+
+#define MUL_FFT_MODF_THRESHOLD 412 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 412, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
+ { 25, 7}, { 13, 6}, { 28, 7}, { 15, 6}, \
+ { 31, 7}, { 20, 8}, { 11, 7}, { 25, 8}, \
+ { 13, 7}, { 27, 8}, { 15, 7}, { 31, 8}, \
+ { 17, 7}, { 35, 8}, { 19, 7}, { 39, 8}, \
+ { 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
+ { 41, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
+ { 15, 9}, { 39,10}, { 23, 9}, { 55,11}, \
+ { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
+ { 83,10}, { 47, 9}, { 95,10}, { 55,11}, \
+ { 31,10}, { 79,11}, { 47,10}, { 103,12}, \
+ { 31,11}, { 63,10}, { 135,11}, { 79,10}, \
+ { 167,11}, { 95,10}, { 191,11}, { 111,12}, \
+ { 63,11}, { 127,10}, { 255,11}, { 143,10}, \
+ { 287, 9}, { 575,11}, { 159,12}, { 95,11}, \
+ { 191,13}, { 63,12}, { 127,11}, { 255,10}, \
+ { 511,11}, { 271,10}, { 543,11}, { 287,10}, \
+ { 575,12}, { 159,11}, { 319,10}, { 639,11}, \
+ { 351,10}, { 703,12}, { 191,11}, { 383,10}, \
+ { 767,11}, { 415,12}, { 223,11}, { 447,13}, \
+ { 127,12}, { 255,11}, { 511,10}, { 1023,11}, \
+ { 543,12}, { 287,11}, { 607,12}, { 319,11}, \
+ { 639,10}, { 1279,11}, { 671,12}, { 351,11}, \
+ { 703,13}, { 191,12}, { 383,11}, { 767,12}, \
+ { 415,11}, { 831,12}, { 447,14}, { 127,13}, \
+ { 255,12}, { 543,11}, { 1087,10}, { 2175,12}, \
+ { 575,11}, { 1151,12}, { 607,13}, { 319,12}, \
+ { 639,11}, { 1279,12}, { 735,13}, { 383,12}, \
+ { 767,11}, { 1535,12}, { 799,11}, { 1599,10}, \
+ { 3199,12}, { 831,13}, { 447,12}, { 895,14}, \
+ { 255,13}, { 511,12}, { 1087,13}, { 575,12}, \
+ { 1215,11}, { 2431,10}, { 4863,13}, { 639,12}, \
+ { 1279,11}, { 2687,13}, { 703,12}, { 1407,14}, \
+ { 383,13}, { 767,12}, { 1535,11}, { 3071,12}, \
+ { 1599,13}, { 831,12}, { 1727,11}, { 3455,13}, \
+ { 895,15}, { 255,14}, { 511,13}, { 1087,12}, \
+ { 2175,13}, { 1151,12}, { 2303,13}, { 1215,12}, \
+ { 2431,11}, { 4863,14}, { 639,13}, { 1279,12}, \
+ { 2687,13}, { 1471,12}, { 2943,11}, { 5887,14}, \
+ { 767,13}, { 1535,12}, { 3071,13}, { 1599,12}, \
+ { 3199,13}, { 1727,12}, { 3455,14}, { 895,13}, \
+ { 1791,12}, { 3583,15}, { 511,14}, { 1023,13}, \
+ { 2175,14}, { 1151,13}, { 2303,12}, { 4607,13}, \
+ { 2431,12}, { 4863,14}, { 1279,13}, { 2687,14}, \
+ { 1407,13}, { 2815,12}, { 5631,13}, { 2943,12}, \
+ { 5887,15}, { 767,14}, { 1535,13}, { 3199,14}, \
+ { 1663,13}, { 3455,12}, { 6911,14}, { 1791,13}, \
+ { 3583,14}, { 1919,16}, { 511,15}, { 1023,14}, \
+ { 2175,13}, { 4351,14}, { 2431,13}, { 4863,15}, \
+ { 1279,14}, { 2943,13}, { 5887,12}, { 11775,15}, \
+ { 1535,14}, { 3455,13}, { 6911,15}, { 1791,14}, \
+ { 3839,13}, { 7679,16}, { 1023,15}, { 2047,14}, \
+ { 4351,15}, { 2303,14}, { 4863,15}, { 2559,14}, \
+ { 5247,15}, { 2815,14}, { 5887,13}, { 11775,16}, \
+ { 65536,17}, { 131072,18}, { 262144,19}, { 524288,20}, \
+ {1048576,21}, {2097152,22}, {4194304,23}, {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 224
+#define MUL_FFT_THRESHOLD 4544
+
+#define SQR_FFT_MODF_THRESHOLD 380 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 380, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
+ { 27, 7}, { 18, 6}, { 37, 7}, { 25, 8}, \
+ { 13, 7}, { 27, 8}, { 15, 7}, { 32, 8}, \
+ { 17, 7}, { 35, 8}, { 19, 7}, { 39, 8}, \
+ { 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
+ { 41, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
+ { 15, 9}, { 39,10}, { 23, 9}, { 51,11}, \
+ { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
+ { 83,10}, { 47, 9}, { 95,10}, { 55,11}, \
+ { 31,10}, { 79,11}, { 47,10}, { 95,12}, \
+ { 31,11}, { 63,10}, { 127, 9}, { 255,10}, \
+ { 135,11}, { 79,10}, { 159,11}, { 95,10}, \
+ { 191,11}, { 111,12}, { 63,11}, { 127,10}, \
+ { 255, 9}, { 511,11}, { 143,10}, { 287, 9}, \
+ { 575,10}, { 303,11}, { 159,12}, { 95,11}, \
+ { 191,10}, { 383,13}, { 63,12}, { 127,11}, \
+ { 255,10}, { 511,11}, { 271,10}, { 543,11}, \
+ { 287,10}, { 575,11}, { 303,12}, { 159,11}, \
+ { 319,10}, { 639,11}, { 351,12}, { 191,11}, \
+ { 383,10}, { 767,11}, { 415,12}, { 223,11}, \
+ { 447,13}, { 127,12}, { 255,11}, { 511,10}, \
+ { 1023,11}, { 543,12}, { 287,11}, { 575,10}, \
+ { 1151,11}, { 607,12}, { 319,11}, { 639,12}, \
+ { 351,13}, { 191,12}, { 383,11}, { 767,12}, \
+ { 415,11}, { 831,12}, { 447,14}, { 127,13}, \
+ { 255,12}, { 543,11}, { 1087,12}, { 575,11}, \
+ { 1151,12}, { 607,13}, { 319,12}, { 639,11}, \
+ { 1279,12}, { 671,11}, { 1343,12}, { 703,13}, \
+ { 383,12}, { 767,11}, { 1535,12}, { 799,11}, \
+ { 1599,10}, { 3199,13}, { 447,12}, { 895,14}, \
+ { 255,13}, { 511,12}, { 1087,11}, { 2175,13}, \
+ { 575,12}, { 1151,11}, { 2431,13}, { 639,12}, \
+ { 1343,13}, { 703,14}, { 383,13}, { 767,12}, \
+ { 1599,11}, { 3199,13}, { 831,12}, { 1727,11}, \
+ { 3455,13}, { 895,15}, { 255,14}, { 511,13}, \
+ { 1087,12}, { 2175,13}, { 1215,12}, { 2431,11}, \
+ { 4863,14}, { 639,13}, { 1343,12}, { 2687,13}, \
+ { 1407,12}, { 2815,14}, { 767,13}, { 1535,12}, \
+ { 3071,13}, { 1599,12}, { 3199,13}, { 1727,12}, \
+ { 3455,14}, { 895,13}, { 1919,15}, { 511,14}, \
+ { 1023,13}, { 2175,14}, { 1151,13}, { 2303,12}, \
+ { 4607,13}, { 2431,12}, { 4863,14}, { 1279,13}, \
+ { 2687,14}, { 1407,15}, { 767,14}, { 1535,13}, \
+ { 3199,14}, { 1663,13}, { 3327,12}, { 6655,13}, \
+ { 3455,12}, { 6911,14}, { 1791,13}, { 3583,14}, \
+ { 1919,16}, { 511,15}, { 1023,14}, { 2175,13}, \
+ { 4479,14}, { 2303,13}, { 4607,14}, { 2431,13}, \
+ { 4863,15}, { 1279,14}, { 2943,13}, { 5887,12}, \
+ { 11775,15}, { 1535,14}, { 3455,13}, { 6911,15}, \
+ { 1791,14}, { 3839,13}, { 7679,16}, { 1023,15}, \
+ { 2047,14}, { 4223,13}, { 8447,14}, { 4479,15}, \
+ { 2303,14}, { 4863,13}, { 9727,14}, { 4991,15}, \
+ { 2559,14}, { 5247,15}, { 2815,14}, { 5631,13}, \
+ { 11263,14}, { 5887,13}, { 11775,16}, { 65536,17}, \
+ { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
+ {2097152,22}, {4194304,23}, {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 223
+#define SQR_FFT_THRESHOLD 3264
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 39
+#define MULLO_MUL_N_THRESHOLD 8648
+#define SQRLO_BASECASE_THRESHOLD 8
+#define SQRLO_DC_THRESHOLD 0 /* never mpn_sqrlo_basecase */
+#define SQRLO_SQR_THRESHOLD 6440
+
+#define DC_DIV_QR_THRESHOLD 54
+#define DC_DIVAPPR_Q_THRESHOLD 172
+#define DC_BDIV_QR_THRESHOLD 51
+#define DC_BDIV_Q_THRESHOLD 46
+
+#define INV_MULMOD_BNM1_THRESHOLD 38
+#define INV_NEWTON_THRESHOLD 228
+#define INV_APPR_THRESHOLD 172
+
+#define BINV_NEWTON_THRESHOLD 230
+#define REDC_1_TO_REDC_2_THRESHOLD 52
+#define REDC_2_TO_REDC_N_THRESHOLD 0 /* always */
+
+#define MU_DIV_QR_THRESHOLD 1442
+#define MU_DIVAPPR_Q_THRESHOLD 1387
+#define MUPI_DIV_QR_THRESHOLD 108
+#define MU_BDIV_QR_THRESHOLD 1142
+#define MU_BDIV_Q_THRESHOLD 1334
+
+#define POWM_SEC_TABLE 1,16,321,386,1167,2245
+
+#define GET_STR_DC_THRESHOLD 14
+#define GET_STR_PRECOMPUTE_THRESHOLD 21
+#define SET_STR_DC_THRESHOLD 286
+#define SET_STR_PRECOMPUTE_THRESHOLD 1318
+
+#define FAC_DSC_THRESHOLD 402
+#define FAC_ODD_THRESHOLD 24
+
+#define MATRIX22_STRASSEN_THRESHOLD 16
+#define HGCD_THRESHOLD 109
+#define HGCD_APPR_THRESHOLD 51
+#define HGCD_REDUCE_THRESHOLD 2681
+#define GCD_DC_THRESHOLD 354
+#define GCDEXT_DC_THRESHOLD 330
+#define JACOBI_BASE_METHOD 4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/hamdist.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/hamdist.asm
index 93e1e5632b2..93e1e5632b2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/hamdist.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/hamdist.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/mul_1.asm
index e59667c0853..e59667c0853 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/mul_2.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/mul_2.asm
index 4ed5f305614..4ed5f305614 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/mul_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/mul_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/mul_basecase.asm
index e47ba587cda..e47ba587cda 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/mul_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/mul_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/popcount.asm
index 8f22a715b66..8f22a715b66 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/popcount.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/sec_tabselect.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/sec_tabselect.asm
index e4360341d93..e4360341d93 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/sec_tabselect.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/sec_tabselect.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/sublsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/sublsh1_n.asm
index 4ba673d15a0..4ba673d15a0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/sublsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd1/sublsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd2/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd2/gmp-mparam.h
new file mode 100644
index 00000000000..5285b9332c6
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bd2/gmp-mparam.h
@@ -0,0 +1,256 @@
+/* AMD bd2 gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 2000-2010, 2012, 2014, 2015 Free Software
+Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 64
+#define GMP_LIMB_BYTES 8
+
+/* 3200 MHz Piledriver Vishera */
+/* FFT tuning limit = 200 M */
+/* Generated by tuneup.c, 2015-10-07, gcc 4.8 */
+
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 4
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 4
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 17
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 34
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 10
+#define USE_PREINV_DIVREM_1 1 /* native */
+#define DIV_QR_1_NORM_THRESHOLD 2
+#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 22
+
+#define MUL_TOOM22_THRESHOLD 16
+#define MUL_TOOM33_THRESHOLD 54
+#define MUL_TOOM44_THRESHOLD 154
+#define MUL_TOOM6H_THRESHOLD 274
+#define MUL_TOOM8H_THRESHOLD 454
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 101
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 103
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 105
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 105
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 146
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 22
+#define SQR_TOOM3_THRESHOLD 81
+#define SQR_TOOM4_THRESHOLD 202
+#define SQR_TOOM6_THRESHOLD 303
+#define SQR_TOOM8_THRESHOLD 430
+
+#define MULMID_TOOM42_THRESHOLD 20
+
+#define MULMOD_BNM1_THRESHOLD 11
+#define SQRMOD_BNM1_THRESHOLD 14
+
+#define MUL_FFT_MODF_THRESHOLD 400 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 400, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
+ { 11, 5}, { 23, 6}, { 25, 7}, { 13, 6}, \
+ { 27, 7}, { 21, 8}, { 11, 7}, { 25, 8}, \
+ { 13, 7}, { 27, 8}, { 15, 7}, { 32, 8}, \
+ { 17, 7}, { 35, 8}, { 19, 7}, { 39, 8}, \
+ { 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
+ { 35, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
+ { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
+ { 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
+ { 67,10}, { 39, 9}, { 83,10}, { 47, 9}, \
+ { 95,10}, { 55,11}, { 31,10}, { 79,11}, \
+ { 47,10}, { 95,12}, { 31,11}, { 63,10}, \
+ { 135,11}, { 79,10}, { 159,11}, { 95,10}, \
+ { 191,12}, { 63,11}, { 127,10}, { 255,11}, \
+ { 143,10}, { 287, 9}, { 575,10}, { 303,11}, \
+ { 159,12}, { 95,11}, { 191,13}, { 63,12}, \
+ { 127,11}, { 287,10}, { 575,11}, { 303,12}, \
+ { 159,11}, { 319,10}, { 639,11}, { 351,10}, \
+ { 703,12}, { 191,11}, { 383,10}, { 767,11}, \
+ { 415,12}, { 223,11}, { 447,13}, { 127,12}, \
+ { 255,11}, { 543,12}, { 287,11}, { 575,10}, \
+ { 1151,11}, { 607,12}, { 319,11}, { 671,12}, \
+ { 351,11}, { 703,13}, { 191,12}, { 383,11}, \
+ { 767,12}, { 415,11}, { 831,10}, { 1663,12}, \
+ { 447,14}, { 127,13}, { 255,12}, { 511,11}, \
+ { 1023,12}, { 543,11}, { 1087,10}, { 2175,12}, \
+ { 575,11}, { 1151,12}, { 607,11}, { 1215,13}, \
+ { 319,12}, { 671,11}, { 1343,12}, { 703,11}, \
+ { 1407,12}, { 735,13}, { 383,12}, { 767,11}, \
+ { 1535,12}, { 831,11}, { 1663,13}, { 447,12}, \
+ { 895,11}, { 1791,12}, { 959,14}, { 255,13}, \
+ { 511,12}, { 1087,11}, { 2175,13}, { 575,12}, \
+ { 1215,11}, { 2431,10}, { 4863,13}, { 639,12}, \
+ { 1343,11}, { 2687,13}, { 703,12}, { 1407,11}, \
+ { 2815,14}, { 383,13}, { 767,12}, { 1599,13}, \
+ { 831,12}, { 1727,13}, { 959,15}, { 255,14}, \
+ { 511,13}, { 1023,12}, { 2047,13}, { 1087,12}, \
+ { 2175,13}, { 1215,12}, { 2431,11}, { 4863,14}, \
+ { 639,13}, { 1343,12}, { 2687,13}, { 1407,12}, \
+ { 2815,13}, { 1471,12}, { 2943,11}, { 5887,14}, \
+ { 767,13}, { 1599,12}, { 3199,13}, { 1727,14}, \
+ { 895,13}, { 1919,12}, { 3839,15}, { 511,14}, \
+ { 1023,13}, { 2175,14}, { 1151,13}, { 2303,12}, \
+ { 4607,13}, { 2431,12}, { 4863,13}, { 2495,14}, \
+ { 1279,13}, { 2687,14}, { 1407,13}, { 2943,12}, \
+ { 5887,11}, { 11775,15}, { 767,14}, { 1535,13}, \
+ { 3199,14}, { 1663,13}, { 3327,12}, { 6655,13}, \
+ { 3455,12}, { 6911,14}, { 1791,13}, { 3583,14}, \
+ { 1919,13}, { 3839,16}, { 511,15}, { 1023,14}, \
+ { 2175,13}, { 4479,14}, { 2303,13}, { 4607,14}, \
+ { 2431,13}, { 4863,15}, { 1279,14}, { 2815,13}, \
+ { 5631,14}, { 2943,13}, { 5887,12}, { 11775,15}, \
+ { 1535,14}, { 3455,13}, { 6911,15}, { 1791,14}, \
+ { 3839,13}, { 7679,12}, { 15359,16}, { 1023,15}, \
+ { 2047,14}, { 4351,13}, { 8703,14}, { 4479,15}, \
+ { 2303,14}, { 4991,15}, { 2559,14}, { 5247,15}, \
+ { 2815,14}, { 5887,13}, { 11775,16}, { 1535,15}, \
+ { 3071,14}, { 6399,15}, { 3327,14}, { 6911,15}, \
+ { 3839,14}, { 7679,13}, { 15359,17}, { 1023,16}, \
+ { 2047,15}, { 4095,14}, { 8447,15}, { 4351,14}, \
+ { 8959,15}, { 4863,16}, { 2559,15}, { 5887,14}, \
+ { 11775,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
+ { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
+ {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 253
+#define MUL_FFT_THRESHOLD 4544
+
+#define SQR_FFT_MODF_THRESHOLD 368 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 368, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
+ { 25, 7}, { 13, 6}, { 27, 7}, { 20, 8}, \
+ { 11, 7}, { 25, 8}, { 13, 7}, { 28, 8}, \
+ { 15, 7}, { 31, 8}, { 17, 7}, { 35, 8}, \
+ { 19, 7}, { 39, 8}, { 21, 9}, { 11, 8}, \
+ { 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
+ { 41, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
+ { 15, 9}, { 39,10}, { 23, 9}, { 51,11}, \
+ { 15,10}, { 31, 9}, { 63,10}, { 39, 9}, \
+ { 83,10}, { 47, 9}, { 95,10}, { 55,11}, \
+ { 31,10}, { 79,11}, { 47,10}, { 95,12}, \
+ { 31,11}, { 63,10}, { 127, 9}, { 255,10}, \
+ { 135,11}, { 79,10}, { 159,11}, { 95,10}, \
+ { 191,12}, { 63,11}, { 127,10}, { 255, 9}, \
+ { 511,10}, { 271,11}, { 143,10}, { 287, 9}, \
+ { 575,10}, { 303,11}, { 159,12}, { 95,11}, \
+ { 191,13}, { 63,12}, { 127,11}, { 255,10}, \
+ { 511,11}, { 271,10}, { 543,11}, { 287,10}, \
+ { 575,11}, { 303,12}, { 159,11}, { 319,10}, \
+ { 671,11}, { 351,12}, { 191,11}, { 383,10}, \
+ { 767,11}, { 415,12}, { 223,11}, { 447,13}, \
+ { 127,12}, { 255,11}, { 543,12}, { 287,11}, \
+ { 575,10}, { 1151,11}, { 607,12}, { 319,11}, \
+ { 671,12}, { 351,13}, { 191,12}, { 383,11}, \
+ { 767,12}, { 415,11}, { 831,10}, { 1663,12}, \
+ { 447,14}, { 127,13}, { 255,12}, { 511,11}, \
+ { 1023,12}, { 543,11}, { 1087,10}, { 2175,12}, \
+ { 575,11}, { 1151,12}, { 607,13}, { 319,12}, \
+ { 703,11}, { 1407,12}, { 735,13}, { 383,12}, \
+ { 767,11}, { 1535,12}, { 799,11}, { 1599,12}, \
+ { 831,11}, { 1663,13}, { 447,12}, { 895,11}, \
+ { 1791,14}, { 255,13}, { 511,12}, { 1087,11}, \
+ { 2175,13}, { 575,12}, { 1215,11}, { 2431,10}, \
+ { 4863,13}, { 639,12}, { 1279,13}, { 703,12}, \
+ { 1407,14}, { 383,13}, { 767,12}, { 1599,13}, \
+ { 831,12}, { 1727,11}, { 3455,13}, { 895,15}, \
+ { 255,14}, { 511,13}, { 1087,12}, { 2175,13}, \
+ { 1215,12}, { 2431,11}, { 4863,14}, { 639,13}, \
+ { 1279,12}, { 2687,13}, { 1471,12}, { 2943,11}, \
+ { 5887,14}, { 767,13}, { 1599,12}, { 3199,13}, \
+ { 1727,12}, { 3455,14}, { 895,13}, { 1791,12}, \
+ { 3583,13}, { 1919,12}, { 3839,15}, { 511,14}, \
+ { 1023,13}, { 2175,14}, { 1151,13}, { 2303,12}, \
+ { 4607,13}, { 2431,12}, { 4863,13}, { 2495,14}, \
+ { 1279,13}, { 2687,14}, { 1407,13}, { 2943,12}, \
+ { 5887,15}, { 767,14}, { 1535,13}, { 3199,14}, \
+ { 1663,13}, { 3327,12}, { 6655,13}, { 3455,12}, \
+ { 6911,14}, { 1791,13}, { 3583,14}, { 1919,13}, \
+ { 3839,16}, { 511,15}, { 1023,14}, { 2175,13}, \
+ { 4479,14}, { 2303,13}, { 4607,14}, { 2431,13}, \
+ { 4863,15}, { 1279,14}, { 2687,13}, { 5375,14}, \
+ { 2815,13}, { 5631,14}, { 2943,13}, { 5887,12}, \
+ { 11775,15}, { 1535,14}, { 3327,13}, { 6655,14}, \
+ { 3455,13}, { 6911,15}, { 1791,14}, { 3839,13}, \
+ { 7679,16}, { 1023,15}, { 2047,14}, { 4479,15}, \
+ { 2303,14}, { 4991,13}, { 9983,15}, { 2559,14}, \
+ { 5375,15}, { 2815,14}, { 5887,13}, { 11775,16}, \
+ { 1535,15}, { 3071,14}, { 6143,15}, { 3327,14}, \
+ { 6911,15}, { 3839,14}, { 7679,17}, { 1023,16}, \
+ { 2047,15}, { 4351,14}, { 8959,15}, { 4863,14}, \
+ { 9983,16}, { 2559,15}, { 5887,14}, { 11775,16}, \
+ { 65536,17}, { 131072,18}, { 262144,19}, { 524288,20}, \
+ {1048576,21}, {2097152,22}, {4194304,23}, {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 252
+#define SQR_FFT_THRESHOLD 3264
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 34
+#define MULLO_MUL_N_THRESHOLD 8907
+#define SQRLO_BASECASE_THRESHOLD 8
+#define SQRLO_DC_THRESHOLD 57
+#define SQRLO_SQR_THRESHOLD 6440
+
+#define DC_DIV_QR_THRESHOLD 51
+#define DC_DIVAPPR_Q_THRESHOLD 166
+#define DC_BDIV_QR_THRESHOLD 44
+#define DC_BDIV_Q_THRESHOLD 76
+
+#define INV_MULMOD_BNM1_THRESHOLD 30
+#define INV_NEWTON_THRESHOLD 204
+#define INV_APPR_THRESHOLD 171
+
+#define BINV_NEWTON_THRESHOLD 234
+#define REDC_1_TO_REDC_2_THRESHOLD 51
+#define REDC_2_TO_REDC_N_THRESHOLD 0 /* always */
+
+#define MU_DIV_QR_THRESHOLD 1258
+#define MU_DIVAPPR_Q_THRESHOLD 1387
+#define MUPI_DIV_QR_THRESHOLD 91
+#define MU_BDIV_QR_THRESHOLD 1142
+#define MU_BDIV_Q_THRESHOLD 1308
+
+#define POWM_SEC_TABLE 1,16,139,515,1240
+
+#define GET_STR_DC_THRESHOLD 12
+#define GET_STR_PRECOMPUTE_THRESHOLD 21
+#define SET_STR_DC_THRESHOLD 212
+#define SET_STR_PRECOMPUTE_THRESHOLD 1138
+
+#define FAC_DSC_THRESHOLD 232
+#define FAC_ODD_THRESHOLD 24
+
+#define MATRIX22_STRASSEN_THRESHOLD 23
+#define HGCD_THRESHOLD 111
+#define HGCD_APPR_THRESHOLD 105
+#define HGCD_REDUCE_THRESHOLD 2479
+#define GCD_DC_THRESHOLD 403
+#define GCDEXT_DC_THRESHOLD 285
+#define JACOBI_BASE_METHOD 4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bdiv_dbm1c.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bdiv_dbm1c.asm
index a53bd52beb3..a53bd52beb3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bdiv_dbm1c.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bdiv_dbm1c.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bdiv_q_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bdiv_q_1.asm
index 02eacbe6a8b..02eacbe6a8b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bdiv_q_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bdiv_q_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/aors_n.asm
index 22287b85589..22287b85589 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/aorsmul_1.asm
index 415a17cb7ff..415a17cb7ff 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/copyd.asm
index 877714e903c..877714e903c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/copyi.asm
index ee0f578652b..ee0f578652b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/gmp-mparam.h
new file mode 100644
index 00000000000..9511a8c6dd5
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/gmp-mparam.h
@@ -0,0 +1,219 @@
+/* AMD Bobcat gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 2000-2012, 2014, 2015 Free Software Foundation,
+Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 64
+#define GMP_LIMB_BYTES 8
+
+/* Disable use of slow functions. FIXME: We should disable lib inclusion. */
+#undef HAVE_NATIVE_mpn_mul_2
+#undef HAVE_NATIVE_mpn_addmul_2
+
+/* 1600 MHz AMD Bobcat Zacate E-350 */
+/* FFT tuning limit = 50 M */
+/* Generated by tuneup.c, 2015-10-06, gcc 4.5 */
+
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 4
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 30
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 48
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 10
+#define USE_PREINV_DIVREM_1 1 /* native */
+#define DIV_QR_1_NORM_THRESHOLD 1
+#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 17
+
+#define MUL_TOOM22_THRESHOLD 24
+#define MUL_TOOM33_THRESHOLD 35
+#define MUL_TOOM44_THRESHOLD 268
+#define MUL_TOOM6H_THRESHOLD 393
+#define MUL_TOOM8H_THRESHOLD 527
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 69
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 190
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 178
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 196
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 100
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 26
+#define SQR_TOOM3_THRESHOLD 93
+#define SQR_TOOM4_THRESHOLD 378
+#define SQR_TOOM6_THRESHOLD 0 /* always */
+#define SQR_TOOM8_THRESHOLD 454
+
+#define MULMID_TOOM42_THRESHOLD 26
+
+#define MULMOD_BNM1_THRESHOLD 11
+#define SQRMOD_BNM1_THRESHOLD 13
+
+#define MUL_FFT_MODF_THRESHOLD 400 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 400, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \
+ { 10, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
+ { 21, 7}, { 11, 6}, { 23, 7}, { 21, 8}, \
+ { 11, 7}, { 24, 8}, { 13, 7}, { 27, 8}, \
+ { 15, 7}, { 31, 8}, { 17, 7}, { 36, 8}, \
+ { 19, 7}, { 39, 8}, { 21, 9}, { 11, 8}, \
+ { 23, 7}, { 47, 8}, { 27, 9}, { 15, 8}, \
+ { 35, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
+ { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
+ { 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
+ { 67,10}, { 39, 9}, { 83,10}, { 47, 9}, \
+ { 99,10}, { 55,11}, { 31,10}, { 71, 9}, \
+ { 143,10}, { 79,11}, { 47,10}, { 103,12}, \
+ { 31,11}, { 63,10}, { 143,11}, { 79,10}, \
+ { 167,11}, { 95,10}, { 191, 9}, { 383,11}, \
+ { 111,12}, { 63,11}, { 127,10}, { 255, 9}, \
+ { 511,11}, { 143,10}, { 287,11}, { 159,10}, \
+ { 319,12}, { 95,11}, { 191,10}, { 383,11}, \
+ { 207,10}, { 415,13}, { 63,12}, { 127,11}, \
+ { 255,10}, { 511,11}, { 271,10}, { 543,11}, \
+ { 287,12}, { 159,11}, { 319,10}, { 639,11}, \
+ { 351,10}, { 703,11}, { 367,12}, { 191,11}, \
+ { 415,12}, { 223,11}, { 447,13}, { 127,12}, \
+ { 255,11}, { 543,12}, { 287,11}, { 607,12}, \
+ { 319,11}, { 639,12}, { 351,11}, { 703,13}, \
+ { 191,12}, { 383,11}, { 767,12}, { 415,11}, \
+ { 831,12}, { 447,14}, { 127,13}, { 255,12}, \
+ { 607,13}, { 319,12}, { 703,13}, { 383,12}, \
+ { 831,13}, { 447,12}, { 895,14}, { 255,13}, \
+ { 511,12}, { 1023,13}, { 575,12}, { 1151,13}, \
+ { 703,14}, { 383,13}, { 831,12}, { 1663,13}, \
+ { 895,15}, { 255,14}, { 511,13}, { 1087,12}, \
+ { 2175,13}, { 1151,14}, { 639,13}, { 1343,12}, \
+ { 2687,13}, { 1407,14}, { 767,13}, { 1535,12}, \
+ { 3071,13}, { 1663,14}, { 895,15}, { 511,14}, \
+ { 1023,13}, { 2175,14}, { 1151,13}, { 2431,12}, \
+ { 4863,14}, { 1279,13}, { 2687,14}, { 1407,15}, \
+ { 767,14}, { 1535,13}, { 3071,14}, { 1663,13}, \
+ { 3327,16}, { 511,15}, { 1023,14}, { 2175,13}, \
+ { 4479,14}, { 2431,13}, { 4863,15}, { 1279,14}, \
+ { 2943,13}, { 5887,15}, { 32768,16}, { 65536,17}, \
+ { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
+ {2097152,22}, {4194304,23}, {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 171
+#define MUL_FFT_THRESHOLD 5504
+
+#define SQR_FFT_MODF_THRESHOLD 376 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 376, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
+ { 11, 5}, { 23, 6}, { 12, 5}, { 25, 6}, \
+ { 21, 7}, { 11, 6}, { 25, 7}, { 13, 6}, \
+ { 27, 7}, { 25, 8}, { 13, 7}, { 27, 8}, \
+ { 15, 7}, { 31, 8}, { 17, 7}, { 35, 8}, \
+ { 19, 7}, { 39, 8}, { 27, 9}, { 15, 8}, \
+ { 35, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
+ { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
+ { 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
+ { 67,10}, { 39, 9}, { 83,10}, { 47, 9}, \
+ { 95,10}, { 55,11}, { 31,10}, { 79,11}, \
+ { 47,10}, { 103,12}, { 31,11}, { 63,10}, \
+ { 127, 9}, { 255,10}, { 135, 9}, { 271,11}, \
+ { 79,10}, { 159, 9}, { 319,11}, { 95,10}, \
+ { 191, 9}, { 383,11}, { 111,12}, { 63,11}, \
+ { 127,10}, { 255, 9}, { 511,10}, { 271,11}, \
+ { 143,10}, { 287, 9}, { 575,10}, { 303,11}, \
+ { 159,10}, { 319,12}, { 95,11}, { 191,10}, \
+ { 383,11}, { 207,13}, { 63,12}, { 127,11}, \
+ { 255,10}, { 511,11}, { 271,10}, { 543,11}, \
+ { 287,10}, { 575,11}, { 303,12}, { 159,11}, \
+ { 319,10}, { 639,11}, { 335,10}, { 671,11}, \
+ { 351,10}, { 703,12}, { 191,11}, { 415,12}, \
+ { 223,11}, { 479,13}, { 127,12}, { 255,11}, \
+ { 543,12}, { 287,11}, { 607,12}, { 319,11}, \
+ { 671,12}, { 351,11}, { 703,13}, { 191,12}, \
+ { 383,11}, { 767,12}, { 415,11}, { 831,12}, \
+ { 479,14}, { 127,13}, { 255,12}, { 607,13}, \
+ { 319,12}, { 703,13}, { 383,12}, { 831,13}, \
+ { 447,12}, { 895,14}, { 255,13}, { 511,12}, \
+ { 1023,13}, { 575,12}, { 1151,13}, { 703,14}, \
+ { 383,13}, { 831,12}, { 1663,13}, { 895,15}, \
+ { 255,14}, { 511,13}, { 1087,12}, { 2175,13}, \
+ { 1151,14}, { 639,13}, { 1343,12}, { 2687,14}, \
+ { 767,13}, { 1599,12}, { 3199,13}, { 1663,14}, \
+ { 895,15}, { 511,14}, { 1023,13}, { 2175,14}, \
+ { 1151,13}, { 2431,12}, { 4863,14}, { 1279,13}, \
+ { 2687,14}, { 1407,15}, { 767,14}, { 1535,13}, \
+ { 3199,14}, { 1663,16}, { 511,15}, { 1023,14}, \
+ { 2175,13}, { 4351,14}, { 2431,13}, { 4863,15}, \
+ { 1279,14}, { 2943,13}, { 5887,15}, { 32768,16}, \
+ { 65536,17}, { 131072,18}, { 262144,19}, { 524288,20}, \
+ {1048576,21}, {2097152,22}, {4194304,23}, {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 172
+#define SQR_FFT_THRESHOLD 3712
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 43
+#define MULLO_MUL_N_THRESHOLD 10950
+#define SQRLO_BASECASE_THRESHOLD 9
+#define SQRLO_DC_THRESHOLD 65
+#define SQRLO_SQR_THRESHOLD 7246
+
+#define DC_DIV_QR_THRESHOLD 59
+#define DC_DIVAPPR_Q_THRESHOLD 202
+#define DC_BDIV_QR_THRESHOLD 59
+#define DC_BDIV_Q_THRESHOLD 141
+
+#define INV_MULMOD_BNM1_THRESHOLD 46
+#define INV_NEWTON_THRESHOLD 242
+#define INV_APPR_THRESHOLD 236
+
+#define BINV_NEWTON_THRESHOLD 242
+#define REDC_1_TO_REDC_2_THRESHOLD 68
+#define REDC_2_TO_REDC_N_THRESHOLD 0 /* always */
+
+#define MU_DIV_QR_THRESHOLD 1499
+#define MU_DIVAPPR_Q_THRESHOLD 1499
+#define MUPI_DIV_QR_THRESHOLD 116
+#define MU_BDIV_QR_THRESHOLD 1334
+#define MU_BDIV_Q_THRESHOLD 1470
+
+#define POWM_SEC_TABLE 1,22,194,386,452,1259
+
+#define GET_STR_DC_THRESHOLD 16
+#define GET_STR_PRECOMPUTE_THRESHOLD 26
+#define SET_STR_DC_THRESHOLD 306
+#define SET_STR_PRECOMPUTE_THRESHOLD 1105
+
+#define FAC_DSC_THRESHOLD 802
+#define FAC_ODD_THRESHOLD 44
+
+#define MATRIX22_STRASSEN_THRESHOLD 17
+#define HGCD_THRESHOLD 90
+#define HGCD_APPR_THRESHOLD 51
+#define HGCD_REDUCE_THRESHOLD 3014
+#define GCD_DC_THRESHOLD 492
+#define GCDEXT_DC_THRESHOLD 303
+#define JACOBI_BASE_METHOD 2
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/mul_1.asm
index cb58bef0b35..ab428a88a09 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/mul_1.asm
@@ -66,7 +66,7 @@ IFDOS(` define(`rp', `%rcx') ') dnl
IFDOS(` define(`up', `%rsi') ') dnl
IFDOS(` define(`n_param', `%r8') ') dnl
IFDOS(` define(`v0', `%r9') ') dnl
-IFDOS(` define(`cy', `64(%rsp)')') dnl
+IFDOS(` define(`cy', `56(%rsp)')') dnl
C DOS64 allocations
IFDOS(` define(`n', `%rbx') ') dnl
IFDOS(` define(`w0', `%r8') ') dnl
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/mul_basecase.asm
index e7d46bfcff6..e7d46bfcff6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/mul_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/mul_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/redc_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/redc_1.asm
index c3798021f7f..d55b1e5b378 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/redc_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/redc_1.asm
@@ -258,7 +258,12 @@ IFDOS(` lea (up,n,8), %rdx C param 2: up
mov n, %r9 C param 4: n
mov rp, %rcx ') C param 1: rp
+IFSTD(` sub $8, %rsp ')
+IFDOS(` sub $40, %rsp ')
+ ASSERT(nz, `test $15, %rsp')
CALL( mpn_add_n)
+IFSTD(` add $8, %rsp ')
+IFDOS(` add $40, %rsp ')
L(ret): pop %r15
pop %r14
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/sqr_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/sqr_basecase.asm
index 0e417a1ebeb..0e417a1ebeb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/sqr_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/bobcat/sqr_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/cnd_aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/cnd_aors_n.asm
index 13a2ab3be95..13a2ab3be95 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/cnd_aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/cnd_aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/com.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/com.asm
index 006acaf6486..006acaf6486 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/com.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/com.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/copyd.asm
index a5e6e595e7d..a5e6e595e7d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/copyi.asm
index bafce7a09eb..bafce7a09eb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aorrlsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/aorrlsh1_n.asm
index 7066bb43720..7066bb43720 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aorrlsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/aorrlsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aorrlsh2_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/aorrlsh2_n.asm
index 5065120857b..5065120857b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aorrlsh2_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/aorrlsh2_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aorrlsh_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/aorrlsh_n.asm
index 57abf315796..57abf315796 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aorrlsh_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/aorrlsh_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aors_err1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/aors_err1_n.asm
index 3f875aefa42..3f875aefa42 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aors_err1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/aors_err1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/aors_n.asm
index 74a1bce48a2..74a1bce48a2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/aorsmul_1.asm
index 6b313dd836e..6b313dd836e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/copyd.asm
index f0dc54a55e7..f0dc54a55e7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/copyi.asm
index 9c26e00c522..9c26e00c522 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/divrem_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/divrem_1.asm
index 623bea386ca..1b3f1394ec5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/divrem_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/divrem_1.asm
@@ -1,6 +1,6 @@
dnl x86-64 mpn_divrem_1 -- mpn by limb division.
-dnl Copyright 2004, 2005, 2007-2010, 2012 Free Software Foundation, Inc.
+dnl Copyright 2004, 2005, 2007-2010, 2012, 2014 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -138,9 +138,14 @@ L(44):
IFSTD(` push %rdi ')
IFSTD(` push %rsi ')
push %r8
+IFSTD(` sub $8, %rsp ')
IFSTD(` mov d, %rdi ')
+IFDOS(` sub $40, %rsp ')
IFDOS(` mov d, %rcx ')
+ ASSERT(nz, `test $15, %rsp')
CALL( mpn_invert_limb)
+IFSTD(` add $8, %rsp ')
+IFDOS(` add $40, %rsp ')
pop %r8
IFSTD(` pop %rsi ')
IFSTD(` pop %rdi ')
@@ -150,6 +155,7 @@ IFSTD(` pop %rdi ')
mov %rbp, %rax
test un, un
je L(frac)
+
L(ent): mov -8(up,un,8), %rbp
shr R8(%rcx), %rax
shld R8(%rcx), %rbp, %rax
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/gcd_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/gcd_1.asm
index e0cab9b4e45..bdb940c3ab9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/gcd_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/gcd_1.asm
@@ -108,12 +108,14 @@ L(reduce_nby1):
IFDOS(` mov %rdx, %r8 ')
IFDOS(` mov %rsi, %rdx ')
IFDOS(` mov %rdi, %rcx ')
+ ASSERT(nz, `test $15, %rsp')
CALL( mpn_mod_1)
jmp L(reduced)
L(bmod):
IFDOS(` mov %rdx, %r8 ')
IFDOS(` mov %rsi, %rdx ')
IFDOS(` mov %rdi, %rcx ')
+ ASSERT(nz, `test $15, %rsp')
CALL( mpn_modexact_1_odd)
L(reduced):
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/gmp-mparam.h
index 0f4f88f7807..28714e2753c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/gmp-mparam.h
@@ -1,7 +1,7 @@
/* Core 2 gmp-mparam.h -- Compiler/machine parameter header file.
-Copyright 1991, 1993, 1994, 2000-2010, 2012, 2014 Free Software Foundation,
-Inc.
+Copyright 1991, 1993, 1994, 2000-2010, 2012, 2014, 2015 Free Software
+Foundation, Inc.
This file is part of the GNU MP Library.
@@ -33,15 +33,15 @@ see https://www.gnu.org/licenses/. */
#define GMP_LIMB_BYTES 8
/* 2133 MHz Core 2 (65nm) */
-/* FFT tuning limit = 60000000 */
-/* Generated by tuneup.c, 2014-03-13, gcc 4.5 */
+/* FFT tuning limit = 65 M */
+/* Generated by tuneup.c, 2015-10-08, gcc 4.5 */
#define MOD_1_NORM_THRESHOLD 0 /* always */
#define MOD_1_UNNORM_THRESHOLD 0 /* always */
#define MOD_1N_TO_MOD_1_1_THRESHOLD 4
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 11
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 16
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 4
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 10
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 15
#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 9
#define USE_PREINV_DIVREM_1 1 /* native */
#define DIV_QR_1_NORM_THRESHOLD 1
@@ -52,94 +52,99 @@ see https://www.gnu.org/licenses/. */
#define MUL_TOOM22_THRESHOLD 23
#define MUL_TOOM33_THRESHOLD 65
-#define MUL_TOOM44_THRESHOLD 179
-#define MUL_TOOM6H_THRESHOLD 268
+#define MUL_TOOM44_THRESHOLD 178
+#define MUL_TOOM6H_THRESHOLD 254
#define MUL_TOOM8H_THRESHOLD 357
#define MUL_TOOM32_TO_TOOM43_THRESHOLD 69
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 114
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 131
#define MUL_TOOM42_TO_TOOM53_THRESHOLD 73
#define MUL_TOOM42_TO_TOOM63_THRESHOLD 78
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 100
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 106
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
#define SQR_TOOM2_THRESHOLD 28
#define SQR_TOOM3_THRESHOLD 102
#define SQR_TOOM4_THRESHOLD 160
#define SQR_TOOM6_THRESHOLD 222
-#define SQR_TOOM8_THRESHOLD 296
+#define SQR_TOOM8_THRESHOLD 309
#define MULMID_TOOM42_THRESHOLD 28
-#define MULMOD_BNM1_THRESHOLD 12
+#define MULMOD_BNM1_THRESHOLD 15
#define SQRMOD_BNM1_THRESHOLD 13
#define MUL_FFT_MODF_THRESHOLD 372 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 372, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \
{ 21, 7}, { 11, 6}, { 23, 7}, { 12, 6}, \
- { 25, 7}, { 21, 8}, { 11, 7}, { 25, 8}, \
- { 13, 7}, { 27, 8}, { 15, 7}, { 32, 8}, \
- { 17, 7}, { 36, 8}, { 19, 7}, { 40, 8}, \
+ { 25, 7}, { 21, 8}, { 11, 7}, { 24, 8}, \
+ { 13, 7}, { 27, 8}, { 15, 7}, { 31, 8}, \
+ { 17, 7}, { 35, 8}, { 19, 7}, { 39, 8}, \
{ 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
{ 35, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
- { 47, 9}, { 27,10}, { 15, 9}, { 43,10}, \
+ { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
{ 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
- { 63,10}, { 39, 9}, { 83,10}, { 47, 9}, \
+ { 67,10}, { 39, 9}, { 83,10}, { 47, 9}, \
{ 95,10}, { 55,11}, { 31,10}, { 79,11}, \
{ 47,10}, { 95,12}, { 31,11}, { 63,10}, \
{ 127, 9}, { 255,10}, { 135, 9}, { 271,11}, \
{ 79,10}, { 159, 9}, { 319,10}, { 167,11}, \
{ 95,10}, { 191, 9}, { 383,10}, { 207,11}, \
- { 111,12}, { 63,11}, { 127,10}, { 271,11}, \
- { 143,10}, { 287, 9}, { 575,10}, { 303,11}, \
- { 159,10}, { 319,12}, { 95,11}, { 191,10}, \
- { 383,11}, { 207,10}, { 415,11}, { 223,13}, \
- { 63,12}, { 127,11}, { 271,10}, { 543,11}, \
- { 287,10}, { 575,11}, { 303,10}, { 607,12}, \
+ { 111,12}, { 63,11}, { 127,10}, { 271, 9}, \
+ { 543,11}, { 143,10}, { 287, 9}, { 575,10}, \
+ { 303,11}, { 159,10}, { 319,12}, { 95,11}, \
+ { 191,10}, { 383,11}, { 207,10}, { 415,11}, \
+ { 223,13}, { 63,12}, { 127,11}, { 271,10}, \
+ { 543,11}, { 287,10}, { 575,11}, { 303,12}, \
{ 159,11}, { 319,10}, { 639,11}, { 351,12}, \
{ 191,11}, { 415,12}, { 223,11}, { 479,13}, \
{ 127,12}, { 255,11}, { 543,12}, { 287,11}, \
- { 607,12}, { 319,11}, { 639,12}, { 351,11}, \
- { 703,13}, { 191,12}, { 415,11}, { 831,12}, \
- { 479,14}, { 127,13}, { 255,12}, { 607,13}, \
- { 319,12}, { 703,13}, { 383,12}, { 831,13}, \
- { 447,12}, { 959,14}, { 255,13}, { 511,12}, \
- { 1023,13}, { 575,12}, { 1215,13}, { 639,12}, \
- { 1279,13}, { 703,14}, { 383,13}, { 831,12}, \
- { 1663,13}, { 895,15}, { 255,14}, { 511,13}, \
- { 1151,14}, { 639,13}, { 1343,14}, { 767,13}, \
- { 1599,14}, { 895,15}, { 511,14}, { 1279,13}, \
- { 2687,14}, { 1407,13}, { 2815,15}, { 767,14}, \
- { 1535,13}, { 3199,14}, { 1663,13}, { 3455,16}, \
- { 511,15}, { 1023,14}, { 2047,13}, { 4095,14}, \
- { 2175,12}, { 8959,14}, { 2303,13}, { 4607,12}, \
- { 9471,14}, { 2431,13}, { 4863,12}, { 9983,15}, \
- { 1279,14}, { 2559,12}, { 10239,14}, { 2687,12}, \
- { 11775,15}, { 1535,14}, { 3327,13}, { 6655,14}, \
- { 3455,13}, { 6911,14}, { 3583,12}, { 14335,11}, \
- { 28671,10}, { 57343,11}, { 2048,12}, { 4096,13}, \
- { 8192,14}, { 16384,15}, { 32768,16}, { 65536,17}, \
- { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
- {2097152,22}, {4194304,23}, {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 183
+ { 575,12}, { 351,11}, { 703,13}, { 191,12}, \
+ { 415,11}, { 831,12}, { 479,14}, { 127,13}, \
+ { 255,12}, { 575,13}, { 319,12}, { 703,13}, \
+ { 383,12}, { 831,13}, { 447,12}, { 959,14}, \
+ { 255,13}, { 511,12}, { 1023,13}, { 575,12}, \
+ { 1215,13}, { 639,12}, { 1279,13}, { 703,14}, \
+ { 383,13}, { 831,12}, { 1663,13}, { 959,15}, \
+ { 255,14}, { 511,13}, { 1087,12}, { 2175,13}, \
+ { 1215,14}, { 639,13}, { 1343,12}, { 2687,13}, \
+ { 1407,14}, { 767,13}, { 1535,12}, { 3199,13}, \
+ { 1663,14}, { 895,15}, { 511,14}, { 1023,13}, \
+ { 2175,14}, { 1151,13}, { 2303,12}, { 4607,13}, \
+ { 2431,12}, { 4863,14}, { 1279,13}, { 2687,14}, \
+ { 1407,15}, { 767,14}, { 1535,13}, { 3199,14}, \
+ { 1663,13}, { 3327,12}, { 6655,13}, { 3455,12}, \
+ { 6911,14}, { 1791,16}, { 511,15}, { 1023,14}, \
+ { 2175,13}, { 4351,12}, { 8703,14}, { 2303,13}, \
+ { 4607,14}, { 2431,13}, { 4863,15}, { 1279,14}, \
+ { 2815,13}, { 5631,14}, { 2943,13}, { 5887,12}, \
+ { 11775,15}, { 1535,14}, { 3199,13}, { 6399,14}, \
+ { 3327,13}, { 6655,14}, { 3455,13}, { 6911,15}, \
+ { 1791,14}, { 3583,13}, { 7167,14}, { 3839,13}, \
+ { 7679,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
+ { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
+ {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 193
#define MUL_FFT_THRESHOLD 4736
#define SQR_FFT_MODF_THRESHOLD 340 /* k = 5 */
#define SQR_FFT_TABLE3 \
{ { 340, 5}, { 15, 6}, { 8, 5}, { 17, 6}, \
- { 9, 5}, { 19, 6}, { 23, 7}, { 12, 6}, \
- { 25, 7}, { 21, 8}, { 11, 7}, { 25, 8}, \
- { 13, 7}, { 27, 8}, { 15, 7}, { 31, 8}, \
+ { 9, 5}, { 19, 6}, { 21, 7}, { 11, 6}, \
+ { 23, 7}, { 12, 6}, { 25, 7}, { 21, 8}, \
+ { 11, 7}, { 24, 8}, { 13, 7}, { 27, 8}, \
+ { 15, 7}, { 31, 8}, { 17, 7}, { 35, 8}, \
{ 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
- { 33, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
- { 47, 9}, { 27,10}, { 15, 9}, { 43,10}, \
- { 23, 9}, { 55,10}, { 31, 9}, { 67,10}, \
- { 39, 9}, { 79,10}, { 47,11}, { 31,10}, \
- { 79,11}, { 47,10}, { 95,12}, { 31,11}, \
- { 63,10}, { 127, 9}, { 255, 8}, { 511, 9}, \
- { 271, 8}, { 543,11}, { 79, 9}, { 319, 8}, \
- { 639,11}, { 95,10}, { 191, 9}, { 383,10}, \
+ { 35, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
+ { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
+ { 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
+ { 67,10}, { 39, 9}, { 79,10}, { 47, 9}, \
+ { 95,10}, { 55,11}, { 31,10}, { 79,11}, \
+ { 47,10}, { 95,12}, { 31,11}, { 63,10}, \
+ { 127, 9}, { 255, 8}, { 511, 9}, { 271, 8}, \
+ { 543,11}, { 79, 9}, { 319, 8}, { 639,10}, \
+ { 175,11}, { 95,10}, { 191, 9}, { 383,10}, \
{ 207, 9}, { 415,12}, { 63,11}, { 127,10}, \
{ 271, 9}, { 543,10}, { 287, 9}, { 575,10}, \
{ 303, 9}, { 607,10}, { 319, 9}, { 639,11}, \
@@ -147,71 +152,76 @@ see https://www.gnu.org/licenses/. */
{ 207,10}, { 415,13}, { 63,12}, { 127,11}, \
{ 271,10}, { 543,11}, { 287,10}, { 575,11}, \
{ 303,10}, { 607,11}, { 319,10}, { 639,11}, \
- { 351,12}, { 191,11}, { 415,10}, { 831,12}, \
- { 223,11}, { 447,10}, { 895,11}, { 479,13}, \
- { 127,12}, { 255,11}, { 543,12}, { 287,11}, \
- { 607,12}, { 319,11}, { 639,12}, { 351,13}, \
- { 191,12}, { 415,11}, { 831,12}, { 479,14}, \
- { 127,13}, { 255,12}, { 607,13}, { 319,12}, \
- { 703,13}, { 383,12}, { 831,13}, { 447,12}, \
- { 959,14}, { 255,13}, { 511,12}, { 1023,13}, \
- { 575,12}, { 1215,13}, { 639,12}, { 1279,13}, \
- { 703,14}, { 383,13}, { 831,12}, { 1663,13}, \
- { 959,15}, { 255,14}, { 511,13}, { 1087,12}, \
- { 2175,13}, { 1215,14}, { 639,13}, { 1343,12}, \
- { 2687,13}, { 1407,12}, { 2815,14}, { 767,13}, \
- { 1663,14}, { 895,15}, { 511,14}, { 1023,13}, \
- { 2175,14}, { 1151,13}, { 2303,12}, { 4607,13}, \
- { 2431,12}, { 4863,14}, { 1279,13}, { 2687,14}, \
- { 1407,15}, { 767,14}, { 1535,13}, { 3071,14}, \
- { 1663,13}, { 3455,12}, { 6911,14}, { 1791,13}, \
- { 3583,16}, { 511,15}, { 1023,14}, { 2175,13}, \
- { 4351,14}, { 2303,13}, { 4607,14}, { 2431,13}, \
+ { 351,12}, { 191,11}, { 415,12}, { 223,11}, \
+ { 479,13}, { 127,12}, { 255,11}, { 543,12}, \
+ { 287,11}, { 607,12}, { 319,11}, { 639,12}, \
+ { 351,13}, { 191,12}, { 415,11}, { 831,12}, \
+ { 479,14}, { 127,13}, { 255,12}, { 607,13}, \
+ { 319,12}, { 703,13}, { 383,12}, { 831,13}, \
+ { 447,12}, { 959,14}, { 255,13}, { 511,12}, \
+ { 1023,13}, { 575,12}, { 1215,13}, { 639,12}, \
+ { 1279,13}, { 703,14}, { 383,13}, { 831,12}, \
+ { 1663,13}, { 959,15}, { 255,14}, { 511,13}, \
+ { 1087,12}, { 2175,13}, { 1215,14}, { 639,13}, \
+ { 1343,12}, { 2687,13}, { 1407,12}, { 2815,14}, \
+ { 767,13}, { 1535,12}, { 3199,13}, { 1663,14}, \
+ { 895,15}, { 511,14}, { 1023,13}, { 2175,14}, \
+ { 1151,13}, { 2303,12}, { 4607,13}, { 2431,12}, \
+ { 4863,14}, { 1279,13}, { 2687,14}, { 1407,15}, \
+ { 767,14}, { 1535,13}, { 3199,14}, { 1663,13}, \
+ { 3327,12}, { 6655,13}, { 3455,14}, { 1791,16}, \
+ { 511,15}, { 1023,14}, { 2175,13}, { 4351,12}, \
+ { 8703,14}, { 2303,13}, { 4607,14}, { 2431,13}, \
{ 4863,15}, { 1279,14}, { 2815,13}, { 5631,14}, \
- { 2943,13}, { 5887,15}, { 1535,14}, { 3455,13}, \
- { 6911,14}, { 16384,15}, { 32768,16}, { 65536,17}, \
- { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
- {2097152,22}, {4194304,23}, {8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 179
-#define SQR_FFT_THRESHOLD 3008
+ { 2943,13}, { 5887,12}, { 11775,15}, { 1535,14}, \
+ { 3199,13}, { 6399,14}, { 3327,13}, { 6655,14}, \
+ { 3455,15}, { 1791,14}, { 3583,13}, { 7167,14}, \
+ { 3839,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
+ { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
+ {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 193
+#define SQR_FFT_THRESHOLD 3200
#define MULLO_BASECASE_THRESHOLD 0 /* always */
#define MULLO_DC_THRESHOLD 62
#define MULLO_MUL_N_THRESHOLD 9174
+#define SQRLO_BASECASE_THRESHOLD 8
+#define SQRLO_DC_THRESHOLD 0 /* never mpn_sqrlo_basecase */
+#define SQRLO_SQR_THRESHOLD 6253
#define DC_DIV_QR_THRESHOLD 46
-#define DC_DIVAPPR_Q_THRESHOLD 155
+#define DC_DIVAPPR_Q_THRESHOLD 157
#define DC_BDIV_QR_THRESHOLD 50
-#define DC_BDIV_Q_THRESHOLD 94
+#define DC_BDIV_Q_THRESHOLD 92
-#define INV_MULMOD_BNM1_THRESHOLD 48
+#define INV_MULMOD_BNM1_THRESHOLD 46
#define INV_NEWTON_THRESHOLD 156
-#define INV_APPR_THRESHOLD 155
+#define INV_APPR_THRESHOLD 156
-#define BINV_NEWTON_THRESHOLD 234
+#define BINV_NEWTON_THRESHOLD 228
#define REDC_1_TO_REDC_2_THRESHOLD 22
-#define REDC_2_TO_REDC_N_THRESHOLD 48
+#define REDC_2_TO_REDC_N_THRESHOLD 51
#define MU_DIV_QR_THRESHOLD 1187
-#define MU_DIVAPPR_Q_THRESHOLD 1142
-#define MUPI_DIV_QR_THRESHOLD 74
+#define MU_DIVAPPR_Q_THRESHOLD 1187
+#define MUPI_DIV_QR_THRESHOLD 73
#define MU_BDIV_QR_THRESHOLD 1017
#define MU_BDIV_Q_THRESHOLD 1187
-#define POWM_SEC_TABLE 1,64,131,269,466
-
-#define MATRIX22_STRASSEN_THRESHOLD 19
-#define HGCD_THRESHOLD 117
-#define HGCD_APPR_THRESHOLD 151
-#define HGCD_REDUCE_THRESHOLD 2121
-#define GCD_DC_THRESHOLD 427
-#define GCDEXT_DC_THRESHOLD 342
-#define JACOBI_BASE_METHOD 4
+#define POWM_SEC_TABLE 3,64,127,386,1486
#define GET_STR_DC_THRESHOLD 11
#define GET_STR_PRECOMPUTE_THRESHOLD 18
#define SET_STR_DC_THRESHOLD 552
-#define SET_STR_PRECOMPUTE_THRESHOLD 1561
+#define SET_STR_PRECOMPUTE_THRESHOLD 1416
-#define FAC_DSC_THRESHOLD 656
+#define FAC_DSC_THRESHOLD 753
#define FAC_ODD_THRESHOLD 23
+
+#define MATRIX22_STRASSEN_THRESHOLD 19
+#define HGCD_THRESHOLD 117
+#define HGCD_APPR_THRESHOLD 152
+#define HGCD_REDUCE_THRESHOLD 2121
+#define GCD_DC_THRESHOLD 330
+#define GCDEXT_DC_THRESHOLD 342
+#define JACOBI_BASE_METHOD 4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/lshift.asm
index 8ccafeca6c6..8ccafeca6c6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/lshiftc.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/lshiftc.asm
index 65c7b2f1b86..65c7b2f1b86 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/lshiftc.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/lshiftc.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/mul_basecase.asm
index d16be852f76..d16be852f76 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/mul_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/mul_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/mullo_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/mullo_basecase.asm
index 0f03d867f6b..0f03d867f6b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/mullo_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/mullo_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/popcount.asm
index e935cf18920..e935cf18920 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/popcount.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/redc_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/redc_1.asm
index d0e96ef1cba..8c296fdc77d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/redc_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/redc_1.asm
@@ -280,7 +280,12 @@ IFDOS(` lea (up,n,8), %rdx C param 2: up
mov n, %r9 C param 4: n
mov rp, %rcx ') C param 1: rp
+IFSTD(` sub $8, %rsp ')
+IFDOS(` sub $40, %rsp ')
+ ASSERT(nz, `test $15, %rsp')
CALL( mpn_add_n)
+IFSTD(` add $8, %rsp ')
+IFDOS(` add $40, %rsp ')
L(ret): pop %r15
pop %r14
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/rsh1aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/rsh1aors_n.asm
index 27eed3712d2..27eed3712d2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/rsh1aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/rsh1aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/rshift.asm
index ab32ec85dff..ab32ec85dff 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sec_tabselect.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/sec_tabselect.asm
index e4360341d93..e4360341d93 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sec_tabselect.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/sec_tabselect.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sqr_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/sqr_basecase.asm
index a112c1b52ec..a112c1b52ec 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sqr_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/sqr_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sublsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/sublsh1_n.asm
index 46488fcafeb..46488fcafeb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sublsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/sublsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sublsh2_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/sublsh2_n.asm
index f3b1e284646..f3b1e284646 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sublsh2_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/sublsh2_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sublshC_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/sublshC_n.asm
index 5acc46b032a..5acc46b032a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sublshC_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/core2/sublshC_n.asm
diff --git a/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/addmul_1.asm
new file mode 100644
index 00000000000..aaa58e72518
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/addmul_1.asm
@@ -0,0 +1,203 @@
+dnl AMD64 mpn_addmul_1 optimised for Intel Broadwell.
+
+dnl Copyright 2015 Free Software Foundation, Inc.
+
+dnl This file is part of the GNU MP Library.
+dnl
+dnl The GNU MP Library is free software; you can redistribute it and/or modify
+dnl it under the terms of either:
+dnl
+dnl * the GNU Lesser General Public License as published by the Free
+dnl Software Foundation; either version 3 of the License, or (at your
+dnl option) any later version.
+dnl
+dnl or
+dnl
+dnl * the GNU General Public License as published by the Free Software
+dnl Foundation; either version 2 of the License, or (at your option) any
+dnl later version.
+dnl
+dnl or both in parallel, as here.
+dnl
+dnl The GNU MP Library is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+dnl for more details.
+dnl
+dnl You should have received copies of the GNU General Public License and the
+dnl GNU Lesser General Public License along with the GNU MP Library. If not,
+dnl see https://www.gnu.org/licenses/.
+
+include(`../config.m4')
+
+C cycles/limb
+C AMD K8,K9 n/a
+C AMD K10 n/a
+C AMD bull n/a
+C AMD pile n/a
+C AMD steam n/a
+C AMD excavator ?
+C AMD bobcat n/a
+C AMD jaguar n/a
+C Intel P4 n/a
+C Intel core2 n/a
+C Intel NHM n/a
+C Intel SBR n/a
+C Intel IBR n/a
+C Intel HWL n/a
+C Intel BWL 1.8-1.9
+C Intel atom n/a
+C Intel SLM n/a
+C VIA nano n/a
+
+C The loop of this code is the result of running a code generation and
+C optimisation tool suite written by David Harvey and Torbjorn Granlund.
+
+C TODO
+C * Put an initial mulx before switching, targeting some free registers.
+C * Tune feed-in code.
+C * Trim nop execution after L(f2).
+C * Port to DOS64, not forgetting nop execution.
+
+define(`rp', `%rdi') C rcx
+define(`up', `%rsi') C rdx
+define(`n_param', `%rdx') C r8
+define(`v0_param',`%rcx') C r9
+
+define(`n', `%rcx')
+
+dnl ABI_SUPPORT(DOS64)
+ABI_SUPPORT(STD64)
+
+dnl IFDOS(` define(`up', ``%rsi'') ') dnl
+dnl IFDOS(` define(`rp', ``%rcx'') ') dnl
+dnl IFDOS(` define(`vl', ``%r9'') ') dnl
+dnl IFDOS(` define(`r9', ``rdi'') ') dnl
+dnl IFDOS(` define(`n', ``%r8'') ') dnl
+dnl IFDOS(` define(`r8', ``r11'') ') dnl
+
+ASM_START()
+ TEXT
+ ALIGN(32)
+PROLOGUE(mpn_addmul_1)
+
+ mov v0_param, %r10
+ mov n_param, n
+ mov R32(n_param), R32(%r8)
+ shr $3, n
+ and $7, R32(%r8) C clear OF, CF as side-effect
+ mov %r10, %rdx
+ lea L(tab)(%rip), %r10
+ifdef(`PIC',
+` movslq (%r10,%r8,4), %r8
+ lea (%r8, %r10), %r10
+ jmp *%r10
+',`
+ jmp *(%r10,%r8,8)
+')
+ JUMPTABSECT
+ ALIGN(8)
+L(tab): JMPENT( L(f0), L(tab))
+ JMPENT( L(f1), L(tab))
+ JMPENT( L(f2), L(tab))
+ JMPENT( L(f3), L(tab))
+ JMPENT( L(f4), L(tab))
+ JMPENT( L(f5), L(tab))
+ JMPENT( L(f6), L(tab))
+ JMPENT( L(f7), L(tab))
+ TEXT
+
+L(f0): mulx( (up), %r10, %r8)
+ lea -8(up), up
+ lea -8(rp), rp
+ lea -1(n), n
+ jmp L(b0)
+
+L(f3): mulx( (up), %r9, %rax)
+ lea 16(up), up
+ lea -48(rp), rp
+ jmp L(b3)
+
+L(f4): mulx( (up), %r10, %r8)
+ lea 24(up), up
+ lea -40(rp), rp
+ jmp L(b4)
+
+L(f5): mulx( (up), %r9, %rax)
+ lea 32(up), up
+ lea -32(rp), rp
+ jmp L(b5)
+
+L(f6): mulx( (up), %r10, %r8)
+ lea 40(up), up
+ lea -24(rp), rp
+ jmp L(b6)
+
+L(f1): mulx( (up), %r9, %rax)
+ jrcxz L(1)
+ jmp L(b1)
+L(1): add (rp), %r9
+ mov %r9, (rp)
+ adc %rcx, %rax C relies on rcx = 0
+ ret
+
+L(end): adox( (rp), %r9)
+ mov %r9, (rp)
+ adox( %rcx, %rax) C relies on rcx = 0
+ adc %rcx, %rax C relies on rcx = 0
+ ret
+
+ifdef(`PIC',
+` nop;nop;nop;nop',
+` nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop')
+
+L(f2): mulx( (up), %r10, %r8)
+ lea 8(up), up
+ lea 8(rp), rp
+ mulx( (up), %r9, %rax)
+
+ ALIGN(32)
+L(top): adox( -8,(rp), %r10)
+ adcx( %r8, %r9)
+ mov %r10, -8(rp)
+ jrcxz L(end)
+L(b1): mulx( 8,(up), %r10, %r8)
+ adox( (rp), %r9)
+ lea -1(n), n
+ mov %r9, (rp)
+ adcx( %rax, %r10)
+L(b0): mulx( 16,(up), %r9, %rax)
+ adcx( %r8, %r9)
+ adox( 8,(rp), %r10)
+ mov %r10, 8(rp)
+L(b7): mulx( 24,(up), %r10, %r8)
+ lea 64(up), up
+ adcx( %rax, %r10)
+ adox( 16,(rp), %r9)
+ mov %r9, 16(rp)
+L(b6): mulx( -32,(up), %r9, %rax)
+ adox( 24,(rp), %r10)
+ adcx( %r8, %r9)
+ mov %r10, 24(rp)
+L(b5): mulx( -24,(up), %r10, %r8)
+ adcx( %rax, %r10)
+ adox( 32,(rp), %r9)
+ mov %r9, 32(rp)
+L(b4): mulx( -16,(up), %r9, %rax)
+ adox( 40,(rp), %r10)
+ adcx( %r8, %r9)
+ mov %r10, 40(rp)
+L(b3): adox( 48,(rp), %r9)
+ mulx( -8,(up), %r10, %r8)
+ mov %r9, 48(rp)
+ lea 64(rp), rp
+ adcx( %rax, %r10)
+ mulx( (up), %r9, %rax)
+ jmp L(top)
+
+L(f7): mulx( (up), %r9, %rax)
+ lea -16(up), up
+ lea -16(rp), rp
+ jmp L(b7)
+EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/gmp-mparam.h
new file mode 100644
index 00000000000..1f2cc67980e
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/gmp-mparam.h
@@ -0,0 +1,229 @@
+/* Broadwell gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 2000-2015 Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 64
+#define GMP_LIMB_BYTES 8
+
+/* Disable use of slow functions. FIXME: We should disable lib inclusion. */
+#undef HAVE_NATIVE_mpn_mul_2
+#undef HAVE_NATIVE_mpn_addmul_2
+
+/* 2100 MHz Intel i3-5100 */
+/* FFT tuning limit = 200 M */
+/* Generated by tuneup.c, 2015-10-12, gcc 4.8 */
+
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 4
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 15
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 26
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 9
+#define USE_PREINV_DIVREM_1 1 /* native */
+#define DIV_QR_1_NORM_THRESHOLD 1
+#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 20
+
+#define MUL_TOOM22_THRESHOLD 28
+#define MUL_TOOM33_THRESHOLD 75
+#define MUL_TOOM44_THRESHOLD 218
+#define MUL_TOOM6H_THRESHOLD 354
+#define MUL_TOOM8H_THRESHOLD 434
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 75
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 163
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 147
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 149
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 215
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 38
+#define SQR_TOOM3_THRESHOLD 113
+#define SQR_TOOM4_THRESHOLD 442
+#define SQR_TOOM6_THRESHOLD 517
+#define SQR_TOOM8_THRESHOLD 572
+
+#define MULMID_TOOM42_THRESHOLD 46
+
+#define MULMOD_BNM1_THRESHOLD 16
+#define SQRMOD_BNM1_THRESHOLD 17
+
+#define MUL_FFT_MODF_THRESHOLD 428 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 428, 5}, { 23, 6}, { 25, 7}, { 13, 6}, \
+ { 27, 7}, { 14, 6}, { 29, 7}, { 24, 8}, \
+ { 13, 7}, { 29, 8}, { 15, 7}, { 31, 8}, \
+ { 17, 7}, { 35, 8}, { 19, 7}, { 39, 8}, \
+ { 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
+ { 35, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
+ { 49, 9}, { 27,10}, { 15, 9}, { 39,10}, \
+ { 23, 9}, { 55,11}, { 15,10}, { 31, 9}, \
+ { 67,10}, { 39, 9}, { 83,10}, { 47, 9}, \
+ { 99,10}, { 55,11}, { 31,10}, { 71, 6}, \
+ { 1215, 7}, { 639, 8}, { 335, 9}, { 179,12}, \
+ { 31,11}, { 63,10}, { 143,11}, { 79,10}, \
+ { 167,11}, { 111,12}, { 63,11}, { 127,10}, \
+ { 255, 9}, { 511,10}, { 271, 9}, { 543,10}, \
+ { 287, 9}, { 575,10}, { 303,11}, { 159,10}, \
+ { 319,12}, { 95,11}, { 191,10}, { 383,13}, \
+ { 63,12}, { 127,11}, { 255,10}, { 511,11}, \
+ { 271,10}, { 543,11}, { 287,10}, { 575,12}, \
+ { 159,11}, { 319,10}, { 639,11}, { 335,10}, \
+ { 671,11}, { 351,10}, { 703,12}, { 191,11}, \
+ { 383,10}, { 767,11}, { 415,10}, { 831,12}, \
+ { 223,11}, { 447,13}, { 127,11}, { 543,12}, \
+ { 287,11}, { 607,10}, { 1215,12}, { 319,11}, \
+ { 671,12}, { 351,11}, { 703,13}, { 191,12}, \
+ { 383,11}, { 799,12}, { 415,11}, { 831,12}, \
+ { 447,14}, { 127,13}, { 255,12}, { 543,11}, \
+ { 1087,12}, { 607,13}, { 319,12}, { 671,11}, \
+ { 1343,12}, { 735,13}, { 383,12}, { 831,13}, \
+ { 447,12}, { 959,13}, { 511,12}, { 1023,13}, \
+ { 575,12}, { 1151,13}, { 639,12}, { 1343,13}, \
+ { 703,12}, { 1407,14}, { 383,13}, { 831,12}, \
+ { 1663,13}, { 895,14}, { 511,13}, { 1087,12}, \
+ { 2175,13}, { 1151,14}, { 639,13}, { 1343,12}, \
+ { 2687,13}, { 1407,14}, { 767,13}, { 1535,12}, \
+ { 3199,13}, { 1663,14}, { 895,15}, { 511,14}, \
+ { 1023,13}, { 2175,14}, { 1151,13}, { 2431,12}, \
+ { 4863,14}, { 1279,13}, { 2687,14}, { 1407,13}, \
+ { 2943,15}, { 767,14}, { 1535,13}, { 3199,14}, \
+ { 1663,13}, { 3455,14}, { 1791,16}, { 511,15}, \
+ { 1023,14}, { 2175,13}, { 4479,14}, { 2431,13}, \
+ { 4863,15}, { 1279,14}, { 2943,13}, { 5887,15}, \
+ { 1535,14}, { 3455,15}, { 1791,14}, { 3839,16}, \
+ { 1023,15}, { 2047,14}, { 4479,15}, { 2303,14}, \
+ { 4863,15}, { 2559,14}, { 5247,15}, { 2815,14}, \
+ { 5887,16}, { 1535,15}, { 3327,14}, { 6911,15}, \
+ { 3839,17}, { 1023,16}, { 2047,15}, { 4863,16}, \
+ { 2559,15}, { 5887,16}, { 65536,17}, { 131072,18}, \
+ { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
+ {4194304,23}, {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 194
+#define MUL_FFT_THRESHOLD 4736
+
+#define SQR_FFT_MODF_THRESHOLD 396 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 396, 5}, { 23, 6}, { 12, 5}, { 25, 6}, \
+ { 25, 7}, { 13, 6}, { 27, 7}, { 14, 6}, \
+ { 29, 7}, { 15, 6}, { 31, 7}, { 25, 8}, \
+ { 13, 7}, { 28, 8}, { 15, 7}, { 32, 8}, \
+ { 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
+ { 33, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
+ { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
+ { 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
+ { 67,10}, { 39, 9}, { 79,10}, { 55,11}, \
+ { 31,10}, { 79,11}, { 47,10}, { 95,12}, \
+ { 31, 9}, { 255,10}, { 135,11}, { 79,10}, \
+ { 159,11}, { 95,10}, { 191, 9}, { 383,12}, \
+ { 63,11}, { 127,10}, { 255, 9}, { 511,10}, \
+ { 271,11}, { 143,10}, { 287, 9}, { 575,10}, \
+ { 303, 9}, { 607,11}, { 159,10}, { 319, 9}, \
+ { 639,12}, { 95,10}, { 383, 9}, { 767,13}, \
+ { 63,12}, { 127,11}, { 255,10}, { 511,11}, \
+ { 271,10}, { 543,11}, { 287,10}, { 607,12}, \
+ { 159,11}, { 319,10}, { 639,11}, { 335,10}, \
+ { 671,11}, { 351,10}, { 703,11}, { 367,10}, \
+ { 735,11}, { 383,10}, { 767,11}, { 415,10}, \
+ { 831,12}, { 223,11}, { 479,13}, { 127,12}, \
+ { 255,11}, { 543,12}, { 287,11}, { 607,12}, \
+ { 319,11}, { 671,12}, { 351,11}, { 735,12}, \
+ { 383,11}, { 767,12}, { 415,11}, { 831,12}, \
+ { 447,11}, { 895,12}, { 479,14}, { 127,13}, \
+ { 255,12}, { 735,13}, { 383,12}, { 831,13}, \
+ { 447,12}, { 927,14}, { 255,13}, { 511,12}, \
+ { 1023,13}, { 575,12}, { 1151,13}, { 639,12}, \
+ { 1279,13}, { 703,12}, { 1407,14}, { 383,13}, \
+ { 767,12}, { 1535,13}, { 831,12}, { 1663,13}, \
+ { 895,14}, { 511,13}, { 1087,12}, { 2175,13}, \
+ { 1151,14}, { 639,13}, { 1343,12}, { 2687,13}, \
+ { 1407,14}, { 767,13}, { 1599,12}, { 3199,13}, \
+ { 1663,14}, { 895,13}, { 1791,15}, { 511,14}, \
+ { 1023,13}, { 2175,14}, { 1151,13}, { 2431,12}, \
+ { 4863,14}, { 1279,13}, { 2687,14}, { 1407,15}, \
+ { 767,14}, { 1535,13}, { 3199,14}, { 1663,13}, \
+ { 3455,14}, { 1791,16}, { 511,15}, { 1023,14}, \
+ { 2431,13}, { 4863,15}, { 1279,14}, { 2943,13}, \
+ { 5887,15}, { 1535,14}, { 3455,15}, { 1791,14}, \
+ { 3839,16}, { 1023,15}, { 2047,14}, { 4223,15}, \
+ { 2303,14}, { 4863,15}, { 2559,14}, { 5119,15}, \
+ { 2815,14}, { 5887,16}, { 1535,15}, { 3327,14}, \
+ { 6911,15}, { 3839,17}, { 1023,16}, { 2047,15}, \
+ { 4863,16}, { 2559,15}, { 5887,16}, { 65536,17}, \
+ { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
+ {2097152,22}, {4194304,23}, {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 191
+#define SQR_FFT_THRESHOLD 3776
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 27
+#define MULLO_MUL_N_THRESHOLD 8648
+#define SQRLO_BASECASE_THRESHOLD 9
+#define SQRLO_DC_THRESHOLD 172
+#define SQRLO_SQR_THRESHOLD 7487
+
+#define DC_DIV_QR_THRESHOLD 56
+#define DC_DIVAPPR_Q_THRESHOLD 191
+#define DC_BDIV_QR_THRESHOLD 86
+#define DC_BDIV_Q_THRESHOLD 188
+
+#define INV_MULMOD_BNM1_THRESHOLD 70
+#define INV_NEWTON_THRESHOLD 179
+#define INV_APPR_THRESHOLD 181
+
+#define BINV_NEWTON_THRESHOLD 309
+#define REDC_1_TO_REDC_2_THRESHOLD 33
+#define REDC_2_TO_REDC_N_THRESHOLD 78
+
+#define MU_DIV_QR_THRESHOLD 1718
+#define MU_DIVAPPR_Q_THRESHOLD 1718
+#define MUPI_DIV_QR_THRESHOLD 79
+#define MU_BDIV_QR_THRESHOLD 1652
+#define MU_BDIV_Q_THRESHOLD 1718
+
+#define POWM_SEC_TABLE 1,9,191,779,839
+
+#define GET_STR_DC_THRESHOLD 14
+#define GET_STR_PRECOMPUTE_THRESHOLD 20
+#define SET_STR_DC_THRESHOLD 711
+#define SET_STR_PRECOMPUTE_THRESHOLD 1664
+
+#define FAC_DSC_THRESHOLD 810
+#define FAC_ODD_THRESHOLD 23
+
+#define MATRIX22_STRASSEN_THRESHOLD 19
+#define HGCD_THRESHOLD 63
+#define HGCD_APPR_THRESHOLD 51
+#define HGCD_REDUCE_THRESHOLD 3014
+#define GCD_DC_THRESHOLD 630
+#define GCDEXT_DC_THRESHOLD 416
+#define JACOBI_BASE_METHOD 4
diff --git a/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/mul_1.asm
new file mode 100644
index 00000000000..a271e6cc867
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/mul_1.asm
@@ -0,0 +1,193 @@
+dnl AMD64 mpn_mul_1 optimised for Intel Broadwell.
+
+dnl Copyright 2015 Free Software Foundation, Inc.
+
+dnl This file is part of the GNU MP Library.
+dnl
+dnl The GNU MP Library is free software; you can redistribute it and/or modify
+dnl it under the terms of either:
+dnl
+dnl * the GNU Lesser General Public License as published by the Free
+dnl Software Foundation; either version 3 of the License, or (at your
+dnl option) any later version.
+dnl
+dnl or
+dnl
+dnl * the GNU General Public License as published by the Free Software
+dnl Foundation; either version 2 of the License, or (at your option) any
+dnl later version.
+dnl
+dnl or both in parallel, as here.
+dnl
+dnl The GNU MP Library is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+dnl for more details.
+dnl
+dnl You should have received copies of the GNU General Public License and the
+dnl GNU Lesser General Public License along with the GNU MP Library. If not,
+dnl see https://www.gnu.org/licenses/.
+
+include(`../config.m4')
+
+C cycles/limb
+C AMD K8,K9 n/a
+C AMD K10 n/a
+C AMD bull n/a
+C AMD pile n/a
+C AMD steam n/a
+C AMD bobcat n/a
+C AMD jaguar n/a
+C Intel P4 n/a
+C Intel core2 n/a
+C Intel NHM n/a
+C Intel SBR n/a
+C Intel IBR n/a
+C Intel HWL 1.68
+C Intel BWL 1.69
+C Intel atom n/a
+C Intel SLM n/a
+C VIA nano n/a
+
+C The loop of this code is the result of running a code generation and
+C optimisation tool suite written by David Harvey and Torbjorn Granlund.
+
+C TODO
+C * Put an initial mulx before switching, targeting some free registers.
+C * Tune feed-in code.
+C * Trim nop execution after L(f2).
+C * Port to DOS64, not forgetting nop execution.
+
+define(`rp', `%rdi') C rcx
+define(`up', `%rsi') C rdx
+define(`n_param', `%rdx') C r8
+define(`v0_param',`%rcx') C r9
+
+define(`n', `%rcx')
+
+dnl ABI_SUPPORT(DOS64)
+ABI_SUPPORT(STD64)
+
+dnl IFDOS(` define(`up', ``%rsi'') ') dnl
+dnl IFDOS(` define(`rp', ``%rcx'') ') dnl
+dnl IFDOS(` define(`vl', ``%r9'') ') dnl
+dnl IFDOS(` define(`r9', ``rdi'') ') dnl
+dnl IFDOS(` define(`n', ``%r8'') ') dnl
+dnl IFDOS(` define(`r8', ``r11'') ') dnl
+
+ASM_START()
+ TEXT
+ ALIGN(32)
+PROLOGUE(mpn_mul_1)
+
+ mov v0_param, %r10
+ mov n_param, n
+ mov R32(n_param), R32(%r8)
+ shr $3, n
+ and $7, R32(%r8) C clear OF, CF as side-effect
+ mov %r10, %rdx
+ lea L(tab)(%rip), %r10
+ifdef(`PIC',
+` movslq (%r10,%r8,4), %r8
+ lea (%r8, %r10), %r10
+ jmp *%r10
+',`
+ jmp *(%r10,%r8,8)
+')
+ JUMPTABSECT
+ ALIGN(8)
+L(tab): JMPENT( L(f0), L(tab))
+ JMPENT( L(f1), L(tab))
+ JMPENT( L(f2), L(tab))
+ JMPENT( L(f3), L(tab))
+ JMPENT( L(f4), L(tab))
+ JMPENT( L(f5), L(tab))
+ JMPENT( L(f6), L(tab))
+ JMPENT( L(f7), L(tab))
+ TEXT
+
+L(f0): mulx( (up), %r10, %r8)
+ lea 56(up), up
+ lea -8(rp), rp
+ jmp L(b0)
+
+L(f3): mulx( (up), %r9, %rax)
+ lea 16(up), up
+ lea 16(rp), rp
+ inc n
+ jmp L(b3)
+
+L(f4): mulx( (up), %r10, %r8)
+ lea 24(up), up
+ lea 24(rp), rp
+ inc n
+ jmp L(b4)
+
+L(f5): mulx( (up), %r9, %rax)
+ lea 32(up), up
+ lea 32(rp), rp
+ inc n
+ jmp L(b5)
+
+L(f6): mulx( (up), %r10, %r8)
+ lea 40(up), up
+ lea 40(rp), rp
+ inc n
+ jmp L(b6)
+
+L(f7): mulx( (up), %r9, %rax)
+ lea 48(up), up
+ lea 48(rp), rp
+ inc n
+ jmp L(b7)
+
+L(f1): mulx( (up), %r9, %rax)
+ test n, n
+ jnz L(b1)
+L(1): mov %r9, (rp)
+ ret
+
+L(f2): mulx( (up), %r10, %r8)
+ lea 8(up), up
+ lea 8(rp), rp
+ mulx( (up), %r9, %rax)
+ test n, n
+ jz L(end)
+
+ ALIGN(32)
+L(top): mov %r10, -8(rp)
+ adc %r8, %r9
+L(b1): mulx( 8,(up), %r10, %r8)
+ adc %rax, %r10
+ lea 64(up), up
+ mov %r9, (rp)
+L(b0): mov %r10, 8(rp)
+ mulx( -48,(up), %r9, %rax)
+ lea 64(rp), rp
+ adc %r8, %r9
+L(b7): mulx( -40,(up), %r10, %r8)
+ mov %r9, -48(rp)
+ adc %rax, %r10
+L(b6): mov %r10, -40(rp)
+ mulx( -32,(up), %r9, %rax)
+ adc %r8, %r9
+L(b5): mulx( -24,(up), %r10, %r8)
+ mov %r9, -32(rp)
+ adc %rax, %r10
+L(b4): mulx( -16,(up), %r9, %rax)
+ mov %r10, -24(rp)
+ adc %r8, %r9
+L(b3): mulx( -8,(up), %r10, %r8)
+ adc %rax, %r10
+ mov %r9, -16(rp)
+ dec n
+ mulx( (up), %r9, %rax)
+ jnz L(top)
+
+L(end): mov %r10, -8(rp)
+ adc %r8, %r9
+ mov %r9, (rp)
+ adc %rcx, %rax
+ ret
+EPILOGUE()
+ASM_END()
diff --git a/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/mul_basecase.asm
new file mode 100644
index 00000000000..6365d10a185
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/mul_basecase.asm
@@ -0,0 +1,363 @@
+dnl AMD64 mpn_mul_basecase optimised for Intel Broadwell.
+
+dnl Copyright 2015 Free Software Foundation, Inc.
+
+dnl This file is part of the GNU MP Library.
+dnl
+dnl The GNU MP Library is free software; you can redistribute it and/or modify
+dnl it under the terms of either:
+dnl
+dnl * the GNU Lesser General Public License as published by the Free
+dnl Software Foundation; either version 3 of the License, or (at your
+dnl option) any later version.
+dnl
+dnl or
+dnl
+dnl * the GNU General Public License as published by the Free Software
+dnl Foundation; either version 2 of the License, or (at your option) any
+dnl later version.
+dnl
+dnl or both in parallel, as here.
+dnl
+dnl The GNU MP Library is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+dnl for more details.
+dnl
+dnl You should have received copies of the GNU General Public License and the
+dnl GNU Lesser General Public License along with the GNU MP Library. If not,
+dnl see https://www.gnu.org/licenses/.
+
+include(`../config.m4')
+
+C cycles/limb mul_1 addmul_1
+C AMD K8,K9 n/a n/a
+C AMD K10 n/a n/a
+C AMD bull n/a n/a
+C AMD pile n/a n/a
+C AMD steam n/a n/a
+C AMD excavator ? ?
+C AMD bobcat n/a n/a
+C AMD jaguar n/a n/a
+C Intel P4 n/a n/a
+C Intel core2 n/a n/a
+C Intel NHM n/a n/a
+C Intel SBR n/a n/a
+C Intel IBR n/a n/a
+C Intel HWL 1.68 n/a
+C Intel BWL 1.69 1.8-1.9
+C Intel atom n/a n/a
+C Intel SLM n/a n/a
+C VIA nano n/a n/a
+
+C The inner loops of this code are the result of running a code generation and
+C optimisation tool suite written by David Harvey and Torbjorn Granlund.
+
+C TODO
+C * Do overlapped software pipelining.
+C * When changing this, make sure the code which falls into the inner loops
+C does not execute too many no-ops (for both PIC and non-PIC).
+
+define(`rp', `%rdi')
+define(`up', `%rsi')
+define(`un_param',`%rdx')
+define(`vp_param',`%rcx')
+define(`vn', `%r8')
+
+define(`n', `%rcx')
+define(`n_save', `%rbp')
+define(`vp', `%r14')
+define(`unneg', `%rbx')
+define(`v0', `%rdx')
+define(`jaddr', `%rax')
+
+define(`w0', `%r12')
+define(`w1', `%r9')
+define(`w2', `%r10')
+define(`w3', `%r11')
+
+ABI_SUPPORT(DOS64)
+ABI_SUPPORT(STD64)
+
+ASM_START()
+ TEXT
+ ALIGN(16)
+PROLOGUE(mpn_mul_basecase)
+ FUNC_ENTRY(4)
+IFDOS(` mov 56(%rsp), %r8d ')
+
+ cmp $2, un_param
+ ja L(gen)
+ mov (vp_param), %rdx
+ mulx( (up), %rax, %r9) C 0 1
+ je L(s2x)
+
+L(s11): mov %rax, (rp)
+ mov %r9, 8(rp)
+ ret
+
+L(s2x): cmp $2, vn
+ mulx( 8,(up), %r8, %r10) C 1 2
+ je L(s22)
+
+L(s21): add %r8, %r9
+ adc $0, %r10
+ mov %rax, (rp)
+ mov %r9, 8(rp)
+ mov %r10, 16(rp)
+ ret
+
+L(s22): add %r8, %r9 C 1
+ adc $0, %r10 C 2
+ mov 8(vp_param), %rdx
+ mov %rax, (rp)
+ mulx( (up), %r8, %r11) C 1 2
+ mulx( 8,(up), %rax, %rdx) C 2 3
+ add %r11, %rax C 2
+ adc $0, %rdx C 3
+ add %r8, %r9 C 1
+ adc %rax, %r10 C 2
+ adc $0, %rdx C 3
+ mov %r9, 8(rp)
+ mov %r10, 16(rp)
+ mov %rdx, 24(rp)
+ ret
+
+ ALIGN(16)
+L(gen):
+ push %rbx
+ push %rbp
+ push %r12
+ push %r14
+
+ mov vp_param, vp
+ lea 1(un_param), unneg
+ mov un_param, n_save
+ mov R32(un_param), R32(%rax)
+ and $-8, unneg
+ shr $3, n_save C loop count
+ neg unneg
+ and $7, R32(%rax) C clear CF for adc as side-effect
+ C note that rax lives very long
+ mov n_save, n
+ mov (vp), v0
+ lea 8(vp), vp
+
+ lea L(mtab)(%rip), %r10
+ifdef(`PIC',
+` movslq (%r10,%rax,4), %r11
+ lea (%r11, %r10), %r10
+ jmp *%r10
+',`
+ jmp *(%r10,%rax,8)
+')
+
+L(mf0): mulx( (up), w2, w3)
+ lea 56(up), up
+ lea -8(rp), rp
+ jmp L(mb0)
+
+L(mf3): mulx( (up), w0, w1)
+ lea 16(up), up
+ lea 16(rp), rp
+ inc n
+ jmp L(mb3)
+
+L(mf4): mulx( (up), w2, w3)
+ lea 24(up), up
+ lea 24(rp), rp
+ inc n
+ jmp L(mb4)
+
+L(mf5): mulx( (up), w0, w1)
+ lea 32(up), up
+ lea 32(rp), rp
+ inc n
+ jmp L(mb5)
+
+L(mf6): mulx( (up), w2, w3)
+ lea 40(up), up
+ lea 40(rp), rp
+ inc n
+ jmp L(mb6)
+
+L(mf7): mulx( (up), w0, w1)
+ lea 48(up), up
+ lea 48(rp), rp
+ inc n
+ jmp L(mb7)
+
+L(mf1): mulx( (up), w0, w1)
+ jmp L(mb1)
+
+L(mf2): mulx( (up), w2, w3)
+ lea 8(up), up
+ lea 8(rp), rp
+ mulx( (up), w0, w1)
+
+ ALIGN(16)
+L(m1top):
+ mov w2, -8(rp)
+ adc w3, w0
+L(mb1): mulx( 8,(up), w2, w3)
+ adc w1, w2
+ lea 64(up), up
+ mov w0, (rp)
+L(mb0): mov w2, 8(rp)
+ mulx( -48,(up), w0, w1)
+ lea 64(rp), rp
+ adc w3, w0
+L(mb7): mulx( -40,(up), w2, w3)
+ mov w0, -48(rp)
+ adc w1, w2
+L(mb6): mov w2, -40(rp)
+ mulx( -32,(up), w0, w1)
+ adc w3, w0
+L(mb5): mulx( -24,(up), w2, w3)
+ mov w0, -32(rp)
+ adc w1, w2
+L(mb4): mulx( -16,(up), w0, w1)
+ mov w2, -24(rp)
+ adc w3, w0
+L(mb3): mulx( -8,(up), w2, w3)
+ adc w1, w2
+ mov w0, -16(rp)
+ dec n
+ mulx( (up), w0, w1)
+ jnz L(m1top)
+
+L(m1end):
+ mov w2, -8(rp)
+ adc w3, w0
+ mov w0, (rp)
+ adc %rcx, w1 C relies on rcx = 0
+ mov w1, 8(rp)
+
+ dec vn
+ jz L(done)
+
+ lea L(atab)(%rip), %r10
+ifdef(`PIC',
+` movslq (%r10,%rax,4), %rax
+ lea (%rax, %r10), jaddr
+',`
+ mov (%r10,%rax,8), jaddr
+')
+
+L(outer):
+ lea (up,unneg,8), up
+ mov n_save, n
+ mov (vp), v0
+ lea 8(vp), vp
+ jmp *jaddr
+
+L(f0): mulx( 8,(up), w2, w3)
+ lea 8(rp,unneg,8), rp
+ lea -1(n), n
+ jmp L(b0)
+
+L(f3): mulx( -16,(up), w0, w1)
+ lea -56(rp,unneg,8), rp
+ jmp L(b3)
+
+L(f4): mulx( -24,(up), w2, w3)
+ lea -56(rp,unneg,8), rp
+ jmp L(b4)
+
+L(f5): mulx( -32,(up), w0, w1)
+ lea -56(rp,unneg,8), rp
+ jmp L(b5)
+
+L(f6): mulx( -40,(up), w2, w3)
+ lea -56(rp,unneg,8), rp
+ jmp L(b6)
+
+L(f7): mulx( 16,(up), w0, w1)
+ lea 8(rp,unneg,8), rp
+ jmp L(b7)
+
+L(f1): mulx( (up), w0, w1)
+ lea 8(rp,unneg,8), rp
+ jmp L(b1)
+
+L(am1end):
+ adox( (rp), w0)
+ adox( %rcx, w1) C relies on rcx = 0
+ mov w0, (rp)
+ adc %rcx, w1 C relies on rcx = 0
+ mov w1, 8(rp)
+
+ dec vn C clear CF and OF as side-effect
+ jnz L(outer)
+L(done):
+ pop %r14
+ pop %r12
+ pop %rbp
+ pop %rbx
+ ret
+
+L(f2):
+ mulx( -8,(up), w2, w3)
+ lea 8(rp,unneg,8), rp
+ mulx( (up), w0, w1)
+
+ ALIGN(16)
+L(am1top):
+ adox( -8,(rp), w2)
+ adcx( w3, w0)
+ mov w2, -8(rp)
+ jrcxz L(am1end)
+L(b1): mulx( 8,(up), w2, w3)
+ adox( (rp), w0)
+ lea -1(n), n
+ mov w0, (rp)
+ adcx( w1, w2)
+L(b0): mulx( 16,(up), w0, w1)
+ adcx( w3, w0)
+ adox( 8,(rp), w2)
+ mov w2, 8(rp)
+L(b7): mulx( 24,(up), w2, w3)
+ lea 64(up), up
+ adcx( w1, w2)
+ adox( 16,(rp), w0)
+ mov w0, 16(rp)
+L(b6): mulx( -32,(up), w0, w1)
+ adox( 24,(rp), w2)
+ adcx( w3, w0)
+ mov w2, 24(rp)
+L(b5): mulx( -24,(up), w2, w3)
+ adcx( w1, w2)
+ adox( 32,(rp), w0)
+ mov w0, 32(rp)
+L(b4): mulx( -16,(up), w0, w1)
+ adox( 40,(rp), w2)
+ adcx( w3, w0)
+ mov w2, 40(rp)
+L(b3): adox( 48,(rp), w0)
+ mulx( -8,(up), w2, w3)
+ mov w0, 48(rp)
+ lea 64(rp), rp
+ adcx( w1, w2)
+ mulx( (up), w0, w1)
+ jmp L(am1top)
+
+ JUMPTABSECT
+ ALIGN(8)
+L(mtab):JMPENT( L(mf0), L(mtab))
+ JMPENT( L(mf1), L(mtab))
+ JMPENT( L(mf2), L(mtab))
+ JMPENT( L(mf3), L(mtab))
+ JMPENT( L(mf4), L(mtab))
+ JMPENT( L(mf5), L(mtab))
+ JMPENT( L(mf6), L(mtab))
+ JMPENT( L(mf7), L(mtab))
+L(atab):JMPENT( L(f0), L(atab))
+ JMPENT( L(f1), L(atab))
+ JMPENT( L(f2), L(atab))
+ JMPENT( L(f3), L(atab))
+ JMPENT( L(f4), L(atab))
+ JMPENT( L(f5), L(atab))
+ JMPENT( L(f6), L(atab))
+ JMPENT( L(f7), L(atab))
+ TEXT
+EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/sqr_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/sqr_basecase.asm
new file mode 100644
index 00000000000..447ba00e435
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreibwl/sqr_basecase.asm
@@ -0,0 +1,840 @@
+dnl AMD64 mpn_sqr_basecase optimised for Intel Broadwell.
+
+dnl Copyright 2015 Free Software Foundation, Inc.
+
+dnl This file is part of the GNU MP Library.
+dnl
+dnl The GNU MP Library is free software; you can redistribute it and/or modify
+dnl it under the terms of either:
+dnl
+dnl * the GNU Lesser General Public License as published by the Free
+dnl Software Foundation; either version 3 of the License, or (at your
+dnl option) any later version.
+dnl
+dnl or
+dnl
+dnl * the GNU General Public License as published by the Free Software
+dnl Foundation; either version 2 of the License, or (at your option) any
+dnl later version.
+dnl
+dnl or both in parallel, as here.
+dnl
+dnl The GNU MP Library is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+dnl for more details.
+dnl
+dnl You should have received copies of the GNU General Public License and the
+dnl GNU Lesser General Public License along with the GNU MP Library. If not,
+dnl see https://www.gnu.org/licenses/.
+
+include(`../config.m4')
+
+C cycles/limb mul_1 addmul_1
+C AMD K8,K9 n/a n/a
+C AMD K10 n/a n/a
+C AMD bull n/a n/a
+C AMD pile n/a n/a
+C AMD steam n/a n/a
+C AMD excavator ? ?
+C AMD bobcat n/a n/a
+C AMD jaguar n/a n/a
+C Intel P4 n/a n/a
+C Intel core2 n/a n/a
+C Intel NHM n/a n/a
+C Intel SBR n/a n/a
+C Intel IBR n/a n/a
+C Intel HWL 1.68 n/a
+C Intel BWL 1.69 1.8-1.9
+C Intel atom n/a n/a
+C Intel SLM n/a n/a
+C VIA nano n/a n/a
+
+C The inner loops of this code are the result of running a code generation and
+C optimisation tool suite written by David Harvey and Torbjorn Granlund.
+
+C TODO
+C * We have 8 addmul_1 loops which fall into each other. The idea is to save
+C on switching code, since a circularly updated computed goto target will
+C hardly allow correct branch prediction. On 2nd thought, we now might make
+C each of the 8 loop branches be poorly predicted since they will be
+C executed fewer times for each time. With just one addmul_1 loop, the loop
+C count will change only once each 8th time!
+C * Replace sqr_diag_addlsh1 code (from haswell) with adx-aware code. We have
+C 3 variants below, but the haswell code turns out to be fastest.
+C * Do overlapped software pipelining.
+C * When changing this, make sure the code which falls into the inner loops
+C does not execute too many no-ops (for both PIC and non-PIC).
+
+define(`rp', `%rdi')
+define(`up', `%rsi')
+define(`un_param',`%rdx')
+
+define(`n', `%rcx')
+define(`un_save', `%rbx')
+define(`u0', `%rdx')
+
+define(`w0', `%r8')
+define(`w1', `%r9')
+define(`w2', `%r10')
+define(`w3', `%r11')
+
+ABI_SUPPORT(DOS64)
+ABI_SUPPORT(STD64)
+
+ASM_START()
+ TEXT
+ ALIGN(16)
+PROLOGUE(mpn_sqr_basecase)
+ FUNC_ENTRY(3)
+
+ cmp $2, un_param
+ jae L(gt1)
+
+ mov (up), %rdx
+ mulx( %rdx, %rax, %rdx)
+ mov %rax, (rp)
+ mov %rdx, 8(rp)
+ FUNC_EXIT()
+ ret
+
+L(gt1): jne L(gt2)
+
+ mov (up), %rdx
+ mov 8(up), %rcx
+ mulx( %rcx, %r9, %r10) C v0 * v1 W 1 2
+ mulx( %rdx, %rax, %r8) C v0 * v0 W 0 1
+ mov %rcx, %rdx
+ mulx( %rdx, %r11, %rdx) C v1 * v1 W 2 3
+ add %r9, %r9 C W 1
+ adc %r10, %r10 C W 2
+ adc $0, %rdx C W 3
+ add %r9, %r8 C W 1
+ adc %r11, %r10 C W 2
+ adc $0, %rdx C W 3
+ mov %rax, (rp)
+ mov %r8, 8(rp)
+ mov %r10, 16(rp)
+ mov %rdx, 24(rp)
+ FUNC_EXIT()
+ ret
+
+L(gt2): cmp $4, un_param
+ jae L(gt3)
+
+ push %rbx
+ mov (up), %rdx
+ mulx( 8,(up), w2, w3)
+ mulx( 16,(up), w0, w1)
+ add w3, w0
+ mov 8(up), %rdx
+ mulx( 16,(up), %rax, w3)
+ adc %rax, w1
+ adc $0, w3
+ test R32(%rbx), R32(%rbx)
+ mov (up), %rdx
+ mulx( %rdx, %rbx, %rcx)
+ mov %rbx, (rp)
+ mov 8(up), %rdx
+ mulx( %rdx, %rax, %rbx)
+ mov 16(up), %rdx
+ mulx( %rdx, %rsi, %rdx)
+ adcx( w2, w2)
+ adcx( w0, w0)
+ adcx( w1, w1)
+ adcx( w3, w3)
+ adox( w2, %rcx)
+ adox( w0, %rax)
+ adox( w1, %rbx)
+ adox( w3, %rsi)
+ mov $0, R32(%r8)
+ adox( %r8, %rdx)
+ adcx( %r8, %rdx)
+ mov %rcx, 8(rp)
+ mov %rax, 16(rp)
+ mov %rbx, 24(rp)
+ mov %rsi, 32(rp)
+ mov %rdx, 40(rp)
+ pop %rbx
+ FUNC_EXIT()
+ ret
+
+L(gt3): push %rbx
+
+ push rp
+ push up
+ push un_param
+
+ lea -3(un_param), R32(un_save)
+ lea 5(un_param), n
+ mov R32(un_param), R32(%rax)
+ and $-8, R32(un_save)
+ shr $3, R32(n) C count for mul_1 loop
+ neg un_save C 8*count and offert for addmul_1 loops
+ and $7, R32(%rax) C clear CF for adc as side-effect
+
+ mov (up), u0
+
+ lea L(mtab)(%rip), %r10
+ifdef(`PIC',
+` movslq (%r10,%rax,4), %r8
+ lea (%r8, %r10), %r10
+ jmp *%r10
+',`
+ jmp *(%r10,%rax,8)
+')
+
+L(mf0): mulx( 8,(up), w2, w3)
+ lea 64(up), up
+C lea (rp), rp
+ jmp L(mb0)
+
+L(mf3): mulx( 8,(up), w0, w1)
+ lea 24(up), up
+ lea 24(rp), rp
+ jmp L(mb3)
+
+L(mf4): mulx( 8,(up), w2, w3)
+ lea 32(up), up
+ lea 32(rp), rp
+ jmp L(mb4)
+
+L(mf5): mulx( 8,(up), w0, w1)
+ lea 40(up), up
+ lea 40(rp), rp
+ jmp L(mb5)
+
+L(mf6): mulx( 8,(up), w2, w3)
+ lea 48(up), up
+ lea 48(rp), rp
+ jmp L(mb6)
+
+L(mf7): mulx( 8,(up), w0, w1)
+ lea 56(up), up
+ lea 56(rp), rp
+ jmp L(mb7)
+
+L(mf1): mulx( 8,(up), w0, w1)
+ lea 8(up), up
+ lea 8(rp), rp
+ jmp L(mb1)
+
+L(mf2): mulx( 8,(up), w2, w3)
+ lea 16(up), up
+ lea 16(rp), rp
+ dec R32(n)
+ mulx( (up), w0, w1)
+
+ ALIGN(16)
+L(top): mov w2, -8(rp)
+ adc w3, w0
+L(mb1): mulx( 8,(up), w2, w3)
+ adc w1, w2
+ lea 64(up), up
+ mov w0, (rp)
+L(mb0): mov w2, 8(rp)
+ mulx( -48,(up), w0, w1)
+ lea 64(rp), rp
+ adc w3, w0
+L(mb7): mulx( -40,(up), w2, w3)
+ mov w0, -48(rp)
+ adc w1, w2
+L(mb6): mov w2, -40(rp)
+ mulx( -32,(up), w0, w1)
+ adc w3, w0
+L(mb5): mulx( -24,(up), w2, w3)
+ mov w0, -32(rp)
+ adc w1, w2
+L(mb4): mulx( -16,(up), w0, w1)
+ mov w2, -24(rp)
+ adc w3, w0
+L(mb3): mulx( -8,(up), w2, w3)
+ adc w1, w2
+ mov w0, -16(rp)
+ dec R32(n)
+ mulx( (up), w0, w1)
+ jnz L(top)
+
+L(end): mov w2, -8(rp)
+ adc w3, w0
+ mov w0, (rp)
+ adc %rcx, w1
+ mov w1, 8(rp)
+
+ lea L(atab)(%rip), %r10
+ifdef(`PIC',
+` movslq (%r10,%rax,4), %r11
+ lea (%r11, %r10), %r11
+ jmp *%r11
+',`
+ jmp *(%r10,%rax,8)
+')
+
+L(ed0): adox( (rp), w0)
+ adox( %rcx, w1) C relies on rcx = 0
+ mov w0, (rp)
+ adc %rcx, w1 C relies on rcx = 0
+ mov w1, 8(rp)
+L(f7): lea -64(up,un_save,8), up
+ or R32(un_save), R32(n)
+ mov 8(up), u0
+ mulx( 16,(up), w0, w1)
+ lea -56(rp,un_save,8), rp
+ jmp L(b7)
+
+ ALIGN(16)
+L(tp0): adox( -8,(rp), w2)
+ adcx( w3, w0)
+ mov w2, -8(rp)
+ jrcxz L(ed0)
+ mulx( 8,(up), w2, w3)
+ adox( (rp), w0)
+ lea 8(n), R32(n)
+ mov w0, (rp)
+ adcx( w1, w2)
+L(b0): mulx( 16,(up), w0, w1)
+ adcx( w3, w0)
+ adox( 8,(rp), w2)
+ mov w2, 8(rp)
+ mulx( 24,(up), w2, w3)
+ lea 64(up), up
+ adcx( w1, w2)
+ adox( 16,(rp), w0)
+ mov w0, 16(rp)
+ mulx( -32,(up), w0, w1)
+ adox( 24,(rp), w2)
+ adcx( w3, w0)
+ mov w2, 24(rp)
+ mulx( -24,(up), w2, w3)
+ adcx( w1, w2)
+ adox( 32,(rp), w0)
+ mov w0, 32(rp)
+ mulx( -16,(up), w0, w1)
+ adox( 40,(rp), w2)
+ adcx( w3, w0)
+ mov w2, 40(rp)
+ adox( 48,(rp), w0)
+ mulx( -8,(up), w2, w3)
+ mov w0, 48(rp)
+ lea 64(rp), rp
+ adcx( w1, w2)
+ mulx( (up), w0, w1)
+ jmp L(tp0)
+
+L(ed1): adox( (rp), w0)
+ adox( %rcx, w1) C relies on rcx = 0
+ mov w0, (rp)
+ adc %rcx, w1 C relies on rcx = 0
+ mov w1, 8(rp)
+L(f0): lea -64(up,un_save,8), up
+ or R32(un_save), R32(n)
+ mov (up), u0
+ mulx( 8,(up), w2, w3)
+ lea -56(rp,un_save,8), rp
+ jmp L(b0)
+
+ ALIGN(16)
+L(tp1): adox( -8,(rp), w2)
+ adcx( w3, w0)
+ mov w2, -8(rp)
+ jrcxz L(ed1)
+L(b1): mulx( 8,(up), w2, w3)
+ adox( (rp), w0)
+ lea 8(n), R32(n)
+ mov w0, (rp)
+ adcx( w1, w2)
+ mulx( 16,(up), w0, w1)
+ adcx( w3, w0)
+ adox( 8,(rp), w2)
+ mov w2, 8(rp)
+ mulx( 24,(up), w2, w3)
+ lea 64(up), up
+ adcx( w1, w2)
+ adox( 16,(rp), w0)
+ mov w0, 16(rp)
+ mulx( -32,(up), w0, w1)
+ adox( 24,(rp), w2)
+ adcx( w3, w0)
+ mov w2, 24(rp)
+ mulx( -24,(up), w2, w3)
+ adcx( w1, w2)
+ adox( 32,(rp), w0)
+ mov w0, 32(rp)
+ mulx( -16,(up), w0, w1)
+ adox( 40,(rp), w2)
+ adcx( w3, w0)
+ mov w2, 40(rp)
+ adox( 48,(rp), w0)
+ mulx( -8,(up), w2, w3)
+ mov w0, 48(rp)
+ lea 64(rp), rp
+ adcx( w1, w2)
+ mulx( (up), w0, w1)
+ jmp L(tp1)
+
+L(ed2): adox( (rp), w0)
+ adox( %rcx, w1) C relies on rcx = 0
+ mov w0, (rp)
+ adc %rcx, w1 C relies on rcx = 0
+ mov w1, 8(rp)
+L(f1): lea (up,un_save,8), up
+ or R32(un_save), R32(n)
+ lea 8(un_save), un_save
+ mov -8(up), u0
+ mulx( (up), w0, w1)
+ lea -56(rp,un_save,8), rp
+ jmp L(b1)
+
+ ALIGN(16)
+L(tp2): adox( -8,(rp), w2)
+ adcx( w3, w0)
+ mov w2, -8(rp)
+ jrcxz L(ed2)
+ mulx( 8,(up), w2, w3)
+ adox( (rp), w0)
+ lea 8(n), R32(n)
+ mov w0, (rp)
+ adcx( w1, w2)
+ mulx( 16,(up), w0, w1)
+ adcx( w3, w0)
+ adox( 8,(rp), w2)
+ mov w2, 8(rp)
+ mulx( 24,(up), w2, w3)
+ lea 64(up), up
+ adcx( w1, w2)
+ adox( 16,(rp), w0)
+ mov w0, 16(rp)
+ mulx( -32,(up), w0, w1)
+ adox( 24,(rp), w2)
+ adcx( w3, w0)
+ mov w2, 24(rp)
+ mulx( -24,(up), w2, w3)
+ adcx( w1, w2)
+ adox( 32,(rp), w0)
+ mov w0, 32(rp)
+ mulx( -16,(up), w0, w1)
+ adox( 40,(rp), w2)
+ adcx( w3, w0)
+ mov w2, 40(rp)
+ adox( 48,(rp), w0)
+ mulx( -8,(up), w2, w3)
+ mov w0, 48(rp)
+ lea 64(rp), rp
+ adcx( w1, w2)
+ mulx( (up), w0, w1)
+ jmp L(tp2)
+
+L(ed3): adox( (rp), w0)
+ adox( %rcx, w1) C relies on rcx = 0
+ mov w0, (rp)
+ adc %rcx, w1 C relies on rcx = 0
+ mov w1, 8(rp)
+L(f2): lea (up,un_save,8), up
+ or R32(un_save), R32(n)
+ jz L(corner2)
+ mov -16(up), u0
+ mulx( -8,(up), w2, w3)
+ lea 8(rp,un_save,8), rp
+ mulx( (up), w0, w1)
+ jmp L(tp2)
+
+ ALIGN(16)
+L(tp3): adox( -8,(rp), w2)
+ adcx( w3, w0)
+ mov w2, -8(rp)
+ jrcxz L(ed3)
+ mulx( 8,(up), w2, w3)
+ adox( (rp), w0)
+ lea 8(n), R32(n)
+ mov w0, (rp)
+ adcx( w1, w2)
+ mulx( 16,(up), w0, w1)
+ adcx( w3, w0)
+ adox( 8,(rp), w2)
+ mov w2, 8(rp)
+ mulx( 24,(up), w2, w3)
+ lea 64(up), up
+ adcx( w1, w2)
+ adox( 16,(rp), w0)
+ mov w0, 16(rp)
+ mulx( -32,(up), w0, w1)
+ adox( 24,(rp), w2)
+ adcx( w3, w0)
+ mov w2, 24(rp)
+ mulx( -24,(up), w2, w3)
+ adcx( w1, w2)
+ adox( 32,(rp), w0)
+ mov w0, 32(rp)
+ mulx( -16,(up), w0, w1)
+ adox( 40,(rp), w2)
+ adcx( w3, w0)
+ mov w2, 40(rp)
+L(b3): adox( 48,(rp), w0)
+ mulx( -8,(up), w2, w3)
+ mov w0, 48(rp)
+ lea 64(rp), rp
+ adcx( w1, w2)
+ mulx( (up), w0, w1)
+ jmp L(tp3)
+
+L(ed4): adox( (rp), w0)
+ adox( %rcx, w1) C relies on rcx = 0
+ mov w0, (rp)
+ adc %rcx, w1 C relies on rcx = 0
+ mov w1, 8(rp)
+L(f3): lea (up,un_save,8), up
+ or R32(un_save), R32(n)
+ jz L(corner3)
+ mov -24(up), u0
+ mulx( -16,(up), w0, w1)
+ lea -56(rp,un_save,8), rp
+ jmp L(b3)
+
+ ALIGN(16)
+L(tp4): adox( -8,(rp), w2)
+ adcx( w3, w0)
+ mov w2, -8(rp)
+ jrcxz L(ed4)
+ mulx( 8,(up), w2, w3)
+ adox( (rp), w0)
+ lea 8(n), R32(n)
+ mov w0, (rp)
+ adcx( w1, w2)
+ mulx( 16,(up), w0, w1)
+ adcx( w3, w0)
+ adox( 8,(rp), w2)
+ mov w2, 8(rp)
+ mulx( 24,(up), w2, w3)
+ lea 64(up), up
+ adcx( w1, w2)
+ adox( 16,(rp), w0)
+ mov w0, 16(rp)
+ mulx( -32,(up), w0, w1)
+ adox( 24,(rp), w2)
+ adcx( w3, w0)
+ mov w2, 24(rp)
+ mulx( -24,(up), w2, w3)
+ adcx( w1, w2)
+ adox( 32,(rp), w0)
+ mov w0, 32(rp)
+L(b4): mulx( -16,(up), w0, w1)
+ adox( 40,(rp), w2)
+ adcx( w3, w0)
+ mov w2, 40(rp)
+ adox( 48,(rp), w0)
+ mulx( -8,(up), w2, w3)
+ mov w0, 48(rp)
+ lea 64(rp), rp
+ adcx( w1, w2)
+ mulx( (up), w0, w1)
+ jmp L(tp4)
+
+L(ed5): adox( (rp), w0)
+ adox( %rcx, w1) C relies on rcx = 0
+ mov w0, (rp)
+ adc %rcx, w1 C relies on rcx = 0
+ mov w1, 8(rp)
+L(f4): lea (up,un_save,8), up
+ or R32(un_save), R32(n)
+ mov -32(up), u0
+ mulx( -24,(up), w2, w3)
+ lea -56(rp,un_save,8), rp
+ jmp L(b4)
+
+ ALIGN(16)
+L(tp5): adox( -8,(rp), w2)
+ adcx( w3, w0)
+ mov w2, -8(rp)
+ jrcxz L(ed5)
+ mulx( 8,(up), w2, w3)
+ adox( (rp), w0)
+ lea 8(n), R32(n)
+ mov w0, (rp)
+ adcx( w1, w2)
+ mulx( 16,(up), w0, w1)
+ adcx( w3, w0)
+ adox( 8,(rp), w2)
+ mov w2, 8(rp)
+ mulx( 24,(up), w2, w3)
+ lea 64(up), up
+ adcx( w1, w2)
+ adox( 16,(rp), w0)
+ mov w0, 16(rp)
+ mulx( -32,(up), w0, w1)
+ adox( 24,(rp), w2)
+ adcx( w3, w0)
+ mov w2, 24(rp)
+L(b5): mulx( -24,(up), w2, w3)
+ adcx( w1, w2)
+ adox( 32,(rp), w0)
+ mov w0, 32(rp)
+ mulx( -16,(up), w0, w1)
+ adox( 40,(rp), w2)
+ adcx( w3, w0)
+ mov w2, 40(rp)
+ adox( 48,(rp), w0)
+ mulx( -8,(up), w2, w3)
+ mov w0, 48(rp)
+ lea 64(rp), rp
+ adcx( w1, w2)
+ mulx( (up), w0, w1)
+ jmp L(tp5)
+
+L(ed6): adox( (rp), w0)
+ adox( %rcx, w1) C relies on rcx = 0
+ mov w0, (rp)
+ adc %rcx, w1 C relies on rcx = 0
+ mov w1, 8(rp)
+L(f5): lea (up,un_save,8), up
+ or R32(un_save), R32(n)
+ mov -40(up), u0
+ mulx( -32,(up), w0, w1)
+ lea -56(rp,un_save,8), rp
+ jmp L(b5)
+
+ ALIGN(16)
+L(tp6): adox( -8,(rp), w2)
+ adcx( w3, w0)
+ mov w2, -8(rp)
+ jrcxz L(ed6)
+ mulx( 8,(up), w2, w3)
+ adox( (rp), w0)
+ lea 8(n), R32(n)
+ mov w0, (rp)
+ adcx( w1, w2)
+ mulx( 16,(up), w0, w1)
+ adcx( w3, w0)
+ adox( 8,(rp), w2)
+ mov w2, 8(rp)
+ mulx( 24,(up), w2, w3)
+ lea 64(up), up
+ adcx( w1, w2)
+ adox( 16,(rp), w0)
+ mov w0, 16(rp)
+L(b6): mulx( -32,(up), w0, w1)
+ adox( 24,(rp), w2)
+ adcx( w3, w0)
+ mov w2, 24(rp)
+ mulx( -24,(up), w2, w3)
+ adcx( w1, w2)
+ adox( 32,(rp), w0)
+ mov w0, 32(rp)
+ mulx( -16,(up), w0, w1)
+ adox( 40,(rp), w2)
+ adcx( w3, w0)
+ mov w2, 40(rp)
+ adox( 48,(rp), w0)
+ mulx( -8,(up), w2, w3)
+ mov w0, 48(rp)
+ lea 64(rp), rp
+ adcx( w1, w2)
+ mulx( (up), w0, w1)
+ jmp L(tp6)
+
+L(ed7): adox( (rp), w0)
+ adox( %rcx, w1) C relies on rcx = 0
+ mov w0, (rp)
+ adc %rcx, w1 C relies on rcx = 0
+ mov w1, 8(rp)
+L(f6): lea (up,un_save,8), up
+ or R32(un_save), R32(n)
+ mov -48(up), u0
+ mulx( -40,(up), w2, w3)
+ lea -56(rp,un_save,8), rp
+ jmp L(b6)
+
+ ALIGN(16)
+L(tp7): adox( -8,(rp), w2)
+ adcx( w3, w0)
+ mov w2, -8(rp)
+ jrcxz L(ed7)
+ mulx( 8,(up), w2, w3)
+ adox( (rp), w0)
+ lea 8(n), R32(n)
+ mov w0, (rp)
+ adcx( w1, w2)
+ mulx( 16,(up), w0, w1)
+ adcx( w3, w0)
+ adox( 8,(rp), w2)
+ mov w2, 8(rp)
+L(b7): mulx( 24,(up), w2, w3)
+ lea 64(up), up
+ adcx( w1, w2)
+ adox( 16,(rp), w0)
+ mov w0, 16(rp)
+ mulx( -32,(up), w0, w1)
+ adox( 24,(rp), w2)
+ adcx( w3, w0)
+ mov w2, 24(rp)
+ mulx( -24,(up), w2, w3)
+ adcx( w1, w2)
+ adox( 32,(rp), w0)
+ mov w0, 32(rp)
+ mulx( -16,(up), w0, w1)
+ adox( 40,(rp), w2)
+ adcx( w3, w0)
+ mov w2, 40(rp)
+ adox( 48,(rp), w0)
+ mulx( -8,(up), w2, w3)
+ mov w0, 48(rp)
+ lea 64(rp), rp
+ adcx( w1, w2)
+ mulx( (up), w0, w1)
+ jmp L(tp7)
+
+L(corner3):
+ mov -24(up), u0
+ mulx( -16,(up), w0, w1)
+ adox( -8,(rp), w0)
+ mulx( -8,(up), w2, w3)
+ mov w0, -8(rp)
+ lea 8(rp), rp
+ adcx( w1, w2)
+ mulx( (up), w0, w1)
+ adox( -8,(rp), w2)
+ adcx( w3, w0)
+ mov w2, -8(rp)
+ adox( (rp), w0)
+ adox( %rcx, w1) C relies on rcx = 0
+ adcx( %rcx, w1) C relies on rcx = 0
+L(corner2):
+ mov -16(up), u0
+ mulx( -8,(up), w2, w3)
+ mulx( (up), %rax, %rbx)
+ adox( w0, w2)
+ adcx( w3, %rax)
+ mov w2, (rp)
+ adox( w1, %rax)
+ adox( %rcx, %rbx) C relies on rcx = 0
+ mov %rax, 8(rp)
+ adc %rcx, %rbx C relies on rcx = 0
+ mov -8(up), %rdx
+ mulx( (up), %rax, %rdx)
+ add %rbx, %rax
+ mov %rax, 16(rp)
+ adc %rcx, %rdx C relies on rcx = 0
+ mov %rdx, 24(rp)
+
+L(sqr_diag_addlsh1):
+ pop n
+ pop up
+ pop rp
+
+ifdef(`SDA_VARIANT',,`define(`SDA_VARIANT', 2)')
+
+ifelse(SDA_VARIANT,1,`
+ lea (n,n), %rax
+ movq $0, -8(rp,%rax,8) C FIXME
+ test R32(%rax), R32(%rax)
+ mov (up), %rdx
+ lea 8(up), up
+ mulx( %rdx, %r8, %rdx)
+ jmp L(dm)
+
+ ALIGN(16)
+L(dtop):mov 8(rp), %r9
+ adcx( %r9, %r9)
+ adox( %rdx, %r9)
+ mov %r9, 8(rp)
+ lea 16(rp), rp
+ jrcxz L(dend)
+ mov (up), %rdx
+ mulx( %rdx, %rax, %rdx)
+ lea 8(up), up
+ mov (rp), %r8
+ adcx( %r8, %r8)
+ adox( %rax, %r8)
+L(dm): mov %r8, (rp)
+ lea -1(n), n
+ jmp L(dtop)
+L(dend):
+')
+
+ifelse(SDA_VARIANT,2,`
+ dec R32(n)
+ mov (up), %rdx
+ xor R32(%rbx), R32(%rbx) C clear CF as side effect
+ mulx( %rdx, %rax, %r10)
+ mov %rax, (rp)
+ mov 8(rp), %r8
+ mov 16(rp), %r9
+ jmp L(dm)
+
+ ALIGN(16)
+L(dtop):mov 24(rp), %r8
+ mov 32(rp), %r9
+ lea 16(rp), rp
+ lea (%rdx,%rbx), %r10
+L(dm): adc %r8, %r8
+ adc %r9, %r9
+ setc R8(%rbx)
+ mov 8(up), %rdx
+ lea 8(up), up
+ mulx( %rdx, %rax, %rdx)
+ add %r10, %r8
+ adc %rax, %r9
+ mov %r8, 8(rp)
+ mov %r9, 16(rp)
+ dec R32(n)
+ jnz L(dtop)
+
+L(dend):adc %rbx, %rdx
+ mov %rdx, 24(rp)
+')
+
+ifelse(SDA_VARIANT,3,`
+ dec R32(n)
+ mov (up), %rdx
+ test R32(%rbx), R32(%rbx) C clear CF and OF
+ mulx( %rdx, %rax, %r10)
+ mov %rax, (rp)
+ mov 8(rp), %r8
+ mov 16(rp), %r9
+ jmp L(dm)
+
+ ALIGN(16)
+L(dtop):jrcxz L(dend)
+ mov 24(rp), %r8
+ mov 32(rp), %r9
+ lea 16(rp), rp
+L(dm): adcx( %r8, %r8)
+ adcx( %r9, %r9)
+ mov 8(up), %rdx
+ lea 8(up), up
+ adox( %r10, %r8)
+ mulx( %rdx, %rax, %r10)
+ adox( %rax, %r9)
+ mov %r8, 8(rp)
+ mov %r9, 16(rp)
+ lea -1(n), R32(n)
+ jmp L(dtop)
+
+L(dend):adcx( %rcx, %r10)
+ adox( %rcx, %r10)
+ mov %r10, 24(rp)
+')
+
+ pop %rbx
+ FUNC_EXIT()
+ ret
+
+ JUMPTABSECT
+ ALIGN(8)
+L(mtab):JMPENT( L(mf7), L(mtab))
+ JMPENT( L(mf0), L(mtab))
+ JMPENT( L(mf1), L(mtab))
+ JMPENT( L(mf2), L(mtab))
+ JMPENT( L(mf3), L(mtab))
+ JMPENT( L(mf4), L(mtab))
+ JMPENT( L(mf5), L(mtab))
+ JMPENT( L(mf6), L(mtab))
+L(atab):JMPENT( L(f6), L(atab))
+ JMPENT( L(f7), L(atab))
+ JMPENT( L(f0), L(atab))
+ JMPENT( L(f1), L(atab))
+ JMPENT( L(f2), L(atab))
+ JMPENT( L(f3), L(atab))
+ JMPENT( L(f4), L(atab))
+ JMPENT( L(f5), L(atab))
+ TEXT
+EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/addmul_2.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/addmul_2.asm
index 54aebc888d7..54aebc888d7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/addmul_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/addmul_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/aorsmul_1.asm
index fd5a26d00f6..fd5a26d00f6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/gmp-mparam.h
index eef44b3a814..96e97fb2f35 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/gmp-mparam.h
@@ -1,6 +1,6 @@
/* Haswell gmp-mparam.h -- Compiler/machine parameter header file.
-Copyright 1991, 1993, 1994, 2000-2014 Free Software Foundation, Inc.
+Copyright 1991, 1993, 1994, 2000-2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -31,9 +31,9 @@ see https://www.gnu.org/licenses/. */
#define GMP_LIMB_BITS 64
#define GMP_LIMB_BYTES 8
-/* 2900 MHz Core i5 Haswell */
-/* FFT tuning limit = 75000000 */
-/* Generated by tuneup.c, 2014-03-12, gcc 4.5 */
+/* 4000 MHz Haswell */
+/* FFT tuning limit = 200 M */
+/* Generated by tuneup.c, 2015-10-07, gcc 4.5 */
#define MOD_1_NORM_THRESHOLD 0 /* always */
#define MOD_1_UNNORM_THRESHOLD 0 /* always */
@@ -73,131 +73,140 @@ see https://www.gnu.org/licenses/. */
#define MULMOD_BNM1_THRESHOLD 13
#define SQRMOD_BNM1_THRESHOLD 17
-#define MUL_FFT_MODF_THRESHOLD 376 /* k = 5 */
+#define MUL_FFT_MODF_THRESHOLD 380 /* k = 5 */
#define MUL_FFT_TABLE3 \
- { { 376, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
+ { { 380, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
{ 11, 5}, { 23, 6}, { 21, 7}, { 11, 6}, \
- { 25, 7}, { 13, 6}, { 27, 7}, { 21, 8}, \
- { 11, 7}, { 24, 8}, { 13, 7}, { 27, 8}, \
+ { 24, 7}, { 13, 6}, { 27, 7}, { 21, 8}, \
+ { 11, 7}, { 25, 8}, { 13, 7}, { 28, 8}, \
{ 15, 7}, { 31, 8}, { 21, 9}, { 11, 8}, \
{ 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
{ 39, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
- { 15, 9}, { 39,10}, { 23, 9}, { 55,11}, \
+ { 15, 9}, { 39,10}, { 23, 9}, { 51,11}, \
{ 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
{ 83,10}, { 47, 9}, { 95,10}, { 55,11}, \
{ 31,10}, { 79,11}, { 47,10}, { 95,12}, \
- { 31,11}, { 63,10}, { 127, 9}, { 255,10}, \
- { 135,11}, { 79,10}, { 159, 9}, { 319,10}, \
- { 167,11}, { 95,10}, { 191, 9}, { 383,11}, \
- { 111,12}, { 63,11}, { 127,10}, { 255, 9}, \
- { 511,10}, { 271, 9}, { 543,11}, { 143,10}, \
+ { 31,11}, { 63,10}, { 135,11}, { 79,10}, \
+ { 159, 9}, { 319,11}, { 95,10}, { 191, 9}, \
+ { 383,11}, { 111,12}, { 63,11}, { 127,10}, \
+ { 255, 9}, { 511,10}, { 271,11}, { 143,10}, \
{ 287, 9}, { 575,10}, { 303, 9}, { 607,11}, \
- { 159,10}, { 319, 9}, { 639,12}, { 95,11}, \
- { 191,10}, { 383,11}, { 207,10}, { 415,13}, \
- { 63,12}, { 127,11}, { 255,10}, { 511,11}, \
- { 271,10}, { 543, 9}, { 1087,11}, { 287,10}, \
- { 607,12}, { 159,11}, { 319,10}, { 639,11}, \
- { 335,10}, { 671,11}, { 351,10}, { 703,11}, \
- { 367,12}, { 191,11}, { 383,10}, { 767,11}, \
+ { 159,10}, { 319,12}, { 95,11}, { 191,10}, \
+ { 383,11}, { 207,13}, { 63,12}, { 127,11}, \
+ { 255,10}, { 511,11}, { 271,10}, { 543,11}, \
+ { 287,10}, { 575,11}, { 303,10}, { 607,12}, \
+ { 159,11}, { 319,10}, { 639,11}, { 335,10}, \
+ { 671,11}, { 351,10}, { 703,11}, { 367,10}, \
+ { 735,12}, { 191,11}, { 383,10}, { 767,11}, \
{ 415,10}, { 831,12}, { 223,11}, { 447,10}, \
{ 895,11}, { 479,13}, { 127,12}, { 255,11}, \
{ 511,10}, { 1023,11}, { 543,10}, { 1087,12}, \
{ 287,11}, { 575,10}, { 1151,11}, { 607,12}, \
- { 319,11}, { 639,10}, { 1279,11}, { 671,12}, \
- { 351,11}, { 703,10}, { 1407,11}, { 735,13}, \
- { 191,12}, { 383,11}, { 767,12}, { 415,11}, \
- { 831,10}, { 1663,12}, { 447,11}, { 895,12}, \
- { 479,14}, { 127,12}, { 511,11}, { 1023,12}, \
+ { 319,11}, { 671,12}, { 351,11}, { 703,10}, \
+ { 1407,11}, { 735,12}, { 383,11}, { 767,12}, \
+ { 415,11}, { 831,10}, { 1663,12}, { 447,11}, \
+ { 895,12}, { 479,14}, { 127,13}, { 255,12}, \
{ 543,11}, { 1087,12}, { 575,11}, { 1151,12}, \
{ 607,11}, { 1215,13}, { 319,12}, { 671,11}, \
- { 1343,12}, { 703,11}, { 1407,12}, { 735,13}, \
- { 383,12}, { 767,11}, { 1535,12}, { 831,13}, \
- { 447,12}, { 959,11}, { 1919,13}, { 511,12}, \
- { 1087,13}, { 575,12}, { 1215,13}, { 639,12}, \
- { 1343,13}, { 703,12}, { 1407,11}, { 2815,14}, \
- { 383,13}, { 767,12}, { 1535,13}, { 831,12}, \
- { 1727,13}, { 959,12}, { 1919,14}, { 511,13}, \
- { 1023,12}, { 2047,13}, { 1087,12}, { 2175,13}, \
+ { 1343,12}, { 735,13}, { 383,12}, { 767,11}, \
+ { 1535,12}, { 831,13}, { 447,12}, { 959,11}, \
+ { 1919,13}, { 511,12}, { 1087,13}, { 575,12}, \
+ { 1215,11}, { 2431,13}, { 639,12}, { 1343,13}, \
+ { 703,12}, { 1407,14}, { 383,13}, { 767,12}, \
+ { 1535,13}, { 831,12}, { 1663,13}, { 959,12}, \
+ { 1919,14}, { 511,13}, { 1087,12}, { 2175,13}, \
{ 1215,12}, { 2431,14}, { 639,13}, { 1279,12}, \
{ 2559,13}, { 1343,12}, { 2687,13}, { 1407,12}, \
{ 2815,13}, { 1471,12}, { 2943,14}, { 767,13}, \
- { 1535,12}, { 3071,13}, { 1727,14}, { 895,13}, \
+ { 1599,12}, { 3199,13}, { 1663,14}, { 895,13}, \
{ 1791,12}, { 3583,13}, { 1919,15}, { 511,14}, \
{ 1023,13}, { 2175,14}, { 1151,13}, { 2431,12}, \
{ 4863,14}, { 1279,13}, { 2687,14}, { 1407,13}, \
{ 2943,15}, { 767,14}, { 1535,13}, { 3199,14}, \
{ 1663,13}, { 3455,12}, { 6911,14}, { 1791,13}, \
- { 3583,14}, { 1919,16}, { 511,15}, { 1023,14}, \
- { 2175,13}, { 4351,14}, { 2431,13}, { 4863,15}, \
- { 1279,14}, { 2943,13}, { 5887,15}, { 1535,14}, \
- { 3455,13}, { 6911,15}, { 1791,14}, { 3839,13}, \
- { 7679,16}, { 1023,15}, { 2047,14}, { 4351,15}, \
- { 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
- { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
- {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 237
+ { 3583,14}, { 1919,13}, { 3839,16}, { 511,15}, \
+ { 1023,14}, { 2175,13}, { 4351,14}, { 2303,13}, \
+ { 4607,14}, { 2431,13}, { 4863,15}, { 1279,14}, \
+ { 2943,13}, { 5887,15}, { 1535,14}, { 3455,13}, \
+ { 6911,15}, { 1791,14}, { 3839,13}, { 7679,16}, \
+ { 1023,15}, { 2047,14}, { 4351,15}, { 2303,14}, \
+ { 4863,15}, { 2815,14}, { 5887,16}, { 1535,15}, \
+ { 3071,14}, { 6143,15}, { 3327,14}, { 6911,15}, \
+ { 3839,14}, { 7679,17}, { 1023,16}, { 2047,15}, \
+ { 4863,16}, { 2559,15}, { 5887,14}, { 11775,16}, \
+ { 65536,17}, { 131072,18}, { 262144,19}, { 524288,20}, \
+ {1048576,21}, {2097152,22}, {4194304,23}, {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 244
#define MUL_FFT_THRESHOLD 4224
-#define SQR_FFT_MODF_THRESHOLD 344 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 368 /* k = 5 */
#define SQR_FFT_TABLE3 \
- { { 344, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \
- { 10, 5}, { 21, 6}, { 21, 7}, { 11, 6}, \
- { 25, 7}, { 13, 6}, { 27, 7}, { 21, 8}, \
- { 11, 7}, { 25, 8}, { 13, 7}, { 28, 8}, \
- { 15, 7}, { 31, 8}, { 21, 9}, { 11, 8}, \
- { 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
- { 41, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
- { 15, 9}, { 39,10}, { 23, 9}, { 51,11}, \
- { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
- { 79,10}, { 55,11}, { 31,10}, { 79,11}, \
- { 47,10}, { 95,12}, { 31,11}, { 63,10}, \
- { 127, 9}, { 255, 8}, { 511,10}, { 135,11}, \
- { 79,10}, { 159, 9}, { 319,11}, { 95,10}, \
- { 191, 9}, { 383,11}, { 111,12}, { 63,11}, \
+ { { 368, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
+ { 11, 5}, { 23, 6}, { 25, 7}, { 13, 6}, \
+ { 27, 7}, { 21, 8}, { 11, 7}, { 25, 8}, \
+ { 13, 7}, { 28, 8}, { 15, 7}, { 31, 8}, \
+ { 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
+ { 35, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
+ { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
+ { 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
+ { 63,10}, { 39, 9}, { 79,10}, { 55,11}, \
+ { 31,10}, { 79,11}, { 47,10}, { 95,12}, \
+ { 31,11}, { 63,10}, { 127, 9}, { 255,10}, \
+ { 135,11}, { 79,10}, { 159, 9}, { 319,11}, \
+ { 95,10}, { 191, 9}, { 383,12}, { 63,11}, \
{ 127,10}, { 255, 9}, { 511,10}, { 271, 9}, \
{ 543,11}, { 143,10}, { 287, 9}, { 575,10}, \
{ 303, 9}, { 607,11}, { 159,10}, { 319, 9}, \
{ 639,12}, { 95,11}, { 191,10}, { 383, 9}, \
- { 767,11}, { 207,10}, { 415,13}, { 63,12}, \
- { 127,11}, { 255,10}, { 511,11}, { 271,10}, \
- { 543, 9}, { 1087,10}, { 575,11}, { 303,10}, \
- { 607,11}, { 319,10}, { 671,11}, { 351,10}, \
- { 735,11}, { 383,10}, { 767,11}, { 415,10}, \
- { 831,11}, { 447,10}, { 895,11}, { 479,13}, \
+ { 767,11}, { 207,13}, { 63,12}, { 127,11}, \
+ { 255,10}, { 511,11}, { 271,10}, { 543,11}, \
+ { 287,10}, { 575,11}, { 303,10}, { 607,11}, \
+ { 319,10}, { 639,11}, { 335,10}, { 671,11}, \
+ { 351,10}, { 703,11}, { 367,12}, { 191,11}, \
+ { 383,10}, { 767,11}, { 415,10}, { 831,12}, \
+ { 223,11}, { 447,10}, { 895,11}, { 479,13}, \
{ 127,12}, { 255,11}, { 543,10}, { 1087,11}, \
- { 607,10}, { 1215,11}, { 671,12}, { 351,11}, \
+ { 607,12}, { 319,11}, { 671,12}, { 351,11}, \
{ 735,12}, { 383,11}, { 767,12}, { 415,11}, \
- { 831,10}, { 1663,12}, { 447,11}, { 895,12}, \
- { 479,14}, { 127,12}, { 511,11}, { 1023,12}, \
- { 543,11}, { 1087,12}, { 607,11}, { 1215,13}, \
- { 319,12}, { 639,11}, { 1279,12}, { 671,11}, \
- { 1343,12}, { 735,13}, { 383,12}, { 767,11}, \
- { 1535,12}, { 831,13}, { 447,12}, { 959,13}, \
- { 511,12}, { 1087,13}, { 575,12}, { 1215,13}, \
- { 639,12}, { 1343,13}, { 703,12}, { 1407,14}, \
- { 383,13}, { 767,12}, { 1535,13}, { 831,12}, \
- { 1663,13}, { 959,14}, { 511,13}, { 1087,12}, \
- { 2175,13}, { 1215,12}, { 2431,14}, { 639,13}, \
+ { 831,12}, { 447,11}, { 895,12}, { 479,14}, \
+ { 127,12}, { 511,11}, { 1023,12}, { 543,11}, \
+ { 1087,12}, { 607,11}, { 1215,13}, { 319,12}, \
+ { 671,11}, { 1343,12}, { 735,13}, { 383,12}, \
+ { 767,11}, { 1535,12}, { 831,13}, { 447,12}, \
+ { 895,11}, { 1791,12}, { 959,13}, { 511,12}, \
+ { 1087,13}, { 575,12}, { 1215,13}, { 639,12}, \
+ { 1343,13}, { 703,12}, { 1407,14}, { 383,13}, \
+ { 767,12}, { 1535,13}, { 831,12}, { 1663,13}, \
+ { 895,12}, { 1791,13}, { 959,14}, { 511,13}, \
+ { 1087,12}, { 2175,13}, { 1215,14}, { 639,13}, \
{ 1343,12}, { 2687,13}, { 1407,12}, { 2815,13}, \
{ 1471,14}, { 767,13}, { 1599,12}, { 3199,13}, \
- { 1663,14}, { 895,13}, { 1791,12}, { 3583,15}, \
- { 511,14}, { 1023,13}, { 2175,14}, { 1151,13}, \
- { 2431,12}, { 4863,14}, { 1279,13}, { 2687,14}, \
- { 1407,13}, { 2815,15}, { 767,14}, { 1535,13}, \
- { 3199,14}, { 1663,13}, { 3455,12}, { 6911,14}, \
- { 1791,13}, { 3583,16}, { 511,15}, { 1023,14}, \
- { 2431,13}, { 4863,15}, { 1279,14}, { 2943,13}, \
- { 5887,15}, { 1535,14}, { 3455,13}, { 6911,15}, \
- { 1791,14}, { 3839,16}, { 1023,15}, { 2047,14}, \
- { 4223,15}, { 32768,16}, { 65536,17}, { 131072,18}, \
- { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
- {4194304,23}, {8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 206
-#define SQR_FFT_THRESHOLD 3712
+ { 1663,14}, { 895,13}, { 1791,12}, { 3583,13}, \
+ { 1919,15}, { 511,14}, { 1023,13}, { 2175,14}, \
+ { 1151,13}, { 2431,12}, { 4863,14}, { 1279,13}, \
+ { 2687,14}, { 1407,13}, { 2943,15}, { 767,14}, \
+ { 1535,13}, { 3199,14}, { 1663,13}, { 3455,12}, \
+ { 6911,14}, { 1791,13}, { 3583,14}, { 1919,16}, \
+ { 511,15}, { 1023,14}, { 2431,13}, { 4863,15}, \
+ { 1279,14}, { 2943,13}, { 5887,15}, { 1535,14}, \
+ { 3455,13}, { 6911,15}, { 1791,14}, { 3839,13}, \
+ { 7679,16}, { 1023,15}, { 2047,14}, { 4223,15}, \
+ { 2303,14}, { 4863,15}, { 2559,14}, { 5119,15}, \
+ { 2815,14}, { 5887,16}, { 1535,15}, { 3071,14}, \
+ { 6143,15}, { 3327,14}, { 6911,15}, { 3839,14}, \
+ { 7679,17}, { 1023,16}, { 2047,15}, { 4863,16}, \
+ { 2559,15}, { 5887,14}, { 11775,16}, { 65536,17}, \
+ { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
+ {2097152,22}, {4194304,23}, {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 227
+#define SQR_FFT_THRESHOLD 3264
#define MULLO_BASECASE_THRESHOLD 0 /* always */
#define MULLO_DC_THRESHOLD 78
#define MULLO_MUL_N_THRESHOLD 8207
+#define SQRLO_BASECASE_THRESHOLD 11
+#define SQRLO_DC_THRESHOLD 92
+#define SQRLO_SQR_THRESHOLD 6481
#define DC_DIV_QR_THRESHOLD 63
#define DC_DIVAPPR_Q_THRESHOLD 195
@@ -220,6 +229,14 @@ see https://www.gnu.org/licenses/. */
#define POWM_SEC_TABLE 3,22,194,257,1099
+#define GET_STR_DC_THRESHOLD 12
+#define GET_STR_PRECOMPUTE_THRESHOLD 21
+#define SET_STR_DC_THRESHOLD 1432
+#define SET_STR_PRECOMPUTE_THRESHOLD 2729
+
+#define FAC_DSC_THRESHOLD 725
+#define FAC_ODD_THRESHOLD 0 /* always */
+
#define MATRIX22_STRASSEN_THRESHOLD 17
#define HGCD_THRESHOLD 112
#define HGCD_APPR_THRESHOLD 52
@@ -227,11 +244,3 @@ see https://www.gnu.org/licenses/. */
#define GCD_DC_THRESHOLD 807
#define GCDEXT_DC_THRESHOLD 416
#define JACOBI_BASE_METHOD 4
-
-#define GET_STR_DC_THRESHOLD 12
-#define GET_STR_PRECOMPUTE_THRESHOLD 21
-#define SET_STR_DC_THRESHOLD 1326
-#define SET_STR_PRECOMPUTE_THRESHOLD 2627
-
-#define FAC_DSC_THRESHOLD 767
-#define FAC_ODD_THRESHOLD 0 /* always */
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/mul_1.asm
index 1e3c338f4ee..1e3c338f4ee 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/mul_2.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/mul_2.asm
index 5bdb1aa645e..5bdb1aa645e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/mul_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/mul_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/mul_basecase.asm
index b2656c8e9bd..b2656c8e9bd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/mul_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/mul_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/mullo_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/mullo_basecase.asm
index 9986e8bcfa4..9986e8bcfa4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/mullo_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/mullo_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/redc_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/redc_1.asm
index f1a475e53cd..b1d6c0a7d83 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/redc_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/redc_1.asm
@@ -409,7 +409,7 @@ L(ed0): mov 40(up,n,8), %rdx C next iteration up[0]
L(cj):
IFSTD(` mov 8(%rsp), %rdi C param 1: rp
- lea 16(%rsp), %rsp C deallocate two slots
+ lea 16-8(%rsp), %rsp C deallocate 2, add back for alignment
lea (up,n,8), %rdx C param 3: up - n
neg R32(n) ') C param 4: n
@@ -418,10 +418,14 @@ IFDOS(` mov up, %rdx C param 2: up
neg R32(n)
mov n, %r9 C param 4: n
mov 8(%rsp), %rcx C param 1: rp
- lea 16(%rsp), %rsp ') C deallocate two slots
+ lea 16-32-8(%rsp), %rsp') C deallocate 2, allocate shadow, align
+ ASSERT(nz, `test $15, %rsp')
CALL( mpn_add_n)
+IFSTD(` lea 8(%rsp), %rsp ')
+IFDOS(` lea 32+8(%rsp), %rsp')
+
L(ret): pop %r15
pop %r14
pop %r13
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/sqr_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/sqr_basecase.asm
index 641cdf349aa..641cdf349aa 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/sqr_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreihwl/sqr_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/aorrlsh_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/aorrlsh_n.asm
index eed64e701e8..eed64e701e8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/aorrlsh_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/aorrlsh_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/aorsmul_1.asm
index b768905b939..b768905b939 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/gmp-mparam.h
new file mode 100644
index 00000000000..67f068228d8
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/gmp-mparam.h
@@ -0,0 +1,233 @@
+/* Nehalem gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 2000-2012, 2014, 2015 Free Software Foundation,
+Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 64
+#define GMP_LIMB_BYTES 8
+
+/* 2667 MHz Core i7 Nehalem */
+/* FFT tuning limit = 200 M */
+/* Generated by tuneup.c, 2015-10-07, gcc 4.5 */
+
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 3
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 2
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 11
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 16
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 10
+#define USE_PREINV_DIVREM_1 1 /* native */
+#define DIV_QR_1_NORM_THRESHOLD 1
+#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 16
+
+#define MUL_TOOM22_THRESHOLD 18
+#define MUL_TOOM33_THRESHOLD 61
+#define MUL_TOOM44_THRESHOLD 169
+#define MUL_TOOM6H_THRESHOLD 226
+#define MUL_TOOM8H_THRESHOLD 309
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 73
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 114
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 105
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 105
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 148
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 28
+#define SQR_TOOM3_THRESHOLD 93
+#define SQR_TOOM4_THRESHOLD 250
+#define SQR_TOOM6_THRESHOLD 318
+#define SQR_TOOM8_THRESHOLD 430
+
+#define MULMID_TOOM42_THRESHOLD 28
+
+#define MULMOD_BNM1_THRESHOLD 11
+#define SQRMOD_BNM1_THRESHOLD 13
+
+#define MUL_FFT_MODF_THRESHOLD 404 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 404, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
+ { 21, 7}, { 11, 6}, { 23, 7}, { 21, 8}, \
+ { 11, 7}, { 24, 8}, { 13, 7}, { 27, 8}, \
+ { 15, 7}, { 31, 8}, { 21, 9}, { 11, 8}, \
+ { 27, 9}, { 15, 8}, { 33, 9}, { 19, 8}, \
+ { 39, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
+ { 15, 9}, { 39,10}, { 23, 9}, { 51,11}, \
+ { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
+ { 79,10}, { 47, 9}, { 95,10}, { 55,11}, \
+ { 31,10}, { 79,11}, { 47,10}, { 95,12}, \
+ { 31,11}, { 63,10}, { 127, 9}, { 255,10}, \
+ { 135,11}, { 79,10}, { 159, 9}, { 319,11}, \
+ { 95, 9}, { 383,12}, { 63,11}, { 127,10}, \
+ { 255, 9}, { 511,11}, { 143,10}, { 287, 9}, \
+ { 575,11}, { 159,10}, { 319,12}, { 95,10}, \
+ { 383,13}, { 63,12}, { 127,11}, { 255,10}, \
+ { 511,11}, { 271,10}, { 543,11}, { 287,10}, \
+ { 575,12}, { 159,11}, { 319,10}, { 639,11}, \
+ { 335,10}, { 671,11}, { 351,10}, { 703,11}, \
+ { 383,10}, { 767,11}, { 415,10}, { 831,12}, \
+ { 223,11}, { 447,13}, { 127,12}, { 255,11}, \
+ { 511,10}, { 1023,11}, { 543,12}, { 287,11}, \
+ { 607,12}, { 319,11}, { 671,12}, { 351,11}, \
+ { 703,12}, { 383,11}, { 767,12}, { 415,11}, \
+ { 831,12}, { 447,11}, { 895,12}, { 479,14}, \
+ { 127,13}, { 255,12}, { 511,11}, { 1023,12}, \
+ { 543,11}, { 1087,12}, { 575,11}, { 1151,12}, \
+ { 607,13}, { 319,12}, { 703,13}, { 383,12}, \
+ { 767,11}, { 1535,12}, { 831,13}, { 447,12}, \
+ { 959,14}, { 255,13}, { 511,12}, { 1087,13}, \
+ { 575,12}, { 1215,13}, { 639,12}, { 1279,13}, \
+ { 703,12}, { 1407,14}, { 383,13}, { 767,12}, \
+ { 1535,13}, { 831,12}, { 1663,13}, { 959,14}, \
+ { 511,13}, { 1087,12}, { 2175,13}, { 1215,14}, \
+ { 639,13}, { 1343,12}, { 2687,13}, { 1407,12}, \
+ { 2815,14}, { 767,13}, { 1663,14}, { 895,13}, \
+ { 1791,15}, { 511,14}, { 1023,13}, { 2175,14}, \
+ { 1151,13}, { 2431,12}, { 4863,14}, { 1279,13}, \
+ { 2687,14}, { 1407,13}, { 2815,15}, { 767,14}, \
+ { 1535,13}, { 3071,14}, { 1663,13}, { 3455,14}, \
+ { 1791,16}, { 511,15}, { 1023,14}, { 2431,13}, \
+ { 4863,15}, { 1279,14}, { 2943,13}, { 5887,15}, \
+ { 1535,14}, { 3455,15}, { 1791,14}, { 3839,16}, \
+ { 1023,15}, { 2047,14}, { 4223,15}, { 2303,14}, \
+ { 4863,15}, { 2815,14}, { 5887,16}, { 1535,15}, \
+ { 3327,14}, { 6911,15}, { 3839,17}, { 1023,16}, \
+ { 2047,15}, { 4863,16}, { 2559,15}, { 5887,14}, \
+ { 11775,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
+ { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
+ {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 197
+#define MUL_FFT_THRESHOLD 4224
+
+#define SQR_FFT_MODF_THRESHOLD 340 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 340, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
+ { 21, 7}, { 11, 6}, { 23, 7}, { 21, 8}, \
+ { 11, 7}, { 24, 8}, { 13, 7}, { 27, 8}, \
+ { 15, 7}, { 31, 8}, { 21, 9}, { 11, 8}, \
+ { 27, 9}, { 15, 8}, { 33, 9}, { 19, 8}, \
+ { 41, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
+ { 15, 9}, { 39,10}, { 23, 9}, { 47,11}, \
+ { 15,10}, { 31, 9}, { 63,10}, { 39, 9}, \
+ { 79,10}, { 47, 9}, { 95,11}, { 31,10}, \
+ { 79,11}, { 47,10}, { 95,12}, { 31,11}, \
+ { 63,10}, { 127, 9}, { 255, 8}, { 511,10}, \
+ { 135,11}, { 79, 9}, { 319,11}, { 95,10}, \
+ { 191, 9}, { 383,12}, { 63,11}, { 127,10}, \
+ { 255, 9}, { 511,10}, { 271, 9}, { 543,11}, \
+ { 143,10}, { 287, 9}, { 575,10}, { 303, 9}, \
+ { 607,10}, { 319,12}, { 95,11}, { 191,10}, \
+ { 383,13}, { 63,12}, { 127,11}, { 255,10}, \
+ { 511,11}, { 271,10}, { 543,11}, { 287,10}, \
+ { 575,11}, { 303,10}, { 607,11}, { 319,10}, \
+ { 639,11}, { 335,10}, { 671,11}, { 351,10}, \
+ { 703,12}, { 191,11}, { 383,10}, { 767,11}, \
+ { 415,10}, { 831,12}, { 223,11}, { 447,10}, \
+ { 895,11}, { 479,13}, { 127,12}, { 255,11}, \
+ { 511,10}, { 1023,11}, { 543,12}, { 287,11}, \
+ { 575,10}, { 1151,11}, { 607,12}, { 319,11}, \
+ { 639,10}, { 1279,11}, { 671,12}, { 351,11}, \
+ { 703,13}, { 191,12}, { 383,11}, { 767,12}, \
+ { 415,11}, { 831,12}, { 447,11}, { 895,12}, \
+ { 479,14}, { 127,13}, { 255,12}, { 511,11}, \
+ { 1023,12}, { 543,11}, { 1087,12}, { 575,11}, \
+ { 1151,12}, { 607,13}, { 319,12}, { 639,11}, \
+ { 1279,12}, { 671,11}, { 1343,12}, { 703,13}, \
+ { 383,12}, { 767,11}, { 1535,12}, { 831,13}, \
+ { 447,12}, { 959,13}, { 511,12}, { 1087,13}, \
+ { 575,12}, { 1215,13}, { 639,12}, { 1343,13}, \
+ { 703,12}, { 1407,14}, { 383,13}, { 767,12}, \
+ { 1535,13}, { 831,12}, { 1663,13}, { 959,14}, \
+ { 511,13}, { 1087,12}, { 2175,13}, { 1215,14}, \
+ { 639,13}, { 1343,12}, { 2687,13}, { 1407,12}, \
+ { 2815,14}, { 767,13}, { 1535,12}, { 3071,13}, \
+ { 1663,14}, { 895,13}, { 1791,15}, { 511,14}, \
+ { 1023,13}, { 2175,14}, { 1151,13}, { 2431,12}, \
+ { 4863,14}, { 1279,13}, { 2687,14}, { 1407,13}, \
+ { 2815,15}, { 767,14}, { 1535,13}, { 3071,14}, \
+ { 1663,13}, { 3455,14}, { 1791,16}, { 511,15}, \
+ { 1023,14}, { 2431,13}, { 4863,15}, { 1279,14}, \
+ { 2943,13}, { 5887,15}, { 1535,14}, { 3455,15}, \
+ { 1791,14}, { 3839,16}, { 1023,15}, { 2047,14}, \
+ { 4223,15}, { 2303,14}, { 4863,15}, { 2815,14}, \
+ { 5887,16}, { 1535,15}, { 3327,14}, { 6911,15}, \
+ { 3839,17}, { 1023,16}, { 2047,15}, { 4863,16}, \
+ { 2559,15}, { 5887,14}, { 11775,16}, { 65536,17}, \
+ { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
+ {2097152,22}, {4194304,23}, {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 215
+#define SQR_FFT_THRESHOLD 3520
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 45
+#define MULLO_MUL_N_THRESHOLD 8397
+#define SQRLO_BASECASE_THRESHOLD 8
+#define SQRLO_DC_THRESHOLD 0 /* never mpn_sqrlo_basecase */
+#define SQRLO_SQR_THRESHOLD 7035
+
+#define DC_DIV_QR_THRESHOLD 43
+#define DC_DIVAPPR_Q_THRESHOLD 135
+#define DC_BDIV_QR_THRESHOLD 39
+#define DC_BDIV_Q_THRESHOLD 30
+
+#define INV_MULMOD_BNM1_THRESHOLD 34
+#define INV_NEWTON_THRESHOLD 169
+#define INV_APPR_THRESHOLD 149
+
+#define BINV_NEWTON_THRESHOLD 246
+#define REDC_1_TO_REDC_2_THRESHOLD 32
+#define REDC_2_TO_REDC_N_THRESHOLD 51
+
+#define MU_DIV_QR_THRESHOLD 1210
+#define MU_DIVAPPR_Q_THRESHOLD 1334
+#define MUPI_DIV_QR_THRESHOLD 85
+#define MU_BDIV_QR_THRESHOLD 1142
+#define MU_BDIV_Q_THRESHOLD 1210
+
+#define POWM_SEC_TABLE 3,49,194,452,1555
+
+#define GET_STR_DC_THRESHOLD 12
+#define GET_STR_PRECOMPUTE_THRESHOLD 19
+#define SET_STR_DC_THRESHOLD 230
+#define SET_STR_PRECOMPUTE_THRESHOLD 1421
+
+#define FAC_DSC_THRESHOLD 406
+#define FAC_ODD_THRESHOLD 28
+
+#define MATRIX22_STRASSEN_THRESHOLD 22
+#define HGCD_THRESHOLD 135
+#define HGCD_APPR_THRESHOLD 169
+#define HGCD_REDUCE_THRESHOLD 2205
+#define GCD_DC_THRESHOLD 330
+#define GCDEXT_DC_THRESHOLD 361
+#define JACOBI_BASE_METHOD 1
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/hamdist.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/hamdist.asm
index 93e1e5632b2..93e1e5632b2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/hamdist.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/hamdist.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/popcount.asm
index 8f22a715b66..8f22a715b66 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/popcount.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/redc_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/redc_1.asm
index 4d9261d8f90..fc71c1b302d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/redc_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/redc_1.asm
@@ -276,7 +276,12 @@ IFDOS(` lea (up,n,8), %rdx C param 2: up
mov n, %r9 C param 4: n
mov rp, %rcx ') C param 1: rp
+IFSTD(` sub $8, %rsp ')
+IFDOS(` sub $40, %rsp ')
+ ASSERT(nz, `test $15, %rsp')
CALL( mpn_add_n)
+IFSTD(` add $8, %rsp ')
+IFDOS(` add $40, %rsp ')
L(ret): pop %r15
pop %r14
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/sec_tabselect.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/sec_tabselect.asm
index e4360341d93..e4360341d93 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/sec_tabselect.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreinhm/sec_tabselect.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/addmul_2.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/addmul_2.asm
index 21f0bf465f6..21f0bf465f6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/addmul_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/addmul_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorrlsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/aorrlsh1_n.asm
index 2319a800607..2319a800607 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorrlsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/aorrlsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorrlsh2_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/aorrlsh2_n.asm
index 9416d5a1645..9416d5a1645 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorrlsh2_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/aorrlsh2_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorrlshC_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/aorrlshC_n.asm
index 23ace418895..23ace418895 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorrlshC_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/aorrlshC_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorrlsh_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/aorrlsh_n.asm
index db8ee688496..db8ee688496 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorrlsh_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/aorrlsh_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/aors_n.asm
index 01abf78a0d8..01abf78a0d8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/aorsmul_1.asm
index 9f01d9c0612..9f01d9c0612 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/divrem_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/divrem_1.asm
index d9f371f7852..d9f371f7852 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/divrem_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/divrem_1.asm
diff --git a/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/gmp-mparam.h
new file mode 100644
index 00000000000..db9b2deb9b5
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/gmp-mparam.h
@@ -0,0 +1,231 @@
+/* Sandy Bridge gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 2000-2015 Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 64
+#define GMP_LIMB_BYTES 8
+
+/* 3300 MHz Core i5 Sandy Bridge */
+/* FFT tuning limit = 200 M */
+/* Generated by tuneup.c, 2015-10-07, gcc 4.8 */
+
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 3
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 9
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 22
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 10
+#define USE_PREINV_DIVREM_1 1 /* native */
+#define DIV_QR_1_NORM_THRESHOLD 1
+#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 29
+
+#define MUL_TOOM22_THRESHOLD 20
+#define MUL_TOOM33_THRESHOLD 65
+#define MUL_TOOM44_THRESHOLD 166
+#define MUL_TOOM6H_THRESHOLD 256
+#define MUL_TOOM8H_THRESHOLD 333
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 108
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 122
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 105
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 114
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 151
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 28
+#define SQR_TOOM3_THRESHOLD 93
+#define SQR_TOOM4_THRESHOLD 250
+#define SQR_TOOM6_THRESHOLD 351
+#define SQR_TOOM8_THRESHOLD 454
+
+#define MULMID_TOOM42_THRESHOLD 34
+
+#define MULMOD_BNM1_THRESHOLD 13
+#define SQRMOD_BNM1_THRESHOLD 16
+
+#define MUL_FFT_MODF_THRESHOLD 396 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 396, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
+ { 11, 5}, { 23, 6}, { 21, 7}, { 11, 6}, \
+ { 25, 7}, { 13, 6}, { 27, 7}, { 21, 8}, \
+ { 11, 7}, { 25, 8}, { 13, 7}, { 27, 8}, \
+ { 15, 7}, { 31, 8}, { 17, 7}, { 35, 8}, \
+ { 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
+ { 33, 9}, { 19, 8}, { 39, 9}, { 23, 8}, \
+ { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
+ { 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
+ { 67,10}, { 39, 9}, { 79,10}, { 47, 9}, \
+ { 95,10}, { 55,11}, { 31,10}, { 79,11}, \
+ { 47,10}, { 95,12}, { 31,11}, { 63,10}, \
+ { 135,11}, { 79,10}, { 159,11}, { 95,10}, \
+ { 191, 9}, { 383,12}, { 63,11}, { 127,10}, \
+ { 255, 9}, { 511,11}, { 143,10}, { 287, 9}, \
+ { 575,10}, { 303,11}, { 159,10}, { 319,12}, \
+ { 95,11}, { 191,10}, { 383,11}, { 207,13}, \
+ { 63,12}, { 127,11}, { 255,10}, { 511,11}, \
+ { 271,10}, { 543,11}, { 287,10}, { 575,11}, \
+ { 303,12}, { 159,11}, { 319,10}, { 639,11}, \
+ { 351,10}, { 703,11}, { 367,10}, { 735,11}, \
+ { 383,10}, { 767,11}, { 415,10}, { 831,12}, \
+ { 223,11}, { 479,13}, { 127,12}, { 255,11}, \
+ { 511,10}, { 1023,11}, { 543,12}, { 287,11}, \
+ { 575,10}, { 1151,11}, { 607,12}, { 319,11}, \
+ { 671,12}, { 351,11}, { 735,12}, { 383,11}, \
+ { 767,12}, { 415,11}, { 831,12}, { 447,11}, \
+ { 895,12}, { 479,14}, { 127,13}, { 255,12}, \
+ { 511,11}, { 1023,12}, { 543,11}, { 1087,12}, \
+ { 575,11}, { 1151,12}, { 607,13}, { 319,12}, \
+ { 735,13}, { 383,12}, { 831,13}, { 447,12}, \
+ { 959,14}, { 255,13}, { 511,12}, { 1087,13}, \
+ { 575,12}, { 1215,13}, { 639,12}, { 1279,13}, \
+ { 703,12}, { 1407,14}, { 383,13}, { 767,12}, \
+ { 1535,13}, { 831,12}, { 1663,13}, { 959,14}, \
+ { 511,13}, { 1087,12}, { 2175,13}, { 1215,14}, \
+ { 639,13}, { 1343,12}, { 2687,13}, { 1407,12}, \
+ { 2815,13}, { 1471,14}, { 767,13}, { 1663,14}, \
+ { 895,13}, { 1919,15}, { 511,14}, { 1023,13}, \
+ { 2175,14}, { 1151,13}, { 2431,12}, { 4863,14}, \
+ { 1279,13}, { 2687,14}, { 1407,13}, { 2815,15}, \
+ { 767,14}, { 1535,13}, { 3071,14}, { 1663,13}, \
+ { 3455,14}, { 1919,16}, { 511,15}, { 1023,14}, \
+ { 2431,13}, { 4863,15}, { 1279,14}, { 2943,13}, \
+ { 5887,15}, { 1535,14}, { 3455,15}, { 1791,14}, \
+ { 3839,13}, { 7679,16}, { 1023,15}, { 2047,14}, \
+ { 4223,15}, { 2303,14}, { 4863,15}, { 2815,14}, \
+ { 5887,16}, { 1535,15}, { 3327,14}, { 6911,15}, \
+ { 3839,14}, { 7679,17}, { 1023,16}, { 2047,15}, \
+ { 4863,16}, { 2559,15}, { 5887,14}, { 11775,16}, \
+ { 65536,17}, { 131072,18}, { 262144,19}, { 524288,20}, \
+ {1048576,21}, {2097152,22}, {4194304,23}, {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 208
+#define MUL_FFT_THRESHOLD 4736
+
+#define SQR_FFT_MODF_THRESHOLD 340 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 340, 5}, { 11, 4}, { 23, 5}, { 21, 6}, \
+ { 11, 5}, { 23, 6}, { 25, 7}, { 13, 6}, \
+ { 27, 7}, { 25, 8}, { 13, 7}, { 28, 8}, \
+ { 15, 7}, { 31, 8}, { 21, 9}, { 11, 8}, \
+ { 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
+ { 41, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
+ { 15, 9}, { 39,10}, { 23, 9}, { 51,11}, \
+ { 15,10}, { 31, 9}, { 63,10}, { 39, 9}, \
+ { 79,10}, { 55,11}, { 31,10}, { 79,11}, \
+ { 47,10}, { 95,12}, { 31,11}, { 63,10}, \
+ { 127, 9}, { 255,10}, { 135,11}, { 79,10}, \
+ { 159, 9}, { 319,11}, { 95,10}, { 191, 9}, \
+ { 383,12}, { 63,11}, { 127,10}, { 255, 9}, \
+ { 511,10}, { 271, 9}, { 543,11}, { 143,10}, \
+ { 287, 9}, { 575,10}, { 303, 9}, { 607,11}, \
+ { 159,10}, { 319, 9}, { 639,12}, { 95,11}, \
+ { 191,10}, { 383,11}, { 207,13}, { 63,12}, \
+ { 127,11}, { 255,10}, { 511,11}, { 271,10}, \
+ { 543,11}, { 287,10}, { 575,11}, { 303,10}, \
+ { 607,11}, { 319,10}, { 639,11}, { 335,10}, \
+ { 671,11}, { 351,10}, { 703,11}, { 367,12}, \
+ { 191,11}, { 383,10}, { 767,11}, { 415,10}, \
+ { 831,12}, { 223,11}, { 479,13}, { 127,12}, \
+ { 255,11}, { 543,12}, { 287,11}, { 607,12}, \
+ { 319,11}, { 671,12}, { 351,11}, { 703,13}, \
+ { 191,12}, { 383,11}, { 767,12}, { 415,11}, \
+ { 831,12}, { 447,11}, { 895,12}, { 479,14}, \
+ { 127,13}, { 255,12}, { 543,11}, { 1087,12}, \
+ { 607,13}, { 319,12}, { 735,13}, { 383,12}, \
+ { 831,13}, { 447,12}, { 959,13}, { 511,12}, \
+ { 1087,13}, { 575,12}, { 1215,13}, { 639,12}, \
+ { 1343,13}, { 703,12}, { 1407,14}, { 383,13}, \
+ { 767,12}, { 1535,13}, { 831,12}, { 1663,13}, \
+ { 959,14}, { 511,13}, { 1087,12}, { 2175,13}, \
+ { 1215,14}, { 639,13}, { 1343,12}, { 2687,13}, \
+ { 1407,12}, { 2815,13}, { 1471,14}, { 767,13}, \
+ { 1599,12}, { 3199,13}, { 1663,14}, { 895,13}, \
+ { 1791,15}, { 511,14}, { 1023,13}, { 2175,14}, \
+ { 1151,13}, { 2431,12}, { 4863,14}, { 1279,13}, \
+ { 2687,14}, { 1407,13}, { 2815,15}, { 767,14}, \
+ { 1535,13}, { 3199,14}, { 1663,13}, { 3455,12}, \
+ { 6911,14}, { 1791,16}, { 511,15}, { 1023,14}, \
+ { 2431,13}, { 4863,15}, { 1279,14}, { 2943,13}, \
+ { 5887,15}, { 1535,14}, { 3455,13}, { 6911,15}, \
+ { 1791,14}, { 3839,16}, { 1023,15}, { 2047,14}, \
+ { 4223,15}, { 2303,14}, { 4863,15}, { 2815,14}, \
+ { 5887,16}, { 1535,15}, { 3327,14}, { 6911,15}, \
+ { 3839,17}, { 1023,16}, { 2047,15}, { 4863,16}, \
+ { 2559,15}, { 5887,14}, { 11775,16}, { 65536,17}, \
+ { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
+ {2097152,22}, {4194304,23}, {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 203
+#define SQR_FFT_THRESHOLD 3264
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 62
+#define MULLO_MUL_N_THRESHOLD 8907
+#define SQRLO_BASECASE_THRESHOLD 8
+#define SQRLO_DC_THRESHOLD 0 /* never mpn_sqrlo_basecase */
+#define SQRLO_SQR_THRESHOLD 6440
+
+#define DC_DIV_QR_THRESHOLD 51
+#define DC_DIVAPPR_Q_THRESHOLD 171
+#define DC_BDIV_QR_THRESHOLD 44
+#define DC_BDIV_Q_THRESHOLD 104
+
+#define INV_MULMOD_BNM1_THRESHOLD 38
+#define INV_NEWTON_THRESHOLD 170
+#define INV_APPR_THRESHOLD 165
+
+#define BINV_NEWTON_THRESHOLD 224
+#define REDC_1_TO_REDC_2_THRESHOLD 32
+#define REDC_2_TO_REDC_N_THRESHOLD 55
+
+#define MU_DIV_QR_THRESHOLD 1442
+#define MU_DIVAPPR_Q_THRESHOLD 1387
+#define MUPI_DIV_QR_THRESHOLD 74
+#define MU_BDIV_QR_THRESHOLD 1187
+#define MU_BDIV_Q_THRESHOLD 1442
+
+#define POWM_SEC_TABLE 3,19,177,452,1297
+
+#define GET_STR_DC_THRESHOLD 12
+#define GET_STR_PRECOMPUTE_THRESHOLD 21
+#define SET_STR_DC_THRESHOLD 874
+#define SET_STR_PRECOMPUTE_THRESHOLD 2015
+
+#define FAC_DSC_THRESHOLD 620
+#define FAC_ODD_THRESHOLD 28
+
+#define MATRIX22_STRASSEN_THRESHOLD 15
+#define HGCD_THRESHOLD 100
+#define HGCD_APPR_THRESHOLD 50
+#define HGCD_REDUCE_THRESHOLD 2681
+#define GCD_DC_THRESHOLD 483
+#define GCDEXT_DC_THRESHOLD 386
+#define JACOBI_BASE_METHOD 1
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/lshift.asm
index a1cbc31f61b..a1cbc31f61b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/lshiftc.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/lshiftc.asm
index ac90edb76b0..ac90edb76b0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/lshiftc.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/lshiftc.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/mul_1.asm
index ded7d899c23..ded7d899c23 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/mul_2.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/mul_2.asm
index ffee78a385b..ffee78a385b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/mul_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/mul_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/mul_basecase.asm
index f026136ea0c..35fd1cc003c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/mul_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/mul_basecase.asm
@@ -287,7 +287,7 @@ L(a100):lea 2(un), n C un = 4, 8, 12, ...
adc $0, w1
mov (up,un,8), %rax
mul v1
- mov 8(rp,un,8), X1 C FIXME: Use un
+ mov 8(rp,un,8), X1
jmp L(lo0)
L(a110):lea (un), n C un = 2, 6, 10, ...
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/mullo_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/mullo_basecase.asm
index a41a8acee41..a41a8acee41 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/mullo_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/mullo_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/popcount.asm
index a5be33e6a79..a5be33e6a79 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/popcount.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/redc_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/redc_1.asm
index 8a5170e3fde..f0dbe0781b9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/redc_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/redc_1.asm
@@ -282,7 +282,12 @@ IFDOS(` lea -8(up,n,8), %rdx C param 2: up
mov n, %r9 C param 4: n
mov rp, %rcx ') C param 1: rp
+IFSTD(` sub $8, %rsp ')
+IFDOS(` sub $40, %rsp ')
+ ASSERT(nz, `test $15, %rsp')
CALL( mpn_add_n)
+IFSTD(` add $8, %rsp ')
+IFDOS(` add $40, %rsp ')
L(ret): pop %r15
pop %r14
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/rsh1aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/rsh1aors_n.asm
index fd2eaea7bb9..fd2eaea7bb9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/rsh1aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/rsh1aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/rshift.asm
index 4c1c0d4cde0..4c1c0d4cde0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/sec_tabselect.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/sec_tabselect.asm
index e4360341d93..e4360341d93 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/sec_tabselect.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/sec_tabselect.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/sqr_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/sqr_basecase.asm
index 46a36121fec..46a36121fec 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/sqr_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/coreisbr/sqr_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/darwin.m4 b/Build/source/libs/gmp/gmp-src/mpn/x86_64/darwin.m4
index 6f8ec7893d9..6f8ec7893d9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/darwin.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/darwin.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/div_qr_1n_pi1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/div_qr_1n_pi1.asm
index cb072e979dc..cb072e979dc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/div_qr_1n_pi1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/div_qr_1n_pi1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/div_qr_2n_pi1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/div_qr_2n_pi1.asm
index 5e59a0ac5d6..5e59a0ac5d6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/div_qr_2n_pi1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/div_qr_2n_pi1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/div_qr_2u_pi1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/div_qr_2u_pi1.asm
index 85af96fbf6f..85af96fbf6f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/div_qr_2u_pi1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/div_qr_2u_pi1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/dive_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/dive_1.asm
index 988bdab632d..988bdab632d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/dive_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/dive_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/divrem_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/divrem_1.asm
index 91928d9aa30..d4d61ad9d8f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/divrem_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/divrem_1.asm
@@ -1,6 +1,6 @@
dnl x86-64 mpn_divrem_1 -- mpn by limb division.
-dnl Copyright 2004, 2005, 2007-2012 Free Software Foundation, Inc.
+dnl Copyright 2004, 2005, 2007-2012, 2014 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -140,8 +140,11 @@ IFSTD(` push %rdi ')
IFSTD(` push %rsi ')
push %r8
IFSTD(` mov d, %rdi ')
+IFDOS(` sub $32, %rsp ')
IFDOS(` mov d, %rcx ')
+ ASSERT(nz, `test $15, %rsp')
CALL( mpn_invert_limb)
+IFDOS(` add $32, %rsp ')
pop %r8
IFSTD(` pop %rsi ')
IFSTD(` pop %rdi ')
@@ -173,7 +176,7 @@ L(nent):lea 1(%rax), %rbp C
jns L(ntop) C
xor R32(%rcx), R32(%rcx)
- jmp L(87)
+ jmp L(frac)
L(nfx): sub d, %rax
inc %r13
@@ -200,9 +203,14 @@ L(44):
IFSTD(` push %rdi ')
IFSTD(` push %rsi ')
push %r8
+IFSTD(` sub $8, %rsp ')
IFSTD(` mov d, %rdi ')
+IFDOS(` sub $40, %rsp ')
IFDOS(` mov d, %rcx ')
+ ASSERT(nz, `test $15, %rsp')
CALL( mpn_invert_limb)
+IFSTD(` add $8, %rsp ')
+IFDOS(` add $40, %rsp ')
pop %r8
IFSTD(` pop %rsi ')
IFSTD(` pop %rdi ')
@@ -211,7 +219,7 @@ IFSTD(` pop %rdi ')
mov %rax, dinv
mov %rbp, %rax
test un, un
- je L(87)
+ je L(frac)
L(uent):dec un
mov (up,un,8), %rbp
@@ -266,7 +274,7 @@ L(uend):shl R8(%rcx), %rbp
jae L(efx)
L(eok): mov %r13, (qp)
sub $8, qp
- jmp L(87)
+ jmp L(frac)
L(ufx): sub d, %rax
inc %r13
@@ -275,7 +283,7 @@ L(efx): sub d, %rax
inc %r13
jmp L(eok)
-L(87): mov d, %rbp
+L(frac):mov d, %rbp
neg %rbp
jmp L(fent)
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/divrem_2.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/divrem_2.asm
index 66c2da1a054..296c9b673c3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/divrem_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/divrem_2.asm
@@ -1,6 +1,6 @@
dnl x86-64 mpn_divrem_2 -- Divide an mpn number by a normalized 2-limb number.
-dnl Copyright 2007, 2008, 2010 Free Software Foundation, Inc.
+dnl Copyright 2007, 2008, 2010, 2014 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -100,6 +100,7 @@ L(2):
push %r11
IFSTD(` mov %r11, %rdi ')
IFDOS(` mov %r11, %rcx ')
+ ASSERT(nz, `test $15, %rsp')
CALL( mpn_invert_limb)
pop %r11
pop %r10
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/dos64.m4 b/Build/source/libs/gmp/gmp-src/mpn/x86_64/dos64.m4
index 9414623b56c..9414623b56c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/dos64.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/dos64.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastavx/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastavx/copyd.asm
index 41c55de5ca1..56d472f83d2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastavx/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastavx/copyd.asm
@@ -1,8 +1,8 @@
dnl AMD64 mpn_copyd optimised for CPUs with fast AVX.
-dnl Contributed to the GNU project by Torbjörn Granlund.
+dnl Copyright 2003, 2005, 2007, 2011-2013, 2015 Free Software Foundation, Inc.
-dnl Copyright 2003, 2005, 2007, 2011-2013 Free Software Foundation, Inc.
+dnl Contributed to the GNU project by Torbjörn Granlund.
dnl This file is part of the GNU MP Library.
dnl
@@ -32,7 +32,8 @@ dnl see https://www.gnu.org/licenses/.
include(`../config.m4')
-C cycles/limb aligned unaligned best seen for cpu?
+C cycles/limb cycles/limb cycles/limb good
+C aligned unaligned best seen for cpu?
C AMD K8,K9 n/a
C AMD K10 n/a
C AMD bull n/a
@@ -44,9 +45,9 @@ C Intel P4 n/a
C Intel core n/a
C Intel NHM n/a
C Intel SBR 0.50 0.91 N
-C Intel IBR ?
+C Intel IBR 0.50 0.65 N
C Intel HWL 0.25 0.30 Y
-C Intel BWL ?
+C Intel BWL 0.28 0.37 Y
C Intel atom n/a
C VIA nano n/a
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastavx/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastavx/copyi.asm
index 97264ef8375..76077479733 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastavx/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastavx/copyi.asm
@@ -1,8 +1,8 @@
dnl AMD64 mpn_copyi optimised for CPUs with fast AVX.
-dnl Contributed to the GNU project by Torbjörn Granlund.
+dnl Copyright 2003, 2005, 2007, 2011-2013, 2015 Free Software Foundation, Inc.
-dnl Copyright 2003, 2005, 2007, 2011-2013 Free Software Foundation, Inc.
+dnl Contributed to the GNU project by Torbjörn Granlund.
dnl This file is part of the GNU MP Library.
dnl
@@ -32,7 +32,8 @@ dnl see https://www.gnu.org/licenses/.
include(`../config.m4')
-C cycles/limb aligned unaligned best seen for cpu?
+C cycles/limb cycles/limb cycles/limb good
+C aligned unaligned best seen for cpu?
C AMD K8,K9 n/a
C AMD K10 n/a
C AMD bull n/a
@@ -44,9 +45,9 @@ C Intel P4 n/a
C Intel core n/a
C Intel NHM n/a
C Intel SBR 0.50 0.91 N
-C Intel IBR ?
+C Intel IBR 0.50 0.65 N
C Intel HWL 0.25 0.30 Y
-C Intel BWL ?
+C Intel BWL 0.28 0.37 Y
C Intel atom n/a
C VIA nano n/a
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/README b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/README
index 520551ed99d..5538b2dcb0b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/README
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/README
@@ -4,10 +4,11 @@ implementations of SSE operations, hence the name "fastsse".
Current processors that might benefit from this code are:
AMD K10
- AMD Bulldozer
+ AMD Bulldozer/Piledriver/Steamroller/Excavator
Intel Nocona
Intel Nehalem/Westmere
Intel Sandybridge/Ivybridge
+ Intel Haswell/Broadwell
VIA Nano
Current processors that do not benefit from this code are:
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/com-palignr.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/com-palignr.asm
index d9641e890de..c7155d115b6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/com-palignr.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/com-palignr.asm
@@ -1,6 +1,6 @@
dnl AMD64 mpn_com optimised for CPUs with fast SSE copying and SSSE3.
-dnl Copyright 2012, 2013 Free Software Foundation, Inc.
+dnl Copyright 2012, 2013, 2015 Free Software Foundation, Inc.
dnl Contributed to the GNU project by Torbjorn Granlund.
@@ -36,13 +36,21 @@ C cycles/limb cycles/limb cycles/limb good
C aligned unaligned best seen for cpu?
C AMD K8,K9 2.0 illop 1.0/1.0 N
C AMD K10 0.85 illop Y/N
-C AMD bd1 1.39 ? 1.45 Y/N
+C AMD bull 1.39 ? 1.45 Y/N
+C AMD pile 0.8-1.4 0.7-1.4 Y
+C AMD steam
+C AMD excavator
C AMD bobcat 1.97 ? 8.17 1.5/1.5 N
+C AMD jaguar 1.02 1.02 0.91/0.91 N
C Intel P4 2.26 illop Y/N
-C Intel core2 0.52 0.82 opt/0.74 Y
+C Intel core 0.52 0.95 opt/0.74 Y
C Intel NHM 0.52 0.65 opt/opt Y
-C Intel SBR 0.51 0.55 opt/0.51 Y
+C Intel SBR 0.51 0.65 opt/opt Y
+C Intel IBR 0.50 0.64 opt/0.57 Y
+C Intel HWL 0.51 0.58 opt/opt Y
+C Intel BWL 0.57 0.69 opt/0.65 Y
C Intel atom 1.16 1.70 opt/opt Y
+C Intel SLM 1.02 1.52 N
C VIA nano 1.09 1.10 opt/opt Y
C We use only 16-byte operations, except for unaligned top-most and bottom-most
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/com.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/com.asm
index 4abb076d3f5..307fb75373d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/com.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/com.asm
@@ -1,6 +1,7 @@
dnl AMD64 mpn_com optimised for CPUs with fast SSE.
-dnl Copyright 2003, 2005, 2007, 2011, 2012 Free Software Foundation, Inc.
+dnl Copyright 2003, 2005, 2007, 2011, 2012, 2015 Free Software Foundation,
+dnl Inc.
dnl Contributed to the GNU project by Torbjorn Granlund.
@@ -36,13 +37,21 @@ C cycles/limb cycles/limb cycles/limb good
C aligned unaligned best seen for cpu?
C AMD K8,K9 2.0 2.0 N
C AMD K10 0.85 1.3 Y/N
-C AMD bd1 1.40 1.40 Y
+C AMD bull 1.40 1.40 Y
+C AMD pile 0.9-1.4 0.9-1.4 Y
+C AMD steam
+C AMD excavator
C AMD bobcat 3.1 3.1 N
+C AMD jaguar 0.91 0.91 opt/opt Y
C Intel P4 2.28 illop Y
C Intel core2 1.02 1.02 N
C Intel NHM 0.53 0.68 Y
-C Intel SBR 0.51 0.75 Y
+C Intel SBR 0.51 0.75 opt/0.65 Y/N
+C Intel IBR 0.50 0.57 opt/opt Y
+C Intel HWL 0.51 0.64 opt/0.58 Y
+C Intel BWL 0.61 0.65 0.57/opt Y
C Intel atom 3.68 3.68 N
+C Intel SLM 1.09 1.35 N
C VIA nano 1.17 5.09 Y/N
C We try to do as many 16-byte operations as possible. The top-most and
@@ -69,9 +78,6 @@ ASM_START()
PROLOGUE(mpn_com)
FUNC_ENTRY(3)
- test n, n
- jz L(don)
-
pcmpeqb %xmm7, %xmm7 C set to 111...111
test $8, R8(rp) C is rp 16-byte aligned?
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/copyd-palignr.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/copyd-palignr.asm
index 7430cadc09e..fac6f8a83df 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/copyd-palignr.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/copyd-palignr.asm
@@ -1,6 +1,6 @@
dnl AMD64 mpn_copyd optimised for CPUs with fast SSE copying and SSSE3.
-dnl Copyright 2012 Free Software Foundation, Inc.
+dnl Copyright 2012, 2015 Free Software Foundation, Inc.
dnl Contributed to the GNU project by Torbjorn Granlund.
@@ -38,16 +38,19 @@ C AMD K8,K9 2.0 illop 1.0/1.0 N
C AMD K10 0.85 illop Y/N
C AMD bull 0.70 0.70 Y
C AMD pile 0.68 0.68 Y
-C AMD steam ? ?
+C AMD steam
+C AMD excavator
C AMD bobcat 1.97 8.24 1.5/1.5 N
-C AMD jaguar ? ?
+C AMD jaguar 0.77 0.89 0.65/opt N/Y
C Intel P4 2.26 illop Y/N
-C Intel core 0.52 0.68-0.80 opt/0.64 Y
+C Intel core 0.52 0.80 opt/opt Y
C Intel NHM 0.52 0.64 opt/opt Y
-C Intel SBR 0.51 0.51 opt/0.51 Y
-C Intel IBR ? ? Y
-C Intel HWL 0.51 0.51 0.25/0.25 N
+C Intel SBR 0.51 0.51 opt/opt Y
+C Intel IBR 0.50 0.50 opt/opt Y
+C Intel HWL 0.50 0.51 opt/opt Y
+C Intel BWL 0.55 0.55 opt/opt Y
C Intel atom 1.16 1.66 opt/opt Y
+C Intel SLM 1.02 1.04 opt/opt Y
C VIA nano 1.08 1.06 opt/opt Y
C We use only 16-byte operations, except for unaligned top-most and bottom-most
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/copyd.asm
index 5c6094c7e2b..5b8b8bf5c66 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/copyd.asm
@@ -1,6 +1,9 @@
dnl AMD64 mpn_copyd optimised for CPUs with fast SSE.
-dnl Copyright 2003, 2005, 2007, 2011, 2012 Free Software Foundation, Inc.
+dnl Copyright 2003, 2005, 2007, 2011, 2012, 2015 Free Software Foundation,
+dnl Inc.
+
+dnl Contributed to the GNU project by Torbjörn Granlund.
dnl This file is part of the GNU MP Library.
dnl
@@ -30,18 +33,26 @@ dnl see https://www.gnu.org/licenses/.
include(`../config.m4')
-
-C cycles/limb good for cpu?
+C cycles/limb cycles/limb cycles/limb good
+C aligned unaligned best seen for cpu?
C AMD K8,K9
-C AMD K10 0.85 Y
-C AMD bd1 0.8 Y
+C AMD K10 0.85 1.64 Y/N
+C AMD bull 1.4 1.4 Y
+C AMD pile 0.68 0.98 Y/N
+C AMD steam
+C AMD excavator
C AMD bobcat
-C Intel P4 2.28 Y
-C Intel core2 1
-C Intel NHM 0.5 Y
-C Intel SBR 0.5 Y
+C AMD jaguar 0.65 1.02 opt/0.93 Y/N
+C Intel P4 2.3 2.3 Y
+C Intel core 1.0 1.0 0.52/0.80 N
+C Intel NHM 0.5 0.67 Y
+C Intel SBR 0.51 0.75 opt/0.54 Y/N
+C Intel IBR 0.50 0.57 opt/0.50 Y
+C Intel HWL 0.50 0.57 opt/0.51 Y
+C Intel BWL 0.55 0.62 opt/0.55 Y
C Intel atom
-C VIA nano 1.1 Y
+C Intel SLM 1.02 1.27 opt/1.04 Y/N
+C VIA nano 1.16 5.16 Y/N
C We try to do as many 16-byte operations as possible. The top-most and
C bottom-most writes might need 8-byte operations. We can always write using
@@ -61,6 +72,8 @@ define(`n', `%rdx')
ABI_SUPPORT(DOS64)
ABI_SUPPORT(STD64)
+dnl define(`movdqu', lddqu)
+
ASM_START()
TEXT
ALIGN(16)
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/copyi-palignr.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/copyi-palignr.asm
index fda3c3500f6..22f13f1d862 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/copyi-palignr.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/copyi-palignr.asm
@@ -1,6 +1,6 @@
dnl AMD64 mpn_copyi optimised for CPUs with fast SSE copying and SSSE3.
-dnl Copyright 2012, 2013 Free Software Foundation, Inc.
+dnl Copyright 2012, 2013, 2015 Free Software Foundation, Inc.
dnl Contributed to the GNU project by Torbjörn Granlund.
@@ -39,15 +39,18 @@ C AMD K10 0.85 illop Y/N
C AMD bull 0.70 0.66 Y
C AMD pile 0.68 0.66 Y
C AMD steam ? ?
+C AMD excavator ? ?
C AMD bobcat 1.97 8.16 1.5/1.5 N
-C AMD jaguar ? ?
+C AMD jaguar 0.77 0.93 0.65/opt N/Y
C Intel P4 2.26 illop Y/N
C Intel core 0.52 0.64 opt/opt Y
C Intel NHM 0.52 0.71 opt/opt Y
C Intel SBR 0.51 0.54 opt/0.51 Y
-C Intel IBR ? ? Y
-C Intel HWL 0.51 0.52 0.25/0.25 N
+C Intel IBR 0.50 0.54 opt/opt Y
+C Intel HWL 0.50 0.51 opt/opt Y
+C Intel BWL 0.55 0.55 opt/opt Y
C Intel atom 1.16 1.61 opt/opt Y
+C Intel SLM 1.02 1.07 opt/opt Y
C VIA nano 1.09 1.08 opt/opt Y
C We use only 16-byte operations, except for unaligned top-most and bottom-most
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/copyi.asm
index a1a1c231dc0..b2f3b9ddb89 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/copyi.asm
@@ -1,8 +1,9 @@
dnl AMD64 mpn_copyi optimised for CPUs with fast SSE.
-dnl Contributed to the GNU project by Torbjörn Granlund.
+dnl Copyright 2003, 2005, 2007, 2011, 2012, 2015 Free Software Foundation,
+dnl Inc.
-dnl Copyright 2003, 2005, 2007, 2011, 2012 Free Software Foundation, Inc.
+dnl Contributed to the GNU project by Torbjörn Granlund.
dnl This file is part of the GNU MP Library.
dnl
@@ -32,18 +33,26 @@ dnl see https://www.gnu.org/licenses/.
include(`../config.m4')
-
-C cycles/limb good for cpu?
+C cycles/limb cycles/limb cycles/limb good
+C aligned unaligned best seen for cpu?
C AMD K8,K9
-C AMD K10 0.85 1.64 Y/N
-C AMD bd1 1.4 1.4 Y
+C AMD K10 0.85 1.64 Y/N
+C AMD bull 1.4 1.4 N
+C AMD pile 0.77 0.93 N
+C AMD steam ? ?
+C AMD excavator ? ?
C AMD bobcat
-C Intel P4 2.3 2.3 Y
-C Intel core2 1.0 1.0
-C Intel NHM 0.5 0.67 Y
-C Intel SBR 0.5 0.75 Y
+C AMD jaguar 0.65 1.02 opt/0.93 Y/N
+C Intel P4 2.3 2.3 Y
+C Intel core 1.0 1.0 0.52/0.64 N
+C Intel NHM 0.5 0.67 Y
+C Intel SBR 0.51 0.75 opt/0.54 Y/N
+C Intel IBR 0.50 0.57 opt/0.54 Y
+C Intel HWL 0.50 0.57 opt/0.51 Y
+C Intel BWL 0.55 0.62 opt/0.55 Y
C Intel atom
-C VIA nano 1.16 5.16 Y/N
+C Intel SLM 1.02 1.27 opt/1.07 Y/N
+C VIA nano 1.16 5.16 Y/N
C We try to do as many 16-byte operations as possible. The top-most and
C bottom-most writes might need 8-byte operations. We can always write using
@@ -71,7 +80,7 @@ ASM_START()
PROLOGUE(mpn_copyi)
FUNC_ENTRY(3)
- cmp $3, n
+ cmp $3, n C NB: bc code below assumes this limit
jc L(bc)
test $8, R8(rp) C is rp 16-byte aligned?
@@ -142,25 +151,27 @@ L(end): test $1, R8(n)
FUNC_EXIT()
ret
-C Basecase code. Needed for good small operands speed, not for
-C correctness as the above code is currently written.
+C Basecase code. Needed for good small operands speed, not for correctness as
+C the above code is currently written. The commented-out lines need to be
+C reinstated if this code is to be used for n > 3, and then the post loop
+C offsets need fixing.
L(bc): sub $2, n
jc L(end)
ALIGN(16)
1: mov (up), %rax
mov 8(up), %rcx
- lea 16(up), up
+dnl lea 16(up), up
mov %rax, (rp)
mov %rcx, 8(rp)
- lea 16(rp), rp
- sub $2, n
- jnc 1b
+dnl lea 16(rp), rp
+dnl sub $2, n
+dnl jnc 1b
test $1, R8(n)
jz L(ret)
- mov (up), %rax
- mov %rax, (rp)
+ mov 16(up), %rax
+ mov %rax, 16(rp)
L(ret): FUNC_EXIT()
ret
EPILOGUE()
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/lshift-movdqu2.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/lshift-movdqu2.asm
index a05e850a1fc..a05e850a1fc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/lshift-movdqu2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/lshift-movdqu2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/lshift.asm
index f76972a22f6..f76972a22f6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/lshiftc-movdqu2.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/lshiftc-movdqu2.asm
index 8250910c52a..8250910c52a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/lshiftc-movdqu2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/lshiftc-movdqu2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/lshiftc.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/lshiftc.asm
index d2520690e22..d2520690e22 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/lshiftc.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/lshiftc.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/rshift-movdqu2.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/rshift-movdqu2.asm
index 1e270b13c31..1e270b13c31 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/rshift-movdqu2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/rshift-movdqu2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/sec_tabselect.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/sec_tabselect.asm
index e3df110be4e..e3df110be4e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/sec_tabselect.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fastsse/sec_tabselect.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/fat.c b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/fat.c
index 1b3f4e48be8..30cd2104ff5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/fat.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/fat.c
@@ -7,7 +7,7 @@
THEY'RE ALMOST CERTAIN TO BE SUBJECT TO INCOMPATIBLE CHANGES OR DISAPPEAR
COMPLETELY IN FUTURE GNU MP RELEASES.
-Copyright 2003, 2004, 2009, 2011-2014 Free Software Foundation, Inc.
+Copyright 2003, 2004, 2009, 2011-2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -63,15 +63,25 @@ long __gmpn_cpuid (char [12], int);
static struct {
const char *name;
- const char vendor[13];
+ const char *vendor;
unsigned fms;
} fake_cpuid_table[] = {
{ "core2", "GenuineIntel", MAKE_FMS (6, 0xf) },
- { "coreinhm", "GenuineIntel", MAKE_FMS (6, 0x1a) },
- { "coreiwsm", "GenuineIntel", MAKE_FMS (6, 0x25) },
- { "coreisbr", "GenuineIntel", MAKE_FMS (6, 0x2a) },
- { "coreihwl", "GenuineIntel", MAKE_FMS (6, 0x3c) },
+ { "nehalem", "GenuineIntel", MAKE_FMS (6, 0x1a) },
+ { "nhm", "GenuineIntel", MAKE_FMS (6, 0x1a) },
{ "atom", "GenuineIntel", MAKE_FMS (6, 0x1c) },
+ { "westmere", "GenuineIntel", MAKE_FMS (6, 0x25) },
+ { "wsm", "GenuineIntel", MAKE_FMS (6, 0x25) },
+ { "sandybridge","GenuineIntel", MAKE_FMS (6, 0x2a) },
+ { "sbr", "GenuineIntel", MAKE_FMS (6, 0x2a) },
+ { "silvermont", "GenuineIntel", MAKE_FMS (6, 0x37) },
+ { "slm", "GenuineIntel", MAKE_FMS (6, 0x37) },
+ { "haswell", "GenuineIntel", MAKE_FMS (6, 0x3c) },
+ { "hwl", "GenuineIntel", MAKE_FMS (6, 0x3c) },
+ { "broadwell", "GenuineIntel", MAKE_FMS (6, 0x3d) },
+ { "bwl", "GenuineIntel", MAKE_FMS (6, 0x3d) },
+ { "skylake", "GenuineIntel", MAKE_FMS (6, 0x5e) },
+ { "sky", "GenuineIntel", MAKE_FMS (6, 0x5e) },
{ "pentium4", "GenuineIntel", MAKE_FMS (15, 3) },
{ "k8", "AuthenticAMD", MAKE_FMS (15, 0) },
@@ -272,8 +282,13 @@ __gmpn_cpuvec_init (void)
case 0x2c: /* WSM Gulftown */
case 0x2e: /* NHM Beckton */
case 0x2f: /* WSM Eagleton */
- case 0x37: /* Atom Silvermont */
- case 0x4d: /* Atom Silvermont/Avoton */
+ case 0x37: /* Silvermont */
+ case 0x4a: /* Silvermont */
+ case 0x4c: /* Airmont */
+ case 0x4d: /* Silvermont/Avoton */
+ case 0x5a: /* Silvermont */
+ case 0x5c: /* Goldmont */
+ case 0x5f: /* Goldmont */
CPUVEC_SETUP_core2;
CPUVEC_SETUP_coreinhm;
break;
@@ -287,12 +302,9 @@ __gmpn_cpuvec_init (void)
CPUVEC_SETUP_coreisbr;
break;
case 0x3c: /* Haswell client */
- case 0x3d: /* Broadwell */
case 0x3f: /* Haswell server */
case 0x45: /* Haswell ULT */
case 0x46: /* Crystal Well */
- case 0x4f: /* Broadwell server */
- case 0x56: /* Broadwell microserver */
CPUVEC_SETUP_core2;
CPUVEC_SETUP_coreinhm;
CPUVEC_SETUP_coreisbr;
@@ -302,6 +314,28 @@ __gmpn_cpuvec_init (void)
if ((dummy_string[0 + 8 / 8] & (1 << (8 % 8))) != 0)
CPUVEC_SETUP_coreihwl;
break;
+ case 0x3d: /* Broadwell */
+ case 0x47: /* Broadwell */
+ case 0x4f: /* Broadwell server */
+ case 0x56: /* Broadwell microserver */
+ CPUVEC_SETUP_core2;
+ CPUVEC_SETUP_coreinhm;
+ CPUVEC_SETUP_coreisbr;
+ CPUVEC_SETUP_coreihwl;
+ CPUVEC_SETUP_coreibwl;
+ break;
+ case 0x4e: /* Skylake client */
+ case 0x55: /* Skylake server */
+ case 0x5e: /* Skylake */
+ case 0x8e: /* Cabylake */
+ case 0x9e: /* Cabylake */
+ CPUVEC_SETUP_core2;
+ CPUVEC_SETUP_coreinhm;
+ CPUVEC_SETUP_coreisbr;
+ CPUVEC_SETUP_coreihwl;
+ CPUVEC_SETUP_coreibwl;
+ CPUVEC_SETUP_skylake;
+ break;
}
break;
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/fat_entry.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/fat_entry.asm
index 764e3d82f2b..764e3d82f2b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/fat_entry.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/fat_entry.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/gmp-mparam.h
index 005c893635f..005c893635f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/mod_1.c b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/mod_1.c
index 4f149cc353c..4f149cc353c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/mod_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/mod_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/mul_basecase.c b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/mul_basecase.c
index d9eb4718c27..d9eb4718c27 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/mul_basecase.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/mul_basecase.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/mullo_basecase.c b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/mullo_basecase.c
index 7f86be64c52..7f86be64c52 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/mullo_basecase.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/mullo_basecase.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/redc_1.c b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/redc_1.c
index 00254033538..00254033538 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/redc_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/redc_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/redc_2.c b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/redc_2.c
index 1932d583231..1932d583231 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/redc_2.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/redc_2.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/sqr_basecase.c b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/sqr_basecase.c
index d1c5dcd2e03..d1c5dcd2e03 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/sqr_basecase.c
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/fat/sqr_basecase.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/gcd_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/gcd_1.asm
index 252d4174ebf..ac4aceddca2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/gcd_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/gcd_1.asm
@@ -112,6 +112,7 @@ L(bmod):
IFDOS(` mov %rdx, %r8 ')
IFDOS(` mov %rsi, %rdx ')
IFDOS(` mov %rdi, %rcx ')
+ ASSERT(nz, `test $15, %rsp')
CALL( mpn_modexact_1_odd)
L(reduced):
@@ -134,6 +135,7 @@ L(reduce_nby1):
IFDOS(` mov %rdx, %r8 ')
IFDOS(` mov %rsi, %rdx ')
IFDOS(` mov %rdi, %rcx ')
+ ASSERT(nz, `test $15, %rsp')
CALL( mpn_mod_1)
jmp L(reduced)
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86_64/gmp-mparam.h
index 0dea8c94cda..db94fb74347 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/gmp-mparam.h
@@ -215,4 +215,3 @@ see https://www.gnu.org/licenses/. */
#define FAC_DSC_THRESHOLD 1075
#define FAC_ODD_THRESHOLD 0 /* always */
-
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/invert_limb.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/invert_limb.asm
index cc79b89a2b3..cc79b89a2b3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/invert_limb.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/invert_limb.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/invert_limb_table.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/invert_limb_table.asm
index 739d59e46cd..739d59e46cd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/invert_limb_table.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/invert_limb_table.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/gcd_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/gcd_1.asm
index 3d8e5c7ab12..3d8e5c7ab12 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/gcd_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/gcd_1.asm
diff --git a/Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/gmp-mparam.h
new file mode 100644
index 00000000000..c05f1508557
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/gmp-mparam.h
@@ -0,0 +1,237 @@
+/* AMD K10 gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 2000-2012, 2014, 2015 Free Software Foundation,
+Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 64
+#define GMP_LIMB_BYTES 8
+
+#if 0
+#undef mpn_sublsh_n
+#define mpn_sublsh_n(rp,up,vp,n,c) \
+ (((rp) == (up)) ? mpn_submul_1 (rp, vp, n, CNST_LIMB(1) << (c)) \
+ : MPN(mpn_sublsh_n)(rp,up,vp,n,c))
+#endif
+
+/* 3200 MHz K10 Thuban */
+/* FFT tuning limit = 200 M */
+/* Generated by tuneup.c, 2015-10-07, gcc 4.8 */
+
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 4
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 17
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 28
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 8
+#define USE_PREINV_DIVREM_1 1 /* native */
+#define DIV_QR_1_NORM_THRESHOLD 1
+#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 14
+
+#define MUL_TOOM22_THRESHOLD 27
+#define MUL_TOOM33_THRESHOLD 81
+#define MUL_TOOM44_THRESHOLD 232
+#define MUL_TOOM6H_THRESHOLD 369
+#define MUL_TOOM8H_THRESHOLD 462
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 97
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 154
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 145
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 163
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 203
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 34
+#define SQR_TOOM3_THRESHOLD 117
+#define SQR_TOOM4_THRESHOLD 348
+#define SQR_TOOM6_THRESHOLD 552
+#define SQR_TOOM8_THRESHOLD 0 /* always */
+
+#define MULMID_TOOM42_THRESHOLD 34
+
+#define MULMOD_BNM1_THRESHOLD 15
+#define SQRMOD_BNM1_THRESHOLD 17
+
+#define MUL_FFT_MODF_THRESHOLD 565 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 565, 5}, { 23, 6}, { 12, 5}, { 25, 6}, \
+ { 27, 7}, { 14, 6}, { 29, 7}, { 15, 6}, \
+ { 31, 7}, { 25, 8}, { 13, 7}, { 28, 8}, \
+ { 15, 7}, { 31, 8}, { 17, 7}, { 35, 8}, \
+ { 19, 7}, { 39, 8}, { 21, 7}, { 43, 8}, \
+ { 23, 7}, { 47, 8}, { 25, 7}, { 51, 8}, \
+ { 29, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
+ { 43, 9}, { 23, 8}, { 51, 9}, { 27, 8}, \
+ { 55,10}, { 15, 9}, { 31, 8}, { 63, 9}, \
+ { 43,10}, { 23, 9}, { 59,11}, { 15,10}, \
+ { 31, 9}, { 67,10}, { 39, 9}, { 83,10}, \
+ { 47, 9}, { 95,10}, { 55,11}, { 31,10}, \
+ { 79,11}, { 47,10}, { 103,12}, { 31,11}, \
+ { 63,10}, { 135,11}, { 79,10}, { 167,11}, \
+ { 95,10}, { 191,11}, { 111,12}, { 63,11}, \
+ { 143,10}, { 287,11}, { 159,12}, { 95,11}, \
+ { 191,10}, { 383,11}, { 207,13}, { 63,12}, \
+ { 127,11}, { 255,10}, { 511,11}, { 271,10}, \
+ { 543,11}, { 287,12}, { 159,11}, { 319,10}, \
+ { 639,11}, { 335,10}, { 671,11}, { 351,10}, \
+ { 703,12}, { 191,11}, { 383,10}, { 767,11}, \
+ { 415,12}, { 223,11}, { 447,13}, { 127,12}, \
+ { 255,11}, { 543,12}, { 287,11}, { 607,12}, \
+ { 319,11}, { 671,12}, { 351,11}, { 703,13}, \
+ { 191,12}, { 383,11}, { 767,12}, { 415,11}, \
+ { 831,12}, { 447,14}, { 127,13}, { 255,12}, \
+ { 543,11}, { 1087,12}, { 607,11}, { 1215,13}, \
+ { 319,12}, { 671,11}, { 1343,12}, { 735,13}, \
+ { 383,12}, { 799,11}, { 1599,12}, { 831,13}, \
+ { 447,12}, { 959,13}, { 511,12}, { 1087,13}, \
+ { 575,12}, { 1215,13}, { 639,12}, { 1343,13}, \
+ { 703,12}, { 1407,14}, { 383,13}, { 767,12}, \
+ { 1599,13}, { 831,12}, { 1663,13}, { 895,12}, \
+ { 1791,13}, { 959,14}, { 511,13}, { 1087,12}, \
+ { 2175,13}, { 1215,14}, { 639,13}, { 1471,14}, \
+ { 767,13}, { 1663,14}, { 895,13}, { 1791,15}, \
+ { 511,14}, { 1023,13}, { 2175,14}, { 1151,13}, \
+ { 2431,14}, { 1279,13}, { 2559,14}, { 1407,15}, \
+ { 767,14}, { 1791,16}, { 511,15}, { 1023,14}, \
+ { 2175,13}, { 4351,14}, { 2431,15}, { 1279,14}, \
+ { 2687,13}, { 5375,14}, { 2815,15}, { 1535,14}, \
+ { 3199,15}, { 1791,14}, { 3583,16}, { 1023,15}, \
+ { 2047,14}, { 4351,15}, { 2303,14}, { 4991,15}, \
+ { 2559,14}, { 5247,16}, { 1535,15}, { 3071,14}, \
+ { 6399,15}, { 3327,14}, { 6911,15}, { 3583,17}, \
+ { 1023,16}, { 2047,15}, { 4351,14}, { 8959,15}, \
+ { 4863,16}, { 2559,15}, { 5375,14}, { 10751,15}, \
+ { 5887,14}, { 11775,16}, { 65536,17}, { 131072,18}, \
+ { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
+ {4194304,23}, {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 198
+#define MUL_FFT_THRESHOLD 7552
+
+#define SQR_FFT_MODF_THRESHOLD 440 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 440, 5}, { 23, 6}, { 12, 5}, { 25, 6}, \
+ { 27, 7}, { 14, 6}, { 29, 7}, { 15, 6}, \
+ { 31, 7}, { 29, 8}, { 15, 7}, { 32, 8}, \
+ { 17, 7}, { 35, 8}, { 19, 7}, { 39, 8}, \
+ { 21, 7}, { 43, 8}, { 29, 9}, { 15, 8}, \
+ { 35, 9}, { 19, 8}, { 43, 9}, { 23, 8}, \
+ { 51, 9}, { 27, 8}, { 55,10}, { 15, 9}, \
+ { 31, 8}, { 63, 9}, { 43,10}, { 23, 9}, \
+ { 55,11}, { 15,10}, { 31, 9}, { 67,10}, \
+ { 39, 9}, { 83,10}, { 47, 9}, { 95,10}, \
+ { 55,11}, { 31,10}, { 79,11}, { 47,10}, \
+ { 103,12}, { 31,11}, { 63,10}, { 135,11}, \
+ { 79,10}, { 159,11}, { 111,12}, { 63,11}, \
+ { 127,10}, { 255,11}, { 143,10}, { 287,11}, \
+ { 159,12}, { 95,11}, { 191,10}, { 383, 9}, \
+ { 767,10}, { 399,11}, { 207,13}, { 63,12}, \
+ { 127,11}, { 255,10}, { 511,11}, { 271,10}, \
+ { 543,11}, { 287,10}, { 575,12}, { 159,11}, \
+ { 319,10}, { 639,11}, { 335,10}, { 671,11}, \
+ { 351,10}, { 703,11}, { 367,12}, { 191,11}, \
+ { 383,10}, { 767,11}, { 399,10}, { 799,11}, \
+ { 415,12}, { 223,11}, { 447,13}, { 127,12}, \
+ { 255,11}, { 543,12}, { 287,11}, { 607,12}, \
+ { 319,11}, { 639,10}, { 1279,11}, { 671,12}, \
+ { 351,11}, { 703,13}, { 191,12}, { 383,11}, \
+ { 767,10}, { 1535,11}, { 799,12}, { 415,11}, \
+ { 831,12}, { 447,14}, { 127,13}, { 255,12}, \
+ { 511,11}, { 1023,12}, { 543,11}, { 1087,12}, \
+ { 575,11}, { 1151,12}, { 607,13}, { 319,12}, \
+ { 639,11}, { 1279,12}, { 671,11}, { 1343,12}, \
+ { 735,13}, { 383,12}, { 831,13}, { 447,12}, \
+ { 959,14}, { 255,13}, { 511,12}, { 1087,13}, \
+ { 575,12}, { 1215,13}, { 639,12}, { 1343,13}, \
+ { 703,12}, { 1407,14}, { 383,13}, { 767,12}, \
+ { 1599,13}, { 831,12}, { 1663,13}, { 895,12}, \
+ { 1791,13}, { 959,15}, { 255,14}, { 511,13}, \
+ { 1087,12}, { 2175,13}, { 1215,14}, { 639,13}, \
+ { 1407,14}, { 767,13}, { 1663,14}, { 895,13}, \
+ { 1791,15}, { 511,14}, { 1023,13}, { 2175,14}, \
+ { 1151,13}, { 2303,14}, { 1279,13}, { 2559,14}, \
+ { 1407,15}, { 767,14}, { 1791,16}, { 511,15}, \
+ { 1023,14}, { 2303,15}, { 1279,14}, { 2687,15}, \
+ { 1535,14}, { 3199,15}, { 1791,16}, { 1023,15}, \
+ { 2047,14}, { 4351,15}, { 2303,14}, { 4863,15}, \
+ { 2559,14}, { 5247,16}, { 1535,15}, { 3071,14}, \
+ { 6399,15}, { 3327,14}, { 6911,17}, { 1023,16}, \
+ { 2047,15}, { 4351,14}, { 8959,15}, { 4863,16}, \
+ { 2559,15}, { 5375,14}, { 10751,15}, { 5887,14}, \
+ { 11775,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
+ { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
+ {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 201
+#define SQR_FFT_THRESHOLD 5568
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 60
+#define MULLO_MUL_N_THRESHOLD 14281
+#define SQRLO_BASECASE_THRESHOLD 8
+#define SQRLO_DC_THRESHOLD 0 /* never mpn_sqrlo_basecase */
+#define SQRLO_SQR_THRESHOLD 10950
+
+#define DC_DIV_QR_THRESHOLD 56
+#define DC_DIVAPPR_Q_THRESHOLD 240
+#define DC_BDIV_QR_THRESHOLD 54
+#define DC_BDIV_Q_THRESHOLD 44
+
+#define INV_MULMOD_BNM1_THRESHOLD 54
+#define INV_NEWTON_THRESHOLD 226
+#define INV_APPR_THRESHOLD 218
+
+#define BINV_NEWTON_THRESHOLD 324
+#define REDC_1_TO_REDC_2_THRESHOLD 25
+#define REDC_2_TO_REDC_N_THRESHOLD 71
+
+#define MU_DIV_QR_THRESHOLD 1718
+#define MU_DIVAPPR_Q_THRESHOLD 1652
+#define MUPI_DIV_QR_THRESHOLD 102
+#define MU_BDIV_QR_THRESHOLD 1528
+#define MU_BDIV_Q_THRESHOLD 1589
+
+#define POWM_SEC_TABLE 1,22,194,579,1297
+
+#define GET_STR_DC_THRESHOLD 19
+#define GET_STR_PRECOMPUTE_THRESHOLD 27
+#define SET_STR_DC_THRESHOLD 248
+#define SET_STR_PRECOMPUTE_THRESHOLD 1616
+
+#define FAC_DSC_THRESHOLD 739
+#define FAC_ODD_THRESHOLD 0 /* always */
+
+#define MATRIX22_STRASSEN_THRESHOLD 18
+#define HGCD_THRESHOLD 135
+#define HGCD_APPR_THRESHOLD 50
+#define HGCD_REDUCE_THRESHOLD 3014
+#define GCD_DC_THRESHOLD 555
+#define GCDEXT_DC_THRESHOLD 469
+#define JACOBI_BASE_METHOD 4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/hamdist.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/hamdist.asm
index 44b67b5e4e6..44b67b5e4e6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/hamdist.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/hamdist.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/lshift.asm
index a1cbc31f61b..a1cbc31f61b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/lshiftc.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/lshiftc.asm
index ac90edb76b0..ac90edb76b0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/lshiftc.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/lshiftc.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/popcount.asm
index 3814aeabf49..3814aeabf49 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/popcount.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/rshift.asm
index 4c1c0d4cde0..4c1c0d4cde0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/sec_tabselect.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/sec_tabselect.asm
index e4360341d93..e4360341d93 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/sec_tabselect.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k10/sec_tabselect.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/aorrlsh_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/aorrlsh_n.asm
index ff3a1842fd0..ff3a1842fd0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/aorrlsh_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/aorrlsh_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/div_qr_1n_pi1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/div_qr_1n_pi1.asm
index 861402b2229..861402b2229 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/div_qr_1n_pi1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/div_qr_1n_pi1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/gmp-mparam.h
index df78c389234..df78c389234 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/mul_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/mul_basecase.asm
index ca2efb9b2f0..ca2efb9b2f0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/mul_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/mul_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/mullo_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/mullo_basecase.asm
index fa00f4234a3..fa00f4234a3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/mullo_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/mullo_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/mulmid_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/mulmid_basecase.asm
index 86f1414ed85..86f1414ed85 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/mulmid_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/mulmid_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/redc_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/redc_1.asm
index 74538986f93..9327b21b157 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/redc_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/redc_1.asm
@@ -114,7 +114,7 @@ ifdef(`PIC',`
JUMPTABSECT
ALIGN(8)
-L(tab): JMPENT( L(0m4), L(tab))
+L(tab): JMPENT( L(0), L(tab))
JMPENT( L(1), L(tab))
JMPENT( L(2), L(tab))
JMPENT( L(3), L(tab))
@@ -397,6 +397,7 @@ L(le1): add %r10, (up)
ALIGN(16)
+L(0):
L(0m4):
L(lo0): mov (mp,nneg,8), %rax
mov nneg, i
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/sqr_basecase.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/sqr_basecase.asm
index 60cf945a465..60cf945a465 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/sqr_basecase.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/k8/sqr_basecase.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/logops_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/logops_n.asm
index b277f589624..b277f589624 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/logops_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/logops_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/lshift.asm
index f368944b85d..f368944b85d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/lshiftc.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/lshiftc.asm
index c4ba04a1738..c4ba04a1738 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/lshiftc.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/lshiftc.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/lshsub_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/lshsub_n.asm
index 4d428c0bd25..4d428c0bd25 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/lshsub_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/lshsub_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/missing-call.m4 b/Build/source/libs/gmp/gmp-src/mpn/x86_64/missing-call.m4
index c024f0ed77c..c024f0ed77c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/missing-call.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/missing-call.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/missing-inline.m4 b/Build/source/libs/gmp/gmp-src/mpn/x86_64/missing-inline.m4
index bd1df1313fe..bd1df1313fe 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/missing-inline.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/missing-inline.m4
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/missing.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/missing.asm
index 9b65c89dd4b..9b65c89dd4b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/missing.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/missing.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mod_1_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mod_1_1.asm
index 4a7c45a58b4..09b5dd1e1a1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mod_1_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mod_1_1.asm
@@ -2,7 +2,7 @@ dnl AMD64 mpn_mod_1_1p
dnl Contributed to the GNU project by Torbjörn Granlund and Niels Möller.
-dnl Copyright 2009-2012 Free Software Foundation, Inc.
+dnl Copyright 2009-2012, 2014 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -198,6 +198,7 @@ PROLOGUE(mpn_mod_1_1p_cps)
sal R8(%rcx), %r12
IFSTD(` mov %r12, %rdi ') C pass parameter
IFDOS(` mov %r12, %rcx ') C pass parameter
+ ASSERT(nz, `test $15, %rsp')
CALL( mpn_invert_limb)
neg %r12
mov %r12, %r8
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mod_1_2.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mod_1_2.asm
index 02dd9177919..09d856e6e6b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mod_1_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mod_1_2.asm
@@ -2,7 +2,7 @@ dnl AMD64 mpn_mod_1s_2p
dnl Contributed to the GNU project by Torbjorn Granlund.
-dnl Copyright 2009-2012 Free Software Foundation, Inc.
+dnl Copyright 2009-2012, 2014 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -183,6 +183,7 @@ PROLOGUE(mpn_mod_1s_2p_cps)
sal R8(%rcx), %r12 C b << cnt
IFSTD(` mov %r12, %rdi ') C pass parameter
IFDOS(` mov %r12, %rcx ') C pass parameter
+ ASSERT(nz, `test $15, %rsp')
CALL( mpn_invert_limb)
mov %r12, %r8
mov %rax, %r11
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mod_1_4.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mod_1_4.asm
index 3ce83dc42ed..ae34617c7f2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mod_1_4.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mod_1_4.asm
@@ -2,7 +2,7 @@ dnl AMD64 mpn_mod_1s_4p
dnl Contributed to the GNU project by Torbjorn Granlund.
-dnl Copyright 2009-2012 Free Software Foundation, Inc.
+dnl Copyright 2009-2012, 2014 Free Software Foundation, Inc.
dnl This file is part of the GNU MP Library.
dnl
@@ -190,6 +190,7 @@ PROLOGUE(mpn_mod_1s_4p_cps)
sal R8(%rcx), %r12 C b << cnt
IFSTD(` mov %r12, %rdi ') C pass parameter
IFDOS(` mov %r12, %rcx ') C pass parameter
+ ASSERT(nz, `test $15, %rsp')
CALL( mpn_invert_limb)
mov %r12, %r8
mov %rax, %r11
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mod_34lsub1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mod_34lsub1.asm
index 62bdcfac690..62bdcfac690 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mod_34lsub1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mod_34lsub1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mode1o.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mode1o.asm
index 2cd2b088481..2cd2b088481 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mode1o.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mode1o.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mul_1.asm
index b032afc9ddb..b032afc9ddb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mul_2.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mul_2.asm
index f408c52250e..f408c52250e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mul_2.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mul_2.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mulx/adx/addmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mulx/adx/addmul_1.asm
index ea607899a4c..ea607899a4c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mulx/adx/addmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mulx/adx/addmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mulx/aorsmul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mulx/aorsmul_1.asm
index 285c07335e8..285c07335e8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mulx/aorsmul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mulx/aorsmul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mulx/mul_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mulx/mul_1.asm
index 34a044dcdcc..34a044dcdcc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mulx/mul_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/mulx/mul_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/copyd.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/nano/copyd.asm
index f0dc54a55e7..f0dc54a55e7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/copyd.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/nano/copyd.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/copyi.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/nano/copyi.asm
index 9c26e00c522..9c26e00c522 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/copyi.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/nano/copyi.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/dive_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/nano/dive_1.asm
index e9a07631c4b..e9a07631c4b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/dive_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/nano/dive_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/gcd_1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/nano/gcd_1.asm
index 3d8e5c7ab12..3d8e5c7ab12 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/gcd_1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/nano/gcd_1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86_64/nano/gmp-mparam.h
index fde69dbb7fc..fde69dbb7fc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/nano/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/nano/popcount.asm
index fb14dd3d318..fb14dd3d318 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/nano/popcount.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/aors_n.asm
index 8e6ee1bae6b..8e6ee1bae6b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/aorslsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/aorslsh1_n.asm
index 66937d32678..66937d32678 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/aorslsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/aorslsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/aorslsh2_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/aorslsh2_n.asm
index 001f0ac5bfa..001f0ac5bfa 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/aorslsh2_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/aorslsh2_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/aorslshC_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/aorslshC_n.asm
index d03c6a3f305..d03c6a3f305 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/aorslshC_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/aorslshC_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/gmp-mparam.h
index 2171e230a5c..2171e230a5c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/gmp-mparam.h
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/gmp-mparam.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/lshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/lshift.asm
index d3b521364ff..d3b521364ff 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/lshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/lshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/lshiftc.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/lshiftc.asm
index fc64676574e..fc64676574e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/lshiftc.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/lshiftc.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/mod_34lsub1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/mod_34lsub1.asm
index f34b3f079ab..f34b3f079ab 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/mod_34lsub1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/mod_34lsub1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/popcount.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/popcount.asm
index 7014b39de56..7014b39de56 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/popcount.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/popcount.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/rsh1aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/rsh1aors_n.asm
index 5528ce47dae..5528ce47dae 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/rsh1aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/rsh1aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/rshift.asm
index b7c1ee2cdd4..b7c1ee2cdd4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/sec_tabselect.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/sec_tabselect.asm
index e4360341d93..e4360341d93 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/sec_tabselect.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/pentium4/sec_tabselect.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/popham.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/popham.asm
index 9005f817762..9005f817762 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/popham.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/popham.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/rsh1aors_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/rsh1aors_n.asm
index a3e9cc5d239..a3e9cc5d239 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/rsh1aors_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/rsh1aors_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/rshift.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/rshift.asm
index 3f344f1dfc0..3f344f1dfc0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/rshift.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/rshift.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/sec_tabselect.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/sec_tabselect.asm
index e8aed261ef3..e8aed261ef3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/sec_tabselect.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/sec_tabselect.asm
diff --git a/Build/source/libs/gmp/gmp-src/mpn/x86_64/skylake/gmp-mparam.h b/Build/source/libs/gmp/gmp-src/mpn/x86_64/skylake/gmp-mparam.h
new file mode 100644
index 00000000000..6995cf25cf7
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/skylake/gmp-mparam.h
@@ -0,0 +1,230 @@
+/* Skylake gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 2000-2015 Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+or
+
+ * the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+or both in parallel, as here.
+
+The GNU MP Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received copies of the GNU General Public License and the
+GNU Lesser General Public License along with the GNU MP Library. If not,
+see https://www.gnu.org/licenses/. */
+
+#define GMP_LIMB_BITS 64
+#define GMP_LIMB_BYTES 8
+
+/* Disable use of slow functions. FIXME: We should disable lib inclusion. */
+#undef HAVE_NATIVE_mpn_mul_2
+#undef HAVE_NATIVE_mpn_addmul_2
+
+/* 3500 MHz i5-6600K Skylake */
+/* FFT tuning limit = 300 M */
+/* Generated by tuneup.c, 2015-10-10, gcc 5.2 */
+
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 4
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 13
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 34
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 9
+#define USE_PREINV_DIVREM_1 1 /* native */
+#define DIV_QR_1_NORM_THRESHOLD 1
+#define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 21
+
+#define MUL_TOOM22_THRESHOLD 26
+#define MUL_TOOM33_THRESHOLD 73
+#define MUL_TOOM44_THRESHOLD 208
+#define MUL_TOOM6H_THRESHOLD 366
+#define MUL_TOOM8H_THRESHOLD 430
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 73
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 162
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 137
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 151
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 203
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 34
+#define SQR_TOOM3_THRESHOLD 109
+#define SQR_TOOM4_THRESHOLD 450
+#define SQR_TOOM6_THRESHOLD 562
+#define SQR_TOOM8_THRESHOLD 0 /* always */
+
+#define MULMID_TOOM42_THRESHOLD 46
+
+#define MULMOD_BNM1_THRESHOLD 15
+#define SQRMOD_BNM1_THRESHOLD 17
+
+#define MUL_FFT_MODF_THRESHOLD 404 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 404, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
+ { 25, 7}, { 13, 6}, { 28, 7}, { 25, 8}, \
+ { 13, 7}, { 28, 8}, { 15, 7}, { 32, 8}, \
+ { 17, 7}, { 35, 8}, { 19, 7}, { 39, 8}, \
+ { 21, 9}, { 11, 8}, { 23, 7}, { 47, 8}, \
+ { 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
+ { 41, 9}, { 23, 8}, { 49, 9}, { 27,10}, \
+ { 15, 9}, { 43,10}, { 23, 9}, { 51,11}, \
+ { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
+ { 83,10}, { 47, 9}, { 99,10}, { 55,11}, \
+ { 31,10}, { 79,11}, { 47,10}, { 95,12}, \
+ { 31,11}, { 63,10}, { 127, 6}, { 2047, 5}, \
+ { 4223, 6}, { 2175, 5}, { 4351, 7}, { 1215, 8}, \
+ { 639, 9}, { 335, 7}, { 1343, 8}, { 703,11}, \
+ { 95,10}, { 191, 9}, { 383, 8}, { 799,11}, \
+ { 111,12}, { 63,11}, { 127,10}, { 255, 9}, \
+ { 543,11}, { 143, 9}, { 607,11}, { 159, 9}, \
+ { 639,12}, { 95,10}, { 383, 9}, { 767,10}, \
+ { 415,13}, { 63,11}, { 255,10}, { 543,11}, \
+ { 287,10}, { 575,11}, { 303,12}, { 159,11}, \
+ { 319,10}, { 639,11}, { 335,10}, { 671,11}, \
+ { 351,10}, { 703,11}, { 415,10}, { 831,12}, \
+ { 223,11}, { 447,13}, { 127,11}, { 543,10}, \
+ { 1087,11}, { 607,12}, { 319,11}, { 671,12}, \
+ { 351,11}, { 703,12}, { 383,11}, { 767,12}, \
+ { 415,11}, { 831,12}, { 479,14}, { 127,12}, \
+ { 607,13}, { 319,12}, { 703,13}, { 383,12}, \
+ { 831,13}, { 447,12}, { 959,13}, { 511,12}, \
+ { 1087,13}, { 575,12}, { 1151,13}, { 639,12}, \
+ { 1279,13}, { 703,14}, { 383,13}, { 767,12}, \
+ { 1535,13}, { 831,12}, { 1727,13}, { 959,14}, \
+ { 511,13}, { 1087,12}, { 2175,13}, { 1151,14}, \
+ { 639,13}, { 1343,12}, { 2687,13}, { 1407,12}, \
+ { 2815,14}, { 767,13}, { 1599,12}, { 3199,13}, \
+ { 1727,14}, { 895,15}, { 511,14}, { 1023,13}, \
+ { 2175,14}, { 1151,13}, { 2431,12}, { 4863,14}, \
+ { 1279,13}, { 2687,14}, { 1407,13}, { 2815,15}, \
+ { 767,14}, { 1535,13}, { 3199,14}, { 1663,13}, \
+ { 3455,12}, { 6911,14}, { 1791,16}, { 511,15}, \
+ { 1023,14}, { 2175,13}, { 4351,14}, { 2431,13}, \
+ { 4863,15}, { 1279,14}, { 2943,13}, { 5887,15}, \
+ { 1535,14}, { 3455,15}, { 1791,14}, { 3839,16}, \
+ { 1023,15}, { 2047,14}, { 4351,15}, { 2303,14}, \
+ { 4863,15}, { 2559,14}, { 5247,15}, { 2815,14}, \
+ { 5887,16}, { 1535,15}, { 3327,14}, { 6911,15}, \
+ { 3839,17}, { 1023,16}, { 2047,15}, { 4863,16}, \
+ { 2559,15}, { 5887,14}, { 11775,16}, { 3071,15}, \
+ { 6911,16}, { 3583,15}, { 7679,14}, { 15359,17}, \
+ { 2047,16}, { 4095,15}, { 8191,16}, { 65536,17}, \
+ { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
+ {2097152,22}, {4194304,23}, {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 203
+#define MUL_FFT_THRESHOLD 4736
+
+#define SQR_FFT_MODF_THRESHOLD 368 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 368, 5}, { 23, 6}, { 25, 7}, { 13, 6}, \
+ { 27, 7}, { 25, 8}, { 13, 7}, { 28, 8}, \
+ { 15, 7}, { 31, 8}, { 21, 9}, { 11, 8}, \
+ { 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
+ { 39, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
+ { 15, 9}, { 39,10}, { 23, 9}, { 51,11}, \
+ { 15,10}, { 31, 9}, { 67,10}, { 47, 9}, \
+ { 95,10}, { 55,11}, { 31,10}, { 79,11}, \
+ { 47,10}, { 95,12}, { 31,11}, { 63,10}, \
+ { 127, 9}, { 255,10}, { 135,11}, { 79,10}, \
+ { 159, 9}, { 319,11}, { 95,10}, { 191, 6}, \
+ { 3199, 7}, { 1727, 8}, { 895, 9}, { 479,10}, \
+ { 255, 8}, { 1023, 9}, { 543,10}, { 287, 9}, \
+ { 575, 8}, { 1151, 9}, { 607,11}, { 159, 9}, \
+ { 671,12}, { 95,11}, { 191, 9}, { 767,11}, \
+ { 207,13}, { 63,11}, { 255,10}, { 511, 9}, \
+ { 1023,10}, { 543, 9}, { 1087,10}, { 671,11}, \
+ { 351,10}, { 735,11}, { 383,10}, { 767,11}, \
+ { 415,10}, { 831,12}, { 223,11}, { 447,10}, \
+ { 895,11}, { 479,13}, { 127,12}, { 255,11}, \
+ { 607,12}, { 319,11}, { 735,12}, { 383,11}, \
+ { 767,12}, { 415,11}, { 831,12}, { 479,14}, \
+ { 127,12}, { 735,13}, { 383,12}, { 831,13}, \
+ { 447,12}, { 959,13}, { 511,12}, { 1023,13}, \
+ { 575,12}, { 1151,13}, { 639,12}, { 1279,13}, \
+ { 703,14}, { 383,13}, { 767,12}, { 1535,13}, \
+ { 831,12}, { 1663,13}, { 959,14}, { 511,13}, \
+ { 1087,12}, { 2175,13}, { 1151,14}, { 639,13}, \
+ { 1343,12}, { 2687,13}, { 1471,14}, { 767,13}, \
+ { 1599,12}, { 3199,13}, { 1663,14}, { 895,15}, \
+ { 511,14}, { 1023,13}, { 2175,14}, { 1151,13}, \
+ { 2431,12}, { 4863,14}, { 1279,13}, { 2687,14}, \
+ { 1407,15}, { 767,14}, { 1535,13}, { 3199,14}, \
+ { 1663,13}, { 3455,12}, { 6911,16}, { 511,15}, \
+ { 1023,14}, { 2303,13}, { 4607,14}, { 2431,13}, \
+ { 4863,15}, { 1279,14}, { 2943,13}, { 5887,15}, \
+ { 1535,14}, { 3455,13}, { 6911,15}, { 1791,14}, \
+ { 3839,16}, { 1023,15}, { 2047,14}, { 4351,15}, \
+ { 2303,14}, { 4863,15}, { 2559,14}, { 5119,15}, \
+ { 2815,14}, { 5887,16}, { 1535,15}, { 3071,14}, \
+ { 6143,15}, { 3327,14}, { 6911,15}, { 3839,17}, \
+ { 1023,16}, { 2047,15}, { 4863,16}, { 2559,15}, \
+ { 5887,14}, { 11775,16}, { 3071,15}, { 6911,16}, \
+ { 3583,15}, { 7679,14}, { 15359,17}, { 2047,16}, \
+ { 4095,15}, { 8191,16}, { 65536,17}, { 131072,18}, \
+ { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
+ {4194304,23}, {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 186
+#define SQR_FFT_THRESHOLD 3712
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 27
+#define MULLO_MUL_N_THRESHOLD 9174
+#define SQRLO_BASECASE_THRESHOLD 8
+#define SQRLO_DC_THRESHOLD 132
+#define SQRLO_SQR_THRESHOLD 7269
+
+#define DC_DIV_QR_THRESHOLD 52
+#define DC_DIVAPPR_Q_THRESHOLD 173
+#define DC_BDIV_QR_THRESHOLD 87
+#define DC_BDIV_Q_THRESHOLD 156
+
+#define INV_MULMOD_BNM1_THRESHOLD 50
+#define INV_NEWTON_THRESHOLD 165
+#define INV_APPR_THRESHOLD 165
+
+#define BINV_NEWTON_THRESHOLD 294
+#define REDC_1_TO_REDC_2_THRESHOLD 30
+#define REDC_2_TO_REDC_N_THRESHOLD 75
+
+#define MU_DIV_QR_THRESHOLD 1620
+#define MU_DIVAPPR_Q_THRESHOLD 1620
+#define MUPI_DIV_QR_THRESHOLD 62
+#define MU_BDIV_QR_THRESHOLD 1589
+#define MU_BDIV_Q_THRESHOLD 1718
+
+#define POWM_SEC_TABLE 1,9,194,960,1133,1730
+
+#define GET_STR_DC_THRESHOLD 10
+#define GET_STR_PRECOMPUTE_THRESHOLD 17
+#define SET_STR_DC_THRESHOLD 1065
+#define SET_STR_PRECOMPUTE_THRESHOLD 2024
+
+#define FAC_DSC_THRESHOLD 767
+#define FAC_ODD_THRESHOLD 0 /* always */
+
+#define MATRIX22_STRASSEN_THRESHOLD 15
+#define HGCD_THRESHOLD 71
+#define HGCD_APPR_THRESHOLD 55
+#define HGCD_REDUCE_THRESHOLD 3014
+#define GCD_DC_THRESHOLD 706
+#define GCDEXT_DC_THRESHOLD 393
+#define JACOBI_BASE_METHOD 3
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/sqr_diag_addlsh1.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/sqr_diag_addlsh1.asm
index 4ad034c855d..4ad034c855d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/sqr_diag_addlsh1.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/sqr_diag_addlsh1.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/sublsh1_n.asm b/Build/source/libs/gmp/gmp-src/mpn/x86_64/sublsh1_n.asm
index c6d829fcb2d..c6d829fcb2d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/sublsh1_n.asm
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/sublsh1_n.asm
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/x86_64-defs.m4 b/Build/source/libs/gmp/gmp-src/mpn/x86_64/x86_64-defs.m4
index 366598b41de..a626419bb81 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/x86_64-defs.m4
+++ b/Build/source/libs/gmp/gmp-src/mpn/x86_64/x86_64-defs.m4
@@ -127,7 +127,7 @@ m4_assert_defined(`WANT_ASSERT')
`ifelse(`$2',,,
` pushfq')
$2
- j`$1' L(ASSERT_ok`'ASSERT_counter)
+ `j$1' L(ASSERT_ok`'ASSERT_counter)
ud2 C assertion failed
L(ASSERT_ok`'ASSERT_counter):
ifelse(`$2',,,` popfq')
@@ -207,9 +207,9 @@ dnl Usage: JMPENT(targlabel,tablabel)
define(`JMPENT',`dnl
ifdef(`PIC',
- `.long $1-$2'
+ `.long $1-$2'dnl
,
- `.quad $1'
+ `.quad $1'dnl
)')
@@ -311,7 +311,7 @@ define(`oplist',
`(%rax)',16, `(%rcx)',17, `(%rdx)',18, `(%rbx)',19,
`(%rsp)',20, `(%rbp)',21, `(%rsi)',22, `(%rdi)',23,
`(%r8)', 24, `(%r9)', 25, `(%r10)',26, `(%r11)',27,
- `(%r12)',28, `(%r13)',29, `(%r14)',30, `(%r15)' 31')
+ `(%r12)',28, `(%r13)',29, `(%r14)',30, `(%r15)',31')
dnl Usage
@@ -336,19 +336,67 @@ dnl Other addressing forms are not handled. Invalid forms are not properly
dnl detected. Offsets that don't fit one byte are not handled correctly.
define(`mulx',`dnl
-ifelse($#,3,
-`.byte 0xc4`'dnl
-,0x`'eval(0xe2^32*regnumh($1)^128*regnumh($3),16)`'dnl
-,0x`'eval(0xfb-8*regnum($2),16)`'dnl
+.byte 0xc4`'dnl
+ifelse(`$#',3,`dnl
+,eval(0xe2^32*regnumh($1)^128*regnumh($3))`'dnl
+,eval(0xfb-8*regnum($2))`'dnl
,0xf6`'dnl
-,0x`'eval(0xc0+(7 & regnum($1))+8*(7 & regnum($3))-0xc0*ix($1),16)`'dnl
-',$#,4,
-`.byte 0xc4`'dnl
-,0x`'eval(0xe2^32*regnumh($2)^128*regnumh($4),16)`'dnl
-,0x`'eval(0xfb-8*regnum($3),16)`'dnl
+,eval(0xc0+(7 & regnum($1))+8*(7 & regnum($3))-0xc0*ix($1))`'dnl
+',`$#',4,`dnl
+,eval(0xe2^32*regnumh($2)^128*regnumh($4))`'dnl
+,eval(0xfb-8*regnum($3))`'dnl
,0xf6`'dnl
-,0x`'eval(0x40+(7 & regnum($2))+8*(7 & regnum($4)),16)`'dnl
-,0x`'eval(($1 + 256) % 256,16)`'dnl
+,eval(0x40+(7 & regnum($2))+8*(7 & regnum($4)))`'dnl
+,eval(($1 + 256) % 256)`'dnl
')')
+dnl Usage
+dnl
+dnl adcx(reg1,reg2)
+dnl adox(reg1,reg2)
+dnl
+dnl or
+dnl
+dnl adcx((reg1),reg2)
+dnl adox((reg1),reg2)
+dnl
+dnl where reg1 is any register but rsp,rbp,r12,r13, or
+dnl
+dnl adcx(off,(reg1),reg2)
+dnl adox(off,(reg1),reg2)
+dnl
+dnl where reg1 is any register but rsp,r12.
+dnl
+dnl The exceptions are due to special coding needed for some registers; rsp
+dnl and r12 need an extra byte 0x24 at the end while rbp and r13 lack the
+dnl offset-less form.
+dnl
+dnl Other addressing forms are not handled. Invalid forms are not properly
+dnl detected. Offsets that don't fit one byte are not handled correctly.
+
+define(`adx_helper',`dnl
+,eval(0x48+regnumh($1)+4*regnumh($2))`'dnl
+,0x0f`'dnl
+,0x38`'dnl
+,0xf6`'dnl
+')
+
+define(`adx',`dnl
+ifelse(`$#',2,`dnl
+adx_helper($1,$2)dnl
+,eval(0xc0+(7 & regnum($1))+8*(7 & regnum($2))-0xc0*ix($1))`'dnl
+',`$#',3,`dnl
+adx_helper($2,$3)dnl
+,eval(0x40+(7 & regnum($2))+8*(7 & regnum($3)))`'dnl
+,eval(($1 + 256) % 256)`'dnl
+')')
+
+define(`adcx',`dnl
+.byte 0x66`'dnl
+adx($@)')
+
+define(`adox',`dnl
+.byte 0xf3`'dnl
+adx($@)')
+
divert`'dnl
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/Makefile.am b/Build/source/libs/gmp/gmp-src/mpq/Makefile.am
index 406aa9f8dc6..6d65774f895 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/Makefile.am
+++ b/Build/source/libs/gmp/gmp-src/mpq/Makefile.am
@@ -29,7 +29,7 @@
# see https://www.gnu.org/licenses/.
-INCLUDES = -D__GMP_WITHIN_GMP -I$(top_srcdir)
+AM_CPPFLAGS = -D__GMP_WITHIN_GMP -I$(top_srcdir)
noinst_LTLIBRARIES = libmpq.la
libmpq_la_SOURCES = \
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/abs.c b/Build/source/libs/gmp/gmp-src/mpq/abs.c
index 7fe04a35bb6..7fe04a35bb6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/abs.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/abs.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/aors.c b/Build/source/libs/gmp/gmp-src/mpq/aors.c
index 81edc1fa398..81edc1fa398 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/aors.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/aors.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/canonicalize.c b/Build/source/libs/gmp/gmp-src/mpq/canonicalize.c
index 882f408fb83..7c8e01b85a1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/canonicalize.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/canonicalize.c
@@ -1,7 +1,7 @@
/* mpq_canonicalize(op) -- Remove common factors of the denominator and
numerator in OP.
-Copyright 1991, 1994-1996, 2000, 2001, 2005 Free Software Foundation, Inc.
+Copyright 1991, 1994-1996, 2000, 2001, 2005, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -38,14 +38,19 @@ mpq_canonicalize (mpq_t op)
mpz_t gcd;
TMP_DECL;
- if (UNLIKELY (SIZ(DEN(op)) == 0))
+ if (SIZ(DEN(op)) < 0)
+ {
+ SIZ(NUM(op)) = -SIZ(NUM(op));
+ SIZ(DEN(op)) = -SIZ(DEN(op));
+ }
+ else if (UNLIKELY (SIZ(DEN(op)) == 0))
DIVIDE_BY_ZERO;
TMP_MARK;
/* ??? Dunno if the 1+ is needed. */
MPZ_TMP_INIT (gcd, 1 + MAX (ABSIZ(NUM(op)),
- ABSIZ(DEN(op))));
+ SIZ(DEN(op))));
mpz_gcd (gcd, NUM(op), DEN(op));
if (! MPZ_EQUAL_1_P (gcd))
@@ -53,11 +58,5 @@ mpq_canonicalize (mpq_t op)
mpz_divexact_gcd (NUM(op), NUM(op), gcd);
mpz_divexact_gcd (DEN(op), DEN(op), gcd);
}
-
- if (SIZ(DEN(op)) < 0)
- {
- SIZ(NUM(op)) = -SIZ(NUM(op));
- SIZ(DEN(op)) = -SIZ(DEN(op));
- }
TMP_FREE;
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_sqr.c b/Build/source/libs/gmp/gmp-src/mpq/clear.c
index 736924cc222..9b08f239cdf 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_sqr.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/clear.c
@@ -1,8 +1,6 @@
-/* mpn_sec_sqr.
+/* mpq_clear -- free the space occupied by an mpq_t.
- Contributed to the GNU project by Torbjörn Granlund.
-
-Copyright 2013 Free Software Foundation, Inc.
+Copyright 1991, 1994, 1995, 2000, 2001, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -34,15 +32,8 @@ see https://www.gnu.org/licenses/. */
#include "gmp-impl.h"
void
-mpn_sec_sqr (mp_ptr rp,
- mp_srcptr ap, mp_size_t an,
- mp_ptr tp)
-{
- mpn_sqr_basecase (rp, ap, an);
-}
-
-mp_size_t
-mpn_sec_sqr_itch (mp_size_t an)
+mpq_clear (mpq_t x)
{
- return 0;
+ __GMP_FREE_FUNC_LIMBS (PTR(NUM(x)), ALLOC(NUM(x)));
+ __GMP_FREE_FUNC_LIMBS (PTR(DEN(x)), ALLOC(DEN(x)));
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/clears.c b/Build/source/libs/gmp/gmp-src/mpq/clears.c
index f949fe36cd8..73e5f66247b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/clears.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/clears.c
@@ -1,6 +1,6 @@
/* mpq_clears() -- Clear multiple mpq_t variables.
-Copyright 2009, 2014 Free Software Foundation, Inc.
+Copyright 2009, 2014, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -29,7 +29,6 @@ GNU Lesser General Public License along with the GNU MP Library. If not,
see https://www.gnu.org/licenses/. */
#include <stdarg.h>
-#include <stdio.h> /* for NULL */
#include "gmp.h"
#include "gmp-impl.h"
@@ -42,11 +41,10 @@ mpq_clears (mpq_ptr x, ...)
while (x != NULL)
{
- (*__gmp_free_func) (PTR(NUM(x)),
- (size_t) ALLOC(NUM(x)) * GMP_LIMB_BYTES);
- (*__gmp_free_func) (PTR(DEN(x)),
- (size_t) ALLOC(DEN(x)) * GMP_LIMB_BYTES);
+ __GMP_FREE_FUNC_LIMBS (PTR(NUM(x)), ALLOC(NUM(x)));
+ __GMP_FREE_FUNC_LIMBS (PTR(DEN(x)), ALLOC(DEN(x)));
x = va_arg (ap, mpq_ptr);
}
+
va_end (ap);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/cmp.c b/Build/source/libs/gmp/gmp-src/mpq/cmp.c
index e633b6f42d4..1758b78a603 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/cmp.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/cmp.c
@@ -1,7 +1,7 @@
/* mpq_cmp(u,v) -- Compare U, V. Return positive, zero, or negative
based on if U > V, U == V, or U < V.
-Copyright 1991, 1994, 1996, 2001, 2002, 2005 Free Software Foundation, Inc.
+Copyright 1991, 1994, 1996, 2001, 2002, 2005, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -33,13 +33,15 @@ see https://www.gnu.org/licenses/. */
#include "gmp-impl.h"
#include "longlong.h"
-int
-mpq_cmp (const mpq_t op1, const mpq_t op2)
+static int
+mpq_cmp_numden (mpq_srcptr op1, mpz_srcptr num_op2, mpz_srcptr den_op2)
{
mp_size_t num1_size = SIZ(NUM(op1));
mp_size_t den1_size = SIZ(DEN(op1));
- mp_size_t num2_size = SIZ(NUM(op2));
- mp_size_t den2_size = SIZ(DEN(op2));
+ mp_size_t num2_size = SIZ(num_op2);
+ mp_size_t den2_size = SIZ(den_op2);
+ int op2_is_int;
+ mp_limb_t d1h, d2h;
mp_size_t tmp1_size, tmp2_size;
mp_ptr tmp1_ptr, tmp2_ptr;
mp_size_t num1_sign;
@@ -59,6 +61,23 @@ mpq_cmp (const mpq_t op1, const mpq_t op2)
num1_sign = num1_size;
num1_size = ABS (num1_size);
+
+ /* THINK: Does storing d1h and d2h make sense? */
+ d1h = PTR(DEN(op1))[den1_size - 1];
+ d2h = PTR(den_op2)[den2_size - 1];
+ op2_is_int = (den2_size | d2h) == 1;
+ if (op2_is_int == (den1_size | d1h)) /* Both ops are integers */
+ /* return mpz_cmp (NUM (op1), num_op2); */
+ {
+ int cmp;
+
+ if (num1_sign != num2_size)
+ return num1_sign - num2_size;
+
+ cmp = mpn_cmp (PTR(NUM(op1)), PTR(num_op2), num1_size);
+ return (num1_sign > 0 ? cmp : -cmp);
+ }
+
num2_size = ABS (num2_size);
tmp1_size = num1_size + den2_size;
@@ -72,7 +91,7 @@ mpq_cmp (const mpq_t op1, const mpq_t op2)
if (tmp1_size > tmp2_size + 1)
/* NUM1 x DEN2 is surely larger in magnitude than NUM2 x DEN1. */
return num1_sign;
- if (tmp2_size > tmp1_size + 1)
+ if (tmp2_size + op2_is_int > tmp1_size + 1)
/* NUM1 x DEN2 is surely smaller in magnitude than NUM2 x DEN1. */
return -num1_sign;
@@ -82,41 +101,50 @@ mpq_cmp (const mpq_t op1, const mpq_t op2)
mp_bitcnt_t bits1, bits2;
count_leading_zeros (cnt1, PTR(NUM(op1))[num1_size - 1]);
- count_leading_zeros (cnt2, PTR(DEN(op2))[den2_size - 1]);
- bits1 = tmp1_size * GMP_NUMB_BITS - cnt1 - cnt2 + 2 * GMP_NAIL_BITS;
+ count_leading_zeros (cnt2, d2h);
+ bits1 = (mp_bitcnt_t) tmp1_size * GMP_NUMB_BITS - cnt1 - cnt2 + 2 * GMP_NAIL_BITS;
- count_leading_zeros (cnt1, PTR(NUM(op2))[num2_size - 1]);
- count_leading_zeros (cnt2, PTR(DEN(op1))[den1_size - 1]);
- bits2 = tmp2_size * GMP_NUMB_BITS - cnt1 - cnt2 + 2 * GMP_NAIL_BITS;
+ count_leading_zeros (cnt1, PTR(num_op2)[num2_size - 1]);
+ count_leading_zeros (cnt2, d1h);
+ bits2 = (mp_bitcnt_t) tmp2_size * GMP_NUMB_BITS - cnt1 - cnt2 + 2 * GMP_NAIL_BITS;
if (bits1 > bits2 + 1)
return num1_sign;
- if (bits2 > bits1 + 1)
+ if (bits2 + op2_is_int > bits1 + 1)
return -num1_sign;
}
/* 3. Finally, cross multiply and compare. */
TMP_MARK;
+ if (op2_is_int)
+ {
+ tmp2_ptr = TMP_ALLOC_LIMBS (tmp2_size);
+ tmp1_ptr = PTR(NUM(op1));
+ --tmp1_size;
+ }
+ else
+ {
TMP_ALLOC_LIMBS_2 (tmp1_ptr,tmp1_size, tmp2_ptr,tmp2_size);
if (num1_size >= den2_size)
tmp1_size -= 0 == mpn_mul (tmp1_ptr,
PTR(NUM(op1)), num1_size,
- PTR(DEN(op2)), den2_size);
+ PTR(den_op2), den2_size);
else
tmp1_size -= 0 == mpn_mul (tmp1_ptr,
- PTR(DEN(op2)), den2_size,
+ PTR(den_op2), den2_size,
PTR(NUM(op1)), num1_size);
+ }
if (num2_size >= den1_size)
tmp2_size -= 0 == mpn_mul (tmp2_ptr,
- PTR(NUM(op2)), num2_size,
+ PTR(num_op2), num2_size,
PTR(DEN(op1)), den1_size);
else
tmp2_size -= 0 == mpn_mul (tmp2_ptr,
PTR(DEN(op1)), den1_size,
- PTR(NUM(op2)), num2_size);
+ PTR(num_op2), num2_size);
cc = tmp1_size - tmp2_size != 0
@@ -124,3 +152,18 @@ mpq_cmp (const mpq_t op1, const mpq_t op2)
TMP_FREE;
return num1_sign < 0 ? -cc : cc;
}
+
+int
+mpq_cmp (mpq_srcptr op1, mpq_srcptr op2)
+{
+ return mpq_cmp_numden (op1, NUM(op2), DEN(op2));
+}
+
+int
+mpq_cmp_z (mpq_srcptr op1, mpz_srcptr op2)
+{
+ const static mp_limb_t one = 1;
+ const static mpz_t den = MPZ_ROINIT_N ((mp_limb_t *) &one, 1);
+
+ return mpq_cmp_numden (op1, op2, den);
+}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/cmp_si.c b/Build/source/libs/gmp/gmp-src/mpq/cmp_si.c
index 0a31fe8c9e7..f21382e5b04 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/cmp_si.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/cmp_si.c
@@ -1,6 +1,6 @@
/* _mpq_cmp_si -- compare mpq and long/ulong fraction.
-Copyright 2001, 2013 Free Software Foundation, Inc.
+Copyright 2001, 2013, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -42,26 +42,20 @@ _mpq_cmp_si (mpq_srcptr q, long n, unsigned long d)
/* need canonical sign to get right result */
ASSERT (SIZ(DEN(q)) > 0);
+ if (n >= 0)
+ return _mpq_cmp_ui (q, n, d);
if (SIZ(NUM(q)) >= 0)
{
- if (n >= 0)
- return _mpq_cmp_ui (q, n, d); /* >=0 cmp >=0 */
- else
- return 1; /* >=0 cmp <0 */
+ return 1; /* >=0 cmp <0 */
}
else
{
- if (n >= 0)
- return -1; /* <0 cmp >=0 */
- else
- {
- mpq_t qabs;
- SIZ(NUM(qabs)) = ABSIZ(NUM(q));
- PTR(NUM(qabs)) = PTR(NUM(q));
- SIZ(DEN(qabs)) = SIZ(DEN(q));
- PTR(DEN(qabs)) = PTR(DEN(q));
+ mpq_t qabs;
+ SIZ(NUM(qabs)) = -SIZ(NUM(q));
+ PTR(NUM(qabs)) = PTR(NUM(q));
+ SIZ(DEN(qabs)) = SIZ(DEN(q));
+ PTR(DEN(qabs)) = PTR(DEN(q));
- return - _mpq_cmp_ui (qabs, NEG_CAST (unsigned long, n), d); /* <0 cmp <0 */
- }
+ return - _mpq_cmp_ui (qabs, NEG_CAST (unsigned long, n), d); /* <0 cmp <0 */
}
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/cmp_ui.c b/Build/source/libs/gmp/gmp-src/mpq/cmp_ui.c
index a2e2d8ca812..93b2265c04e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/cmp_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/cmp_ui.c
@@ -2,7 +2,7 @@
negative based on if U > V, U == V, or U < V. Vn and Vd may have
common factors.
-Copyright 1993, 1994, 1996, 2000-2003, 2005 Free Software Foundation, Inc.
+Copyright 1993, 1994, 1996, 2000-2003, 2005, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -34,7 +34,7 @@ see https://www.gnu.org/licenses/. */
#include "gmp-impl.h"
int
-_mpq_cmp_ui (const mpq_t op1, unsigned long int num2, unsigned long int den2)
+_mpq_cmp_ui (mpq_srcptr op1, unsigned long int num2, unsigned long int den2)
{
mp_size_t num1_size = SIZ(NUM(op1));
mp_size_t den1_size = SIZ(DEN(op1));
@@ -63,12 +63,10 @@ _mpq_cmp_ui (const mpq_t op1, unsigned long int num2, unsigned long int den2)
if (UNLIKELY (den2 == 0))
DIVIDE_BY_ZERO;
- if (num1_size == 0)
- return -(num2 != 0);
- if (num1_size < 0)
- return num1_size;
if (num2 == 0)
return num1_size;
+ if (num1_size <= 0)
+ return -1;
/* NUM1 x DEN2 is either TMP1_SIZE limbs or TMP1_SIZE-1 limbs.
Same for NUM1 x DEN1 with respect to TMP2_SIZE. */
@@ -80,8 +78,7 @@ _mpq_cmp_ui (const mpq_t op1, unsigned long int num2, unsigned long int den2)
return -num1_size;
TMP_MARK;
- tmp1_ptr = TMP_ALLOC_LIMBS (num1_size + 1);
- tmp2_ptr = TMP_ALLOC_LIMBS (den1_size + 1);
+ TMP_ALLOC_LIMBS_2 (tmp1_ptr, num1_size + 1, tmp2_ptr, den1_size + 1);
cy_limb = mpn_mul_1 (tmp1_ptr, PTR(NUM(op1)), num1_size,
(mp_limb_t) den2);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/div.c b/Build/source/libs/gmp/gmp-src/mpq/div.c
index 7d91e0998ae..3a6018a2268 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/div.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/div.c
@@ -1,6 +1,6 @@
/* mpq_div -- divide two rational numbers.
-Copyright 1991, 1994-1996, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1991, 1994-1996, 2000, 2001, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -37,22 +37,48 @@ mpq_div (mpq_ptr quot, mpq_srcptr op1, mpq_srcptr op2)
{
mpz_t gcd1, gcd2;
mpz_t tmp1, tmp2;
- mpz_t numtmp;
- mp_size_t op1_num_size;
- mp_size_t op1_den_size;
- mp_size_t op2_num_size;
- mp_size_t op2_den_size;
+ mp_size_t op1_size;
+ mp_size_t op2_size;
mp_size_t alloc;
TMP_DECL;
- op2_num_size = ABSIZ(NUM(op2));
+ op2_size = SIZ(NUM(op2));
- if (UNLIKELY (op2_num_size == 0))
+ if (UNLIKELY (op2_size == 0))
DIVIDE_BY_ZERO;
- op1_num_size = ABSIZ(NUM(op1));
+ if (UNLIKELY (quot == op2))
+ {
+ if (op1 == op2)
+ {
+ PTR(NUM(quot))[0] = 1;
+ SIZ(NUM(quot)) = 1;
+ PTR(DEN(quot))[0] = 1;
+ SIZ(DEN(quot)) = 1;
+ return;
+ }
+
+ /* We checked for op1 == op2: we are not in the x=x/x case.
+ We compute x=y/x by computing x=inv(x)*y */
+ MPN_PTR_SWAP (PTR(NUM(quot)), ALLOC(NUM(quot)),
+ PTR(DEN(quot)), ALLOC(DEN(quot)));
+ if (op2_size > 0)
+ {
+ SIZ(NUM(quot)) = SIZ(DEN(quot));
+ SIZ(DEN(quot)) = op2_size;
+ }
+ else
+ {
+ SIZ(NUM(quot)) = - SIZ(DEN(quot));
+ SIZ(DEN(quot)) = - op2_size;
+ }
+ mpq_mul (quot, quot, op1);
+ return;
+ }
- if (op1_num_size == 0)
+ op1_size = ABSIZ(NUM(op1));
+
+ if (op1_size == 0)
{
/* We special case this to simplify allocation logic; gcd(0,x) = x
is a singular case for the allocations. */
@@ -62,30 +88,29 @@ mpq_div (mpq_ptr quot, mpq_srcptr op1, mpq_srcptr op2)
return;
}
- op2_den_size = SIZ(DEN(op2));
- op1_den_size = SIZ(DEN(op1));
+ op2_size = ABS(op2_size);
TMP_MARK;
- alloc = MIN (op1_num_size, op2_num_size);
+ alloc = MIN (op1_size, op2_size);
MPZ_TMP_INIT (gcd1, alloc);
- alloc = MIN (op1_den_size, op2_den_size);
- MPZ_TMP_INIT (gcd2, alloc);
-
- alloc = MAX (op1_num_size, op2_num_size);
+ alloc = MAX (op1_size, op2_size);
MPZ_TMP_INIT (tmp1, alloc);
- alloc = MAX (op1_den_size, op2_den_size);
- MPZ_TMP_INIT (tmp2, alloc);
+ op2_size = SIZ(DEN(op2));
+ op1_size = SIZ(DEN(op1));
- alloc = op1_num_size + op2_den_size;
- MPZ_TMP_INIT (numtmp, alloc);
+ alloc = MIN (op1_size, op2_size);
+ MPZ_TMP_INIT (gcd2, alloc);
- /* QUOT might be identical to either operand, so don't store the result there
- until we are finished with the input operands. We can overwrite the
- numerator of QUOT when we are finished with the numerators of OP1 and
- OP2. */
+ alloc = MAX (op1_size, op2_size);
+ MPZ_TMP_INIT (tmp2, alloc);
+
+ /* QUOT might be identical to OP1, so don't store the result there
+ until we are finished with the input operand. We can overwrite
+ the numerator of QUOT when we are finished with the numerator of
+ OP1. */
mpz_gcd (gcd1, NUM(op1), NUM(op2));
mpz_gcd (gcd2, DEN(op2), DEN(op1));
@@ -93,17 +118,13 @@ mpq_div (mpq_ptr quot, mpq_srcptr op1, mpq_srcptr op2)
mpz_divexact_gcd (tmp1, NUM(op1), gcd1);
mpz_divexact_gcd (tmp2, DEN(op2), gcd2);
- mpz_mul (numtmp, tmp1, tmp2);
+ mpz_mul (NUM(quot), tmp1, tmp2);
mpz_divexact_gcd (tmp1, NUM(op2), gcd1);
mpz_divexact_gcd (tmp2, DEN(op1), gcd2);
mpz_mul (DEN(quot), tmp1, tmp2);
- /* We needed to go via NUMTMP to take care of QUOT being the same as OP2.
- Now move NUMTMP to QUOT->_mp_num. */
- mpz_set (NUM(quot), numtmp);
-
/* Keep the denominator positive. */
if (SIZ(DEN(quot)) < 0)
{
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/equal.c b/Build/source/libs/gmp/gmp-src/mpq/equal.c
index 500c2d802ea..500c2d802ea 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/equal.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/equal.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/get_d.c b/Build/source/libs/gmp/gmp-src/mpq/get_d.c
index 6318e222936..f206cdbc004 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/get_d.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/get_d.c
@@ -101,7 +101,7 @@ see https://www.gnu.org/licenses/. */
like to have helping everywhere that uses a quotient-only division. */
double
-mpq_get_d (const mpq_t src)
+mpq_get_d (mpq_srcptr src)
{
double res;
mp_srcptr np, dp;
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/get_den.c b/Build/source/libs/gmp/gmp-src/mpq/get_den.c
index 48a385c817e..48a385c817e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/get_den.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/get_den.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/get_num.c b/Build/source/libs/gmp/gmp-src/mpq/get_num.c
index cb464ccb94f..cb464ccb94f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/get_num.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/get_num.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/get_str.c b/Build/source/libs/gmp/gmp-src/mpq/get_str.c
index 8fa0de1cd74..8fa0de1cd74 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/get_str.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/get_str.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/init.c b/Build/source/libs/gmp/gmp-src/mpq/init.c
index 0f526ef31d0..6ece98ab1c6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/init.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/init.c
@@ -35,10 +35,10 @@ void
mpq_init (mpq_t x)
{
ALLOC(NUM(x)) = 1;
- PTR(NUM(x)) = (mp_ptr) (*__gmp_allocate_func) (GMP_LIMB_BYTES);
+ PTR(NUM(x)) = __GMP_ALLOCATE_FUNC_LIMBS (1);
SIZ(NUM(x)) = 0;
ALLOC(DEN(x)) = 1;
- PTR(DEN(x)) = (mp_ptr) (*__gmp_allocate_func) (GMP_LIMB_BYTES);
+ PTR(DEN(x)) = __GMP_ALLOCATE_FUNC_LIMBS (1);
PTR(DEN(x))[0] = 1;
SIZ(DEN(x)) = 1;
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/inits.c b/Build/source/libs/gmp/gmp-src/mpq/inits.c
index 97c41656ffd..bb14f93e21d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/inits.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/inits.c
@@ -1,6 +1,6 @@
/* mpq_inits() -- Initialize multiple mpq_t variables and set them to 0.
-Copyright 2009 Free Software Foundation, Inc.
+Copyright 2009, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -29,7 +29,6 @@ GNU Lesser General Public License along with the GNU MP Library. If not,
see https://www.gnu.org/licenses/. */
#include <stdarg.h>
-#include <stdio.h> /* for NULL */
#include "gmp.h"
#include "gmp-impl.h"
@@ -45,5 +44,6 @@ mpq_inits (mpq_ptr x, ...)
mpq_init (x);
x = va_arg (ap, mpq_ptr);
}
+
va_end (ap);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/inp_str.c b/Build/source/libs/gmp/gmp-src/mpq/inp_str.c
index 7ba95743f8f..7ba95743f8f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/inp_str.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/inp_str.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/inv.c b/Build/source/libs/gmp/gmp-src/mpq/inv.c
index bd703d48602..bd703d48602 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/inv.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/inv.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/md_2exp.c b/Build/source/libs/gmp/gmp-src/mpq/md_2exp.c
index a2a7e1e2fb7..a2a7e1e2fb7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/md_2exp.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/md_2exp.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/mul.c b/Build/source/libs/gmp/gmp-src/mpq/mul.c
index 49d618f3bc1..49d618f3bc1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/mul.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/neg.c b/Build/source/libs/gmp/gmp-src/mpq/neg.c
index 054e21ebe33..054e21ebe33 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/neg.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/neg.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/out_str.c b/Build/source/libs/gmp/gmp-src/mpq/out_str.c
index c2bc053b215..c2bc053b215 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/out_str.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/out_str.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/set.c b/Build/source/libs/gmp/gmp-src/mpq/set.c
index fb7bfad49c6..fb7bfad49c6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/set.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/set.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/set_d.c b/Build/source/libs/gmp/gmp-src/mpq/set_d.c
index 308677db402..bc792187181 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/set_d.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/set_d.c
@@ -1,6 +1,6 @@
/* mpq_set_d(mpq_t q, double d) -- Set q to d without rounding.
-Copyright 2000, 2002, 2003, 2012 Free Software Foundation, Inc.
+Copyright 2000, 2002, 2003, 2012, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -81,9 +81,8 @@ mpq_set_d (mpq_ptr dest, double d)
return;
}
- dn = -exp;
- np = MPZ_NEWALLOC (NUM(dest), 3);
#if LIMBS_PER_DOUBLE == 4
+ np = MPZ_NEWALLOC (NUM(dest), 4);
if ((tp[0] | tp[1] | tp[2]) == 0)
np[0] = tp[3], nn = 1;
else if ((tp[0] | tp[1]) == 0)
@@ -94,6 +93,7 @@ mpq_set_d (mpq_ptr dest, double d)
np[3] = tp[3], np[2] = tp[2], np[1] = tp[1], np[0] = tp[0], nn = 4;
#endif
#if LIMBS_PER_DOUBLE == 3
+ np = MPZ_NEWALLOC (NUM(dest), 3);
if ((tp[0] | tp[1]) == 0)
np[0] = tp[2], nn = 1;
else if (tp[0] == 0)
@@ -102,13 +102,14 @@ mpq_set_d (mpq_ptr dest, double d)
np[2] = tp[2], np[1] = tp[1], np[0] = tp[0], nn = 3;
#endif
#if LIMBS_PER_DOUBLE == 2
+ np = MPZ_NEWALLOC (NUM(dest), 2);
if (tp[0] == 0)
np[0] = tp[1], nn = 1;
else
np[1] = tp[1], np[0] = tp[0], nn = 2;
#endif
- dn += nn + 1;
- ASSERT_ALWAYS (dn > 0);
+ dn = nn + 1 - exp;
+ ASSERT (dn > 0); /* -exp >= -1; nn >= 1*/
dp = MPZ_NEWALLOC (DEN(dest), dn);
MPN_ZERO (dp, dn - 1);
dp[dn - 1] = 1;
@@ -117,11 +118,10 @@ mpq_set_d (mpq_ptr dest, double d)
{
mpn_rshift (np, np, nn, c);
nn -= np[nn - 1] == 0;
- mpn_rshift (dp, dp, dn, c);
- dn -= dp[dn - 1] == 0;
+ --dn;
+ dp[dn - 1] = CNST_LIMB(1) << (GMP_LIMB_BITS - c);
}
SIZ(DEN(dest)) = dn;
- SIZ(NUM(dest)) = negative ? -nn : nn;
}
else
{
@@ -158,9 +158,8 @@ mpq_set_d (mpq_ptr dest, double d)
break;
#endif
}
- dp = PTR(DEN(dest));
- dp[0] = 1;
+ *PTR(DEN(dest)) = 1;
SIZ(DEN(dest)) = 1;
- SIZ(NUM(dest)) = negative ? -nn : nn;
}
+ SIZ(NUM(dest)) = negative ? -nn : nn;
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/set_den.c b/Build/source/libs/gmp/gmp-src/mpq/set_den.c
index 4bcb86b0977..4bcb86b0977 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/set_den.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/set_den.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/set_f.c b/Build/source/libs/gmp/gmp-src/mpq/set_f.c
index 7764a17f05e..7764a17f05e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/set_f.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/set_f.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/set_num.c b/Build/source/libs/gmp/gmp-src/mpq/set_num.c
index c6b52ccaa18..c6b52ccaa18 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/set_num.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/set_num.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/set_si.c b/Build/source/libs/gmp/gmp-src/mpq/set_si.c
index 0a10b3048d1..0a10b3048d1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/set_si.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/set_si.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/set_str.c b/Build/source/libs/gmp/gmp-src/mpq/set_str.c
index 930fe5576c0..930fe5576c0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/set_str.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/set_str.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/set_ui.c b/Build/source/libs/gmp/gmp-src/mpq/set_ui.c
index 4473b30bb84..4473b30bb84 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/set_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/set_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/set_z.c b/Build/source/libs/gmp/gmp-src/mpq/set_z.c
index 358d1ca899c..358d1ca899c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/set_z.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/set_z.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/swap.c b/Build/source/libs/gmp/gmp-src/mpq/swap.c
index 51fdcac7fd3..51fdcac7fd3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/swap.c
+++ b/Build/source/libs/gmp/gmp-src/mpq/swap.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/2fac_ui.c b/Build/source/libs/gmp/gmp-src/mpz/2fac_ui.c
index 37e6c468bc8..37e6c468bc8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/2fac_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/2fac_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/Makefile.am b/Build/source/libs/gmp/gmp-src/mpz/Makefile.am
index 1aac41b992a..3ff60ac2e9f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/Makefile.am
+++ b/Build/source/libs/gmp/gmp-src/mpz/Makefile.am
@@ -29,7 +29,7 @@
# see https://www.gnu.org/licenses/.
-INCLUDES = -D__GMP_WITHIN_GMP -I$(top_srcdir)
+AM_CPPFLAGS = -D__GMP_WITHIN_GMP -I$(top_srcdir)
noinst_LTLIBRARIES = libmpz.la
libmpz_la_SOURCES = aors.h aors_ui.h fits_s.h mul_i.h \
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/abs.c b/Build/source/libs/gmp/gmp-src/mpz/abs.c
index 81c6b632668..81c6b632668 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/abs.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/abs.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/add.c b/Build/source/libs/gmp/gmp-src/mpz/add.c
index f1f0ae8e160..f1f0ae8e160 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/add.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/add.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/add_ui.c b/Build/source/libs/gmp/gmp-src/mpz/add_ui.c
index 8fd15ad6111..8fd15ad6111 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/add_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/add_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/and.c b/Build/source/libs/gmp/gmp-src/mpz/and.c
index 5aa01a71da1..5aa01a71da1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/and.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/and.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/aors.h b/Build/source/libs/gmp/gmp-src/mpz/aors.h
index 4d22754b23b..4d22754b23b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/aors.h
+++ b/Build/source/libs/gmp/gmp-src/mpz/aors.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/aors_ui.h b/Build/source/libs/gmp/gmp-src/mpz/aors_ui.h
index 2e3c481ab70..2e3c481ab70 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/aors_ui.h
+++ b/Build/source/libs/gmp/gmp-src/mpz/aors_ui.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/aorsmul.c b/Build/source/libs/gmp/gmp-src/mpz/aorsmul.c
index bf012c965ce..bf012c965ce 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/aorsmul.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/aorsmul.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/aorsmul_i.c b/Build/source/libs/gmp/gmp-src/mpz/aorsmul_i.c
index eafd5f36de9..07af0a4efe1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/aorsmul_i.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/aorsmul_i.c
@@ -202,7 +202,7 @@ void
mpz_addmul_ui (mpz_ptr w, mpz_srcptr x, unsigned long y)
{
#if BITS_PER_ULONG > GMP_NUMB_BITS
- if (UNLIKELY (y > GMP_NUMB_MAX && SIZ(x) != 0))
+ if (UNLIKELY (y > GMP_NUMB_MAX))
{
mpz_t t;
mp_ptr tp;
@@ -210,6 +210,7 @@ mpz_addmul_ui (mpz_ptr w, mpz_srcptr x, unsigned long y)
TMP_DECL;
TMP_MARK;
xn = SIZ (x);
+ if (xn == 0) return;
MPZ_TMP_INIT (t, ABS (xn) + 1);
tp = PTR (t);
tp[0] = 0;
@@ -230,7 +231,7 @@ void
mpz_submul_ui (mpz_ptr w, mpz_srcptr x, unsigned long y)
{
#if BITS_PER_ULONG > GMP_NUMB_BITS
- if (y > GMP_NUMB_MAX && SIZ(x) != 0)
+ if (y > GMP_NUMB_MAX)
{
mpz_t t;
mp_ptr tp;
@@ -238,6 +239,7 @@ mpz_submul_ui (mpz_ptr w, mpz_srcptr x, unsigned long y)
TMP_DECL;
TMP_MARK;
xn = SIZ (x);
+ if (xn == 0) return;
MPZ_TMP_INIT (t, ABS (xn) + 1);
tp = PTR (t);
tp[0] = 0;
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/array_init.c b/Build/source/libs/gmp/gmp-src/mpz/array_init.c
index b967ddbeefb..0a6880ab0f9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/array_init.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/array_init.c
@@ -39,7 +39,7 @@ mpz_array_init (mpz_ptr arr, mp_size_t arr_size, mp_size_t nbits)
mp_size_t nlimbs;
nlimbs = nbits / GMP_NUMB_BITS + 1;
- p = (mp_ptr) (*__gmp_allocate_func) ((size_t) arr_size * nlimbs * GMP_LIMB_BYTES);
+ p = __GMP_ALLOCATE_FUNC_LIMBS (arr_size * nlimbs);
for (i = 0; i < arr_size; i++)
{
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/bin_ui.c b/Build/source/libs/gmp/gmp-src/mpz/bin_ui.c
index c24b21724c1..c24b21724c1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/bin_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/bin_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/bin_uiui.c b/Build/source/libs/gmp/gmp-src/mpz/bin_uiui.c
index 94a9dc5c75d..94a9dc5c75d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/bin_uiui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/bin_uiui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_q.c b/Build/source/libs/gmp/gmp-src/mpz/cdiv_q.c
index 32e3200a8d5..32e3200a8d5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_q.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cdiv_q.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_q_ui.c b/Build/source/libs/gmp/gmp-src/mpz/cdiv_q_ui.c
index 63608c90438..63608c90438 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_q_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cdiv_q_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_qr.c b/Build/source/libs/gmp/gmp-src/mpz/cdiv_qr.c
index 45e9a2774cc..45e9a2774cc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_qr.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cdiv_qr.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_qr_ui.c b/Build/source/libs/gmp/gmp-src/mpz/cdiv_qr_ui.c
index 1ccfbbe7fd2..1ccfbbe7fd2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_qr_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cdiv_qr_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_r.c b/Build/source/libs/gmp/gmp-src/mpz/cdiv_r.c
index 9cebab3e061..9cebab3e061 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_r.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cdiv_r.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_r_ui.c b/Build/source/libs/gmp/gmp-src/mpz/cdiv_r_ui.c
index 68fb149c461..68fb149c461 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_r_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cdiv_r_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_ui.c b/Build/source/libs/gmp/gmp-src/mpz/cdiv_ui.c
index 1f7f6e3c1ba..1f7f6e3c1ba 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cdiv_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cfdiv_q_2exp.c b/Build/source/libs/gmp/gmp-src/mpz/cfdiv_q_2exp.c
index c69e37c6054..366d6aa7046 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cfdiv_q_2exp.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cfdiv_q_2exp.c
@@ -1,7 +1,7 @@
/* mpz_cdiv_q_2exp, mpz_fdiv_q_2exp -- quotient from mpz divided by 2^n.
-Copyright 1991, 1993, 1994, 1996, 1998, 1999, 2001, 2002, 2004, 2012 Free
-Software Foundation, Inc.
+Copyright 1991, 1993, 1994, 1996, 1998, 1999, 2001, 2002, 2004, 2012,
+2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -59,7 +59,7 @@ cfdiv_q_2exp (mpz_ptr w, mpz_srcptr u, mp_bitcnt_t cnt, int dir)
}
/* +1 limb to allow for mpn_add_1 below */
- MPZ_REALLOC (w, wsize+1);
+ wp = MPZ_REALLOC (w, wsize+1);
/* Check for rounding if direction matches u sign.
Set round if we're skipping non-zero limbs. */
@@ -70,7 +70,6 @@ cfdiv_q_2exp (mpz_ptr w, mpz_srcptr u, mp_bitcnt_t cnt, int dir)
for (i = 0; i < limb_cnt && round == 0; i++)
round = up[i];
- wp = PTR(w);
cnt %= GMP_NUMB_BITS;
if (cnt != 0)
{
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cfdiv_r_2exp.c b/Build/source/libs/gmp/gmp-src/mpz/cfdiv_r_2exp.c
index 5466691f295..4941822b285 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cfdiv_r_2exp.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cfdiv_r_2exp.c
@@ -73,12 +73,12 @@ cfdiv_r_2exp (mpz_ptr w, mpz_srcptr u, mp_bitcnt_t cnt, int dir)
/* if already smaller than limb_cnt then do nothing */
if (abs_usize <= limb_cnt)
return;
- wp = PTR(w);
+ wp = (mp_ptr) up;
}
else
{
i = MIN (abs_usize, limb_cnt+1);
- wp = MPZ_REALLOC (w, i);
+ wp = MPZ_NEWALLOC (w, i);
MPN_COPY (wp, up, i);
/* if smaller than limb_cnt then only the copy is needed */
@@ -118,14 +118,10 @@ cfdiv_r_2exp (mpz_ptr w, mpz_srcptr u, mp_bitcnt_t cnt, int dir)
/* Ones complement */
i = MIN (abs_usize, limb_cnt+1);
- mpn_com (wp, up, i);
+ ASSERT_CARRY (mpn_neg (wp, up, i));
for ( ; i <= limb_cnt; i++)
wp[i] = GMP_NUMB_MAX;
- /* Twos complement. Since u!=0 in the relevant part, the twos
- complement never gives 0 and a carry, so can use MPN_INCR_U. */
- MPN_INCR_U (wp, limb_cnt+1, CNST_LIMB(1));
-
usize = -usize;
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/clear.c b/Build/source/libs/gmp/gmp-src/mpz/clear.c
index 30f626c5052..d1541e91c95 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/clear.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/clear.c
@@ -1,8 +1,8 @@
/* mpz_clear -- de-allocate the space occupied by the dynamic digit space of
an integer.
-Copyright 1991, 1993-1995, 2000, 2001, 2012, 2014 Free Software Foundation,
-Inc.
+Copyright 1991, 1993-1995, 2000, 2001, 2012, 2014, 2015 Free Software
+Foundation, Inc.
This file is part of the GNU MP Library.
@@ -34,7 +34,7 @@ see https://www.gnu.org/licenses/. */
#include "gmp-impl.h"
void
-mpz_clear (mpz_ptr m)
+mpz_clear (mpz_ptr x)
{
- (*__gmp_free_func) (PTR (m), (size_t) ALLOC (m) * GMP_LIMB_BYTES);
+ __GMP_FREE_FUNC_LIMBS (PTR (x), ALLOC(x));
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/clears.c b/Build/source/libs/gmp/gmp-src/mpz/clears.c
index 193c5ade773..dac98873814 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/clears.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/clears.c
@@ -1,6 +1,6 @@
/* mpz_clears() -- Clear multiple mpz_t variables.
-Copyright 2009, 2014 Free Software Foundation, Inc.
+Copyright 2009, 2014, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -29,7 +29,6 @@ GNU Lesser General Public License along with the GNU MP Library. If not,
see https://www.gnu.org/licenses/. */
#include <stdarg.h>
-#include <stdio.h> /* for NULL */
#include "gmp.h"
#include "gmp-impl.h"
@@ -42,8 +41,9 @@ mpz_clears (mpz_ptr x, ...)
while (x != NULL)
{
- (*__gmp_free_func) (PTR (x), (size_t) ALLOC (x) * GMP_LIMB_BYTES);
+ __GMP_FREE_FUNC_LIMBS (PTR (x), ALLOC(x));
x = va_arg (ap, mpz_ptr);
}
+
va_end (ap);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/clrbit.c b/Build/source/libs/gmp/gmp-src/mpz/clrbit.c
index 2475efe1e5b..2475efe1e5b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/clrbit.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/clrbit.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cmp.c b/Build/source/libs/gmp/gmp-src/mpz/cmp.c
index b8a5eaa7657..b8a5eaa7657 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cmp.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cmp.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cmp_d.c b/Build/source/libs/gmp/gmp-src/mpz/cmp_d.c
index 45926d6d547..45926d6d547 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cmp_d.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cmp_d.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cmp_si.c b/Build/source/libs/gmp/gmp-src/mpz/cmp_si.c
index 86251f436ad..86251f436ad 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cmp_si.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cmp_si.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cmp_ui.c b/Build/source/libs/gmp/gmp-src/mpz/cmp_ui.c
index 790d8241d68..46fdd4e8011 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cmp_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cmp_ui.c
@@ -1,4 +1,4 @@
-/* mpz_cmp_ui.c -- Compare a mpz_t a with an mp_limb_t b. Return positive,
+/* mpz_cmp_ui.c -- Compare an mpz_t a with an mp_limb_t b. Return positive,
zero, or negative based on if a > b, a == b, or a < b.
Copyright 1991, 1993-1996, 2001, 2002 Free Software Foundation, Inc.
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cmpabs.c b/Build/source/libs/gmp/gmp-src/mpz/cmpabs.c
index 5685776abe9..5685776abe9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cmpabs.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cmpabs.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cmpabs_d.c b/Build/source/libs/gmp/gmp-src/mpz/cmpabs_d.c
index a4b95d26aa3..a4b95d26aa3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cmpabs_d.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cmpabs_d.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cmpabs_ui.c b/Build/source/libs/gmp/gmp-src/mpz/cmpabs_ui.c
index fdeb061945d..fceef6bbacc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cmpabs_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cmpabs_ui.c
@@ -1,4 +1,4 @@
-/* mpz_cmpabs_ui.c -- Compare a mpz_t a with an mp_limb_t b. Return positive,
+/* mpz_cmpabs_ui.c -- Compare an mpz_t a with an mp_limb_t b. Return positive,
zero, or negative based on if a > b, a == b, or a < b.
Copyright 1991, 1993-1995, 1997, 2000-2002 Free Software Foundation, Inc.
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/com.c b/Build/source/libs/gmp/gmp-src/mpz/com.c
index 66d69ce8b24..66d69ce8b24 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/com.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/com.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/combit.c b/Build/source/libs/gmp/gmp-src/mpz/combit.c
index 85ea4c8b26c..b6d1daa09ee 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/combit.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/combit.c
@@ -1,6 +1,6 @@
/* mpz_combit -- complement a specified bit.
-Copyright 2002, 2003, 2012 Free Software Foundation, Inc.
+Copyright 2002, 2003, 2012, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -47,7 +47,8 @@ mpz_combit (mpz_ptr d, mp_bitcnt_t bit_index)
/* Check for the hairy case. d < 0, and we have all zero bits to the
right of the bit to toggle. */
- else if (limb_index < -dsize && mpn_zero_p (dp, limb_index)
+ else if (limb_index < -dsize
+ && (limb_index == 0 || mpn_zero_p (dp, limb_index))
&& (dp[limb_index] & (bit - 1)) == 0)
{
ASSERT (dsize < 0);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cong.c b/Build/source/libs/gmp/gmp-src/mpz/cong.c
index 1855b5052ac..1855b5052ac 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cong.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cong.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cong_2exp.c b/Build/source/libs/gmp/gmp-src/mpz/cong_2exp.c
index 8e78b173787..8e78b173787 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cong_2exp.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cong_2exp.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/cong_ui.c b/Build/source/libs/gmp/gmp-src/mpz/cong_ui.c
index a9729d9a858..a9729d9a858 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/cong_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/cong_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/dive_ui.c b/Build/source/libs/gmp/gmp-src/mpz/dive_ui.c
index 8a1b5a31ff8..8a1b5a31ff8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/dive_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/dive_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/divegcd.c b/Build/source/libs/gmp/gmp-src/mpz/divegcd.c
index 3cb181c3195..3cb181c3195 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/divegcd.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/divegcd.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/divexact.c b/Build/source/libs/gmp/gmp-src/mpz/divexact.c
index e9354715299..e9354715299 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/divexact.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/divexact.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/divis.c b/Build/source/libs/gmp/gmp-src/mpz/divis.c
index cd9d406846b..cd9d406846b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/divis.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/divis.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/divis_2exp.c b/Build/source/libs/gmp/gmp-src/mpz/divis_2exp.c
index db6cfa44339..db6cfa44339 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/divis_2exp.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/divis_2exp.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/divis_ui.c b/Build/source/libs/gmp/gmp-src/mpz/divis_ui.c
index 41ff5f0b84e..41ff5f0b84e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/divis_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/divis_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/dump.c b/Build/source/libs/gmp/gmp-src/mpz/dump.c
index 282be34db70..282be34db70 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/dump.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/dump.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/export.c b/Build/source/libs/gmp/gmp-src/mpz/export.c
index bc4c4df976a..bc4c4df976a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/export.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/export.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/fac_ui.c b/Build/source/libs/gmp/gmp-src/mpz/fac_ui.c
index e0932272ff6..e0932272ff6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/fac_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/fac_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_q.c b/Build/source/libs/gmp/gmp-src/mpz/fdiv_q.c
index 5713b905b2a..5713b905b2a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_q.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/fdiv_q.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_q_ui.c b/Build/source/libs/gmp/gmp-src/mpz/fdiv_q_ui.c
index 7899992d049..7899992d049 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_q_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/fdiv_q_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_qr.c b/Build/source/libs/gmp/gmp-src/mpz/fdiv_qr.c
index 36cfd367add..36cfd367add 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_qr.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/fdiv_qr.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_qr_ui.c b/Build/source/libs/gmp/gmp-src/mpz/fdiv_qr_ui.c
index c8435a423c4..c8435a423c4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_qr_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/fdiv_qr_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_r.c b/Build/source/libs/gmp/gmp-src/mpz/fdiv_r.c
index 35f2789b14c..35f2789b14c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_r.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/fdiv_r.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_r_ui.c b/Build/source/libs/gmp/gmp-src/mpz/fdiv_r_ui.c
index 98dd56c6f22..98dd56c6f22 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_r_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/fdiv_r_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_ui.c b/Build/source/libs/gmp/gmp-src/mpz/fdiv_ui.c
index 532ee2cbec5..532ee2cbec5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/fdiv_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/fib2_ui.c b/Build/source/libs/gmp/gmp-src/mpz/fib2_ui.c
index 122db8dd519..ddf456f5802 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/fib2_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/fib2_ui.c
@@ -1,6 +1,6 @@
/* mpz_fib2_ui -- calculate Fibonacci numbers.
-Copyright 2001, 2012 Free Software Foundation, Inc.
+Copyright 2001, 2012, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -39,12 +39,21 @@ mpz_fib2_ui (mpz_ptr fn, mpz_ptr fnsub1, unsigned long n)
mp_ptr fp, f1p;
mp_size_t size;
+ if (n <= FIB_TABLE_LIMIT)
+ {
+ PTR(fn)[0] = FIB_TABLE (n);
+ SIZ(fn) = (n != 0); /* F[0]==0, others are !=0 */
+ PTR(fnsub1)[0] = FIB_TABLE ((int) n - 1);
+ SIZ(fnsub1) = (n != 1); /* F[1-1]==0, others are !=0 */
+ return;
+ }
+
size = MPN_FIB2_SIZE (n);
- fp = MPZ_REALLOC (fn, size);
- f1p = MPZ_REALLOC (fnsub1, size);
+ fp = MPZ_NEWALLOC (fn, size);
+ f1p = MPZ_NEWALLOC (fnsub1, size);
size = mpn_fib2_ui (fp, f1p, n);
- SIZ(fn) = size - (n == 0);
+ SIZ(fn) = size;
SIZ(fnsub1) = size - (f1p[size-1] == 0);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/fib_ui.c b/Build/source/libs/gmp/gmp-src/mpz/fib_ui.c
index c0f57a0dc92..f591c08501f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/fib_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/fib_ui.c
@@ -1,6 +1,6 @@
/* mpz_fib_ui -- calculate Fibonacci numbers.
-Copyright 2000-2002, 2005, 2012 Free Software Foundation, Inc.
+Copyright 2000-2002, 2005, 2012, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -60,7 +60,7 @@ mpz_fib_ui (mpz_ptr fn, unsigned long n)
mp_ptr fp, xp, yp;
mp_size_t size, xalloc;
unsigned long n2;
- mp_limb_t c, c2;
+ mp_limb_t c;
TMP_DECL;
if (n <= FIB_TABLE_LIMIT)
@@ -72,7 +72,7 @@ mpz_fib_ui (mpz_ptr fn, unsigned long n)
n2 = n/2;
xalloc = MPN_FIB2_SIZE (n2) + 1;
- fp = MPZ_REALLOC (fn, 2*xalloc+1);
+ fp = MPZ_NEWALLOC (fn, 2 * xalloc);
TMP_MARK;
TMP_ALLOC_LIMBS_2 (xp,xalloc, yp,xalloc);
@@ -93,8 +93,11 @@ mpz_fib_ui (mpz_ptr fn, unsigned long n)
yp[size] = 0;
ASSERT_NOCARRY (mpn_add_n_sub_n (xp, yp, xp, yp, size+1));
xsize = size + (xp[size] != 0);
- ysize = size + (yp[size] != 0);
+ ASSERT (yp[size] <= 1);
+ ysize = size + yp[size];
#else
+ mp_limb_t c2;
+
c2 = mpn_lshift (fp, xp, size, 1);
c = c2 + mpn_add_n (xp, fp, yp, size);
xp[size] = c;
@@ -131,8 +134,12 @@ mpz_fib_ui (mpz_ptr fn, unsigned long n)
/* F[2k] = F[k]*(F[k]+2F[k-1]) */
mp_size_t xsize, ysize;
+#if HAVE_NATIVE_mpn_addlsh1_n
+ c = mpn_addlsh1_n (yp, xp, yp, size);
+#else
c = mpn_lshift (yp, yp, size, 1);
c += mpn_add_n (yp, yp, xp, size);
+#endif
yp[size] = c;
xsize = size;
ysize = size + (c != 0);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/fits_s.h b/Build/source/libs/gmp/gmp-src/mpz/fits_s.h
index e7f21d1b2bd..e7f21d1b2bd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/fits_s.h
+++ b/Build/source/libs/gmp/gmp-src/mpz/fits_s.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/fits_sint.c b/Build/source/libs/gmp/gmp-src/mpz/fits_sint.c
index d548c45b0d3..d548c45b0d3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/fits_sint.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/fits_sint.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/fits_slong.c b/Build/source/libs/gmp/gmp-src/mpz/fits_slong.c
index 9306a00c0f1..9306a00c0f1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/fits_slong.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/fits_slong.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/fits_sshort.c b/Build/source/libs/gmp/gmp-src/mpz/fits_sshort.c
index 431d6b06ce7..431d6b06ce7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/fits_sshort.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/fits_sshort.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/fits_uint.c b/Build/source/libs/gmp/gmp-src/mpz/fits_uint.c
index a37e291b6ed..a37e291b6ed 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/fits_uint.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/fits_uint.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/fits_ulong.c b/Build/source/libs/gmp/gmp-src/mpz/fits_ulong.c
index fa40eb56710..fa40eb56710 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/fits_ulong.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/fits_ulong.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/fits_ushort.c b/Build/source/libs/gmp/gmp-src/mpz/fits_ushort.c
index 7f6f907821b..7f6f907821b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/fits_ushort.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/fits_ushort.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/gcd.c b/Build/source/libs/gmp/gmp-src/mpz/gcd.c
index 87c6a8f17b7..87c6a8f17b7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/gcd.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/gcd.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/gcd_ui.c b/Build/source/libs/gmp/gmp-src/mpz/gcd_ui.c
index e26d03f64a9..e26d03f64a9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/gcd_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/gcd_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/gcdext.c b/Build/source/libs/gmp/gmp-src/mpz/gcdext.c
index 01b1f8379ae..01b1f8379ae 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/gcdext.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/gcdext.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/get_d.c b/Build/source/libs/gmp/gmp-src/mpz/get_d.c
index ac653c5ba01..ac653c5ba01 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/get_d.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/get_d.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/get_d_2exp.c b/Build/source/libs/gmp/gmp-src/mpz/get_d_2exp.c
index 96314851bf8..96314851bf8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/get_d_2exp.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/get_d_2exp.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/get_si.c b/Build/source/libs/gmp/gmp-src/mpz/get_si.c
index 6e9752636b2..6e9752636b2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/get_si.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/get_si.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/get_str.c b/Build/source/libs/gmp/gmp-src/mpz/get_str.c
index 08c7cd73710..08c7cd73710 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/get_str.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/get_str.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/get_ui.c b/Build/source/libs/gmp/gmp-src/mpz/get_ui.c
index ca97788b745..ca97788b745 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/get_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/get_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/getlimbn.c b/Build/source/libs/gmp/gmp-src/mpz/getlimbn.c
index c531f7e61f6..c531f7e61f6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/getlimbn.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/getlimbn.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/hamdist.c b/Build/source/libs/gmp/gmp-src/mpz/hamdist.c
index 146769c3945..146769c3945 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/hamdist.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/hamdist.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/import.c b/Build/source/libs/gmp/gmp-src/mpz/import.c
index 9072830afee..9072830afee 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/import.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/import.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/init.c b/Build/source/libs/gmp/gmp-src/mpz/init.c
index 09df9df5c86..addbdbdedbd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/init.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/init.c
@@ -35,11 +35,11 @@ void
mpz_init (mpz_ptr x)
{
ALLOC (x) = 1;
- PTR (x) = (mp_ptr) (*__gmp_allocate_func) (GMP_LIMB_BYTES);
+ PTR (x) = __GMP_ALLOCATE_FUNC_LIMBS (1);
SIZ (x) = 0;
#ifdef __CHECKER__
/* let the low limb look initialized, for the benefit of mpz_get_ui etc */
- PTR (x) = 0;
+ PTR (x)[0] = 0;
#endif
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/init2.c b/Build/source/libs/gmp/gmp-src/mpz/init2.c
index b942e499d62..b942e499d62 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/init2.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/init2.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/inits.c b/Build/source/libs/gmp/gmp-src/mpz/inits.c
index 0488edaa447..68457e0fb29 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/inits.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/inits.c
@@ -1,6 +1,6 @@
/* mpz_inits() -- Initialize multiple mpz_t variables and set them to 0.
-Copyright 2009 Free Software Foundation, Inc.
+Copyright 2009, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -29,7 +29,6 @@ GNU Lesser General Public License along with the GNU MP Library. If not,
see https://www.gnu.org/licenses/. */
#include <stdarg.h>
-#include <stdio.h> /* for NULL */
#include "gmp.h"
#include "gmp-impl.h"
@@ -42,8 +41,17 @@ mpz_inits (mpz_ptr x, ...)
while (x != NULL)
{
- mpz_init (x);
+ ALLOC (x) = 1;
+ PTR (x) = __GMP_ALLOCATE_FUNC_LIMBS (1);
+ SIZ (x) = 0;
+
+#ifdef __CHECKER__
+ /* let the low limb look initialized, for the benefit of mpz_get_ui etc */
+ PTR (x)[0] = 0;
+#endif
+
x = va_arg (ap, mpz_ptr);
}
+
va_end (ap);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/inp_raw.c b/Build/source/libs/gmp/gmp-src/mpz/inp_raw.c
index d95c19ede72..d95c19ede72 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/inp_raw.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/inp_raw.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/inp_str.c b/Build/source/libs/gmp/gmp-src/mpz/inp_str.c
index 474bc68435f..474bc68435f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/inp_str.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/inp_str.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/invert.c b/Build/source/libs/gmp/gmp-src/mpz/invert.c
index 09cdd9a121a..09cdd9a121a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/invert.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/invert.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/ior.c b/Build/source/libs/gmp/gmp-src/mpz/ior.c
index 5c181f04c4c..5c181f04c4c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/ior.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/ior.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/iset.c b/Build/source/libs/gmp/gmp-src/mpz/iset.c
index b6fbf490fdb..0fd6e8f9dd8 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/iset.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/iset.c
@@ -43,7 +43,7 @@ mpz_init_set (mpz_ptr w, mpz_srcptr u)
size = ABS (usize);
ALLOC (w) = MAX (size, 1);
- PTR (w) = (mp_ptr) (*__gmp_allocate_func) ((size_t) ALLOC (w) * GMP_LIMB_BYTES);
+ PTR (w) = __GMP_ALLOCATE_FUNC_LIMBS (ALLOC (w));
wp = PTR (w);
up = PTR (u);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/iset_d.c b/Build/source/libs/gmp/gmp-src/mpz/iset_d.c
index a450abcb3e8..2c5b23ab9c9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/iset_d.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/iset_d.c
@@ -36,7 +36,7 @@ void
mpz_init_set_d (mpz_ptr dest, double val)
{
ALLOC (dest) = 1;
- PTR (dest) = (mp_ptr) (*__gmp_allocate_func) (GMP_LIMB_BYTES);
+ PTR (dest) = __GMP_ALLOCATE_FUNC_LIMBS (1);
SIZ (dest) = 0;
mpz_set_d (dest, val);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/iset_si.c b/Build/source/libs/gmp/gmp-src/mpz/iset_si.c
index 107577795a1..0844972280f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/iset_si.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/iset_si.c
@@ -39,7 +39,7 @@ mpz_init_set_si (mpz_ptr dest, signed long int val)
mp_limb_t vl;
ALLOC (dest) = 1;
- PTR (dest) = (mp_ptr) (*__gmp_allocate_func) (GMP_LIMB_BYTES);
+ PTR (dest) = __GMP_ALLOCATE_FUNC_LIMBS (1);
vl = (mp_limb_t) ABS_CAST (unsigned long int, val);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/iset_str.c b/Build/source/libs/gmp/gmp-src/mpz/iset_str.c
index e31742ce659..47798dd68b0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/iset_str.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/iset_str.c
@@ -38,7 +38,7 @@ int
mpz_init_set_str (mpz_ptr x, const char *str, int base)
{
ALLOC (x) = 1;
- PTR (x) = (mp_ptr) (*__gmp_allocate_func) (GMP_LIMB_BYTES);
+ PTR (x) = __GMP_ALLOCATE_FUNC_LIMBS (1);
/* if str has no digits mpz_set_str leaves x->_mp_size unset */
SIZ (x) = 0;
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/iset_ui.c b/Build/source/libs/gmp/gmp-src/mpz/iset_ui.c
index 0d43c68411c..55da84fcd44 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/iset_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/iset_ui.c
@@ -41,7 +41,7 @@ mpz_init_set_ui (mpz_ptr dest, unsigned long int val)
if (val > GMP_NUMB_MAX)
{
ALLOC (dest) = 2;
- PTR (dest) = (mp_ptr) (*__gmp_allocate_func) (GMP_LIMB_BYTES*2);
+ PTR (dest) = __GMP_ALLOCATE_FUNC_LIMBS (2);
PTR (dest)[1] = val >> GMP_NUMB_BITS;
size = 2;
}
@@ -49,7 +49,7 @@ mpz_init_set_ui (mpz_ptr dest, unsigned long int val)
#endif
{
ALLOC (dest) = 1;
- PTR (dest) = (mp_ptr) (*__gmp_allocate_func) (GMP_LIMB_BYTES);
+ PTR (dest) = __GMP_ALLOCATE_FUNC_LIMBS (1);
size = val != 0;
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/jacobi.c b/Build/source/libs/gmp/gmp-src/mpz/jacobi.c
index 397fe11c9bb..397fe11c9bb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/jacobi.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/jacobi.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/kronsz.c b/Build/source/libs/gmp/gmp-src/mpz/kronsz.c
index 12c8fbd0aa1..12c8fbd0aa1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/kronsz.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/kronsz.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/kronuz.c b/Build/source/libs/gmp/gmp-src/mpz/kronuz.c
index ca88250de59..ca88250de59 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/kronuz.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/kronuz.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/kronzs.c b/Build/source/libs/gmp/gmp-src/mpz/kronzs.c
index 695cd0f283e..695cd0f283e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/kronzs.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/kronzs.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/kronzu.c b/Build/source/libs/gmp/gmp-src/mpz/kronzu.c
index f57f92e8ba1..f57f92e8ba1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/kronzu.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/kronzu.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/lcm.c b/Build/source/libs/gmp/gmp-src/mpz/lcm.c
index 805f6710775..805f6710775 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/lcm.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/lcm.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/lcm_ui.c b/Build/source/libs/gmp/gmp-src/mpz/lcm_ui.c
index 362d183b428..362d183b428 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/lcm_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/lcm_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_finish.c b/Build/source/libs/gmp/gmp-src/mpz/limbs_finish.c
index ebf6dea2907..ebf6dea2907 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_finish.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/limbs_finish.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_modify.c b/Build/source/libs/gmp/gmp-src/mpz/limbs_modify.c
index bafd7d88a0e..bafd7d88a0e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_modify.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/limbs_modify.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_read.c b/Build/source/libs/gmp/gmp-src/mpz/limbs_read.c
index 6c14f18d459..6c14f18d459 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_read.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/limbs_read.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_write.c b/Build/source/libs/gmp/gmp-src/mpz/limbs_write.c
index 605cb5e3a36..605cb5e3a36 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_write.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/limbs_write.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/lucnum2_ui.c b/Build/source/libs/gmp/gmp-src/mpz/lucnum2_ui.c
index f8e4fb356f0..f8e4fb356f0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/lucnum2_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/lucnum2_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/lucnum_ui.c b/Build/source/libs/gmp/gmp-src/mpz/lucnum_ui.c
index d1fe6b54cef..d1fe6b54cef 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/lucnum_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/lucnum_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/mfac_uiui.c b/Build/source/libs/gmp/gmp-src/mpz/mfac_uiui.c
index 3ea36bce9d2..3ea36bce9d2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/mfac_uiui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/mfac_uiui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/millerrabin.c b/Build/source/libs/gmp/gmp-src/mpz/millerrabin.c
index e1ce32c8937..1dab971c1ab 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/millerrabin.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/millerrabin.c
@@ -9,7 +9,8 @@
CERTAIN TO BE SUBJECT TO INCOMPATIBLE CHANGES OR DISAPPEAR COMPLETELY IN
FUTURE GNU MP RELEASES.
-Copyright 1991, 1993, 1994, 1996-2002, 2005 Free Software Foundation, Inc.
+Copyright 1991, 1993, 1994, 1996-2002, 2005, 2014 Free Software
+Foundation, Inc.
Contributed by John Amanatides.
@@ -117,7 +118,10 @@ millerrabin (mpz_srcptr n, mpz_srcptr nm1, mpz_ptr x, mpz_ptr y,
mpz_powm_ui (y, y, 2L, n);
if (mpz_cmp (y, nm1) == 0)
return 1;
- if (mpz_cmp_ui (y, 1L) == 0)
+ /* y == 1 means that the previous y was a non-trivial square root
+ of 1 (mod n). y == 0 means that n is a power of the base.
+ In either case, n is not prime. */
+ if (mpz_cmp_ui (y, 1L) <= 0)
return 0;
}
return 0;
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/mod.c b/Build/source/libs/gmp/gmp-src/mpz/mod.c
index f2de0f97831..f2de0f97831 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/mod.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/mod.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/mul.c b/Build/source/libs/gmp/gmp-src/mpz/mul.c
index 59a279eca6d..c4389158e29 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/mul.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/mul.c
@@ -113,7 +113,7 @@ mpz_mul (mpz_ptr w, mpz_srcptr u, mpz_srcptr v)
(*__gmp_free_func) (wp, (size_t) ALLOC (w) * GMP_LIMB_BYTES);
ALLOC (w) = wsize;
- wp = (mp_ptr) (*__gmp_allocate_func) ((size_t) wsize * GMP_LIMB_BYTES);
+ wp = __GMP_ALLOCATE_FUNC_LIMBS (wsize);
PTR (w) = wp;
}
else
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/mul_2exp.c b/Build/source/libs/gmp/gmp-src/mpz/mul_2exp.c
index f02fef7ee23..f02fef7ee23 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/mul_2exp.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/mul_2exp.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/mul_i.h b/Build/source/libs/gmp/gmp-src/mpz/mul_i.h
index 486a8fd63e6..486a8fd63e6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/mul_i.h
+++ b/Build/source/libs/gmp/gmp-src/mpz/mul_i.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/mul_si.c b/Build/source/libs/gmp/gmp-src/mpz/mul_si.c
index 9f29f601e29..9f29f601e29 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/mul_si.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/mul_si.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/mul_ui.c b/Build/source/libs/gmp/gmp-src/mpz/mul_ui.c
index d398c4f6f1f..d398c4f6f1f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/mul_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/mul_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/n_pow_ui.c b/Build/source/libs/gmp/gmp-src/mpz/n_pow_ui.c
index 6c3febe2375..6c3febe2375 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/n_pow_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/n_pow_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/neg.c b/Build/source/libs/gmp/gmp-src/mpz/neg.c
index eb46ab7f785..eb46ab7f785 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/neg.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/neg.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/nextprime.c b/Build/source/libs/gmp/gmp-src/mpz/nextprime.c
index 1493054695c..1493054695c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/nextprime.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/nextprime.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/oddfac_1.c b/Build/source/libs/gmp/gmp-src/mpz/oddfac_1.c
index cf0bff06505..cf0bff06505 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/oddfac_1.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/oddfac_1.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/out_raw.c b/Build/source/libs/gmp/gmp-src/mpz/out_raw.c
index 3b6b0b7cb5d..3b6b0b7cb5d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/out_raw.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/out_raw.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/out_str.c b/Build/source/libs/gmp/gmp-src/mpz/out_str.c
index 6c97039c64b..6c97039c64b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/out_str.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/out_str.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/perfpow.c b/Build/source/libs/gmp/gmp-src/mpz/perfpow.c
index 72ff3c89ac4..72ff3c89ac4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/perfpow.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/perfpow.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/perfsqr.c b/Build/source/libs/gmp/gmp-src/mpz/perfsqr.c
index 534f10ff563..534f10ff563 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/perfsqr.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/perfsqr.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/popcount.c b/Build/source/libs/gmp/gmp-src/mpz/popcount.c
index 06f0f0b3a26..06f0f0b3a26 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/popcount.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/popcount.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/pow_ui.c b/Build/source/libs/gmp/gmp-src/mpz/pow_ui.c
index 4891e978774..4891e978774 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/pow_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/pow_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/powm.c b/Build/source/libs/gmp/gmp-src/mpz/powm.c
index 4d13da7396f..4d13da7396f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/powm.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/powm.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/powm_sec.c b/Build/source/libs/gmp/gmp-src/mpz/powm_sec.c
index 98644ca4963..98644ca4963 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/powm_sec.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/powm_sec.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/powm_ui.c b/Build/source/libs/gmp/gmp-src/mpz/powm_ui.c
index 46e770ce7ec..e04bb0ad711 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/powm_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/powm_ui.c
@@ -282,7 +282,7 @@ mpz_powm_ui (mpz_ptr r, mpz_srcptr b, unsigned long int el, mpz_srcptr m)
}
else
{
- /* For large exponents, fake a mpz_t exponent and deflect to the more
+ /* For large exponents, fake an mpz_t exponent and deflect to the more
sophisticated mpz_powm. */
mpz_t e;
mp_limb_t ep[LIMBS_PER_ULONG];
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/pprime_p.c b/Build/source/libs/gmp/gmp-src/mpz/pprime_p.c
index f3d38a08210..f3d38a08210 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/pprime_p.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/pprime_p.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/primorial_ui.c b/Build/source/libs/gmp/gmp-src/mpz/primorial_ui.c
index f322edf5499..7a964a1f19b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/primorial_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/primorial_ui.c
@@ -83,7 +83,7 @@ see https://www.gnu.org/licenses/. */
/* Section sieve: sieving functions and tools for primes */
/*********************************************************/
-#if WANT_ASSERT
+#if 0
static mp_limb_t
bit_to_n (mp_limb_t bit) { return (bit*3+4)|1; }
#endif
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/prodlimbs.c b/Build/source/libs/gmp/gmp-src/mpz/prodlimbs.c
index 8d84bcb4353..8d84bcb4353 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/prodlimbs.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/prodlimbs.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/random.c b/Build/source/libs/gmp/gmp-src/mpz/random.c
index 1dca3a93cdd..1dca3a93cdd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/random.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/random.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/random2.c b/Build/source/libs/gmp/gmp-src/mpz/random2.c
index 7f9e5f28e8b..7f9e5f28e8b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/random2.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/random2.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/realloc.c b/Build/source/libs/gmp/gmp-src/mpz/realloc.c
index 3d2755ca0a1..3d2755ca0a1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/realloc.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/realloc.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/realloc2.c b/Build/source/libs/gmp/gmp-src/mpz/realloc2.c
index 3ccfaab1f06..3ccfaab1f06 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/realloc2.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/realloc2.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/remove.c b/Build/source/libs/gmp/gmp-src/mpz/remove.c
index 3d293587383..3d293587383 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/remove.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/remove.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/roinit_n.c b/Build/source/libs/gmp/gmp-src/mpz/roinit_n.c
index 137dbda83c6..137dbda83c6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/roinit_n.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/roinit_n.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/root.c b/Build/source/libs/gmp/gmp-src/mpz/root.c
index 31eb440b4f2..31eb440b4f2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/root.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/root.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/rootrem.c b/Build/source/libs/gmp/gmp-src/mpz/rootrem.c
index ac4a1e030af..ac4a1e030af 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/rootrem.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/rootrem.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/rrandomb.c b/Build/source/libs/gmp/gmp-src/mpz/rrandomb.c
index 8b1803c6baa..8b1803c6baa 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/rrandomb.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/rrandomb.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/scan0.c b/Build/source/libs/gmp/gmp-src/mpz/scan0.c
index de24595cfe9..de24595cfe9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/scan0.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/scan0.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/scan1.c b/Build/source/libs/gmp/gmp-src/mpz/scan1.c
index c9309de6913..e6b759e2beb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/scan1.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/scan1.c
@@ -1,6 +1,6 @@
/* mpz_scan1 -- search for a 1 bit.
-Copyright 2000-2002, 2004, 2012 Free Software Foundation, Inc.
+Copyright 2000-2002, 2004, 2012, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -90,7 +90,7 @@ mpz_scan1 (mpz_srcptr u, mp_bitcnt_t starting_bit) __GMP_NOTHROW
{
/* If there's a non-zero limb before ours then we're in the ones
complement region. */
- if (mpn_zero_p (u_ptr, starting_limb)) {
+ if (starting_limb == 0 || mpn_zero_p (u_ptr, starting_limb)) {
if (limb == 0)
/* Seeking for the first non-zero bit, it is the same for u and -u. */
goto search_nonzero;
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/set.c b/Build/source/libs/gmp/gmp-src/mpz/set.c
index 9d7d58c8d03..9d7d58c8d03 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/set.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/set.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/set_d.c b/Build/source/libs/gmp/gmp-src/mpz/set_d.c
index d40ee726d23..d40ee726d23 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/set_d.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/set_d.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/set_f.c b/Build/source/libs/gmp/gmp-src/mpz/set_f.c
index 4eb98198371..4eb98198371 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/set_f.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/set_f.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/set_q.c b/Build/source/libs/gmp/gmp-src/mpz/set_q.c
index 2627e822980..2627e822980 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/set_q.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/set_q.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/set_si.c b/Build/source/libs/gmp/gmp-src/mpz/set_si.c
index 1370368332e..1370368332e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/set_si.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/set_si.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/set_str.c b/Build/source/libs/gmp/gmp-src/mpz/set_str.c
index 848d2136a0a..848d2136a0a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/set_str.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/set_str.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/set_ui.c b/Build/source/libs/gmp/gmp-src/mpz/set_ui.c
index f36754cd59b..f36754cd59b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/set_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/set_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/setbit.c b/Build/source/libs/gmp/gmp-src/mpz/setbit.c
index 3c2c139f987..3c2c139f987 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/setbit.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/setbit.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/size.c b/Build/source/libs/gmp/gmp-src/mpz/size.c
index 2b324c34230..2b324c34230 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/size.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/size.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/sizeinbase.c b/Build/source/libs/gmp/gmp-src/mpz/sizeinbase.c
index 0f3851ea861..0f3851ea861 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/sizeinbase.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/sizeinbase.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/sqrt.c b/Build/source/libs/gmp/gmp-src/mpz/sqrt.c
index d906cfd59e8..0272319b3c9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/sqrt.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/sqrt.c
@@ -70,7 +70,7 @@ mpz_sqrt (mpz_ptr root, mpz_srcptr op)
}
else
{
- root_ptr = MPZ_REALLOC (root, root_size);
+ root_ptr = MPZ_NEWALLOC (root, root_size);
mpn_sqrtrem (root_ptr, NULL, op_ptr, op_size);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/sqrtrem.c b/Build/source/libs/gmp/gmp-src/mpz/sqrtrem.c
index 99685354d6e..63a06eb0b7b 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/sqrtrem.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/sqrtrem.c
@@ -74,7 +74,7 @@ mpz_sqrtrem (mpz_ptr root, mpz_ptr rem, mpz_srcptr op)
}
else
{
- root_ptr = MPZ_REALLOC (root, root_size);
+ root_ptr = MPZ_NEWALLOC (root, root_size);
rem_size = mpn_sqrtrem (root_ptr, rem_ptr, op_ptr, op_size);
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/sub.c b/Build/source/libs/gmp/gmp-src/mpz/sub.c
index 7cb022e0692..7cb022e0692 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/sub.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/sub.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/sub_ui.c b/Build/source/libs/gmp/gmp-src/mpz/sub_ui.c
index 3ce23d3555f..3ce23d3555f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/sub_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/sub_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpq/clear.c b/Build/source/libs/gmp/gmp-src/mpz/swap.c
index ce0b973f9f4..e5ef2673f38 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpq/clear.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/swap.c
@@ -1,6 +1,6 @@
-/* mpq_clear -- free the space occupied by a mpq_t.
+/* mpz_swap (dest_integer, src_integer) -- Swap U and V.
-Copyright 1991, 1994, 1995, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1997, 1998, 2001, 2012, 2015 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -32,10 +32,9 @@ see https://www.gnu.org/licenses/. */
#include "gmp-impl.h"
void
-mpq_clear (mpq_t m)
+mpz_swap (mpz_ptr u, mpz_ptr v) __GMP_NOTHROW
{
- (*__gmp_free_func) (PTR(NUM(m)),
- (size_t) ALLOC(NUM(m)) * GMP_LIMB_BYTES);
- (*__gmp_free_func) (PTR(DEN(m)),
- (size_t) ALLOC(DEN(m)) * GMP_LIMB_BYTES);
+ MP_SIZE_T_SWAP (ALLOC(u), ALLOC(v));
+ MP_SIZE_T_SWAP (SIZ(u), SIZ(v));
+ MP_PTR_SWAP (PTR(v), PTR(u));
}
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_q.c b/Build/source/libs/gmp/gmp-src/mpz/tdiv_q.c
index 38528f35bfb..38528f35bfb 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_q.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/tdiv_q.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_q_2exp.c b/Build/source/libs/gmp/gmp-src/mpz/tdiv_q_2exp.c
index 9ffcaf2bbbe..9ffcaf2bbbe 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_q_2exp.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/tdiv_q_2exp.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_q_ui.c b/Build/source/libs/gmp/gmp-src/mpz/tdiv_q_ui.c
index 88e90825290..88e90825290 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_q_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/tdiv_q_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_qr.c b/Build/source/libs/gmp/gmp-src/mpz/tdiv_qr.c
index ab9a37dae9c..ab9a37dae9c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_qr.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/tdiv_qr.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_qr_ui.c b/Build/source/libs/gmp/gmp-src/mpz/tdiv_qr_ui.c
index 4f667abe07d..4f667abe07d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_qr_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/tdiv_qr_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_r.c b/Build/source/libs/gmp/gmp-src/mpz/tdiv_r.c
index d9cb38c3232..d9cb38c3232 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_r.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/tdiv_r.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_r_2exp.c b/Build/source/libs/gmp/gmp-src/mpz/tdiv_r_2exp.c
index e21d90fecd5..e21d90fecd5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_r_2exp.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/tdiv_r_2exp.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_r_ui.c b/Build/source/libs/gmp/gmp-src/mpz/tdiv_r_ui.c
index 30addd6db79..30addd6db79 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_r_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/tdiv_r_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_ui.c b/Build/source/libs/gmp/gmp-src/mpz/tdiv_ui.c
index 328d67fdf88..328d67fdf88 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/tdiv_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/tstbit.c b/Build/source/libs/gmp/gmp-src/mpz/tstbit.c
index db3d75a64f9..db3d75a64f9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/tstbit.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/tstbit.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/ui_pow_ui.c b/Build/source/libs/gmp/gmp-src/mpz/ui_pow_ui.c
index a4f23c56555..a4f23c56555 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/ui_pow_ui.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/ui_pow_ui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/ui_sub.c b/Build/source/libs/gmp/gmp-src/mpz/ui_sub.c
index 579a3007954..579a3007954 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/ui_sub.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/ui_sub.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/urandomb.c b/Build/source/libs/gmp/gmp-src/mpz/urandomb.c
index f1295699b3f..f1295699b3f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/urandomb.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/urandomb.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/urandomm.c b/Build/source/libs/gmp/gmp-src/mpz/urandomm.c
index 434359cdd76..434359cdd76 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/urandomm.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/urandomm.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/mpz/xor.c b/Build/source/libs/gmp/gmp-src/mpz/xor.c
index cd701000d56..cd701000d56 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/mpz/xor.c
+++ b/Build/source/libs/gmp/gmp-src/mpz/xor.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/nextprime.c b/Build/source/libs/gmp/gmp-src/nextprime.c
index dd9ded58739..dd9ded58739 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/nextprime.c
+++ b/Build/source/libs/gmp/gmp-src/nextprime.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/primesieve.c b/Build/source/libs/gmp/gmp-src/primesieve.c
index 569e4cecea9..569e4cecea9 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/primesieve.c
+++ b/Build/source/libs/gmp/gmp-src/primesieve.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/Makefile.am b/Build/source/libs/gmp/gmp-src/printf/Makefile.am
index c8e3c78c6c8..bcbf55dbd75 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/Makefile.am
+++ b/Build/source/libs/gmp/gmp-src/printf/Makefile.am
@@ -29,7 +29,7 @@
# see https://www.gnu.org/licenses/.
-INCLUDES = -D__GMP_WITHIN_GMP -I$(top_srcdir)
+AM_CPPFLAGS = -D__GMP_WITHIN_GMP -I$(top_srcdir)
noinst_LTLIBRARIES = libprintf.la
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/asprintf.c b/Build/source/libs/gmp/gmp-src/printf/asprintf.c
index b35d9b10c82..b35d9b10c82 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/asprintf.c
+++ b/Build/source/libs/gmp/gmp-src/printf/asprintf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/asprntffuns.c b/Build/source/libs/gmp/gmp-src/printf/asprntffuns.c
index c141b7a99e0..c141b7a99e0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/asprntffuns.c
+++ b/Build/source/libs/gmp/gmp-src/printf/asprntffuns.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/doprnt.c b/Build/source/libs/gmp/gmp-src/printf/doprnt.c
index 5220feee206..5220feee206 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/doprnt.c
+++ b/Build/source/libs/gmp/gmp-src/printf/doprnt.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/doprntf.c b/Build/source/libs/gmp/gmp-src/printf/doprntf.c
index c501e8d06b2..c501e8d06b2 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/doprntf.c
+++ b/Build/source/libs/gmp/gmp-src/printf/doprntf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/doprnti.c b/Build/source/libs/gmp/gmp-src/printf/doprnti.c
index c4cb9c8da8d..c4cb9c8da8d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/doprnti.c
+++ b/Build/source/libs/gmp/gmp-src/printf/doprnti.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/fprintf.c b/Build/source/libs/gmp/gmp-src/printf/fprintf.c
index 2d8187d7cfc..2d8187d7cfc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/fprintf.c
+++ b/Build/source/libs/gmp/gmp-src/printf/fprintf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/obprintf.c b/Build/source/libs/gmp/gmp-src/printf/obprintf.c
index fbf3ea768f7..fbf3ea768f7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/obprintf.c
+++ b/Build/source/libs/gmp/gmp-src/printf/obprintf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/obprntffuns.c b/Build/source/libs/gmp/gmp-src/printf/obprntffuns.c
index 4cd1a91dec5..4cd1a91dec5 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/obprntffuns.c
+++ b/Build/source/libs/gmp/gmp-src/printf/obprntffuns.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/obvprintf.c b/Build/source/libs/gmp/gmp-src/printf/obvprintf.c
index 31eddbdf2a6..31eddbdf2a6 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/obvprintf.c
+++ b/Build/source/libs/gmp/gmp-src/printf/obvprintf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/printf.c b/Build/source/libs/gmp/gmp-src/printf/printf.c
index 7ac7b62faea..7ac7b62faea 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/printf.c
+++ b/Build/source/libs/gmp/gmp-src/printf/printf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/printffuns.c b/Build/source/libs/gmp/gmp-src/printf/printffuns.c
index 058c6b9d8bc..058c6b9d8bc 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/printffuns.c
+++ b/Build/source/libs/gmp/gmp-src/printf/printffuns.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/repl-vsnprintf.c b/Build/source/libs/gmp/gmp-src/printf/repl-vsnprintf.c
index a95003baa62..a95003baa62 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/repl-vsnprintf.c
+++ b/Build/source/libs/gmp/gmp-src/printf/repl-vsnprintf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/snprintf.c b/Build/source/libs/gmp/gmp-src/printf/snprintf.c
index fde5c806ebe..fde5c806ebe 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/snprintf.c
+++ b/Build/source/libs/gmp/gmp-src/printf/snprintf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/snprntffuns.c b/Build/source/libs/gmp/gmp-src/printf/snprntffuns.c
index 41a7670c6da..41a7670c6da 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/snprntffuns.c
+++ b/Build/source/libs/gmp/gmp-src/printf/snprntffuns.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/sprintf.c b/Build/source/libs/gmp/gmp-src/printf/sprintf.c
index 052a2655c9e..052a2655c9e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/sprintf.c
+++ b/Build/source/libs/gmp/gmp-src/printf/sprintf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/sprintffuns.c b/Build/source/libs/gmp/gmp-src/printf/sprintffuns.c
index 40374e1a07e..97969cdb50c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/sprintffuns.c
+++ b/Build/source/libs/gmp/gmp-src/printf/sprintffuns.c
@@ -80,7 +80,7 @@ gmp_sprintf_reps (char **bufp, int c, int reps)
}
static int
-gmp_sprintf_final (char **bufp, int c, int reps)
+gmp_sprintf_final (char **bufp)
{
char *buf = *bufp;
*buf = '\0';
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/vasprintf.c b/Build/source/libs/gmp/gmp-src/printf/vasprintf.c
index 44785dae2a7..44785dae2a7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/vasprintf.c
+++ b/Build/source/libs/gmp/gmp-src/printf/vasprintf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/vfprintf.c b/Build/source/libs/gmp/gmp-src/printf/vfprintf.c
index 839f133d9db..839f133d9db 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/vfprintf.c
+++ b/Build/source/libs/gmp/gmp-src/printf/vfprintf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/vprintf.c b/Build/source/libs/gmp/gmp-src/printf/vprintf.c
index 8e768978f56..8e768978f56 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/vprintf.c
+++ b/Build/source/libs/gmp/gmp-src/printf/vprintf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/vsnprintf.c b/Build/source/libs/gmp/gmp-src/printf/vsnprintf.c
index ed6f99885dd..ed6f99885dd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/vsnprintf.c
+++ b/Build/source/libs/gmp/gmp-src/printf/vsnprintf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/printf/vsprintf.c b/Build/source/libs/gmp/gmp-src/printf/vsprintf.c
index 099455d3254..099455d3254 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/printf/vsprintf.c
+++ b/Build/source/libs/gmp/gmp-src/printf/vsprintf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/rand/Makefile.am b/Build/source/libs/gmp/gmp-src/rand/Makefile.am
index 0cee1a76235..b3b98c0a4e1 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/rand/Makefile.am
+++ b/Build/source/libs/gmp/gmp-src/rand/Makefile.am
@@ -29,7 +29,7 @@
# see https://www.gnu.org/licenses/.
-INCLUDES = -D__GMP_WITHIN_GMP -I$(top_srcdir)
+AM_CPPFLAGS = -D__GMP_WITHIN_GMP -I$(top_srcdir)
noinst_LTLIBRARIES = librandom.la
diff --git a/Build/source/libs/gmp/gmp-6.0.0/rand/rand.c b/Build/source/libs/gmp/gmp-src/rand/rand.c
index 09e3b765bcd..09e3b765bcd 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/rand/rand.c
+++ b/Build/source/libs/gmp/gmp-src/rand/rand.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/rand/randbui.c b/Build/source/libs/gmp/gmp-src/rand/randbui.c
index 619ab91bd15..619ab91bd15 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/rand/randbui.c
+++ b/Build/source/libs/gmp/gmp-src/rand/randbui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/rand/randclr.c b/Build/source/libs/gmp/gmp-src/rand/randclr.c
index fb3798b73de..fb3798b73de 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/rand/randclr.c
+++ b/Build/source/libs/gmp/gmp-src/rand/randclr.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/rand/randdef.c b/Build/source/libs/gmp/gmp-src/rand/randdef.c
index 7d173f9364c..7d173f9364c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/rand/randdef.c
+++ b/Build/source/libs/gmp/gmp-src/rand/randdef.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/rand/randiset.c b/Build/source/libs/gmp/gmp-src/rand/randiset.c
index 66f4bc49033..66f4bc49033 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/rand/randiset.c
+++ b/Build/source/libs/gmp/gmp-src/rand/randiset.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/rand/randlc2s.c b/Build/source/libs/gmp/gmp-src/rand/randlc2s.c
index 013e877286d..013e877286d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/rand/randlc2s.c
+++ b/Build/source/libs/gmp/gmp-src/rand/randlc2s.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/rand/randlc2x.c b/Build/source/libs/gmp/gmp-src/rand/randlc2x.c
index 195f759327a..195f759327a 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/rand/randlc2x.c
+++ b/Build/source/libs/gmp/gmp-src/rand/randlc2x.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/rand/randmt.c b/Build/source/libs/gmp/gmp-src/rand/randmt.c
index f3cdc666626..f3cdc666626 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/rand/randmt.c
+++ b/Build/source/libs/gmp/gmp-src/rand/randmt.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/rand/randmt.h b/Build/source/libs/gmp/gmp-src/rand/randmt.h
index d64ff59548d..d64ff59548d 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/rand/randmt.h
+++ b/Build/source/libs/gmp/gmp-src/rand/randmt.h
diff --git a/Build/source/libs/gmp/gmp-6.0.0/rand/randmts.c b/Build/source/libs/gmp/gmp-src/rand/randmts.c
index 1db7855141c..7c1c262f5c4 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/rand/randmts.c
+++ b/Build/source/libs/gmp/gmp-src/rand/randmts.c
@@ -1,6 +1,6 @@
/* Mersenne Twister pseudo-random number generator functions.
-Copyright 2002, 2003, 2013 Free Software Foundation, Inc.
+Copyright 2002, 2003, 2013, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -117,7 +117,7 @@ randseed_mt (gmp_randstate_t rstate, mpz_srcptr seed)
p = (gmp_rand_mt_struct *) RNG_STATE (rstate);
- mpz_init2 (mod, 19937L);
+ mpz_init2 (mod, 19938L);
mpz_init2 (seed1, 19937L);
mpz_setbit (mod, 19937L);
diff --git a/Build/source/libs/gmp/gmp-6.0.0/rand/randmui.c b/Build/source/libs/gmp/gmp-src/rand/randmui.c
index 2d4ef86aa32..2d4ef86aa32 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/rand/randmui.c
+++ b/Build/source/libs/gmp/gmp-src/rand/randmui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/rand/rands.c b/Build/source/libs/gmp/gmp-src/rand/rands.c
index 1701da7a2c0..1701da7a2c0 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/rand/rands.c
+++ b/Build/source/libs/gmp/gmp-src/rand/rands.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/rand/randsd.c b/Build/source/libs/gmp/gmp-src/rand/randsd.c
index 1214d000d53..1214d000d53 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/rand/randsd.c
+++ b/Build/source/libs/gmp/gmp-src/rand/randsd.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/rand/randsdui.c b/Build/source/libs/gmp/gmp-src/rand/randsdui.c
index 1c97232e30e..1c97232e30e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/rand/randsdui.c
+++ b/Build/source/libs/gmp/gmp-src/rand/randsdui.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/scanf/Makefile.am b/Build/source/libs/gmp/gmp-src/scanf/Makefile.am
index b5e01482224..4f0f6c1fc9f 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/scanf/Makefile.am
+++ b/Build/source/libs/gmp/gmp-src/scanf/Makefile.am
@@ -29,7 +29,7 @@
# see https://www.gnu.org/licenses/.
-INCLUDES = -D__GMP_WITHIN_GMP -I$(top_srcdir)
+AM_CPPFLAGS = -D__GMP_WITHIN_GMP -I$(top_srcdir)
noinst_LTLIBRARIES = libscanf.la
diff --git a/Build/source/libs/gmp/gmp-6.0.0/scanf/doscan.c b/Build/source/libs/gmp/gmp-src/scanf/doscan.c
index 47b22706ced..47b22706ced 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/scanf/doscan.c
+++ b/Build/source/libs/gmp/gmp-src/scanf/doscan.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/scanf/fscanf.c b/Build/source/libs/gmp/gmp-src/scanf/fscanf.c
index 83f46169eda..83f46169eda 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/scanf/fscanf.c
+++ b/Build/source/libs/gmp/gmp-src/scanf/fscanf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/scanf/fscanffuns.c b/Build/source/libs/gmp/gmp-src/scanf/fscanffuns.c
index 396e9a175f7..396e9a175f7 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/scanf/fscanffuns.c
+++ b/Build/source/libs/gmp/gmp-src/scanf/fscanffuns.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/scanf/scanf.c b/Build/source/libs/gmp/gmp-src/scanf/scanf.c
index a944a7c029c..a944a7c029c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/scanf/scanf.c
+++ b/Build/source/libs/gmp/gmp-src/scanf/scanf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/scanf/sscanf.c b/Build/source/libs/gmp/gmp-src/scanf/sscanf.c
index b3d12dcda64..b3d12dcda64 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/scanf/sscanf.c
+++ b/Build/source/libs/gmp/gmp-src/scanf/sscanf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/scanf/sscanffuns.c b/Build/source/libs/gmp/gmp-src/scanf/sscanffuns.c
index ed5bdf57d34..ed5bdf57d34 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/scanf/sscanffuns.c
+++ b/Build/source/libs/gmp/gmp-src/scanf/sscanffuns.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/scanf/vfscanf.c b/Build/source/libs/gmp/gmp-src/scanf/vfscanf.c
index 8011b557549..8011b557549 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/scanf/vfscanf.c
+++ b/Build/source/libs/gmp/gmp-src/scanf/vfscanf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/scanf/vscanf.c b/Build/source/libs/gmp/gmp-src/scanf/vscanf.c
index 51feebf72ef..51feebf72ef 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/scanf/vscanf.c
+++ b/Build/source/libs/gmp/gmp-src/scanf/vscanf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/scanf/vsscanf.c b/Build/source/libs/gmp/gmp-src/scanf/vsscanf.c
index 6fb043dce25..6fb043dce25 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/scanf/vsscanf.c
+++ b/Build/source/libs/gmp/gmp-src/scanf/vsscanf.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/tal-debug.c b/Build/source/libs/gmp/gmp-src/tal-debug.c
index 35912af360c..35912af360c 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/tal-debug.c
+++ b/Build/source/libs/gmp/gmp-src/tal-debug.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/tal-notreent.c b/Build/source/libs/gmp/gmp-src/tal-notreent.c
index ed162e552b3..ed162e552b3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/tal-notreent.c
+++ b/Build/source/libs/gmp/gmp-src/tal-notreent.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/tal-reent.c b/Build/source/libs/gmp/gmp-src/tal-reent.c
index 92f516b5ff3..92f516b5ff3 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/tal-reent.c
+++ b/Build/source/libs/gmp/gmp-src/tal-reent.c
diff --git a/Build/source/libs/gmp/gmp-6.0.0/version.c b/Build/source/libs/gmp/gmp-src/version.c
index b75a3389e0e..b75a3389e0e 100644
--- a/Build/source/libs/gmp/gmp-6.0.0/version.c
+++ b/Build/source/libs/gmp/gmp-src/version.c
diff --git a/Build/source/libs/gmp/native/configure b/Build/source/libs/gmp/native/configure
index 59838eb2714..53c04ad3a5f 100755
--- a/Build/source/libs/gmp/native/configure
+++ b/Build/source/libs/gmp/native/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gmp native 6.0.0.
+# Generated by GNU Autoconf 2.69 for gmp native 6.1.0.
#
# Report bugs to <tex-k@tug.org>.
#
@@ -579,12 +579,12 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='gmp native'
PACKAGE_TARNAME='gmp-native'
-PACKAGE_VERSION='6.0.0'
-PACKAGE_STRING='gmp native 6.0.0'
+PACKAGE_VERSION='6.1.0'
+PACKAGE_STRING='gmp native 6.1.0'
PACKAGE_BUGREPORT='tex-k@tug.org'
PACKAGE_URL=''
-ac_unique_file="../gmp-6.0.0/gmp-impl.h"
+ac_unique_file="../gmp-src/gmp-impl.h"
ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
@@ -1234,7 +1234,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures gmp native 6.0.0 to adapt to many kinds of systems.
+\`configure' configures gmp native 6.1.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1300,7 +1300,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gmp native 6.0.0:";;
+ short | recursive ) echo "Configuration of gmp native 6.1.0:";;
esac
cat <<\_ACEOF
@@ -1396,7 +1396,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gmp native configure 6.0.0
+gmp native configure 6.1.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1497,7 +1497,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gmp native $as_me 6.0.0, which was
+It was created by gmp native $as_me 6.1.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3420,7 +3420,7 @@ fi
# Define the identity of the package.
PACKAGE='gmp-native'
- VERSION='6.0.0'
+ VERSION='6.1.0'
cat >>confdefs.h <<_ACEOF
@@ -4427,7 +4427,7 @@ case $ac_cv_search_pow in #(
esac
-GMP_TREE=../gmp-6.0.0
+GMP_TREE=../gmp-src
ac_config_headers="$ac_config_headers config.h"
@@ -4974,7 +4974,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gmp native $as_me 6.0.0, which was
+This file was extended by gmp native $as_me 6.1.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -5040,7 +5040,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gmp native config.status 6.0.0
+gmp native config.status 6.1.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/Build/source/libs/gmp/native/configure.ac b/Build/source/libs/gmp/native/configure.ac
index aa0257c3d0d..b2c85299e01 100644
--- a/Build/source/libs/gmp/native/configure.ac
+++ b/Build/source/libs/gmp/native/configure.ac
@@ -9,7 +9,7 @@ dnl
m4_include([../version.ac])[] dnl define gmp_version
AC_INIT([gmp native], gmp_version, [tex-k@tug.org])
AC_PREREQ([2.63])
-AC_CONFIG_SRCDIR([../gmp-]gmp_version[/gmp-impl.h])
+AC_CONFIG_SRCDIR([../gmp-src/gmp-impl.h])
AC_CONFIG_AUX_DIR([../../../build-aux])
AC_CONFIG_MACRO_DIR([../../../m4])
@@ -20,7 +20,7 @@ AC_PROG_LN_S
KPSE_SEARCH_LIBS([MATH_LIB], [pow], [m])
-AC_SUBST([GMP_TREE], [../gmp-]gmp_version)
+AC_SUBST([GMP_TREE], [../gmp-src])
dnl Not used but avoids putting useless -D's on the command line.
AC_CONFIG_HEADERS([config.h])
diff --git a/Build/source/libs/gmp/version.ac b/Build/source/libs/gmp/version.ac
index 896595cb531..306cacde5bc 100644
--- a/Build/source/libs/gmp/version.ac
+++ b/Build/source/libs/gmp/version.ac
@@ -8,4 +8,4 @@ dnl
dnl --------------------------------------------------------
dnl
dnl m4-include this file to define the current gmp version
-m4_define([gmp_version], [6.0.0])
+m4_define([gmp_version], [6.1.0])