Update the xtensa backend to work better with the new fatal error architecture. Move the stack frame dump (xtensa uses a variable-size frame becuase we don't spill unused register windows, so it doesn't strictly have an ESF struct) into z_xtensa_fatal_error(). Unify the older exception logging with the newer one (they'd been sort of glomed together in the recent rework), mostly using the asm2 code but with the exception cause stringification and the PS register field extraction from the older one. Note that one shortcoming is that the way the dispatch code works, we don't have access to the spilled frame from within the spurious error handler, so this can't log the interrupted CPU state. This isn't fixable easily without adding overhead to every interrupt entry, so it needs to stay the way it is for now. Longer term we could exract the caller frame from the window state and figure it out with some elaborate assembly, I guess. Fixes #18140 Signed-off-by: Andy Ross <andrew.j.ross@intel.com> |
||
|---|---|---|
| .. | ||
| arc | ||
| arm | ||
| common | ||
| nios2 | ||
| posix | ||
| riscv | ||
| x86 | ||
| x86_64 | ||
| xtensa | ||
| cpu.h | ||
| syscall.h | ||