1 /* Definitions for code generation pass of GNU compiler. 2 Copyright (C) 2001, 2004 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 2, 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 COPYING. If not, write to 18 the Free Software Foundation, 51 Franklin Street, Fifth Floor, 19 Boston, MA 02110-1301, USA. */ 20 21 #ifndef GCC_LIBFUNCS_H 22 #define GCC_LIBFUNCS_H 23 24 /* Enumeration of indexes into libfunc_table. */ 25 enum 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. */ 51 extern 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