libmicroemu 0.2.0
ARM Microcontroller Emulator Library
Loading...
Searching...
No Matches
libmicroemu::internal::SpecialInstr< TInstrContext, TLogger > Class Template Reference

Public Types

using TCpuAccessor = decltype(TInstrContext::cpua)
 
using It = typename TInstrContext::It
 
using Pc = typename TInstrContext::Pc
 
using ExcTrig = typename TInstrContext::ExcTrig
 

Static Public Member Functions

static Result< InstrExecResultItInstr (TInstrContext &ictx, const InstrFlagsSet &iflags, const u32 &firstcond, const u32 &mask)
 It instruction.
 
template<typename TDelegates>
static Result< InstrExecResultSvc (TInstrContext &ictx, const InstrFlagsSet &iflags, const u32 &imm32, TDelegates &delegates)
 Svc instruction.
 
template<typename TDelegates>
static Result< InstrExecResultBkpt (TInstrContext &ictx, const InstrFlagsSet &iflags, const u32 &imm32, TDelegates &delegates)
 Bkpt instruction.
 
static Result< InstrExecResultBCond (TInstrContext &ictx, const InstrFlagsSet &iflags, const u32 &imm32, const u8 &cond)
 Branch condition.
 
template<typename TDest, typename TArg0>
static Result< InstrExecResultBfi (TInstrContext &ictx, const InstrFlagsSet &iflags, const TDest &rd, const TArg0 &rn, const u8 &lsbit, const u8 &msbit)
 Bfi.
 
template<typename TDest, typename TArg0>
static Result< InstrExecResultUbfx (TInstrContext &ictx, const InstrFlagsSet &iflags, const TDest &rd, const TArg0 &rn, const u8 &lsbit, const u8 &widthminus1)
 Ubfx.
 
template<typename TTgt0, typename TTgt1, typename TArg0>
static Result< InstrExecResultLdrd (TInstrContext &ictx, const InstrFlagsSet &iflags, const TTgt0 &rt, const TTgt1 &rt2, const TArg0 &rn, const u32 &imm32)
 Ldrd.
 
template<typename TArg0>
static Result< InstrExecResultMsr (TInstrContext &ictx, const InstrFlagsSet &iflags, const TArg0 &rn, const uint8_t mask, const uint8_t SYSm)
 Msr.
 
template<typename TDest>
static Result< InstrExecResultMrs (TInstrContext &ictx, const InstrFlagsSet &iflags, const TDest &rd, const uint8_t mask, const uint8_t SYSm)
 Mrs.
 
template<typename TTgt, typename TArg0, typename TArg1>
static Result< InstrExecResultStrd (TInstrContext &ictx, const InstrFlagsSet &iflags, const TTgt &rt, const TArg0 &rt2, const TArg1 &rn, const u32 &imm32)
 Strd.
 

Member Function Documentation

◆ BCond()

template<typename TInstrContext, typename TLogger = NullLogger>
static Result< InstrExecResult > libmicroemu::internal::SpecialInstr< TInstrContext, TLogger >::BCond ( TInstrContext & ictx,
const InstrFlagsSet & iflags,
const u32 & imm32,
const u8 & cond )
inlinestatic

Branch condition.

see Armv7-M Architecture Reference Manual Issue E.e p. 205

◆ Bfi()

template<typename TInstrContext, typename TLogger = NullLogger>
template<typename TDest, typename TArg0>
static Result< InstrExecResult > libmicroemu::internal::SpecialInstr< TInstrContext, TLogger >::Bfi ( TInstrContext & ictx,
const InstrFlagsSet & iflags,
const TDest & rd,
const TArg0 & rn,
const u8 & lsbit,
const u8 & msbit )
inlinestatic

Bfi.

see Armv7-M Architecture Reference Manual Issue E.e p. 208

◆ Bkpt()

