sparc emulation target (thanx to Thomas M. Ogrisegg)
[qemu] / target-sparc / cpu.h
1 #ifndef CPU_SPARC_H
2 #define CPU_SPARC_H
3
4 #include <setjmp.h>
5 #include "config.h"
6 #include "cpu-defs.h"
7
8 /*#define EXCP_INTERRUPT 0x100*/
9
10
11 #define PSR_NEG   (1<<23)
12 #define PSR_ZERO  (1<<22)
13 #define PSR_OVF   (1<<21)
14 #define PSR_CARRY (1<<20)
15
16 typedef struct CPUSPARCState {
17         uint32_t gregs[8]; /* general registers */
18         uint32_t *regwptr; /* pointer to current register window */
19         double   *regfptr; /* floating point registers */
20         uint32_t pc;       /* program counter */
21         uint32_t npc;      /* next program counter */
22         uint32_t sp;       /* stack pointer */
23         uint32_t y;        /* multiply/divide register */
24         uint32_t psr;      /* processor state register */
25         uint32_t T2;
26         jmp_buf  jmp_env;
27         int user_mode_only;
28         int exception_index;
29         int interrupt_index;
30         int interrupt_request;
31         struct TranslationBlock *current_tb;
32         void *opaque;
33 } CPUSPARCState;
34
35 CPUSPARCState *cpu_sparc_init(void);
36 int cpu_sparc_exec(CPUSPARCState *s);
37 int cpu_sparc_close(CPUSPARCState *s);
38
39 struct siginfo;
40 int cpu_sparc_signal_handler(int hostsignum, struct siginfo *info, void *puc);
41 void cpu_sparc_dump_state(CPUSPARCState *env, FILE *f, int flags);
42
43 #define TARGET_PAGE_BITS 13
44 #include "cpu-all.h"
45
46 #endif