qemu-arm
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]