Commit d8d24f5360 for qemu.org

commit d8d24f53600e4a9129f2197168916e960ee788d6
Author: Marco Liebel <marco.liebel@oss.qualcomm.com>
Date:   Mon Nov 9 15:21:42 2026 -0800

    target/hexagon: leave stack exchange to virtual SPSWAP

    Virtual RTE must restore status and branch to GELR without swapping
    SP and GOSP. An implicit swap undoes the explicit exit SPSWAP and
    resumes guest user code on the kernel stack.

    Signed-off-by: Marco Liebel <marco.liebel@oss.qualcomm.com>
    Reviewed-by: Brian Cain <brian.cain@oss.qualcomm.com>
    Signed-off-by: Brian Cain <brian.cain@oss.qualcomm.com>

diff --git a/target/hexagon/hexswi.c b/target/hexagon/hexswi.c
index f22d4a7751..acc68aa6c2 100644
--- a/target/hexagon/hexswi.c
+++ b/target/hexagon/hexswi.c
@@ -831,12 +831,6 @@ void hexagon_vmrte(CPUHexagonState *env)
     uint32_t old_ssr = env->t_sreg[HEX_SREG_SSR];
     CPUState *cs = env_cpu(env);

-    if (GET_FIELD(GSR_UM, gsr)) {
-        uint32_t sp = env->gpr[HEX_REG_SP];
-
-        env->gpr[HEX_REG_SP] = env->greg[HEX_GREG_GOSP];
-        env->greg[HEX_GREG_GOSP] = sp;
-    }
     SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_SS,
                      GET_FIELD(GSR_SS, gsr));
     SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_GM,