]>
git.proxmox.com Git - mirror_qemu.git/blob - target-sparc/cpu.h
4 #define TARGET_LONG_BITS 32
8 /*#define EXCP_INTERRUPT 0x100*/
10 /* trap definitions */
11 #define TT_ILL_INSN 0x02
12 #define TT_WIN_OVF 0x05
13 #define TT_WIN_UNF 0x06
14 #define TT_DIV_ZERO 0x2a
17 #define PSR_NEG (1<<23)
18 #define PSR_ZERO (1<<22)
19 #define PSR_OVF (1<<21)
20 #define PSR_CARRY (1<<20)
24 typedef struct CPUSPARCState
{
25 uint32_t gregs
[8]; /* general registers */
26 uint32_t *regwptr
; /* pointer to current register window */
27 double *regfptr
; /* floating point registers */
28 uint32_t pc
; /* program counter */
29 uint32_t npc
; /* next program counter */
30 uint32_t sp
; /* stack pointer */
31 uint32_t y
; /* multiply/divide register */
32 uint32_t psr
; /* processor state register */
34 uint32_t cwp
; /* index of current register window (extracted
36 uint32_t wim
; /* window invalid mask */
41 int interrupt_request
;
42 struct TranslationBlock
*current_tb
;
44 /* NOTE: we allow 8 more registers to handle wrapping */
45 uint32_t regbase
[NWINDOWS
* 16 + 8];
48 CPUSPARCState
*cpu_sparc_init(void);
49 int cpu_sparc_exec(CPUSPARCState
*s
);
50 int cpu_sparc_close(CPUSPARCState
*s
);
53 int cpu_sparc_signal_handler(int hostsignum
, struct siginfo
*info
, void *puc
);
54 void cpu_sparc_dump_state(CPUSPARCState
*env
, FILE *f
, int flags
);
56 #define TARGET_PAGE_BITS 13