Statistics
| Branch: | Revision:

root / target-sparc / exec.h @ fe0d4d3f

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