003 File Manager
Current Path:
/usr/src/contrib/llvm-project/llvm/tools/llvm-objdump
usr
/
src
/
contrib
/
llvm-project
/
llvm
/
tools
/
llvm-objdump
/
📁
..
📄
COFFDump.cpp
(26 KB)
📄
COFFDump.h
(1.14 KB)
📄
ELFDump.cpp
(14.6 KB)
📄
ELFDump.h
(1.15 KB)
📄
MachODump.cpp
(379.9 KB)
📄
MachODump.h
(2 KB)
📄
WasmDump.cpp
(1.8 KB)
📄
WasmDump.h
(971 B)
📄
XCOFFDump.cpp
(2.81 KB)
📄
XCOFFDump.h
(1.17 KB)
📄
llvm-objdump.cpp
(107.32 KB)
📄
llvm-objdump.h
(5.11 KB)
Editing: WasmDump.cpp
//===-- WasmDump.cpp - wasm-specific dumper ---------------------*- C++ -*-===// // // 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 // //===----------------------------------------------------------------------===// /// /// \file /// This file implements the wasm-specific dumper for llvm-objdump. /// //===----------------------------------------------------------------------===// #include "WasmDump.h" #include "llvm-objdump.h" #include "llvm/Object/Wasm.h" using namespace llvm; using namespace llvm::object; void objdump::printWasmFileHeader(const object::ObjectFile *Obj) { const auto *File = dyn_cast<const WasmObjectFile>(Obj); outs() << "Program Header:\n"; outs() << "Version: 0x"; outs().write_hex(File->getHeader().Version); outs() << "\n"; } Error objdump::getWasmRelocationValueString(const WasmObjectFile *Obj, const RelocationRef &RelRef, SmallVectorImpl<char> &Result) { const wasm::WasmRelocation &Rel = Obj->getWasmRelocation(RelRef); symbol_iterator SI = RelRef.getSymbol(); std::string FmtBuf; raw_string_ostream Fmt(FmtBuf); if (SI == Obj->symbol_end()) { // Not all wasm relocations have symbols associated with them. // In particular R_WASM_TYPE_INDEX_LEB. Fmt << Rel.Index; } else { Expected<StringRef> SymNameOrErr = SI->getName(); if (!SymNameOrErr) return SymNameOrErr.takeError(); StringRef SymName = *SymNameOrErr; Result.append(SymName.begin(), SymName.end()); } Fmt << (Rel.Addend < 0 ? "" : "+") << Rel.Addend; Fmt.flush(); Result.append(FmtBuf.begin(), FmtBuf.end()); return Error::success(); }
Upload File
Create Folder