diff options
author | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2018-02-23 15:24:59 +0000 |
---|---|---|
committer | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2018-02-23 15:24:59 +0000 |
commit | d5fd2f1ecc3202bbec70525e6189e797e010ad6f (patch) | |
tree | 603c06b3614bf302a519b7e5b36cfb53c5fb9675 /acinclude.m4 | |
parent | cf12e58541e89a9d904cab195b9dd7fc88161766 (diff) | |
download | mpfr-d5fd2f1ecc3202bbec70525e6189e797e010ad6f.tar.gz |
[configure.ac,acinclude.m4] added new macro MPFR_INTMAX_WITHIN_LIMB
[src/get_sj.c] optimized the code when MPFR_INTMAX_WITHIN_LIMB=1
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@12426 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'acinclude.m4')
-rw-r--r-- | acinclude.m4 | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/acinclude.m4 b/acinclude.m4 index f9792f836..6a91bd214 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -843,6 +843,33 @@ esac CPPFLAGS="$saved_CPPFLAGS" ]) +dnl MPFR_CHECK_MP_LIMB_T_VS_INTMAX +dnl ------------------------------ +dnl Check that an intmax_t can fit in a mp_limb_t. +AC_DEFUN([MPFR_CHECK_MP_LIMB_T_VS_INTMAX], [ +AC_REQUIRE([MPFR_CONFIGS]) +AC_CACHE_CHECK([for intmax_t to fit in mp_limb_t], mpfr_cv_intmax_within_limb, [ +saved_CPPFLAGS="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS -I$srcdir/src" +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#include <gmp.h> +#include "mpfr-intmax.h" +]], [[ + MPFR_STAT_STATIC_ASSERT ((mp_limb_t) -1 >= (intmax_t) -1); + return 0; +]])], [mpfr_cv_intmax_within_limb="yes"], + [mpfr_cv_intmax_within_limb="no"], + [mpfr_cv_intmax_within_limb="cannot test, assume yes"]) +]) +case $mpfr_cv_intmax_within_limb in +yes*) + AC_DEFINE([MPFR_INTMAX_WITHIN_LIMB],1,[intmax_t can be stored in mp_limb_t]) ;; +cannot*) + AC_DEFINE([MPFR_INTMAX_WITHIN_LIMB],1,[intmax_t can be stored in mp_limb_t]) ;; +esac +CPPFLAGS="$saved_CPPFLAGS" +]) + dnl MPFR_PARSE_DIRECTORY dnl Input: $1 = a string to a relative or absolute directory dnl Output: $2 = the variable to set with the absolute directory |