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