[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: new module 'isnan-nolibm'
From: |
Bruno Haible |
Subject: |
Re: new module 'isnan-nolibm' |
Date: |
Sun, 25 Feb 2007 02:57:37 +0100 |
User-agent: |
KMail/1.5.4 |
Daniel Jacobowitz wrote:
> That hasn't been the full story for a while. FPA (the obsolete,
> usually emulated floating point format) does this, but all modern
> systems use VFP word ordering, even if they have only software
> floating point.
Thanks for pointing this out. I'm changing the macro to not assume anything
about the endianness then:
--- m4/isnan.m4 24 Feb 2007 19:08:56 -0000 1.1
+++ m4/isnan.m4 25 Feb 2007 01:56:12 -0000
@@ -92,14 +92,17 @@
[gl_cv_cc_double_expbit0=`cat conftest.out`],
[gl_cv_cc_double_expbit0="unknown"],
[
- dnl On ARM, integer types are stored in little-endian byte order,
- dnl but floats are stored in big-endian word order.
+ dnl On ARM, there are two 'double' floating-point formats, used by
+ dnl different sets of instructions: The older FPA instructions assume
+ dnl that they are stored in big-endian word order, while the words
+ dnl (like integer types) are stored in little-endian byte order.
+ dnl The newer VFP instructions assume little-endian order
consistenly.
AC_EGREP_CPP([mixed_endianness], [
#if defined arm || defined __arm || defined __arm__
mixed_endianness
#endif
],
- [gl_cv_cc_double_expbit0="word 0 bit 20"],
+ [gl_cv_cc_double_expbit0="unknown"],
[
AC_C_BIGENDIAN(
[gl_cv_cc_double_expbit0="word 0 bit 20"],
- Re: new module 'isnan-nolibm', (continued)
Re: new module 'isnan-nolibm', Daniel Jacobowitz, 2007/02/24
- Re: new module 'isnan-nolibm',
Bruno Haible <=