libElysianVMU 1.6.0
Full-featured, accurate, cross-platform library emulating the Dreamcast's Visual Memory Unit
Loading...
Searching...
No Matches
EvmuCpu Struct Reference

#include <evmu_cpu.h>

Inheritance diagram for EvmuCpu:
EvmuPeripheral GblObject EvmuIBehavior GblBox GblITableVariant GblInstance

Data Fields

union { 
 
   EvmuCpuClass *   pClass 
 
   EvmuPeripheral   base 
 
};  
 
uint32_t halted: 1
 
uint32_t haltAfterNext: 1
 
uint32_t pcChanged: 1
 
- Data Fields inherited from EvmuPeripheral
union { 
 
   EvmuPeripheralClass *   pClass 
 
   GblObject   base 
 
};  
 
GblFlags logLevel
 
- Data Fields inherited from GblObject
GblObjectClasspClass
 
GblBox base
 
- Data Fields inherited from GblBox
GblBoxClasspClass
 
GblInstance base
 
GblArrayMappFields
 
volatile uint16_t refCounter
 
uint16_t contextType
 
uint16_t constructedInPlace
 
uint16_t derivedFlags
 
- Data Fields inherited from GblInstance
GblClasspClass
 

Related Symbols

(Note that these are not member symbols.)

Program Counter

Methods for reading and writing the PC

EvmuPc EvmuCpu_pc (const EvmuCpu *pSelf)
 
void EvmuCpu_setPc (EvmuCpu *pSelf, EvmuPc address)
 
Instruction Info

Methods for querying current instruction info

double EvmuCpu_secs (const EvmuCpu *pSelf)
 
size_t EvmuCpu_cycles (const EvmuCpu *pSelf)
 
EvmuWord EvmuCpu_opcode (const EvmuCpu *pSelf)
 
int32_t EvmuCpu_operand (const EvmuCpu *pSelf, size_t idx)
 
Instruction Execution

Methods for executing instructions

EVMU_RESULT EvmuCpu_execute (EvmuCpu *pSelf, const EvmuDecodedInstruction *pInstr)
 
EVMU_RESULT EvmuCpu_runNext (EvmuCpu *pSelf)
 

Additional Inherited Members

- Public Member Functions inherited from GblObject
GblContextGblObject_findContext (GblObject *pSelf)
 
GBL_RESULT GblObject_property (const GblObject *pSelf, const char *pName,...)
 
GBL_RESULT GblObject_propertyByQuark (const GblObject *pSelf, GblQuark name,...)
 
GBL_RESULT GblObject_propertyVaList (const GblObject *pSelf, const char *pName, va_list *pList)
 
GBL_RESULT GblObject_propertyVaListByQuark (const GblObject *pSelf, GblQuark name, va_list *pList)
 
GBL_RESULT GblObject_propertyVariant (const GblObject *pSelf, const char *pName, GblVariant *pValue)
 
GBL_RESULT GblObject_propertyVariantByQuark (const GblObject *pSelf, GblQuark name, GblVariant *pValue)
 
GBL_RESULT GblObject_properties (const GblObject *pSelf,...)
 
GBL_RESULT GblObject_propertiesVaList (const GblObject *pSelf, va_list *pList)
 
GBL_RESULT GblObject_propertiesVariants (const GblObject *pSelf, size_t count, const char *pNames[], GblVariant *pValue)
 
GBL_RESULT GblObject_setProperty (GblObject *pSelf, const char *pName,...)
 
GBL_RESULT GblObject_setPropertyByQuark (GblObject *pSelf, GblQuark quark,...)
 
GBL_RESULT GblObject_setPropertyVaList (GblObject *pSelf, const char *pName, va_list *pList)
 
GBL_RESULT GblObject_setPropertyVaListByQuark (GblObject *pSelf, GblQuark name, va_list *pList)
 
GBL_RESULT GblObject_setPropertyVariant (GblObject *pSelf, const char *pName, GblVariant *pValue)
 
GBL_RESULT GblObject_setPropertyVariantByQuark (GblObject *pSelf, GblQuark name, GblVariant *pValue)
 
GBL_RESULT GblObject_setProperties (GblObject *pSelf,...)
 
GBL_RESULT GblObject_setPropertiesVaList (GblObject *pSelf, va_list *pList)
 
GBL_RESULT GblObject_setPropertiesVariants (GblObject *pSelf, size_t count, const char *pNames[], GblVariant *pValue)
 
const GblStringRefGblObject_name (const GblObject *pSelf)
 
void GblObject_setName (GblObject *pSelf, const char *pName)
 
void GblObject_setNameRef (GblObject *pSelf, const GblStringRef *pRef)
 
