From 5a834bb47c373e887de5210b7ceae96e1ef413f7 Mon Sep 17 00:00:00 2001 From: Blue Swirl Date: Sun, 9 May 2010 20:19:04 +0000 Subject: 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 --- linux-user/signal.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'linux-user/signal.c') diff --git a/linux-user/signal.c b/linux-user/signal.c index a72c15ca0..e5a187e10 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])); -- cgit v1.2.3