exponentd.m4 | exponentd.m4 | |||
---|---|---|---|---|
# exponentd.m4 serial 1 | # exponentd.m4 serial 3 | |||
dnl Copyright (C) 2007-2010 Free Software Foundation, Inc. | dnl Copyright (C) 2007-2008, 2010-2014 Free Software Foundation, Inc. | |||
dnl This file is free software; the Free Software Foundation | dnl This file is free software; the Free Software Foundation | |||
dnl gives unlimited permission to copy and/or distribute it, | dnl gives unlimited permission to copy and/or distribute it, | |||
dnl with or without modifications, as long as this notice is preserved. | dnl with or without modifications, as long as this notice is preserved. | |||
AC_DEFUN([gl_DOUBLE_EXPONENT_LOCATION], | AC_DEFUN([gl_DOUBLE_EXPONENT_LOCATION], | |||
[ | [ | |||
AC_CACHE_CHECK([where to find the exponent in a 'double'], | AC_CACHE_CHECK([where to find the exponent in a 'double'], | |||
[gl_cv_cc_double_expbit0], | [gl_cv_cc_double_expbit0], | |||
[ | [ | |||
AC_TRY_RUN([ | AC_RUN_IFELSE( | |||
[AC_LANG_SOURCE([[ | ||||
#include <float.h> | #include <float.h> | |||
#include <stddef.h> | #include <stddef.h> | |||
#include <stdio.h> | #include <stdio.h> | |||
#include <string.h> | #include <string.h> | |||
#define NWORDS \ | #define NWORDS \ | |||
((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) | ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) | |||
typedef union { double value; unsigned int word[NWORDS]; } memory_double; | typedef union { double value; unsigned int word[NWORDS]; } memory_double; | |||
static unsigned int ored_words[NWORDS]; | static unsigned int ored_words[NWORDS]; | |||
static unsigned int anded_words[NWORDS]; | static unsigned int anded_words[NWORDS]; | |||
static void add_to_ored_words (double x) | static void add_to_ored_words (double x) | |||
skipping to change at line 74 | skipping to change at line 75 | |||
for (i = 0; ; i++) | for (i = 0; ; i++) | |||
if ((ored_words[j] >> i) & 1) | if ((ored_words[j] >> i) & 1) | |||
{ | { | |||
fprintf (fp, "word %d bit %d", (int) j, (int) i); | fprintf (fp, "word %d bit %d", (int) j, (int) i); | |||
return (fclose (fp) != 0); | return (fclose (fp) != 0); | |||
} | } | |||
} | } | |||
fprintf (fp, "unknown"); | fprintf (fp, "unknown"); | |||
return (fclose (fp) != 0); | return (fclose (fp) != 0); | |||
} | } | |||
], | ]])], | |||
[gl_cv_cc_double_expbit0=`cat conftest.out`], | [gl_cv_cc_double_expbit0=`cat conftest.out`], | |||
[gl_cv_cc_double_expbit0="unknown"], | [gl_cv_cc_double_expbit0="unknown"], | |||
[ | [ | |||
dnl On ARM, there are two 'double' floating-point formats, used b y | dnl On ARM, there are two 'double' floating-point formats, used b y | |||
dnl different sets of instructions: The older FPA instructions as sume | dnl different sets of instructions: The older FPA instructions as sume | |||
dnl that they are stored in big-endian word order, while the word s | dnl that they are stored in big-endian word order, while the word s | |||
dnl (like integer types) are stored in little-endian byte order. | dnl (like integer types) are stored in little-endian byte order. | |||
dnl The newer VFP instructions assume little-endian order consist | dnl The newer VFP instructions assume little-endian order | |||
enly. | dnl consistently. | |||
AC_EGREP_CPP([mixed_endianness], [ | AC_EGREP_CPP([mixed_endianness], [ | |||
#if defined arm || defined __arm || defined __arm__ | #if defined arm || defined __arm || defined __arm__ | |||
mixed_endianness | mixed_endianness | |||
#endif | #endif | |||
], | ], | |||
[gl_cv_cc_double_expbit0="unknown"], | [gl_cv_cc_double_expbit0="unknown"], | |||
[ | [ | |||
pushdef([AC_MSG_CHECKING],[:])dnl | pushdef([AC_MSG_CHECKING],[:])dnl | |||
pushdef([AC_MSG_RESULT],[:])dnl | pushdef([AC_MSG_RESULT],[:])dnl | |||
pushdef([AC_MSG_RESULT_UNQUOTED],[:])dnl | pushdef([AC_MSG_RESULT_UNQUOTED],[:])dnl | |||
End of changes. 4 change blocks. | ||||
6 lines changed or deleted | 7 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |