]> git.ipfire.org Git - thirdparty/gcc.git/blob - libgcc/config/rx/rx-abi.h
Update copyright years.
[thirdparty/gcc.git] / libgcc / config / rx / rx-abi.h
1 /* Header file for RX ABI versions of libgcc functions.
2 Copyright (C) 2009-2021 Free Software Foundation, Inc.
3 Contributed by Red Hat.
4
5 This file is part of GCC.
6
7 GCC is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published
9 by the Free Software Foundation; either version 3, or (at your
10 option) any later version.
11
12 GCC is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 License for more details.
16
17 Under Section 7 of GPL version 3, you are granted additional
18 permissions described in the GCC Runtime Library Exception, version
19 3.1, as published by the Free Software Foundation.
20
21 You should have received a copy of the GNU General Public License
22 along with GCC; see the file COPYING3. If not see
23 <http://www.gnu.org/licenses/>. */
24
25 /* Make __COM_<RX_NAME> an alias for __<GCC_NAME>. */
26 #define RENAME_LIBRARY(GCC_NAME, RX_NAME) \
27 __asm__ (".globl\t__COM_" #RX_NAME "\n" \
28 ".set\t__COM_" #RX_NAME ", ___" #GCC_NAME "\n");
29
30
31 /* The long-long aliases... */
32
33 #ifdef L_muldi3
34 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (muldi3, MUL64)
35 #endif
36
37 #ifdef L_divdi3
38 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (divdi3, DIV64s)
39 #endif
40
41 #ifdef L_udivdi3
42 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (udivdi3, DIV64u)
43 #endif
44
45 #ifdef L_ashldi3
46 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (ashldi3, SHLL64)
47 #endif
48
49 #ifdef L_lshrdi3
50 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (lshrdi3, SHLR64)
51 #endif
52
53 #ifdef L_ashrdi3
54 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (ashrdi3, SHAR64)
55 #endif
56
57 #ifdef L_fixsfdi
58 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixsfdi, CONVf64s)
59 #endif
60
61 #ifdef L_fixunssfdi
62 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfdi, CONVf64u)
63 #endif
64
65 #ifdef L_floatdisf
66 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdisf, CONV64sf)
67 #endif
68
69 #ifdef L_floatundisf
70 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatundisf, CONV64uf)
71 #endif
72
73 #ifdef L_moddi3
74 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (moddi3, MOD64s)
75 #endif
76
77 #ifdef L_umoddi3
78 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (umoddi3, MOD64u)
79 #endif
80
81
82
83 #ifdef __RX_64BIT_DOUBLES__
84
85 /* Float (32-bit) aliases... */
86
87 #ifdef L_sf_to_si
88 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixsfsi, CONVf32s)
89 #endif
90
91 #ifdef L_fixunssfsi
92 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfsi, CONVf32u)
93 #endif
94
95 #ifdef L_addsub_sf
96 #define DECLARE_LIBRARY_RENAMES \
97 RENAME_LIBRARY (addsf3, ADDf) \
98 RENAME_LIBRARY (subsf3, SUBf)
99 #endif
100
101 #ifdef L_mul_sf
102 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (mulsf3, MULf)
103 #endif
104
105 #ifdef L_div_sf
106 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (divsf3, DIVf)
107 #endif
108
109 /* Double (64-bit) aliases... */
110
111 #ifdef L_addsub_df
112 #define DECLARE_LIBRARY_RENAMES \
113 RENAME_LIBRARY (adddf3, ADDd) \
114 RENAME_LIBRARY (subdf3, SUBd)
115 #endif
116
117 #ifdef L_mul_df
118 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (muldf3, MULd)
119 #endif
120
121 #ifdef L_div_df
122 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (divdf3, DIVd)
123 #endif
124
125 #ifdef L_fixdfdi
126 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixdfdi, CONVd64s)
127 #endif
128
129 #ifdef L_fixunsdfdi
130 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunsdfdi, CONVd64u)
131 #endif
132
133 #ifdef L_floatdidf
134 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdisf, CONV64sd)
135 #endif
136
137 #ifdef L_floatundidf
138 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdisf, CONV64ud)
139 #endif
140
141 #ifdef L_df_to_si
142 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixdfsi, CONVd32s)
143 #endif
144
145 #ifdef L_fixunsdfsi
146 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunsdfsi, CONVd32u)
147 #endif
148
149 #ifdef L_si_to_df
150 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatsidf, CONV32sd)
151 #endif
152
153 #ifdef L_usi_to_df
154 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatunsidf, CONV32ud)
155 #endif
156
157 #ifdef L_sf_to_df
158 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (extendsfdf2, CONVfd)
159 #endif
160
161 #ifdef L_df_to_sf
162 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (truncdfsf2, CONVdf)
163 #endif
164
165 #ifdef L_negate_df
166 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (negdf2, NEGd)
167 #endif
168
169 #ifdef L_si_to_sf
170 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatsisf, CONV32sf)
171 #endif
172
173 #ifdef L_usi_to_sf
174 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatunsisf, CONV32uf)
175 #endif
176
177 /* The 64-bit comparison functions do not have aliases because libgcc2
178 does not provide them. Instead they have to be supplied in
179 rx-abi-functions.c. */
180
181
182 #else /* 32-bit doubles. */
183
184
185 #ifdef L_addsub_sf
186 #define DECLARE_LIBRARY_RENAMES \
187 RENAME_LIBRARY (addsf3, ADDd) \
188 RENAME_LIBRARY (subsf3, SUBd) \
189 RENAME_LIBRARY (addsf3, ADDf) \
190 RENAME_LIBRARY (subsf3, SUBf)
191 #endif
192
193 #ifdef L_mul_sf
194 #define DECLARE_LIBRARY_RENAMES \
195 RENAME_LIBRARY (mulsf3, MULd) \
196 RENAME_LIBRARY (mulsf3, MULf)
197 #endif
198
199 #ifdef L_div_sf
200 #define DECLARE_LIBRARY_RENAMES \
201 RENAME_LIBRARY (divsf3, DIVd) \
202 RENAME_LIBRARY (divsf3, DIVf)
203 #endif
204
205 #ifdef L_sf_to_si
206 #define DECLARE_LIBRARY_RENAMES \
207 RENAME_LIBRARY (fixsfsi, CONVd32s) \
208 RENAME_LIBRARY (fixsfsi, CONVf32s)
209 #endif
210
211 #ifdef L_fixunssfsi
212 #define DECLARE_LIBRARY_RENAMES \
213 RENAME_LIBRARY (fixunssfsi, CONVd32u) \
214 RENAME_LIBRARY (fixunssfsi, CONVf32u)
215 #endif
216
217 #ifdef L_si_to_sf
218 #define DECLARE_LIBRARY_RENAMES \
219 RENAME_LIBRARY (floatsisf, CONV32sd) \
220 RENAME_LIBRARY (floatsisf, CONV32sf)
221 #endif
222
223 #ifdef L_usi_to_sf
224 #define DECLARE_LIBRARY_RENAMES \
225 RENAME_LIBRARY (floatunsisf, CONV32ud) \
226 RENAME_LIBRARY (floatunsisf, CONV32uf)
227 #endif
228
229 #ifdef L_negate_sf
230 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (negsf2, NEGd)
231 #endif
232
233 #endif /* 64-bit vs 32-bit doubles. */