diff options
author | Oxore <oxore@protonmail.com> | 2023-05-20 18:33:40 +0300 |
---|---|---|
committer | Oxore <oxore@protonmail.com> | 2023-05-20 18:33:40 +0300 |
commit | 25bf809a867720399cf12f8c0efec86eaeec26c5 (patch) | |
tree | 18abcb06422e3605e40bb8eed9d9bb716f66592e /disasm.cpp | |
parent | 1a9089d41233b3b7b207e9a7e8553dc5b14e92ae (diff) |
Impl marks referencing for PEA and NBCD
Diffstat (limited to 'disasm.cpp')
-rw-r--r-- | disasm.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -927,14 +927,22 @@ static size_t disasm_nbcd_swap_pea(DisasmNode &node, const uint16_t instr, const break; case AddrMode::kD16AnAddr: case AddrMode::kD8AnXiAddr: + break; case AddrMode::kWord: case AddrMode::kLong: + node.ref1_addr = static_cast<uint32_t>(arg.lword); + node.ref_kinds = kRef1AbsMask | kRef1ReadMask; break; case AddrMode::kD16PCAddr: case AddrMode::kD8PCXiAddr: if (is_nbcd) { return disasm_verbatim(node, instr); } + if (arg.mode == AddrMode::kD16PCAddr) { + node.ref1_addr = node.offset + kInstructionSizeStepBytes + + static_cast<uint32_t>(arg.d16_pc.d16); + node.ref_kinds = kRef1RelMask | kRef1ReadMask; + } break; case AddrMode::kImmediate: return disasm_verbatim(node, instr); |