source: libcfa/builtins.def @ d0e8cfe4

aaron-thesisarm-ehcleanup-dtorsctordeferred_resndemanglerenumforall-pointer-decaygc_noraiijacob/cs343-translationjenkins-sandboxmemorynew-astnew-ast-unique-exprnew-envno_listpersistent-indexerresolv-newstringwith_gc
Last change on this file since d0e8cfe4 was 51b7345, checked in by Peter A. Buhr <pabuhr@…>, 8 years ago

initial commit

  • Property mode set to 100644
File size: 15.9 KB
Line 
1/* This file contains the definitions and documentation for the
2   builtins used in the GNU compiler.
3   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
4
5This file is part of GCC.
6
7GCC is free software; you can redistribute it and/or modify it under
8the terms of the GNU General Public License as published by the Free
9Software Foundation; either version 2, or (at your option) any later
10version.
11
12GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13WARRANTY; without even the implied warranty of MERCHANTABILITY or
14FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15for more details.
16
17You should have received a copy of the GNU General Public License
18along with GCC; see the file COPYING.  If not, write to the Free
19Software Foundation, 59 Temple Place - Suite 330, Boston, MA
2002111-1307, USA.  */
21
22/* Before including this file, you should define a macro:
23
24     DEF_BUILTIN (ENUM, NAME, CLASS, TYPE, LIBTYPE, BOTH_P,
25                  FALLBACK_P, NONANSI_P)
26
27   This macro will be called once for each builtin function.  The
28   ENUM will be of type `enum built_in_function', and will indicate
29   which builtin function is being processed.  The NAME of the builtin
30   function (which will always start with `__builtin_') is a string
31   literal.  The CLASS is of type `enum built_in_class' and indicates
32   what kind of builtin is being processed.
33
34   Some builtins are actually two separate functions.  For example,
35   for `strcmp' there are two builtin functions; `__builtin_strcmp'
36   and `strcmp' itself.  Both behave identically.  Other builtins
37   define only the `__builtin' variant.  If BOTH_P is TRUE, then this
38   builtin has both variants; otherwise, it is has only the first
39   variant.
40
41   TYPE indicates the type of the function.  The symbols correspond to
42   enumerals from builtin-types.def.  If BOTH_P is true, then LIBTYPE
43   is the type of the non-`__builtin_' variant.  Otherwise, LIBTYPE
44   should be ignored.
45
46   If FALLBACK_P is true then, if for some reason, the compiler cannot
47   expand the builtin function directly, it will call the
48   corresponding library function (which does not have the
49   `__builtin_' prefix.
50
51   If NONANSI_P is true, then the non-`__builtin_' variant is not an
52   ANSI/ISO library function, and so we should pretend it does not
53   exist when compiling in ANSI conformant mode.  */
54   
55/* A GCC builtin (like __builtin_saveregs) is provided by the
56   compiler, but does not correspond to a function in the standard
57   library.  */
58#undef DEF_GCC_BUILTIN
59#define DEF_GCC_BUILTIN(ENUM, NAME, TYPE)                       \
60  DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, BT_LAST,      \
61               false, false, false)
62
63
64/* A fallback builtin is a builtin (like __builtin_puts) that falls
65   back to the corresopnding library function if necessary -- but
66   for which we should not introduce the non-`__builtin' variant of
67   the name.  */
68#undef DEF_FALLBACK_BUILTIN                             
69#define DEF_FALLBACK_BUILTIN(ENUM, NAME, TYPE)          \
70  DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, TYPE, \
71               false, true, false)
72
73/* Like DEF_FALLBACK_BUILTIN, except that the function is not one that
74   is specified by ANSI/ISO C.  So, when we're being fully conformant
75   we ignore the version of these builtins that does not begin with
76   __builtin.  */
77#undef DEF_EXT_FALLBACK_BUILTIN
78#define DEF_EXT_FALLBACK_BUILTIN(ENUM, NAME, TYPE)      \
79  DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, TYPE, \
80               false, true, true)
81
82/* A library builtin (like __builtin_strchr) is a builtin equivalent
83   of an ANSI/ISO standard library function.  In addition to the
84   `__builtin' version, we will create an ordinary version (e.g,
85   `strchr') as well.  If we cannot compute the answer using the
86   builtin function, we will fall back to the standard library
87   version. */
88#undef DEF_LIB_BUILTIN                                 
89#define DEF_LIB_BUILTIN(ENUM, NAME, TYPE)               \
90  DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, TYPE, \
91               true, true, false)
92
93/* Like DEF_LIB_BUILTIN, except that a call to the builtin should
94   never fall back to the library version.  */
95#undef DEF_LIB_ALWAYS_BUILTIN                           
96#define DEF_LIB_ALWAYS_BUILTIN(ENUM, NAME, TYPE)        \
97  DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, TYPE, \
98               true, false, true)
99
100/* Like DEF_LIB_BUILTIN, except that the function is not one that is
101   specified by ANSI/ISO C.  So, when we're being fully conformant we
102   ignore the version of these builtins that does not begin with
103   __builtin.  */
104#undef DEF_EXT_LIB_BUILTIN                             
105#define DEF_EXT_LIB_BUILTIN(ENUM, NAME, TYPE)           \
106  DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, TYPE, \
107               true, true, true)
108
109/* Like DEF_LIB_BUILTIN, except that the function is only a part of
110   the standard in C99 or above.  */
111#undef DEF_C99_BUILTIN                                 
112#define DEF_C99_BUILTIN(ENUM, NAME, TYPE)               \
113  DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, TYPE, \
114               true, !flag_isoc99, true)
115
116/* Like DEF_LIB_BUILTIN, except that the function is expanded in the
117   front-end.  */
118#undef DEF_FRONT_END_LIB_BUILTIN                       
119#define DEF_FRONT_END_LIB_BUILTIN(ENUM, NAME, TYPE)             \
120  DEF_BUILTIN (ENUM, NAME, BUILT_IN_FRONTEND, TYPE, TYPE,       \
121               true, true, false)
122
123/* Like DEF_FRONT_END_LIB_BUILTIN, except that the function is not one
124   that is specified by ANSI/ISO C.  So, when we're being fully
125   conformant we ignore the version of these builtins that does not
126   begin with __builtin.  */
127#undef DEF_EXT_FRONT_END_LIB_BUILTIN                   
128#define DEF_EXT_FRONT_END_LIB_BUILTIN(ENUM, NAME, TYPE)         \
129  DEF_BUILTIN (ENUM, NAME, BUILT_IN_FRONTEND, TYPE, TYPE,       \
130               true, true, true)
131
132/* A built-in that is not currently used.  */
133#undef DEF_UNUSED_BUILTIN                                       
134#define DEF_UNUSED_BUILTIN(X)                                   \
135  DEF_BUILTIN (X, (const char *) NULL, NOT_BUILT_IN, BT_LAST,   \
136               BT_LAST, false, false, false)
137
138/* If SMALL_STACK is defined, then `alloca' is only defined in its
139   `__builtin' form.  */
140#if SMALL_STACK 
141DEF_FALLBACK_BUILTIN(BUILT_IN_ALLOCA,
142                     "__builtin_alloca",
143                     BT_FN_PTR_SIZE)
144#else
145DEF_EXT_LIB_BUILTIN(BUILT_IN_ALLOCA,
146                    "__builtin_alloca",
147                    BT_FN_PTR_SIZE)
148#endif
149
150DEF_LIB_ALWAYS_BUILTIN(BUILT_IN_ABS,
151                       "__builtin_abs",
152                       BT_FN_INT_INT)
153DEF_LIB_ALWAYS_BUILTIN(BUILT_IN_LABS,
154                       "__builtin_labs",
155                       BT_FN_LONG_LONG)
156
157DEF_LIB_ALWAYS_BUILTIN(BUILT_IN_FABS,
158                       "__builtin_fabs",
159                       BT_FN_DOUBLE_DOUBLE)
160DEF_LIB_ALWAYS_BUILTIN(BUILT_IN_FABSF,
161                       "__builtin_fabsf",
162                       BT_FN_FLOAT_FLOAT)
163DEF_LIB_ALWAYS_BUILTIN(BUILT_IN_FABSL,
164                       "__builtin_fabsl",
165                       BT_FN_LONG_DOUBLE_LONG_DOUBLE)
166
167DEF_C99_BUILTIN(BUILT_IN_LLABS,
168                "__builtin_llabs",
169                BT_FN_LONGLONG_LONGLONG)
170DEF_C99_BUILTIN(BUILT_IN_IMAXABS,
171                "__builtin_imaxabs",
172                BT_FN_INTMAX_INTMAX)
173DEF_C99_BUILTIN(BUILT_IN_CONJ,
174                "__builtin_conj",
175                BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE)
176DEF_C99_BUILTIN(BUILT_IN_CONJF,
177                "__builtin_conjf",
178                BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT)
179DEF_C99_BUILTIN(BUILT_IN_CONJL,
180                "__builtin_conjl",
181                BT_FN_COMPLEX_LONG_DOUBLE_COMPLEX_LONG_DOUBLE)
182DEF_C99_BUILTIN(BUILT_IN_CREAL,
183                "__builtin_creal",
184                BT_FN_DOUBLE_COMPLEX_DOUBLE)
185DEF_C99_BUILTIN(BUILT_IN_CREALF,
186                "__builtin_crealf",
187                BT_FN_FLOAT_COMPLEX_FLOAT)
188DEF_C99_BUILTIN(BUILT_IN_CREALL,
189                "__builtin_creall",
190                BT_FN_LONG_DOUBLE_COMPLEX_LONG_DOUBLE)
191DEF_C99_BUILTIN(BUILT_IN_CIMAG,
192                "__builtin_cimag",
193                BT_FN_DOUBLE_COMPLEX_DOUBLE)
194DEF_C99_BUILTIN(BUILT_IN_CIMAGF,
195                "__builtin_cimagf",
196                BT_FN_FLOAT_COMPLEX_FLOAT)
197DEF_C99_BUILTIN(BUILT_IN_CIMAGL,
198                "__builtin_cimagl",
199                BT_FN_LONG_DOUBLE_COMPLEX_LONG_DOUBLE)
200
201DEF_UNUSED_BUILTIN(BUILT_IN_DIV)
202DEF_UNUSED_BUILTIN(BUILT_IN_LDIV)
203DEF_UNUSED_BUILTIN(BUILT_IN_FFLOOR)
204DEF_UNUSED_BUILTIN(BUILT_IN_FCEIL)
205DEF_UNUSED_BUILTIN(BUILT_IN_FMOD)
206DEF_UNUSED_BUILTIN(BUILT_IN_FREM)
207
208/* The system prototypes for `bzero' and `bcmp' functions have many
209   variations, so don't specify parameters to avoid conflicts.  The
210   expand_* functions check the argument types anyway.  */
211DEF_BUILTIN (BUILT_IN_BZERO,
212             "__builtin_bzero",
213             BUILT_IN_NORMAL,
214             BT_FN_VOID_TRAD_PTR_LEN,
215             BT_FN_VOID_VAR,
216             true, true, true)
217DEF_BUILTIN (BUILT_IN_BCMP,
218             "__builtin_bcmp",
219             BUILT_IN_NORMAL,
220             BT_FN_INT_TRAD_CONST_PTR_TRAD_CONST_PTR_LEN,
221             BT_FN_INT_VAR,
222             true, true, true)
223
224DEF_EXT_LIB_BUILTIN(BUILT_IN_FFS,
225                    "__builtin_ffs",
226                    BT_FN_INT_INT)
227DEF_EXT_LIB_BUILTIN(BUILT_IN_INDEX,
228                    "__builtin_index",
229                    BT_FN_STRING_CONST_STRING_INT)
230DEF_EXT_LIB_BUILTIN(BUILT_IN_RINDEX,
231                    "__builtin_rindex",
232                    BT_FN_STRING_CONST_STRING_INT)
233
234DEF_LIB_BUILTIN(BUILT_IN_MEMCPY,
235                "__builtin_memcpy",
236                BT_FN_TRAD_PTR_PTR_CONST_PTR_SIZE)
237DEF_LIB_BUILTIN(BUILT_IN_MEMCMP,
238                "__builtin_memcmp",
239                BT_FN_INT_CONST_PTR_CONST_PTR_SIZE)
240DEF_LIB_BUILTIN(BUILT_IN_MEMSET,
241                "__builtin_memset",
242                BT_FN_TRAD_PTR_PTR_INT_SIZE)
243
244DEF_LIB_BUILTIN(BUILT_IN_STRCAT,
245                "__builtin_strcat",
246                BT_FN_STRING_STRING_CONST_STRING)
247DEF_LIB_BUILTIN(BUILT_IN_STRNCAT,
248                "__builtin_strncat",
249                BT_FN_STRING_STRING_CONST_STRING_SIZE)
250DEF_LIB_BUILTIN(BUILT_IN_STRCPY,
251                "__builtin_strcpy",
252                BT_FN_STRING_STRING_CONST_STRING)
253DEF_LIB_BUILTIN(BUILT_IN_STRNCPY,
254                "__builtin_strncpy",
255                BT_FN_STRING_STRING_CONST_STRING_SIZE)
256DEF_LIB_BUILTIN(BUILT_IN_STRCMP,
257                "__builtin_strcmp",
258                BT_FN_INT_CONST_STRING_CONST_STRING)
259DEF_LIB_BUILTIN(BUILT_IN_STRNCMP,
260                "__builtin_strncmp",
261                BT_FN_INT_CONST_STRING_CONST_STRING_SIZE)
262DEF_LIB_BUILTIN(BUILT_IN_STRLEN,
263                "__builtin_strlen",
264                BT_FN_LEN_CONST_STRING)
265DEF_LIB_BUILTIN(BUILT_IN_STRSTR,
266                "__builtin_strstr",
267                BT_FN_STRING_CONST_STRING_CONST_STRING)
268DEF_LIB_BUILTIN(BUILT_IN_STRPBRK,
269                "__builtin_strpbrk",
270                BT_FN_STRING_CONST_STRING_CONST_STRING)
271DEF_LIB_BUILTIN(BUILT_IN_STRSPN,
272                "__builtin_strspn",
273                BT_FN_SIZE_CONST_STRING_CONST_STRING)
274DEF_LIB_BUILTIN(BUILT_IN_STRCSPN,
275                "__builtin_strcspn",
276                BT_FN_SIZE_CONST_STRING_CONST_STRING)
277DEF_LIB_BUILTIN(BUILT_IN_STRCHR,
278                "__builtin_strchr",
279                BT_FN_STRING_CONST_STRING_INT)
280DEF_LIB_BUILTIN(BUILT_IN_STRRCHR,
281                "__builtin_strrchr",
282                BT_FN_STRING_CONST_STRING_INT)
283
284DEF_LIB_BUILTIN(BUILT_IN_SQRT,
285                "__builtin_sqrt",
286                BT_FN_DOUBLE_DOUBLE)
287DEF_LIB_BUILTIN(BUILT_IN_SIN,
288                "__builtin_sin",
289                BT_FN_DOUBLE_DOUBLE)
290DEF_LIB_BUILTIN(BUILT_IN_COS,
291                "__builtin_cos",
292                BT_FN_DOUBLE_DOUBLE)
293DEF_LIB_BUILTIN(BUILT_IN_SQRTF,
294                "__builtin_sqrtf",
295                BT_FN_FLOAT_FLOAT)
296DEF_LIB_BUILTIN(BUILT_IN_SINF,
297                "__builtin_sinf",
298                BT_FN_FLOAT_FLOAT)
299DEF_LIB_BUILTIN(BUILT_IN_COSF,
300                "__builtin_cosf",
301                BT_FN_FLOAT_FLOAT)
302DEF_LIB_BUILTIN(BUILT_IN_SQRTL,
303                "__builtin_sqrtl",
304                BT_FN_LONG_DOUBLE_LONG_DOUBLE)
305DEF_LIB_BUILTIN(BUILT_IN_SINL,
306                "__builtin_sinl",
307                BT_FN_LONG_DOUBLE_LONG_DOUBLE)
308DEF_LIB_BUILTIN(BUILT_IN_COSL,
309                "__builtin_cosl",
310                BT_FN_LONG_DOUBLE_LONG_DOUBLE)
311
312DEF_UNUSED_BUILTIN(BUILT_IN_GETEXP)
313DEF_UNUSED_BUILTIN(BUILT_IN_GETMAN)
314
315DEF_GCC_BUILTIN(BUILT_IN_SAVEREGS,
316                "__builtin_saveregs",
317                BT_FN_PTR_VAR)
318DEF_GCC_BUILTIN(BUILT_IN_CLASSIFY_TYPE,
319                "__builtin_classify_type",
320                BT_FN_INT_VAR)
321DEF_GCC_BUILTIN(BUILT_IN_NEXT_ARG,
322                "__builtin_next_arg",
323                BT_FN_PTR_VAR)
324DEF_GCC_BUILTIN(BUILT_IN_ARGS_INFO,
325                "__builtin_args_info",
326                BT_FN_INT_INT)
327DEF_GCC_BUILTIN(BUILT_IN_CONSTANT_P,
328                "__builtin_constant_p",
329                BT_FN_INT_VAR)
330DEF_GCC_BUILTIN(BUILT_IN_FRAME_ADDRESS,
331                "__builtin_frame_address",
332                BT_FN_PTR_UNSIGNED)
333DEF_GCC_BUILTIN(BUILT_IN_RETURN_ADDRESS,
334                "__builtin_return_address",
335                BT_FN_PTR_UNSIGNED)
336DEF_GCC_BUILTIN(BUILT_IN_AGGREGATE_INCOMING_ADDRESS,
337                "__builtin_aggregate_incoming_address",
338                BT_FN_PTR_VAR)
339DEF_GCC_BUILTIN(BUILT_IN_APPLY_ARGS,
340                "__builtin_apply_args",
341                BT_FN_PTR_VAR)
342DEF_GCC_BUILTIN(BUILT_IN_APPLY,
343                "__builtin_apply",
344                BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE)
345DEF_GCC_BUILTIN(BUILT_IN_RETURN,
346                "__builtin_return",
347                BT_FN_VOID_PTR)
348DEF_GCC_BUILTIN(BUILT_IN_SETJMP,
349                "__builtin_setjmp",
350                BT_FN_INT_PTR)
351DEF_GCC_BUILTIN(BUILT_IN_LONGJMP,
352                "__builtin_longjmp",
353                BT_FN_VOID_PTR_INT)
354DEF_GCC_BUILTIN(BUILT_IN_TRAP,
355                "__builtin_trap",
356                BT_FN_VOID)
357DEF_GCC_BUILTIN(BUILT_IN_PREFETCH,
358                "__builtin_prefetch",
359                BT_FN_VOID_CONST_PTR_VAR)
360
361/* Stdio builtins.  */
362DEF_FALLBACK_BUILTIN(BUILT_IN_PUTCHAR,
363                    "__builtin_putchar",
364                     BT_FN_INT_INT)
365DEF_FALLBACK_BUILTIN(BUILT_IN_PUTS,
366                     "__builtin_puts",
367                     BT_FN_INT_CONST_STRING)
368DEF_FRONT_END_LIB_BUILTIN(BUILT_IN_PRINTF,
369                          "__builtin_printf",
370                          BT_FN_INT_CONST_STRING_VAR)
371DEF_FALLBACK_BUILTIN(BUILT_IN_FPUTC,
372                     "__builtin_fputc",
373                     BT_FN_INT_INT_PTR)
374/* Declare the __builtin_ style with arguments and the regular style
375   without them.  We rely on stdio.h to supply the arguments for the
376   regular style declaration since we had to use void* instead of
377   FILE* in the __builtin_ prototype supplied here.  */
378DEF_BUILTIN (BUILT_IN_FPUTS,
379             "__builtin_fputs",
380             BUILT_IN_NORMAL,
381             BT_FN_INT_CONST_STRING_PTR,
382             BT_FN_INT_VAR,
383             true, true, false)
384DEF_FALLBACK_BUILTIN(BUILT_IN_FWRITE,
385                     "__builtin_fwrite",
386                     BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR)
387DEF_FRONT_END_LIB_BUILTIN(BUILT_IN_FPRINTF,
388                         "__builtin_fprintf",
389                         BT_FN_INT_PTR_CONST_STRING_VAR)
390
391/* Stdio unlocked builtins.  */
392
393DEF_EXT_FALLBACK_BUILTIN(BUILT_IN_PUTCHAR_UNLOCKED,
394                         "__builtin_putchar_unlocked",
395                         BT_FN_INT_INT)
396DEF_EXT_FALLBACK_BUILTIN(BUILT_IN_PUTS_UNLOCKED,
397                         "__builtin_puts_unlocked",
398                         BT_FN_INT_CONST_STRING)
399DEF_EXT_FRONT_END_LIB_BUILTIN(BUILT_IN_PRINTF_UNLOCKED,
400                              "__builtin_printf_unlocked",
401                              BT_FN_INT_CONST_STRING_VAR)
402DEF_EXT_FALLBACK_BUILTIN(BUILT_IN_FPUTC_UNLOCKED,
403                         "__builtin_fputc_unlocked",
404                         BT_FN_INT_INT_PTR)
405/* Declare the __builtin_ style with arguments and the regular style
406   without them.  We rely on stdio.h to supply the arguments for the
407   regular style declaration since we had to use void* instead of
408   FILE* in the __builtin_ prototype supplied here.  */
409DEF_BUILTIN (BUILT_IN_FPUTS_UNLOCKED,
410             "__builtin_fputs_unlocked",
411             BUILT_IN_NORMAL,
412             BT_FN_INT_CONST_STRING_PTR,
413             BT_FN_INT_VAR,
414             true, true, true)
415DEF_EXT_FALLBACK_BUILTIN(BUILT_IN_FWRITE_UNLOCKED,
416                         "__builtin_fwrite_unlocked",
417                         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR)
418DEF_EXT_FRONT_END_LIB_BUILTIN(BUILT_IN_FPRINTF_UNLOCKED,
419                              "__builtin_fprintf_unlocked",
420                              BT_FN_INT_PTR_CONST_STRING_VAR)
421
422  /* ISO C99 floating point unordered comparisons.  */
423DEF_GCC_BUILTIN(BUILT_IN_ISGREATER,
424                "__builtin_isgreater",
425                BT_FN_INT_VAR)
426DEF_GCC_BUILTIN(BUILT_IN_ISGREATEREQUAL,
427                "__builtin_isgreaterequal",
428                BT_FN_INT_VAR)
429DEF_GCC_BUILTIN(BUILT_IN_ISLESS,
430                "__builtin_isless",
431                BT_FN_INT_VAR)
432DEF_GCC_BUILTIN(BUILT_IN_ISLESSEQUAL,
433                "__builtin_islessequal",
434                BT_FN_INT_VAR)
435DEF_GCC_BUILTIN(BUILT_IN_ISLESSGREATER,
436                "__builtin_islessgreater",
437                BT_FN_INT_VAR)
438DEF_GCC_BUILTIN(BUILT_IN_ISUNORDERED,
439                "__builtin_isunordered",
440                BT_FN_INT_VAR)
441
442/* Various hooks for the DWARF 2 __throw routine.  */
443DEF_GCC_BUILTIN(BUILT_IN_UNWIND_INIT,
444                "__builtin_unwind_init",
445                BT_FN_VOID)
446DEF_GCC_BUILTIN(BUILT_IN_DWARF_CFA,
447                "__builtin_dwarf_cfa",
448                BT_FN_PTR)
449DEF_GCC_BUILTIN(BUILT_IN_DWARF_FP_REGNUM,
450                "__builtin_dwarf_fp_regnum",
451                BT_FN_UNSIGNED)
452DEF_GCC_BUILTIN(BUILT_IN_INIT_DWARF_REG_SIZES,
453                "__builtin_init_dwarf_reg_size_table",
454                BT_FN_VOID_PTR)
455DEF_GCC_BUILTIN(BUILT_IN_FROB_RETURN_ADDR,
456                "__builtin_frob_return_addr",
457                BT_FN_PTR_PTR)
458DEF_GCC_BUILTIN(BUILT_IN_EXTRACT_RETURN_ADDR,
459                "__builtin_extract_return_addr",
460                BT_FN_PTR_PTR)
461DEF_GCC_BUILTIN(BUILT_IN_EH_RETURN,
462                "__builtin_eh_return",
463                BT_FN_VOID_PTRMODE_PTR)
464DEF_GCC_BUILTIN(BUILT_IN_EH_RETURN_DATA_REGNO,
465                "__builtin_eh_return_data_regno",
466                BT_FN_INT_INT)
467
468DEF_GCC_BUILTIN(BUILT_IN_VARARGS_START,
469                "__builtin_varargs_start",
470                BT_FN_VOID_VALIST_REF)
471DEF_GCC_BUILTIN(BUILT_IN_STDARG_START,
472                "__builtin_stdarg_start",
473                BT_FN_VOID_VALIST_REF_VAR)
474DEF_GCC_BUILTIN(BUILT_IN_VA_END,
475                "__builtin_va_end",
476                BT_FN_VOID_VALIST_REF)
477DEF_GCC_BUILTIN(BUILT_IN_VA_COPY,
478                "__builtin_va_copy",
479                BT_FN_VOID_VALIST_REF_VALIST_ARG)
480DEF_GCC_BUILTIN(BUILT_IN_EXPECT,
481                "__builtin_expect",
482                BT_FN_LONG_LONG_LONG)
483
484/* C++ extensions */
485DEF_UNUSED_BUILTIN(BUILT_IN_NEW)
486DEF_UNUSED_BUILTIN(BUILT_IN_VEC_NEW)
487DEF_UNUSED_BUILTIN(BUILT_IN_DELETE)
488DEF_UNUSED_BUILTIN(BUILT_IN_VEC_DELETE)
Note: See TracBrowser for help on using the repository browser.