13template <
typename TContext>
class MnemonicBuilderBinaryLoadStoreInstrWithImm {
15 using It =
typename TContext::It;
16 using Reg =
typename TContext::Reg;
17 using SReg =
typename TContext::SReg;
19 template <
typename TTgt,
typename TArg0>
20 static void Build(
const char *instr_spec, TContext &mctx,
const MnemonicBuilderFlagsSet &bflags,
21 const InstrFlagsSet &iflags,
const TTgt &rt,
const TArg0 &rn,
23 static_cast<void>(bflags);
24 const bool is_wback = (iflags &
static_cast<InstrFlagsSet
>(InstrFlags::kWBack)) != 0U;
25 const bool is_index = (iflags &
static_cast<InstrFlagsSet
>(InstrFlags::kIndex)) != 0U;
26 const bool is_add = (iflags &
static_cast<InstrFlagsSet
>(InstrFlags::kAdd)) != 0U;
28 mctx.builder.AddString(instr_spec)
29 .AddString(It::GetConditionAsStr(mctx.cpua))
31 .AddString(Reg::GetRegisterName(rt.Get()))
36 mctx.builder.Terminate();
43 MnemonicBuilderBinaryLoadStoreInstrWithImm() =
delete;
48 ~MnemonicBuilderBinaryLoadStoreInstrWithImm() =
delete;
54 MnemonicBuilderBinaryLoadStoreInstrWithImm(
55 const MnemonicBuilderBinaryLoadStoreInstrWithImm &r_src) =
default;
61 MnemonicBuilderBinaryLoadStoreInstrWithImm &
62 operator=(
const MnemonicBuilderBinaryLoadStoreInstrWithImm &r_src) =
delete;
68 MnemonicBuilderBinaryLoadStoreInstrWithImm(MnemonicBuilderBinaryLoadStoreInstrWithImm &&r_src) =
75 MnemonicBuilderBinaryLoadStoreInstrWithImm &
76 operator=(MnemonicBuilderBinaryLoadStoreInstrWithImm &&r_src) =
delete;
static void Build(TMnemonicBuilder &builder, const bool &is_add, const bool &is_index, const bool &is_wback, const TArg0 &rn, const u32 &imm)
Uses the given str builder to build a string representing the different addressing modes of instructi...
Definition relative_adr_builder.h:23