xfail scan-tree-dump-not throw in g++.dg/pr99966.C on hppa*64*-*-*
[official-gcc.git] / gcc / m2 / gm2-libs / Builtins.mod
blob457ee92c282628faa5122bd639d4b310f9f380f5
1 (* Builtins.mod provides access to all built-in functions.
3 Copyright (C) 2001-2024 Free Software Foundation, Inc.
4 Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
6 This file is part of GNU Modula-2.
8 GNU Modula-2 is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 3, or (at your option)
11 any later version.
13 GNU Modula-2 is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 General Public License for more details.
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.
22 You should have received a copy of the GNU General Public License and
23 a copy of the GCC Runtime Library Exception along with this program;
24 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
25 <http://www.gnu.org/licenses/>. *)
27 IMPLEMENTATION MODULE Builtins ;
29 IMPORT cbuiltin, wrapc ;
32 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_alloca)) alloca (i: CARDINAL) : ADDRESS ;
33 BEGIN
34 (* This routine will never be called as it allocates memory on
35 top of the current stack frame, which is automatically
36 deallocated upon its return. *)
37 HALT ;
38 RETURN NIL
39 END alloca ;
41 PROCEDURE alloca_trace (returned: ADDRESS; nBytes: CARDINAL) : ADDRESS ;
42 BEGIN
43 (* this routine is only called if -fdebug-builtins is supplied
44 on the command line. The purpose of this routine is to allow
45 a developer to single step into this routine and inspect the
46 value of, nBytes, and, returned.
48 RETURN returned
49 END alloca_trace ;
51 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_memcpy)) memcpy (dest, src: ADDRESS; nbytes: CARDINAL) : ADDRESS ;
52 BEGIN
53 (* hopefully the compiler will choose to use the __builtin_memcpy function within GCC.
54 This call is here just in case it cannot. Ie if the user sets a procedure variable to
55 memcpy, then clearly the compiler cannot inline such a call and thus it will
56 be forced into calling this function.
58 RETURN cbuiltin.memcpy (dest, src, nbytes)
59 END memcpy ;
62 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isnan)) isnanf (x: SHORTREAL) : INTEGER ;
63 BEGIN
64 RETURN wrapc.isnanf (x)
65 END isnanf ;
67 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isnan)) isnan (x: REAL) : INTEGER ;
68 BEGIN
69 RETURN wrapc.isnan (x)
70 END isnan ;
72 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isnan)) isnanl (x: LONGREAL) : INTEGER ;
73 BEGIN
74 RETURN wrapc.isnanl (x)
75 END isnanl ;
77 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isfinite)) isfinitef (x: SHORTREAL) : INTEGER ;
78 BEGIN
79 RETURN wrapc.isfinitef (x)
80 END isfinitef ;
82 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isfinite)) isfinite (x: REAL) : INTEGER ;
83 BEGIN
84 RETURN wrapc.isfinite (x)
85 END isfinite ;
87 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isfinite)) isfinitel (x: LONGREAL) : INTEGER ;
88 BEGIN
89 RETURN wrapc.isfinitel (x)
90 END isfinitel ;
92 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sin)) sin (x: REAL) : REAL ;
93 BEGIN
94 RETURN cbuiltin.sin (x)
95 END sin ;
97 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sinf)) sinf (x: SHORTREAL) : SHORTREAL ;
98 BEGIN
99 RETURN cbuiltin.sinf (x)
100 END sinf ;
102 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sinl)) sinl (x: LONGREAL) : LONGREAL ;
103 BEGIN
104 RETURN cbuiltin.sinl (x)
105 END sinl ;
107 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cos)) cos (x: REAL) : REAL ;
108 BEGIN
109 RETURN cbuiltin.cos (x)
110 END cos ;
112 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cosf)) cosf (x: SHORTREAL) : SHORTREAL ;
113 BEGIN
114 RETURN cbuiltin.cosf (x)
115 END cosf ;
117 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cosl)) cosl (x: LONGREAL) : LONGREAL ;
118 BEGIN
119 RETURN cbuiltin.cosl (x)
120 END cosl ;
122 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_atan2)) atan2 (x, y: REAL) : REAL ;
123 BEGIN
124 RETURN cbuiltin.atan2 (x, y)
125 END atan2 ;
127 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_atan2f)) atan2f (x, y: SHORTREAL) : SHORTREAL ;
128 BEGIN
129 RETURN cbuiltin.atan2f (x, y)
130 END atan2f ;
132 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_atan2l)) atan2l (x, y: LONGREAL) : LONGREAL ;
133 BEGIN
134 RETURN cbuiltin.atan2l (x, y)
135 END atan2l ;
137 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sqrt)) sqrt (x: REAL) : REAL ;
138 BEGIN
139 RETURN cbuiltin.sqrt (x)
140 END sqrt ;
142 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sqrtf)) sqrtf (x: SHORTREAL) : SHORTREAL ;
143 BEGIN
144 RETURN cbuiltin.sqrtf (x)
145 END sqrtf ;
147 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sqrtl)) sqrtl (x: LONGREAL) : LONGREAL ;
148 BEGIN
149 RETURN cbuiltin.sqrtl (x)
150 END sqrtl ;
152 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_fabs)) fabs (x: REAL) : REAL ;
153 BEGIN
154 RETURN cbuiltin.fabs (x)
155 END fabs ;
157 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_fabsf)) fabsf (x: SHORTREAL) : SHORTREAL ;
158 BEGIN
159 RETURN cbuiltin.fabsf (x)
160 END fabsf ;
162 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_fabsl)) fabsl (x: LONGREAL) : LONGREAL ;
163 BEGIN
164 RETURN cbuiltin.fabsl (x)
165 END fabsl ;
167 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_log)) log (x: REAL) : REAL ;
168 BEGIN
169 RETURN cbuiltin.log (x)
170 END log ;
172 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_logf)) logf (x: SHORTREAL) : SHORTREAL ;
173 BEGIN
174 RETURN cbuiltin.logf (x)
175 END logf ;
177 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_logl)) logl (x: LONGREAL) : LONGREAL ;
178 BEGIN
179 RETURN cbuiltin.logl (x)
180 END logl ;
182 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_exp)) exp (x: REAL) : REAL ;
183 BEGIN
184 RETURN cbuiltin.exp (x)
185 END exp ;
187 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_expf)) expf (x: SHORTREAL) : SHORTREAL ;
188 BEGIN
189 RETURN cbuiltin.expf (x)
190 END expf ;
192 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_expl)) expl (x: LONGREAL) : LONGREAL ;
193 BEGIN
194 RETURN cbuiltin.expl (x)
195 END expl ;
197 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_log10)) log10 (x: REAL) : REAL ;
198 BEGIN
199 RETURN cbuiltin.log10 (x)
200 END log10 ;
202 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_log10f)) log10f (x: SHORTREAL) : SHORTREAL ;
203 BEGIN
204 RETURN cbuiltin.log10f (x)
205 END log10f ;
207 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_log10l)) log10l (x: LONGREAL) : LONGREAL ;
208 BEGIN
209 RETURN cbuiltin.log10l (x)
210 END log10l ;
212 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_exp10)) exp10 (x: REAL) : REAL ;
213 BEGIN
214 RETURN cbuiltin.exp10 (x)
215 END exp10 ;
217 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_exp10f)) exp10f (x: SHORTREAL) : SHORTREAL ;
218 BEGIN
219 RETURN cbuiltin.exp10f (x)
220 END exp10f ;
222 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_exp10l)) exp10l (x: LONGREAL) : LONGREAL ;
223 BEGIN
224 RETURN cbuiltin.exp10l (x)
225 END exp10l ;
227 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_ilogb)) ilogb (x: REAL) : INTEGER ;
228 BEGIN
229 RETURN cbuiltin.ilogb (x)
230 END ilogb ;
232 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_ilogbf)) ilogbf (x: SHORTREAL) : INTEGER ;
233 BEGIN
234 RETURN cbuiltin.ilogbf (x)
235 END ilogbf ;
237 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_ilogbl)) ilogbl (x: LONGREAL) : INTEGER ;
238 BEGIN
239 RETURN cbuiltin.ilogbl (x)
240 END ilogbl ;
242 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_modf)) modf (x: REAL; VAR y: REAL) : REAL ;
243 BEGIN
244 RETURN cbuiltin.modf (x, y)
245 END modf ;
247 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_modff)) modff (x: SHORTREAL; VAR y: SHORTREAL) : SHORTREAL ;
248 BEGIN
249 RETURN cbuiltin.modff (x, y)
250 END modff ;
252 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_modfl)) modfl (x: LONGREAL; VAR y: LONGREAL) : LONGREAL ;
253 BEGIN
254 RETURN cbuiltin.modfl (x, y)
255 END modfl ;
257 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_signbit)) signbit (r: REAL) : INTEGER ;
258 BEGIN
259 RETURN wrapc.signbit (r)
260 END signbit ;
262 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_signbitf)) signbitf (s: SHORTREAL) : INTEGER ;
263 BEGIN
264 RETURN wrapc.signbitf (s)
265 END signbitf ;
267 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_signbitl)) signbitl (l: LONGREAL) : INTEGER ;
268 BEGIN
269 RETURN wrapc.signbitl (l)
270 END signbitl ;
272 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_nextafter)) nextafter (x, y: REAL) : REAL ;
273 BEGIN
274 RETURN cbuiltin.nextafter (x, y)
275 END nextafter ;
277 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_nextafterf)) nextafterf (x, y: SHORTREAL) : SHORTREAL ;
278 BEGIN
279 RETURN cbuiltin.nextafterf (x, y)
280 END nextafterf ;
282 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_nextafterl)) nextafterl (x, y: LONGREAL) : LONGREAL ;
283 BEGIN
284 RETURN cbuiltin.nextafterl (x, y)
285 END nextafterl ;
287 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_nexttoward)) nexttoward (x: REAL; y: LONGREAL) : REAL ;
288 BEGIN
289 RETURN cbuiltin.nexttoward (x, y)
290 END nexttoward ;
292 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_nexttowardf)) nexttowardf (x: SHORTREAL; y: LONGREAL) : SHORTREAL ;
293 BEGIN
294 RETURN cbuiltin.nexttowardf (x, y)
295 END nexttowardf ;
297 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_nexttowardl)) nexttowardl (x, y: LONGREAL) : LONGREAL ;
298 BEGIN
299 RETURN cbuiltin.nexttowardl (x, y)
300 END nexttowardl ;
302 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_scalbln)) scalbln (x: REAL; n: LONGINT) : REAL ;
303 BEGIN
304 RETURN cbuiltin.scalbln (x, n)
305 END scalbln ;
307 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_scalblnf)) scalblnf (x: SHORTREAL; n: LONGINT) : SHORTREAL ;
308 BEGIN
309 RETURN cbuiltin.scalblnf (x, n)
310 END scalblnf ;
312 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_scalblnl)) scalblnl (x: LONGREAL; n: LONGINT) : LONGREAL ;
313 BEGIN
314 RETURN cbuiltin.scalblnl (x, n)
315 END scalblnl ;
317 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_scalbn)) scalbn (x: REAL; n: INTEGER) : REAL ;
318 BEGIN
319 RETURN cbuiltin.scalbn (x, n)
320 END scalbn ;
322 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_scalbnf)) scalbnf (x: SHORTREAL; n: INTEGER) : SHORTREAL ;
323 BEGIN
324 RETURN cbuiltin.scalbnf (x, n)
325 END scalbnf ;
327 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_scalbnl)) scalbnl (x: LONGREAL; n: INTEGER) : LONGREAL ;
328 BEGIN
329 RETURN cbuiltin.scalbnl (x, n)
330 END scalbnl ;
332 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cabsf)) cabsf (z: SHORTCOMPLEX) : SHORTREAL ;
333 BEGIN
334 RETURN cbuiltin.cabsf(z)
335 END cabsf ;
337 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cabs)) cabs (z: COMPLEX) : REAL ;
338 BEGIN
339 RETURN cbuiltin.cabs(z)
340 END cabs ;
342 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cabsl)) cabsl (z: LONGCOMPLEX) : LONGREAL ;
343 BEGIN
344 RETURN cbuiltin.cabsl(z)
345 END cabsl ;
347 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cargf)) cargf (z: SHORTCOMPLEX) : SHORTREAL ;
348 BEGIN
349 RETURN cbuiltin.cargf(z)
350 END cargf ;
352 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_carg)) carg (z: COMPLEX) : REAL ;
353 BEGIN
354 RETURN cbuiltin.carg(z)
355 END carg ;
357 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cargl)) cargl (z: LONGCOMPLEX) : LONGREAL ;
358 BEGIN
359 RETURN cbuiltin.cargl(z)
360 END cargl ;
362 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_conjf)) conjf (z: SHORTCOMPLEX) : SHORTCOMPLEX ;
363 BEGIN
364 RETURN cbuiltin.conjf(z)
365 END conjf ;
367 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_conj)) conj (z: COMPLEX) : COMPLEX ;
368 BEGIN
369 RETURN cbuiltin.conj(z)
370 END conj ;
372 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_conjl)) conjl (z: LONGCOMPLEX) : LONGCOMPLEX ;
373 BEGIN
374 RETURN cbuiltin.conjl(z)
375 END conjl ;
377 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cpowf)) cpowerf (base: SHORTCOMPLEX; exp: SHORTREAL) : SHORTCOMPLEX ;
378 BEGIN
379 RETURN cbuiltin.cpowf(base, exp)
380 END cpowerf ;
382 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cpow)) cpower (base: COMPLEX; exp: REAL) : COMPLEX ;
383 BEGIN
384 RETURN cbuiltin.cpow(base, exp)
385 END cpower ;
387 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cpowl)) cpowerl (base: LONGCOMPLEX; exp: LONGREAL) : LONGCOMPLEX ;
388 BEGIN
389 RETURN cbuiltin.cpowl(base, exp)
390 END cpowerl ;
392 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_csqrtf)) csqrtf (z: SHORTCOMPLEX) : SHORTCOMPLEX ;
393 BEGIN
394 RETURN cbuiltin.csqrtf(z)
395 END csqrtf ;
397 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_csqrt)) csqrt (z: COMPLEX) : COMPLEX ;
398 BEGIN
399 RETURN cbuiltin.csqrt(z)
400 END csqrt ;
402 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_csqrtl)) csqrtl (z: LONGCOMPLEX) : LONGCOMPLEX ;
403 BEGIN
404 RETURN cbuiltin.csqrtl(z)
405 END csqrtl ;
407 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cexpf)) cexpf (z: SHORTCOMPLEX) : SHORTCOMPLEX ;
408 BEGIN
409 RETURN cbuiltin.cexpf(z)
410 END cexpf ;
412 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cexp)) cexp (z: COMPLEX) : COMPLEX ;
413 BEGIN
414 RETURN cbuiltin.cexp(z)
415 END cexp ;
417 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cexpl)) cexpl (z: LONGCOMPLEX) : LONGCOMPLEX ;
418 BEGIN
419 RETURN cbuiltin.cexpl(z)
420 END cexpl ;
422 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_clogf)) clnf (z: SHORTCOMPLEX) : SHORTCOMPLEX ;
423 BEGIN
424 RETURN cbuiltin.clogf(z)
425 END clnf ;
427 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_clog)) cln (z: COMPLEX) : COMPLEX ;
428 BEGIN
429 RETURN cbuiltin.clog(z)
430 END cln ;
432 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_clogl)) clnl (z: LONGCOMPLEX) : LONGCOMPLEX ;
433 BEGIN
434 RETURN cbuiltin.clogl(z)
435 END clnl ;
437 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_csinf)) csinf (z: SHORTCOMPLEX) : SHORTCOMPLEX ;
438 BEGIN
439 RETURN cbuiltin.csinf(z)
440 END csinf ;
442 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_csin)) csin (z: COMPLEX) : COMPLEX ;
443 BEGIN
444 RETURN cbuiltin.csin(z)
445 END csin ;
447 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_csinl)) csinl (z: LONGCOMPLEX) : LONGCOMPLEX ;
448 BEGIN
449 RETURN cbuiltin.csinl(z)
450 END csinl ;
452 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_ccosf)) ccosf (z: SHORTCOMPLEX) : SHORTCOMPLEX ;
453 BEGIN
454 RETURN cbuiltin.ccosf(z)
455 END ccosf ;
457 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_ccos)) ccos (z: COMPLEX) : COMPLEX ;
458 BEGIN
459 RETURN cbuiltin.ccos(z)
460 END ccos ;
462 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_ccosl)) ccosl (z: LONGCOMPLEX) : LONGCOMPLEX ;
463 BEGIN
464 RETURN cbuiltin.ccosl(z)
465 END ccosl ;
467 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_ctanf)) ctanf (z: SHORTCOMPLEX) : SHORTCOMPLEX ;
468 BEGIN
469 RETURN cbuiltin.ctanf(z)
470 END ctanf ;
472 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_ctan)) ctan (z: COMPLEX) : COMPLEX ;
473 BEGIN
474 RETURN cbuiltin.ctan(z)
475 END ctan ;
477 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_ctanl)) ctanl (z: LONGCOMPLEX) : LONGCOMPLEX ;
478 BEGIN
479 RETURN cbuiltin.ctanl(z)
480 END ctanl ;
482 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_casinf)) carcsinf (z: SHORTCOMPLEX) : SHORTCOMPLEX ;
483 BEGIN
484 RETURN cbuiltin.casinf(z)
485 END carcsinf ;
487 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_casin)) carcsin (z: COMPLEX) : COMPLEX ;
488 BEGIN
489 RETURN cbuiltin.casin(z)
490 END carcsin ;
492 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_casinl)) carcsinl (z: LONGCOMPLEX) : LONGCOMPLEX ;
493 BEGIN
494 RETURN cbuiltin.casinl(z)
495 END carcsinl ;
497 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cacosf)) carccosf (z: SHORTCOMPLEX) : SHORTCOMPLEX ;
498 BEGIN
499 RETURN cbuiltin.cacosf(z)
500 END carccosf ;
502 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cacos)) carccos (z: COMPLEX) : COMPLEX ;
503 BEGIN
504 RETURN cbuiltin.cacos(z)
505 END carccos ;
507 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cacosl)) carccosl (z: LONGCOMPLEX) : LONGCOMPLEX ;
508 BEGIN
509 RETURN cbuiltin.cacosl(z)
510 END carccosl ;
512 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_catanf)) carctanf (z: SHORTCOMPLEX) : SHORTCOMPLEX ;
513 BEGIN
514 RETURN cbuiltin.catanf(z)
515 END carctanf ;
517 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_catan)) carctan (z: COMPLEX) : COMPLEX ;
518 BEGIN
519 RETURN cbuiltin.catan(z)
520 END carctan ;
522 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_catanl)) carctanl (z: LONGCOMPLEX) : LONGCOMPLEX ;
523 BEGIN
524 RETURN cbuiltin.catanl(z)
525 END carctanl ;
527 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_index)) index (s: ADDRESS; c: INTEGER) : ADDRESS ;
528 BEGIN
529 RETURN cbuiltin.index (s, c)
530 END index ;
532 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_rindex)) rindex (s: ADDRESS; c: INTEGER) : ADDRESS ;
533 BEGIN
534 RETURN cbuiltin.rindex (s, c)
535 END rindex ;
537 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_memcmp)) memcmp (s1, s2: ADDRESS; nbytes: CARDINAL) : INTEGER ;
538 BEGIN
539 RETURN cbuiltin.memcmp (s1, s2, nbytes)
540 END memcmp ;
542 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_memset)) memset (s: ADDRESS; c: INTEGER; nbytes: CARDINAL) : ADDRESS ;
543 BEGIN
544 RETURN cbuiltin.memset (s, c, nbytes)
545 END memset ;
547 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_memmove)) memmove (s1, s2: ADDRESS; nbytes: CARDINAL) : ADDRESS ;
548 BEGIN
549 RETURN cbuiltin.memmove (s1, s2, nbytes)
550 END memmove ;
552 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strcat)) strcat (dest, src: ADDRESS) : ADDRESS ;
553 BEGIN
554 RETURN cbuiltin.strcat (dest, src)
555 END strcat ;
557 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strncat)) strncat (dest, src: ADDRESS; nbytes: CARDINAL) : ADDRESS ;
558 BEGIN
559 RETURN cbuiltin.strncat (dest, src, nbytes)
560 END strncat ;
562 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strcpy)) strcpy (dest, src: ADDRESS) : ADDRESS ;
563 BEGIN
564 RETURN cbuiltin.strcpy (dest, src)
565 END strcpy ;
567 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strncpy)) strncpy (dest, src: ADDRESS; nbytes: CARDINAL) : ADDRESS ;
568 BEGIN
569 RETURN cbuiltin.strncpy (dest, src, nbytes)
570 END strncpy ;
572 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strcmp)) strcmp (s1, s2: ADDRESS) : INTEGER ;
573 BEGIN
574 RETURN cbuiltin.strcmp (s1, s2)
575 END strcmp ;
577 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strncmp)) strncmp (s1, s2: ADDRESS; nbytes: CARDINAL) : INTEGER ;
578 BEGIN
579 RETURN cbuiltin.strncmp (s1, s2, nbytes)
580 END strncmp ;
582 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strlen)) strlen (s: ADDRESS) : INTEGER ;
583 BEGIN
584 RETURN cbuiltin.strlen (s)
585 END strlen ;
587 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strstr)) strstr (haystack, needle: ADDRESS) : ADDRESS ;
588 BEGIN
589 RETURN cbuiltin.strstr (haystack, needle)
590 END strstr ;
592 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strpbrk)) strpbrk (s, accept: ADDRESS) : ADDRESS ;
593 BEGIN
594 RETURN cbuiltin.strpbrk (s, accept)
595 END strpbrk ;
597 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strspn)) strspn (s, accept: ADDRESS) : CARDINAL ;
598 BEGIN
599 RETURN cbuiltin.strspn (s, accept)
600 END strspn ;
602 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strcspn)) strcspn (s, accept: ADDRESS) : CARDINAL ;
603 BEGIN
604 RETURN cbuiltin.strcspn (s, accept)
605 END strcspn ;
607 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strchr)) strchr (s: ADDRESS; c: INTEGER) : ADDRESS ;
608 BEGIN
609 RETURN cbuiltin.strchr (s, c)
610 END strchr ;
612 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strrchr)) strrchr (s: ADDRESS; c: INTEGER) : ADDRESS ;
613 BEGIN
614 RETURN cbuiltin.strrchr (s, c)
615 END strrchr ;
617 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_huge_val)) huge_val () : REAL ;
618 BEGIN
619 RETURN -1.0
620 END huge_val ;
622 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_huge_vall)) huge_vall () : LONGREAL ;
623 BEGIN
624 RETURN -1.0
625 END huge_vall ;
627 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_huge_valf)) huge_valf () : SHORTREAL ;
628 BEGIN
629 RETURN -1.0
630 END huge_valf ;
632 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_longjmp)) longjmp (env: ADDRESS; val: INTEGER) ;
633 BEGIN
634 (* empty, replaced internally by gcc *)
635 END longjmp ;
637 PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_setjmp)) setjmp (env: ADDRESS) : INTEGER ;
638 BEGIN
639 (* empty, replaced internally by gcc *)
640 RETURN 0 (* keeps gm2 happy *)
641 END setjmp ;
645 frame_address - returns the address of the frame.
646 The current frame is obtained if level is 0,
647 the next level up is level is 1 etc.
650 PROCEDURE __ATTRIBUTE__ __BUILTIN__
651 ((__builtin_frame_address))
652 frame_address (level: CARDINAL) : ADDRESS ;
653 BEGIN
654 RETURN NIL
655 END frame_address ;
659 return_address - returns the return address of function.
660 The current function return address is
661 obtained if level is 0,
662 the next level up is level is 1 etc.
665 PROCEDURE __ATTRIBUTE__ __BUILTIN__
666 ((__builtin_return_address))
667 return_address (level: CARDINAL) : ADDRESS ;
668 BEGIN
669 RETURN NIL
670 END return_address ;
673 END Builtins.