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