target/arm: Un-inline access_secure_reg()
We would like to move arm_el_is_aa64() to internals.h; however, it is used by access_secure_reg(). Make that function not be inline, so that it can stay in cpu.h. access_secure_reg() is used only in two places: * in hflags.c * in the user-mode arm emulators, to decide whether to store the TLS value in the secure or non-secure banked field The second of these is not on a super-hot path that would care about the inlining (and incidentally will always use the NS banked field because our user-mode CPUs never set ARM_FEATURE_EL3); put the definition of access_secure_reg() in hflags.c, near its only use inside target/arm. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
eae0c3b659
commit
23560ada94
@ -2668,21 +2668,15 @@ static inline bool arm_el_is_aa64(CPUARMState *env, int el)
|
||||
return aa64;
|
||||
}
|
||||
|
||||
/* Function for determining whether guest cp register reads and writes should
|
||||
/*
|
||||
* Function for determining whether guest cp register reads and writes should
|
||||
* access the secure or non-secure bank of a cp register. When EL3 is
|
||||
* operating in AArch32 state, the NS-bit determines whether the secure
|
||||
* instance of a cp register should be used. When EL3 is AArch64 (or if
|
||||
* it doesn't exist at all) then there is no register banking, and all
|
||||
* accesses are to the non-secure version.
|
||||
*/
|
||||
static inline bool access_secure_reg(CPUARMState *env)
|
||||
{
|
||||
bool ret = (arm_feature(env, ARM_FEATURE_EL3) &&
|
||||
!arm_el_is_aa64(env, 3) &&
|
||||
!(env->cp15.scr_el3 & SCR_NS));
|
||||
|
||||
return ret;
|
||||
}
|
||||
bool access_secure_reg(CPUARMState *env);
|
||||
|
||||
uint32_t arm_phys_excp_target_el(CPUState *cs, uint32_t excp_idx,
|
||||
uint32_t cur_el, bool secure);
|
||||
|
@ -63,6 +63,15 @@ static bool aprofile_require_alignment(CPUARMState *env, int el, uint64_t sctlr)
|
||||
#endif
|
||||
}
|
||||
|
||||
bool access_secure_reg(CPUARMState *env)
|
||||
{
|
||||
bool ret = (arm_feature(env, ARM_FEATURE_EL3) &&
|
||||
!arm_el_is_aa64(env, 3) &&
|
||||
!(env->cp15.scr_el3 & SCR_NS));
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static CPUARMTBFlags rebuild_hflags_common(CPUARMState *env, int fp_el,
|
||||
ARMMMUIdx mmu_idx,
|
||||
CPUARMTBFlags flags)
|
||||
|
Loading…
x
Reference in New Issue
Block a user