diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/binary-reader-objdump.cc | 6 | ||||
-rw-r--r-- | src/binary-reader.cc | 10 |
2 files changed, 12 insertions, 4 deletions
diff --git a/src/binary-reader-objdump.cc b/src/binary-reader-objdump.cc index fb4985ca..aced2738 100644 --- a/src/binary-reader-objdump.cc +++ b/src/binary-reader-objdump.cc @@ -793,7 +793,11 @@ Result BinaryReaderObjdumpDisassemble::OnOpcodeType(Type type) { return Result::Ok; } Offset immediate_len = state->offset - current_opcode_offset; - LogOpcode(immediate_len, type.GetRefKindName()); + if (current_opcode == Opcode::SelectT) { + LogOpcode(immediate_len, type.GetName()); + } else { + LogOpcode(immediate_len, type.GetRefKindName()); + } return Result::Ok; } diff --git a/src/binary-reader.cc b/src/binary-reader.cc index 7529a868..1adebb90 100644 --- a/src/binary-reader.cc +++ b/src/binary-reader.cc @@ -673,9 +673,13 @@ Result BinaryReader::ReadInstructions(bool stop_on_end, result_types_[i] = result_type; } - Type* result_types = num_results ? result_types_.data() : nullptr; - CALLBACK(OnSelectExpr, num_results, result_types); - CALLBACK0(OnOpcodeBare); + if (num_results) { + CALLBACK(OnSelectExpr, num_results, result_types_.data()); + CALLBACK(OnOpcodeType, result_types_[0]); + } else { + CALLBACK(OnSelectExpr, 0, NULL); + CALLBACK0(OnOpcodeBare); + } break; } |