diff options
Diffstat (limited to 'llvm/tools')
-rw-r--r-- | llvm/tools/llvm-objdump/CMakeLists.txt | 1 | ||||
-rw-r--r-- | llvm/tools/llvm-objdump/WasmDump.cpp | 28 | ||||
-rw-r--r-- | llvm/tools/llvm-objdump/llvm-objdump.cpp | 2 | ||||
-rw-r--r-- | llvm/tools/llvm-objdump/llvm-objdump.h | 1 |
4 files changed, 32 insertions, 0 deletions
diff --git a/llvm/tools/llvm-objdump/CMakeLists.txt b/llvm/tools/llvm-objdump/CMakeLists.txt index f1239a280ce..27e6145dfc1 100644 --- a/llvm/tools/llvm-objdump/CMakeLists.txt +++ b/llvm/tools/llvm-objdump/CMakeLists.txt @@ -19,6 +19,7 @@ add_llvm_tool(llvm-objdump COFFDump.cpp ELFDump.cpp MachODump.cpp + WasmDump.cpp ) if(HAVE_LIBXAR) diff --git a/llvm/tools/llvm-objdump/WasmDump.cpp b/llvm/tools/llvm-objdump/WasmDump.cpp new file mode 100644 index 00000000000..0d8ffba6ba4 --- /dev/null +++ b/llvm/tools/llvm-objdump/WasmDump.cpp @@ -0,0 +1,28 @@ +//===-- WasmDump.cpp - wasm-specific dumper ---------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +/// +/// \file +/// \brief This file implements the wasm-specific dumper for llvm-objdump. +/// +//===----------------------------------------------------------------------===// + +#include "llvm-objdump.h" +#include "llvm/Object/Wasm.h" + +using namespace llvm; +using namespace object; + +void llvm::printWasmFileHeader(const object::ObjectFile *Obj) { + const WasmObjectFile *File = dyn_cast<const WasmObjectFile>(Obj); + + outs() << "Program Header:\n"; + outs() << "Version: 0x"; + outs().write_hex(File->getHeader().Version); + outs() << "\n"; +} diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp index cbb74a3abd2..319d8afcc0b 100644 --- a/llvm/tools/llvm-objdump/llvm-objdump.cpp +++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp @@ -1910,6 +1910,8 @@ static void printPrivateFileHeaders(const ObjectFile *o, bool onlyFirst) { return printELFFileHeader(o); if (o->isCOFF()) return printCOFFFileHeader(o); + if (o->isWasm()) + return printWasmFileHeader(o); if (o->isMachO()) { printMachOFileHeader(o); if (!onlyFirst) diff --git a/llvm/tools/llvm-objdump/llvm-objdump.h b/llvm/tools/llvm-objdump/llvm-objdump.h index c87ef2deb22..dace82af3d0 100644 --- a/llvm/tools/llvm-objdump/llvm-objdump.h +++ b/llvm/tools/llvm-objdump/llvm-objdump.h @@ -79,6 +79,7 @@ void printCOFFSymbolTable(const object::COFFImportFile *i); void printCOFFSymbolTable(const object::COFFObjectFile *o); void printMachOFileHeader(const object::ObjectFile *o); void printMachOLoadCommands(const object::ObjectFile *o); +void printWasmFileHeader(const object::ObjectFile *o); void printExportsTrie(const object::ObjectFile *o); void printRebaseTable(const object::ObjectFile *o); void printBindTable(const object::ObjectFile *o); |