diff --git a/include/llvm/MC/MCDisassembler/MCDisassembler.h b/include/llvm/MC/MCDisassembler/MCDisassembler.h index deff5298983..10037cd66ef 100644 --- a/include/llvm/MC/MCDisassembler/MCDisassembler.h +++ b/include/llvm/MC/MCDisassembler/MCDisassembler.h @@ -135,7 +135,7 @@ public: /// Base implementation returns None. So all targets by default ignore to /// treat symbols separately. /// - /// \param Name - The name of the symbol. + /// \param Symbol - The symbol. /// \param Size - The number of bytes consumed. /// \param Address - The address, in the memory space of region, of the first /// byte of the symbol. @@ -150,10 +150,9 @@ public: /// done by buffering the output if needed. /// - None if the target doesn't want to handle the symbol /// separately. Value of Size is ignored in this case. - virtual Optional onSymbolStart(StringRef Name, uint64_t &Size, - ArrayRef Bytes, - uint64_t Address, - raw_ostream &CStream) const; + virtual Optional + onSymbolStart(SymbolInfoTy &Symbol, uint64_t &Size, ArrayRef Bytes, + uint64_t Address, raw_ostream &CStream) const; // TODO: // Implement similar hooks that can be used at other points during // disassembly. Something along the following lines: diff --git a/lib/MC/MCDisassembler/MCDisassembler.cpp b/lib/MC/MCDisassembler/MCDisassembler.cpp index cf3db23e004..9cdacb64c4f 100644 --- a/lib/MC/MCDisassembler/MCDisassembler.cpp +++ b/lib/MC/MCDisassembler/MCDisassembler.cpp @@ -17,7 +17,7 @@ using namespace llvm; MCDisassembler::~MCDisassembler() = default; Optional -MCDisassembler::onSymbolStart(StringRef Name, uint64_t &Size, +MCDisassembler::onSymbolStart(SymbolInfoTy &Symbol, uint64_t &Size, ArrayRef Bytes, uint64_t Address, raw_ostream &CStream) const { return None; diff --git a/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp b/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp index 5a41c2dd253..42fa6d58fff 100644 --- a/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp +++ b/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp @@ -46,7 +46,7 @@ class WebAssemblyDisassembler final : public MCDisassembler { DecodeStatus getInstruction(MCInst &Instr, uint64_t &Size, ArrayRef Bytes, uint64_t Address, raw_ostream &CStream) const override; - Optional onSymbolStart(StringRef Name, uint64_t &Size, + Optional onSymbolStart(SymbolInfoTy &Symbol, uint64_t &Size, ArrayRef Bytes, uint64_t Address, raw_ostream &CStream) const override; @@ -122,8 +122,8 @@ bool parseImmediate(MCInst &MI, uint64_t &Size, ArrayRef Bytes) { } Optional WebAssemblyDisassembler::onSymbolStart( - StringRef Name, uint64_t &Size, ArrayRef Bytes, uint64_t Address, - raw_ostream &CStream) const { + SymbolInfoTy &Symbol, uint64_t &Size, ArrayRef Bytes, + uint64_t Address, raw_ostream &CStream) const { Size = 0; if (Address == 0) { // Start of a code section: we're parsing only the function count. diff --git a/tools/llvm-objdump/llvm-objdump.cpp b/tools/llvm-objdump/llvm-objdump.cpp index c27e487ea6b..81b3aac5c93 100644 --- a/tools/llvm-objdump/llvm-objdump.cpp +++ b/tools/llvm-objdump/llvm-objdump.cpp @@ -1429,7 +1429,7 @@ static void disassembleObject(const Target *TheTarget, const ObjectFile *Obj, continue; } - auto Status = DisAsm->onSymbolStart(SymbolName, Size, + auto Status = DisAsm->onSymbolStart(Symbols[SI], Size, Bytes.slice(Start, End - Start), SectionAddr + Start, CommentStream); // To have round trippable disassembly, we fall back to decoding the