diff options
author | Derek Schuff <dschuff@google.com> | 2016-11-30 16:49:11 +0000 |
---|---|---|
committer | Derek Schuff <dschuff@google.com> | 2016-11-30 16:49:11 +0000 |
commit | 2c6f75ddc51f486f17c07f6215bca0848d3d84fe (patch) | |
tree | 64c836a6a2a1bedaf6dba6fbca891a581b6c8a6b /llvm/tools/llvm-objdump | |
parent | 288c088c177f0a9a994d37b3d7006c2c99f3df57 (diff) | |
download | bcm5719-llvm-2c6f75ddc51f486f17c07f6215bca0848d3d84fe.tar.gz bcm5719-llvm-2c6f75ddc51f486f17c07f6215bca0848d3d84fe.zip |
[WebAssembly] Add llvm-objdump support for wasm file format
This is the first part of an effort to add wasm binary
support across all llvm tools.
Patch by Sam Clegg
Differential Revision: https://reviews.llvm.org/D26172
llvm-svn: 288251
Diffstat (limited to 'llvm/tools/llvm-objdump')
-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); |