Simplify noreturn exception vectors for current EL
All handlers for current EL exceptions panic and never return. Create
noreturn_* variants of exception vector macros without a return path.
Also rename the C handlers to make it clearer in the assembly that these
are not expected to return.
This is done in preparation for inserting speculation barriers after
ERETs, removing the _sp0 handlers which use all the 32 instructions
available in a vector table entry.
Change-Id: If6616686d9a28820ed223e4d3d0e9cdfc3271e52
diff --git a/src/arch/aarch64/hypervisor/exceptions.S b/src/arch/aarch64/hypervisor/exceptions.S
index ed218cb..fe89da8 100644
--- a/src/arch/aarch64/hypervisor/exceptions.S
+++ b/src/arch/aarch64/hypervisor/exceptions.S
@@ -107,35 +107,35 @@
.balign 0x800
vector_table_el2:
sync_cur_sp0:
- current_exception_sp0 el2 sync_current_exception
+ noreturn_current_exception_sp0 el2 sync_current_exception_noreturn
.balign 0x80
irq_cur_sp0:
- current_exception_sp0 el2 irq_current_exception
+ noreturn_current_exception_sp0 el2 irq_current_exception_noreturn
.balign 0x80
fiq_cur_sp0:
- current_exception_sp0 el2 fiq_current_exception
+ noreturn_current_exception_sp0 el2 fiq_current_exception_noreturn
.balign 0x80
serr_cur_sp0:
- current_exception_sp0 el2 serr_current_exception
+ noreturn_current_exception_sp0 el2 serr_current_exception_noreturn
.balign 0x80
sync_cur_spx:
- current_exception_spx el2 sync_current_exception
+ noreturn_current_exception_spx el2 sync_current_exception_noreturn
.balign 0x80
irq_cur_spx:
- current_exception_spx el2 irq_current_exception
+ noreturn_current_exception_spx el2 irq_current_exception_noreturn
.balign 0x80
fiq_cur_spx:
- current_exception_spx el2 fiq_current_exception
+ noreturn_current_exception_spx el2 fiq_current_exception_noreturn
.balign 0x80
serr_cur_spx:
- current_exception_spx el2 serr_current_exception
+ noreturn_current_exception_spx el2 serr_current_exception_noreturn
.balign 0x80
sync_lower_64: