summaryrefslogtreecommitdiff
path: root/disasm.cpp
diff options
context:
space:
mode:
authorOxore <oxore@protonmail.com>2023-04-24 01:13:28 +0300
committerOxore <oxore@protonmail.com>2023-04-24 01:13:28 +0300
commitaf46d6991ceb719ac59d6218791c41fa3978e695 (patch)
treec82f390402e0000a5a2d9bc88045b91a8810213a /disasm.cpp
parent30f24b179ced1bf47deb9edfbd4128f16dad42dd (diff)
Impl some feature flags
Diffstat (limited to 'disasm.cpp')
-rw-r--r--disasm.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/disasm.cpp b/disasm.cpp
index 3b09c2d..ebf3926 100644
--- a/disasm.cpp
+++ b/disasm.cpp
@@ -80,6 +80,7 @@ static void disasm_jsr_jmp(
node.branch_addr = static_cast<uint32_t>(dispmt);
node.has_branch_addr = true;
snprintf(node.mnemonic, kMnemonicBufferSize, "%s", mnemonic);
+ // FIXME support s.abs_marks option
snprintf(node.arguments, kArgsBufferSize, "0x%x:w", dispmt);
return;
}
@@ -90,6 +91,7 @@ static void disasm_jsr_jmp(
node.branch_addr = static_cast<uint32_t>(dispmt);
node.has_branch_addr = true;
snprintf(node.mnemonic, kMnemonicBufferSize, "%s", mnemonic);
+ // FIXME support s.abs_marks option
snprintf(node.arguments, kArgsBufferSize, "0x%x:l", dispmt);
return;
}
@@ -101,6 +103,7 @@ static void disasm_jsr_jmp(
node.has_branch_addr = true;
node.size = kInstructionSizeStepBytes * 2;
snprintf(node.mnemonic, kMnemonicBufferSize, "%s", mnemonic);
+ // FIXME support s.rel_marks option
snprintf(node.arguments, kArgsBufferSize, "%%pc@(%d:w)", dispmt);
return;
}
@@ -206,6 +209,7 @@ static void disasm_bra_bsr_bcc(
node.has_branch_addr = true;
const char * const sign = dispmt >= 0 ? "+" : "";
snprintf(node.mnemonic, kMnemonicBufferSize, "%s%s", mnemonic, size_spec);
+ // FIXME support s.rel_marks option
snprintf(node.arguments, kArgsBufferSize, ".%s%d", sign, dispmt);
return;
}
@@ -329,6 +333,7 @@ static void disasm_dbcc(DisasmNode& node, uint16_t instr, const DataBuffer &code
node.has_branch_addr = true;
const char * const sign = dispmt >= 0 ? "+" : "";
snprintf(node.mnemonic, kMnemonicBufferSize, "%s", mnemonic);
+ // FIXME support s.rel_marks option
snprintf(node.arguments, kArgsBufferSize, "%%d%d,.%s%d", regnum, sign, dispmt);
return;
}