Lines Matching refs:results
512 const scan_results& results)
517 static_cast<uintptr_t>(results.ttypeIndex));
518 _Unwind_SetIP(context, results.landingPad);
542 static void scan_eh_tab(scan_results &results, _Unwind_Action actions,
546 // Initialize results to found nothing but an error
547 results.ttypeIndex = 0;
548 results.actionRecord = 0;
549 results.languageSpecificData = 0;
550 results.landingPad = 0;
551 results.adjustedPtr = 0;
552 results.reason = _URC_FATAL_PHASE1_ERROR;
561 results.reason = _URC_FATAL_PHASE1_ERROR;
572 results.reason = _URC_FATAL_PHASE2_ERROR;
580 results.reason = _URC_FATAL_PHASE1_ERROR;
588 results.reason = _URC_CONTINUE_UNWIND;
591 results.languageSpecificData = lsda;
602 results.reason = _URC_CONTINUE_UNWIND;
662 results.reason = _URC_CONTINUE_UNWIND;
676 results.ttypeIndex = 0; // Redundant but clarifying
677 results.landingPad = landingPad;
678 results.reason = _URC_HANDLER_FOUND;
682 results.reason = _URC_CONTINUE_UNWIND;
710 results.ttypeIndex = ttypeIndex;
711 results.actionRecord = actionRecord;
712 results.landingPad = landingPad;
713 results.adjustedPtr = get_thrown_object_ptr(unwind_exception);
714 results.reason = _URC_HANDLER_FOUND;
746 results.ttypeIndex = ttypeIndex;
747 results.actionRecord = actionRecord;
748 results.landingPad = landingPad;
749 results.adjustedPtr = adjustedPtr;
750 results.reason = _URC_HANDLER_FOUND;
790 results.ttypeIndex = ttypeIndex;
791 results.actionRecord = actionRecord;
792 results.landingPad = landingPad;
793 results.adjustedPtr = adjustedPtr;
794 results.reason = _URC_HANDLER_FOUND;
815 results.ttypeIndex = ttypeIndex;
816 results.actionRecord = actionRecord;
817 results.landingPad = landingPad;
818 results.adjustedPtr = get_thrown_object_ptr(unwind_exception);
819 results.reason = _URC_HANDLER_FOUND;
840 results.ttypeIndex = ttypeIndex;
841 results.actionRecord = actionRecord;
842 results.landingPad = landingPad;
843 results.adjustedPtr = get_thrown_object_ptr(unwind_exception);
844 results.reason = _URC_HANDLER_FOUND;
853 results.reason = _URC_CONTINUE_UNWIND;
939 scan_results results;
944 scan_eh_tab(results, actions, native_exception, unwind_exception, context);
945 if (results.reason == _URC_HANDLER_FOUND)
947 // Found one. Can we cache the results somewhere to optimize phase 2?
951 exception_header->handlerSwitchValue = static_cast<int>(results.ttypeIndex);
952 exception_header->actionRecord = results.actionRecord;
953 exception_header->languageSpecificData = results.languageSpecificData;
954 exception_header->catchTemp = reinterpret_cast<void*>(results.landingPad);
955 exception_header->adjustedPtr = results.adjustedPtr;
959 // Did not find a catching-handler. Return the results of the scan
962 return results.reason;
971 // Did we cache the results of the scan?
974 // Yes, reload the results from the cache.
976 results.ttypeIndex = exception_header->handlerSwitchValue;
977 results.actionRecord = exception_header->actionRecord;
978 results.languageSpecificData = exception_header->languageSpecificData;
979 results.landingPad = reinterpret_cast<uintptr_t>(exception_header->catchTemp);
980 results.adjustedPtr = exception_header->adjustedPtr;
984 // No, do the scan again to reload the results.
985 scan_eh_tab(results, actions, native_exception, unwind_exception, context);
988 if (results.reason != _URC_HANDLER_FOUND)
992 set_registers(unwind_exception, context, results);
998 scan_eh_tab(results, actions, native_exception, unwind_exception, context);
999 if (results.reason == _URC_HANDLER_FOUND)
1002 set_registers(unwind_exception, context, results);
1005 // Did not find a cleanup. Return the results of the scan
1008 return results.reason;
1067 const scan_results& results)
1069 unwind_exception->barrier_cache.bitpattern[0] = (uint32_t)results.adjustedPtr;
1070 unwind_exception->barrier_cache.bitpattern[1] = (uint32_t)results.actionRecord;
1071 unwind_exception->barrier_cache.bitpattern[2] = (uint32_t)results.languageSpecificData;
1072 unwind_exception->barrier_cache.bitpattern[3] = (uint32_t)results.landingPad;
1073 unwind_exception->barrier_cache.bitpattern[4] = (uint32_t)results.ttypeIndex;
1076 static void load_results_from_barrier_cache(scan_results& results,
1079 results.adjustedPtr = (void*)unwind_exception->barrier_cache.bitpattern[0];
1080 results.actionRecord = (const uint8_t*)unwind_exception->barrier_cache.bitpattern[1];
1081 results.languageSpecificData = (const uint8_t*)unwind_exception->barrier_cache.bitpattern[2];
1082 results.landingPad = (uintptr_t)unwind_exception->barrier_cache.bitpattern[3];
1083 results.ttypeIndex = (int64_t)(int32_t)unwind_exception->barrier_cache.bitpattern[4];
1108 scan_results results;
1115 scan_eh_tab(results, _UA_SEARCH_PHASE, native_exception, unwind_exception, context);
1116 if (results.reason == _URC_HANDLER_FOUND)
1120 save_results_to_barrier_cache(unwind_exception, results);
1124 if (results.reason == _URC_CONTINUE_UNWIND)
1126 return results.reason;
1141 load_results_from_barrier_cache(results, unwind_exception);
1142 results.reason = _URC_HANDLER_FOUND;
1147 scan_eh_tab(results, static_cast<_Unwind_Action>(_UA_CLEANUP_PHASE | _UA_HANDLER_FRAME),
1149 if (results.reason != _URC_HANDLER_FOUND) // phase1 search should guarantee to find one
1154 set_registers(unwind_exception, context, results);
1161 scan_eh_tab(results, _UA_CLEANUP_PHASE, native_exception, unwind_exception, context);
1162 if (results.reason == _URC_HANDLER_FOUND)
1172 set_registers(unwind_exception, context, results);
1177 if (results.reason == _URC_CONTINUE_UNWIND)
1179 return results.reason;