target-tricore: fix save_context_upper using env->PSW
authorBastian Koppelmann <kbastian@mail.uni-paderborn.de>
Tue, 16 Feb 2016 21:33:13 +0000 (22:33 +0100)
committerBastian Koppelmann <kbastian@mail.uni-paderborn.de>
Thu, 25 Feb 2016 11:51:27 +0000 (12:51 +0100)
If the cached bits for C, V, SV, AV, or SAV were set, they would
not be saved during the context save since env->PSW was stored instead
of properly reading them using psw_read().

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
target-tricore/op_helper.c

index 3aa6326edd0a4a92b555761a8fc370f0604d6e25..796fe67cc8d57512b79f3cc8e4bd3d113aef8bf8 100644 (file)
@@ -2279,7 +2279,7 @@ static bool cdc_zero(target_ulong *psw)
 static void save_context_upper(CPUTriCoreState *env, int ea)
 {
     cpu_stl_data(env, ea, env->PCXI);
-    cpu_stl_data(env, ea+4, env->PSW);
+    cpu_stl_data(env, ea+4, psw_read(env));
     cpu_stl_data(env, ea+8, env->gpr_a[10]);
     cpu_stl_data(env, ea+12, env->gpr_a[11]);
     cpu_stl_data(env, ea+16, env->gpr_d[8]);