0
|
1 #define _FP_W_TYPE_SIZE 64
|
111
|
2 #define _FP_W_TYPE unsigned long long
|
|
3 #define _FP_WS_TYPE signed long long
|
|
4 #define _FP_I_TYPE long long
|
0
|
5
|
|
6 typedef int TItype __attribute__ ((mode (TI)));
|
|
7 typedef unsigned int UTItype __attribute__ ((mode (TI)));
|
|
8
|
|
9 #define TI_BITS (__CHAR_BIT__ * (int)sizeof(TItype))
|
|
10
|
111
|
11 #define _FP_MUL_MEAT_Q(R,X,Y) \
|
0
|
12 _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
|
|
13
|
|
14 #define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_2_udiv(Q,R,X,Y)
|
|
15
|
|
16 #define _FP_NANFRAC_S _FP_QNANBIT_S
|
|
17 #define _FP_NANFRAC_D _FP_QNANBIT_D
|
|
18 #define _FP_NANFRAC_E _FP_QNANBIT_E, 0
|
|
19 #define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0
|
|
20
|
111
|
21 #ifndef _SOFT_FLOAT
|
|
22 #define FP_EX_SHIFT 7
|
0
|
23
|
111
|
24 #define _FP_DECL_EX \
|
|
25 unsigned int _fcw __attribute__ ((unused)) = FP_RND_NEAREST;
|
0
|
26
|
|
27 #define FP_RND_NEAREST 0
|
111
|
28 #define FP_RND_ZERO 0x6000
|
|
29 #define FP_RND_PINF 0x4000
|
|
30 #define FP_RND_MINF 0x2000
|
0
|
31
|
111
|
32 #define FP_RND_MASK 0x6000
|
0
|
33
|
111
|
34 #define FP_INIT_ROUNDMODE \
|
|
35 do { \
|
|
36 __asm__ __volatile__ ("%vstmxcsr\t%0" : "=m" (_fcw)); \
|
|
37 } while (0)
|
0
|
38 #endif
|