/freebsd/contrib/libcxxrt/ |
H A D | dwarf_eh.h | 341 struct dwarf_eh_lsda lsda; in parse_lsda() local 343 lsda.region_start = reinterpret_cast<dw_eh_ptr_t>(_Unwind_GetRegionStart(context)); in parse_lsda() 348 uint64_t v = static_cast<uint64_t>(reinterpret_cast<uintptr_t>(lsda.region_start)); in parse_lsda() 350 lsda.landing_pads = reinterpret_cast<dw_eh_ptr_t>(static_cast<uintptr_t>(v)); in parse_lsda() 356 lsda.type_table = 0; in parse_lsda() 357 lsda.type_table_encoding = *data++; in parse_lsda() 358 if (lsda.type_table_encoding != DW_EH_PE_omit) in parse_lsda() 363 lsda.type_table = type_table; in parse_lsda() 364 //lsda.type_table = (uintptr_t*)(data + v); in parse_lsda() 367 lsda.type_table_encoding = (DW_EH_PE_pcrel | DW_EH_PE_indirect); in parse_lsda() [all …]
|
H A D | exception.cc | 938 dwarf_eh_lsda *lsda, in get_type_info_entry() argument 942 dw_eh_ptr_t record = lsda->type_table - in get_type_info_entry() 943 dwarf_size_of_fixed_size_field(lsda->type_table_encoding)*filter; in get_type_info_entry() 947 int64_t offset = read_value(lsda->type_table_encoding, &record); in get_type_info_entry() 954 lsda->type_table_encoding, offset, start)); in get_type_info_entry() 1016 dwarf_eh_lsda *lsda, in check_action_record() argument 1035 std::type_info *handler_type = get_type_info_entry(context, lsda, filter); in check_action_record() 1048 std::type_info *handler_type = get_type_info_entry(context, lsda, filter--); in check_action_record() 1056 handler_type = get_type_info_entry(context, lsda, filter--); in check_action_record() 1059 unsigned char *type_index = reinterpret_cast<unsigned char*>(lsda->type_table) - filter - 1; in check_action_record() [all …]
|
/freebsd/contrib/llvm-project/compiler-rt/lib/builtins/ |
H A D | gcc_personality_v0.c | 217 // There is nothing to do if there is no LSDA for this frame. in __gcc_personality_sj0() 218 const uint8_t *lsda = (uint8_t *)_Unwind_GetLanguageSpecificData(context); in __gcc_personality_sj0() local 219 if (lsda == (uint8_t *)0) in __gcc_personality_sj0() 226 // Parse LSDA header. in __gcc_personality_sj0() 227 uint8_t lpStartEncoding = *lsda++; in __gcc_personality_sj0() 229 readEncodedPointer(&lsda, lpStartEncoding); in __gcc_personality_sj0() 231 uint8_t ttypeEncoding = *lsda++; in __gcc_personality_sj0() 233 readULEB128(&lsda); in __gcc_personality_sj0() 236 uint8_t callSiteEncoding = *lsda++; in __gcc_personality_sj0() 237 size_t callSiteTableLength = readULEB128(&lsda); in __gcc_personality_sj0() [all …]
|
/freebsd/contrib/llvm-project/lld/MachO/ |
H A D | UnwindInfoSection.cpp | 106 DO(Ptr, lsda) 118 InputSection *lsda; member 161 // Indices into cuEntries for CUEs with a non-null LSDA. 163 // Map of cuEntries index to an index within the LSDA array. 181 // personality function and no LSDA, they share one unwind entry. For this to 245 // Functions and LSDA entries always reside in the same object file as the in prepareRelocations() 379 cu.lsda = fde.lsda; in relocateCompactUnwind() 395 cu.lsda = r.getReferentInputSection(); in relocateCompactUnwind() 461 // and without any LSDA. Folding is necessary because it reduces the in finalize() 482 // Fold adjacent entries with matching encoding+personality and without LSDA in finalize() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | WasmEHPrepare.cpp | 30 // __wasm_lpad_context.lsda = wasm.lsda(); 58 // uintptr_t lsda; 74 // We pass a landing pad index, and the address of LSDA for the current function 104 Value *LSDAField = nullptr; // lsda field 109 Function *LSDAF = nullptr; // wasm.lsda() intrinsic 149 StructType::get(I32Ty /*lpad_index*/, PtrTy /*lsda*/, I32Ty /*selector*/); in run() 166 IRB.getPtrTy(), // lsda in doInitialization() 264 // wasm.lsda() intrinsic. Returns the address of LSDA table for the current in prepareEHPads() 350 // SelectionDAGISel, which is to be used in EHStreamer to emit LSDA tables. in prepareEHPad() 358 // TODO Sometimes storing the LSDA address every time is not necessary, in in prepareEHPad() [all …]
|
H A D | TargetLoweringObjectFileImpl.cpp | 966 // If neither COMDAT nor function sections, use the monolithic LSDA section. in getSectionForLSDA() 971 const auto *LSDA = cast<MCSectionELF>(LSDASection); in getSectionForLSDA() local 972 unsigned Flags = LSDA->getFlags(); in getSectionForLSDA() 993 (TM.getUniqueSectionNames() ? LSDA->getName() + "." + F.getName() in getSectionForLSDA() 994 : LSDA->getName()), in getSectionForLSDA() 995 LSDA->getType(), Flags, 0, Group, IsComdat, MCSection::NonUniqueID, in getSectionForLSDA() 2704 auto *LSDA = cast<MCSectionXCOFF>(LSDASection); in getSectionForLSDA() local 2707 // name of the LSDA csect so that each function has its own LSDA csect. in getSectionForLSDA() 2709 SmallString<128> NameStr = LSDA->getName(); in getSectionForLSDA() 2711 LSDA = getContext().getXCOFFSection(NameStr, LSDA->getKind(), in getSectionForLSDA() [all …]
|
H A D | SjLjEHPrepare.cpp | 240 // LSDA address in setupFunctionContext() 241 Value *LSDA = Builder.CreateCall(LSDAAddrFn, {}, "lsda_addr"); in setupFunctionContext() local 244 Builder.CreateStore(LSDA, LSDAFieldPtr, /*isVolatile=*/true); in setupFunctionContext()
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/ |
H A D | AIXException.cpp | 27 void AIXException::emitExceptionInfoTable(const MCSymbol *LSDA, in emitExceptionInfoTable() argument 36 // unsigned long lsda; /* Pointer to LSDA */ in emitExceptionInfoTable() 66 // LSDA location. in emitExceptionInfoTable() 67 Asm->OutStreamer->emitValue(MCSymbolRefExpr::create(LSDA, Asm->OutContext), in emitExceptionInfoTable()
|
H A D | EHStreamer.cpp | 56 // The action table follows the call-site table in the LSDA. The individual in computeActionsTable() 192 // try-ranges for them need be deduced so we can put them in the LSDA. in computePadMap() 227 // Later, one LSDA header will be emitted for each call-site range with its 439 // typeinfo objects at the end of the LSDA. However, unless we're in static in emitExceptionTable() 445 // from the LSDA, because the static linker will resolve it. in emitExceptionTable() 447 // 2) Otherwise, if the LSDA section is writable, we can output the direct in emitExceptionTable() 474 // Emit the LSDA. in emitExceptionTable() 491 // * For SJLJ and Wasm, they will be emitted only once in the LSDA header. in emitExceptionTable() 518 // In this case, we would need to calculate the LSDA size and the call in emitExceptionTable() 574 // when the data we use to represent the LSDA Size "needs" to be 1 byte in emitExceptionTable() [all …]
|
H A D | DwarfException.h | 98 /// to find the location of LSDA area and personality rountine. 99 void emitExceptionInfoTable(const MCSymbol *LSDA, const MCSymbol *PerSym);
|
/freebsd/contrib/llvm-project/libunwind/src/ |
H A D | Unwind-wasm.c | 30 uintptr_t lsda; // LSDA address member 108 /// Called by personality handler to get LSDA for current frame. 111 uintptr_t result = ((struct _Unwind_LandingPadContext *)context)->lsda; in _Unwind_GetLanguageSpecificData()
|
H A D | UnwindCursor.hpp | 513 _info.lsda = reinterpret_cast<unw_word_t>(_dispContext.HandlerData); in setDispatcherContext() 554 _info.lsda = reinterpret_cast<unw_word_t>(_dispContext.HandlerData); in stepWithSEHData() 1542 uintptr_t lsda; in getInfoFromEHABISection() local 1555 lsda = isSingleWordEHT ? 0 : (exceptionTableAddr + 4); in getInfoFromEHABISection() 1561 lsda = exceptionTableAddr + (extraWords + 1) * 4; in getInfoFromEHABISection() 1567 lsda = exceptionTableAddr + (extraWords + 1) * 4; in getInfoFromEHABISection() 1602 // | | LSDA | | <-- lsda in getInfoFromEHABISection() 1611 lsda = reinterpret_cast<uintptr_t>(UnwindData + NDataWords); in getInfoFromEHABISection() 1618 _info.lsda = lsda; in getInfoFromEHABISection() 1638 _info.lsda = fdeInfo.lsda; in getInfoFromFdeCie() [all …]
|
H A D | UnwindLevel1.c | 138 ", func=%s, lsda=0x%" PRIxPTR ", personality=0x%" PRIxPTR "", in unwind_phase1() 140 frameInfo.lsda, frameInfo.handler); in unwind_phase1() 250 ", func=%s, sp=0x%" PRIxPTR ", lsda=0x%" PRIxPTR in unwind_phase2() 253 functionName, sp, frameInfo.lsda, in unwind_phase2() 368 ", func=%s, lsda=0x%" PRIxPTR ", personality=0x%" PRIxPTR, in unwind_phase2_forced() 370 frameInfo.lsda, frameInfo.handler); in unwind_phase2_forced() 522 /// Called by personality handler during phase 2 to get LSDA for current frame. 529 result = (uintptr_t)frameInfo.lsda; in _Unwind_GetLanguageSpecificData() 536 _LIBUNWIND_DEBUG_LOG("lsda at 0x%" PRIxPTR " does not start with 0xFF", in _Unwind_GetLanguageSpecificData()
|
H A D | DwarfParser.hpp | 65 pint_t lsda; member 205 fdeInfo->lsda = 0; in decodeFDE() 211 // Peek at value (without indirection). Zero means no LSDA. in decodeFDE() 215 // Reset pointer and re-parse LSDA address. in decodeFDE() 217 fdeInfo->lsda = in decodeFDE() 274 fdeInfo->lsda = 0; in findFDE() 280 // Peek at value (without indirection). Zero means no LSDA. in findFDE() 284 // Reset pointer and re-parse LSDA address. in findFDE() 286 fdeInfo->lsda = addressSpace in findFDE()
|
H A D | Unwind-EHABI.cpp | 178 const char *lsda = in unwindOneFrame() local 184 ProcessDescriptors(state, ucbp, context, format, lsda, in unwindOneFrame() 501 "lsda=0x%" PRIxPTR ", personality=0x%" PRIxPTR, in unwind_phase1() 504 frameInfo.lsda, frameInfo.handler); in unwind_phase1() 620 "lsda=0x%" PRIxPTR ", personality=0x%" PRIxPTR "", in unwind_phase2() 622 functionName, sp, frameInfo.lsda, in unwind_phase2() 730 ", func=%s, lsda=0x%" PRIxPTR ", personality=0x%" PRIxPTR, in unwind_phase2_forced() 732 frameInfo.lsda, frameInfo.handler); in unwind_phase2_forced() 874 /// Called by personality handler during phase 2 to get LSDA for current frame. 881 result = (uintptr_t)frameInfo.lsda; in _Unwind_GetLanguageSpecificData()
|
H A D | Unwind-sjlj.c | 27 /// function also sets the personality and lsda fields of the block. 55 uintptr_t lsda; // arm offset=28 member 406 /// Called by personality handler during phase 2 to get LSDA for current frame. 412 (void *)context, ufc->lsda); in _Unwind_GetLanguageSpecificData() 413 return ufc->lsda; in _Unwind_GetLanguageSpecificData()
|
H A D | Unwind-seh.cpp | 268 ", func=%s, lsda=0x%" PRIxPTR ", personality=0x%" PRIxPTR, in unwind_phase2_forced() 270 frameInfo.lsda, frameInfo.handler); in unwind_phase2_forced() 436 /// Called by personality handler during phase 2 to get LSDA for current frame.
|
/freebsd/contrib/llvm-project/lldb/include/lldb/Symbol/ |
H A D | CompactUnwindInfo.h | 58 uint32_t lsda_array_start = 0; // The offset (inside unwind_info sect) LSDA 61 0; // The offset to the LSDA array for the NEXT index 78 // function -- the encoding bits and possibly the LSDA/personality function. 81 Address lsda_address; // the address of the LSDA data for this function
|
/freebsd/contrib/llvm-project/llvm/lib/Target/X86/ |
H A D | X86WinEHState.cpp | 147 // available_externally functions. The handler needs to reference the LSDA, in runOnFunction() 321 // ScopeTable = llvm.x86.seh.lsda(F) in emitExceptionRegistrationRecord() 322 Value *LSDA = emitEHLSDA(Builder, F); in emitExceptionRegistrationRecord() 323 LSDA = Builder.CreatePtrToInt(LSDA, Int32Ty); in emitExceptionRegistrationRecord() 329 LSDA = Builder.CreateXor(LSDA, Val); in emitExceptionRegistrationRecord() 331 Builder.CreateStore(LSDA, Builder.CreateStructGEP(RegNodeTy, RegNode, 3)); in emitExceptionRegistrationRecord() 376 /// Generate a thunk that puts the LSDA of ParentFunc in EAX and then calls in emitEHLSDA() 381 /// movl $lsda, 324 Value *LSDA = emitEHLSDA(Builder, F); emitExceptionRegistrationRecord() local 407 Value *LSDA = emitEHLSDA(Builder, ParentFunc); generateLSDAInEAXThunk() local [all...] |
/freebsd/contrib/llvm-project/lld/ELF/ |
H A D | MarkLive.cpp | 113 // piece. The relocation points to the described function or to a LSDA. We in resolveReloc() 114 // only need to keep the LSDA live, so ignore anything that points to in resolveReloc() 115 // executable sections. If the LSDA is in a section group or has the in resolveReloc() 117 // associated text section is live, the LSDA will be retained due to section in resolveReloc() 119 // discarded, marking the LSDA will unnecessarily retain the text section. in resolveReloc() 137 // * FDEs can refer to a LSDA 246 // all of them. We also want to preserve personality routines and LSDA in run()
|
/freebsd/contrib/llvm-project/libunwind/include/mach-o/ |
H A D | compact_unwind_encoding.h | 57 // 1-bit: has lsda 192 // 1-bit: has lsda 274 // 1-bit: has lsda 350 // lsda or zero if no LSDA data
|
/freebsd/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/ |
H A D | EHFrameSupport.h | 36 /// second to PC-begin, third (if present) to LSDA. 67 /// If this is an FDE record, returns the Edge pointing at the LSDA, if any.
|
/freebsd/contrib/llvm-project/llvm/lib/MC/ |
H A D | MCDwarf.cpp | 1501 // range-start range-length compact-unwind-enc personality-func lsda in EmitCompactUnwind() 1527 // The encoding needs to know we have an LSDA. in EmitCompactUnwind() 1528 if (!DwarfEHFrameOnly && Frame.Lsda) in EmitCompactUnwind() 1552 // LSDA in EmitCompactUnwind() 1554 if (!DwarfEHFrameOnly && Frame.Lsda) in EmitCompactUnwind() 1555 Streamer.emitSymbolValue(Frame.Lsda, Size); in EmitCompactUnwind() 1557 Streamer.emitIntValue(0, Size); // No LSDA in EmitCompactUnwind() 1613 if (Frame.Lsda) in EmitCIE() 1663 if (Frame.Lsda) in EmitCIE() 1678 if (Frame.Lsda) in EmitCIE() [all …]
|
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | TargetLoweringObjectFileImpl.h | 298 /// For functions, this will return the LSDA section. If option 300 /// function name appended to .gcc_except_table as a suffix of the LSDA
|
/freebsd/sys/contrib/device-tree/src/arm/nvidia/ |
H A D | tegra20-trimslice.dts | 146 "lsda", "lsdi", "lspi", "lvp0", "lvp1", 237 "lpw1", "lsc1", "lsck", "lsda", "lsdi",
|