|
@@ -48,7 +48,15 @@ init (void)
|
|
|
libgcc_s_resume = resume;
|
|
|
libgcc_s_personality = personality;
|
|
|
}
|
|
|
-
|
|
|
+#ifdef __thumb__
|
|
|
+void
|
|
|
+_Unwind_Resume (struct _Unwind_Exception *exc)
|
|
|
+{
|
|
|
+ if (__builtin_expect (libgcc_s_resume == NULL, 0))
|
|
|
+ init ();
|
|
|
+ libgcc_s_resume (exc);
|
|
|
+}
|
|
|
+#else
|
|
|
|
|
|
ARM unwinder relies on register state at entrance. So we write this in
|
|
|
assembly. */
|
|
@@ -95,6 +103,7 @@ __asm__ (
|
|
|
"2: .word libgcc_s_resume(GOTOFF)\n"
|
|
|
" .size _Unwind_Resume, .-_Unwind_Resume\n"
|
|
|
);
|
|
|
+#endif
|
|
|
|
|
|
_Unwind_Reason_Code
|
|
|
__gcc_personality_v0 (_Unwind_State state,
|