diff options
author | Pavel Pisa <pisa@cmp.felk.cvut.cz> | 2019-07-02 18:53:21 +0200 |
---|---|---|
committer | Pavel Pisa <pisa@cmp.felk.cvut.cz> | 2019-07-02 18:53:21 +0200 |
commit | 2aa33db8be7397d39080e6ec96a9158e0c1e63e5 (patch) | |
tree | 92d26b194a6eba14bcc48bd88cd6f95299ed70f1 /qtmips_machine | |
parent | 7262d30e9e689aaacd7926c90d953ab86cd9cfa7 (diff) | |
download | qtmips-2aa33db8be7397d39080e6ec96a9158e0c1e63e5.tar.gz qtmips-2aa33db8be7397d39080e6ec96a9158e0c1e63e5.tar.bz2 qtmips-2aa33db8be7397d39080e6ec96a9158e0c1e63e5.zip |
Simple highlighter for assembly language added.
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Diffstat (limited to 'qtmips_machine')
-rw-r--r-- | qtmips_machine/instruction.cpp | 14 | ||||
-rw-r--r-- | qtmips_machine/instruction.h | 3 |
2 files changed, 17 insertions, 0 deletions
diff --git a/qtmips_machine/instruction.cpp b/qtmips_machine/instruction.cpp index 502fa81..6792aa6 100644 --- a/qtmips_machine/instruction.cpp +++ b/qtmips_machine/instruction.cpp @@ -1073,6 +1073,9 @@ ssize_t Instruction::code_from_string(std::uint32_t *code, size_t buffsize, std::uint32_t inst_addr, RelocExpressionList *reloc, int line, bool pseudo_opt, int options) { + if (str_to_instruction_code_map.isEmpty()) + instruction_from_string_build_base(); + int field = 0; std::uint32_t inst_code = 0; auto i = str_to_instruction_code_map.lowerBound(inst_base); @@ -1321,3 +1324,14 @@ bool Instruction::update(std::int64_t val, RelocExpression *relocexp) { dt |= (val << relocexp->lsb_bit) & mask; return true; } + +void Instruction::append_recognized_instructions(QStringList &list) { + if (str_to_instruction_code_map.isEmpty()) + instruction_from_string_build_base(); + + foreach (const QString &str, str_to_instruction_code_map.keys()) + list.append(str); + list.append("LA"); + list.append("LI"); + list.append("NOP"); +} diff --git a/qtmips_machine/instruction.h b/qtmips_machine/instruction.h index 76fca87..101d82f 100644 --- a/qtmips_machine/instruction.h +++ b/qtmips_machine/instruction.h @@ -38,6 +38,7 @@ #include <QObject> #include <QString> +#include <QStringList> #include <QVector> #include "machinedefs.h" @@ -159,6 +160,8 @@ public: int line = 0, bool pseudo_opt = false, int options = 0); bool update(std::int64_t val, RelocExpression *relocexp); + + static void append_recognized_instructions(QStringList &list); private: std::uint32_t dt; }; |