164566Sgshapiro/* Definitions for code generation pass of GNU compiler.
264566Sgshapiro   Copyright (C) 2001, 2004 Free Software Foundation, Inc.
3266695Sgshapiro
464566SgshapiroThis file is part of GCC.
564566Sgshapiro
6182356SgshapiroGCC is free software; you can redistribute it and/or modify
764566Sgshapiroit under the terms of the GNU General Public License as published by
8182356Sgshapirothe Free Software Foundation; either version 2, or (at your option)
9182356Sgshapiroany later version.
10182356Sgshapiro
1164566SgshapiroGCC is distributed in the hope that it will be useful,
12261359Sgshapirobut WITHOUT ANY WARRANTY; without even the implied warranty of
1364566SgshapiroMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14182356SgshapiroGNU General Public License for more details.
1564566Sgshapiro
16182356SgshapiroYou should have received a copy of the GNU General Public License
17182356Sgshapiroalong with GCC; see the file COPYING.  If not, write to
18182356Sgshapirothe Free Software Foundation, 51 Franklin Street, Fifth Floor,
19182356SgshapiroBoston, MA 02110-1301, USA.  */
20182356Sgshapiro
21182356Sgshapiro#ifndef GCC_LIBFUNCS_H
22182356Sgshapiro#define GCC_LIBFUNCS_H
23182356Sgshapiro
24182356Sgshapiro/* Enumeration of indexes into libfunc_table.  */
25182356Sgshapiroenum libfunc_index
26182356Sgshapiro{
27182356Sgshapiro  LTI_abort,
2864566Sgshapiro  LTI_memcpy,
29157704Sgshapiro  LTI_memmove,
30244834Sgshapiro  LTI_memcmp,
31244834Sgshapiro  LTI_memset,
3264566Sgshapiro  LTI_setbits,
33182356Sgshapiro
34182356Sgshapiro  LTI_unwind_resume,
3564566Sgshapiro  LTI_eh_personality,
3664566Sgshapiro  LTI_setjmp,
3764566Sgshapiro  LTI_longjmp,
3864566Sgshapiro  LTI_unwind_sjlj_register,
3993857Sgshapiro  LTI_unwind_sjlj_unregister,
4093857Sgshapiro
4193857Sgshapiro  LTI_profile_function_entry,
4295149Sgshapiro  LTI_profile_function_exit,
4393857Sgshapiro
4493857Sgshapiro  LTI_gcov_flush,
4593857Sgshapiro
4693857Sgshapiro  LTI_MAX
47244834Sgshapiro};
4894347Sgshapiro
4993857Sgshapiro/* SYMBOL_REF rtx's for the library functions that are called
5093857Sgshapiro   implicitly and not via optabs.  */
5193857Sgshapiroextern GTY(()) rtx libfunc_table[LTI_MAX];
5293857Sgshapiro
5393857Sgshapiro/* Accessor macros for libfunc_table.  */
5493857Sgshapiro
5593857Sgshapiro#define abort_libfunc	(libfunc_table[LTI_abort])
5693857Sgshapiro#define memcpy_libfunc	(libfunc_table[LTI_memcpy])
5793857Sgshapiro#define memmove_libfunc	(libfunc_table[LTI_memmove])
5895149Sgshapiro#define memcmp_libfunc	(libfunc_table[LTI_memcmp])
5993857Sgshapiro#define memset_libfunc	(libfunc_table[LTI_memset])
6093857Sgshapiro#define setbits_libfunc	(libfunc_table[LTI_setbits])
6194260Sgshapiro
6294260Sgshapiro#define unwind_resume_libfunc	(libfunc_table[LTI_unwind_resume])
6393857Sgshapiro#define eh_personality_libfunc	(libfunc_table[LTI_eh_personality])
64127978Sgshapiro#define setjmp_libfunc	(libfunc_table[LTI_setjmp])
6593857Sgshapiro#define longjmp_libfunc	(libfunc_table[LTI_longjmp])
6693857Sgshapiro#define unwind_sjlj_register_libfunc (libfunc_table[LTI_unwind_sjlj_register])
67121232Sgshapiro#define unwind_sjlj_unregister_libfunc \
6893857Sgshapiro  (libfunc_table[LTI_unwind_sjlj_unregister])
6993857Sgshapiro
7093857Sgshapiro#define profile_function_entry_libfunc	(libfunc_table[LTI_profile_function_entry])
7193857Sgshapiro#define profile_function_exit_libfunc	(libfunc_table[LTI_profile_function_exit])
7293857Sgshapiro
7393857Sgshapiro#define gcov_flush_libfunc	(libfunc_table[LTI_gcov_flush])
7493857Sgshapiro
7593857Sgshapiro#endif /* GCC_LIBFUNCS_H */
7693857Sgshapiro