1 /* 2 * Union to access IEEE float memory representation. 3 */ 4 5 #if !defined(DUK_FLTUNION_H_INCLUDED) 6 #define DUK_FLTUNION_H_INCLUDED 7 8 #include "duk_internal.h" 9 10 union duk_float_union { 11 float f; 12 duk_uint32_t ui[1]; 13 duk_uint16_t us[2]; 14 duk_uint8_t uc[4]; 15 }; 16 17 typedef union duk_float_union duk_float_union; 18 19 #if defined(DUK_USE_DOUBLE_LE) || defined(DUK_USE_DOUBLE_ME) 20 #define DUK_FLT_IDX_UI0 0 21 #define DUK_FLT_IDX_US0 1 22 #define DUK_FLT_IDX_US1 0 23 #define DUK_FLT_IDX_UC0 3 24 #define DUK_FLT_IDX_UC1 2 25 #define DUK_FLT_IDX_UC2 1 26 #define DUK_FLT_IDX_UC3 0 27 #elif defined(DUK_USE_DOUBLE_BE) 28 #define DUK_FLT_IDX_UI0 0 29 #define DUK_FLT_IDX_US0 0 30 #define DUK_FLT_IDX_US1 1 31 #define DUK_FLT_IDX_UC0 0 32 #define DUK_FLT_IDX_UC1 1 33 #define DUK_FLT_IDX_UC2 2 34 #define DUK_FLT_IDX_UC3 3 35 #else 36 #error internal error 37 #endif 38 39 #endif /* DUK_FLTUNION_H_INCLUDED */ 40