qemu-e2k/target/nios2
Richard Henderson d8c5521cc4 target/nios2: Clean up nios2_cpu_do_interrupt
Split out do_exception and do_iic_irq to handle bulk of the interrupt and
exception processing.  Parameterize the changes required to cpu state.

The status.EH bit, which protects some data against double-faults,
is only present with the MMU.  Several exception cases did not check
for status.EH being set, as required.

The status.IH bit, which had been set by EXCP_IRQ, is exclusive to
the external interrupt controller, which we do not yet implement.
The internal interrupt controller, when the MMU is also present,
sets the status.EH bit.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220421151735.31996-33-richard.henderson@linaro.org>
2022-04-26 08:16:41 -07:00
..
cpu-param.h
cpu.c target/nios2: Split control registers away from general registers 2022-04-26 08:16:41 -07:00
cpu.h target/nios2: Create EXCP_SEMIHOST for semi-hosting 2022-04-26 08:16:41 -07:00
helper.c target/nios2: Clean up nios2_cpu_do_interrupt 2022-04-26 08:16:41 -07:00
helper.h target/nios2: Split out helper for eret instruction 2022-04-26 08:16:41 -07:00
Kconfig meson: Introduce target-specific Kconfig 2021-07-09 18:21:34 +02:00
meson.build target/nios2: Build helper.c for system only 2022-04-26 08:16:40 -07:00
mmu.c target/nios2: Use hw/registerfields.h for CR_TLBMISC fields 2022-04-26 08:16:41 -07:00
mmu.h target: Include missing 'cpu.h' 2022-03-06 13:15:42 +01:00
monitor.c hmp: Pass monitor to mon_get_cpu_env() 2020-11-13 12:45:51 +00:00
nios2-semi.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
op_helper.c target/nios2: Split control registers away from general registers 2022-04-26 08:16:41 -07:00
trace-events target/nios2: Replace MMU_LOG with tracepoints 2022-03-03 09:36:38 -10:00
translate.c target/nios2: Create EXCP_SEMIHOST for semi-hosting 2022-04-26 08:16:41 -07:00