libmicroemu 0.2.0
ARM Microcontroller Emulator Library
Loading...
Searching...
No Matches
mnemonic_builder_unary_branch_instr.h
1#pragma once
2
4#include "libmicroemu/types.h"
5
6namespace libmicroemu::internal {
7
11template <typename TContext> class MnemonicBuilderUnaryBranchInstr {
12public:
13 using It = typename TContext::It;
14 using Reg = typename TContext::Reg;
15 using SReg = typename TContext::SReg;
16
17 template <typename TArg0>
18 static void Build(const char *instr_spec, TContext &mctx, const MnemonicBuilderFlagsSet &bflags,
19 const InstrFlagsSet &iflags, const TArg0 &rn) {
20 static_cast<void>(bflags);
21 static_cast<void>(iflags);
22 mctx.builder.AddString(instr_spec)
23 .AddString(It::GetConditionAsStr(mctx.cpua))
24 .AddChar(' ')
25 .AddString(Reg::GetRegisterName(rn.Get()))
26 .Terminate();
27 }
28
29private:
33 MnemonicBuilderUnaryBranchInstr() = delete;
34
38 ~MnemonicBuilderUnaryBranchInstr() = delete;
39
44 MnemonicBuilderUnaryBranchInstr(const MnemonicBuilderUnaryBranchInstr &r_src) = default;
45
50 MnemonicBuilderUnaryBranchInstr &operator=(const MnemonicBuilderUnaryBranchInstr &r_src) = delete;
51
56 MnemonicBuilderUnaryBranchInstr(MnemonicBuilderUnaryBranchInstr &&r_src) = delete;
57
62 MnemonicBuilderUnaryBranchInstr &operator=(MnemonicBuilderUnaryBranchInstr &&r_src) = delete;
63};
64
65} // namespace libmicroemu::internal
The libmicroemu::internal namespace contains all classes and functions of libmicroemu which are priva...
Definition bkpt_flags.h:6
Contains the Result class which is used to return the result of a function.