Home | History | Annotate | Download | only in MC

Lines Matching refs:streamer

405 /// Utility function to emit the encoding to a streamer.
948 static int getDataAlignmentFactor(MCStreamer &streamer) {
949 MCContext &context = streamer.getContext();
958 static unsigned getSizeForEncoding(MCStreamer &streamer,
960 MCContext &context = streamer.getContext();
979 static void emitFDESymbol(MCObjectStreamer &streamer, const MCSymbol &symbol,
981 MCContext &context = streamer.getContext();
985 streamer);
986 unsigned size = getSizeForEncoding(streamer, symbolEncoding);
988 emitAbsValue(streamer, v, size);
990 streamer.EmitValue(v, size);
993 static void EmitPersonality(MCStreamer &streamer, const MCSymbol &symbol,
995 MCContext &context = streamer.getContext();
999 streamer);
1000 unsigned size = getSizeForEncoding(streamer, symbolEncoding);
1001 streamer.EmitValue(v, size);
1009 MCObjectStreamer &Streamer;
1012 FrameEmitterImpl(bool IsEH, MCObjectStreamer &Streamer)
1013 : IsEH(IsEH), Streamer(Streamer) {}
1031 static void emitEncodingByte(MCObjectStreamer &Streamer, unsigned Encoding) {
1032 Streamer.EmitIntValue(Encoding, 1);
1036 int dataAlignmentFactor = getDataAlignmentFactor(Streamer);
1037 auto *MRI = Streamer.getContext().getRegisterInfo();
1047 Streamer.EmitIntValue(dwarf::DW_CFA_register, 1);
1048 Streamer.EmitULEB128IntValue(Reg1);
1049 Streamer.EmitULEB128IntValue(Reg2);
1053 Streamer.EmitIntValue(dwarf::DW_CFA_GNU_window_save, 1);
1058 Streamer.EmitIntValue(dwarf::DW_CFA_undefined, 1);
1059 Streamer.EmitULEB128IntValue(Reg);
1067 Streamer.EmitIntValue(dwarf::DW_CFA_def_cfa_offset, 1);
1074 Streamer.EmitULEB128IntValue(CFAOffset);
1082 Streamer.EmitIntValue(dwarf::DW_CFA_def_cfa, 1);
1083 Streamer.EmitULEB128IntValue(Reg);
1085 Streamer.EmitULEB128IntValue(CFAOffset);
1094 Streamer.EmitIntValue(dwarf::DW_CFA_def_cfa_register, 1);
1095 Streamer.EmitULEB128IntValue(Reg);
1115 Streamer.EmitIntValue(dwarf::DW_CFA_offset_extended_sf, 1);
1116 Streamer.EmitULEB128IntValue(Reg);
1117 Streamer.EmitSLEB128IntValue(Offset);
1119 Streamer.EmitIntValue(dwarf::DW_CFA_offset + Reg, 1);
1120 Streamer.EmitULEB128IntValue(Offset);
1122 Streamer.EmitIntValue(dwarf::DW_CFA_offset_extended, 1);
1123 Streamer.EmitULEB128IntValue(Reg);
1124 Streamer.EmitULEB128IntValue(Offset);
1129 Streamer.EmitIntValue(dwarf::DW_CFA_remember_state, 1);
1132 Streamer.EmitIntValue(dwarf::DW_CFA_restore_state, 1);
1136 Streamer.EmitIntValue(dwarf::DW_CFA_same_value, 1);
1137 Streamer.EmitULEB128IntValue(Reg);
1144 Streamer.EmitIntValue(dwarf::DW_CFA_restore | Reg, 1);
1148 Streamer.EmitIntValue(dwarf::DW_CFA_GNU_args_size, 1);
1149 Streamer.EmitULEB128IntValue(Instr.getOffset());
1153 Streamer.EmitBytes(Instr.getValues());
1171 Streamer.EmitDwarfAdvanceFrameAddr(BaseLabel, ThisSym);
1182 MCContext &Context = Streamer.getContext();
1217 unsigned Size = getSizeForEncoding(Streamer, FDEEncoding);
1218 Streamer.EmitSymbolValue(Frame.Begin, Size);
1221 const MCExpr *Range = MakeStartMinusEndExpr(Streamer, *Frame.Begin,
1223 emitAbsValue(Streamer, Range, 4);
1226 Size = getSizeForEncoding(Streamer, dwarf::DW_EH_PE_udata4);
1227 Streamer.EmitIntValue(Encoding, Size);
1230 Size = getSizeForEncoding(Streamer, dwarf::DW_EH_PE_absptr);
1232 Streamer.EmitSymbolValue(Frame.Personality, Size);
1234 Streamer.EmitIntValue(0, Size); // No personality fn
1237 Size = getSizeForEncoding(Streamer, Frame.LsdaEncoding);
1239 Streamer.EmitSymbolValue(Frame.Lsda, Size);
1241 Streamer.EmitIntValue(0, Size); // No LSDA
1265 MCContext &context = Streamer.getContext();
1270 Streamer.EmitLabel(sectionStart);
1276 MakeStartMinusEndExpr(Streamer, *sectionStart, *sectionEnd, 4);
1277 emitAbsValue(Streamer, Length, 4);
1281 Streamer.EmitIntValue(CIE_ID, 4);
1285 Streamer.EmitIntValue(CIEVersion, 1);
1298 Streamer.EmitBytes(Augmentation);
1300 Streamer.EmitIntValue(0, 1);
1304 Streamer.EmitIntValue(context.getAsmInfo()->getPointerSize(), 1);
1307 Streamer.EmitIntValue(0, 1);
1311 Streamer.EmitULEB128IntValue(context.getAsmInfo()->getMinInstAlignment());
1314 Streamer.EmitSLEB128IntValue(getDataAlignmentFactor(Streamer));
1320 Streamer.EmitIntValue(MRI->getDwarfRegNum(MRI->getRARegister(), IsEH), 1);
1322 Streamer.EmitULEB128IntValue(
1334 augmentationLength += getSizeForEncoding(Streamer, personalityEncoding);
1341 Streamer.EmitULEB128IntValue(augmentationLength);
1346 emitEncodingByte(Streamer, personalityEncoding);
1348 EmitPersonality(Streamer, *personality, personalityEncoding);
1352 emitEncodingByte(Streamer, lsdaEncoding);
1355 emitEncodingByte(Streamer
1370 Streamer.EmitValueToAlignment(IsEH ? 4 : MAI->getPointerSize());
1372 Streamer.EmitLabel(sectionEnd);
1380 MCContext &context = Streamer.getContext();
1388 const MCExpr *Length = MakeStartMinusEndExpr(Streamer, *fdeStart, *fdeEnd, 0);
1389 emitAbsValue(Streamer, Length, 4);
1391 Streamer.EmitLabel(fdeStart);
1397 MakeStartMinusEndExpr(Streamer, cieStart, *fdeStart, 0);
1398 emitAbsValue(Streamer, offset, 4);
1401 MakeStartMinusEndExpr(Streamer, SectionStart, cieStart, 0);
1402 emitAbsValue(Streamer, offset, 4);
1404 Streamer.EmitSymbolValue(&cieStart, 4);
1410 unsigned PCSize = getSizeForEncoding(Streamer, PCEncoding);
1411 emitFDESymbol(Streamer, *frame.Begin, PCEncoding, IsEH);
1415 MakeStartMinusEndExpr(Streamer, *frame.Begin, *frame.End, 0);
1416 emitAbsValue(Streamer, Range, PCSize);
1423 augmentationLength += getSizeForEncoding(Streamer, frame.LsdaEncoding);
1425 Streamer.EmitULEB128IntValue(augmentationLength);
1429 emitFDESymbol(Streamer, *frame.Lsda, frame.LsdaEncoding, true);
1440 Streamer.EmitValueToAlignment(Align);
1442 Streamer.EmitLabel(fdeEnd);
1486 void MCDwarfFrameEmitter::Emit(MCObjectStreamer &Streamer, MCAsmBackend *MAB,
1488 Streamer.generateCompactUnwindEncodings(MAB);
1490 MCContext &Context = Streamer.getContext();
1492 FrameEmitterImpl Emitter(IsEH, Streamer);
1493 ArrayRef<MCDwarfFrameInfo> FrameArray = Streamer.getDwarfFrameInfos();
1502 Streamer.SwitchSection(MOFI->getCompactUnwindSection());
1503 Streamer.EmitValueToAlignment(Context.getAsmInfo()->getPointerSize());
1519 Streamer.SwitchSection(&Section);
1521 Streamer.EmitLabel(SectionStart);
1548 void MCDwarfFrameEmitter::EmitAdvanceLoc(MCObjectStreamer &Streamer,
1550 MCContext &Context = Streamer.getContext();
1554 Streamer.EmitBytes(OS.str());