diff options
author | Blue Swirl <blauwirbel@gmail.com> | 2010-05-09 20:19:04 +0000 |
---|---|---|
committer | Blue Swirl <blauwirbel@gmail.com> | 2010-05-09 20:19:04 +0000 |
commit | 5a834bb47c373e887de5210b7ceae96e1ef413f7 (patch) | |
tree | 3bf1890704941ea4ff5c17bf964d43fee8d26e70 /linux-user | |
parent | 275ea26546466446cf2ed83a93aa50e94538c203 (diff) |
sparc: Fix lazy flag calculation on interrupts, refactor
Recalculate Sparc64 CPU flags on interrupts, otherwise some earlier
flags could be stored to pstate.
Refactor PSR/CCR/CWP handling: concentrate the actual
functions to op_helper.c.
Thanks to Igor Kovalenko for reporting.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'linux-user')
-rw-r--r-- | linux-user/signal.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/linux-user/signal.c b/linux-user/signal.c index a72c15ca08..e5a187e106 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -2111,8 +2111,8 @@ void sparc64_set_context(CPUSPARCState *env) err |= __get_user(env->y, &((*grp)[MC_Y])); err |= __get_user(tstate, &((*grp)[MC_TSTATE])); env->asi = (tstate >> 24) & 0xff; - PUT_CCR(env, tstate >> 32); - PUT_CWP64(env, tstate & 0x1f); + cpu_put_ccr(env, tstate >> 32); + cpu_put_cwp64(env, tstate & 0x1f); err |= __get_user(env->gregs[1], (&(*grp)[MC_G1])); err |= __get_user(env->gregs[2], (&(*grp)[MC_G2])); err |= __get_user(env->gregs[3], (&(*grp)[MC_G3])); |