On 1/5/19 2:25 AM, Peter Maydell wrote: > On Fri, 14 Dec 2018 at 05:24, Richard Henderson > <richard.hender...@linaro.org> wrote: >> >> The cryptographic internals are stubbed out for now, >> but the enable and trap bits are checked. >> >> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> >> ---- > >> +static void QEMU_NORETURN pauth_trap(CPUARMState *env, int target_el, >> + uintptr_t ra) >> +{ >> + CPUState *cs = ENV_GET_CPU(env); >> + >> + cs->exception_index = EXCP_UDEF; >> + env->exception.syndrome = syn_pactrap(); >> + env->exception.target_el = target_el; >> + cpu_loop_exit_restore(cs, ra); > > This should use raise_exception(), or some variant on it that > lets you pass in the ra, because otherwise you lose the > "redirect EL1 exceptions to EL2" HCR.TGE behaviour. > Or can we only ever call this for a target_el of 2 or 3?
This particular usage can only ever target EL 2 or 3, in response to {SCR,HCR}.API being clear. AFAICS that trap is properly directed already. But, yes, raise_exception_ra would be useful. r~