Home
last modified time | relevance | path

Searched full:lsda (Results 1 – 25 of 77) sorted by relevance

1234

/freebsd/contrib/libcxxrt/
H A Ddwarf_eh.h341 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 Dexception.cc938 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 Dgcc_personality_v0.c217 // 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 DUnwindInfoSection.cpp106 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 DWasmEHPrepare.cpp30 // __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 DTargetLoweringObjectFileImpl.cpp966 // 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 DSjLjEHPrepare.cpp240 // 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 DAIXException.cpp27 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 DEHStreamer.cpp56 // 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 DDwarfException.h98 /// 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 DUnwind-wasm.c30 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 DUnwindCursor.hpp513 _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 DUnwindLevel1.c138 ", 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 DDwarfParser.hpp65 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 DUnwind-EHABI.cpp178 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 DUnwind-sjlj.c27 /// 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 DUnwind-seh.cpp268 ", 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 DCompactUnwindInfo.h58 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 DX86WinEHState.cpp147 // 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 DMarkLive.cpp113 // 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 Dcompact_unwind_encoding.h57 // 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 DEHFrameSupport.h36 /// 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 DMCDwarf.cpp1501 // 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 DTargetLoweringObjectFileImpl.h298 /// 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 Dtegra20-trimslice.dts146 "lsda", "lsdi", "lspi", "lvp0", "lvp1",
237 "lpw1", "lsc1", "lsck", "lsda", "lsdi",

1234