• Home
  • Raw
  • Download

Lines Matching refs:MCOS

68 void MCLineEntry::Make(MCStreamer *MCOS, const MCSection *Section) {  in Make()  argument
69 if (!MCOS->getContext().getDwarfLocSeen()) in Make()
73 MCSymbol *LineSym = MCOS->getContext().CreateTempSymbol(); in Make()
75 MCOS->EmitLabel(LineSym); in Make()
78 const MCDwarfLoc &DwarfLoc = MCOS->getContext().getCurrentDwarfLoc(); in Make()
84 MCOS->getContext().ClearDwarfLocSeen(); in Make()
89 MCOS->getContext().getMCLineSections(); in Make()
97 MCOS->getContext().addMCLineSection(Section, LineSection); in Make()
107 static inline const MCExpr *MakeStartMinusEndExpr(const MCStreamer &MCOS, in MakeStartMinusEndExpr() argument
113 MCSymbolRefExpr::Create(&End, Variant, MCOS.getContext()); in MakeStartMinusEndExpr()
115 MCSymbolRefExpr::Create(&Start, Variant, MCOS.getContext()); in MakeStartMinusEndExpr()
117 MCBinaryExpr::Create(MCBinaryExpr::Sub, Res, RHS, MCOS.getContext()); in MakeStartMinusEndExpr()
119 MCConstantExpr::Create(IntVal, MCOS.getContext()); in MakeStartMinusEndExpr()
121 MCBinaryExpr::Create(MCBinaryExpr::Sub, Res1, Res2, MCOS.getContext()); in MakeStartMinusEndExpr()
129 static inline void EmitDwarfLineTable(MCStreamer *MCOS, in EmitDwarfLineTable() argument
146 MCOS->EmitIntValue(dwarf::DW_LNS_set_file, 1); in EmitDwarfLineTable()
147 MCOS->EmitULEB128IntValue(FileNum); in EmitDwarfLineTable()
151 MCOS->EmitIntValue(dwarf::DW_LNS_set_column, 1); in EmitDwarfLineTable()
152 MCOS->EmitULEB128IntValue(Column); in EmitDwarfLineTable()
156 MCOS->EmitIntValue(dwarf::DW_LNS_set_isa, 1); in EmitDwarfLineTable()
157 MCOS->EmitULEB128IntValue(Isa); in EmitDwarfLineTable()
161 MCOS->EmitIntValue(dwarf::DW_LNS_negate_stmt, 1); in EmitDwarfLineTable()
164 MCOS->EmitIntValue(dwarf::DW_LNS_set_basic_block, 1); in EmitDwarfLineTable()
166 MCOS->EmitIntValue(dwarf::DW_LNS_set_prologue_end, 1); in EmitDwarfLineTable()
168 MCOS->EmitIntValue(dwarf::DW_LNS_set_epilogue_begin, 1); in EmitDwarfLineTable()
176 const MCAsmInfo &asmInfo = MCOS->getContext().getAsmInfo(); in EmitDwarfLineTable()
177 MCOS->EmitDwarfAdvanceLineAddr(LineDelta, LastLabel, Label, in EmitDwarfLineTable()
191 MCOS->SwitchSection(Section); in EmitDwarfLineTable()
193 MCContext &context = MCOS->getContext(); in EmitDwarfLineTable()
197 MCOS->EmitLabel(SectionEnd); in EmitDwarfLineTable()
200 MCOS->SwitchSection(context.getObjectFileInfo()->getDwarfLineSection()); in EmitDwarfLineTable()
202 const MCAsmInfo &asmInfo = MCOS->getContext().getAsmInfo(); in EmitDwarfLineTable()
203 MCOS->EmitDwarfAdvanceLineAddr(INT64_MAX, LastLabel, SectionEnd, in EmitDwarfLineTable()
210 void MCDwarfFileTable::Emit(MCStreamer *MCOS) { in Emit() argument
211 MCContext &context = MCOS->getContext(); in Emit()
213 MCOS->SwitchSection(context.getObjectFileInfo()->getDwarfLineSection()); in Emit()
218 MCOS->EmitLabel(LineStartSym); in Emit()
225 MCOS->EmitAbsValue(MakeStartMinusEndExpr(*MCOS, *LineStartSym, *LineEndSym,4), in Emit()
229 MCOS->EmitIntValue(2, 2); in Emit()
238 MCOS->EmitAbsValue(MakeStartMinusEndExpr(*MCOS, *LineStartSym, *ProEndSym, in Emit()
243 MCOS->EmitIntValue(DWARF2_LINE_MIN_INSN_LENGTH, 1); in Emit()
244 MCOS->EmitIntValue(DWARF2_LINE_DEFAULT_IS_STMT, 1); in Emit()
245 MCOS->EmitIntValue(DWARF2_LINE_BASE, 1); in Emit()
246 MCOS->EmitIntValue(DWARF2_LINE_RANGE, 1); in Emit()
247 MCOS->EmitIntValue(DWARF2_LINE_OPCODE_BASE, 1); in Emit()
250 MCOS->EmitIntValue(0, 1); // length of DW_LNS_copy in Emit()
251 MCOS->EmitIntValue(1, 1); // length of DW_LNS_advance_pc in Emit()
252 MCOS->EmitIntValue(1, 1); // length of DW_LNS_advance_line in Emit()
253 MCOS->EmitIntValue(1, 1); // length of DW_LNS_set_file in Emit()
254 MCOS->EmitIntValue(1, 1); // length of DW_LNS_set_column in Emit()
255 MCOS->EmitIntValue(0, 1); // length of DW_LNS_negate_stmt in Emit()
256 MCOS->EmitIntValue(0, 1); // length of DW_LNS_set_basic_block in Emit()
257 MCOS->EmitIntValue(0, 1); // length of DW_LNS_const_add_pc in Emit()
258 MCOS->EmitIntValue(1, 1); // length of DW_LNS_fixed_advance_pc in Emit()
259 MCOS->EmitIntValue(0, 1); // length of DW_LNS_set_prologue_end in Emit()
260 MCOS->EmitIntValue(0, 1); // length of DW_LNS_set_epilogue_begin in Emit()
261 MCOS->EmitIntValue(1, 1); // DW_LNS_set_isa in Emit()
269 MCOS->EmitBytes(MCDwarfDirs[i], 0); // the DirectoryName in Emit()
270 MCOS->EmitBytes(StringRef("\0", 1), 0); // the null term. of the string in Emit()
272 MCOS->EmitIntValue(0, 1); // Terminate the directory list in Emit()
276 MCOS->getContext().getMCDwarfFiles(); in Emit()
278 MCOS->EmitBytes(MCDwarfFiles[i]->getName(), 0); // FileName in Emit()
279 MCOS->EmitBytes(StringRef("\0", 1), 0); // the null term. of the string in Emit()
281 MCOS->EmitULEB128IntValue(MCDwarfFiles[i]->getDirIndex()); in Emit()
282 MCOS->EmitIntValue(0, 1); // last modification timestamp (always 0) in Emit()
283 MCOS->EmitIntValue(0, 1); // filesize (always 0) in Emit()
285 MCOS->EmitIntValue(0, 1); // Terminate the file list in Emit()
289 MCOS->EmitLabel(ProEndSym); in Emit()
293 MCOS->getContext().getMCLineSections(); in Emit()
295 MCOS->getContext().getMCLineSectionOrder(); in Emit()
301 EmitDwarfLineTable(MCOS, Sec, Line); in Emit()
308 if (MCOS->getContext().getAsmInfo().getLinkerRequiresNonEmptyDwarfLines() in Emit()
317 MCDwarfLineAddr::Emit(MCOS, INT64_MAX, 0); in Emit()
322 MCOS->EmitLabel(LineEndSym); in Emit()
335 void MCDwarfLineAddr::Emit(MCStreamer *MCOS, int64_t LineDelta, in Emit() argument
340 MCOS->EmitBytes(OS.str(), /*AddrSpace=*/0); in Emit()