summaryrefslogtreecommitdiff
path: root/src/binary-reader-objdump.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/binary-reader-objdump.cc')
-rw-r--r--src/binary-reader-objdump.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/binary-reader-objdump.cc b/src/binary-reader-objdump.cc
index a28652dd..8b40c2ad 100644
--- a/src/binary-reader-objdump.cc
+++ b/src/binary-reader-objdump.cc
@@ -169,6 +169,7 @@ class BinaryReaderObjdumpDisassemble : public BinaryReaderObjdumpBase {
virtual Result OnOpcode(Opcode Opcode);
virtual Result OnOpcodeBare();
+ virtual Result OnOpcodeIndex(Index value);
virtual Result OnOpcodeUint32(uint32_t value);
virtual Result OnOpcodeUint32Uint32(uint32_t value, uint32_t value2);
virtual Result OnOpcodeUint64(uint64_t value);
@@ -296,6 +297,16 @@ Result BinaryReaderObjdumpDisassemble::OnOpcodeBare() {
return Result::Ok;
}
+Result BinaryReaderObjdumpDisassemble::OnOpcodeIndex(Index value) {
+ Offset immediate_len = state->offset - current_opcode_offset;
+ const char *name;
+ if (current_opcode == Opcode::Call && (name = GetFunctionName(value)))
+ LogOpcode(data, immediate_len, "%d <%s>", value, name);
+ else
+ LogOpcode(data, immediate_len, "%d", value);
+ return Result::Ok;
+}
+
Result BinaryReaderObjdumpDisassemble::OnOpcodeUint32(uint32_t value) {
Offset immediate_len = state->offset - current_opcode_offset;
LogOpcode(data, immediate_len, "%#x", value);