diff options
author | Elliott Hughes <enh@google.com> | 2014-04-11 17:02:20 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2014-04-14 14:35:47 -0700 |
commit | 02c78a386739a8a2b3007efeb00a9ca04132100a (patch) | |
tree | 6679bef40da8b7fbe6b3c5a479eb5c2e4e035708 /libc/arch-arm64 | |
parent | 055890686636faddbb6d5d407c67f5dcc53ac865 (diff) | |
download | bionic-02c78a386739a8a2b3007efeb00a9ca04132100a.zip bionic-02c78a386739a8a2b3007efeb00a9ca04132100a.tar.gz bionic-02c78a386739a8a2b3007efeb00a9ca04132100a.tar.bz2 |
Reimplement isinf/isnan/fpclassify.
Also move isinf and isnan into libc like everyone else.
Also move fpclassify to libc like the BSDs (but unlike glibc). We need
this to be able to upgrade our float/double/long double parsing to gdtoa.
Also add some missing aliases. We now have all of:
isnan, __isnan, isnanf, __isnanf, isnanl, __isnanl,
isinf, __isinf, isinff, __isinff, isinfl, __isinfl,
__fpclassify, __fpclassifyd, __fpclassifyf, __fpclassifyl.
Bug: 13469877
Change-Id: I407ffbac06c765a6c5fffda8106c37d7db04f27d
Diffstat (limited to 'libc/arch-arm64')
-rw-r--r-- | libc/arch-arm64/include/machine/ieee.h | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/libc/arch-arm64/include/machine/ieee.h b/libc/arch-arm64/include/machine/ieee.h index cf2c1fc..cf06580 100644 --- a/libc/arch-arm64/include/machine/ieee.h +++ b/libc/arch-arm64/include/machine/ieee.h @@ -1,4 +1,4 @@ -/* $OpenBSD: ieee.h,v 1.1 2004/02/01 05:09:49 drahn Exp $ */ +/* $OpenBSD: ieee.h,v 1.4 2011/11/08 17:06:51 deraadt Exp $ */ /* $NetBSD: ieee.h,v 1.2 2001/02/21 17:43:50 bjh21 Exp $ */ /* @@ -92,35 +92,36 @@ #define SNG_FRACBITS 23 #define DBL_EXPBITS 11 +#define DBL_FRACHBITS 20 +#define DBL_FRACLBITS 32 #define DBL_FRACBITS 52 #ifndef __VFP_FP__ #define E80_EXPBITS 15 +#define E80_FRACHBITS 31 +#define E80_FRACLBITS 32 #define E80_FRACBITS 64 #define EXT_EXPBITS 15 +#define EXT_FRACHBITS 16 +#define EXT_FRACHMBITS 32 +#define EXT_FRACLMBITS 32 +#define EXT_FRACLBITS 32 #define EXT_FRACBITS 112 #endif struct ieee_single { u_int sng_frac:23; - u_int sng_exponent:8; + u_int sng_exp:8; u_int sng_sign:1; }; #ifdef __VFP_FP__ struct ieee_double { -#ifdef __AARCH64EB__ - u_int dbl_sign:1; - u_int dbl_exp:11; - u_int dbl_frach:20; - u_int dbl_fracl; -#else /* !__AARCH64EB__ */ u_int dbl_fracl; u_int dbl_frach:20; u_int dbl_exp:11; u_int dbl_sign:1; -#endif /* !__AARCH64EB__ */ }; #else /* !__VFP_FP__ */ struct ieee_double { |