Module Name: src
Committed By: maya
Date: Mon Apr 15 14:02:23 UTC 2019
Modified Files:
src/external/lgpl3/gmp/lib/libgmp/arch/riscv64: Makefile.inc gmp.h
Log Message:
Fake mknative
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/external/lgpl3/gmp/lib/libgmp/arch/riscv64/Makefile.inc \
src/external/lgpl3/gmp/lib/libgmp/arch/riscv64/gmp.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/lgpl3/gmp/lib/libgmp/arch/riscv64/Makefile.inc
diff -u src/external/lgpl3/gmp/lib/libgmp/arch/riscv64/Makefile.inc:1.1 src/external/lgpl3/gmp/lib/libgmp/arch/riscv64/Makefile.inc:1.2
--- src/external/lgpl3/gmp/lib/libgmp/arch/riscv64/Makefile.inc:1.1 Fri Sep 19 17:23:57 2014
+++ src/external/lgpl3/gmp/lib/libgmp/arch/riscv64/Makefile.inc Mon Apr 15 14:02:23 2019
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.1 2014/09/19 17:23:57 matt Exp $
+# $NetBSD: Makefile.inc,v 1.2 2019/04/15 14:02:23 maya Exp $
SRCS+= \
random.c \
@@ -15,7 +15,6 @@ SRCS+= \
toom8h_mul.c \
zero.c \
mod_1_4.c \
- gcdext.c \
add_err3_n.c \
binvert.c \
mu_div_q.c \
@@ -26,14 +25,12 @@ SRCS+= \
dcpi1_div_qr.c \
hgcd_reduce.c \
matrix22_mul1_inverse_vector.c \
- tabselect.c \
toom6_sqr.c \
divrem_1.c \
hgcd_step.c \
sub_err3_n.c \
mod_1.c \
toom42_mulmid.c \
- divexact.c \
jacobi.c \
powlo.c \
mul.c \
@@ -65,7 +62,6 @@ SRCS+= \
rshift.c \
div_q.c \
jacbase.c \
- addcnd_n.c \
hgcd_matrix.c \
toom_eval_dgr3_pm1.c \
mullo_n.c \
@@ -77,7 +73,6 @@ SRCS+= \
add_1.c \
sqr_basecase.c \
toom_interpolate_5pts.c \
- sbpi1_bdiv_q.c \
pre_mod_1.c \
hgcd.c \
bdiv_dbm1c.c \
@@ -97,11 +92,9 @@ SRCS+= \
sub_n.c \
toom_eval_pm2.c \
add_n.c \
- subcnd_n.c \
hgcd2.c \
toom62_mul.c \
comb_tables.c \
- sbpi1_bdiv_qr.c \
sub_err2_n.c \
scan1.c \
brootinv.c \
@@ -136,10 +129,8 @@ SRCS+= \
dive_1.c \
cmp.c \
toom_eval_pm1.c \
- hgcd_appr.c \
scan0.c \
gcd_subdiv_step.c \
- sbpi1_div_qr.c \
invert.c \
sub.c \
toom_eval_pm2rexp.c \
@@ -155,30 +146,187 @@ SRCS+= \
pow_1.c \
get_d.c \
toom52_mul.c \
- sbpi1_div_q.c \
diveby3.c \
fib2_ui.c \
bdiv_qr.c \
hgcd_jacobi.c \
toom3_sqr.c \
- gcd.c \
redc_n.c \
sub_err1_n.c \
C_SRCS_LIST= \
- xor_n.c mpn/generic/logops_n.c \
- sb_div_r_sec.c mpn/generic/sb_div_sec.c \
- nand_n.c mpn/generic/logops_n.c \
- nior_n.c mpn/generic/logops_n.c \
+ random.c mpn/generic/random.c \
+ toom_interpolate_7pts.c mpn/generic/toom_interpolate_7pts.c \
+ sbpi1_divappr_q.c mpn/generic/sbpi1_divappr_q.c \
+ random2.c mpn/generic/random2.c \
+ mu_bdiv_q.c mpn/generic/mu_bdiv_q.c \
+ mulmid_basecase.c mpn/generic/mulmid_basecase.c \
+ jacobi_2.c mpn/generic/jacobi_2.c \
+ toom32_mul.c mpn/generic/toom32_mul.c \
+ toom44_mul.c mpn/generic/toom44_mul.c \
+ toom8h_mul.c mpn/generic/toom8h_mul.c \
+ toom2_sqr.c mpn/generic/toom2_sqr.c \
+ zero.c mpn/generic/zero.c \
+ mod_1_4.c mpn/generic/mod_1_4.c \
+ gcdext.c mpn/generic/gcdext.c \
hamdist.c mpn/generic/popham.c \
- popcount.c mpn/generic/popham.c \
- sbpi1_div_qr_sec.c mpn/generic/sbpi1_div_sec.c \
- and_n.c mpn/generic/logops_n.c \
- ior_n.c mpn/generic/logops_n.c \
- sb_div_qr_sec.c mpn/generic/sb_div_sec.c \
+ sec_powm.c mpn/generic/sec_powm.c \
+ add_err3_n.c mpn/generic/add_err3_n.c \
+ binvert.c mpn/generic/binvert.c \
+ mu_div_q.c mpn/generic/mu_div_q.c \
+ and_n.c mpn/generic/logops_n.c \
+ invertappr.c mpn/generic/invertappr.c \
+ add_n_sub_n.c mpn/generic/add_n_sub_n.c \
+ dump.c mpn/generic/dump.c \
+ mu_divappr_q.c mpn/generic/mu_divappr_q.c \
+ dcpi1_div_qr.c mpn/generic/dcpi1_div_qr.c \
+ hgcd_reduce.c mpn/generic/hgcd_reduce.c \
+ matrix22_mul1_inverse_vector.c mpn/generic/matrix22_mul1_inverse_vector.c \
+ toom6_sqr.c mpn/generic/toom6_sqr.c \
+ divrem_1.c mpn/generic/divrem_1.c \
+ hgcd_step.c mpn/generic/hgcd_step.c \
+ sub_err3_n.c mpn/generic/sub_err3_n.c \
+ mod_1.c mpn/generic/mod_1.c \
+ toom42_mulmid.c mpn/generic/toom42_mulmid.c \
+ sec_div_qr.c mpn/generic/sec_div.c \
+ andn_n.c mpn/generic/logops_n.c \
+ divexact.c mpn/generic/divexact.c \
+ jacobi.c mpn/generic/jacobi.c \
+ powlo.c mpn/generic/powlo.c \
+ mul.c mpn/generic/mul.c \
+ set_str.c mpn/generic/set_str.c \
+ toom42_mul.c mpn/generic/toom42_mul.c \
+ toom_interpolate_6pts.c mpn/generic/toom_interpolate_6pts.c \
+ toom54_mul.c mpn/generic/toom54_mul.c \
+ dcpi1_divappr_q.c mpn/generic/dcpi1_divappr_q.c \
+ toom_eval_dgr3_pm2.c mpn/generic/toom_eval_dgr3_pm2.c \
+ mod_1_3.c mpn/generic/mod_1_3.c \
+ xor_n.c mpn/generic/logops_n.c \
+ nior_n.c mpn/generic/logops_n.c \
+ toom_couple_handling.c mpn/generic/toom_couple_handling.c \
+ add.c mpn/generic/add.c \
+ div_qr_2.c mpn/generic/div_qr_2.c \
+ toom_interpolate_12pts.c mpn/generic/toom_interpolate_12pts.c \
+ perfsqr.c mpn/generic/perfsqr.c \
+ toom53_mul.c mpn/generic/toom53_mul.c \
+ toom_eval_pm2exp.c mpn/generic/toom_eval_pm2exp.c \
+ mu_div_qr.c mpn/generic/mu_div_qr.c \
+ toom_interpolate_16pts.c mpn/generic/toom_interpolate_16pts.c \
+ bdiv_q.c mpn/generic/bdiv_q.c \
+ sec_invert.c mpn/generic/sec_invert.c \
+ toom22_mul.c mpn/generic/toom22_mul.c \
+ bsqrtinv.c mpn/generic/bsqrtinv.c \
+ toom4_sqr.c mpn/generic/toom4_sqr.c \
+ div_q.c mpn/generic/div_q.c \
+ jacbase.c mpn/generic/jacbase.c \
+ sec_sqr.c mpn/generic/sec_sqr.c \
+ hgcd_matrix.c mpn/generic/hgcd_matrix.c \
+ toom_eval_dgr3_pm1.c mpn/generic/toom_eval_dgr3_pm1.c \
+ mullo_n.c mpn/generic/mullo_n.c \
+ toom33_mul.c mpn/generic/toom33_mul.c \
+ mod_1_2.c mpn/generic/mod_1_2.c \
+ sqrlo.c mpn/generic/sqrlo.c \
+ sub_1.c mpn/generic/sub_1.c \
+ add_err2_n.c mpn/generic/add_err2_n.c \
+ trialdiv.c mpn/generic/trialdiv.c \
+ add_1.c mpn/generic/add_1.c \
+ sqr_basecase.c mpn/generic/sqr_basecase.c \
+ toom_interpolate_5pts.c mpn/generic/toom_interpolate_5pts.c \
+ sbpi1_bdiv_q.c mpn/generic/sbpi1_bdiv_q.c \
+ pre_mod_1.c mpn/generic/pre_mod_1.c \
+ hgcd.c mpn/generic/hgcd.c \
+ div_qr_1.c mpn/generic/div_qr_1.c \
+ sqrtrem.c mpn/generic/sqrtrem.c \
+ bdiv_q_1.c mpn/generic/bdiv_q_1.c \
+ gcdext_1.c mpn/generic/gcdext_1.c \
+ toom63_mul.c mpn/generic/toom63_mul.c \
+ div_qr_2u_pi1.c mpn/generic/div_qr_2u_pi1.c \
+ mul_basecase.c mpn/generic/mul_basecase.c \
+ toom8_sqr.c mpn/generic/toom8_sqr.c \
+ neg.c mpn/generic/neg.c \
+ gcdext_lehmer.c mpn/generic/gcdext_lehmer.c \
+ divis.c mpn/generic/divis.c \
+ dcpi1_div_q.c mpn/generic/dcpi1_div_q.c \
+ sec_div_r.c mpn/generic/sec_div.c \
+ toom_eval_pm2.c mpn/generic/toom_eval_pm2.c \
+ hgcd2.c mpn/generic/hgcd2.c \
+ toom62_mul.c mpn/generic/toom62_mul.c \
+ comb_tables.c mpn/generic/comb_tables.c \
+ sbpi1_bdiv_qr.c mpn/generic/sbpi1_bdiv_qr.c \
+ sub_err2_n.c mpn/generic/sub_err2_n.c \
+ scan1.c mpn/generic/scan1.c \
+ brootinv.c mpn/generic/brootinv.c \
+ pre_divrem_1.c mpn/generic/pre_divrem_1.c \
+ perfpow.c mpn/generic/perfpow.c \
+ get_str.c mpn/generic/get_str.c \
+ mulmod_bnm1.c mpn/generic/mulmod_bnm1.c \
+ mullo_basecase.c mpn/generic/mullo_basecase.c \
+ ior_n.c mpn/generic/logops_n.c \
+ tdiv_qr.c mpn/generic/tdiv_qr.c \
+ sec_pi1_div_qr.c mpn/generic/sec_pi1_div.c \
+ div_qr_2n_pi1.c mpn/generic/div_qr_2n_pi1.c \
+ toom43_mul.c mpn/generic/toom43_mul.c \
+ mod_1_1.c mpn/generic/mod_1_1.c \
+ matrix22_mul.c mpn/generic/matrix22_mul.c \
+ sec_pi1_div_r.c mpn/generic/sec_pi1_div.c \
xnor_n.c mpn/generic/logops_n.c \
iorn_n.c mpn/generic/logops_n.c \
- sbpi1_div_r_sec.c mpn/generic/sbpi1_div_sec.c \
- andn_n.c mpn/generic/logops_n.c \
+ divrem.c mpn/generic/divrem.c \
+ bsqrt.c mpn/generic/bsqrt.c \
+ gcd_1.c mpn/generic/gcd_1.c \
+ dcpi1_bdiv_qr.c mpn/generic/dcpi1_bdiv_qr.c \
+ mul_n.c mpn/generic/mul_n.c \
+ redc_2.c mpn/generic/redc_2.c \
+ toom6h_mul.c mpn/generic/toom6h_mul.c \
+ sqrmod_bnm1.c mpn/generic/sqrmod_bnm1.c \
+ mul_fft.c mpn/generic/mul_fft.c \
+ mulmid.c mpn/generic/mulmid.c \
+ powm.c mpn/generic/powm.c \
+ rootrem.c mpn/generic/rootrem.c \
+ cnd_sub_n.c mpn/generic/cnd_sub_n.c \
+ cnd_add_n.c mpn/generic/cnd_add_n.c \
+ toom_interpolate_8pts.c mpn/generic/toom_interpolate_8pts.c \
+ remove.c mpn/generic/remove.c \
+ lshiftc.c mpn/generic/lshiftc.c \
+ sec_mul.c mpn/generic/sec_mul.c \
+ cmp.c mpn/generic/cmp.c \
+ toom_eval_pm1.c mpn/generic/toom_eval_pm1.c \
+ nand_n.c mpn/generic/logops_n.c \
+ hgcd_appr.c mpn/generic/hgcd_appr.c \
+ cnd_swap.c mpn/generic/cnd_swap.c \
+ scan0.c mpn/generic/scan0.c \
+ gcd_subdiv_step.c mpn/generic/gcd_subdiv_step.c \
+ sbpi1_div_qr.c mpn/generic/sbpi1_div_qr.c \
+ invert.c mpn/generic/invert.c \
+ sub.c mpn/generic/sub.c \
+ sqrlo_basecase.c mpn/generic/sqrlo_basecase.c \
+ toom_eval_pm2rexp.c mpn/generic/toom_eval_pm2rexp.c \
+ sec_sub_1.c mpn/generic/sec_aors_1.c \
+ broot.c mpn/generic/broot.c \
+ sec_add_1.c mpn/generic/sec_aors_1.c \
+ popcount.c mpn/generic/popham.c \
+ dcpi1_bdiv_q.c mpn/generic/dcpi1_bdiv_q.c \
+ hgcd2_jacobi.c mpn/generic/hgcd2_jacobi.c \
+ add_err1_n.c mpn/generic/add_err1_n.c \
+ mulmid_n.c mpn/generic/mulmid_n.c \
+ redc_1.c mpn/generic/redc_1.c \
+ sqr.c mpn/generic/sqr.c \
+ nussbaumer_mul.c mpn/generic/nussbaumer_mul.c \
+ zero_p.c mpn/generic/zero_p.c \
+ mu_bdiv_qr.c mpn/generic/mu_bdiv_qr.c \
+ pow_1.c mpn/generic/pow_1.c \
+ get_d.c mpn/generic/get_d.c \
+ toom52_mul.c mpn/generic/toom52_mul.c \
+ sbpi1_div_q.c mpn/generic/sbpi1_div_q.c \
+ diveby3.c mpn/generic/diveby3.c \
+ fib2_ui.c mpn/generic/fib2_ui.c \
+ bdiv_qr.c mpn/generic/bdiv_qr.c \
+ hgcd_jacobi.c mpn/generic/hgcd_jacobi.c \
+ div_qr_1n_pi1.c mpn/generic/div_qr_1n_pi1.c \
+ sizeinbase.c mpn/generic/sizeinbase.c \
+ toom3_sqr.c mpn/generic/toom3_sqr.c \
+ gcd.c mpn/generic/gcd.c \
+ redc_n.c mpn/generic/redc_n.c \
+ sub_err1_n.c mpn/generic/sub_err1_n.c
GMP_LIMB_BITS=64
Index: src/external/lgpl3/gmp/lib/libgmp/arch/riscv64/gmp.h
diff -u src/external/lgpl3/gmp/lib/libgmp/arch/riscv64/gmp.h:1.1 src/external/lgpl3/gmp/lib/libgmp/arch/riscv64/gmp.h:1.2
--- src/external/lgpl3/gmp/lib/libgmp/arch/riscv64/gmp.h:1.1 Fri Sep 19 17:23:57 2014
+++ src/external/lgpl3/gmp/lib/libgmp/arch/riscv64/gmp.h Mon Apr 15 14:02:23 2019
@@ -1,23 +1,32 @@
/* Definitions for GNU multiple precision functions. -*- mode: c -*-
-Copyright 1991, 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
-2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free
-Software Foundation, Inc.
+Copyright 1991, 1993-1997, 1999-2016 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 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.
+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 Lesser General Public
-License for more details.
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
+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/. */
#ifndef __GMP_H__
@@ -40,23 +49,15 @@ along with the GNU MP Library. If not,
#define GMP_NAIL_MASK (~ GMP_NUMB_MASK)
-/* The following (everything under ifndef __GNU_MP__) must be identical in
- gmp.h and mp.h to allow both to be included in an application or during
- the library build. */
#ifndef __GNU_MP__
-#define __GNU_MP__ 5
+#define __GNU_MP__ 6
-#define __need_size_t /* tell gcc stddef.h we only want size_t */
-#if defined (__cplusplus)
-#include <cstddef> /* for size_t */
-#else
#include <stddef.h> /* for size_t */
-#endif
-#undef __need_size_t
+#include <limits.h>
/* Instantiated by configure. */
#if ! defined (__GMP_WITHIN_CONFIGURE)
-/* #undef _LONG_LONG_LIMB */
+#define _LONG_LONG_LIMB 1
#define __GMP_LIBGMP_DLL 0
#endif
@@ -228,8 +229,6 @@ typedef const __mpq_struct *mpq_srcptr;
typedef __mpq_struct *mpq_ptr;
-/* This is not wanted in mp.h, so put it outside the __GNU_MP__ common
- section. */
#if __GMP_LIBGMP_DLL
#ifdef __GMP_WITHIN_GMPXX
/* compiling to go into a DLL libgmpxx */
@@ -264,7 +263,8 @@ typedef __mpq_struct *mpq_ptr;
|| defined (_MSL_STDIO_H) /* Metrowerks */ \
|| defined (_STDIO_H_INCLUDED) /* QNX4 */ \
|| defined (_ISO_STDIO_ISO_H) /* Sun C++ */ \
- || defined (__STDIO_LOADED) /* VMS */
+ || defined (__STDIO_LOADED) /* VMS */ \
+ || defined (__DEFINED_FILE) /* musl */
#define _GMP_H_HAVE_FILE 1
#endif
@@ -276,16 +276,14 @@ typedef __mpq_struct *mpq_ptr;
#define _GMP_H_HAVE_OBSTACK 1
#endif
-/* The prototypes for gmp_vprintf etc are provided only if va_list is
- available, via an application having included <stdarg.h> or <varargs.h>.
- Usually va_list is a typedef so can't be tested directly, but C99
- specifies that va_start is a macro (and it was normally a macro on past
- systems too), so look for that.
+/* The prototypes for gmp_vprintf etc are provided only if va_list is defined,
+ via an application having included <stdarg.h>. Usually va_list is a typedef
+ so can't be tested directly, but C99 specifies that va_start is a macro.
<stdio.h> will define some sort of va_list for vprintf and vfprintf, but
let's not bother trying to use that since it's not standard and since
application uses for gmp_vprintf etc will almost certainly require the
- whole <stdarg.h> or <varargs.h> anyway. */
+ whole <stdarg.h> anyway. */
#ifdef va_start
#define _GMP_H_HAVE_VA_LIST 1
@@ -359,10 +357,11 @@ typedef __mpq_struct *mpq_ptr;
GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
inline semantics, unless -fgnu89-inline is used. */
#ifdef __GNUC__
-#if (defined __GNUC_STDC_INLINE__) || \
- (__GNUC__ == 4 && __GNUC_MINOR__ >= 2) || \
- (__GNUC__ > 4)
+#if (defined __GNUC_STDC_INLINE__) || (__GNUC__ == 4 && __GNUC_MINOR__ == 2) \
+ || (defined __GNUC_GNU_INLINE__ && defined __cplusplus)
#define __GMP_EXTERN_INLINE extern __inline__ __attribute__ ((__gnu_inline__))
+#else
+#define __GMP_EXTERN_INLINE extern __inline__
#endif
#define __GMP_INLINE_PROTOTYPES 1
#endif
@@ -443,12 +442,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 "~". */
-#define __GMP_UINT_MAX (~ (unsigned) 0)
-#define __GMP_ULONG_MAX (~ (unsigned long) 0)
-#define __GMP_USHRT_MAX ((unsigned short) ~0)
-
/* __builtin_expect is in gcc 3.0, and not in 2.95. */
#if __GMP_GNUC_PREREQ (3,0)
@@ -466,7 +459,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))
@@ -483,8 +476,8 @@ __GMP_DECLSPEC void mp_set_memory_functi
#define mp_get_memory_functions __gmp_get_memory_functions
__GMP_DECLSPEC void mp_get_memory_functions (void *(**) (size_t),
- void *(**) (void *, size_t, size_t),
- void (**) (void *, size_t)) __GMP_NOTHROW;
+ void *(**) (void *, size_t, size_t),
+ void (**) (void *, size_t)) __GMP_NOTHROW;
#define mp_bits_per_limb __gmp_bits_per_limb
__GMP_DECLSPEC extern const int mp_bits_per_limb;
@@ -1116,6 +1109,22 @@ __GMP_DECLSPEC void mpz_urandomm (mpz_pt
#define mpz_eor __gmpz_xor
__GMP_DECLSPEC void mpz_xor (mpz_ptr, mpz_srcptr, mpz_srcptr);
+#define mpz_limbs_read __gmpz_limbs_read
+__GMP_DECLSPEC mp_srcptr mpz_limbs_read (mpz_srcptr);
+
+#define mpz_limbs_write __gmpz_limbs_write
+__GMP_DECLSPEC mp_ptr mpz_limbs_write (mpz_ptr, mp_size_t);
+
+#define mpz_limbs_modify __gmpz_limbs_modify
+__GMP_DECLSPEC mp_ptr mpz_limbs_modify (mpz_ptr, mp_size_t);
+
+#define mpz_limbs_finish __gmpz_limbs_finish
+__GMP_DECLSPEC void mpz_limbs_finish (mpz_ptr, mp_size_t);
+
+#define mpz_roinit_n __gmpz_roinit_n
+__GMP_DECLSPEC mpz_srcptr mpz_roinit_n (mpz_ptr, mp_srcptr, mp_size_t);
+
+#define MPZ_ROINIT_N(xp, xs) {{0, (xs),(xp) }}
/**************** Rational (i.e. Q) routines. ****************/
@@ -1145,6 +1154,9 @@ __GMP_DECLSPEC int _mpq_cmp_si (mpq_srcp
#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);
@@ -1252,6 +1264,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;
@@ -1462,6 +1477,14 @@ __GMP_DECLSPEC mp_limb_t mpn_addmul_1 (m
__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))
@@ -1480,6 +1503,9 @@ __GMP_DECLSPEC mp_limb_t mpn_divrem_1 (m
#define mpn_divrem_2 __MPN(divrem_2)
__GMP_DECLSPEC mp_limb_t mpn_divrem_2 (mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr);
+#define mpn_div_qr_1 __MPN(div_qr_1)
+__GMP_DECLSPEC mp_limb_t mpn_div_qr_1 (mp_ptr, mp_limb_t *, mp_srcptr, mp_size_t, mp_limb_t);
+
#define mpn_div_qr_2 __MPN(div_qr_2)
__GMP_DECLSPEC mp_limb_t mpn_div_qr_2 (mp_ptr, mp_ptr, mp_srcptr, mp_size_t, mp_srcptr);
@@ -1525,9 +1551,7 @@ __GMP_DECLSPEC mp_limb_t mpn_neg (mp_ptr
#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;
@@ -1563,6 +1587,9 @@ __GMP_DECLSPEC mp_bitcnt_t mpn_scan1 (mp
#define mpn_set_str __MPN(set_str)
__GMP_DECLSPEC mp_size_t mpn_set_str (mp_ptr, const unsigned char *, size_t, int);
+#define mpn_sizeinbase __MPN(sizeinbase)
+__GMP_DECLSPEC size_t mpn_sizeinbase (mp_srcptr, mp_size_t, int);
+
#define mpn_sqrtrem __MPN(sqrtrem)
__GMP_DECLSPEC mp_size_t mpn_sqrtrem (mp_ptr, mp_ptr, mp_srcptr, mp_size_t);
@@ -1609,8 +1636,56 @@ __GMP_DECLSPEC void mpn_copyd (mp_ptr, m
#define mpn_zero __MPN(zero)
__GMP_DECLSPEC void mpn_zero (mp_ptr, mp_size_t);
-#define mpn_udiv_w_sdiv __MPN(udiv_w_sdiv)
-__GMP_DECLSPEC mp_limb_t mpn_udiv_w_sdiv (mp_limb_t *, mp_limb_t, mp_limb_t, mp_limb_t);
+#define mpn_cnd_add_n __MPN(cnd_add_n)
+__GMP_DECLSPEC mp_limb_t mpn_cnd_add_n (mp_limb_t, mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
+#define mpn_cnd_sub_n __MPN(cnd_sub_n)
+__GMP_DECLSPEC mp_limb_t mpn_cnd_sub_n (mp_limb_t, mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
+
+#define mpn_sec_add_1 __MPN(sec_add_1)
+__GMP_DECLSPEC mp_limb_t mpn_sec_add_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t, mp_ptr);
+#define mpn_sec_add_1_itch __MPN(sec_add_1_itch)
+__GMP_DECLSPEC mp_size_t mpn_sec_add_1_itch (mp_size_t) __GMP_ATTRIBUTE_PURE;
+
+#define mpn_sec_sub_1 __MPN(sec_sub_1)
+__GMP_DECLSPEC mp_limb_t mpn_sec_sub_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t, mp_ptr);
+#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)
+__GMP_DECLSPEC mp_size_t mpn_sec_mul_itch (mp_size_t, mp_size_t) __GMP_ATTRIBUTE_PURE;
+
+#define mpn_sec_sqr __MPN(sec_sqr)
+__GMP_DECLSPEC void mpn_sec_sqr (mp_ptr, mp_srcptr, mp_size_t, mp_ptr);
+#define mpn_sec_sqr_itch __MPN(sec_sqr_itch)
+__GMP_DECLSPEC mp_size_t mpn_sec_sqr_itch (mp_size_t) __GMP_ATTRIBUTE_PURE;
+
+#define mpn_sec_powm __MPN(sec_powm)
+__GMP_DECLSPEC void mpn_sec_powm (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_bitcnt_t, mp_srcptr, mp_size_t, mp_ptr);
+#define mpn_sec_powm_itch __MPN(sec_powm_itch)
+__GMP_DECLSPEC mp_size_t mpn_sec_powm_itch (mp_size_t, mp_bitcnt_t, mp_size_t) __GMP_ATTRIBUTE_PURE;
+
+#define mpn_sec_tabselect __MPN(sec_tabselect)
+__GMP_DECLSPEC void mpn_sec_tabselect (volatile mp_limb_t *, volatile const mp_limb_t *, mp_size_t, mp_size_t, mp_size_t);
+
+#define mpn_sec_div_qr __MPN(sec_div_qr)
+__GMP_DECLSPEC mp_limb_t mpn_sec_div_qr (mp_ptr, mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_ptr);
+#define mpn_sec_div_qr_itch __MPN(sec_div_qr_itch)
+__GMP_DECLSPEC mp_size_t mpn_sec_div_qr_itch (mp_size_t, mp_size_t) __GMP_ATTRIBUTE_PURE;
+#define mpn_sec_div_r __MPN(sec_div_r)
+__GMP_DECLSPEC void mpn_sec_div_r (mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_ptr);
+#define mpn_sec_div_r_itch __MPN(sec_div_r_itch)
+__GMP_DECLSPEC mp_size_t mpn_sec_div_r_itch (mp_size_t, mp_size_t) __GMP_ATTRIBUTE_PURE;
+
+#define mpn_sec_invert __MPN(sec_invert)
+__GMP_DECLSPEC int mpn_sec_invert (mp_ptr, mp_ptr, mp_srcptr, mp_size_t, mp_bitcnt_t, mp_ptr);
+#define mpn_sec_invert_itch __MPN(sec_invert_itch)
+__GMP_DECLSPEC mp_size_t mpn_sec_invert_itch (mp_size_t) __GMP_ATTRIBUTE_PURE;
+
/**************** mpz inlines ****************/
@@ -1658,7 +1733,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
@@ -1669,7 +1744,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
@@ -1680,7 +1755,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
@@ -1697,7 +1772,7 @@ mpz_get_ui (mpz_srcptr __gmp_z) __GMP_NO
/* 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);
@@ -1765,7 +1840,7 @@ mpz_popcount (mpz_srcptr __gmp_u) __GMP_
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;
@@ -2088,6 +2163,22 @@ mpn_cmp (mp_srcptr __gmp_xp, mp_srcptr _
}
#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
@@ -2121,14 +2212,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
@@ -2147,17 +2244,18 @@ mpn_neg (mp_ptr __gmp_rp, mp_srcptr __gm
#define mpz_cmp_ui(Z,UI) \
(__builtin_constant_p (UI) && (UI) == 0 \
? mpz_sgn (Z) : _mpz_cmp_ui (Z,UI))
-#define mpz_cmp_si(Z,SI) \
- (__builtin_constant_p (SI) && (SI) == 0 ? mpz_sgn (Z) \
- : __builtin_constant_p (SI) && (SI) > 0 \
- ? _mpz_cmp_ui (Z, __GMP_CAST (unsigned long int, SI)) \
+#define mpz_cmp_si(Z,SI) \
+ (__builtin_constant_p ((SI) >= 0) && (SI) >= 0 \
+ ? mpz_cmp_ui (Z, __GMP_CAST (unsigned long, SI)) \
: _mpz_cmp_si (Z,SI))
-#define mpq_cmp_ui(Q,NUI,DUI) \
- (__builtin_constant_p (NUI) && (NUI) == 0 \
- ? mpq_sgn (Q) : _mpq_cmp_ui (Q,NUI,DUI))
-#define mpq_cmp_si(q,n,d) \
- (__builtin_constant_p ((n) >= 0) && (n) >= 0 \
- ? mpq_cmp_ui (q, __GMP_CAST (unsigned long, n), d) \
+#define mpq_cmp_ui(Q,NUI,DUI) \
+ (__builtin_constant_p (NUI) && (NUI) == 0 ? mpq_sgn (Q) \
+ : __builtin_constant_p ((NUI) == (DUI)) && (NUI) == (DUI) \
+ ? mpz_cmp (mpq_numref (Q), mpq_denref (Q)) \
+ : _mpq_cmp_ui (Q,NUI,DUI))
+#define mpq_cmp_si(q,n,d) \
+ (__builtin_constant_p ((n) >= 0) && (n) >= 0 \
+ ? mpq_cmp_ui (q, __GMP_CAST (unsigned long, n), d) \
: _mpq_cmp_si (q, n, d))
#else
#define mpz_cmp_ui(Z,UI) _mpz_cmp_ui (Z,UI)
@@ -2218,13 +2316,13 @@ enum
};
/* Define CC and CFLAGS which were used to build this version of GMP */
-#define __GMP_CC "gcc -std=gnu99"
-#define __GMP_CFLAGS "-O2 -pedantic"
+#define __GMP_CC "gcc"
+#define __GMP_CFLAGS "-O2 -pedantic -mabi=n32"
-/* Major version number is the value of __GNU_MP__ too, above and in mp.h. */
-#define __GNU_MP_VERSION 5
+/* Major version number is the value of __GNU_MP__ too, above. */
+#define __GNU_MP_VERSION 6
#define __GNU_MP_VERSION_MINOR 1
-#define __GNU_MP_VERSION_PATCHLEVEL 3
+#define __GNU_MP_VERSION_PATCHLEVEL 2
#define __GNU_MP_RELEASE (__GNU_MP_VERSION * 10000 + __GNU_MP_VERSION_MINOR * 100 + __GNU_MP_VERSION_PATCHLEVEL)
#define __GMP_H__