|
|
1.1 root 1: #ifndef EXEC_SPARC_H
2: #define EXEC_SPARC_H 1
3: #include "config.h"
1.1.1.4 root 4: #include "dyngen-exec.h"
1.1 root 5:
6: register struct CPUSPARCState *env asm(AREG0);
1.1.1.3 root 7:
1.1 root 8: #define DT0 (env->dt0)
9: #define DT1 (env->dt1)
1.1.1.4 root 10: #define QT0 (env->qt0)
11: #define QT1 (env->qt1)
1.1 root 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:
1.1.1.5 root 24: /* op_helper.c */
25: void do_interrupt(CPUState *env);
1.1.1.4 root 26:
1.1.1.6 ! root 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:
1.1.1.5 root 47: static inline int cpu_halted(CPUState *env1) {
48: if (!env1->halted)
1.1.1.4 root 49: return 0;
1.1.1.6 ! root 50: if (cpu_has_work(env1)) {
1.1.1.5 root 51: env1->halted = 0;
1.1.1.4 root 52: return 0;
53: }
54: return EXCP_HALTED;
55: }
1.1 root 56:
57: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.