summaryrefslogtreecommitdiff
path: root/disasm.h
diff options
context:
space:
mode:
authorOxore <oxore@protonmail.com>2023-05-09 14:25:34 +0300
committerOxore <oxore@protonmail.com>2023-05-09 14:25:34 +0300
commitf0b568d9d710e329da51213dfd53c98b9e49528b (patch)
treea2977443902fc10793ee57962dba8bf45aa562a1 /disasm.h
parent9f6258ba57529403a579266ea9f958edfff9837f (diff)
Refactor: return node size, remove settings from disasm functions
Diffstat (limited to 'disasm.h')
-rw-r--r--disasm.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/disasm.h b/disasm.h
index e6ca13c..5a40462 100644
--- a/disasm.h
+++ b/disasm.h
@@ -5,6 +5,7 @@
#include <cstddef>
#include <cstdint>
+#include <cstdio>
enum class OpCode: uint8_t {
kNone = 0,
@@ -217,7 +218,13 @@ struct DisasmNode {
SizeSpec size_spec{SizeSpec::kNone};
Condition condition{Condition::kT}; ///< For Scc, Bcc and Dbcc
Arg args[2]{}; ///< Should replace `arguments` field
- void Disasm(const DataBuffer &code, const Settings&);
+
+ /*! Disassembles instruction with arguments
+ * returns size of whole instruction with arguments in bytes
+ */
+ size_t Disasm(const DataBuffer &code);
+ int FPrintf(FILE*, const Settings&);
+ int SNPrintf(char *buf, size_t bufsz, const Settings&);
void AddReferencedBy(uint32_t offset, ReferenceType);
~DisasmNode();
private: