root / target-sparc / exec.h @ 7e8695ed
History | View | Annotate | Download (977 Bytes)
1 |
#ifndef EXEC_SPARC_H
|
---|---|
2 |
#define EXEC_SPARC_H 1 |
3 |
#include "config.h" |
4 |
#include "dyngen-exec.h" |
5 |
|
6 |
register struct CPUSPARCState *env asm(AREG0); |
7 |
|
8 |
#define DT0 (env->dt0)
|
9 |
#define DT1 (env->dt1)
|
10 |
#define QT0 (env->qt0)
|
11 |
#define QT1 (env->qt1)
|
12 |
|
13 |
#include "cpu.h" |
14 |
#include "exec-all.h" |
15 |
|
16 |
static inline void env_to_regs(void) |
17 |
{ |
18 |
} |
19 |
|
20 |
static inline void regs_to_env(void) |
21 |
{ |
22 |
} |
23 |
|
24 |
/* op_helper.c */
|
25 |
void do_interrupt(CPUState *env);
|
26 |
|
27 |
static inline int cpu_interrupts_enabled(CPUState *env1) |
28 |
{ |
29 |
#if !defined (TARGET_SPARC64)
|
30 |
if (env1->psret != 0) |
31 |
return 1; |
32 |
#else
|
33 |
if (env1->pstate & PS_IE)
|
34 |
return 1; |
35 |
#endif
|
36 |
|
37 |
return 0; |
38 |
} |
39 |
|
40 |
static inline int cpu_has_work(CPUState *env1) |
41 |
{ |
42 |
return (env1->interrupt_request & CPU_INTERRUPT_HARD) &&
|
43 |
cpu_interrupts_enabled(env1); |
44 |
} |
45 |
|
46 |
|
47 |
static inline int cpu_halted(CPUState *env1) { |
48 |
if (!env1->halted)
|
49 |
return 0; |
50 |
if (cpu_has_work(env1)) {
|
51 |
env1->halted = 0;
|
52 |
return 0; |
53 |
} |
54 |
return EXCP_HALTED;
|
55 |
} |
56 |
|
57 |
#endif
|