zephyr/arch/sparc/core
Martin Åberg fbd9dd4526 SPARC: Add support for single-vector trapping (SVT)
This adds support for the single-vector trapping (SVT) model, defined by
SPARC-V8 Embedded (V8E) Architecture Specification. SVT is available in
most LEON processors.

With single-vector trapping enabled, all traps are vectored through a
single trap vector (TBR.A) rather than one 16-byte entry for each trap
type. This improves memory utilization because the full 4 KiB trap table
is not needed.

This implementation uses a two-level of lookup table to find the handler
for the trap type (0..255).
- Execution time is constant.
- Condition flags are preserved.
- The implementation footprint is 60 bytes .text and 284 bytes .rodata.
  For comparison, a non-SVT table is always 4096 .text.

Signed-off-by: Martin Åberg <martin.aberg@gaisler.com>
2024-11-25 21:53:55 +01:00
..
offsets arch: remove the use of z_arch_esf_t completely from internal 2024-06-04 14:02:51 -05:00
CMakeLists.txt SPARC: Add support for single-vector trapping (SVT) 2024-11-25 21:53:55 +01:00
fatal.c arch: define struct arch_esf and deprecate z_arch_esf_t 2024-06-04 14:02:51 -05:00
fault_trap.S arch: remove the use of z_arch_esf_t completely from internal 2024-06-04 14:02:51 -05:00
interrupt_trap.S
irq_manage.c
irq_offload.c arch: initialize irq_offload during boot, do not use SYS_INIT 2024-09-17 20:05:22 -04:00
prep_c.c cache: add new interface arch_cache_init() for initializing cache 2024-09-17 20:05:22 -04:00
reset_trap.S SPARC: Add support for single-vector trapping (SVT) 2024-11-25 21:53:55 +01:00
stack_offsets.h
sw_trap_set_pil.S
switch.S
thread.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
tls.c
trap_table_mvt.S
trap_table_svt.S SPARC: Add support for single-vector trapping (SVT) 2024-11-25 21:53:55 +01:00
window_trap.S