target/xtensa: enable all coprocessors for linux-user
authorMax Filippov <jcmvbkbc@gmail.com>
Sat, 29 Aug 2020 10:47:58 +0000 (03:47 -0700)
committerLaurent Vivier <laurent@vivier.eu>
Mon, 26 Oct 2020 11:07:19 +0000 (12:07 +0100)
Linux userspace always sees coprocessors as enabled. CPENABLE register
and coprocessor exceptions are used internally by the kernel to manage
lazy coprocessor context switch. None of it is needed for linux-user.
Always enable all coprocessors for user emulation.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200829104758.22337-1-jcmvbkbc@gmail.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
target/xtensa/cpu.c

index 6a033e778c953f9fa10ef9cae1435873ceefbf08..88a32268a18b952a4befa678b2581a09a272f47d 100644 (file)
@@ -93,6 +93,7 @@ static void xtensa_cpu_reset(DeviceState *dev)
         !xtensa_abi_call0()) {
         env->sregs[PS] |= PS_WOE;
     }
+    env->sregs[CPENABLE] = 0xff;
 #endif
     env->sregs[VECBASE] = env->config->vecbase;
     env->sregs[IBREAKENABLE] = 0;