Mercurial > hg > CbC > CbC_gcc
comparison gcc/libfuncs.h @ 67:f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Mar 2011 17:18:12 +0900 |
parents | 77e2b8dfacca |
children | 04ced10e8804 |
comparison
equal
deleted
inserted
replaced
65:65488c3d617d | 67:f6334be47118 |
---|---|
1 /* Definitions for code generation pass of GNU compiler. | 1 /* Definitions for code generation pass of GNU compiler. |
2 Copyright (C) 2001, 2004, 2007, 2008 Free Software Foundation, Inc. | 2 Copyright (C) 2001, 2004, 2007, 2008, 2010 Free Software Foundation, Inc. |
3 | 3 |
4 This file is part of GCC. | 4 This file is part of GCC. |
5 | 5 |
6 GCC is free software; you can redistribute it and/or modify | 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 | 7 it under the terms of the GNU General Public License as published by |
17 along with GCC; see the file COPYING3. If not see | 17 along with GCC; see the file COPYING3. If not see |
18 <http://www.gnu.org/licenses/>. */ | 18 <http://www.gnu.org/licenses/>. */ |
19 | 19 |
20 #ifndef GCC_LIBFUNCS_H | 20 #ifndef GCC_LIBFUNCS_H |
21 #define GCC_LIBFUNCS_H | 21 #define GCC_LIBFUNCS_H |
22 | |
23 #include "hashtab.h" | |
22 | 24 |
23 /* Enumeration of indexes into libfunc_table. */ | 25 /* Enumeration of indexes into libfunc_table. */ |
24 enum libfunc_index | 26 enum libfunc_index |
25 { | 27 { |
26 LTI_abort, | 28 LTI_abort, |
43 LTI_gcov_flush, | 45 LTI_gcov_flush, |
44 | 46 |
45 LTI_MAX | 47 LTI_MAX |
46 }; | 48 }; |
47 | 49 |
48 /* SYMBOL_REF rtx's for the library functions that are called | 50 /* Information about an optab-related libfunc. We use the same hashtable |
49 implicitly and not via optabs. */ | 51 for normal optabs and conversion optabs. In the first case mode2 |
50 extern GTY(()) rtx libfunc_table[LTI_MAX]; | 52 is unused. */ |
53 struct GTY(()) libfunc_entry { | |
54 size_t optab; | |
55 enum machine_mode mode1, mode2; | |
56 rtx libfunc; | |
57 }; | |
58 | |
59 /* Target-dependent globals. */ | |
60 struct GTY(()) target_libfuncs { | |
61 /* SYMBOL_REF rtx's for the library functions that are called | |
62 implicitly and not via optabs. */ | |
63 rtx x_libfunc_table[LTI_MAX]; | |
64 | |
65 /* Hash table used to convert declarations into nodes. */ | |
66 htab_t GTY((param_is (struct libfunc_entry))) x_libfunc_hash; | |
67 }; | |
68 | |
69 extern GTY(()) struct target_libfuncs default_target_libfuncs; | |
70 #if SWITCHABLE_TARGET | |
71 extern struct target_libfuncs *this_target_libfuncs; | |
72 #else | |
73 #define this_target_libfuncs (&default_target_libfuncs) | |
74 #endif | |
75 | |
76 #define libfunc_table \ | |
77 (this_target_libfuncs->x_libfunc_table) | |
51 | 78 |
52 /* Accessor macros for libfunc_table. */ | 79 /* Accessor macros for libfunc_table. */ |
53 | 80 |
54 #define abort_libfunc (libfunc_table[LTI_abort]) | 81 #define abort_libfunc (libfunc_table[LTI_abort]) |
55 #define memcpy_libfunc (libfunc_table[LTI_memcpy]) | 82 #define memcpy_libfunc (libfunc_table[LTI_memcpy]) |
69 | 96 |
70 #define synchronize_libfunc (libfunc_table[LTI_synchronize]) | 97 #define synchronize_libfunc (libfunc_table[LTI_synchronize]) |
71 | 98 |
72 #define gcov_flush_libfunc (libfunc_table[LTI_gcov_flush]) | 99 #define gcov_flush_libfunc (libfunc_table[LTI_gcov_flush]) |
73 | 100 |
101 /* In explow.c */ | |
102 extern void set_stack_check_libfunc (const char *); | |
103 | |
74 #endif /* GCC_LIBFUNCS_H */ | 104 #endif /* GCC_LIBFUNCS_H */ |