mirror of
https://github.com/micropython/micropython.git
synced 2026-01-06 20:20:14 +01:00
py: Factor out definition of mp_float_union_t to one location.
This commit is contained in:
23
py/misc.h
23
py/misc.h
@@ -211,14 +211,37 @@ extern mp_uint_t mp_verbose_flag;
|
||||
/** float internals *************/
|
||||
|
||||
#if MICROPY_PY_BUILTINS_FLOAT
|
||||
|
||||
#if MICROPY_FLOAT_IMPL == MICROPY_FLOAT_IMPL_DOUBLE
|
||||
#define MP_FLOAT_EXP_BITS (11)
|
||||
#define MP_FLOAT_FRAC_BITS (52)
|
||||
typedef uint64_t mp_float_uint_t;
|
||||
#elif MICROPY_FLOAT_IMPL == MICROPY_FLOAT_IMPL_FLOAT
|
||||
#define MP_FLOAT_EXP_BITS (8)
|
||||
#define MP_FLOAT_FRAC_BITS (23)
|
||||
typedef uint32_t mp_float_uint_t;
|
||||
#endif
|
||||
|
||||
#define MP_FLOAT_EXP_BIAS ((1 << (MP_FLOAT_EXP_BITS - 1)) - 1)
|
||||
|
||||
typedef union _mp_float_union_t {
|
||||
mp_float_t f;
|
||||
#if MP_ENDIANNESS_LITTLE
|
||||
struct {
|
||||
mp_float_uint_t frc : MP_FLOAT_FRAC_BITS;
|
||||
mp_float_uint_t exp : MP_FLOAT_EXP_BITS;
|
||||
mp_float_uint_t sgn : 1;
|
||||
} p;
|
||||
#else
|
||||
struct {
|
||||
mp_float_uint_t sgn : 1
|
||||
mp_float_uint_t exp : MP_FLOAT_EXP_BITS;
|
||||
mp_float_uint_t frc : MP_FLOAT_FRAC_BITS;
|
||||
} p;
|
||||
#endif
|
||||
mp_float_uint_t i;
|
||||
} mp_float_union_t;
|
||||
|
||||
#endif // MICROPY_PY_BUILTINS_FLOAT
|
||||
|
||||
#endif // MICROPY_INCLUDED_PY_MISC_H
|
||||
|
||||
Reference in New Issue
Block a user