diff options
author | Sam Clegg <sbc@chromium.org> | 2017-09-20 19:03:35 +0000 |
---|---|---|
committer | Sam Clegg <sbc@chromium.org> | 2017-09-20 19:03:35 +0000 |
commit | d95ed959d8ab270808aeec8b31f06140e68834ea (patch) | |
tree | 989216a22660bb777d0fcff71cbc4540067b80ed /llvm/tools/llvm-readobj | |
parent | 01a409520b39946bd4c7e86f83bc2d01d8c839d4 (diff) | |
download | bcm5719-llvm-d95ed959d8ab270808aeec8b31f06140e68834ea.tar.gz bcm5719-llvm-d95ed959d8ab270808aeec8b31f06140e68834ea.zip |
Reland "[WebAssembly] Add support for naming wasm data segments"
Add adds support for naming data segments. This is useful
useful linkers so that they can merge similar sections.
Differential Revision: https://reviews.llvm.org/D37886
llvm-svn: 313795
Diffstat (limited to 'llvm/tools/llvm-readobj')
-rw-r--r-- | llvm/tools/llvm-readobj/WasmDumper.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/llvm/tools/llvm-readobj/WasmDumper.cpp b/llvm/tools/llvm-readobj/WasmDumper.cpp index 88fcbf61a6a..3bff4b80c83 100644 --- a/llvm/tools/llvm-readobj/WasmDumper.cpp +++ b/llvm/tools/llvm-readobj/WasmDumper.cpp @@ -148,7 +148,7 @@ void WasmDumper::printSections() { const WasmSection &WasmSec = Obj->getWasmSection(Section); DictScope SectionD(W, "Section"); W.printEnum("Type", WasmSec.Type, makeArrayRef(WasmSectionTypes)); - W.printNumber("Size", (uint64_t)WasmSec.Content.size()); + W.printNumber("Size", static_cast<uint64_t>(WasmSec.Content.size())); W.printNumber("Offset", WasmSec.Offset); switch (WasmSec.Type) { case wasm::WASM_SEC_CUSTOM: @@ -160,6 +160,19 @@ void WasmDumper::printSections() { W.printNumber("DataAlignment", LinkingData.DataAlignment); } break; + case wasm::WASM_SEC_DATA: { + ListScope Group(W, "Segments"); + for (const WasmSegment &Segment : Obj->dataSegments()) { + const wasm::WasmDataSegment& Seg = Segment.Data; + DictScope Group(W, "Segment"); + if (!Seg.Name.empty()) + W.printString("Name", Seg.Name); + W.printNumber("Size", static_cast<uint64_t>(Seg.Content.size())); + if (Seg.Offset.Opcode == wasm::WASM_OPCODE_I32_CONST) + W.printNumber("Offset", Seg.Offset.Value.Int32); + } + break; + } case wasm::WASM_SEC_MEMORY: ListScope Group(W, "Memories"); for (const wasm::WasmLimits &Memory : Obj->memories()) { |