mirror of https://github.com/xemu-project/xemu.git
qemu-sparc update
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQEcBAABAgAGBQJXEKbCAAoJEFvCxW+uDzIfh30H/2F/XC4Cd31/pgugvi7TuX2e OZ39eJCiZXrjOXvIQMvTh59pr0c9/TMSGvUVdWy5sONMhIgf5imsY3CHALP6KsBF xnu4b06H1/PWXSHJMEEdMxH0dNjgqYK4khyOPoEEgwkVbTwcljl4okxrJ2YIwsRw xOhQ74993jCtplLYQsfmjCsda68edlPvtsje8VaSDJxCJw8ZCp9984tgGqXOeq5Q vv1GMD2Q1Y55LUIs2o+fc4rEH8ifh56lPH5+6QmGLxppChjA5TaGauJA5TLI460Z lwboe8u+lBTnS2/6iWLBV21QsIg3UK3YMjm8YJue5BiFbn21bePFL5cjFLxO4cw= =bbm3 -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/mcayland/tags/qemu-sparc-signed' into staging qemu-sparc update # gpg: Signature made Fri 15 Apr 2016 09:30:58 BST using RSA key ID AE0F321F # gpg: Good signature from "Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>" * remotes/mcayland/tags/qemu-sparc-signed: target-sparc: fix Trap Based Address Register behavior for sparc64 target-sparc: fix Nucleus quad LDD 128 bit access for windowed registers Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
538a467329
|
@ -158,9 +158,8 @@ void sparc_cpu_do_interrupt(CPUState *cs)
|
|||
} else if ((intno & 0x1c0) == TT_FILL) {
|
||||
cpu_set_cwp(env, cpu_cwp_inc(env, env->cwp + 1));
|
||||
}
|
||||
env->tbr &= ~0x7fffULL;
|
||||
env->tbr |= ((env->tl > 1) ? 1 << 14 : 0) | (intno << 5);
|
||||
env->pc = env->tbr;
|
||||
env->pc = env->tbr & ~0x7fffULL;
|
||||
env->pc |= ((env->tl > 1) ? 1 << 14 : 0) | (intno << 5);
|
||||
env->npc = env->pc + 4;
|
||||
cs->exception_index = -1;
|
||||
}
|
||||
|
|
|
@ -2059,11 +2059,11 @@ void helper_ldda_asi(CPUSPARCState *env, target_ulong addr, int asi, int rd)
|
|||
bswap64s(&env->gregs[rd + 1]);
|
||||
}
|
||||
} else {
|
||||
env->regwptr[rd] = cpu_ldq_nucleus(env, addr);
|
||||
env->regwptr[rd + 1] = cpu_ldq_nucleus(env, addr + 8);
|
||||
env->regwptr[rd - 8] = cpu_ldq_nucleus(env, addr);
|
||||
env->regwptr[rd + 1 - 8] = cpu_ldq_nucleus(env, addr + 8);
|
||||
if (asi == 0x2c) {
|
||||
bswap64s(&env->regwptr[rd]);
|
||||
bswap64s(&env->regwptr[rd + 1]);
|
||||
bswap64s(&env->regwptr[rd - 8]);
|
||||
bswap64s(&env->regwptr[rd + 1 - 8]);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -2076,8 +2076,8 @@ void helper_ldda_asi(CPUSPARCState *env, target_ulong addr, int asi, int rd)
|
|||
env->gregs[rd] = helper_ld_asi(env, addr, asi, 4, 0);
|
||||
env->gregs[rd + 1] = helper_ld_asi(env, addr + 4, asi, 4, 0);
|
||||
} else {
|
||||
env->regwptr[rd] = helper_ld_asi(env, addr, asi, 4, 0);
|
||||
env->regwptr[rd + 1] = helper_ld_asi(env, addr + 4, asi, 4, 0);
|
||||
env->regwptr[rd - 8] = helper_ld_asi(env, addr, asi, 4, 0);
|
||||
env->regwptr[rd + 1 - 8] = helper_ld_asi(env, addr + 4, asi, 4, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue