Lines Matching defs:unwind_exception

330 call_terminate(bool native_exception, _Unwind_Exception* unwind_exception)
332 __cxa_begin_catch(unwind_exception);
336 __cxa_exception* exception_header = (__cxa_exception*)(unwind_exception+1) - 1;
365 _Unwind_Exception* unwind_exception, uintptr_t /*base*/ = 0)
370 call_terminate(native_exception, unwind_exception);
388 _Unwind_Exception* unwind_exception, uintptr_t base = 0)
393 call_terminate(native_exception, unwind_exception);
414 call_terminate(native_exception, unwind_exception);
436 void* adjustedPtr, _Unwind_Exception* unwind_exception,
442 call_terminate(false, unwind_exception);
482 void* adjustedPtr, _Unwind_Exception* unwind_exception,
488 call_terminate(false, unwind_exception);
505 unwind_exception,
517 get_thrown_object_ptr(_Unwind_Exception* unwind_exception)
519 // Even for foreign exceptions, the exception object is *probably* at unwind_exception + 1
521 void* adjustedPtr = unwind_exception + 1;
522 if (__getExceptionClass(unwind_exception) == kOurDependentExceptionClass)
547 set_registers(_Unwind_Exception* unwind_exception, _Unwind_Context* context,
557 reinterpret_cast<uintptr_t>(unwind_exception));
586 _Unwind_Exception *unwind_exception,
653 call_terminate(native_exception, unwind_exception);
738 native_exception, unwind_exception,
750 get_thrown_object_ptr(unwind_exception);
758 __cxa_exception* exception_header = (__cxa_exception*)(unwind_exception+1) - 1;
759 void* adjustedPtr = get_thrown_object_ptr(unwind_exception);
765 call_terminate(native_exception, unwind_exception);
789 __cxa_exception* exception_header = (__cxa_exception*)(unwind_exception+1) - 1;
790 void* adjustedPtr = get_thrown_object_ptr(unwind_exception);
796 call_terminate(native_exception, unwind_exception);
801 unwind_exception, base))
817 get_thrown_object_ptr(unwind_exception);
847 call_terminate(native_exception, unwind_exception);
854 call_terminate(native_exception, unwind_exception);
921 _Unwind_Exception* unwind_exception, _Unwind_Context* context)
923 if (version != 1 || unwind_exception == 0 || context == 0)
934 (__cxa_exception*)(unwind_exception + 1) - 1;
943 set_registers(unwind_exception, context, results);
957 scan_eh_tab(results, actions, native_exception, unwind_exception, context);
969 __cxa_exception* exc = (__cxa_exception*)(unwind_exception + 1) - 1;
978 set_registers(unwind_exception, context, results);
986 set_registers(unwind_exception, context, results);
990 (__cxa_exception*)(unwind_exception + 1) - 1;
1019 static _Unwind_Reason_Code continue_unwind(_Unwind_Exception* unwind_exception,
1022 switch (__gnu_unwind_frame(unwind_exception, context)) {
1038 static void save_results_to_barrier_cache(_Unwind_Exception* unwind_exception,
1041 unwind_exception->barrier_cache.bitpattern[0] = (uint32_t)results.adjustedPtr;
1042 unwind_exception->barrier_cache.bitpattern[1] = (uint32_t)results.actionRecord;
1043 unwind_exception->barrier_cache.bitpattern[2] = (uint32_t)results.languageSpecificData;
1044 unwind_exception->barrier_cache.bitpattern[3] = (uint32_t)results.landingPad;
1045 unwind_exception->barrier_cache.bitpattern[4] = (uint32_t)results.ttypeIndex;
1049 const _Unwind_Exception* unwind_exception)
1051 results.adjustedPtr = (void*)unwind_exception->barrier_cache.bitpattern[0];
1052 results.actionRecord = (const uint8_t*)unwind_exception->barrier_cache.bitpattern[1];
1053 results.languageSpecificData = (const uint8_t*)unwind_exception->barrier_cache.bitpattern[2];
1054 results.landingPad = (uintptr_t)unwind_exception->barrier_cache.bitpattern[3];
1055 results.ttypeIndex = (int64_t)(int32_t)unwind_exception->barrier_cache.bitpattern[4];
1060 _Unwind_Exception* unwind_exception,
1063 if (unwind_exception == 0 || context == 0)
1066 bool native_exception = __isOurExceptionClass(unwind_exception);
1072 _Unwind_SetGR(context, REG_UCB, reinterpret_cast<uint32_t>(unwind_exception));
1083 return continue_unwind(unwind_exception, context);
1086 scan_eh_tab(results, _UA_SEARCH_PHASE, native_exception, unwind_exception, context);
1089 unwind_exception->barrier_cache.sp = _Unwind_GetGR(context, REG_SP);
1091 save_results_to_barrier_cache(unwind_exception, results);
1096 return continue_unwind(unwind_exception, context);
1106 if (unwind_exception->barrier_cache.sp == _Unwind_GetGR(context, REG_SP))
1112 load_results_from_barrier_cache(results, unwind_exception);
1119 native_exception, unwind_exception, context);
1121 call_terminate(native_exception, unwind_exception);
1125 set_registers(unwind_exception, context, results);
1136 native_exception, unwind_exception, context);
1139 unwind_exception, context);
1145 // internal data structures, so that __cxa_end_cleanup() can get unwind_exception from
1147 __cxa_begin_cleanup(unwind_exception);
1150 set_registers(unwind_exception, context, results);
1156 return continue_unwind(unwind_exception, context);
1160 return continue_unwind(unwind_exception, context);
1173 _Unwind_Exception* unwind_exception = static_cast<_Unwind_Exception*>(arg);
1174 if (unwind_exception == 0)
1175 call_terminate(false, unwind_exception);
1176 __cxa_begin_catch(unwind_exception);
1177 bool native_old_exception = __isOurExceptionClass(unwind_exception);
1187 old_exception_header = (__cxa_exception*)(unwind_exception+1) - 1;
1193 ttypeIndex = (int64_t)(int32_t)unwind_exception->barrier_cache.bitpattern[4];
1194 lsda = (const uint8_t*)unwind_exception->barrier_cache.bitpattern[2];
1256 unwind_exception, base))
1286 unwind_exception, base))
1307 _Unwind_Exception* unwind_exception, _Unwind_Context* context)