mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-07-03 05:38:23 +00:00
target/arm: Use the proper TBI settings for linux-user
We were fudging TBI1 enabled to speed up the generated code. Now that we've improved the code generation, remove this. Also, tidy the comment to reflect the current code. The pauth test was testing a kernel address (-1) and making incorrect assumptions about TBI1; stick to userland addresses. Backports 16c849784873d10d0da257d698e391fddea1f0e4
This commit is contained in:
parent
de982a8346
commit
84368d2d6d
|
@ -197,14 +197,10 @@ static void arm_cpu_reset(CPUState *s)
|
||||||
env->vfp.zcr_el[2] = env->vfp.zcr_el[1];
|
env->vfp.zcr_el[2] = env->vfp.zcr_el[1];
|
||||||
env->vfp.zcr_el[3] = env->vfp.zcr_el[1];
|
env->vfp.zcr_el[3] = env->vfp.zcr_el[1];
|
||||||
/*
|
/*
|
||||||
* Enable TBI0 and TBI1. While the real kernel only enables TBI0,
|
* Enable TBI0 but not TBI1.
|
||||||
* turning on both here will produce smaller code and otherwise
|
* Note that this must match useronly_clean_ptr.
|
||||||
* make no difference to the user-level emulation.
|
|
||||||
*
|
|
||||||
* In sve_probe_page, we assume that this is set.
|
|
||||||
* Do not modify this without other changes.
|
|
||||||
*/
|
*/
|
||||||
env->cp15.tcr_el[1].raw_tcr = (3ULL << 37);
|
env->cp15.tcr_el[1].raw_tcr = (1ULL << 37);
|
||||||
#else
|
#else
|
||||||
/* Reset into the highest available EL */
|
/* Reset into the highest available EL */
|
||||||
if (arm_feature(env, ARM_FEATURE_EL3)) {
|
if (arm_feature(env, ARM_FEATURE_EL3)) {
|
||||||
|
|
|
@ -1420,9 +1420,9 @@ static inline bool tcma_check(uint32_t desc, int bit55, int ptr_tag)
|
||||||
*/
|
*/
|
||||||
static inline uint64_t useronly_clean_ptr(uint64_t ptr)
|
static inline uint64_t useronly_clean_ptr(uint64_t ptr)
|
||||||
{
|
{
|
||||||
/* TBI is known to be enabled. */
|
|
||||||
#ifdef CONFIG_USER_ONLY
|
#ifdef CONFIG_USER_ONLY
|
||||||
ptr = sextract64(ptr, 0, 56);
|
/* TBI0 is known to be enabled, while TBI1 is disabled. */
|
||||||
|
ptr &= sextract64(ptr, 0, 56);
|
||||||
#endif
|
#endif
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue