libmicroemu 0.2.0
ARM Microcontroller Emulator Library
Loading...
Searching...
No Matches
mnemonic_builder_binary_null_instr.h
1#pragma once
2
4#include "libmicroemu/types.h"
5
6namespace libmicroemu::internal {
7
11template <typename TContext> class MnemonicBuilderBinaryNullInstr {
12public:
13 using It = typename TContext::It;
14 using Reg = typename TContext::Reg;
15 using SReg = typename TContext::SReg;
16
17 template <typename TArg0, typename TArg1>
18 static void Build(const char *instr_spec, TContext &mctx, const MnemonicBuilderFlagsSet &bflags,
19 const InstrFlagsSet &iflags, const TArg0 &rm, const TArg1 &rn,
20 const char *shift_str) {
21 static_cast<void>(instr_spec);
22 static_cast<void>(bflags);
23 static_cast<void>(iflags);
24
25 mctx.builder.AddString(instr_spec)
26 .AddString(It::GetConditionAsStr(mctx.cpua))
27 .AddString(" [")
28 .AddString(Reg::GetRegisterName(rn.Get()))
29 .AddString(", ")
30 .AddString(Reg::GetRegisterName(rm.Get()))
31 .AddString(shift_str)
32 .AddChar(']');
33
34 mctx.builder.Terminate();
35 }
36
37private:
41 MnemonicBuilderBinaryNullInstr() = delete;
42
46 ~MnemonicBuilderBinaryNullInstr() = delete;
47
52 MnemonicBuilderBinaryNullInstr(const MnemonicBuilderBinaryNullInstr &r_src) = default;
53
58 MnemonicBuilderBinaryNullInstr &operator=(const MnemonicBuilderBinaryNullInstr &r_src) = delete;
59
64 MnemonicBuilderBinaryNullInstr(MnemonicBuilderBinaryNullInstr &&r_src) = delete;
65
70 MnemonicBuilderBinaryNullInstr &operator=(MnemonicBuilderBinaryNullInstr &&r_src) = delete;
71};
72
73} // 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.