]> Git Repo - qemu.git/blob - target-unicore32/exec.h
unicore32: add target-unicore32 directory for unicore32-linux-user support
[qemu.git] / target-unicore32 / exec.h
1 /*
2  *  UniCore32 execution defines
3  *
4  * Copyright (C) 2010-2011 GUAN Xue-tao
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10 #ifndef __UC32_EXEC_H__
11 #define __UC32_EXEC_H__
12
13 #include "config.h"
14 #include "dyngen-exec.h"
15
16 register struct CPUState_UniCore32 *env asm(AREG0);
17
18 #include "cpu.h"
19 #include "exec-all.h"
20
21 static inline void env_to_regs(void)
22 {
23 }
24
25 static inline void regs_to_env(void)
26 {
27 }
28
29 static inline int cpu_has_work(CPUState *env)
30 {
31     return env->interrupt_request &
32         (CPU_INTERRUPT_HARD | CPU_INTERRUPT_EXITTB);
33 }
34
35 static inline int cpu_halted(CPUState *env)
36 {
37     if (!env->halted) {
38         return 0;
39     }
40     /* An interrupt wakes the CPU even if the I and R ASR bits are
41        set.  We use EXITTB to silently wake CPU without causing an
42        actual interrupt.  */
43     if (cpu_has_work(env)) {
44         env->halted = 0;
45         return 0;
46     }
47     return EXCP_HALTED;
48 }
49
50 #endif /* __UC32_EXEC_H__ */
This page took 0.031865 seconds and 4 git commands to generate.