diff options
Diffstat (limited to 'target-sparc/op_helper.c')
-rw-r--r-- | target-sparc/op_helper.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/target-sparc/op_helper.c b/target-sparc/op_helper.c index b168f9c..3f50827 100644 --- a/target-sparc/op_helper.c +++ b/target-sparc/op_helper.c @@ -2680,26 +2680,26 @@ void helper_wrpstate(target_ulong new_state) void helper_done(void) { - env->tl--; - env->tsptr = &env->ts[env->tl]; env->pc = env->tsptr->tpc; env->npc = env->tsptr->tnpc + 4; PUT_CCR(env, env->tsptr->tstate >> 32); env->asi = (env->tsptr->tstate >> 24) & 0xff; change_pstate((env->tsptr->tstate >> 8) & 0xf3f); PUT_CWP64(env, env->tsptr->tstate & 0xff); + env->tl--; + env->tsptr = &env->ts[env->tl]; } void helper_retry(void) { - env->tl--; - env->tsptr = &env->ts[env->tl]; env->pc = env->tsptr->tpc; env->npc = env->tsptr->tnpc; PUT_CCR(env, env->tsptr->tstate >> 32); env->asi = (env->tsptr->tstate >> 24) & 0xff; change_pstate((env->tsptr->tstate >> 8) & 0xf3f); PUT_CWP64(env, env->tsptr->tstate & 0xff); + env->tl--; + env->tsptr = &env->ts[env->tl]; } #endif |