zephyr/include/arch/arm/aarch32
Stephanos Ioannidis b63a028fbc arch: arm: aarch32: Rework non-Cortex-M context preservation
The current context preservation implementation saves the spsr and
lr_irq registers, which contain the cpsr and pc register values of the
interrupted context, in the thread callee-saved block and this prevents
nesting of interrupts because these values are required to be part of
the exception stack frame to preserve the nested interrupt context.

This commit reworks the AArch32 non-Cortex-M context preservation
implementation to save the spsr and lr_irq registers in the exception
stack frame to allow preservation of the nested interrupt context as
well as the interrupted thread context.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2020-04-02 09:22:38 +02:00
..
cortex_a_r arch: arm: aarch32: Rename cortex_r to cortex_a_r 2020-03-26 11:20:36 +01:00
cortex_m global: Replace BUILD_ASSERT_MSG() with BUILD_ASSERT() 2020-03-31 07:18:06 +02:00
cortex_r arch: arm: aarch32: Add header shims for cortex_a_r renaming 2020-03-26 11:20:36 +01:00
arch.h arch: arm: aarch32: Rename cortex_r to cortex_a_r 2020-03-26 11:20:36 +01:00
asm_inline_gcc.h arch: arm: aarch32: Rename cortex_r to cortex_a_r 2020-03-26 11:20:36 +01:00
asm_inline.h arch: arm: aarch32: Fix header description 2020-03-13 09:59:59 +01:00
error.h arch: arm: aarch32: Fix header description 2020-03-13 09:59:59 +01:00
exc.h arch: arm: aarch32: Fix header description 2020-03-13 09:59:59 +01:00
irq.h arch: arm: aarch32: Refactor interrupt interface 2020-03-13 09:59:59 +01:00
misc.h arch: arm: aarch32: Fix header description 2020-03-13 09:59:59 +01:00
nmi.h arch: arm: aarch32: Fix header description 2020-03-13 09:59:59 +01:00
syscall.h arch: arm: aarch32: Fix header description 2020-03-13 09:59:59 +01:00
thread.h arch: arm: aarch32: Rework non-Cortex-M context preservation 2020-04-02 09:22:38 +02:00