#include "temu-c/Support/Objsys.h"
#include <stdint.h>
Go to the source code of this file.
Data Structures | |
struct | temu_CpuIface |
Defines | |
#define | TEMU_ATC_FETCH 1 |
Common CPU interface. | |
#define | TEMU_ATC_READ (1 << 1) |
#define | TEMU_ATC_WRITE (1 << 2) |
#define | TEMU_ATC_USER (1 << 3) |
#define | TEMU_ATC_SUPER (1 << 4) |
#define | TEMU_ATC_HYPER (1 << 5) |
Enumerations | |
enum | temu_CpuState { teCS_Nominal, teCS_Halted, teCS_Idling } |
enum | temu_CpuExitReason { teCER_Normal = 0, teCER_Trap, teCER_Halt, teCER_Irq, teCER_Idle, teCER_Break, teCER_WatchR, teCER_WatchW, teCER_Early } |
Functions | |
OBJSYS_OBJ_TYPE (temu_Cpu) |
#define TEMU_ATC_FETCH 1 |
Common CPU interface.
The CPU interface provides common functionality that all processors must implement. This includes the reset and run methods. But also different register access functions. The register access functions are functions, because registers may be banked and we want some type of common interface that can access the current registers. Note that the interface currently only support 32 bit processors.
run Run the main emulator loop for a given number of cycles.
step Run the given number of steps. A step is one instruction, completed or not. E.g. a trapping instruction does not complete but is counted as a step.
raiseTrap Raises a trap on the CPU. THIS FUNCTION DOES NOT RETURN!!!
getGpr Read the currently visible general purpose registers. For banked registers (e.g. SPARC reg windows), you should look at the arch specific interface instead.
getFpr32 Read the currently visible floating point registers.
getSpr Read the currently visible special purpose registers.
invalidateAtc Invalidates the ATC cache for the given address range. Flags can be set to control the invalidation. Bit 0: don't invalidate fetch. Bit 1: don't Invalidate read, bit 2: don't invalidate write, bit 3 don't invalidate user, bit 4 don't invalidate super.
translatePageAddress Does a table walk and translates the virtual address to physical page address. For MMU free systems, the function returns the Va masked with ~(page size-1). Otherwise, the return is the translated page address and in the case of failure -1.
enum temu_CpuExitReason |
enum temu_CpuState |
OBJSYS_OBJ_TYPE | ( | temu_Cpu | ) |