diff options
author | Sam Clegg <sbc@chromium.org> | 2020-12-09 22:09:40 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-09 22:09:40 -0800 |
commit | ed647324744cbc3da86eb737af4a9d9262314789 (patch) | |
tree | 47408a109eb933e9187e62b03a968d63c2a4d3d2 /src/binary-reader-objdump.cc | |
parent | 3c4bad02b95e8ef6b4f773647adcbe467cc316f3 (diff) | |
download | wabt-ed647324744cbc3da86eb737af4a9d9262314789.tar.gz wabt-ed647324744cbc3da86eb737af4a9d9262314789.tar.bz2 wabt-ed647324744cbc3da86eb737af4a9d9262314789.zip |
wasm-objdump: Report data segment names (#1588)
Also fix ordering of data names and table segment names.
Diffstat (limited to 'src/binary-reader-objdump.cc')
-rw-r--r-- | src/binary-reader-objdump.cc | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/binary-reader-objdump.cc b/src/binary-reader-objdump.cc index abc50edb..8fab9724 100644 --- a/src/binary-reader-objdump.cc +++ b/src/binary-reader-objdump.cc @@ -250,6 +250,9 @@ class BinaryReaderObjdumpPrepass : public BinaryReaderObjdumpBase { case NameSectionSubsection::Table: SetTableName(index, name); break; + case NameSectionSubsection::DataSegment: + SetSegmentName(index, name); + break; default: break; } @@ -650,14 +653,28 @@ Result BinaryReaderObjdumpDisassemble::OnOpcodeIndexIndex(Index value, Result BinaryReaderObjdumpDisassemble::OnOpcodeUint32(uint32_t value) { Offset immediate_len = state->offset - current_opcode_offset; - LogOpcode(immediate_len, "%u", value); + string_view name; + if (current_opcode == Opcode::DataDrop && + !(name = GetSegmentName(value)).empty()) { + LogOpcode(immediate_len, "%d <" PRIstringview ">", value, + WABT_PRINTF_STRING_VIEW_ARG(name)); + } else { + LogOpcode(immediate_len, "%u", value); + } return Result::Ok; } Result BinaryReaderObjdumpDisassemble::OnOpcodeUint32Uint32(uint32_t value, uint32_t value2) { Offset immediate_len = state->offset - current_opcode_offset; - LogOpcode(immediate_len, "%u %u", value, value2); + string_view name; + if (current_opcode == Opcode::MemoryInit && + !(name = GetSegmentName(value)).empty()) { + LogOpcode(immediate_len, "%u %u <" PRIstringview ">", value, value2, + WABT_PRINTF_STRING_VIEW_ARG(name)); + } else { + LogOpcode(immediate_len, "%u %u", value, value2); + } return Result::Ok; } |