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 |