diff options
author | Peter Maydell | 2020-11-29 18:40:21 +0100 |
---|---|---|
committer | Peter Maydell | 2020-12-15 13:04:30 +0100 |
commit | 2c87548ef46040d0577cc362cab94561c1d98b8d (patch) | |
tree | 8332ce98acec8d09dbf58510e72832ccaa0ec24f /target | |
parent | target/nios2: Move IIC code into CPU object proper (diff) | |
download | qemu-2c87548ef46040d0577cc362cab94561c1d98b8d.tar.gz qemu-2c87548ef46040d0577cc362cab94561c1d98b8d.tar.xz qemu-2c87548ef46040d0577cc362cab94561c1d98b8d.zip |
target/nios2: Move nios2_check_interrupts() into target/nios2
The function nios2_check_interrupts)() looks only at CPU-internal
state; it belongs in target/nios2, not hw/nios2. Move it into the
same file as its only caller, so it can just be local to that file.
This removes the only remaining code from cpu_pic.c, so we can delete
that file entirely.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 20201129174022.26530-3-peter.maydell@linaro.org
Reviewed-by: Wentong Wu <wentong.wu@intel.com>
Tested-by: Wentong Wu <wentong.wu@intel.com>
Diffstat (limited to 'target')
-rw-r--r-- | target/nios2/cpu.h | 2 | ||||
-rw-r--r-- | target/nios2/op_helper.c | 9 |
2 files changed, 9 insertions, 2 deletions
diff --git a/target/nios2/cpu.h b/target/nios2/cpu.h index b7efb54ba7..2ab82fdc71 100644 --- a/target/nios2/cpu.h +++ b/target/nios2/cpu.h @@ -201,8 +201,6 @@ void nios2_cpu_do_unaligned_access(CPUState *cpu, vaddr addr, MMUAccessType access_type, int mmu_idx, uintptr_t retaddr); -void nios2_check_interrupts(CPUNios2State *env); - void do_nios2_semihosting(CPUNios2State *env); #define CPU_RESOLVING_TYPE TYPE_NIOS2_CPU diff --git a/target/nios2/op_helper.c b/target/nios2/op_helper.c index a60730faac..a59003855a 100644 --- a/target/nios2/op_helper.c +++ b/target/nios2/op_helper.c @@ -36,6 +36,15 @@ void helper_mmu_write(CPUNios2State *env, uint32_t rn, uint32_t v) mmu_write(env, rn, v); } +static void nios2_check_interrupts(CPUNios2State *env) +{ + if (env->irq_pending && + (env->regs[CR_STATUS] & CR_STATUS_PIE)) { + env->irq_pending = 0; + cpu_interrupt(env_cpu(env), CPU_INTERRUPT_HARD); + } +} + void helper_check_interrupts(CPUNios2State *env) { qemu_mutex_lock_iothread(); |