Lines Matching full:asm
37 EHStreamer::EHStreamer(AsmPrinter *A) : Asm(A), MMI(Asm->MMI) {} in EHStreamer()
79 const std::vector<unsigned> &FilterIds = Asm->MF->getFilterIds(); in computeActionsTable()
239 MCSymbol *LastLabel = Asm->getFunctionBegin(); in computeCallSiteTable()
248 bool IsSJLJ = Asm->MAI->getExceptionHandlingType() == ExceptionHandling::SjLj; in computeCallSiteTable()
251 for (const auto &MBB : *Asm->MF) { in computeCallSiteTable()
252 if (&MBB == &Asm->MF->front() || MBB.isBeginSection()) { in computeCallSiteTable()
256 {Asm->MBBSectionRanges[MBB.getSectionID()].BeginLabel, in computeCallSiteTable()
257 Asm->MBBSectionRanges[MBB.getSectionID()].EndLabel, in computeCallSiteTable()
258 Asm->getMBBExceptionSym(MBB), CallSites.size()}); in computeCallSiteTable()
295 (Asm->MAI->usesCFIForEH() || in computeCallSiteTable()
296 Asm->MAI->getExceptionHandlingType() == ExceptionHandling::AIX)) { in computeCallSiteTable()
332 unsigned SiteNo = Asm->MF->getCallSiteBeginLabel(BeginLabel); in computeCallSiteTable()
343 if (&MBB == &Asm->MF->back() || MBB.isEndSection()) { in computeCallSiteTable()
381 const MachineFunction *MF = Asm->MF; in emitExceptionTable()
419 bool IsSJLJ = Asm->MAI->getExceptionHandlingType() == ExceptionHandling::SjLj; in emitExceptionTable()
420 bool IsWasm = Asm->MAI->getExceptionHandlingType() == ExceptionHandling::Wasm; in emitExceptionTable()
421 bool HasLEB128Directives = Asm->MAI->hasLEB128Directives(); in emitExceptionTable()
424 Asm->getObjFileLowering().getCallSiteEncoding(); in emitExceptionTable()
428 MCSection *LSDASection = Asm->getObjFileLowering().getSectionForLSDA( in emitExceptionTable()
429 MF->getFunction(), *Asm->CurrentFnSym, Asm->TM); in emitExceptionTable()
464 TTypeEncoding = Asm->getObjFileLowering().getTTypeEncoding(); in emitExceptionTable()
471 Asm->OutStreamer->switchSection(LSDASection); in emitExceptionTable()
472 Asm->emitAlignment(Align(4)); in emitExceptionTable()
476 Asm->OutContext.getOrCreateSymbol(Twine("GCC_except_table")+ in emitExceptionTable()
477 Twine(Asm->getFunctionNumber())); in emitExceptionTable()
478 Asm->OutStreamer->emitLabel(GCCETSym); in emitExceptionTable()
479 MCSymbol *CstEndLabel = Asm->createTempSymbol( in emitExceptionTable()
484 TTBaseLabel = Asm->createTempSymbol("ttbase"); in emitExceptionTable()
486 const bool VerboseAsm = Asm->OutStreamer->isVerboseAsm(); in emitExceptionTable()
493 Asm->emitEncodingByte(TTypeEncoding, "@TType"); in emitExceptionTable()
499 MCSymbol *TTBaseRefLabel = Asm->createTempSymbol("ttbaseref"); in emitExceptionTable()
500 Asm->emitLabelDifferenceAsULEB128(TTBaseLabel, TTBaseRefLabel); in emitExceptionTable()
501 Asm->OutStreamer->emitLabel(TTBaseRefLabel); in emitExceptionTable()
508 MCSymbol *CstBeginLabel = Asm->createTempSymbol("cst_begin"); in emitExceptionTable()
509 Asm->emitEncodingByte(CallSiteEncoding, "Call site"); in emitExceptionTable()
510 Asm->emitLabelDifferenceAsULEB128(CstEndLabel, CstBeginLabel); in emitExceptionTable()
511 Asm->OutStreamer->emitLabel(CstBeginLabel); in emitExceptionTable()
539 Asm->emitEncodingByte(TTypeEncoding, "@TType"); in emitExceptionTable()
552 Asm->GetSizeOfEncodedValue(TTypeEncoding) * MF->getTypeInfos().size(); in emitExceptionTable()
579 Asm->OutStreamer->emitULEB128IntValue(LSDASizeWithAlign, in emitExceptionTable()
583 Asm->emitEncodingByte(CallSiteEncoding, "Call site"); in emitExceptionTable()
584 Asm->OutStreamer->emitULEB128IntValue(CallSiteTableSize); in emitExceptionTable()
589 Asm->OutStreamer->emitLabel(Asm->getMBBExceptionSym(Asm->MF->front())); in emitExceptionTable()
592 Asm->emitEncodingByte(dwarf::DW_EH_PE_omit, "@LPStart"); in emitExceptionTable()
602 Asm->OutStreamer->AddComment(">> Call Site " + Twine(idx) + " <<"); in emitExceptionTable()
603 Asm->OutStreamer->AddComment(" On exception at call site "+Twine(idx)); in emitExceptionTable()
605 Asm->emitULEB128(idx); in emitExceptionTable()
612 Asm->OutStreamer->AddComment(" Action: cleanup"); in emitExceptionTable()
614 Asm->OutStreamer->AddComment(" Action: " + in emitExceptionTable()
617 Asm->emitULEB128(S.Action); in emitExceptionTable()
619 Asm->OutStreamer->emitLabel(CstEndLabel); in emitExceptionTable()
672 Asm->emitAlignment(Align(4)); in emitExceptionTable()
674 Asm->OutStreamer->emitLabel(CSRange.ExceptionLabel); in emitExceptionTable()
681 Asm->emitEncodingByte(dwarf::DW_EH_PE_omit, "@LPStart"); in emitExceptionTable()
682 } else if (!Asm->isPositionIndependent()) { in emitExceptionTable()
686 Asm->emitEncodingByte(dwarf::DW_EH_PE_absptr, "@LPStart"); in emitExceptionTable()
687 Asm->OutStreamer->emitSymbolValue(LandingPadRange->FragmentBeginLabel, in emitExceptionTable()
688 Asm->MAI->getCodePointerSize()); in emitExceptionTable()
691 Asm->emitEncodingByte(dwarf::DW_EH_PE_pcrel, "@LPStart"); in emitExceptionTable()
692 MCContext &Context = Asm->OutStreamer->getContext(); in emitExceptionTable()
694 Asm->OutStreamer->emitLabel(Dot); in emitExceptionTable()
695 Asm->OutStreamer->emitValue( in emitExceptionTable()
700 Asm->MAI->getCodePointerSize()); in emitExceptionTable()
724 Asm->OutStreamer->AddComment(">> Call Site " + Twine(++Entry) + in emitExceptionTable()
726 Asm->emitCallSiteOffset(BeginLabel, EHFuncBeginSym, CallSiteEncoding); in emitExceptionTable()
728 Asm->OutStreamer->AddComment(Twine(" Call between ") + in emitExceptionTable()
731 Asm->emitCallSiteOffset(EndLabel, BeginLabel, CallSiteEncoding); in emitExceptionTable()
737 Asm->OutStreamer->AddComment(" has no landing pad"); in emitExceptionTable()
738 Asm->emitCallSiteValue(0, CallSiteEncoding); in emitExceptionTable()
741 Asm->OutStreamer->AddComment(Twine(" jumps to ") + in emitExceptionTable()
743 Asm->emitCallSiteOffset(S.LPad->LandingPadLabel, in emitExceptionTable()
753 Asm->OutStreamer->AddComment(" On action: cleanup"); in emitExceptionTable()
755 Asm->OutStreamer->AddComment(" On action: " + in emitExceptionTable()
758 Asm->emitULEB128(S.Action); in emitExceptionTable()
761 Asm->OutStreamer->emitLabel(CstEndLabel); in emitExceptionTable()
769 Asm->OutStreamer->AddComment(">> Action Record " + Twine(++Entry) + " <<"); in emitExceptionTable()
778 Asm->OutStreamer->AddComment(" Catch TypeInfo " + in emitExceptionTable()
781 Asm->OutStreamer->AddComment(" Filter TypeInfo " + in emitExceptionTable()
784 Asm->OutStreamer->AddComment(" Cleanup"); in emitExceptionTable()
786 Asm->emitSLEB128(Action.ValueForTypeID); in emitExceptionTable()
791 Asm->OutStreamer->AddComment(" No further actions"); in emitExceptionTable()
793 Asm->OutStreamer->AddComment(" Continue to action " + in emitExceptionTable()
797 Asm->emitSLEB128(Action.NextAction); in emitExceptionTable()
801 Asm->emitAlignment(Align(4)); in emitExceptionTable()
805 Asm->emitAlignment(Align(4)); in emitExceptionTable()
810 const MachineFunction *MF = Asm->MF; in emitTypeInfos()
814 const bool VerboseAsm = Asm->OutStreamer->isVerboseAsm(); in emitTypeInfos()
819 Asm->OutStreamer->AddComment(">> Catch TypeInfos <<"); in emitTypeInfos()
820 Asm->OutStreamer->addBlankLine(); in emitTypeInfos()
826 Asm->OutStreamer->AddComment("TypeInfo " + Twine(Entry--)); in emitTypeInfos()
827 Asm->emitTTypeReference(GV, TTypeEncoding); in emitTypeInfos()
830 Asm->OutStreamer->emitLabel(TTBaseLabel); in emitTypeInfos()
834 Asm->OutStreamer->AddComment(">> Filter TypeInfos <<"); in emitTypeInfos()
835 Asm->OutStreamer->addBlankLine(); in emitTypeInfos()
844 Asm->OutStreamer->AddComment("FilterInfo " + Twine(Entry)); in emitTypeInfos()
847 Asm->emitULEB128(TypeID); in emitTypeInfos()