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 --- target-sparc/helper.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'target-sparc/helper.c') diff --git a/target-sparc/helper.c b/target-sparc/helper.c index 0ba7c9f..4642122 100644 --- a/target-sparc/helper.c +++ b/target-sparc/helper.c @@ -1490,10 +1490,10 @@ void cpu_dump_state(CPUState *env, FILE *f, } #ifdef TARGET_SPARC64 cpu_fprintf(f, "pstate: %08x ccr: %02x (icc: ", env->pstate, - GET_CCR(env)); - cpu_print_cc(f, cpu_fprintf, GET_CCR(env) << PSR_CARRY_SHIFT); + cpu_get_ccr(env)); + cpu_print_cc(f, cpu_fprintf, cpu_get_ccr(env) << PSR_CARRY_SHIFT); cpu_fprintf(f, " xcc: "); - cpu_print_cc(f, cpu_fprintf, GET_CCR(env) << (PSR_CARRY_SHIFT - 4)); + cpu_print_cc(f, cpu_fprintf, cpu_get_ccr(env) << (PSR_CARRY_SHIFT - 4)); cpu_fprintf(f, ") asi: %02x tl: %d pil: %x\n", env->asi, env->tl, env->psrpil); cpu_fprintf(f, "cansave: %d canrestore: %d otherwin: %d wstate: %d " @@ -1503,8 +1503,8 @@ void cpu_dump_state(CPUState *env, FILE *f, cpu_fprintf(f, "fsr: " TARGET_FMT_lx " y: " TARGET_FMT_lx " fprs: " TARGET_FMT_lx "\n", env->fsr, env->y, env->fprs); #else - cpu_fprintf(f, "psr: %08x (icc: ", GET_PSR(env)); - cpu_print_cc(f, cpu_fprintf, GET_PSR(env)); + cpu_fprintf(f, "psr: %08x (icc: ", cpu_get_psr(env)); + cpu_print_cc(f, cpu_fprintf, cpu_get_psr(env)); cpu_fprintf(f, " SPE: %c%c%c) wim: %08x\n", env->psrs? 'S' : '-', env->psrps? 'P' : '-', env->psret? 'E' : '-', env->wim); -- cgit v1.1