[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v9 15/24] target/arm: Add HELPER(rebuild_hflags_{a32, a64, m32})
From: |
Richard Henderson |
Subject: |
[PATCH v9 15/24] target/arm: Add HELPER(rebuild_hflags_{a32, a64, m32}) |
Date: |
Wed, 23 Oct 2019 11:00:48 -0400 |
This functions are given the mode and el state of the cpu
and writes the computed value to env->hflags.
Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <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)
{
--
2.17.1
- [PATCH v9 22/24] linux-user/aarch64: Rebuild hflags for TARGET_WORDS_BIGENDIAN, (continued)
- [PATCH v9 22/24] linux-user/aarch64: Rebuild hflags for TARGET_WORDS_BIGENDIAN, Richard Henderson, 2019/10/23
- [PATCH v9 09/24] target/arm: Hoist XSCALE_CPAR, VECLEN, VECSTRIDE in cpu_get_tb_cpu_state, Richard Henderson, 2019/10/23
- [PATCH v9 17/24] target/arm: Rebuild hflags at MSR writes, Richard Henderson, 2019/10/23
- [PATCH v9 12/24] target/arm: Add arm_rebuild_hflags, Richard Henderson, 2019/10/23
- [PATCH v9 19/24] target/arm: Rebuild hflags at Xscale SCTLR writes, Richard Henderson, 2019/10/23
- [PATCH v9 14/24] target/arm: Hoist store to cs_base in cpu_get_tb_cpu_state, Richard Henderson, 2019/10/23
- [PATCH v9 05/24] target/arm: Split out rebuild_hflags_m32, Richard Henderson, 2019/10/23
- [PATCH v9 18/24] target/arm: Rebuild hflags at CPSR writes, Richard Henderson, 2019/10/23
- [PATCH v9 10/24] target/arm: Simplify set of PSTATE_SS in cpu_get_tb_cpu_state, Richard Henderson, 2019/10/23
- [PATCH v9 23/24] linux-user/arm: Rebuild hflags for TARGET_WORDS_BIGENDIAN, Richard Henderson, 2019/10/23
- [PATCH v9 15/24] target/arm: Add HELPER(rebuild_hflags_{a32, a64, m32}),
Richard Henderson <=
- [PATCH v9 02/24] target/arm: Split out rebuild_hflags_a64, Richard Henderson, 2019/10/23
- [PATCH v9 08/24] target/arm: Split out rebuild_hflags_aprofile, Richard Henderson, 2019/10/23
- [PATCH v9 01/24] target/arm: Split out rebuild_hflags_common, Richard Henderson, 2019/10/23
- [PATCH v9 21/24] target/arm: Rebuild hflags for M-profile NVIC, Richard Henderson, 2019/10/23
- [PATCH v9 24/24] target/arm: Rely on hflags correct in cpu_get_tb_cpu_state, Richard Henderson, 2019/10/23
- [PATCH v9 16/24] target/arm: Rebuild hflags at EL changes, Richard Henderson, 2019/10/23
- [PATCH v9 20/24] target/arm: Rebuild hflags for M-profile, Richard Henderson, 2019/10/23
- [PATCH v9 11/24] target/arm: Hoist computation of TBFLAG_A32.VFPEN, Richard Henderson, 2019/10/23
- Re: [PATCH v9 00/24] target/arm: Reduce overhead of cpu_get_tb_cpu_state, Peter Maydell, 2019/10/24