The target el for raising an exception currently lives in at
least 3 places: exception_target_el, arm_debug_target_el, and
in {sve,fp}_exception_el.
This patch set aims to put all of the routing into the same place.
For the purposes of prep for SME, the goal is the last patch,
where we do not confuse the level at which SVE exceptions are
trapped with the level to which exceptions are delivered.
I suspect that the existing SME prep patch where I remove the
fp checks and then compare fp vs sve el, is flawed while this
route_to_el2 line is still present.
The end result for debug exceptions isn't quite as clean as I
was hoping, but hopefully it's still better than before.
r~
Richard Henderson (18):
target/arm: Allow raise_exception to handle finding target EL
target/arm: Use arm_current_el for simple exceptions
target/arm: Move and expand parameters to exception_target_el
target/arm: Move HCR_TGE check into exception_target_el
target/arm: Move arm_singlestep_active out of line
target/arm: Move arm_generate_debug_exceptions out of line
target/arm: Hoist arm_current_el in arm_generate_debug_exceptions
target/arm: Use is_a64 in arm_generate_debug_exceptions
target/arm: Move exception_bkpt_insn to debug_helper.c
target/arm: Move arm_debug_exception_fsr to debug_helper.c
target/arm: Move arm_debug_target_el to internals.h
target/arm: Create raise_exception_debug
target/arm: Move MDCR_TDE test into exception_target_el
target/arm: Mark exception helpers as noreturn
target/arm: Create helper_exception_swstep
target/arm: Remove TBFLAG_ANY.DEBUG_TARGET_EL
target/arm: Add cur_el parameter to arm_generate_debug_exceptions
target/arm: Remove route_to_el2 case from sve_exception_el
target/arm/cpu.h | 128 +---------------------------
target/arm/helper.h | 7 +-
target/arm/internals.h | 64 +++++---------
target/arm/translate.h | 14 +---
target/arm/debug_helper.c | 167 ++++++++++++++++++++++++++++++++++---
target/arm/helper-a64.c | 7 +-
target/arm/helper.c | 25 ++----
target/arm/mte_helper.c | 7 +-
target/arm/op_helper.c | 128 ++++++++++++++++++----------
target/arm/tlb_helper.c | 10 ++-
target/arm/translate-a64.c | 1 -
target/arm/translate.c | 1 -
12 files changed, 289 insertions(+), 270 deletions(-)
--
2.34.1