Logo SoCRocket

Transaction-Level Modeling Framework for Space Applications

Public Member Functions | Public Attributes | List of all members
IntrinsicManager< issueWidth > Class Template Reference

#include <intrinsicmanager.h>

Inheritance diagram for IntrinsicManager< issueWidth >:
Collaboration diagram for IntrinsicManager< issueWidth >:

Public Member Functions

 IntrinsicManager (sc_core::sc_module_name mn, trap::ABIIf< issueWidth > &processorInstance)
 
bool register_intrinsic (issueWidth addr, PlatformIntrinsic< issueWidth > &callBack)
 
bool newIssue (const issueWidth &curPC, const trap::InstructionBase *curInstr) throw ()
 
bool emptyPipeline (const issueWidth &curPC) const throw ()
 
void reset ()
 Resets the whole concurrency emulator, reinitializing it and preparing it for a new simulation. More...
 
 ~IntrinsicManager ()
 
- Public Member Functions inherited from trap::ToolsIf< issueWidth >
virtual ~ToolsIf ()
 
- Public Member Functions inherited from IntrinsicBase
void set_program_args (const std::vector< std::string > args)
 
void correct_flags (int &val)
 
void set_environ (const std::string name, const std::string value)
 
void set_sysconf (const std::string name, int value)
 
void reset ()
 

Public Attributes

trap::ABIIf< issueWidth > & processorInstance
 
- Public Attributes inherited from IntrinsicBase
std::map< std::string,
std::string > 
env
 
std::map< std::string, intsysconfmap
 
std::vector< std::string > programArgs
 
unsigned int heapPointer
 
unsigned int exitValue
 

Additional Inherited Members

- Static Public Attributes inherited from IntrinsicBase
static std::vector< unsigned intgroupIDs
 
static unsigned int programsCount = 0
 

Constructor & Destructor Documentation

template<class issueWidth>
IntrinsicManager< issueWidth >::IntrinsicManager ( sc_core::sc_module_name  mn,
trap::ABIIf< issueWidth > &  processorInstance 
)
inline
template<class issueWidth>
IntrinsicManager< issueWidth >::~IntrinsicManager ( )
inline

Member Function Documentation

template<class issueWidth>
bool IntrinsicManager< issueWidth >::emptyPipeline ( const issueWidth &  curPC) const
throw (
)
inlinevirtual

Method called to know if the instruction at the current address has to be skipped: if true the instruction has to be skipped, otherwise the instruction can be executed

Implements trap::ToolsIf< issueWidth >.

template<class issueWidth>
bool IntrinsicManager< issueWidth >::newIssue ( const issueWidth &  curPC,
const trap::InstructionBase curInstr 
)
throw (
)
inlinevirtual

Method called at every instruction issue, it returns true in case the instruction has to be skipped, false otherwise

Implements trap::ToolsIf< issueWidth >.

template<class issueWidth>
bool IntrinsicManager< issueWidth >::register_intrinsic ( issueWidth  addr,
PlatformIntrinsic< issueWidth > &  callBack 
)
inline
template<class issueWidth>
void IntrinsicManager< issueWidth >::reset ( )
inline

Resets the whole concurrency emulator, reinitializing it and preparing it for a new simulation.

Referenced by IntrinsicManager< unsigned int >::~IntrinsicManager().

Member Data Documentation

template<class issueWidth>
trap::ABIIf<issueWidth>& IntrinsicManager< issueWidth >::processorInstance

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