1 /* Semantics ops support for CGEN-based simulators.
3 This file is machine generated.
5 Copyright (C) 1996, 1997 Free Software Foundation, Inc.
7 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 #ifndef CGEN_SEM_OPS_H
26 #define CGEN_SEM_OPS_H
28 /* Semantic operations. */
30 #define ADDBI(x, y) ((x) + (y))
31 #define SUBBI(x, y) ((x) - (y))
32 #define MULBI(x, y) ((x) * (y))
33 #define DIVBI(x, y) ((BI) (x) / (BI) (y))
34 #define UDIVBI(x, y) ((BI) (x) / (BI) (y))
35 #define MODBI(x, y) ((BI) (x) % (BI) (y))
36 #define UMODBI(x, y) ((BI) (x) % (BI) (y))
37 #define SRABI(x, y) ((BI) (x) >> (y))
38 #define SRLBI(x, y) ((UBI) (x) >> (y))
39 #define SHLBI(x, y) ((UBI) (x) << (y))
40 extern BI RORBI
PARAMS ((BI
, int));
41 extern BI ROLBI
PARAMS ((BI
, int));
42 #define ANDBI(x, y) ((x) & (y))
43 #define ORBI(x, y) ((x) | (y))
44 #define XORBI(x, y) ((x) ^ (y))
45 #define ANDIFBI(x, y) ((BI) (x) && (BI) (y))
46 #define ORIFBI(x, y) ((BI) (x) || (BI) (y))
47 #define NEGBI(x) (- (x))
48 #define NOTBI(x) (! (BI) (x))
49 #define INVBI(x) (~ (x))
50 #define EQBI(x, y) ((BI) (x) == (BI) (y))
51 #define NEBI(x, y) ((BI) (x) != (BI) (y))
52 #define LTBI(x, y) ((BI) (x) < (BI) (y))
53 #define LEBI(x, y) ((BI) (x) <= (BI) (y))
54 #define GTBI(x, y) ((BI) (x) > (BI) (y))
55 #define GEBI(x, y) ((BI) (x) >= (BI) (y))
56 #define LTUBI(x, y) ((UBI) (x) < (UBI) (y))
57 #define LEUBI(x, y) ((UBI) (x) <= (UBI) (y))
58 #define GTUBI(x, y) ((UBI) (x) > (UBI) (y))
59 #define GEUBI(x, y) ((UBI) (x) >= (UBI) (y))
61 #define ADDQI(x, y) ((x) + (y))
62 #define SUBQI(x, y) ((x) - (y))
63 #define MULQI(x, y) ((x) * (y))
64 #define DIVQI(x, y) ((QI) (x) / (QI) (y))
65 #define UDIVQI(x, y) ((QI) (x) / (QI) (y))
66 #define MODQI(x, y) ((QI) (x) % (QI) (y))
67 #define UMODQI(x, y) ((QI) (x) % (QI) (y))
68 #define SRAQI(x, y) ((QI) (x) >> (y))
69 #define SRLQI(x, y) ((UQI) (x) >> (y))
70 #define SHLQI(x, y) ((UQI) (x) << (y))
71 extern QI RORQI
PARAMS ((QI
, int));
72 extern QI ROLQI
PARAMS ((QI
, int));
73 #define ANDQI(x, y) ((x) & (y))
74 #define ORQI(x, y) ((x) | (y))
75 #define XORQI(x, y) ((x) ^ (y))
76 #define ANDIFQI(x, y) ((QI) (x) && (QI) (y))
77 #define ORIFQI(x, y) ((QI) (x) || (QI) (y))
78 #define NEGQI(x) (- (x))
79 #define NOTQI(x) (! (QI) (x))
80 #define INVQI(x) (~ (x))
81 #define EQQI(x, y) ((QI) (x) == (QI) (y))
82 #define NEQI(x, y) ((QI) (x) != (QI) (y))
83 #define LTQI(x, y) ((QI) (x) < (QI) (y))
84 #define LEQI(x, y) ((QI) (x) <= (QI) (y))
85 #define GTQI(x, y) ((QI) (x) > (QI) (y))
86 #define GEQI(x, y) ((QI) (x) >= (QI) (y))
87 #define LTUQI(x, y) ((UQI) (x) < (UQI) (y))
88 #define LEUQI(x, y) ((UQI) (x) <= (UQI) (y))
89 #define GTUQI(x, y) ((UQI) (x) > (UQI) (y))
90 #define GEUQI(x, y) ((UQI) (x) >= (UQI) (y))
92 #define ADDHI(x, y) ((x) + (y))
93 #define SUBHI(x, y) ((x) - (y))
94 #define MULHI(x, y) ((x) * (y))
95 #define DIVHI(x, y) ((HI) (x) / (HI) (y))
96 #define UDIVHI(x, y) ((HI) (x) / (HI) (y))
97 #define MODHI(x, y) ((HI) (x) % (HI) (y))
98 #define UMODHI(x, y) ((HI) (x) % (HI) (y))
99 #define SRAHI(x, y) ((HI) (x) >> (y))
100 #define SRLHI(x, y) ((UHI) (x) >> (y))
101 #define SHLHI(x, y) ((UHI) (x) << (y))
102 extern HI RORHI
PARAMS ((HI
, int));
103 extern HI ROLHI
PARAMS ((HI
, int));
104 #define ANDHI(x, y) ((x) & (y))
105 #define ORHI(x, y) ((x) | (y))
106 #define XORHI(x, y) ((x) ^ (y))
107 #define ANDIFHI(x, y) ((HI) (x) && (HI) (y))
108 #define ORIFHI(x, y) ((HI) (x) || (HI) (y))
109 #define NEGHI(x) (- (x))
110 #define NOTHI(x) (! (HI) (x))
111 #define INVHI(x) (~ (x))
112 #define EQHI(x, y) ((HI) (x) == (HI) (y))
113 #define NEHI(x, y) ((HI) (x) != (HI) (y))
114 #define LTHI(x, y) ((HI) (x) < (HI) (y))
115 #define LEHI(x, y) ((HI) (x) <= (HI) (y))
116 #define GTHI(x, y) ((HI) (x) > (HI) (y))
117 #define GEHI(x, y) ((HI) (x) >= (HI) (y))
118 #define LTUHI(x, y) ((UHI) (x) < (UHI) (y))
119 #define LEUHI(x, y) ((UHI) (x) <= (UHI) (y))
120 #define GTUHI(x, y) ((UHI) (x) > (UHI) (y))
121 #define GEUHI(x, y) ((UHI) (x) >= (UHI) (y))
123 #define ADDSI(x, y) ((x) + (y))
124 #define SUBSI(x, y) ((x) - (y))
125 #define MULSI(x, y) ((x) * (y))
126 #define DIVSI(x, y) ((SI) (x) / (SI) (y))
127 #define UDIVSI(x, y) ((SI) (x) / (SI) (y))
128 #define MODSI(x, y) ((SI) (x) % (SI) (y))
129 #define UMODSI(x, y) ((SI) (x) % (SI) (y))
130 #define SRASI(x, y) ((SI) (x) >> (y))
131 #define SRLSI(x, y) ((USI) (x) >> (y))
132 #define SHLSI(x, y) ((USI) (x) << (y))
133 extern SI RORSI
PARAMS ((SI
, int));
134 extern SI ROLSI
PARAMS ((SI
, int));
135 #define ANDSI(x, y) ((x) & (y))
136 #define ORSI(x, y) ((x) | (y))
137 #define XORSI(x, y) ((x) ^ (y))
138 #define ANDIFSI(x, y) ((SI) (x) && (SI) (y))
139 #define ORIFSI(x, y) ((SI) (x) || (SI) (y))
140 #define NEGSI(x) (- (x))
141 #define NOTSI(x) (! (SI) (x))
142 #define INVSI(x) (~ (x))
143 #define EQSI(x, y) ((SI) (x) == (SI) (y))
144 #define NESI(x, y) ((SI) (x) != (SI) (y))
145 #define LTSI(x, y) ((SI) (x) < (SI) (y))
146 #define LESI(x, y) ((SI) (x) <= (SI) (y))
147 #define GTSI(x, y) ((SI) (x) > (SI) (y))
148 #define GESI(x, y) ((SI) (x) >= (SI) (y))
149 #define LTUSI(x, y) ((USI) (x) < (USI) (y))
150 #define LEUSI(x, y) ((USI) (x) <= (USI) (y))
151 #define GTUSI(x, y) ((USI) (x) > (USI) (y))
152 #define GEUSI(x, y) ((USI) (x) >= (USI) (y))
155 extern DI ADDDI
PARAMS ((DI
, DI
));
156 extern DI SUBDI
PARAMS ((DI
, DI
));
157 extern DI MULDI
PARAMS ((DI
, DI
));
158 extern DI DIVDI
PARAMS ((DI
, DI
));
159 extern DI UDIVDI
PARAMS ((DI
, DI
));
160 extern DI MODDI
PARAMS ((DI
, DI
));
161 extern DI UMODDI
PARAMS ((DI
, DI
));
162 extern DI SRADI
PARAMS ((DI
, int));
163 extern UDI SRLDI
PARAMS ((UDI
, int));
164 extern UDI SHLDI
PARAMS ((UDI
, int));
165 extern DI RORDI
PARAMS ((DI
, int));
166 extern DI ROLDI
PARAMS ((DI
, int));
167 extern DI ANDDI
PARAMS ((DI
, DI
));
168 extern DI ORDI
PARAMS ((DI
, DI
));
169 extern DI XORDI
PARAMS ((DI
, DI
));
170 extern int ANDIFDI
PARAMS ((DI
, DI
));
171 extern int ORIFDI
PARAMS ((DI
, DI
));
172 extern DI NEGDI
PARAMS ((DI
));
173 extern int NOTDI
PARAMS ((DI
));
174 extern DI INVDI
PARAMS ((DI
));
175 extern int EQDI
PARAMS ((DI
, DI
));
176 extern int NEDI
PARAMS ((DI
, DI
));
177 extern int LTDI
PARAMS ((DI
, DI
));
178 extern int LEDI
PARAMS ((DI
, DI
));
179 extern int GTDI
PARAMS ((DI
, DI
));
180 extern int GEDI
PARAMS ((DI
, DI
));
181 extern int LTUDI
PARAMS ((UDI
, UDI
));
182 extern int LEUDI
PARAMS ((UDI
, UDI
));
183 extern int GTUDI
PARAMS ((UDI
, UDI
));
184 extern int GEUDI
PARAMS ((UDI
, UDI
));
185 #else /* ! DI_FN_SUPPORT */
186 #define ADDDI(x, y) ((x) + (y))
187 #define SUBDI(x, y) ((x) - (y))
188 #define MULDI(x, y) ((x) * (y))
189 #define DIVDI(x, y) ((DI) (x) / (DI) (y))
190 #define UDIVDI(x, y) ((DI) (x) / (DI) (y))
191 #define MODDI(x, y) ((DI) (x) % (DI) (y))
192 #define UMODDI(x, y) ((DI) (x) % (DI) (y))
193 #define SRADI(x, y) ((DI) (x) >> (y))
194 #define SRLDI(x, y) ((UDI) (x) >> (y))
195 #define SHLDI(x, y) ((UDI) (x) << (y))
196 extern DI RORDI
PARAMS ((DI
, int));
197 extern DI ROLDI
PARAMS ((DI
, int));
198 #define ANDDI(x, y) ((x) & (y))
199 #define ORDI(x, y) ((x) | (y))
200 #define XORDI(x, y) ((x) ^ (y))
201 #define ANDIFDI(x, y) ((DI) (x) && (DI) (y))
202 #define ORIFDI(x, y) ((DI) (x) || (DI) (y))
203 #define NEGDI(x) (- (x))
204 #define NOTDI(x) (! (DI) (x))
205 #define INVDI(x) (~ (x))
206 #define EQDI(x, y) ((DI) (x) == (DI) (y))
207 #define NEDI(x, y) ((DI) (x) != (DI) (y))
208 #define LTDI(x, y) ((DI) (x) < (DI) (y))
209 #define LEDI(x, y) ((DI) (x) <= (DI) (y))
210 #define GTDI(x, y) ((DI) (x) > (DI) (y))
211 #define GEDI(x, y) ((DI) (x) >= (DI) (y))
212 #define LTUDI(x, y) ((UDI) (x) < (UDI) (y))
213 #define LEUDI(x, y) ((UDI) (x) <= (UDI) (y))
214 #define GTUDI(x, y) ((UDI) (x) > (UDI) (y))
215 #define GEUDI(x, y) ((UDI) (x) >= (UDI) (y))
216 #endif /* DI_FN_SUPPORT */
219 extern SF ADDSF
PARAMS ((SF
, SF
));
220 extern SF SUBSF
PARAMS ((SF
, SF
));
221 extern SF NEGSF
PARAMS ((SF
));
222 extern SF MULSF
PARAMS ((SF
, SF
));
223 extern SF DIVSF
PARAMS ((SF
, SF
));
224 extern int EQSF
PARAMS ((SF
, SF
));
225 extern int NESF
PARAMS ((SF
, SF
));
226 extern int LTSF
PARAMS ((SF
, SF
));
227 extern int LESF
PARAMS ((SF
, SF
));
228 extern int GTSF
PARAMS ((SF
, SF
));
229 extern int GESF
PARAMS ((SF
, SF
));
230 extern SF ABSSF
PARAMS ((SF
));
231 extern SF SQRTSF
PARAMS ((SF
));
232 extern SF COSSF
PARAMS ((SF
));
233 extern SF SINSF
PARAMS ((SF
));
234 #else /* ! SF_FN_SUPPORT */
235 #define ADDSF(x, y) ((x) + (y))
236 #define SUBSF(x, y) ((x) - (y))
237 #define NEGSF(x) (- (x))
238 #define MULSF(x, y) ((x) * (y))
239 #define DIVSF(x, y) ((x) / (y))
240 #define EQSF(x, y) ((SF) (x) == (SF) (y))
241 #define NESF(x, y) ((SF) (x) != (SF) (y))
242 #define LTSF(x, y) ((SF) (x) < (SF) (y))
243 #define LESF(x, y) ((SF) (x) <= (SF) (y))
244 #define GTSF(x, y) ((SF) (x) > (SF) (y))
245 #define GESF(x, y) ((SF) (x) >= (SF) (y))
246 extern SF ABSSF
PARAMS ((SF
));
247 extern SF SQRTSF
PARAMS ((SF
));
248 extern SF COSSF
PARAMS ((SF
));
249 extern SF SINSF
PARAMS ((SF
));
250 #endif /* SF_FN_SUPPORT */
253 extern DF ADDDF
PARAMS ((DF
, DF
));
254 extern DF SUBDF
PARAMS ((DF
, DF
));
255 extern DF NEGDF
PARAMS ((DF
));
256 extern DF MULDF
PARAMS ((DF
, DF
));
257 extern DF DIVDF
PARAMS ((DF
, DF
));
258 extern int EQDF
PARAMS ((DF
, DF
));
259 extern int NEDF
PARAMS ((DF
, DF
));
260 extern int LTDF
PARAMS ((DF
, DF
));
261 extern int LEDF
PARAMS ((DF
, DF
));
262 extern int GTDF
PARAMS ((DF
, DF
));
263 extern int GEDF
PARAMS ((DF
, DF
));
264 extern DF ABSDF
PARAMS ((DF
));
265 extern DF SQRTDF
PARAMS ((DF
));
266 extern DF COSDF
PARAMS ((DF
));
267 extern DF SINDF
PARAMS ((DF
));
268 #else /* ! DF_FN_SUPPORT */
269 #define ADDDF(x, y) ((x) + (y))
270 #define SUBDF(x, y) ((x) - (y))
271 #define NEGDF(x) (- (x))
272 #define MULDF(x, y) ((x) * (y))
273 #define DIVDF(x, y) ((x) / (y))
274 #define EQDF(x, y) ((DF) (x) == (DF) (y))
275 #define NEDF(x, y) ((DF) (x) != (DF) (y))
276 #define LTDF(x, y) ((DF) (x) < (DF) (y))
277 #define LEDF(x, y) ((DF) (x) <= (DF) (y))
278 #define GTDF(x, y) ((DF) (x) > (DF) (y))
279 #define GEDF(x, y) ((DF) (x) >= (DF) (y))
280 extern DF ABSDF
PARAMS ((DF
));
281 extern DF SQRTDF
PARAMS ((DF
));
282 extern DF COSDF
PARAMS ((DF
));
283 extern DF SINDF
PARAMS ((DF
));
284 #endif /* DF_FN_SUPPORT */
287 extern XF ADDXF
PARAMS ((XF
, XF
));
288 extern XF SUBXF
PARAMS ((XF
, XF
));
289 extern XF NEGXF
PARAMS ((XF
));
290 extern XF MULXF
PARAMS ((XF
, XF
));
291 extern XF DIVXF
PARAMS ((XF
, XF
));
292 extern int EQXF
PARAMS ((XF
, XF
));
293 extern int NEXF
PARAMS ((XF
, XF
));
294 extern int LTXF
PARAMS ((XF
, XF
));
295 extern int LEXF
PARAMS ((XF
, XF
));
296 extern int GTXF
PARAMS ((XF
, XF
));
297 extern int GEXF
PARAMS ((XF
, XF
));
298 extern XF ABSXF
PARAMS ((XF
));
299 extern XF SQRTXF
PARAMS ((XF
));
300 extern XF COSXF
PARAMS ((XF
));
301 extern XF SINXF
PARAMS ((XF
));
302 #else /* ! XF_FN_SUPPORT */
303 #define ADDXF(x, y) ((x) + (y))
304 #define SUBXF(x, y) ((x) - (y))
305 #define NEGXF(x) (- (x))
306 #define MULXF(x, y) ((x) * (y))
307 #define DIVXF(x, y) ((x) / (y))
308 #define EQXF(x, y) ((XF) (x) == (XF) (y))
309 #define NEXF(x, y) ((XF) (x) != (XF) (y))
310 #define LTXF(x, y) ((XF) (x) < (XF) (y))
311 #define LEXF(x, y) ((XF) (x) <= (XF) (y))
312 #define GTXF(x, y) ((XF) (x) > (XF) (y))
313 #define GEXF(x, y) ((XF) (x) >= (XF) (y))
314 extern XF ABSXF
PARAMS ((XF
));
315 extern XF SQRTXF
PARAMS ((XF
));
316 extern XF COSXF
PARAMS ((XF
));
317 extern XF SINXF
PARAMS ((XF
));
318 #endif /* XF_FN_SUPPORT */
321 extern TF ADDTF
PARAMS ((TF
, TF
));
322 extern TF SUBTF
PARAMS ((TF
, TF
));
323 extern TF NEGTF
PARAMS ((TF
));
324 extern TF MULTF
PARAMS ((TF
, TF
));
325 extern TF DIVTF
PARAMS ((TF
, TF
));
326 extern int EQTF
PARAMS ((TF
, TF
));
327 extern int NETF
PARAMS ((TF
, TF
));
328 extern int LTTF
PARAMS ((TF
, TF
));
329 extern int LETF
PARAMS ((TF
, TF
));
330 extern int GTTF
PARAMS ((TF
, TF
));
331 extern int GETF
PARAMS ((TF
, TF
));
332 extern TF ABSTF
PARAMS ((TF
));
333 extern TF SQRTTF
PARAMS ((TF
));
334 extern TF COSTF
PARAMS ((TF
));
335 extern TF SINTF
PARAMS ((TF
));
336 #else /* ! TF_FN_SUPPORT */
337 #define ADDTF(x, y) ((x) + (y))
338 #define SUBTF(x, y) ((x) - (y))
339 #define NEGTF(x) (- (x))
340 #define MULTF(x, y) ((x) * (y))
341 #define DIVTF(x, y) ((x) / (y))
342 #define EQTF(x, y) ((TF) (x) == (TF) (y))
343 #define NETF(x, y) ((TF) (x) != (TF) (y))
344 #define LTTF(x, y) ((TF) (x) < (TF) (y))
345 #define LETF(x, y) ((TF) (x) <= (TF) (y))
346 #define GTTF(x, y) ((TF) (x) > (TF) (y))
347 #define GETF(x, y) ((TF) (x) >= (TF) (y))
348 extern TF ABSTF
PARAMS ((TF
));
349 extern TF SQRTTF
PARAMS ((TF
));
350 extern TF COSTF
PARAMS ((TF
));
351 extern TF SINTF
PARAMS ((TF
));
352 #endif /* TF_FN_SUPPORT */
355 #define EXTBIQI(x) ((QI) (BI) (x))
356 #define EXTBIHI(x) ((HI) (BI) (x))
357 #define EXTBISI(x) ((SI) (BI) (x))
358 #if defined (DI_FN_SUPPORT)
359 extern DI EXTBIDI
PARAMS ((BI
));
361 #define EXTBIDI(x) ((DI) (BI) (x))
363 #define EXTQIHI(x) ((HI) (QI) (x))
364 #define EXTQISI(x) ((SI) (QI) (x))
365 #if defined (DI_FN_SUPPORT)
366 extern DI EXTQIDI
PARAMS ((QI
));
368 #define EXTQIDI(x) ((DI) (QI) (x))
370 #define EXTHISI(x) ((SI) (HI) (x))
371 #if defined (DI_FN_SUPPORT)
372 extern DI EXTHIDI
PARAMS ((HI
));
374 #define EXTHIDI(x) ((DI) (HI) (x))
376 #if defined (DI_FN_SUPPORT)
377 extern DI EXTSIDI
PARAMS ((SI
));
379 #define EXTSIDI(x) ((DI) (SI) (x))
381 #if defined (SF_FN_SUPPORT) || defined (DF_FN_SUPPORT)
382 extern DF EXTSFDF
PARAMS ((SF
));
384 #define EXTSFDF(x) ((DF) (SF) (x))
386 #if defined (SF_FN_SUPPORT) || defined (XF_FN_SUPPORT)
387 extern XF EXTSFXF
PARAMS ((SF
));
389 #define EXTSFXF(x) ((XF) (SF) (x))
391 #if defined (SF_FN_SUPPORT) || defined (TF_FN_SUPPORT)
392 extern TF EXTSFTF
PARAMS ((SF
));
394 #define EXTSFTF(x) ((TF) (SF) (x))
396 #if defined (DF_FN_SUPPORT) || defined (XF_FN_SUPPORT)
397 extern XF EXTDFXF
PARAMS ((DF
));
399 #define EXTDFXF(x) ((XF) (DF) (x))
401 #if defined (DF_FN_SUPPORT) || defined (TF_FN_SUPPORT)
402 extern TF EXTDFTF
PARAMS ((DF
));
404 #define EXTDFTF(x) ((TF) (DF) (x))
406 #if defined (XF_FN_SUPPORT) || defined (TF_FN_SUPPORT)
407 extern TF EXTXFTF
PARAMS ((XF
));
409 #define EXTXFTF(x) ((TF) (XF) (x))
411 #define ZEXTBIQI(x) ((QI) (UBI) (x))
412 #define ZEXTBIHI(x) ((HI) (UBI) (x))
413 #define ZEXTBISI(x) ((SI) (UBI) (x))
414 #if defined (DI_FN_SUPPORT)
415 extern DI ZEXTBIDI
PARAMS ((BI
));
417 #define ZEXTBIDI(x) ((DI) (UBI) (x))
419 #define ZEXTQIHI(x) ((HI) (UQI) (x))
420 #define ZEXTQISI(x) ((SI) (UQI) (x))
421 #if defined (DI_FN_SUPPORT)
422 extern DI ZEXTQIDI
PARAMS ((QI
));
424 #define ZEXTQIDI(x) ((DI) (UQI) (x))
426 #define ZEXTHISI(x) ((SI) (UHI) (x))
427 #if defined (DI_FN_SUPPORT)
428 extern DI ZEXTHIDI
PARAMS ((HI
));
430 #define ZEXTHIDI(x) ((DI) (UHI) (x))
432 #if defined (DI_FN_SUPPORT)
433 extern DI ZEXTSIDI
PARAMS ((SI
));
435 #define ZEXTSIDI(x) ((DI) (USI) (x))
437 #define TRUNCQIBI(x) ((BI) (QI) (x))
438 #define TRUNCHIBI(x) ((BI) (HI) (x))
439 #define TRUNCHIQI(x) ((QI) (HI) (x))
440 #define TRUNCSIBI(x) ((BI) (SI) (x))
441 #define TRUNCSIQI(x) ((QI) (SI) (x))
442 #define TRUNCSIHI(x) ((HI) (SI) (x))
443 #if defined (DI_FN_SUPPORT)
444 extern BI TRUNCDIBI
PARAMS ((DI
));
446 #define TRUNCDIBI(x) ((BI) (DI) (x))
448 #if defined (DI_FN_SUPPORT)
449 extern QI TRUNCDIQI
PARAMS ((DI
));
451 #define TRUNCDIQI(x) ((QI) (DI) (x))
453 #if defined (DI_FN_SUPPORT)
454 extern HI TRUNCDIHI
PARAMS ((DI
));
456 #define TRUNCDIHI(x) ((HI) (DI) (x))
458 #if defined (DI_FN_SUPPORT)
459 extern SI TRUNCDISI
PARAMS ((DI
));
461 #define TRUNCDISI(x) ((SI) (DI) (x))
463 #if defined (DF_FN_SUPPORT) || defined (SF_FN_SUPPORT)
464 extern SF TRUNCDFSF
PARAMS ((DF
));
466 #define TRUNCDFSF(x) ((SF) (DF) (x))
468 #if defined (XF_FN_SUPPORT) || defined (SF_FN_SUPPORT)
469 extern SF TRUNCXFSF
PARAMS ((XF
));
471 #define TRUNCXFSF(x) ((SF) (XF) (x))
473 #if defined (XF_FN_SUPPORT) || defined (DF_FN_SUPPORT)
474 extern DF TRUNCXFDF
PARAMS ((XF
));
476 #define TRUNCXFDF(x) ((DF) (XF) (x))
478 #if defined (TF_FN_SUPPORT) || defined (SF_FN_SUPPORT)
479 extern SF TRUNCTFSF
PARAMS ((TF
));
481 #define TRUNCTFSF(x) ((SF) (TF) (x))
483 #if defined (TF_FN_SUPPORT) || defined (DF_FN_SUPPORT)
484 extern DF TRUNCTFDF
PARAMS ((TF
));
486 #define TRUNCTFDF(x) ((DF) (TF) (x))
488 #if defined (TF_FN_SUPPORT) || defined (XF_FN_SUPPORT)
489 extern XF TRUNCTFXF
PARAMS ((TF
));
491 #define TRUNCTFXF(x) ((XF) (TF) (x))
493 #if defined (SF_FN_SUPPORT)
494 extern SF FLOATBISF
PARAMS ((BI
));
496 #define FLOATBISF(x) ((SF) (BI) (x))
498 #if defined (DF_FN_SUPPORT)
499 extern DF FLOATBIDF
PARAMS ((BI
));
501 #define FLOATBIDF(x) ((DF) (BI) (x))
503 #if defined (XF_FN_SUPPORT)
504 extern XF FLOATBIXF
PARAMS ((BI
));
506 #define FLOATBIXF(x) ((XF) (BI) (x))
508 #if defined (TF_FN_SUPPORT)
509 extern TF FLOATBITF
PARAMS ((BI
));
511 #define FLOATBITF(x) ((TF) (BI) (x))
513 #if defined (SF_FN_SUPPORT)
514 extern SF FLOATQISF
PARAMS ((QI
));
516 #define FLOATQISF(x) ((SF) (QI) (x))
518 #if defined (DF_FN_SUPPORT)
519 extern DF FLOATQIDF
PARAMS ((QI
));
521 #define FLOATQIDF(x) ((DF) (QI) (x))
523 #if defined (XF_FN_SUPPORT)
524 extern XF FLOATQIXF
PARAMS ((QI
));
526 #define FLOATQIXF(x) ((XF) (QI) (x))
528 #if defined (TF_FN_SUPPORT)
529 extern TF FLOATQITF
PARAMS ((QI
));
531 #define FLOATQITF(x) ((TF) (QI) (x))
533 #if defined (SF_FN_SUPPORT)
534 extern SF FLOATHISF
PARAMS ((HI
));
536 #define FLOATHISF(x) ((SF) (HI) (x))
538 #if defined (DF_FN_SUPPORT)
539 extern DF FLOATHIDF
PARAMS ((HI
));
541 #define FLOATHIDF(x) ((DF) (HI) (x))
543 #if defined (XF_FN_SUPPORT)
544 extern XF FLOATHIXF
PARAMS ((HI
));
546 #define FLOATHIXF(x) ((XF) (HI) (x))
548 #if defined (TF_FN_SUPPORT)
549 extern TF FLOATHITF
PARAMS ((HI
));
551 #define FLOATHITF(x) ((TF) (HI) (x))
553 #if defined (SF_FN_SUPPORT)
554 extern SF FLOATSISF
PARAMS ((SI
));
556 #define FLOATSISF(x) ((SF) (SI) (x))
558 #if defined (DF_FN_SUPPORT)
559 extern DF FLOATSIDF
PARAMS ((SI
));
561 #define FLOATSIDF(x) ((DF) (SI) (x))
563 #if defined (XF_FN_SUPPORT)
564 extern XF FLOATSIXF
PARAMS ((SI
));
566 #define FLOATSIXF(x) ((XF) (SI) (x))
568 #if defined (TF_FN_SUPPORT)
569 extern TF FLOATSITF
PARAMS ((SI
));
571 #define FLOATSITF(x) ((TF) (SI) (x))
573 #if defined (DI_FN_SUPPORT) || defined (SF_FN_SUPPORT)
574 extern SF FLOATDISF
PARAMS ((DI
));
576 #define FLOATDISF(x) ((SF) (DI) (x))
578 #if defined (DI_FN_SUPPORT) || defined (DF_FN_SUPPORT)
579 extern DF FLOATDIDF
PARAMS ((DI
));
581 #define FLOATDIDF(x) ((DF) (DI) (x))
583 #if defined (DI_FN_SUPPORT) || defined (XF_FN_SUPPORT)
584 extern XF FLOATDIXF
PARAMS ((DI
));
586 #define FLOATDIXF(x) ((XF) (DI) (x))
588 #if defined (DI_FN_SUPPORT) || defined (TF_FN_SUPPORT)
589 extern TF FLOATDITF
PARAMS ((DI
));
591 #define FLOATDITF(x) ((TF) (DI) (x))
593 #if defined (SF_FN_SUPPORT)
594 extern SF UFLOATBISF
PARAMS ((BI
));
596 #define UFLOATBISF(x) ((SF) (UBI) (x))
598 #if defined (DF_FN_SUPPORT)
599 extern DF UFLOATBIDF
PARAMS ((BI
));
601 #define UFLOATBIDF(x) ((DF) (UBI) (x))
603 #if defined (XF_FN_SUPPORT)
604 extern XF UFLOATBIXF
PARAMS ((BI
));
606 #define UFLOATBIXF(x) ((XF) (UBI) (x))
608 #if defined (TF_FN_SUPPORT)
609 extern TF UFLOATBITF
PARAMS ((BI
));
611 #define UFLOATBITF(x) ((TF) (UBI) (x))
613 #if defined (SF_FN_SUPPORT)
614 extern SF UFLOATQISF
PARAMS ((QI
));
616 #define UFLOATQISF(x) ((SF) (UQI) (x))
618 #if defined (DF_FN_SUPPORT)
619 extern DF UFLOATQIDF
PARAMS ((QI
));
621 #define UFLOATQIDF(x) ((DF) (UQI) (x))
623 #if defined (XF_FN_SUPPORT)
624 extern XF UFLOATQIXF
PARAMS ((QI
));
626 #define UFLOATQIXF(x) ((XF) (UQI) (x))
628 #if defined (TF_FN_SUPPORT)
629 extern TF UFLOATQITF
PARAMS ((QI
));
631 #define UFLOATQITF(x) ((TF) (UQI) (x))
633 #if defined (SF_FN_SUPPORT)
634 extern SF UFLOATHISF
PARAMS ((HI
));
636 #define UFLOATHISF(x) ((SF) (UHI) (x))
638 #if defined (DF_FN_SUPPORT)
639 extern DF UFLOATHIDF
PARAMS ((HI
));
641 #define UFLOATHIDF(x) ((DF) (UHI) (x))
643 #if defined (XF_FN_SUPPORT)
644 extern XF UFLOATHIXF
PARAMS ((HI
));
646 #define UFLOATHIXF(x) ((XF) (UHI) (x))
648 #if defined (TF_FN_SUPPORT)
649 extern TF UFLOATHITF
PARAMS ((HI
));
651 #define UFLOATHITF(x) ((TF) (UHI) (x))
653 #if defined (SF_FN_SUPPORT)
654 extern SF UFLOATSISF
PARAMS ((SI
));
656 #define UFLOATSISF(x) ((SF) (USI) (x))
658 #if defined (DF_FN_SUPPORT)
659 extern DF UFLOATSIDF
PARAMS ((SI
));
661 #define UFLOATSIDF(x) ((DF) (USI) (x))
663 #if defined (XF_FN_SUPPORT)
664 extern XF UFLOATSIXF
PARAMS ((SI
));
666 #define UFLOATSIXF(x) ((XF) (USI) (x))
668 #if defined (TF_FN_SUPPORT)
669 extern TF UFLOATSITF
PARAMS ((SI
));
671 #define UFLOATSITF(x) ((TF) (USI) (x))
673 #if defined (DI_FN_SUPPORT) || defined (SF_FN_SUPPORT)
674 extern SF UFLOATDISF
PARAMS ((DI
));
676 #define UFLOATDISF(x) ((SF) (UDI) (x))
678 #if defined (DI_FN_SUPPORT) || defined (DF_FN_SUPPORT)
679 extern DF UFLOATDIDF
PARAMS ((DI
));
681 #define UFLOATDIDF(x) ((DF) (UDI) (x))
683 #if defined (DI_FN_SUPPORT) || defined (XF_FN_SUPPORT)
684 extern XF UFLOATDIXF
PARAMS ((DI
));
686 #define UFLOATDIXF(x) ((XF) (UDI) (x))
688 #if defined (DI_FN_SUPPORT) || defined (TF_FN_SUPPORT)
689 extern TF UFLOATDITF
PARAMS ((DI
));
691 #define UFLOATDITF(x) ((TF) (UDI) (x))
693 #if defined (SF_FN_SUPPORT)
694 extern BI FIXSFBI
PARAMS ((SF
));
696 #define FIXSFBI(x) ((BI) (SF) (x))
698 #if defined (SF_FN_SUPPORT)
699 extern QI FIXSFQI
PARAMS ((SF
));
701 #define FIXSFQI(x) ((QI) (SF) (x))
703 #if defined (SF_FN_SUPPORT)
704 extern HI FIXSFHI
PARAMS ((SF
));
706 #define FIXSFHI(x) ((HI) (SF) (x))
708 #if defined (SF_FN_SUPPORT)
709 extern SI FIXSFSI
PARAMS ((SF
));
711 #define FIXSFSI(x) ((SI) (SF) (x))
713 #if defined (SF_FN_SUPPORT) || defined (DI_FN_SUPPORT)
714 extern DI FIXSFDI
PARAMS ((SF
));
716 #define FIXSFDI(x) ((DI) (SF) (x))
718 #if defined (DF_FN_SUPPORT)
719 extern BI FIXDFBI
PARAMS ((DF
));
721 #define FIXDFBI(x) ((BI) (DF) (x))
723 #if defined (DF_FN_SUPPORT)
724 extern QI FIXDFQI
PARAMS ((DF
));
726 #define FIXDFQI(x) ((QI) (DF) (x))
728 #if defined (DF_FN_SUPPORT)
729 extern HI FIXDFHI
PARAMS ((DF
));
731 #define FIXDFHI(x) ((HI) (DF) (x))
733 #if defined (DF_FN_SUPPORT)
734 extern SI FIXDFSI
PARAMS ((DF
));
736 #define FIXDFSI(x) ((SI) (DF) (x))
738 #if defined (DF_FN_SUPPORT) || defined (DI_FN_SUPPORT)
739 extern DI FIXDFDI
PARAMS ((DF
));
741 #define FIXDFDI(x) ((DI) (DF) (x))
743 #if defined (XF_FN_SUPPORT)
744 extern BI FIXXFBI
PARAMS ((XF
));
746 #define FIXXFBI(x) ((BI) (XF) (x))
748 #if defined (XF_FN_SUPPORT)
749 extern QI FIXXFQI
PARAMS ((XF
));
751 #define FIXXFQI(x) ((QI) (XF) (x))
753 #if defined (XF_FN_SUPPORT)
754 extern HI FIXXFHI
PARAMS ((XF
));
756 #define FIXXFHI(x) ((HI) (XF) (x))
758 #if defined (XF_FN_SUPPORT)
759 extern SI FIXXFSI
PARAMS ((XF
));
761 #define FIXXFSI(x) ((SI) (XF) (x))
763 #if defined (XF_FN_SUPPORT) || defined (DI_FN_SUPPORT)
764 extern DI FIXXFDI
PARAMS ((XF
));
766 #define FIXXFDI(x) ((DI) (XF) (x))
768 #if defined (TF_FN_SUPPORT)
769 extern BI FIXTFBI
PARAMS ((TF
));
771 #define FIXTFBI(x) ((BI) (TF) (x))
773 #if defined (TF_FN_SUPPORT)
774 extern QI FIXTFQI
PARAMS ((TF
));
776 #define FIXTFQI(x) ((QI) (TF) (x))
778 #if defined (TF_FN_SUPPORT)
779 extern HI FIXTFHI
PARAMS ((TF
));
781 #define FIXTFHI(x) ((HI) (TF) (x))
783 #if defined (TF_FN_SUPPORT)
784 extern SI FIXTFSI
PARAMS ((TF
));
786 #define FIXTFSI(x) ((SI) (TF) (x))
788 #if defined (TF_FN_SUPPORT) || defined (DI_FN_SUPPORT)
789 extern DI FIXTFDI
PARAMS ((TF
));
791 #define FIXTFDI(x) ((DI) (TF) (x))
793 #if defined (SF_FN_SUPPORT)
794 extern BI UFIXSFBI
PARAMS ((SF
));
796 #define UFIXSFBI(x) ((UBI) (SF) (x))
798 #if defined (SF_FN_SUPPORT)
799 extern QI UFIXSFQI
PARAMS ((SF
));
801 #define UFIXSFQI(x) ((UQI) (SF) (x))
803 #if defined (SF_FN_SUPPORT)
804 extern HI UFIXSFHI
PARAMS ((SF
));
806 #define UFIXSFHI(x) ((UHI) (SF) (x))
808 #if defined (SF_FN_SUPPORT)
809 extern SI UFIXSFSI
PARAMS ((SF
));
811 #define UFIXSFSI(x) ((USI) (SF) (x))
813 #if defined (SF_FN_SUPPORT) || defined (DI_FN_SUPPORT)
814 extern DI UFIXSFDI
PARAMS ((SF
));
816 #define UFIXSFDI(x) ((UDI) (SF) (x))
818 #if defined (DF_FN_SUPPORT)
819 extern BI UFIXDFBI
PARAMS ((DF
));
821 #define UFIXDFBI(x) ((UBI) (DF) (x))
823 #if defined (DF_FN_SUPPORT)
824 extern QI UFIXDFQI
PARAMS ((DF
));
826 #define UFIXDFQI(x) ((UQI) (DF) (x))
828 #if defined (DF_FN_SUPPORT)
829 extern HI UFIXDFHI
PARAMS ((DF
));
831 #define UFIXDFHI(x) ((UHI) (DF) (x))
833 #if defined (DF_FN_SUPPORT)
834 extern SI UFIXDFSI
PARAMS ((DF
));
836 #define UFIXDFSI(x) ((USI) (DF) (x))
838 #if defined (DF_FN_SUPPORT) || defined (DI_FN_SUPPORT)
839 extern DI UFIXDFDI
PARAMS ((DF
));
841 #define UFIXDFDI(x) ((UDI) (DF) (x))
843 #if defined (XF_FN_SUPPORT)
844 extern BI UFIXXFBI
PARAMS ((XF
));
846 #define UFIXXFBI(x) ((UBI) (XF) (x))
848 #if defined (XF_FN_SUPPORT)
849 extern QI UFIXXFQI
PARAMS ((XF
));
851 #define UFIXXFQI(x) ((UQI) (XF) (x))
853 #if defined (XF_FN_SUPPORT)
854 extern HI UFIXXFHI
PARAMS ((XF
));
856 #define UFIXXFHI(x) ((UHI) (XF) (x))
858 #if defined (XF_FN_SUPPORT)
859 extern SI UFIXXFSI
PARAMS ((XF
));
861 #define UFIXXFSI(x) ((USI) (XF) (x))
863 #if defined (XF_FN_SUPPORT) || defined (DI_FN_SUPPORT)
864 extern DI UFIXXFDI
PARAMS ((XF
));
866 #define UFIXXFDI(x) ((UDI) (XF) (x))
868 #if defined (TF_FN_SUPPORT)
869 extern BI UFIXTFBI
PARAMS ((TF
));
871 #define UFIXTFBI(x) ((UBI) (TF) (x))
873 #if defined (TF_FN_SUPPORT)
874 extern QI UFIXTFQI
PARAMS ((TF
));
876 #define UFIXTFQI(x) ((UQI) (TF) (x))
878 #if defined (TF_FN_SUPPORT)
879 extern HI UFIXTFHI
PARAMS ((TF
));
881 #define UFIXTFHI(x) ((UHI) (TF) (x))
883 #if defined (TF_FN_SUPPORT)
884 extern SI UFIXTFSI
PARAMS ((TF
));
886 #define UFIXTFSI(x) ((USI) (TF) (x))
888 #if defined (TF_FN_SUPPORT) || defined (DI_FN_SUPPORT)
889 extern DI UFIXTFDI
PARAMS ((TF
));
891 #define UFIXTFDI(x) ((UDI) (TF) (x))
894 /* Semantic support utilities. */
898 #ifdef SEMOPS_DEFINE_INLINE
899 #define SEMOPS_INLINE
901 #define SEMOPS_INLINE extern inline
905 ADDCSI (SI a
, SI b
, UBI c
)
907 SI res
= ADDSI (a
, ADDSI (b
, c
));
912 ADDCFSI (SI a
, SI b
, UBI c
)
914 SI tmp
= ADDSI (a
, ADDSI (b
, c
));
915 BI res
= (USI
) tmp
< (USI
) a
|| (USI
) tmp
< (USI
) b
;
920 ADDOFSI (SI a
, SI b
, UBI c
)
922 SI tmp
= ADDSI (a
, ADDSI (b
, c
));
923 BI res
= (((a
< 0) == (b
< 0))
924 && ((a
< 0) != (tmp
< 0)));
929 SUBCSI (SI a
, SI b
, UBI c
)
931 SI res
= SUBSI (a
, ADDSI (b
, c
));
936 SUBCFSI (SI a
, SI b
, UBI c
)
938 BI res
= ((USI
) a
< (USI
) b
) || ((a
== b
) && c
);
943 SUBOFSI (SI a
, SI b
, UBI c
)
945 SI tmp
= SUBSI (a
, ADDSI (b
, c
));
946 BI res
= (((a
< 0) != (b
< 0))
947 && ((a
< 0) != (tmp
< 0)));
953 SI
ADDCSI (SI
, SI
, UBI
);
954 UBI
ADDCFSI (SI
, SI
, UBI
);
955 UBI
ADDOFSI (SI
, SI
, UBI
);
956 SI
SUBCSI (SI
, SI
, UBI
);
957 UBI
SUBCFSI (SI
, SI
, UBI
);
958 UBI
SUBOFSI (SI
, SI
, UBI
);
962 /* DI mode support if "long long" doesn't exist.
963 At one point CGEN supported K&R C compilers, and ANSI C compilers without
964 "long long". One can argue the various merits of keeping this in or
965 throwing it out. I went to the trouble of adding it so for the time being
966 I'm leaving it in. */
970 DI
make_struct_di (SI
, SI
);
976 #endif /* DI_FN_SUPPORT */
978 #endif /* CGEN_SEM_OPS_H */
This page took 0.052181 seconds and 4 git commands to generate.