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