qemu-e2k/hw
Peter Maydell 5ede82b8cc target/arm: Add armv7m_nvic_set_pending_derived()
In order to support derived exceptions (exceptions generated in
the course of trying to take an exception), we need to be able
to handle prioritizing whether to take the original exception
or the derived exception.

We do this by introducing a new function
armv7m_nvic_set_pending_derived() which the exception-taking code in
helper.c will call when a derived exception occurs.  Derived
exceptions are dealt with mostly like normal pending exceptions, so
we share the implementation with the armv7m_nvic_set_pending()
function.

Note that the way we structure this is significantly different
from the v8M Arm ARM pseudocode: that does all the prioritization
logic in the DerivedLateArrival() function, whereas we choose to
let the existing "identify highest priority exception" logic
do the prioritization for us. The effect is the same, though.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 1517324542-6607-2-git-send-email-peter.maydell@linaro.org
2018-02-09 10:40:27 +00:00
..
9pfs tests: virtio-9p: add FLUSH operation test 2018-02-02 11:11:55 +01:00
acpi nvdimm: add 'unarmed' option 2018-01-19 11:18:51 -02:00
adc maint: Fix macros with broken 'do/while(0); ' usage 2018-01-16 14:54:52 +01:00
alpha Merge remote-tracking branch 'origin/master' into HEAD 2018-01-11 22:03:50 +02:00
arm hw/arm: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:26:42 +01:00
audio hw/audio/sb16.c: change dolog() to qemu_log_mask() 2018-02-02 08:19:47 +01:00
block block: Move NVMe constants to a separate header 2018-02-08 09:22:03 +08:00
bt hw/bt: Replace fprintf(stderr, "*\n" with error_report() 2018-01-22 09:51:00 +01:00
char hw: convert the escc device to keycodemapdb 2018-01-29 09:30:25 +01:00
core * socket option parsing fix (Daniel) 2018-02-07 20:40:36 +00:00
cpu
cris
display exynos4210: workaround UBSAN compilation error 2018-02-05 18:09:45 +01:00
dma hw/dma: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:09 +01:00
gpio Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
hppa hw/hppa: Use qemu_log_mask instead of fprintf to stderr 2018-02-04 14:11:03 -08:00
i2c i2c: Add a CONFIG_I2C master switch to the configuration files 2018-02-05 18:09:45 +01:00
i386 qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
ide Pull request for various patches that have been reviewed and 2018-01-23 10:15:09 +00:00
input qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
intc target/arm: Add armv7m_nvic_set_pending_derived() 2018-02-09 10:40:27 +00:00
ipack
ipmi ipmi: Allow BMC device properties to be set 2018-01-30 15:52:53 -06:00
isa hw/isa: Replace fprintf(stderr, "*\n" with error_report() 2018-01-22 09:51:00 +01:00
lm32 hw/lm32: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:26 +01:00
m68k
mem nvdimm: add 'unarmed' option 2018-01-19 11:18:51 -02:00
microblaze xlnx-zynqmp-pmu: Connect the IPI device to the PMU 2018-01-26 11:09:09 +01:00
mips hw/mips: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:26 +01:00
misc ivshmem: Disable irqfd on device reset 2018-02-07 14:09:24 +01:00
moxie hw/moxie: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:26 +01:00
net qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
nios2
nvram i2c: Add a CONFIG_I2C master switch to the configuration files 2018-02-05 18:09:45 +01:00
openrisc hw/openrisc: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:26 +01:00
pci hw/pci*: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:26 +01:00
pci-bridge qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
pci-host hw/pci*: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:26 +01:00
pcmcia
ppc Error reporting patches for 2018-02-06 2018-02-07 16:26:01 +00:00
s390x s390x: fix storage attributes migration for non-small guests 2018-01-22 11:04:52 +01:00
scsi scsi-generic: Simplify error handling code 2018-02-05 13:54:39 +01:00
sd hw/sd: Replace fprintf(stderr, "*\n" with DPRINTF() 2018-02-06 18:29:26 +01:00
sh4
smbios Merge remote-tracking branch 'origin/master' into HEAD 2018-01-11 22:03:50 +02:00
sparc hw/sparc*: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:46 +01:00
sparc64 hw/sparc*: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:46 +01:00
ssi xilinx_spips: Correct usage of an uninitialized local variable 2018-01-25 11:45:30 +00:00
timer qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
tpm tpm: tis: move one-line function into caller 2018-02-03 09:01:56 -05:00
tricore
unicore32
usb usb-ccid: convert CCIDCardClass::exitfn() -> unrealize() 2018-01-26 07:59:33 +01:00
vfio * socket option parsing fix (Daniel) 2018-02-07 20:40:36 +00:00
virtio memfd: add error argument, instead of perror() 2018-02-07 14:09:25 +01:00
watchdog
xen hw/xen*: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:46 +01:00
xenpv hw/xen*: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:46 +01:00
xtensa target/xtensa: allow different default CPU for MMU/noMMU 2018-01-22 11:54:23 -08:00
Makefile.objs