Lines Matching refs:Asm

38 EHStreamer::EHStreamer(AsmPrinter *A) : Asm(A), MMI(Asm->MMI) {}  in EHStreamer()
80 const std::vector<unsigned> &FilterIds = Asm->MF->getFilterIds(); in computeActionsTable()
234 MCSymbol *LastLabel = Asm->getFunctionBegin(); in computeCallSiteTable()
243 bool IsSJLJ = Asm->MAI->getExceptionHandlingType() == ExceptionHandling::SjLj; in computeCallSiteTable()
246 for (const auto &MBB : *Asm->MF) { in computeCallSiteTable()
247 if (&MBB == &Asm->MF->front() || MBB.isBeginSection()) { in computeCallSiteTable()
251 {Asm->MBBSectionRanges[MBB.getSectionIDNum()].BeginLabel, in computeCallSiteTable()
252 Asm->MBBSectionRanges[MBB.getSectionIDNum()].EndLabel, in computeCallSiteTable()
253 Asm->getMBBExceptionSym(MBB), CallSites.size()}); in computeCallSiteTable()
290 (Asm->MAI->usesCFIForEH() || in computeCallSiteTable()
291 Asm->MAI->getExceptionHandlingType() == ExceptionHandling::AIX)) { in computeCallSiteTable()
327 unsigned SiteNo = Asm->MF->getCallSiteBeginLabel(BeginLabel); in computeCallSiteTable()
338 if (&MBB == &Asm->MF->back() || MBB.isEndSection()) { in computeCallSiteTable()
376 const MachineFunction *MF = Asm->MF; in emitExceptionTable()
408 bool IsSJLJ = Asm->MAI->getExceptionHandlingType() == ExceptionHandling::SjLj; in emitExceptionTable()
409 bool IsWasm = Asm->MAI->getExceptionHandlingType() == ExceptionHandling::Wasm; in emitExceptionTable()
410 bool HasLEB128Directives = Asm->MAI->hasLEB128Directives(); in emitExceptionTable()
413 Asm->getObjFileLowering().getCallSiteEncoding(); in emitExceptionTable()
417 MCSection *LSDASection = Asm->getObjFileLowering().getSectionForLSDA( in emitExceptionTable()
418 MF->getFunction(), *Asm->CurrentFnSym, Asm->TM); in emitExceptionTable()
453 TTypeEncoding = Asm->getObjFileLowering().getTTypeEncoding(); in emitExceptionTable()
460 Asm->OutStreamer->switchSection(LSDASection); in emitExceptionTable()
461 Asm->emitAlignment(Align(4)); in emitExceptionTable()
465 Asm->OutContext.getOrCreateSymbol(Twine("GCC_except_table")+ in emitExceptionTable()
466 Twine(Asm->getFunctionNumber())); in emitExceptionTable()
467 Asm->OutStreamer->emitLabel(GCCETSym); in emitExceptionTable()
468 MCSymbol *CstEndLabel = Asm->createTempSymbol( in emitExceptionTable()
473 TTBaseLabel = Asm->createTempSymbol("ttbase"); in emitExceptionTable()
475 const bool VerboseAsm = Asm->OutStreamer->isVerboseAsm(); in emitExceptionTable()
482 Asm->emitEncodingByte(TTypeEncoding, "@TType"); in emitExceptionTable()
488 MCSymbol *TTBaseRefLabel = Asm->createTempSymbol("ttbaseref"); in emitExceptionTable()
489 Asm->emitLabelDifferenceAsULEB128(TTBaseLabel, TTBaseRefLabel); in emitExceptionTable()
490 Asm->OutStreamer->emitLabel(TTBaseRefLabel); in emitExceptionTable()
497 MCSymbol *CstBeginLabel = Asm->createTempSymbol("cst_begin"); in emitExceptionTable()
498 Asm->emitEncodingByte(CallSiteEncoding, "Call site"); in emitExceptionTable()
499 Asm->emitLabelDifferenceAsULEB128(CstEndLabel, CstBeginLabel); in emitExceptionTable()
500 Asm->OutStreamer->emitLabel(CstBeginLabel); in emitExceptionTable()
528 Asm->emitEncodingByte(TTypeEncoding, "@TType"); in emitExceptionTable()
541 Asm->GetSizeOfEncodedValue(TTypeEncoding) * MF->getTypeInfos().size(); in emitExceptionTable()
568 Asm->OutStreamer->emitULEB128IntValue(LSDASizeWithAlign, in emitExceptionTable()
572 Asm->emitEncodingByte(CallSiteEncoding, "Call site"); in emitExceptionTable()
573 Asm->OutStreamer->emitULEB128IntValue(CallSiteTableSize); in emitExceptionTable()
578 Asm->OutStreamer->emitLabel(Asm->getMBBExceptionSym(Asm->MF->front())); in emitExceptionTable()
581 Asm->emitEncodingByte(dwarf::DW_EH_PE_omit, "@LPStart"); in emitExceptionTable()
591 Asm->OutStreamer->AddComment(">> Call Site " + Twine(idx) + " <<"); in emitExceptionTable()
592 Asm->OutStreamer->AddComment(" On exception at call site "+Twine(idx)); in emitExceptionTable()
594 Asm->emitULEB128(idx); in emitExceptionTable()
601 Asm->OutStreamer->AddComment(" Action: cleanup"); in emitExceptionTable()
603 Asm->OutStreamer->AddComment(" Action: " + in emitExceptionTable()
606 Asm->emitULEB128(S.Action); in emitExceptionTable()
608 Asm->OutStreamer->emitLabel(CstEndLabel); in emitExceptionTable()
661 Asm->emitAlignment(Align(4)); in emitExceptionTable()
663 Asm->OutStreamer->emitLabel(CSRange.ExceptionLabel); in emitExceptionTable()
669 Asm->emitEncodingByte(dwarf::DW_EH_PE_omit, "@LPStart"); in emitExceptionTable()
670 } else if (!Asm->isPositionIndependent()) { in emitExceptionTable()
674 Asm->emitEncodingByte(dwarf::DW_EH_PE_absptr, "@LPStart"); in emitExceptionTable()
675 Asm->OutStreamer->emitSymbolValue(LandingPadRange->FragmentBeginLabel, in emitExceptionTable()
676 Asm->MAI->getCodePointerSize()); in emitExceptionTable()
679 Asm->emitEncodingByte(dwarf::DW_EH_PE_pcrel, "@LPStart"); in emitExceptionTable()
680 MCContext &Context = Asm->OutStreamer->getContext(); in emitExceptionTable()
682 Asm->OutStreamer->emitLabel(Dot); in emitExceptionTable()
683 Asm->OutStreamer->emitValue( in emitExceptionTable()
688 Asm->MAI->getCodePointerSize()); in emitExceptionTable()
712 Asm->OutStreamer->AddComment(">> Call Site " + Twine(++Entry) + in emitExceptionTable()
714 Asm->emitCallSiteOffset(BeginLabel, EHFuncBeginSym, CallSiteEncoding); in emitExceptionTable()
716 Asm->OutStreamer->AddComment(Twine(" Call between ") + in emitExceptionTable()
719 Asm->emitCallSiteOffset(EndLabel, BeginLabel, CallSiteEncoding); in emitExceptionTable()
725 Asm->OutStreamer->AddComment(" has no landing pad"); in emitExceptionTable()
726 Asm->emitCallSiteValue(0, CallSiteEncoding); in emitExceptionTable()
729 Asm->OutStreamer->AddComment(Twine(" jumps to ") + in emitExceptionTable()
731 Asm->emitCallSiteOffset(S.LPad->LandingPadLabel, in emitExceptionTable()
741 Asm->OutStreamer->AddComment(" On action: cleanup"); in emitExceptionTable()
743 Asm->OutStreamer->AddComment(" On action: " + in emitExceptionTable()
746 Asm->emitULEB128(S.Action); in emitExceptionTable()
749 Asm->OutStreamer->emitLabel(CstEndLabel); in emitExceptionTable()
757 Asm->OutStreamer->AddComment(">> Action Record " + Twine(++Entry) + " <<"); in emitExceptionTable()
766 Asm->OutStreamer->AddComment(" Catch TypeInfo " + in emitExceptionTable()
769 Asm->OutStreamer->AddComment(" Filter TypeInfo " + in emitExceptionTable()
772 Asm->OutStreamer->AddComment(" Cleanup"); in emitExceptionTable()
774 Asm->emitSLEB128(Action.ValueForTypeID); in emitExceptionTable()
779 Asm->OutStreamer->AddComment(" No further actions"); in emitExceptionTable()
781 Asm->OutStreamer->AddComment(" Continue to action " + in emitExceptionTable()
785 Asm->emitSLEB128(Action.NextAction); in emitExceptionTable()
789 Asm->emitAlignment(Align(4)); in emitExceptionTable()
793 Asm->emitAlignment(Align(4)); in emitExceptionTable()
798 const MachineFunction *MF = Asm->MF; in emitTypeInfos()
802 const bool VerboseAsm = Asm->OutStreamer->isVerboseAsm(); in emitTypeInfos()
807 Asm->OutStreamer->AddComment(">> Catch TypeInfos <<"); in emitTypeInfos()
808 Asm->OutStreamer->addBlankLine(); in emitTypeInfos()
814 Asm->OutStreamer->AddComment("TypeInfo " + Twine(Entry--)); in emitTypeInfos()
815 Asm->emitTTypeReference(GV, TTypeEncoding); in emitTypeInfos()
818 Asm->OutStreamer->emitLabel(TTBaseLabel); in emitTypeInfos()
822 Asm->OutStreamer->AddComment(">> Filter TypeInfos <<"); in emitTypeInfos()
823 Asm->OutStreamer->addBlankLine(); in emitTypeInfos()
832 Asm->OutStreamer->AddComment("FilterInfo " + Twine(Entry)); in emitTypeInfos()
835 Asm->emitULEB128(TypeID); in emitTypeInfos()