13template <
typename TContext>
class MnemonicBuilderBinary64bitInstr {
15 using It =
typename TContext::It;
16 using Reg =
typename TContext::Reg;
17 using SReg =
typename TContext::SReg;
19 template <
typename TDestLo,
typename TDestHi,
typename TArg0,
typename TArg1>
20 static void Build(
const char *instr_spec, TContext &mctx,
const MnemonicBuilderFlagsSet &bflags,
21 const InstrFlagsSet &iflags,
const TDestLo &d_lo,
const TDestHi &d_hi,
22 const TArg0 &rn,
const TArg1 &rm) {
23 static_cast<void>(bflags);
24 static_cast<void>(iflags);
26 mctx.builder.AddString(instr_spec)
27 .AddString(It::GetConditionAsStr(mctx.cpua))
29 .AddString(Reg::GetRegisterName(d_lo.Get()))
31 .AddString(Reg::GetRegisterName(d_hi.Get()))
33 .AddString(Reg::GetRegisterName(rn.Get()))
35 .AddString(Reg::GetRegisterName(rm.Get()))
43 MnemonicBuilderBinary64bitInstr() =
delete;
48 ~MnemonicBuilderBinary64bitInstr() =
delete;
54 MnemonicBuilderBinary64bitInstr(
const MnemonicBuilderBinary64bitInstr &r_src) =
default;
60 MnemonicBuilderBinary64bitInstr &operator=(
const MnemonicBuilderBinary64bitInstr &r_src) =
delete;
66 MnemonicBuilderBinary64bitInstr(MnemonicBuilderBinary64bitInstr &&r_src) =
delete;
72 MnemonicBuilderBinary64bitInstr &operator=(MnemonicBuilderBinary64bitInstr &&r_src) =
delete;