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

Public Types

using SId = SpecialRegisterId
 
using Pc = TPcOps
 

Public Member Functions

ExceptionsOpsoperator= (const ExceptionsOps &r_src)=delete
 
 ExceptionsOps (ExceptionsOps &&r_src)=delete
 
ExceptionsOpsoperator= (ExceptionsOps &&r_src)=delete
 
 ExceptionsOps (const ExceptionsOps &r_src)=delete
 

Static Public Member Functions

static void SetProcessorMode (TCpuAccessor &cpua, const ProcessorMode &mode)
 
static void LogImportantRegisters (TCpuAccessor &cpua, const char *preamble, const ExceptionType &exception_type)
 
static void InitDefaultExceptionStates (TCpuAccessor &cpua)
 
template<typename ExcInstant, typename TBus>
static Result< void > ExceptionEntry (TCpuAccessor &cpua, TBus &bus, const ExceptionType &exception_type, const ExceptionContext &context)
 
template<typename ExcInstant, typename TBus>
static Result< void > PushStack (TCpuAccessor &cpua, TBus &bus, const ExceptionType &exception_type, const ExceptionContext &context)
 
template<typename ExcInstant, typename std::enable_if_t< ExcInstant::kInstant==ExecutionInstant::kPreFetch, int > = 0>
static u32 ReturnAddress (TCpuAccessor &cpua, const ExceptionType &exception_type, const ExceptionContext &context)
 
template<typename ExcInstant, typename std::enable_if_t< ExcInstant::kInstant==ExecutionInstant::kPostFetch, int > = 0>
static u32 ReturnAddress (TCpuAccessor &cpua, const ExceptionType &exception_type, const ExceptionContext &context)
 
template<typename ExcInstant, typename std::enable_if_t< ExcInstant::kInstant==ExecutionInstant::kPostExecution, int > = 0>
static u32 ReturnAddress (TCpuAccessor &cpua, const ExceptionType &exception_type, const ExceptionContext &context)
 
template<typename TBus>
static Result< void > ExceptionTaken (TCpuAccessor &cpua, TBus &bus, const ExceptionType &exception_type)
 
static constexpr bool IsExceptionSynchronous ()
 
template<typename TBus>
static Result< void > ExceptionReturn (TCpuAccessor &cpua, TBus &bus, u32 exc_return)
 
template<typename TBus>
static Result< void > PopStack (TCpuAccessor &cpua, TBus &bus, u32 frameptr, u32 exc_return)
 
static void SetExceptionPending (TCpuAccessor &cpua, ExceptionType exception_type)
 
static void ClearExceptionPending (TCpuAccessor &cpua, ExceptionType exception_type)
 
static void SetExceptionActive (TCpuAccessor &cpua, ExceptionType exception_type)
 
static void ClearExceptionActive (TCpuAccessor &cpua, ExceptionType exception_type)
 
template<typename ExcInstant, typename std::enable_if_t< ExcInstant::kInstant==ExecutionInstant::kPreFetch, int > = 0>
static bool CanExceptionExecute (const ExceptionType &exception_type)
 
template<typename ExcInstant, typename std::enable_if_t< ExcInstant::kInstant==ExecutionInstant::kPostFetch, int > = 0>
static bool CanExceptionExecute (const ExceptionType &exception_type)
 
template<typename ExcInstant, typename std::enable_if_t< ExcInstant::kInstant==ExecutionInstant::kPostExecution, int > = 0>
static bool CanExceptionExecute (const ExceptionType &exception_type)
 
template<typename ExcInstant, typename TBus>
static Result< bool > CheckExceptions (TCpuAccessor &cpua, TBus &bus, const ExceptionContext &context)
 

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