T-EMU  2
The Terma Emulator
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
Cpu.h
Go to the documentation of this file.
1 #ifndef TEMU_SUPPORT_CPU
2 #define TEMU_SUPPORT_CPU
3 
27 #include <stdint.h>
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
42 uint64_t temu_cpuGetFreq(void *Cpu);
43 
58 void temu_cpuSetPc(void *Cpu, uint64_t Pc);
59 
71 uint64_t temu_cpuGetPc(void *Cpu);
72 
87 void temu_cpuReset(void *Cpu, int ResetType);
88 
106 uint64_t temu_cpuRun(void *Cpu, uint64_t Cycles);
107 
127 uint64_t temu_cpuStep(void *Cpu, uint64_t Steps);
128 
129 
130 uint64_t temu_cpuGetReg(void *Cpu, unsigned Reg);
131 void temu_cpuSetReg(void *Cpu, unsigned Reg, uint64_t Value);
132 
133 float temu_cpuGetFpr32(void *Cpu, unsigned Reg);
134 uint32_t temu_cpuGetFpr32Bits(void *Cpu, unsigned Reg);
135 void temu_cpuSetFpr32(void *Cpu, unsigned Reg, float Value);
136 void temu_cpuSetFpr32Bits(void *Cpu, unsigned Reg, uint32_t Value);
137 
138 double temu_cpuGetFpr64(void *Cpu, unsigned Reg);
139 uint64_t temu_cpuGetFpr64Bits(void *Cpu, unsigned Reg);
140 void temu_cpuSetFpr64(void *Cpu, unsigned Reg, double Value);
141 void temu_cpuSetFpr64Bits(void *Cpu, unsigned Reg, uint64_t Value);
142 
143 void temu_cpuEnableTraps(void *Cpu);
144 void temu_cpuDisableTraps(void *Cpu);
145 
146 /* Sparc specific functions */
147 
148 typedef void (*temu_SparcAsrHandler)(void *Cpu, uint32_t Instr);
149 //typedef void (*temu_SparcAsiHandler)(void *Cpu, temu_MemTransaction *MT);
150 
151 int temu_sparcGetWindowCount(void *Cpu);
152 uint32_t temu_sparcGetWindowedReg(void *Cpu, int Window, unsigned Reg);
153 void temu_sparcSetWindowedReg(void *Cpu, int Window, unsigned Reg, uint32_t Value);
154 
155 void temu_sparcSetY(void *Cpu, uint64_t Value);
156 uint64_t temu_sparcGetY(void *Cpu);
157 
158 void temu_sparcSetAsr(void *Cpu, unsigned Reg, uint64_t Value);
159 uint64_t temu_sparcGetAsr(void *Cpu, unsigned Reg);
160 void temu_sparcSetAsrWriter(void *Cpu, unsigned Asr, temu_SparcAsrHandler Handler);
161 void temu_sparcSetAsrReader(void *Cpu, unsigned Asr, temu_SparcAsrHandler Handler);
162 
163 void temu_sparcSetPsr(void *Cpu, uint32_t Value);
164 uint32_t temu_sparcGetPsr(void *Cpu);
165 
166 void temu_sparcSetTbr(void *Cpu, uint32_t Value);
167 uint32_t temu_sparcGetTbr(void *Cpu);
168 
169 void temu_sparcSetWim(void *Cpu, uint32_t Value);
170 uint32_t temu_sparcGetWim(void *Cpu);
171 
172 void temu_sparcSetNPc(void *Cpu, uint32_t Value);
173 uint32_t temu_sparcGetNPc(void *Cpu);
174 
175 #ifdef __cplusplus
176 }
177 #endif
178 
179 #endif /* ! TEMU_SUPPORT_CPU */
void temu_cpuSetFpr32Bits(void *Cpu, unsigned Reg, uint32_t Value)
void temu_sparcSetY(void *Cpu, uint64_t Value)
uint64_t temu_sparcGetAsr(void *Cpu, unsigned Reg)
void temu_cpuDisableTraps(void *Cpu)
double temu_cpuGetFpr64(void *Cpu, unsigned Reg)
void temu_sparcSetTbr(void *Cpu, uint32_t Value)
uint32_t temu_sparcGetWindowedReg(void *Cpu, int Window, unsigned Reg)
uint64_t temu_cpuGetFreq(void *Cpu)
Get the clock frequency for the CPU.
uint64_t temu_cpuStep(void *Cpu, uint64_t Steps)
Run the processor for a number of steps.
uint32_t temu_sparcGetPsr(void *Cpu)
void temu_sparcSetNPc(void *Cpu, uint32_t Value)
void temu_sparcSetAsrReader(void *Cpu, unsigned Asr, temu_SparcAsrHandler Handler)
uint64_t temu_cpuGetFpr64Bits(void *Cpu, unsigned Reg)
void temu_cpuSetFpr32(void *Cpu, unsigned Reg, float Value)
void temu_cpuEnableTraps(void *Cpu)
uint64_t temu_cpuGetReg(void *Cpu, unsigned Reg)
uint32_t temu_sparcGetNPc(void *Cpu)
void temu_cpuSetFpr64(void *Cpu, unsigned Reg, double Value)
void temu_sparcSetPsr(void *Cpu, uint32_t Value)
void(* temu_SparcAsrHandler)(void *Cpu, uint32_t Instr)
Definition: Cpu.h:148
void temu_cpuReset(void *Cpu, int ResetType)
Reset the processor.
uint64_t temu_sparcGetY(void *Cpu)
uint32_t temu_cpuGetFpr32Bits(void *Cpu, unsigned Reg)
uint32_t temu_sparcGetTbr(void *Cpu)
uint64_t temu_cpuGetPc(void *Cpu)
Get the program counter.
float temu_cpuGetFpr32(void *Cpu, unsigned Reg)
void temu_sparcSetWindowedReg(void *Cpu, int Window, unsigned Reg, uint32_t Value)
void temu_cpuSetFpr64Bits(void *Cpu, unsigned Reg, uint64_t Value)
uint64_t temu_cpuRun(void *Cpu, uint64_t Cycles)
Run the processor for a number of cycles.
void temu_cpuSetPc(void *Cpu, uint64_t Pc)
Set the program counter.
void temu_sparcSetWim(void *Cpu, uint32_t Value)
void temu_cpuSetReg(void *Cpu, unsigned Reg, uint64_t Value)
int temu_sparcGetWindowCount(void *Cpu)
void temu_sparcSetAsrWriter(void *Cpu, unsigned Asr, temu_SparcAsrHandler Handler)
uint32_t temu_sparcGetWim(void *Cpu)
void temu_sparcSetAsr(void *Cpu, unsigned Reg, uint64_t Value)