diff options
Diffstat (limited to 'llvm/lib/MC/MCDisassembler/MCDisassembler.cpp')
| -rw-r--r-- | llvm/lib/MC/MCDisassembler/MCDisassembler.cpp | 46 | 
1 files changed, 46 insertions, 0 deletions
diff --git a/llvm/lib/MC/MCDisassembler/MCDisassembler.cpp b/llvm/lib/MC/MCDisassembler/MCDisassembler.cpp new file mode 100644 index 000000000000..063f7e706024 --- /dev/null +++ b/llvm/lib/MC/MCDisassembler/MCDisassembler.cpp @@ -0,0 +1,46 @@ +//===- MCDisassembler.cpp - Disassembler interface ------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "llvm/MC/MCDisassembler/MCDisassembler.h" +#include "llvm/ADT/ArrayRef.h" +#include "llvm/ADT/StringRef.h" +#include "llvm/Support/raw_ostream.h" +#include <algorithm> + +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 { +  Size = 0; +  return MCDisassembler::Success; +} + +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 false; +} + +void MCDisassembler::tryAddingPcLoadReferenceComment(int64_t Value, +                                                     uint64_t Address) const { +  raw_ostream &cStream = CommentStream ? *CommentStream : nulls(); +  if (Symbolizer) +    Symbolizer->tryAddingPcLoadReferenceComment(cStream, Value, Address); +} + +void MCDisassembler::setSymbolizer(std::unique_ptr<MCSymbolizer> Symzer) { +  Symbolizer = std::move(Symzer); +}  | 
