diff options
author | Sam Clegg <sbc@chromium.org> | 2018-11-29 00:53:20 -0800 |
---|---|---|
committer | Ben Smith <binjimin@gmail.com> | 2018-11-29 00:53:20 -0800 |
commit | 451edf63ed251b7438173dd88a224890c47a0872 (patch) | |
tree | 6f2b59f26abdf581bb3d3d58589abe5143fd3f99 /src/binary-reader-objdump.cc | |
parent | 2547ab9c1dd291ad3c19beaf96ddf74d3a8892e5 (diff) | |
download | wabt-451edf63ed251b7438173dd88a224890c47a0872.tar.gz wabt-451edf63ed251b7438173dd88a224890c47a0872.tar.bz2 wabt-451edf63ed251b7438173dd88a224890c47a0872.zip |
wasm-objdump: Print name of global when disassembly get/set_global (#960)
Diffstat (limited to 'src/binary-reader-objdump.cc')
-rw-r--r-- | src/binary-reader-objdump.cc | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/binary-reader-objdump.cc b/src/binary-reader-objdump.cc index 64e11d78..ddd2d7b9 100644 --- a/src/binary-reader-objdump.cc +++ b/src/binary-reader-objdump.cc @@ -273,8 +273,11 @@ class BinaryReaderObjdumpPrepass : public BinaryReaderObjdumpBase { ExternalKind kind, Index item_index, string_view name) override { - if (kind == ExternalKind::Func) + if (kind == ExternalKind::Func) { SetFunctionName(item_index, name); + } else if (kind == ExternalKind::Global) { + SetGlobalName(item_index, name); + } return Result::Ok; } @@ -480,9 +483,21 @@ void BinaryReaderObjdumpDisassemble::LogOpcode(size_t data_size, if (fmt) { printf(" "); va_list args; + va_list args_copy; va_start(args, fmt); + va_copy(args_copy, args); vprintf(fmt, args); va_end(args); + + if (current_opcode == Opcode::GetGlobal || + current_opcode == Opcode::SetGlobal) { + int global_index = va_arg(args_copy, int); + if (const char* name = GetGlobalName(global_index)) { + printf(" <%s>", name); + } + } + + va_end(args_copy); } } |