diff options
author | ths <ths@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-06-22 10:11:48 +0000 |
---|---|---|
committer | ths <ths@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-06-22 10:11:48 +0000 |
commit | d10927f86bd2458fd154fc5a8b529d7e54846c14 (patch) | |
tree | 68e26b98bfb20203c565d1841a16cc2c64deceb4 /target-sh4 | |
parent | 8b6e0729aa1965e3db366887ca47ec3c96f0ab2a (diff) |
Add missing cpu_halted function, by Magnus Damm.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2998 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-sh4')
-rw-r--r-- | target-sh4/cpu.h | 1 | ||||
-rw-r--r-- | target-sh4/exec.h | 10 |
2 files changed, 11 insertions, 0 deletions
diff --git a/target-sh4/cpu.h b/target-sh4/cpu.h index 00ee06268..4f25b6caf 100644 --- a/target-sh4/cpu.h +++ b/target-sh4/cpu.h @@ -114,6 +114,7 @@ typedef struct CPUSH4State { jmp_buf jmp_env; int user_mode_only; int interrupt_request; + int halted; int exception_index; CPU_COMMON tlb_t utlb[UTLB_SIZE]; /* unified translation table */ tlb_t itlb[ITLB_SIZE]; /* instruction translation table */ diff --git a/target-sh4/exec.h b/target-sh4/exec.h index 356330030..84f29319e 100644 --- a/target-sh4/exec.h +++ b/target-sh4/exec.h @@ -36,6 +36,16 @@ register uint32_t T1 asm(AREG2); #include "cpu.h" #include "exec-all.h" +static inline int cpu_halted(CPUState *env) { + if (!env->halted) + return 0; + if (env->interrupt_request & CPU_INTERRUPT_HARD) { + env->halted = 0; + return 0; + } + return EXCP_HALTED; +} + #ifndef CONFIG_USER_ONLY #include "softmmu_exec.h" #endif |