diff options
Diffstat (limited to 'lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp')
-rw-r--r-- | lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp | 31 |
1 files changed, 9 insertions, 22 deletions
diff --git a/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp b/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp index 691e269cb91f..f304bc50530f 100644 --- a/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp +++ b/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp @@ -25,6 +25,7 @@ #include "llvm/MC/MCExpr.h" #include "llvm/MC/MCInst.h" #include "llvm/MC/MCObjectStreamer.h" +#include "llvm/MC/MCObjectWriter.h" #include "llvm/MC/MCSection.h" #include "llvm/MC/MCSectionELF.h" #include "llvm/MC/MCStreamer.h" @@ -47,15 +48,15 @@ static cl::opt<unsigned> GPSize HexagonMCELFStreamer::HexagonMCELFStreamer( MCContext &Context, std::unique_ptr<MCAsmBackend> TAB, - raw_pwrite_stream &OS, std::unique_ptr<MCCodeEmitter> Emitter) - : MCELFStreamer(Context, std::move(TAB), OS, std::move(Emitter)), + std::unique_ptr<MCObjectWriter> OW, std::unique_ptr<MCCodeEmitter> Emitter) + : MCELFStreamer(Context, std::move(TAB), std::move(OW), std::move(Emitter)), MCII(createHexagonMCInstrInfo()) {} HexagonMCELFStreamer::HexagonMCELFStreamer( MCContext &Context, std::unique_ptr<MCAsmBackend> TAB, - raw_pwrite_stream &OS, std::unique_ptr<MCCodeEmitter> Emitter, + std::unique_ptr<MCObjectWriter> OW, std::unique_ptr<MCCodeEmitter> Emitter, MCAssembler *Assembler) - : MCELFStreamer(Context, std::move(TAB), OS, std::move(Emitter)), + : MCELFStreamer(Context, std::move(TAB), std::move(OW), std::move(Emitter)), MCII(createHexagonMCInstrInfo()) {} void HexagonMCELFStreamer::EmitInstruction(const MCInst &MCB, @@ -63,21 +64,6 @@ void HexagonMCELFStreamer::EmitInstruction(const MCInst &MCB, assert(MCB.getOpcode() == Hexagon::BUNDLE); assert(HexagonMCInstrInfo::bundleSize(MCB) <= HEXAGON_PACKET_SIZE); assert(HexagonMCInstrInfo::bundleSize(MCB) > 0); - bool Extended = false; - for (auto &I : HexagonMCInstrInfo::bundleInstructions(MCB)) { - MCInst *MCI = const_cast<MCInst *>(I.getInst()); - if (Extended) { - if (HexagonMCInstrInfo::isDuplex(*MCII, *MCI)) { - MCInst *SubInst = const_cast<MCInst *>(MCI->getOperand(1).getInst()); - HexagonMCInstrInfo::clampExtended(*MCII, getContext(), *SubInst); - } else { - HexagonMCInstrInfo::clampExtended(*MCII, getContext(), *MCI); - } - Extended = false; - } else { - Extended = HexagonMCInstrInfo::isImmext(*MCI); - } - } // At this point, MCB is a bundle // Iterate through the bundle and assign addends for the instructions @@ -124,7 +110,7 @@ void HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(MCSymbol *Symbol, MCSectionSubPair P = getCurrentSection(); SwitchSection(&Section); - if (ELFSymbol->isUndefined(false)) { + if (ELFSymbol->isUndefined()) { EmitValueToAlignment(ByteAlignment, 0, 1, 0); EmitLabel(Symbol); EmitZeros(Size); @@ -166,9 +152,10 @@ void HexagonMCELFStreamer::HexagonMCEmitLocalCommonSymbol(MCSymbol *Symbol, namespace llvm { MCStreamer *createHexagonELFStreamer(Triple const &TT, MCContext &Context, std::unique_ptr<MCAsmBackend> MAB, - raw_pwrite_stream &OS, + std::unique_ptr<MCObjectWriter> OW, std::unique_ptr<MCCodeEmitter> CE) { - return new HexagonMCELFStreamer(Context, std::move(MAB), OS, std::move(CE)); + return new HexagonMCELFStreamer(Context, std::move(MAB), std::move(OW), + std::move(CE)); } } // end namespace llvm |