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