diff options
author | edgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-06-09 23:18:06 +0000 |
---|---|---|
committer | edgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-06-09 23:18:06 +0000 |
commit | 1b1a38b0aaf3a24b9b8162d8aef9e700a42f8d43 (patch) | |
tree | 1492c8dbf290afdd5fe16fb1437729671ef287ec /cpu-exec.c | |
parent | 5bf8f1aba1ab727713edf4084e7bc841dd1e6732 (diff) |
CRIS: Emulate NMIs.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4719 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'cpu-exec.c')
-rw-r--r-- | cpu-exec.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/cpu-exec.c b/cpu-exec.c index 3a1ff4e07..b8c208b41 100644 --- a/cpu-exec.c +++ b/cpu-exec.c @@ -501,7 +501,15 @@ int cpu_exec(CPUState *env1) next_tb = 0; } #elif defined(TARGET_CRIS) - if (interrupt_request & CPU_INTERRUPT_HARD) { + if (interrupt_request & CPU_INTERRUPT_HARD + && (env->pregs[PR_CCS] & I_FLAG)) { + env->exception_index = EXCP_IRQ; + do_interrupt(env); + next_tb = 0; + } + if (interrupt_request & CPU_INTERRUPT_NMI + && (env->pregs[PR_CCS] & M_FLAG)) { + env->exception_index = EXCP_NMI; do_interrupt(env); next_tb = 0; } |