1 1.1 mrg #define _FP_W_TYPE_SIZE 32 2 1.1 mrg #define _FP_W_TYPE unsigned long 3 1.1 mrg #define _FP_WS_TYPE signed long 4 1.1 mrg #define _FP_I_TYPE long 5 1.1 mrg 6 1.1 mrg /* The type of the result of a floating point comparison. This must 7 1.1 mrg match `__libgcc_cmp_return__' in GCC for the target. */ 8 1.1 mrg typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__))); 9 1.1 mrg #define CMPtype __gcc_CMPtype 10 1.1 mrg 11 1.1 mrg #define _FP_MUL_MEAT_S(R,X,Y) \ 12 1.1 mrg _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm) 13 1.1 mrg #define _FP_MUL_MEAT_D(R,X,Y) \ 14 1.1 mrg _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm) 15 1.1 mrg #define _FP_MUL_MEAT_Q(R,X,Y) \ 16 1.1 mrg _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm) 17 1.1 mrg 18 1.1 mrg #define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y) 19 1.1 mrg #define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y) 20 1.1 mrg #define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y) 21 1.1 mrg 22 1.1 mrg #define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1) 23 1.1 mrg #define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1 24 1.1 mrg #define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1 25 1.1 mrg #define _FP_NANSIGN_S 0 26 1.1 mrg #define _FP_NANSIGN_D 0 27 1.1 mrg #define _FP_NANSIGN_Q 0 28 1.1 mrg 29 1.1 mrg #define _FP_KEEPNANFRACP 1 30 1.1 mrg #define _FP_QNANNEGATEDP 0 31 1.1 mrg 32 1.1 mrg /* Someone please check this. */ 33 1.1 mrg #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ 34 1.1 mrg do { \ 35 1.1 mrg if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \ 36 1.1 mrg && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \ 37 1.1 mrg { \ 38 1.1 mrg R##_s = Y##_s; \ 39 1.1 mrg _FP_FRAC_COPY_##wc(R,Y); \ 40 1.1 mrg } \ 41 1.1 mrg else \ 42 1.1 mrg { \ 43 1.1 mrg R##_s = X##_s; \ 44 1.1 mrg _FP_FRAC_COPY_##wc(R,X); \ 45 1.1 mrg } \ 46 1.1 mrg R##_c = FP_CLS_NAN; \ 47 1.1 mrg } while (0) 48 1.1 mrg 49 1.1 mrg /* Not checked. */ 50 1.1 mrg #define _FP_TININESS_AFTER_ROUNDING 0 51 1.1 mrg 52 1.1 mrg #define __LITTLE_ENDIAN 1234 53 1.1 mrg #define __BIG_ENDIAN 4321 54 1.1 mrg 55 1.1 mrg # define __BYTE_ORDER __LITTLE_ENDIAN 56 1.1 mrg 57 1.1 mrg /* Define ALIASNAME as a strong alias for NAME. */ 58 1.1 mrg # define strong_alias(name, aliasname) _strong_alias(name, aliasname) 59 1.1 mrg # define _strong_alias(name, aliasname) \ 60 1.1 mrg extern __typeof (name) aliasname __attribute__ ((alias (#name))); 61 1.1 mrg 62