xref: /illumos-kvm-cmd/target-sparc/exec.h (revision 68396ea9)
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 #include "cpu.h"
9 #include "exec-all.h"
10 
11 #if !defined(CONFIG_USER_ONLY)
12 #include "softmmu_exec.h"
13 #endif /* !defined(CONFIG_USER_ONLY) */
14 
15 /* op_helper.c */
16 void do_interrupt(CPUState *env);
17 
cpu_has_work(CPUState * env1)18 static inline int cpu_has_work(CPUState *env1)
19 {
20     return (env1->interrupt_request & CPU_INTERRUPT_HARD) &&
21            cpu_interrupts_enabled(env1);
22 }
23 
24 
cpu_halted(CPUState * env1)25 static inline int cpu_halted(CPUState *env1) {
26     if (!env1->halted)
27         return 0;
28     if (cpu_has_work(env1)) {
29         env1->halted = 0;
30         return 0;
31     }
32     return EXCP_HALTED;
33 }
34 
cpu_pc_from_tb(CPUState * env,TranslationBlock * tb)35 static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb)
36 {
37     env->pc = tb->pc;
38     env->npc = tb->cs_base;
39 }
40 
41 #endif
42