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