GblObjectGblObject_parent (const GblObject *pSelf)
 
void GblObject_setParent (GblObject *pSelf, GblObject *pParent)
 
void GblObject_addChild (GblObject *pSelf, GblObject *pChild)
 
GblBool GblObject_removeChild (GblObject *pSelf, GblObject *pChild)
 
size_t GblObject_depth (const GblObject *pSelf)
 
GblObjectGblObject_childFirst (const GblObject *pSelf)
 
size_t GblObject_childCount (const GblObject *pSelf)
 
GblObjectGblObject_siblingNext (const GblObject *pSelf)
 
GblObjectGblObject_findAncestorByType (const GblObject *pSelf, GblType ancestorType)
 
GblObjectGblObject_findAncestorByName (const GblObject *pSelf, const char *pName)
 
GblObjectGblObject_findAncestorByHeight (const GblObject *pSelf, size_t height)
 
GblObjectGblObject_findBaseByDepth (const GblObject *pSelf, size_t depth)
 
GblObjectGblObject_findChildByType (const GblObject *pSelf, GblType childType)
 
GblObjectGblObject_findChildByName (const GblObject *pSelf, const char *pName)
 
GblObjectGblObject_findChildByIndex (const GblObject *pSelf, size_t index)
 
GblObjectGblObject_findSiblingByType (const GblObject *pSelf, GblType siblingType)
 
GblObjectGblObject_findSiblingByName (const GblObject *pSelf, const char *pName)
 
GblObjectGblObject_findSiblingByIndex (const GblObject *pSelf, size_t index)
 
GBL_RESULT GblObject_sendEvent (GblObject *pSelf, GblEvent *pEvent)
 
GBL_RESULT GblObject_notifyEvent (GblObject *pSelf, GblEvent *pEvent)
 
GBL_RESULT GblObject_installEventFilter (GblObject *pSelf, GblIEventFilter *pFilter)
 
GBL_RESULT GblObject_uninstallEventFilter (GblObject *pSelf, GblIEventFilter *pFilter)
 
size_t GblObject_eventFilterCount (const GblObject *pSelf)
 
GblIEventFilter * GblObject_eventFilter (const GblObject *pSelf, size_t index)
 
GBL_RESULT GblObject_property (const GblObject *pSelf, const char *pName,...)
 
GBL_RESULT GblObject_propertyByQuark (const GblObject *pSelf, GblQuark name,...)
 
GBL_RESULT GblObject_propertyVaList (const GblObject *pSelf, const char *pName, va_list *pList)
 
GBL_RESULT GblObject_propertyVaListByQuark (const GblObject *pSelf, GblQuark name, va_list *pList)
 
GBL_RESULT GblObject_propertyVariant (const GblObject *pSelf, const char *pName, GblVariant *pValue)
 
GBL_RESULT GblObject_propertyVariantByQuark (const GblObject *pSelf, GblQuark name, GblVariant *pValue)
 
GBL_RESULT GblObject_properties (const GblObject *pSelf,...)
 
GBL_RESULT GblObject_propertiesVaList (const GblObject *pSelf, va_list *pList)
 
GBL_RESULT GblObject_propertiesVariants (const GblObject *pSelf, size_t count, const char *pNames[], GblVariant *pValue)
 
GBL_RESULT GblObject_setProperty (GblObject *pSelf, const char *pName,...)
 
GBL_RESULT GblObject_setPropertyByQuark (GblObject *pSelf, GblQuark quark,...)
 
GBL_RESULT GblObject_setPropertyVaList (GblObject *pSelf, const char *pName, va_list *pList)
 
GBL_RESULT GblObject_setPropertyVaListByQuark (GblObject *pSelf, GblQuark name, va_list *pList)
 
GBL_RESULT GblObject_setPropertyVariant (GblObject *pSelf, const char *pName, GblVariant *pValue)
 
GBL_RESULT GblObject_setPropertyVariantByQuark (GblObject *pSelf, GblQuark name, GblVariant *pValue)
 
GBL_RESULT GblObject_setProperties (GblObject *pSelf,...)
 
GBL_RESULT GblObject_setPropertiesVaList (GblObject *pSelf, va_list *pList)
 
GBL_RESULT GblObject_setPropertiesVariants (GblObject *pSelf, size_t count, const char *pNames[], GblVariant *pValue)
 
const GblStringRefGblObject_name (const GblObject *pSelf)
 
void GblObject_setName (GblObject *pSelf, const char *pName)
 
void GblObject_setNameRef (GblObject *pSelf, const GblStringRef *pRef)
 
GblObjectGblObject_parent (const GblObject *pSelf)
 
