diff options
Diffstat (limited to 'llvm/lib/MC/MCDisassembler')
-rw-r--r-- | llvm/lib/MC/MCDisassembler/Disassembler.cpp | 11 | ||||
-rw-r--r-- | llvm/lib/MC/MCDisassembler/MCDisassembler.cpp | 15 |
2 files changed, 14 insertions, 12 deletions
diff --git a/llvm/lib/MC/MCDisassembler/Disassembler.cpp b/llvm/lib/MC/MCDisassembler/Disassembler.cpp index 21bdc2eaea3e4..ff56695e8cc46 100644 --- a/llvm/lib/MC/MCDisassembler/Disassembler.cpp +++ b/llvm/lib/MC/MCDisassembler/Disassembler.cpp @@ -24,6 +24,7 @@ #include "llvm/MC/MCRegisterInfo.h" #include "llvm/MC/MCSchedule.h" #include "llvm/MC/MCSubtargetInfo.h" +#include "llvm/MC/MCTargetOptions.h" #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/FormattedStream.h" #include "llvm/Support/TargetRegistry.h" @@ -56,8 +57,10 @@ LLVMCreateDisasmCPUFeatures(const char *TT, const char *CPU, if (!MRI) return nullptr; + MCTargetOptions MCOptions; // Get the assembler info needed to setup the MCContext. - std::unique_ptr<const MCAsmInfo> MAI(TheTarget->createMCAsmInfo(*MRI, TT)); + std::unique_ptr<const MCAsmInfo> MAI( + TheTarget->createMCAsmInfo(*MRI, TT, MCOptions)); if (!MAI) return nullptr; @@ -260,8 +263,7 @@ size_t LLVMDisasmInstruction(LLVMDisasmContextRef DCR, uint8_t *Bytes, MCDisassembler::DecodeStatus S; SmallVector<char, 64> InsnStr; raw_svector_ostream Annotations(InsnStr); - S = DisAsm->getInstruction(Inst, Size, Data, PC, - /*REMOVE*/ nulls(), Annotations); + S = DisAsm->getInstruction(Inst, Size, Data, PC, Annotations); switch (S) { case MCDisassembler::Fail: case MCDisassembler::SoftFail: @@ -274,7 +276,8 @@ size_t LLVMDisasmInstruction(LLVMDisasmContextRef DCR, uint8_t *Bytes, SmallVector<char, 64> InsnStr; raw_svector_ostream OS(InsnStr); formatted_raw_ostream FormattedOS(OS); - IP->printInst(&Inst, FormattedOS, AnnotationsStr, *DC->getSubtargetInfo()); + IP->printInst(&Inst, PC, AnnotationsStr, *DC->getSubtargetInfo(), + FormattedOS); if (DC->getOptions() & LLVMDisassembler_Option_PrintLatency) emitLatency(DC, Inst); diff --git a/llvm/lib/MC/MCDisassembler/MCDisassembler.cpp b/llvm/lib/MC/MCDisassembler/MCDisassembler.cpp index 063f7e706024b..373916fbed785 100644 --- a/llvm/lib/MC/MCDisassembler/MCDisassembler.cpp +++ b/llvm/lib/MC/MCDisassembler/MCDisassembler.cpp @@ -16,9 +16,10 @@ using namespace llvm; MCDisassembler::~MCDisassembler() = default; -MCDisassembler::DecodeStatus MCDisassembler::onSymbolStart( - StringRef Name, uint64_t &Size, ArrayRef<uint8_t> Bytes, uint64_t Address, - raw_ostream &VStream, raw_ostream &CStream) const { +MCDisassembler::DecodeStatus +MCDisassembler::onSymbolStart(StringRef Name, uint64_t &Size, + ArrayRef<uint8_t> Bytes, uint64_t Address, + raw_ostream &CStream) const { Size = 0; return MCDisassembler::Success; } @@ -27,18 +28,16 @@ bool MCDisassembler::tryAddingSymbolicOperand(MCInst &Inst, int64_t Value, uint64_t Address, bool IsBranch, uint64_t Offset, uint64_t InstSize) const { - raw_ostream &cStream = CommentStream ? *CommentStream : nulls(); if (Symbolizer) - return Symbolizer->tryAddingSymbolicOperand(Inst, cStream, Value, Address, - IsBranch, Offset, InstSize); + return Symbolizer->tryAddingSymbolicOperand( + Inst, *CommentStream, Value, Address, IsBranch, Offset, InstSize); return false; } void MCDisassembler::tryAddingPcLoadReferenceComment(int64_t Value, uint64_t Address) const { - raw_ostream &cStream = CommentStream ? *CommentStream : nulls(); if (Symbolizer) - Symbolizer->tryAddingPcLoadReferenceComment(cStream, Value, Address); + Symbolizer->tryAddingPcLoadReferenceComment(*CommentStream, Value, Address); } void MCDisassembler::setSymbolizer(std::unique_ptr<MCSymbolizer> Symzer) { |