| (* Builtins.mod provides access to all built-in functions. | |
| Copyright (C) 2001-2026 Free Software Foundation, Inc. | |
| Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>. | |
| This file is part of GNU Modula-2. | |
| GNU Modula-2 is free software; you can redistribute it and/or modify | |
| it under the terms of the GNU General Public License as published by | |
| the Free Software Foundation; either version 3, or (at your option) | |
| any later version. | |
| GNU Modula-2 is distributed in the hope that it will be useful, but | |
| WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| General Public License for more details. | |
| Under Section 7 of GPL version 3, you are granted additional | |
| permissions described in the GCC Runtime Library Exception, version | |
| 3.1, as published by the Free Software Foundation. | |
| You should have received a copy of the GNU General Public License and | |
| a copy of the GCC Runtime Library Exception along with this program; | |
| see the files COPYING3 and COPYING.RUNTIME respectively. If not, see | |
| <http://www.gnu.org/licenses/>. *) | |
| IMPLEMENTATION MODULE Builtins ; | |
| IMPORT cbuiltin, wrapc ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_alloca)) alloca (i: CARDINAL) : ADDRESS ; | |
| BEGIN | |
| (* This routine will never be called as it allocates memory on | |
| top of the current stack frame, which is automatically | |
| deallocated upon its return. *) | |
| HALT ; | |
| RETURN NIL | |
| END alloca ; | |
| PROCEDURE alloca_trace (returned: ADDRESS; nBytes: CARDINAL) : ADDRESS ; | |
| BEGIN | |
| (* this routine is only called if -fdebug-builtins is supplied | |
| on the command line. The purpose of this routine is to allow | |
| a developer to single step into this routine and inspect the | |
| value of nBytes and returned. *) | |
| RETURN returned | |
| END alloca_trace ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_memcpy)) | |
| memcpy (dest, src: ADDRESS; nbytes: CARDINAL) : ADDRESS ; | |
| BEGIN | |
| (* Hopefully the compiler will choose to use the __builtin_memcpy | |
| function within GCC. This call is here just in case it cannot. | |
| If the user sets a procedure variable to memcpy then the | |
| code below could be run instead. *) | |
| RETURN cbuiltin.memcpy (dest, src, nbytes) | |
| END memcpy ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isnan)) isnanf (x: SHORTREAL) : INTEGER ; | |
| BEGIN | |
| RETURN wrapc.isnanf (x) | |
| END isnanf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isnan)) isnan (x: REAL) : INTEGER ; | |
| BEGIN | |
| RETURN wrapc.isnan (x) | |
| END isnan ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isnan)) isnanl (x: LONGREAL) : INTEGER ; | |
| BEGIN | |
| RETURN wrapc.isnanl (x) | |
| END isnanl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isfinite)) isfinitef (x: SHORTREAL) : INTEGER ; | |
| BEGIN | |
| RETURN wrapc.isfinitef (x) | |
| END isfinitef ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isfinite)) isfinite (x: REAL) : INTEGER ; | |
| BEGIN | |
| RETURN wrapc.isfinite (x) | |
| END isfinite ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isfinite)) isfinitel (x: LONGREAL) : INTEGER ; | |
| BEGIN | |
| RETURN wrapc.isfinitel (x) | |
| END isfinitel ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sin)) sin (x: REAL) : REAL ; | |
| BEGIN | |
| RETURN cbuiltin.sin (x) | |
| END sin ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sinf)) sinf (x: SHORTREAL) : SHORTREAL ; | |
| BEGIN | |
| RETURN cbuiltin.sinf (x) | |
| END sinf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sinl)) sinl (x: LONGREAL) : LONGREAL ; | |
| BEGIN | |
| RETURN cbuiltin.sinl (x) | |
| END sinl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cos)) cos (x: REAL) : REAL ; | |
| BEGIN | |
| RETURN cbuiltin.cos (x) | |
| END cos ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cosf)) cosf (x: SHORTREAL) : SHORTREAL ; | |
| BEGIN | |
| RETURN cbuiltin.cosf (x) | |
| END cosf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cosl)) cosl (x: LONGREAL) : LONGREAL ; | |
| BEGIN | |
| RETURN cbuiltin.cosl (x) | |
| END cosl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_atan2)) atan2 (x, y: REAL) : REAL ; | |
| BEGIN | |
| RETURN cbuiltin.atan2 (x, y) | |
| END atan2 ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_atan2f)) atan2f (x, y: SHORTREAL) : SHORTREAL ; | |
| BEGIN | |
| RETURN cbuiltin.atan2f (x, y) | |
| END atan2f ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_atan2l)) atan2l (x, y: LONGREAL) : LONGREAL ; | |
| BEGIN | |
| RETURN cbuiltin.atan2l (x, y) | |
| END atan2l ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sqrt)) sqrt (x: REAL) : REAL ; | |
| BEGIN | |
| RETURN cbuiltin.sqrt (x) | |
| END sqrt ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sqrtf)) sqrtf (x: SHORTREAL) : SHORTREAL ; | |
| BEGIN | |
| RETURN cbuiltin.sqrtf (x) | |
| END sqrtf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_sqrtl)) sqrtl (x: LONGREAL) : LONGREAL ; | |
| BEGIN | |
| RETURN cbuiltin.sqrtl (x) | |
| END sqrtl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_fabs)) fabs (x: REAL) : REAL ; | |
| BEGIN | |
| RETURN cbuiltin.fabs (x) | |
| END fabs ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_fabsf)) fabsf (x: SHORTREAL) : SHORTREAL ; | |
| BEGIN | |
| RETURN cbuiltin.fabsf (x) | |
| END fabsf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_fabsl)) fabsl (x: LONGREAL) : LONGREAL ; | |
| BEGIN | |
| RETURN cbuiltin.fabsl (x) | |
| END fabsl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_log)) log (x: REAL) : REAL ; | |
| BEGIN | |
| RETURN cbuiltin.log (x) | |
| END log ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_logf)) logf (x: SHORTREAL) : SHORTREAL ; | |
| BEGIN | |
| RETURN cbuiltin.logf (x) | |
| END logf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_logl)) logl (x: LONGREAL) : LONGREAL ; | |
| BEGIN | |
| RETURN cbuiltin.logl (x) | |
| END logl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_exp)) exp (x: REAL) : REAL ; | |
| BEGIN | |
| RETURN cbuiltin.exp (x) | |
| END exp ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_expf)) expf (x: SHORTREAL) : SHORTREAL ; | |
| BEGIN | |
| RETURN cbuiltin.expf (x) | |
| END expf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_expl)) expl (x: LONGREAL) : LONGREAL ; | |
| BEGIN | |
| RETURN cbuiltin.expl (x) | |
| END expl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_log10)) log10 (x: REAL) : REAL ; | |
| BEGIN | |
| RETURN cbuiltin.log10 (x) | |
| END log10 ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_log10f)) log10f (x: SHORTREAL) : SHORTREAL ; | |
| BEGIN | |
| RETURN cbuiltin.log10f (x) | |
| END log10f ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_log10l)) log10l (x: LONGREAL) : LONGREAL ; | |
| BEGIN | |
| RETURN cbuiltin.log10l (x) | |
| END log10l ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_exp10)) exp10 (x: REAL) : REAL ; | |
| BEGIN | |
| RETURN cbuiltin.exp10 (x) | |
| END exp10 ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_exp10f)) exp10f (x: SHORTREAL) : SHORTREAL ; | |
| BEGIN | |
| RETURN cbuiltin.exp10f (x) | |
| END exp10f ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_exp10l)) exp10l (x: LONGREAL) : LONGREAL ; | |
| BEGIN | |
| RETURN cbuiltin.exp10l (x) | |
| END exp10l ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_ilogb)) ilogb (x: REAL) : INTEGER ; | |
| BEGIN | |
| RETURN cbuiltin.ilogb (x) | |
| END ilogb ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_ilogbf)) ilogbf (x: SHORTREAL) : INTEGER ; | |
| BEGIN | |
| RETURN cbuiltin.ilogbf (x) | |
| END ilogbf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_ilogbl)) ilogbl (x: LONGREAL) : INTEGER ; | |
| BEGIN | |
| RETURN cbuiltin.ilogbl (x) | |
| END ilogbl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_modf)) modf (x: REAL; VAR y: REAL) : REAL ; | |
| BEGIN | |
| RETURN cbuiltin.modf (x, y) | |
| END modf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_modff)) modff (x: SHORTREAL; VAR y: SHORTREAL) : SHORTREAL ; | |
| BEGIN | |
| RETURN cbuiltin.modff (x, y) | |
| END modff ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_modfl)) modfl (x: LONGREAL; VAR y: LONGREAL) : LONGREAL ; | |
| BEGIN | |
| RETURN cbuiltin.modfl (x, y) | |
| END modfl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_signbit)) signbit (r: REAL) : INTEGER ; | |
| BEGIN | |
| RETURN wrapc.signbit (r) | |
| END signbit ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_signbitf)) signbitf (s: SHORTREAL) : INTEGER ; | |
| BEGIN | |
| RETURN wrapc.signbitf (s) | |
| END signbitf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_signbitl)) signbitl (l: LONGREAL) : INTEGER ; | |
| BEGIN | |
| RETURN wrapc.signbitl (l) | |
| END signbitl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_nextafter)) nextafter (x, y: REAL) : REAL ; | |
| BEGIN | |
| RETURN cbuiltin.nextafter (x, y) | |
| END nextafter ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_nextafterf)) nextafterf (x, y: SHORTREAL) : SHORTREAL ; | |
| BEGIN | |
| RETURN cbuiltin.nextafterf (x, y) | |
| END nextafterf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_nextafterl)) nextafterl (x, y: LONGREAL) : LONGREAL ; | |
| BEGIN | |
| RETURN cbuiltin.nextafterl (x, y) | |
| END nextafterl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_nexttoward)) nexttoward (x: REAL; y: LONGREAL) : REAL ; | |
| BEGIN | |
| RETURN cbuiltin.nexttoward (x, y) | |
| END nexttoward ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_nexttowardf)) nexttowardf (x: SHORTREAL; y: LONGREAL) : SHORTREAL ; | |
| BEGIN | |
| RETURN cbuiltin.nexttowardf (x, y) | |
| END nexttowardf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_nexttowardl)) nexttowardl (x, y: LONGREAL) : LONGREAL ; | |
| BEGIN | |
| RETURN cbuiltin.nexttowardl (x, y) | |
| END nexttowardl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_scalbln)) scalbln (x: REAL; n: LONGINT) : REAL ; | |
| BEGIN | |
| RETURN cbuiltin.scalbln (x, n) | |
| END scalbln ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_scalblnf)) scalblnf (x: SHORTREAL; n: LONGINT) : SHORTREAL ; | |
| BEGIN | |
| RETURN cbuiltin.scalblnf (x, n) | |
| END scalblnf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_scalblnl)) scalblnl (x: LONGREAL; n: LONGINT) : LONGREAL ; | |
| BEGIN | |
| RETURN cbuiltin.scalblnl (x, n) | |
| END scalblnl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_scalbn)) scalbn (x: REAL; n: INTEGER) : REAL ; | |
| BEGIN | |
| RETURN cbuiltin.scalbn (x, n) | |
| END scalbn ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_scalbnf)) scalbnf (x: SHORTREAL; n: INTEGER) : SHORTREAL ; | |
| BEGIN | |
| RETURN cbuiltin.scalbnf (x, n) | |
| END scalbnf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_scalbnl)) scalbnl (x: LONGREAL; n: INTEGER) : LONGREAL ; | |
| BEGIN | |
| RETURN cbuiltin.scalbnl (x, n) | |
| END scalbnl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cabsf)) cabsf (z: SHORTCOMPLEX) : SHORTREAL ; | |
| BEGIN | |
| RETURN cbuiltin.cabsf(z) | |
| END cabsf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cabs)) cabs (z: COMPLEX) : REAL ; | |
| BEGIN | |
| RETURN cbuiltin.cabs(z) | |
| END cabs ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cabsl)) cabsl (z: LONGCOMPLEX) : LONGREAL ; | |
| BEGIN | |
| RETURN cbuiltin.cabsl(z) | |
| END cabsl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cargf)) cargf (z: SHORTCOMPLEX) : SHORTREAL ; | |
| BEGIN | |
| RETURN cbuiltin.cargf(z) | |
| END cargf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_carg)) carg (z: COMPLEX) : REAL ; | |
| BEGIN | |
| RETURN cbuiltin.carg(z) | |
| END carg ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cargl)) cargl (z: LONGCOMPLEX) : LONGREAL ; | |
| BEGIN | |
| RETURN cbuiltin.cargl(z) | |
| END cargl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_conjf)) conjf (z: SHORTCOMPLEX) : SHORTCOMPLEX ; | |
| BEGIN | |
| RETURN cbuiltin.conjf(z) | |
| END conjf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_conj)) conj (z: COMPLEX) : COMPLEX ; | |
| BEGIN | |
| RETURN cbuiltin.conj(z) | |
| END conj ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_conjl)) conjl (z: LONGCOMPLEX) : LONGCOMPLEX ; | |
| BEGIN | |
| RETURN cbuiltin.conjl(z) | |
| END conjl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cpowf)) cpowerf (base: SHORTCOMPLEX; exp: SHORTREAL) : SHORTCOMPLEX ; | |
| BEGIN | |
| RETURN cbuiltin.cpowf(base, exp) | |
| END cpowerf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cpow)) cpower (base: COMPLEX; exp: REAL) : COMPLEX ; | |
| BEGIN | |
| RETURN cbuiltin.cpow(base, exp) | |
| END cpower ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cpowl)) cpowerl (base: LONGCOMPLEX; exp: LONGREAL) : LONGCOMPLEX ; | |
| BEGIN | |
| RETURN cbuiltin.cpowl(base, exp) | |
| END cpowerl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_csqrtf)) csqrtf (z: SHORTCOMPLEX) : SHORTCOMPLEX ; | |
| BEGIN | |
| RETURN cbuiltin.csqrtf(z) | |
| END csqrtf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_csqrt)) csqrt (z: COMPLEX) : COMPLEX ; | |
| BEGIN | |
| RETURN cbuiltin.csqrt(z) | |
| END csqrt ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_csqrtl)) csqrtl (z: LONGCOMPLEX) : LONGCOMPLEX ; | |
| BEGIN | |
| RETURN cbuiltin.csqrtl(z) | |
| END csqrtl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cexpf)) cexpf (z: SHORTCOMPLEX) : SHORTCOMPLEX ; | |
| BEGIN | |
| RETURN cbuiltin.cexpf(z) | |
| END cexpf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cexp)) cexp (z: COMPLEX) : COMPLEX ; | |
| BEGIN | |
| RETURN cbuiltin.cexp(z) | |
| END cexp ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_cexpl)) cexpl (z: LONGCOMPLEX) : LONGCOMPLEX ; | |
| BEGIN | |
| RETURN cbuiltin.cexpl(z) | |
| END cexpl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_clogf)) clnf (z: SHORTCOMPLEX) : SHORTCOMPLEX ; | |
| BEGIN | |
| RETURN cbuiltin.clogf(z) | |
| END clnf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_clog)) cln (z: COMPLEX) : COMPLEX ; | |
| BEGIN | |
| RETURN cbuiltin.clog(z) | |
| END cln ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_clogl)) clnl (z: LONGCOMPLEX) : LONGCOMPLEX ; | |
| BEGIN | |
| RETURN cbuiltin.clogl(z) | |
| END clnl ; | |
| (* <MOD_BUILTIN_PROCEDURE(csins,SHORTCOMPLEX,SHORTCOMPLEX,__builtin_csinf,cbuiltin.csinf)> *) | |
| (* <MOD_BUILTIN_PROCEDURE(csin,COMPLEX,COMPLEX,__builtin_csin,cbuiltin.csin)> *) | |
| (* <MOD_BUILTIN_PROCEDURE(csinl,LONGCOMPLEX,LONGCOMPLEX,__builtin_csinl,cbuiltin.csinl)> *) | |
| (* <MOD_BUILTIN_PROCEDURE(ccoss,SHORTCOMPLEX,SHORTCOMPLEX,__builtin_ccosf,cbuiltin.ccosf)> *) | |
| (* <MOD_BUILTIN_PROCEDURE(ccos,COMPLEX,COMPLEX,__builtin_ccos,cbuiltin.ccos)> *) | |
| (* <MOD_BUILTIN_PROCEDURE(ccosl,LONGCOMPLEX,LONGCOMPLEX,__builtin_ccosl,cbuiltin.ccosl)> *) | |
| (* <MOD_BUILTIN_PROCEDURE(ctans,SHORTCOMPLEX,SHORTCOMPLEX,__builtin_ctanf,cbuiltin.ctanf)> *) | |
| (* <MOD_BUILTIN_PROCEDURE(ctan,COMPLEX,COMPLEX,__builtin_ctan,cbuiltin.ctan)> *) | |
| (* <MOD_BUILTIN_PROCEDURE(ctanl,LONGCOMPLEX,LONGCOMPLEX,__builtin_ctanl,cbuiltin.ctanl)> *) | |
| (* <MOD_BUILTIN_PROCEDURE(casinf,SHORTCOMPLEX,SHORTCOMPLEX,__builtin_casinf,cbuiltin.casinf)> *) | |
| (* <MOD_BUILTIN_PROCEDURE(casin,COMPLEX,COMPLEX,__builtin_casin,cbuiltin.casin)> *) | |
| (* <MOD_BUILTIN_PROCEDURE(casinl,LONGCOMPLEX,LONGCOMPLEX,__builtin_casinl,cbuiltin.casinl)> *) | |
| (* <MOD_BUILTIN_PROCEDURE(cacosf,SHORTCOMPLEX,SHORTCOMPLEX,__builtin_cacosf,cbuiltin.cacosf)> *) | |
| (* <MOD_BUILTIN_PROCEDURE(cacos,COMPLEX,COMPLEX,__builtin_cacos,cbuiltin.cacos)> *) | |
| (* <MOD_BUILTIN_PROCEDURE(cacosl,LONGCOMPLEX,LONGCOMPLEX,__builtin_cacosl,cbuiltin.cacosl)> *) | |
| (* <MOD_BUILTIN_PROCEDURE(catanf,SHORTCOMPLEX,SHORTCOMPLEX,__builtin_catanf,cbuiltin.catanf)> *) | |
| (* <MOD_BUILTIN_PROCEDURE(catan,COMPLEX,COMPLEX,__builtin_catan,cbuiltin.catan)> *) | |
| (* <MOD_BUILTIN_PROCEDURE(catanl,LONGCOMPLEX,LONGCOMPLEX,__builtin_catanl,cbuiltin.catanl)> *) | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_index)) index (s: ADDRESS; c: INTEGER) : ADDRESS ; | |
| BEGIN | |
| RETURN cbuiltin.index (s, c) | |
| END index ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_rindex)) rindex (s: ADDRESS; c: INTEGER) : ADDRESS ; | |
| BEGIN | |
| RETURN cbuiltin.rindex (s, c) | |
| END rindex ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_memcmp)) memcmp (s1, s2: ADDRESS; nbytes: CARDINAL) : INTEGER ; | |
| BEGIN | |
| RETURN cbuiltin.memcmp (s1, s2, nbytes) | |
| END memcmp ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_memset)) memset (s: ADDRESS; c: INTEGER; nbytes: CARDINAL) : ADDRESS ; | |
| BEGIN | |
| RETURN cbuiltin.memset (s, c, nbytes) | |
| END memset ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_memmove)) memmove (s1, s2: ADDRESS; nbytes: CARDINAL) : ADDRESS ; | |
| BEGIN | |
| RETURN cbuiltin.memmove (s1, s2, nbytes) | |
| END memmove ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strcat)) strcat (dest, src: ADDRESS) : ADDRESS ; | |
| BEGIN | |
| RETURN cbuiltin.strcat (dest, src) | |
| END strcat ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strncat)) strncat (dest, src: ADDRESS; nbytes: CARDINAL) : ADDRESS ; | |
| BEGIN | |
| RETURN cbuiltin.strncat (dest, src, nbytes) | |
| END strncat ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strcpy)) strcpy (dest, src: ADDRESS) : ADDRESS ; | |
| BEGIN | |
| RETURN cbuiltin.strcpy (dest, src) | |
| END strcpy ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strncpy)) strncpy (dest, src: ADDRESS; nbytes: CARDINAL) : ADDRESS ; | |
| BEGIN | |
| RETURN cbuiltin.strncpy (dest, src, nbytes) | |
| END strncpy ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strcmp)) strcmp (s1, s2: ADDRESS) : INTEGER ; | |
| BEGIN | |
| RETURN cbuiltin.strcmp (s1, s2) | |
| END strcmp ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strncmp)) strncmp (s1, s2: ADDRESS; nbytes: CARDINAL) : INTEGER ; | |
| BEGIN | |
| RETURN cbuiltin.strncmp (s1, s2, nbytes) | |
| END strncmp ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strlen)) strlen (s: ADDRESS) : INTEGER ; | |
| BEGIN | |
| RETURN cbuiltin.strlen (s) | |
| END strlen ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strstr)) strstr (haystack, needle: ADDRESS) : ADDRESS ; | |
| BEGIN | |
| RETURN cbuiltin.strstr (haystack, needle) | |
| END strstr ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strpbrk)) strpbrk (s, accept: ADDRESS) : ADDRESS ; | |
| BEGIN | |
| RETURN cbuiltin.strpbrk (s, accept) | |
| END strpbrk ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strspn)) strspn (s, accept: ADDRESS) : CARDINAL ; | |
| BEGIN | |
| RETURN cbuiltin.strspn (s, accept) | |
| END strspn ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strcspn)) strcspn (s, accept: ADDRESS) : CARDINAL ; | |
| BEGIN | |
| RETURN cbuiltin.strcspn (s, accept) | |
| END strcspn ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strchr)) strchr (s: ADDRESS; c: INTEGER) : ADDRESS ; | |
| BEGIN | |
| RETURN cbuiltin.strchr (s, c) | |
| END strchr ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_strrchr)) strrchr (s: ADDRESS; c: INTEGER) : ADDRESS ; | |
| BEGIN | |
| RETURN cbuiltin.strrchr (s, c) | |
| END strrchr ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_huge_val)) huge_val () : REAL ; | |
| BEGIN | |
| RETURN -1.0 | |
| END huge_val ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_huge_vall)) huge_vall () : LONGREAL ; | |
| BEGIN | |
| RETURN -1.0 | |
| END huge_vall ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_huge_valf)) huge_valf () : SHORTREAL ; | |
| BEGIN | |
| RETURN -1.0 | |
| END huge_valf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isgreater)) isgreater (x, y: REAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END isgreater ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isgreaterf)) isgreaterf (x, y: SHORTREAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END isgreaterf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isgreaterl)) isgreaterl (x, y: LONGREAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END isgreaterl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isgreaterequal)) isgreaterequal (x, y: REAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END isgreaterequal ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isgreaterequalf)) isgreaterequalf (x, y: SHORTREAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END isgreaterequalf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isgreaterequall)) isgreaterequall (x, y: LONGREAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END isgreaterequall ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isless)) isless (x, y: REAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END isless ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_islessf)) islessf (x, y: SHORTREAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END islessf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_islessl)) islessl (x, y: LONGREAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END islessl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_islessequal)) islessequal (x, y: REAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END islessequal ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_islessequalf)) islessequalf (x, y: SHORTREAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END islessequalf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_islessequall)) islessequall (x, y: LONGREAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END islessequall ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_islessgreater)) islessgreater (x, y: REAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END islessgreater ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_islessgreaterf)) islessgreaterf (x, y: SHORTREAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END islessgreaterf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_islessgreaterl)) islessgreaterl (x, y: LONGREAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END islessgreaterl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isunordered)) isunordered (x, y: REAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END isunordered ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isunorderedf)) isunorderedf (x, y: SHORTREAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END isunorderedf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isunorderedl)) isunorderedl (x, y: LONGREAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END isunorderedl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_iseqsig)) iseqsig (x, y: REAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END iseqsig ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_iseqsigf)) iseqsigf (x, y: SHORTREAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END iseqsigf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_iseqsigl)) iseqsigl (x, y: LONGREAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END iseqsigl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isnormal)) isnormal (r: REAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END isnormal ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isnormalf)) isnormalf (s: SHORTREAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END isnormalf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isnormall)) isnormall (l: LONGREAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END isnormall ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isinf)) isinf_sign (r: REAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END isinf_sign ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isinf_signf)) isinf_signf (s: SHORTREAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END isinf_signf ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_isinf)) isinf_signl (l: LONGREAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END isinf_signl ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_clz)) clz (value: CARDINAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END clz ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_clzll)) clzll (value: LONGCARD) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END clzll ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_ctz)) ctz (value: CARDINAL) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END ctz ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_ctzll)) ctzll (value: LONGCARD) : INTEGER ; | |
| BEGIN | |
| RETURN 1 | |
| END ctzll ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_longjmp)) longjmp (env: ADDRESS; val: INTEGER) ; | |
| BEGIN | |
| (* Empty, replaced internally by gcc. *) | |
| END longjmp ; | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_setjmp)) setjmp (env: ADDRESS) : INTEGER ; | |
| BEGIN | |
| (* Empty, replaced internally by gcc. *) | |
| RETURN 0 (* Keep -Wreturn-type happy. *) | |
| END setjmp ; | |
| (* | |
| frame_address - returns the address of the frame. | |
| The current frame is obtained if level is 0, | |
| the next level up is level is 1 etc. | |
| *) | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ | |
| ((__builtin_frame_address)) | |
| frame_address (level: CARDINAL) : ADDRESS ; | |
| BEGIN | |
| RETURN NIL | |
| END frame_address ; | |
| (* | |
| return_address - returns the return address of function. | |
| The current function return address is | |
| obtained if level is 0, | |
| the next level up is level is 1 etc. | |
| *) | |
| PROCEDURE __ATTRIBUTE__ __BUILTIN__ | |
| ((__builtin_return_address)) | |
| return_address (level: CARDINAL) : ADDRESS ; | |
| BEGIN | |
| RETURN NIL | |
| END return_address ; | |
| END Builtins. |