diff options
author | Oxore <oxore@protonmail.com> | 2023-05-09 18:03:00 +0300 |
---|---|---|
committer | Oxore <oxore@protonmail.com> | 2023-05-09 18:03:00 +0300 |
commit | fdc5756981286ac904a7b0d623ff823044207b48 (patch) | |
tree | 9ac5f5bb1673744237dc97eae45eb85786766f85 /disasm.h | |
parent | f133c4eb19612b87e055180c07ada339e2e9a4aa (diff) |
Migrate MOVEM to new Arg struct
Diffstat (limited to 'disasm.h')
-rw-r--r-- | disasm.h | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -315,6 +315,16 @@ struct Arg { a.uword = instr; return a; } + static constexpr Self RegMask(const uint16_t regmask) { + Arg a{ArgType::kRegMask, 0}; + a.uword = regmask; + return a; + } + static constexpr Self RegMaskPredecrement(const uint16_t regmask) { + Arg a{ArgType::kRegMaskPredecrement, 0}; + a.uword = regmask; + return a; + } private: static constexpr Self addrModeXn(const ArgType type, const uint8_t xn) { Arg a{type, 0}; @@ -381,9 +391,9 @@ public: case AddrMode::kAnAddr: return addrModeXn(ArgType::kAnAddr, arg.xn); case AddrMode::kAnAddrIncr: - return addrModeXn(ArgType::kAnAddrDecr, arg.xn); - case AddrMode::kAnAddrDecr: return addrModeXn(ArgType::kAnAddrIncr, arg.xn); + case AddrMode::kAnAddrDecr: + return addrModeXn(ArgType::kAnAddrDecr, arg.xn); case AddrMode::kD16AnAddr: return addrModeD16AnAddr(D16AnPCAddr{arg.xn, static_cast<int16_t>(arg.value)}); case AddrMode::kD8AnXiAddr: |