190075Sobrien/* Definitions for code generation pass of GNU compiler. 2169689Skan Copyright (C) 2001, 2004 Free Software Foundation, Inc. 390075Sobrien 490075SobrienThis file is part of GCC. 590075Sobrien 690075SobrienGCC is free software; you can redistribute it and/or modify 790075Sobrienit under the terms of the GNU General Public License as published by 890075Sobrienthe Free Software Foundation; either version 2, or (at your option) 990075Sobrienany later version. 1090075Sobrien 1190075SobrienGCC is distributed in the hope that it will be useful, 1290075Sobrienbut WITHOUT ANY WARRANTY; without even the implied warranty of 1390075SobrienMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1490075SobrienGNU General Public License for more details. 1590075Sobrien 1690075SobrienYou should have received a copy of the GNU General Public License 1790075Sobrienalong with GCC; see the file COPYING. If not, write to 18169689Skanthe Free Software Foundation, 51 Franklin Street, Fifth Floor, 19169689SkanBoston, MA 02110-1301, USA. */ 2090075Sobrien 2190075Sobrien#ifndef GCC_LIBFUNCS_H 2290075Sobrien#define GCC_LIBFUNCS_H 2390075Sobrien 2490075Sobrien/* Enumeration of indexes into libfunc_table. */ 2590075Sobrienenum libfunc_index 2690075Sobrien{ 2796263Sobrien LTI_abort, 2890075Sobrien LTI_memcpy, 2990075Sobrien LTI_memmove, 3090075Sobrien LTI_memcmp, 3190075Sobrien LTI_memset, 32132718Skan LTI_setbits, 3390075Sobrien 3490075Sobrien LTI_unwind_resume, 3590075Sobrien LTI_eh_personality, 3690075Sobrien LTI_setjmp, 3790075Sobrien LTI_longjmp, 3890075Sobrien LTI_unwind_sjlj_register, 3990075Sobrien LTI_unwind_sjlj_unregister, 4090075Sobrien 4190075Sobrien LTI_profile_function_entry, 4290075Sobrien LTI_profile_function_exit, 4390075Sobrien 44132718Skan LTI_gcov_flush, 45132718Skan 4690075Sobrien LTI_MAX 4790075Sobrien}; 4890075Sobrien 4990075Sobrien/* SYMBOL_REF rtx's for the library functions that are called 5090075Sobrien implicitly and not via optabs. */ 51117395Skanextern GTY(()) rtx libfunc_table[LTI_MAX]; 5290075Sobrien 5390075Sobrien/* Accessor macros for libfunc_table. */ 5490075Sobrien 5596263Sobrien#define abort_libfunc (libfunc_table[LTI_abort]) 5690075Sobrien#define memcpy_libfunc (libfunc_table[LTI_memcpy]) 5790075Sobrien#define memmove_libfunc (libfunc_table[LTI_memmove]) 5890075Sobrien#define memcmp_libfunc (libfunc_table[LTI_memcmp]) 5990075Sobrien#define memset_libfunc (libfunc_table[LTI_memset]) 60132718Skan#define setbits_libfunc (libfunc_table[LTI_setbits]) 6190075Sobrien 6290075Sobrien#define unwind_resume_libfunc (libfunc_table[LTI_unwind_resume]) 6390075Sobrien#define eh_personality_libfunc (libfunc_table[LTI_eh_personality]) 6490075Sobrien#define setjmp_libfunc (libfunc_table[LTI_setjmp]) 6590075Sobrien#define longjmp_libfunc (libfunc_table[LTI_longjmp]) 6690075Sobrien#define unwind_sjlj_register_libfunc (libfunc_table[LTI_unwind_sjlj_register]) 6790075Sobrien#define unwind_sjlj_unregister_libfunc \ 6890075Sobrien (libfunc_table[LTI_unwind_sjlj_unregister]) 6990075Sobrien 7090075Sobrien#define profile_function_entry_libfunc (libfunc_table[LTI_profile_function_entry]) 7190075Sobrien#define profile_function_exit_libfunc (libfunc_table[LTI_profile_function_exit]) 7290075Sobrien 73132718Skan#define gcov_flush_libfunc (libfunc_table[LTI_gcov_flush]) 74132718Skan 7590075Sobrien#endif /* GCC_LIBFUNCS_H */ 76