mirror of https://github.com/xemu-project/xemu.git
ARM: enable XScale/iWMMXT in linux-user mode
In linux-user mode, the XScale/iWMMXT coprocessors must be enabled at reset so that we can run code that uses these instructions. Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
f3b974cd3b
commit
3a807decfa
|
@ -203,7 +203,13 @@ void cpu_reset(CPUARMState *env)
|
||||||
cpu_reset_model_id(env, id);
|
cpu_reset_model_id(env, id);
|
||||||
#if defined (CONFIG_USER_ONLY)
|
#if defined (CONFIG_USER_ONLY)
|
||||||
env->uncached_cpsr = ARM_CPU_MODE_USR;
|
env->uncached_cpsr = ARM_CPU_MODE_USR;
|
||||||
|
/* For user mode we must enable access to coprocessors */
|
||||||
env->vfp.xregs[ARM_VFP_FPEXC] = 1 << 30;
|
env->vfp.xregs[ARM_VFP_FPEXC] = 1 << 30;
|
||||||
|
if (arm_feature(env, ARM_FEATURE_IWMMXT)) {
|
||||||
|
env->cp15.c15_cpar = 3;
|
||||||
|
} else if (arm_feature(env, ARM_FEATURE_XSCALE)) {
|
||||||
|
env->cp15.c15_cpar = 1;
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
/* SVC mode with interrupts disabled. */
|
/* SVC mode with interrupts disabled. */
|
||||||
env->uncached_cpsr = ARM_CPU_MODE_SVC | CPSR_A | CPSR_F | CPSR_I;
|
env->uncached_cpsr = ARM_CPU_MODE_SVC | CPSR_A | CPSR_F | CPSR_I;
|
||||||
|
|
Loading…
Reference in New Issue