[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 15/20] target/arm: Add HELPER(rebuild_hflags_{a32, a64, m3
From: |
Alex Bennée |
Subject: |
Re: [PATCH v6 15/20] target/arm: Add HELPER(rebuild_hflags_{a32, a64, m32}) |
Date: |
Mon, 14 Oct 2019 19:59:12 +0100 |
User-agent: |
mu4e 1.3.5; emacs 27.0.50 |
Richard Henderson <address@hidden> writes:
> This functions are given the mode and el state of the cpu
> and writes the computed value to env->hflags.
>
> Signed-off-by: Richard Henderson <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
> ---
> target/arm/helper.h | 4 ++++
> target/arm/helper.c | 24 ++++++++++++++++++++++++
> 2 files changed, 28 insertions(+)
>
> diff --git a/target/arm/helper.h b/target/arm/helper.h
> index 1fb2cb5a77..3d4ec267a2 100644
> --- a/target/arm/helper.h
> +++ b/target/arm/helper.h
> @@ -90,6 +90,10 @@ DEF_HELPER_4(msr_banked, void, env, i32, i32, i32)
> DEF_HELPER_2(get_user_reg, i32, env, i32)
> DEF_HELPER_3(set_user_reg, void, env, i32, i32)
>
> +DEF_HELPER_FLAGS_2(rebuild_hflags_m32, TCG_CALL_NO_RWG, void, env,
> int)
> +DEF_HELPER_FLAGS_2(rebuild_hflags_a32, TCG_CALL_NO_RWG, void, env, int)
> +DEF_HELPER_FLAGS_2(rebuild_hflags_a64, TCG_CALL_NO_RWG, void, env, int)
> +
> DEF_HELPER_1(vfp_get_fpscr, i32, env)
> DEF_HELPER_2(vfp_set_fpscr, void, env, i32)
>
> diff --git a/target/arm/helper.c b/target/arm/helper.c
> index 37424e3d4d..b2d701cf00 100644
> --- a/target/arm/helper.c
> +++ b/target/arm/helper.c
> @@ -11220,6 +11220,30 @@ void arm_rebuild_hflags(CPUARMState *env)
> env->hflags = rebuild_hflags_internal(env);
> }
>
> +void HELPER(rebuild_hflags_m32)(CPUARMState *env, int el)
> +{
> + int fp_el = fp_exception_el(env, el);
> + ARMMMUIdx mmu_idx = arm_mmu_idx_el(env, el);
> +
> + env->hflags = rebuild_hflags_m32(env, fp_el, mmu_idx);
> +}
> +
> +void HELPER(rebuild_hflags_a32)(CPUARMState *env, int el)
> +{
> + int fp_el = fp_exception_el(env, el);
> + ARMMMUIdx mmu_idx = arm_mmu_idx_el(env, el);
> +
> + env->hflags = rebuild_hflags_a32(env, fp_el, mmu_idx);
> +}
> +
> +void HELPER(rebuild_hflags_a64)(CPUARMState *env, int el)
> +{
> + int fp_el = fp_exception_el(env, el);
> + ARMMMUIdx mmu_idx = arm_mmu_idx_el(env, el);
> +
> + env->hflags = rebuild_hflags_a64(env, el, fp_el, mmu_idx);
> +}
> +
> void cpu_get_tb_cpu_state(CPUARMState *env, target_ulong *pc,
> target_ulong *cs_base, uint32_t *pflags)
> {
--
Alex Bennée
- Re: [PATCH v6 10/20] target/arm: Simplify set of PSTATE_SS in cpu_get_tb_cpu_state, (continued)
- [PATCH v6 11/20] target/arm: Hoist computation of TBFLAG_A32.VFPEN, Richard Henderson, 2019/10/11
- [PATCH v6 13/20] target/arm: Split out arm_mmu_idx_el, Richard Henderson, 2019/10/11
- [PATCH v6 12/20] target/arm: Add arm_rebuild_hflags, Richard Henderson, 2019/10/11
- [PATCH v6 14/20] target/arm: Hoist store to cs_base in cpu_get_tb_cpu_state, Richard Henderson, 2019/10/11
- [PATCH v6 15/20] target/arm: Add HELPER(rebuild_hflags_{a32, a64, m32}), Richard Henderson, 2019/10/11
- Re: [PATCH v6 15/20] target/arm: Add HELPER(rebuild_hflags_{a32, a64, m32}),
Alex Bennée <=
- [PATCH v6 17/20] target/arm: Rebuild hflags at MSR writes, Richard Henderson, 2019/10/11
- [PATCH v6 16/20] target/arm: Rebuild hflags at EL changes, Richard Henderson, 2019/10/11
- [PATCH v6 18/20] target/arm: Rebuild hflags at CPSR writes, Richard Henderson, 2019/10/11
- [PATCH v6 19/20] target/arm: Rebuild hflags for M-profile., Richard Henderson, 2019/10/11
- [PATCH v6 20/20] target/arm: Rely on hflags correct in cpu_get_tb_cpu_state, Richard Henderson, 2019/10/11