1 /* $NetBSD: softfloat-for-gcc.h,v 1.8 2009/12/14 01:07:42 matt Exp $ */ 2 /* $FreeBSD$ */ 3 4 /* 5 * Move private identifiers with external linkage into implementation 6 * namespace. -- Klaus Klein <kleink@NetBSD.org>, May 5, 1999 7 */ 8 #define float_exception_flags __softfloat_float_exception_flags 9 #define float_exception_mask __softfloat_float_exception_mask 10 #define float_rounding_mode __softfloat_float_rounding_mode 11 #define float_raise __softfloat_float_raise 12 /* The following batch are called by GCC through wrappers */ 13 #define float32_eq __softfloat_float32_eq 14 #define float32_le __softfloat_float32_le 15 #define float32_lt __softfloat_float32_lt 16 #define float64_eq __softfloat_float64_eq 17 #define float64_le __softfloat_float64_le 18 #define float64_lt __softfloat_float64_lt 19 #define float128_eq __softfloat_float128_eq 20 #define float128_le __softfloat_float128_le 21 #define float128_lt __softfloat_float128_lt 22 23 /* 24 * Macros to define functions with the GCC expected names 25 */ 26 27 #define float32_add __addsf3 28 #define float64_add __adddf3 29 #define floatx80_add __addxf3 30 #define float128_add __addtf3 31 32 #define float32_sub __subsf3 33 #define float64_sub __subdf3 34 #define floatx80_sub __subxf3 35 #define float128_sub __subtf3 36 37 #define float32_mul __mulsf3 38 #define float64_mul __muldf3 39 #define floatx80_mul __mulxf3 40 #define float128_mul __multf3 41 42 #define float32_div __divsf3 43 #define float64_div __divdf3 44 #define floatx80_div __divxf3 45 #define float128_div __divtf3 46 47 #if 0 48 #define float32_neg __negsf2 49 #define float64_neg __negdf2 50 #define floatx80_neg __negxf2 51 #define float128_neg __negtf2 52 #endif 53 54 #define int32_to_float32 __floatsisf 55 #define int32_to_float64 __floatsidf 56 #define int32_to_floatx80 __floatsixf 57 #define int32_to_float128 __floatsitf 58 59 #define int64_to_float32 __floatdisf 60 #define int64_to_float64 __floatdidf 61 #define int64_to_floatx80 __floatdixf 62 #define int64_to_float128 __floatditf 63 64 #define int128_to_float32 __floattisf 65 #define int128_to_float64 __floattidf 66 #define int128_to_floatx80 __floattixf 67 #define int128_to_float128 __floattitf 68 69 #define uint32_to_float32 __floatunsisf 70 #define uint32_to_float64 __floatunsidf 71 #define uint32_to_floatx80 __floatunsixf 72 #define uint32_to_float128 __floatunsitf 73 74 #define uint64_to_float32 __floatundisf 75 #define uint64_to_float64 __floatundidf 76 #define uint64_to_floatx80 __floatundixf 77 #define uint64_to_float128 __floatunditf 78 79 #define uint128_to_float32 __floatuntisf 80 #define uint128_to_float64 __floatuntidf 81 #define uint128_to_floatx80 __floatuntixf 82 #define uint128_to_float128 __floatuntitf 83 84 #define float32_to_int32_round_to_zero __fixsfsi 85 #define float64_to_int32_round_to_zero __fixdfsi 86 #define floatx80_to_int32_round_to_zero __fixxfsi 87 #define float128_to_int32_round_to_zero __fixtfsi 88 89 #define float32_to_int64_round_to_zero __fixsfdi 90 #define float64_to_int64_round_to_zero __fixdfdi 91 #define floatx80_to_int64_round_to_zero __fixxfdi 92 #define float128_to_int64_round_to_zero __fixtfdi 93 94 #define float32_to_int128_round_to_zero __fixsfti 95 #define float64_to_int128_round_to_zero __fixdfti 96 #define floatx80_to_int128_round_to_zero __fixxfti 97 #define float128_to_int128_round_to_zero __fixtfti 98 99 #define float32_to_uint32_round_to_zero __fixunssfsi 100 #define float64_to_uint32_round_to_zero __fixunsdfsi 101 #define floatx80_to_uint32_round_to_zero __fixunsxfsi 102 #define float128_to_uint32_round_to_zero __fixunstfsi 103 104 #define float32_to_uint64_round_to_zero __fixunssfdi 105 #define float64_to_uint64_round_to_zero __fixunsdfdi 106 #define floatx80_to_uint64_round_to_zero __fixunsxfdi 107 #define float128_to_uint64_round_to_zero __fixunstfdi 108 109 #define float32_to_uint128_round_to_zero __fixunssfti 110 #define float64_to_uint128_round_to_zero __fixunsdfti 111 #define floatx80_to_uint128_round_to_zero __fixunsxfti 112 #define float128_to_uint128_round_to_zero __fixunstfti 113 114 #define float32_to_float64 __extendsfdf2 115 #define float32_to_floatx80 __extendsfxf2 116 #define float32_to_float128 __extendsftf2 117 #define float64_to_floatx80 __extenddfxf2 118 #define float64_to_float128 __extenddftf2 119 120 #define float128_to_float64 __trunctfdf2 121 #define floatx80_to_float64 __truncxfdf2 122 #define float128_to_float32 __trunctfsf2 123 #define floatx80_to_float32 __truncxfsf2 124 #define float64_to_float32 __truncdfsf2 125 126 #if 0 127 #define float32_cmp __cmpsf2 128 #define float32_unord __unordsf2 129 #define float32_eq __eqsf2 130 #define float32_ne __nesf2 131 #define float32_ge __gesf2 132 #define float32_lt __ltsf2 133 #define float32_le __lesf2 134 #define float32_gt __gtsf2 135 #endif 136 137 #if 0 138 #define float64_cmp __cmpdf2 139 #define float64_unord __unorddf2 140 #define float64_eq __eqdf2 141 #define float64_ne __nedf2 142 #define float64_ge __gedf2 143 #define float64_lt __ltdf2 144 #define float64_le __ledf2 145 #define float64_gt __gtdf2 146 #endif 147 148 /* XXX not in libgcc */ 149 #if 1 150 #define floatx80_cmp __cmpxf2 151 #define floatx80_unord __unordxf2 152 #define floatx80_eq __eqxf2 153 #define floatx80_ne __nexf2 154 #define floatx80_ge __gexf2 155 #define floatx80_lt __ltxf2 156 #define floatx80_le __lexf2 157 #define floatx80_gt __gtxf2 158 #endif 159 160 #if 0 161 #define float128_cmp __cmptf2 162 #define float128_unord __unordtf2 163 #define float128_eq __eqtf2 164 #define float128_ne __netf2 165 #define float128_ge __getf2 166 #define float128_lt __lttf2 167 #define float128_le __letf2 168 #define float128_gt __gttf2 169 #endif 170