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/machine.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'target-sparc/machine.c') diff --git a/target-sparc/machine.c b/target-sparc/machine.c index 4b87ec6d97..752e431778 100644 --- a/target-sparc/machine.c +++ b/target-sparc/machine.c @@ -33,7 +33,7 @@ void cpu_save(QEMUFile *f, void *opaque) qemu_put_betls(f, &env->pc); qemu_put_betls(f, &env->npc); qemu_put_betls(f, &env->y); - tmp = GET_PSR(env); + tmp = cpu_get_psr(env); qemu_put_be32(f, tmp); qemu_put_betls(f, &env->fsr); qemu_put_betls(f, &env->tbr); @@ -130,7 +130,7 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id) tmp = qemu_get_be32(f); env->cwp = 0; /* needed to ensure that the wrapping registers are correctly updated */ - PUT_PSR(env, tmp); + cpu_put_psr(env, tmp); qemu_get_betls(f, &env->fsr); qemu_get_betls(f, &env->tbr); tmp = qemu_get_be32(f); -- cgit v1.2.1