xref: /minix3/lib/libc/arch/aarch64/softfloat/softfloat-qp.h (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc /*
2*0a6a1f1dSLionel Sambuc  * Get everything SOFTFLOAT_FOR_GCC normally would rename out of the users
3*0a6a1f1dSLionel Sambuc  * namespace. Much of this isn't used but to avoid dissecting softloat.c
4*0a6a1f1dSLionel Sambuc  * all of it is pulled in even for just the _Qp* case
5*0a6a1f1dSLionel Sambuc  */
6*0a6a1f1dSLionel Sambuc 
7*0a6a1f1dSLionel Sambuc #if defined(SOFTFLOATAARCH64_FOR_GCC) && !defined(SOFTFLOAT_FOR_GCC)
8*0a6a1f1dSLionel Sambuc #define float_exception_flags   _softfloat_float_exception_flags
9*0a6a1f1dSLionel Sambuc #define float_rounding_mode     _softfloat_float_rounding_mode
10*0a6a1f1dSLionel Sambuc #define float_raise             _softfloat_float_raise
11*0a6a1f1dSLionel Sambuc 
12*0a6a1f1dSLionel Sambuc #define float32_eq              _softfloat_float32_eq
13*0a6a1f1dSLionel Sambuc #define float32_le              _softfloat_float32_le
14*0a6a1f1dSLionel Sambuc #define float32_lt              _softfloat_float32_lt
15*0a6a1f1dSLionel Sambuc #define float64_eq              _softfloat_float64_eq
16*0a6a1f1dSLionel Sambuc #define float64_le              _softfloat_float64_le
17*0a6a1f1dSLionel Sambuc #define float64_lt              _softfloat_float64_lt
18*0a6a1f1dSLionel Sambuc 
19*0a6a1f1dSLionel Sambuc #define float32_add			_softfloat_float32_add
20*0a6a1f1dSLionel Sambuc #define float64_add			_softfloat_float64_add
21*0a6a1f1dSLionel Sambuc #define float32_sub			_softfloat_float32_sub
22*0a6a1f1dSLionel Sambuc #define float64_sub			_softfloat_float64_sub
23*0a6a1f1dSLionel Sambuc #define float32_mul			_softfloat_float32_mul
24*0a6a1f1dSLionel Sambuc #define float64_mul			_softfloat_float64_mul
25*0a6a1f1dSLionel Sambuc #define float32_div			_softfloat_float32_div
26*0a6a1f1dSLionel Sambuc #define float64_div			_softfloat_float64_div
27*0a6a1f1dSLionel Sambuc #define int32_to_float32		_softfloat_int32_to_float32
28*0a6a1f1dSLionel Sambuc #define int32_to_float64		_softfloat_int32_to_float64
29*0a6a1f1dSLionel Sambuc #define int64_to_float32		_softfloat_int64_to_float32
30*0a6a1f1dSLionel Sambuc #define int64_to_float64		_softfloat_int64_to_float64
31*0a6a1f1dSLionel Sambuc #define float32_to_int32_round_to_zero	_softfloat_float32_to_int32_round_to_zero
32*0a6a1f1dSLionel Sambuc #define float64_to_int32_round_to_zero	_softfloat_float64_to_int32_round_to_zero
33*0a6a1f1dSLionel Sambuc #define float32_to_int64_round_to_zero	_softfloat_float32_to_int64_round_to_zero
34*0a6a1f1dSLionel Sambuc #define float64_to_int64_round_to_zero	_softfloat_float64_to_int64_round_to_zero
35*0a6a1f1dSLionel Sambuc #define float32_to_uint32_round_to_zero	_softfloat_float32_to_uint32_round_to_zero
36*0a6a1f1dSLionel Sambuc #define float64_to_uint32_round_to_zero	_softfloat_float64_to_uint32_round_to_zero
37*0a6a1f1dSLionel Sambuc #define float32_to_float64		_softfloat_float32_to_float64
38*0a6a1f1dSLionel Sambuc #define float64_to_float32		_softfloat_float64_to_float32
39*0a6a1f1dSLionel Sambuc #define float32_is_signaling_nan	_softfloat_float32_is_signaling_nan
40*0a6a1f1dSLionel Sambuc #define float64_is_signaling_nan	_softfloat_float64_is_signaling_nan
41*0a6a1f1dSLionel Sambuc 
42*0a6a1f1dSLionel Sambuc #endif /* SOFTFLOATAARCH64_FOR_GCC and !SOFTFLOAT_FOR_GCC */
43*0a6a1f1dSLionel Sambuc 
44*0a6a1f1dSLionel Sambuc /*
45*0a6a1f1dSLionel Sambuc  * The following will always end up in the namespace if FLOAT128 is
46*0a6a1f1dSLionel Sambuc  * defined and SOFTFLOAT_FOR_GCC isn't. So rename them out of the user's
47*0a6a1f1dSLionel Sambuc  * namespace.
48*0a6a1f1dSLionel Sambuc  */
49*0a6a1f1dSLionel Sambuc 
50*0a6a1f1dSLionel Sambuc #ifdef SOFTFLOATAARCH64_FOR_GCC
51*0a6a1f1dSLionel Sambuc #define	float128_add			_softfloat_float128_add
52*0a6a1f1dSLionel Sambuc #define	float128_div			_softfloat_float128_div
53*0a6a1f1dSLionel Sambuc #define	float128_eq			_softfloat_float128_eq
54*0a6a1f1dSLionel Sambuc #define	float128_eq_signaling		_softfloat_float128_eq_signaling
55*0a6a1f1dSLionel Sambuc #define	float128_is_nan			_softfloat_float128_is_nan
56*0a6a1f1dSLionel Sambuc #define	float128_is_signaling_nan	_softfloat_float128_is_signaling_nan
57*0a6a1f1dSLionel Sambuc #define	float128_le			_softfloat_float128_le
58*0a6a1f1dSLionel Sambuc #define	float128_le_quiet		_softfloat_float128_le_quiet
59*0a6a1f1dSLionel Sambuc #define	float128_lt			_softfloat_float128_lt
60*0a6a1f1dSLionel Sambuc #define	float128_lt_quiet		_softfloat_float128_lt_quiet
61*0a6a1f1dSLionel Sambuc #define	float128_mul			_softfloat_float128_mul
62*0a6a1f1dSLionel Sambuc #define	float128_rem			_softfloat_float128_rem
63*0a6a1f1dSLionel Sambuc #define	float128_round_to_int		_softfloat_float128_round_to_int
64*0a6a1f1dSLionel Sambuc #define	float128_sqrt			_softfloat_float128_sqrt
65*0a6a1f1dSLionel Sambuc #define	float128_sub			_softfloat_float128_sub
66*0a6a1f1dSLionel Sambuc #define	float128_to_float32		_softfloat_float128_to_float32
67*0a6a1f1dSLionel Sambuc #define	float128_to_float64		_softfloat_float128_to_float64
68*0a6a1f1dSLionel Sambuc #define	float128_to_int32		_softfloat_float128_to_int32
69*0a6a1f1dSLionel Sambuc #define	float128_to_int32_round_to_zero	_softfloat_float128_to_int32_round_to_zero
70*0a6a1f1dSLionel Sambuc #define	float128_to_int64		_softfloat_float128_to_int64
71*0a6a1f1dSLionel Sambuc #define	float128_to_int64_round_to_zero	_softfloat_float128_to_int64_round_to_zero
72*0a6a1f1dSLionel Sambuc #define	float128_to_uint64_round_to_zero	_softfloat_float128_to_uint64_round_to_zero
73*0a6a1f1dSLionel Sambuc #define	float32_to_float128		_softfloat_float32_to_float128
74*0a6a1f1dSLionel Sambuc #define	float64_to_float128		_softfloat_float64_to_float128
75*0a6a1f1dSLionel Sambuc #define	int32_to_float128		_softfloat_int32_to_float128
76*0a6a1f1dSLionel Sambuc #define	int64_to_float128		_softfloat_int64_to_float128
77*0a6a1f1dSLionel Sambuc 
78*0a6a1f1dSLionel Sambuc /*
79*0a6a1f1dSLionel Sambuc  * If this isn't defined go ahead and set it now since this is now past
80*0a6a1f1dSLionel Sambuc  * anywhere define's are happening and this will conditionally compile out
81*0a6a1f1dSLionel Sambuc  * a lot of extraneous code in softfloat.c
82*0a6a1f1dSLionel Sambuc  */
83*0a6a1f1dSLionel Sambuc 
84*0a6a1f1dSLionel Sambuc #ifndef SOFTFLOAT_FOR_GCC
85*0a6a1f1dSLionel Sambuc #define SOFTFLOAT_FOR_GCC
86*0a6a1f1dSLionel Sambuc #endif
87*0a6a1f1dSLionel Sambuc 
88*0a6a1f1dSLionel Sambuc #endif /* SOFTFLOATAARCH64_FOR_GCC */
89