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