| OLD | NEW |
| 1 //===- lib/MC/MCObjectStreamer.cpp - Object File MCStreamer Interface -----===// | 1 //===- lib/MC/MCObjectStreamer.cpp - Object File MCStreamer Interface -----===// |
| 2 // | 2 // |
| 3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
| 4 // | 4 // |
| 5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
| 6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
| 7 // | 7 // |
| 8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
| 9 | 9 |
| 10 #include "llvm/MC/MCObjectStreamer.h" | 10 #include "llvm/MC/MCObjectStreamer.h" |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 CurSectionData->getSubsectionInsertionPoint(unsigned(IntSubsection)); | 196 CurSectionData->getSubsectionInsertionPoint(unsigned(IntSubsection)); |
| 197 } | 197 } |
| 198 | 198 |
| 199 void MCObjectStreamer::EmitAssignment(MCSymbol *Symbol, const MCExpr *Value) { | 199 void MCObjectStreamer::EmitAssignment(MCSymbol *Symbol, const MCExpr *Value) { |
| 200 getAssembler().getOrCreateSymbolData(*Symbol); | 200 getAssembler().getOrCreateSymbolData(*Symbol); |
| 201 MCStreamer::EmitAssignment(Symbol, Value); | 201 MCStreamer::EmitAssignment(Symbol, Value); |
| 202 } | 202 } |
| 203 | 203 |
| 204 void MCObjectStreamer::EmitInstruction(const MCInst &Inst, | 204 void MCObjectStreamer::EmitInstruction(const MCInst &Inst, |
| 205 const MCSubtargetInfo &STI) { | 205 const MCSubtargetInfo &STI) { |
| 206 // @LOCALMOD-BEGIN |
| 207 if (getAssembler().isBundlingEnabled() && |
| 208 getAssembler().getBackend().CustomExpandInst(Inst, *this)) { |
| 209 return; |
| 210 } |
| 211 // @LOCALMOD-END |
| 212 |
| 206 MCStreamer::EmitInstruction(Inst, STI); | 213 MCStreamer::EmitInstruction(Inst, STI); |
| 207 | 214 |
| 208 MCSectionData *SD = getCurrentSectionData(); | 215 MCSectionData *SD = getCurrentSectionData(); |
| 209 SD->setHasInstructions(true); | 216 SD->setHasInstructions(true); |
| 210 | 217 |
| 211 // Now that a machine instruction has been assembled into this section, make | 218 // Now that a machine instruction has been assembled into this section, make |
| 212 // a line entry for any .loc directive that has been seen. | 219 // a line entry for any .loc directive that has been seen. |
| 213 MCLineEntry::Make(this, getCurrentSection().first); | 220 MCLineEntry::Make(this, getCurrentSection().first); |
| 214 | 221 |
| 215 // If this instruction doesn't need relaxation, just emit it as data. | 222 // If this instruction doesn't need relaxation, just emit it as data. |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 413 // If we are generating dwarf for assembly source files dump out the sections. | 420 // If we are generating dwarf for assembly source files dump out the sections. |
| 414 if (getContext().getGenDwarfForAssembly()) | 421 if (getContext().getGenDwarfForAssembly()) |
| 415 MCGenDwarfInfo::Emit(this); | 422 MCGenDwarfInfo::Emit(this); |
| 416 | 423 |
| 417 // Dump out the dwarf file & directory tables and line tables. | 424 // Dump out the dwarf file & directory tables and line tables. |
| 418 MCDwarfLineTable::Emit(this); | 425 MCDwarfLineTable::Emit(this); |
| 419 | 426 |
| 420 flushPendingLabels(nullptr); | 427 flushPendingLabels(nullptr); |
| 421 getAssembler().Finish(); | 428 getAssembler().Finish(); |
| 422 } | 429 } |
| OLD | NEW |