void GblObject_setParent (GblObject *pSelf, GblObject *pParent)
 
void GblObject_addChild (GblObject *pSelf, GblObject *pChild)
 
GblBool GblObject_removeChild (GblObject *pSelf, GblObject *pChild)
 
size_t GblObject_depth (const GblObject *pSelf)
 
GblObjectGblObject_childFirst (const GblObject *pSelf)
 
size_t GblObject_childCount (const GblObject *pSelf)
 
GblObjectGblObject_siblingNext (const GblObject *pSelf)
 
GblObjectGblObject_findAncestorByType (const GblObject *pSelf, GblType ancestorType)
 
GblObjectGblObject_findAncestorByName (const GblObject *pSelf, const char *pName)
 
GblObjectGblObject_findAncestorByHeight (const GblObject *pSelf, size_t height)
 
GblObjectGblObject_findBaseByDepth (const GblObject *pSelf, size_t depth)
 
GblObjectGblObject_findChildByType (const GblObject *pSelf, GblType childType)
 
GblObjectGblObject_findChildByName (const GblObject *pSelf, const char *pName)
 
GblObjectGblObject_findChildByIndex (const GblObject *pSelf, size_t index)
 
GblObjectGblObject_findSiblingByType (const GblObject *pSelf, GblType siblingType)
 
GblObjectGblObject_findSiblingByName (const GblObject *pSelf, const char *pName)
 
GblObjectGblObject_findSiblingByIndex (const GblObject *pSelf, size_t index)
 
GBL_RESULT GblObject_sendEvent (GblObject *pSelf, GblEvent *pEvent)
 
GBL_RESULT GblObject_notifyEvent (GblObject *pSelf, GblEvent *pEvent)
 
GBL_RESULT GblObject_installEventFilter (GblObject *pSelf, GblIEventFilter *pFilter)
 
GBL_RESULT GblObject_uninstallEventFilter (GblObject *pSelf, GblIEventFilter *pFilter)
 
size_t GblObject_eventFilterCount (const GblObject *pSelf)
 
GblIEventFilter * GblObject_eventFilter (const GblObject *pSelf, size_t index)
 
- Public Member Functions inherited from GblBox
GblBoxGblBox_ref (GblBox *pSelf)
 
GblRefCount GblBox_unref (GblBox *pSelf)
 
GblRefCount GblBox_refCount (const GblBox *pSelf)
 
void * GblBox_userdata (const GblBox *pSelf)
 
GBL_RESULT GblBox_setUserdata (GblBox *pSelf, void *pUserdata)
 
GBL_RESULT GblBox_setUserDestructor (GblBox *pSelf, GblArrayMapDtorFn pFnUdDtor)
 
uintptr_t GblBox_field (const GblBox *pSelf, GblQuark key)
 
uintptr_t GblBox_takeField (GblBox *pSelf, GblQuark key)
 
GblBool GblBox_clearField (GblBox *pSelf, GblQuark key)
 
GblBool GblBox_hasField (const GblBox *pSelf, GblQuark key)
 
GBL_RESULT GblBox_setField (GblBox *pSelf, GblQuark key, uintptr_t ud, GblArrayMapDtorFn pFnDtor)
 
GblBoxGblBox_ref (GblBox *pSelf)
 
GblRefCount GblBox_unref (GblBox *pSelf)
 
GblRefCount GblBox_refCount (const GblBox *pSelf)
 
void * GblBox_userdata (const GblBox *pSelf)
 
GBL_RESULT GblBox_setUserdata (GblBox *pSelf, void *pUserdata)
 
GBL_RESULT GblBox_setUserDestructor (GblBox *pSelf, GblArrayMapDtorFn pFnUdDtor)
 
uintptr_t GblBox_field (const GblBox *pSelf, GblQuark key)
 
uintptr_t GblBox_takeField (GblBox *pSelf, GblQuark key)
 
GblBool GblBox_clearField (GblBox *pSelf, GblQuark key)
 
GblBool GblBox_hasField (const GblBox *pSelf, GblQuark key)
 
GBL_RESULT GblBox_setField (GblBox *pSelf, GblQuark key, uintptr_t ud, GblArrayMapDtorFn pFnDtor)
 
- Public Member Functions inherited from GblInstance
GblRefCount GblInstance_destroy (GblInstance *pSelf)
 
GblBool GblInstance_check (const GblInstance *pSelf, GblType toType)
 
GblInstanceGblInstance_cast (GblInstance *pSelf, GblType toType)
 
GblInstanceGblInstance_as (GblInstance *pSelf, GblType toType)
 
void * GblInstance_private (const GblInstance *pSelf, GblType base)
 
