mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06:00
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>
This commit is contained in:
parent
275ea26546
commit
5a834bb47c
7 changed files with 271 additions and 140 deletions
|
@ -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]));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue