1#ifndef EXEC_SPARC_H 2#define EXEC_SPARC_H 1 3#include "config.h" 4#include "dyngen-exec.h" 5 6register 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 16static inline void env_to_regs(void) 17{ 18} 19 20static inline void regs_to_env(void) 21{ 22} 23 24/* op_helper.c */ 25void do_interrupt(CPUState *env); 26 27static 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 40static inline int cpu_has_work(CPUState *env1) 41{ 42 return (env1->interrupt_request & CPU_INTERRUPT_HARD) && 43 cpu_interrupts_enabled(env1); 44} 45 46 47static 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 58