GblInstanceGblInstance_public (const void *pPriv, GblType base)
 
GblType GblInstance_typeOf (const GblInstance *pSelf)
 
size_t GblInstance_size (const GblInstance *pSelf)
 
size_t GblInstance_privateSize (const GblInstance *pSelf)
 
size_t GblInstance_totalSize (const GblInstance *pSelf)
 
GblClassGblInstance_class (const GblInstance *pSelf)
 
GBL_RESULT GblInstance_swizzleClass (GblInstance *pSelf, GblClass *pClass)
 
GBL_RESULT GblInstance_sinkClass (GblInstance *pSelf)
 
GBL_RESULT GblInstance_floatClass (GblInstance *pSelf)
 
GblBool GblInstance_check (const GblInstance *pSelf, GblType toType)
 
GblInstanceGblInstance_cast (GblInstance *pSelf, GblType toType)
 
GblInstanceGblInstance_as (GblInstance *pSelf, GblType toType)
 
void * GblInstance_private (const GblInstance *pSelf, GblType base)
 
GblInstanceGblInstance_public (const void *pPriv, GblType base)
 
GblType GblInstance_typeOf (const GblInstance *pSelf)
 
size_t GblInstance_size (const GblInstance *pSelf)
 
size_t GblInstance_privateSize (const GblInstance *pSelf)
 
size_t GblInstance_totalSize (const GblInstance *pSelf)
 
GblClassGblInstance_class (const GblInstance *pSelf)
 
GBL_RESULT GblInstance_swizzleClass (GblInstance *pSelf, GblClass *pClass)
 
GBL_RESULT GblInstance_sinkClass (GblInstance *pSelf)
 
GBL_RESULT GblInstance_floatClass (GblInstance *pSelf)
 

Detailed Description

Sanyo LC86k CPU core.

EvmuCpu is an EvmuPeripheral which implements all of the logic behind and provides an API for the CPU core.

In addition to managing normal program flow, it allows you to feed in individual instructions and then query for their decoded operands and opcode. It also provides a signal for when the PC changes, which can be used to implement breakpoints and instruction tracing.

See also
EvmuCpuClass

Definition at line 91 of file evmu_cpu.h.

Friends And Related Symbol Documentation

◆ EvmuCpu_cycles()

size_t EvmuCpu_cycles ( const EvmuCpu pSelf)
related

Returns the number of cycles per instruction for the currently executing instruction.

◆ EvmuCpu_execute()

EVMU_RESULT EvmuCpu_execute ( EvmuCpu pSelf,
const EvmuDecodedInstruction pInstr 
)
related

Immediately executes an externally provided decoded instruction rather than fetching one from ROM or flash.

◆ EvmuCpu_opcode()

EvmuWord EvmuCpu_opcode ( const EvmuCpu pSelf)
related

Returns the opcode of the currently executing instruction.

◆ EvmuCpu_operand()

int32_t EvmuCpu_operand ( const EvmuCpu pSelf,
size_t  idx 
)
related

Returns the operand of the currently executing instruction at index idx.

◆ EvmuCpu_pc()

EvmuPc EvmuCpu_pc ( const EvmuCpu pSelf)
related

Returns the address for the program counter, which points to the next instruction.

◆ EvmuCpu_runNext()

EVMU_RESULT EvmuCpu_runNext ( EvmuCpu pSelf)
related

Fetches and executes the next instruction, which is located at the address pointed to by the program counter.

◆ EvmuCpu_secs()

double EvmuCpu_secs ( const EvmuCpu pSelf)
related

Returns the number of seconds per instruction for the currently executing instruction.

◆ EvmuCpu_setPc()

void EvmuCpu_setPc ( EvmuCpu pSelf,
EvmuPc  address 
)
related

Sets the address of the program counter, so that it will be the next executed instruction.

Field Documentation

◆ base

EvmuPeripheral EvmuCpu::base

Inherited base instance structure.

Definition at line 91 of file evmu_cpu.h.

◆ haltAfterNext

uint32_t EvmuCpu::haltAfterNext

Halts the CPU execution after the next instruction.

Definition at line 93 of file evmu_cpu.h.

◆ halted

uint32_t EvmuCpu::halted

Halts CPU execution.

Definition at line 92 of file evmu_cpu.h.

◆ pcChanged

uint32_t EvmuCpu::pcChanged

User toggle (reset to false) which be set upon PC change.

Definition at line 94 of file evmu_cpu.h.

◆ pClass

EvmuCpuClass* EvmuCpu::pClass

Pointer to class/vtable structure.

Definition at line 91 of file evmu_cpu.h.


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