template<typename TInstrContext, typename TLogger = NullLogger>
template<typename TDelegates>
static Result< InstrExecResult > libmicroemu::internal::SpecialInstr< TInstrContext, TLogger >::Bkpt ( TInstrContext & ictx,
const InstrFlagsSet & iflags,
const u32 & imm32,
TDelegates & delegates )
inlinestatic

Bkpt instruction.

see Armv7-M Architecture Reference Manual Issue E.e p. 212

◆ ItInstr()

template<typename TInstrContext, typename TLogger = NullLogger>
static Result< InstrExecResult > libmicroemu::internal::SpecialInstr< TInstrContext, TLogger >::ItInstr ( TInstrContext & ictx,
const InstrFlagsSet & iflags,
const u32 & firstcond,
const u32 & mask )
inlinestatic

It instruction.

see Armv7-M Architecture Reference Manual Issue E.e p. 236

◆ Ldrd()

template<typename TInstrContext, typename TLogger = NullLogger>
template<typename TTgt0, typename TTgt1, typename TArg0>
static Result< InstrExecResult > libmicroemu::internal::SpecialInstr< TInstrContext, TLogger >::Ldrd ( TInstrContext & ictx,
const InstrFlagsSet & iflags,
const TTgt0 & rt,
const TTgt1 & rt2,
const TArg0 & rn,
const u32 & imm32 )
inlinestatic

Ldrd.

see Armv7-M Architecture Reference Manual Issue E.e p. 257

◆ Mrs()

template<typename TInstrContext, typename TLogger = NullLogger>
template<typename TDest>
static Result< InstrExecResult > libmicroemu::internal::SpecialInstr< TInstrContext, TLogger >::Mrs ( TInstrContext & ictx,
const InstrFlagsSet & iflags,
const TDest & rd,
const uint8_t mask,
const uint8_t SYSm )
inlinestatic

Mrs.

see Armv7-M Architecture Reference Manual Issue E.e p. 675

◆ Msr()

template<typename TInstrContext, typename TLogger = NullLogger>
template<typename TArg0>
static Result< InstrExecResult > libmicroemu::internal::SpecialInstr< TInstrContext, TLogger >::Msr ( TInstrContext & ictx,
const InstrFlagsSet & iflags,
const TArg0 & rn,
const uint8_t mask,
const uint8_t SYSm )
inlinestatic

Msr.

see Armv7-M Architecture Reference Manual Issue E.e p. 677

◆ Strd()

template<typename TInstrContext, typename TLogger = NullLogger>
template<typename TTgt, typename TArg0, typename TArg1>
static Result< InstrExecResult > libmicroemu::internal::SpecialInstr< TInstrContext, TLogger >::Strd ( TInstrContext & ictx,
const InstrFlagsSet & iflags,
const TTgt & rt,
const TArg0 & rt2,
const TArg1 & rn,
const u32 & imm32 )
inlinestatic

Strd.

see Armv7-M Architecture Reference Manual Issue E.e p. 393

◆ Svc()

template<typename TInstrContext, typename TLogger = NullLogger>
template<typename TDelegates>
static Result< InstrExecResult > libmicroemu::internal::SpecialInstr< TInstrContext, TLogger >::Svc ( TInstrContext & ictx,
const InstrFlagsSet & iflags,
const u32 & imm32,
TDelegates & delegates )
inlinestatic

Svc instruction.

see Armv7-M Architecture Reference Manual Issue E.e p. 213

◆ Ubfx()

template<typename TInstrContext, typename TLogger = NullLogger>
template<typename TDest, typename TArg0>
static Result< InstrExecResult > libmicroemu::internal::SpecialInstr< TInstrContext, TLogger >::Ubfx ( TInstrContext & ictx,
const InstrFlagsSet & iflags,
const TDest & rd,
const TArg0 & rn,
const u8 & lsbit,
const u8 & widthminus1 )
inlinestatic

Ubfx.

see Armv7-M Architecture Reference Manual Issue E.e p. 424


The documentation for this class was generated from the following file: