1/* Definitions for code generation pass of GNU compiler. 2 Copyright (C) 2001, 2004 Free Software Foundation, Inc. 3 4This file is part of GCC. 5 6GCC is free software; you can redistribute it and/or modify 7it under the terms of the GNU General Public License as published by 8the Free Software Foundation; either version 2, or (at your option) 9any later version. 10 11GCC is distributed in the hope that it will be useful, 12but WITHOUT ANY WARRANTY; without even the implied warranty of 13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14GNU General Public License for more details. 15 16You should have received a copy of the GNU General Public License 17along with GCC; see the file COPYING. If not, write to 18the Free Software Foundation, 51 Franklin Street, Fifth Floor, 19Boston, MA 02110-1301, USA. */ 20 21#ifndef GCC_LIBFUNCS_H 22#define GCC_LIBFUNCS_H 23 24/* Enumeration of indexes into libfunc_table. */ 25enum libfunc_index 26{ 27 LTI_abort, 28 LTI_memcpy, 29 LTI_memmove, 30 LTI_memcmp, 31 LTI_memset, 32 LTI_setbits, 33 34 LTI_unwind_resume, 35 LTI_eh_personality, 36 LTI_setjmp, 37 LTI_longjmp, 38 LTI_unwind_sjlj_register, 39 LTI_unwind_sjlj_unregister, 40 41 LTI_profile_function_entry, 42 LTI_profile_function_exit, 43 44 LTI_gcov_flush, 45 46 LTI_MAX 47}; 48 49/* SYMBOL_REF rtx's for the library functions that are called 50 implicitly and not via optabs. */ 51extern GTY(()) rtx libfunc_table[LTI_MAX]; 52 53/* Accessor macros for libfunc_table. */ 54 55#define abort_libfunc (libfunc_table[LTI_abort]) 56#define memcpy_libfunc (libfunc_table[LTI_memcpy]) 57#define memmove_libfunc (libfunc_table[LTI_memmove]) 58#define memcmp_libfunc (libfunc_table[LTI_memcmp]) 59#define memset_libfunc (libfunc_table[LTI_memset]) 60#define setbits_libfunc (libfunc_table[LTI_setbits]) 61 62#define unwind_resume_libfunc (libfunc_table[LTI_unwind_resume]) 63#define eh_personality_libfunc (libfunc_table[LTI_eh_personality]) 64#define setjmp_libfunc (libfunc_table[LTI_setjmp]) 65#define longjmp_libfunc (libfunc_table[LTI_longjmp]) 66#define unwind_sjlj_register_libfunc (libfunc_table[LTI_unwind_sjlj_register]) 67#define unwind_sjlj_unregister_libfunc \ 68 (libfunc_table[LTI_unwind_sjlj_unregister]) 69 70#define profile_function_entry_libfunc (libfunc_table[LTI_profile_function_entry]) 71#define profile_function_exit_libfunc (libfunc_table[LTI_profile_function_exit]) 72 73#define gcov_flush_libfunc (libfunc_table[LTI_gcov_flush]) 74 75#endif /* GCC_LIBFUNCS_H */ 76