]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - lib/libc/softfloat/softfloat-for-gcc.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.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 /* $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