Home | History | Annotate | Download | only in AsmPrinter

Lines Matching refs:Asm

10 // This file contains support for writing DWARF exception info into asm files.
41 : Asm(A), MMI(Asm->MMI) {}
241 for (MachineFunction::const_iterator I = Asm->MF->begin(), E = Asm->MF->end();
271 if (SawPotentiallyThrowing && Asm->MAI->isExceptionHandlingDwarf()) {
293 if (PreviousIsInvoke && Asm->MAI->isExceptionHandlingDwarf()) {
303 if (Asm->MAI->isExceptionHandlingDwarf())
321 if (SawPotentiallyThrowing && Asm->MAI->isExceptionHandlingDwarf()) {
389 bool IsSJLJ = Asm->MAI->getExceptionHandlingType() == ExceptionHandling::SjLj;
410 const MCSection *LSDASection = Asm->getObjFileLowering().getLSDASection();
419 TypeFormatSize = Asm->getDataLayout().getPointerSize();
448 TTypeEncoding = Asm->getObjFileLowering().getTTypeEncoding();
449 TypeFormatSize = Asm->GetSizeOfEncodedValue(TTypeEncoding);
456 Asm->OutStreamer.SwitchSection(LSDASection);
457 Asm->EmitAlignment(2);
461 Asm->OutContext.GetOrCreateSymbol(Twine("GCC_except_table")+
462 Twine(Asm->getFunctionNumber()));
463 Asm->OutStreamer.EmitLabel(GCCETSym);
464 Asm->OutStreamer.EmitLabel(Asm->GetTempSymbol("exception",
465 Asm->getFunctionNumber()));
468 Asm->OutStreamer.EmitLabel(Asm->GetTempSymbol("_LSDA_",
469 Asm->getFunctionNumber()));
472 Asm->EmitEncodingByte(dwarf::DW_EH_PE_omit, "@LPStart");
473 Asm->EmitEncodingByte(TTypeEncoding, "@TType");
510 Asm->EmitULEB128(TTypeBaseOffset, "@TType base offset", SizeAlign);
514 bool VerboseAsm = Asm->OutStreamer.isVerboseAsm();
518 Asm->EmitEncodingByte(dwarf::DW_EH_PE_udata4, "Call site");
521 Asm->EmitULEB128(CallSiteTableLength, "Call site table length", SizeAlign);
532 Asm->OutStreamer.AddComment(">> Call Site " + Twine(idx) + " <<");
533 Asm->OutStreamer.AddComment(" On exception at call site "+Twine(idx));
535 Asm->EmitULEB128(idx);
542 Asm->OutStreamer.AddComment(" Action: cleanup");
544 Asm->OutStreamer.AddComment(" Action: " +
547 Asm->EmitULEB128(S.Action);
551 assert(Asm->MAI->isExceptionHandlingDwarf());
572 Asm->EmitEncodingByte(dwarf::DW_EH_PE_udata4, "Call site");
575 Asm->EmitULEB128(CallSiteTableLength, "Call site table length", SizeAlign);
583 Asm->GetTempSymbol("eh_func_begin", Asm->getFunctionNumber());
590 EndLabel = Asm->GetTempSymbol("eh_func_end", Asm->getFunctionNumber());
597 Asm->OutStreamer.AddComment(">> Call Site " + Twine(++Entry) + " <<");
598 Asm->EmitLabelDifference(BeginLabel, EHFuncBeginSym, 4);
600 Asm->OutStreamer.AddComment(Twine(" Call between ") +
603 Asm->EmitLabelDifference(EndLabel, BeginLabel, 4);
609 Asm->OutStreamer.AddComment(" has no landing pad");
610 Asm->OutStreamer.EmitIntValue(0, 4/*size*/);
613 Asm->OutStreamer.AddComment(Twine(" jumps to ") +
615 Asm->EmitLabelDifference(S.PadLabel, EHFuncBeginSym, 4);
623 Asm->OutStreamer.AddComment(" On action: cleanup");
625 Asm->OutStreamer.AddComment(" On action: " +
628 Asm->EmitULEB128(S.Action);
640 Asm->OutStreamer.AddComment(">> Action Record " + Twine(++Entry) + " <<");
649 Asm->OutStreamer.AddComment(" Catch TypeInfo " +
652 Asm->OutStreamer.AddComment(" Filter TypeInfo " +
655 Asm->OutStreamer.AddComment(" Cleanup");
657 Asm->EmitSLEB128(Action.ValueForTypeID);
665 Asm->OutStreamer.AddComment(" No further actions");
668 Asm->OutStreamer.AddComment(" Continue to action "+Twine(NextAction));
671 Asm->EmitSLEB128(Action.NextAction);
676 Asm->EmitAlignment(2);
683 bool VerboseAsm = Asm->OutStreamer.isVerboseAsm();
688 Asm->OutStreamer.AddComment(">> Catch TypeInfos <<");
689 Asm->OutStreamer.AddBlankLine();
697 Asm->OutStreamer.AddComment("TypeInfo " + Twine(Entry--));
698 Asm->EmitTTypeReference(GV, TTypeEncoding);
703 Asm->OutStreamer.AddComment(">> Filter TypeInfos <<");
704 Asm->OutStreamer.AddBlankLine();
713 Asm->OutStreamer.AddComment("FilterInfo " + Twine(Entry));
716 Asm->EmitULEB128(TypeID);