target/arm: Hoist store to cs_base in cpu_get_tb_cpu_state
authorRichard Henderson <richard.henderson@linaro.org>
Wed, 23 Oct 2019 15:00:47 +0000 (11:00 -0400)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 24 Oct 2019 16:16:28 +0000 (17:16 +0100)
By performing this store early, we avoid having to save and restore
the register holding the address around any function calls.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20191023150057.25731-15-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target/arm/helper.c

index 3f7d3f257d833e831b7d8ba56394e38d91219840..37424e3d4dd0bdbc837d7baddd311c3bfadd2d7e 100644 (file)
@@ -11225,6 +11225,7 @@ void cpu_get_tb_cpu_state(CPUARMState *env, target_ulong *pc,
 {
     uint32_t flags, pstate_for_ss;
 
+    *cs_base = 0;
     flags = rebuild_hflags_internal(env);
 
     if (is_a64(env)) {
@@ -11298,7 +11299,6 @@ void cpu_get_tb_cpu_state(CPUARMState *env, target_ulong *pc,
     }
 
     *pflags = flags;
-    *cs_base = 0;
 }
 
 #ifdef TARGET_AARCH64