Commit 3a1363ac authored by Alexander Graf's avatar Alexander Graf Committed by Peter Maydell
Browse files

linux-user: ARM: Ignore immediate value for svc in thumb mode



When running in thumb mode, Linux doesn't evaluate the immediate value
of the svc instruction, but instead just always assumes the syscall number
to be in r7.

This fixes executing go_bootstrap while building go for me.

Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
Reviewed-by: default avatarPeter Maydell <peter.maydell@linaro.org>
Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parent 806d1021
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -822,8 +822,7 @@ void cpu_loop(CPUARMState *env)
                } else if (n == ARM_NR_semihosting
                           || n == ARM_NR_thumb_semihosting) {
                    env->regs[0] = do_arm_semihosting (env);
                } else if (n == 0 || n >= ARM_SYSCALL_BASE
                           || (env->thumb && n == ARM_THUMB_SYSCALL)) {
                } else if (n == 0 || n >= ARM_SYSCALL_BASE || env->thumb) {
                    /* linux syscall */
                    if (env->thumb || n == 0) {
                        n = env->regs[7];