97 #define TEMU_ATC_FETCH 1
98 #define TEMU_ATC_READ (1 << 1)
99 #define TEMU_ATC_WRITE (1 << 2)
100 #define TEMU_ATC_USER (1 << 3)
101 #define TEMU_ATC_SUPER (1 << 4)
102 #define TEMU_ATC_HYPER (1 << 5)
106 void (*
reset)(
void *Cpu,
int ResetType);
118 void (*
setPc)(
void *Cpu, uint64_t Pc);
120 void (*
setGpr)(
void *Cpu,
int Reg, uint64_t Value);
121 uint64_t (*
getGpr)(
void *Cpu,
unsigned Reg);
122 void (*
setFpr32)(
void *Cpu,
unsigned Reg, uint32_t Value);
124 void (*
setFpr64)(
void *Cpu,
unsigned Reg, uint64_t Value);
126 uint64_t (*
getSpr)(
void *Cpu,
unsigned Reg);
128 const char* (*getRegName)(
void *Cpu,
int RegId);
129 uint32_t (*
assemble)(
void *Cpu,
const char *AsmStr);
130 char* (*disassemble)(
void *Cpu, uint32_t Instr);
temu_CpuState(* getState)(void *Cpu)
uint64_t(* getGpr)(void *Cpu, unsigned Reg)
Exited due to interrupt (async trap)
struct temu_CpuIface temu_CpuIface
Exited due to halting (e.g. sparc error mode)
temu_CpuExitReason(* step)(void *Cpu, uint64_t Steps)
uint32_t(* getFpr32)(void *Cpu, unsigned Reg)
#define OBJSYS_OBJ_TYPE(N)
Exited to enter idle mode.
void(* enableTraps)(void *Cpu)
void(* invalidateAtc)(void *Obj, uint64_t Addr, uint64_t Pages, uint32_t Flags)
Exited due to watchpoint write hit.
void(* setFpr32)(void *Cpu, unsigned Reg, uint32_t Value)
uint64_t(* getFreq)(void *Cpu)
void(* disableTraps)(void *Cpu)
void(* enterIdleMode)(void *Obj)
uint64_t(* getPc)(void *Cpu)
uint64_t(* getSpr)(void *Cpu, unsigned Reg)
void temu_CpuExitReason Reason
Exited due to watchpoint read hit.
int(* getRegId)(void *Cpu, const char *RegName)
void __attribute__((noreturn))(*raiseTrap)(void *Obj
Exited due to breakpoint hit.
int64_t(* getCycles)(void *Cpu)
void(* setGpr)(void *Cpu, int Reg, uint64_t Value)
uint32_t(* assemble)(void *Cpu, const char *AsmStr)
Normal exit (cannot be passed to early exit)
uint64_t(* getFpr64)(void *Cpu, unsigned Reg)
temu_CpuExitReason(* run)(void *Cpu, uint64_t Cycles)
void(* reset)(void *Cpu, int ResetType)
void(* setPc)(void *Cpu, uint64_t Pc)
void(* setFpr64)(void *Cpu, unsigned Reg, uint64_t Value)
uint64_t(* translateAddress)(void *Cpu, uint64_t Va, uint32_t *Flags)
int64_t(* getSteps)(void *Cpu)
Exited due to trap (sync trap)