]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/builtins.def
m68hc11.md ("*movqi_68hc12"): Avoid allocating QI mode registers in soft registers.
[thirdparty/gcc.git] / gcc / builtins.def
CommitLineData
cb1072f4
KG
1/* This file contains the definitions and documentation for the
2 builtins used in the GNU compiler.
341e3d11 3 Copyright (C) 2000, 2001 Free Software Foundation, Inc.
cb1072f4 4
1322177d 5This file is part of GCC.
cb1072f4 6
1322177d
LB
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.
cb1072f4 11
1322177d
LB
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.
cb1072f4
KG
16
17You should have received a copy of the GNU General Public License
1322177d
LB
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. */
cb1072f4 21
10841285
MM
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
b4c984fb
KG
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
10841285
MM
82/* A library builtin (like __builtin_strchr) is a builtin equivalent
83 of an ANSI/ISO standard library function. In addition to the
5519a4f9 84 `__builtin' version, we will create an ordinary version (e.g,
10841285
MM
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
b4c984fb
KG
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
10841285
MM
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,
f458d1d5 214 BT_FN_VOID_PTR_SIZE,
10841285
MM
215 BT_FN_VOID_VAR,
216 true, true, true)
217DEF_BUILTIN (BUILT_IN_BCMP,
218 "__builtin_bcmp",
219 BUILT_IN_NORMAL,
f458d1d5 220 BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
10841285
MM
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",
f458d1d5 236 BT_FN_PTR_PTR_CONST_PTR_SIZE)
10841285
MM
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",
f458d1d5 242 BT_FN_PTR_PTR_INT_SIZE)
10841285
MM
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",
f458d1d5 264 BT_FN_SIZE_CONST_STRING)
10841285
MM
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
dc6f4158
AJ
284DEF_LIB_BUILTIN(BUILT_IN_SQRT,
285 "__builtin_sqrt",
10841285
MM
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",
2d94a1fa 301 BT_FN_FLOAT_FLOAT)
10841285
MM
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)
a9ccbb60
JJ
357DEF_GCC_BUILTIN(BUILT_IN_PREFETCH,
358 "__builtin_prefetch",
3bca17dd 359 BT_FN_VOID_CONST_PTR_VAR)
10841285
MM
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)
3ff5f682 390
b4c984fb
KG
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
cb1072f4 422 /* ISO C99 floating point unordered comparisons. */
10841285
MM
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)