Mercurial > hg > CbC > CbC_gcc
comparison libgcc/unwind-compat.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children | 84e7813d76e9 |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 /* Backward compatibility unwind routines. | |
2 Copyright (C) 2004-2017 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 it | |
7 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, but WITHOUT | |
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY | |
13 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public | |
14 License for more details. | |
15 | |
16 Under Section 7 of GPL version 3, you are granted additional | |
17 permissions described in the GCC Runtime Library Exception, version | |
18 3.1, as published by the Free Software Foundation. | |
19 | |
20 You should have received a copy of the GNU General Public License and | |
21 a copy of the GCC Runtime Library Exception along with this program; | |
22 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see | |
23 <http://www.gnu.org/licenses/>. */ | |
24 | |
25 #if defined (USE_GAS_SYMVER) && defined (USE_LIBUNWIND_EXCEPTIONS) | |
26 #include "tconfig.h" | |
27 #include "tsystem.h" | |
28 #include "unwind.h" | |
29 #include "unwind-dw2-fde.h" | |
30 #include "unwind-compat.h" | |
31 | |
32 extern _Unwind_Reason_Code __libunwind_Unwind_Backtrace | |
33 (_Unwind_Trace_Fn, void *); | |
34 | |
35 _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE | |
36 _Unwind_Backtrace (_Unwind_Trace_Fn trace, void *trace_argument) | |
37 { | |
38 return __libunwind_Unwind_Backtrace (trace, trace_argument); | |
39 } | |
40 symver (_Unwind_Backtrace, GCC_3.3); | |
41 | |
42 extern void __libunwind_Unwind_DeleteException | |
43 (struct _Unwind_Exception *); | |
44 | |
45 void | |
46 _Unwind_DeleteException (struct _Unwind_Exception *exc) | |
47 { | |
48 return __libunwind_Unwind_DeleteException (exc); | |
49 } | |
50 symver (_Unwind_DeleteException, GCC_3.0); | |
51 | |
52 extern void * __libunwind_Unwind_FindEnclosingFunction (void *); | |
53 | |
54 void * | |
55 _Unwind_FindEnclosingFunction (void *pc) | |
56 { | |
57 return __libunwind_Unwind_FindEnclosingFunction (pc); | |
58 } | |
59 symver (_Unwind_FindEnclosingFunction, GCC_3.3); | |
60 | |
61 extern _Unwind_Reason_Code __libunwind_Unwind_ForcedUnwind | |
62 (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *); | |
63 | |
64 _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE | |
65 _Unwind_ForcedUnwind (struct _Unwind_Exception *exc, | |
66 _Unwind_Stop_Fn stop, void * stop_argument) | |
67 { | |
68 return __libunwind_Unwind_ForcedUnwind (exc, stop, stop_argument); | |
69 } | |
70 symver (_Unwind_ForcedUnwind, GCC_3.0); | |
71 | |
72 extern _Unwind_Word __libunwind_Unwind_GetCFA | |
73 (struct _Unwind_Context *); | |
74 | |
75 _Unwind_Word | |
76 _Unwind_GetCFA (struct _Unwind_Context *context) | |
77 { | |
78 return __libunwind_Unwind_GetCFA (context); | |
79 } | |
80 symver (_Unwind_GetCFA, GCC_3.3); | |
81 | |
82 #ifdef __ia64__ | |
83 extern _Unwind_Word __libunwind_Unwind_GetBSP | |
84 (struct _Unwind_Context *); | |
85 | |
86 _Unwind_Word | |
87 _Unwind_GetBSP (struct _Unwind_Context * context) | |
88 { | |
89 return __libunwind_Unwind_GetBSP (context); | |
90 } | |
91 symver (_Unwind_GetBSP, GCC_3.3.2); | |
92 #else | |
93 extern _Unwind_Ptr __libunwind_Unwind_GetDataRelBase | |
94 (struct _Unwind_Context *); | |
95 | |
96 _Unwind_Ptr | |
97 _Unwind_GetDataRelBase (struct _Unwind_Context *context) | |
98 { | |
99 return __libunwind_Unwind_GetDataRelBase (context); | |
100 } | |
101 symver (_Unwind_GetDataRelBase, GCC_3.0); | |
102 | |
103 extern _Unwind_Ptr __libunwind_Unwind_GetTextRelBase | |
104 (struct _Unwind_Context *); | |
105 | |
106 _Unwind_Ptr | |
107 _Unwind_GetTextRelBase (struct _Unwind_Context *context) | |
108 { | |
109 return __libunwind_Unwind_GetTextRelBase (context); | |
110 } | |
111 symver (_Unwind_GetTextRelBase, GCC_3.0); | |
112 #endif | |
113 | |
114 extern _Unwind_Word __libunwind_Unwind_GetGR | |
115 (struct _Unwind_Context *, int ); | |
116 | |
117 _Unwind_Word | |
118 _Unwind_GetGR (struct _Unwind_Context *context, int index) | |
119 { | |
120 return __libunwind_Unwind_GetGR (context, index); | |
121 } | |
122 symver (_Unwind_GetGR, GCC_3.0); | |
123 | |
124 extern _Unwind_Ptr __libunwind_Unwind_GetIP (struct _Unwind_Context *); | |
125 | |
126 _Unwind_Ptr | |
127 _Unwind_GetIP (struct _Unwind_Context *context) | |
128 { | |
129 return __libunwind_Unwind_GetIP (context); | |
130 } | |
131 symver (_Unwind_GetIP, GCC_3.0); | |
132 | |
133 _Unwind_Ptr | |
134 _Unwind_GetIPInfo (struct _Unwind_Context *context, int *ip_before_insn) | |
135 { | |
136 *ip_before_insn = 0; | |
137 return __libunwind_Unwind_GetIP (context); | |
138 } | |
139 | |
140 extern void *__libunwind_Unwind_GetLanguageSpecificData | |
141 (struct _Unwind_Context *); | |
142 | |
143 void * | |
144 _Unwind_GetLanguageSpecificData (struct _Unwind_Context *context) | |
145 { | |
146 return __libunwind_Unwind_GetLanguageSpecificData (context); | |
147 } | |
148 symver (_Unwind_GetLanguageSpecificData, GCC_3.0); | |
149 | |
150 extern _Unwind_Ptr __libunwind_Unwind_GetRegionStart | |
151 (struct _Unwind_Context *); | |
152 | |
153 _Unwind_Ptr | |
154 _Unwind_GetRegionStart (struct _Unwind_Context *context) | |
155 { | |
156 return __libunwind_Unwind_GetRegionStart (context); | |
157 } | |
158 symver (_Unwind_GetRegionStart, GCC_3.0); | |
159 | |
160 extern _Unwind_Reason_Code __libunwind_Unwind_RaiseException | |
161 (struct _Unwind_Exception *); | |
162 | |
163 _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE | |
164 _Unwind_RaiseException(struct _Unwind_Exception *exc) | |
165 { | |
166 return __libunwind_Unwind_RaiseException (exc); | |
167 } | |
168 symver (_Unwind_RaiseException, GCC_3.0); | |
169 | |
170 extern void __libunwind_Unwind_Resume (struct _Unwind_Exception *); | |
171 | |
172 void LIBGCC2_UNWIND_ATTRIBUTE | |
173 _Unwind_Resume (struct _Unwind_Exception *exc) | |
174 { | |
175 __libunwind_Unwind_Resume (exc); | |
176 } | |
177 symver (_Unwind_Resume, GCC_3.0); | |
178 | |
179 extern _Unwind_Reason_Code __libunwind_Unwind_Resume_or_Rethrow | |
180 (struct _Unwind_Exception *); | |
181 | |
182 _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE | |
183 _Unwind_Resume_or_Rethrow (struct _Unwind_Exception *exc) | |
184 { | |
185 return __libunwind_Unwind_Resume_or_Rethrow (exc); | |
186 } | |
187 symver (_Unwind_Resume_or_Rethrow, GCC_3.3); | |
188 | |
189 extern void __libunwind_Unwind_SetGR | |
190 (struct _Unwind_Context *, int, _Unwind_Word); | |
191 | |
192 void | |
193 _Unwind_SetGR (struct _Unwind_Context *context, int index, | |
194 _Unwind_Word val) | |
195 { | |
196 __libunwind_Unwind_SetGR (context, index, val); | |
197 } | |
198 symver (_Unwind_SetGR, GCC_3.0); | |
199 | |
200 extern void __libunwind_Unwind_SetIP | |
201 (struct _Unwind_Context *, _Unwind_Ptr); | |
202 | |
203 void | |
204 _Unwind_SetIP (struct _Unwind_Context *context, _Unwind_Ptr val) | |
205 { | |
206 return __libunwind_Unwind_SetIP (context, val); | |
207 } | |
208 symver (_Unwind_SetIP, GCC_3.0); | |
209 #endif |