865bbd6b69
Xtensa register windows have a special exception that happens when the stack pointer needs to be moved, but the caller function has already spilled its registers below it. I thought these were unexercised in Zephyr code, but they turn out to be thrown by the existing mem_pool tests when run in the 32-register qemu environment (but not on 64-register hardwre). Because the effect of the exception is to unspill the caller, there is no good way to handle this in a traditional handler. Instead put a 5-instruction stub in front of the user exception handler (i.e. incurring that cost on every trap and every L1 interrupt) to test before doing the normal entry. Works, but would be nicer to optimize this in the future so that only true alloca exceptions take that cost. Signed-off-by: Andy Ross <andrew.j.ross@intel.com> |
||
---|---|---|
.. | ||
offsets | ||
startup | ||
CMakeLists.txt | ||
atomic.S | ||
cpu_idle.c | ||
crt1.S | ||
fatal.c | ||
irq_manage.c | ||
irq_offload.c | ||
swap.S | ||
thread.c | ||
window_vectors.S | ||
xt_zephyr.S | ||
xtensa-asm2-util.S | ||
xtensa-asm2.c | ||
xtensa_context.S | ||
xtensa_intgen.py | ||
xtensa_intgen.tmpl | ||
xtensa_intr.c | ||
xtensa_intr_asm.S | ||
xtensa_vectors.S |