xref: /netbsd-src/external/gpl3/gcc/dist/libgcc/config/gcn/sfp-machine.h (revision 181254a7b1bdde6873432bffef2d2decc4b5c22f)
1 /* Use 32-bit types here to prevent longlong.h trying to use TImode.
2    Once TImode works we might be better to use 64-bit here.  */
3 
4 #define _FP_W_TYPE_SIZE		32
5 #define _FP_W_TYPE		unsigned int
6 #define _FP_WS_TYPE		signed int
7 #define _FP_I_TYPE		int
8 
9 #define _FP_MUL_MEAT_S(R,X,Y)				\
10   _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
11 #define _FP_MUL_MEAT_D(R,X,Y)				\
12   _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
13 
14 #define _FP_DIV_MEAT_S(R,X,Y)	_FP_DIV_MEAT_1_loop(S,R,X,Y)
15 #define _FP_DIV_MEAT_D(R,X,Y)	_FP_DIV_MEAT_2_udiv(D,R,X,Y)
16 
17 #define _FP_NANFRAC_S		((_FP_QNANBIT_S << 1) - 1)
18 #define _FP_NANFRAC_D		((_FP_QNANBIT_D << 1) - 1), -1
19 #define _FP_NANSIGN_S		0
20 #define _FP_NANSIGN_D		0
21 
22 #define _FP_KEEPNANFRACP 1
23 #define _FP_QNANNEGATEDP 0
24 
25 /* Someone please check this.  */
26 #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP)			\
27   do {								\
28     if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs)		\
29 	&& !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs))	\
30       {								\
31 	R##_s = Y##_s;						\
32 	_FP_FRAC_COPY_##wc(R,Y);				\
33       }								\
34     else							\
35       {								\
36 	R##_s = X##_s;						\
37 	_FP_FRAC_COPY_##wc(R,X);				\
38       }								\
39     R##_c = FP_CLS_NAN;						\
40   } while (0)
41 
42 #define _FP_TININESS_AFTER_ROUNDING 0
43 
44 #define __LITTLE_ENDIAN 1234
45 #define	__BIG_ENDIAN	4321
46 #define __BYTE_ORDER __LITTLE_ENDIAN
47 
48 /* Define ALIASNAME as a strong alias for NAME.  */
49 # define strong_alias(name, aliasname) _strong_alias(name, aliasname)
50 # define _strong_alias(name, aliasname) \
51   extern __typeof (name) aliasname __attribute__ ((alias (#name)));
52