AvidaCPU_InstLib.hpp

A specialized version of InstLib to handle AvidaCPU Instructions.

template<typename HARDWARE_T, typename ARG_T = size_t, size_t ARG_COUNT = 3>
struct AvidaCPU_InstLib : public InstLib<HARDWARE_T, size_t, 3>
#include <AvidaCPU_InstLib.hpp>

AvidaCPU_InstLib is a pure-virtual class that defines a series of instructions that can be used with AvidaCPU_Base or any of its derived classes.

Public Types

using hardware_t = HARDWARE_T
using arg_t = ARG_T
using this_t = AvidaCPU_InstLib<HARDWARE_T, ARG_T, ARG_COUNT>
using inst_t = typename hardware_t::inst_t

Public Static Functions

static inline void Inst_Inc(hardware_t &hw, const inst_t &inst)
static inline void Inst_Dec(hardware_t &hw, const inst_t &inst)
static inline void Inst_Not(hardware_t &hw, const inst_t &inst)
static inline void Inst_SetReg(hardware_t &hw, const inst_t &inst)
static inline void Inst_Add(hardware_t &hw, const inst_t &inst)
static inline void Inst_Sub(hardware_t &hw, const inst_t &inst)
static inline void Inst_Mult(hardware_t &hw, const inst_t &inst)
static inline void Inst_Div(hardware_t &hw, const inst_t &inst)
static inline void Inst_Mod(hardware_t &hw, const inst_t &inst)
static inline void Inst_TestEqu(hardware_t &hw, const inst_t &inst)
static inline void Inst_TestNEqu(hardware_t &hw, const inst_t &inst)
static inline void Inst_TestLess(hardware_t &hw, const inst_t &inst)
static inline void Inst_If(hardware_t &hw, const inst_t &inst)
static inline void Inst_While(hardware_t &hw, const inst_t &inst)
static inline void Inst_Countdown(hardware_t &hw, const inst_t &inst)
static inline void Inst_Break(hardware_t &hw, const inst_t &inst)
static inline void Inst_Scope(hardware_t &hw, const inst_t &inst)
static inline void Inst_Define(hardware_t &hw, const inst_t &inst)
static inline void Inst_Call(hardware_t &hw, const inst_t &inst)
static inline void Inst_Push(hardware_t &hw, const inst_t &inst)
static inline void Inst_Pop(hardware_t &hw, const inst_t &inst)
static inline void Inst_Input(hardware_t &hw, const inst_t &inst)
static inline void Inst_Output(hardware_t &hw, const inst_t &inst)
static inline void Inst_CopyVal(hardware_t &hw, const inst_t &inst)
static inline void Inst_ScopeReg(hardware_t &hw, const inst_t &inst)
static inline const this_t &DefaultInstLib()

Public Static Attributes

static constexpr size_t arg_count = ARG_COUNT