diff options
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/src/main.cpp b/src/main.cpp index 2a060df..7ce10fa 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -595,17 +595,10 @@ static bool EmitDisassembly( ctx.output = output; } for (size_t address = 0; address < code.size;) { - const DisasmNode raw = DisasmNode{ - /* .type = */ NodeType::kTracedInstruction, - /* .address = */ static_cast<uint32_t>(address), - /* .size = */ 2, - /* .ref_kinds = */ 0, - /* .ref1_addr = */ 0, - /* .ref2_addr = */ 0, - /* .ref_by = */ nullptr, - /* .last_ref_by = */ nullptr, - /* .op = */ Op::Raw(GetU16BE(code.buffer + address)), - }; + const DisasmNode raw = (address & 1) + ? DisasmNode::DataRaw8(static_cast<uint32_t>(address), GetU8(code.buffer + address)) + : DisasmNode::TracedRaw( + static_cast<uint32_t>(address), GetU16BE(code.buffer + address)); const DisasmNode *node = disasm_map.FindNodeByAddress(address); const bool traced = node; if (node == nullptr) { |