mirror of
https://git.proxmox.com/git/qemu
synced 2025-08-07 00:36:06 +00:00
Fix logic bug which broke TLBL/TLBS handling somewhat.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3478 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
d951f6ff3f
commit
6276c76758
@ -472,9 +472,6 @@ void do_interrupt (CPUState *env)
|
|||||||
goto set_EPC;
|
goto set_EPC;
|
||||||
case EXCP_TLBS:
|
case EXCP_TLBS:
|
||||||
cause = 3;
|
cause = 3;
|
||||||
goto set_EPC;
|
|
||||||
case EXCP_THREAD:
|
|
||||||
cause = 25;
|
|
||||||
if (env->error_code == 1 && !(env->CP0_Status & (1 << CP0St_EXL))) {
|
if (env->error_code == 1 && !(env->CP0_Status & (1 << CP0St_EXL))) {
|
||||||
#if defined(TARGET_MIPSN32) || defined(TARGET_MIPS64)
|
#if defined(TARGET_MIPSN32) || defined(TARGET_MIPS64)
|
||||||
int R = env->CP0_BadVAddr >> 62;
|
int R = env->CP0_BadVAddr >> 62;
|
||||||
@ -488,6 +485,9 @@ void do_interrupt (CPUState *env)
|
|||||||
#endif
|
#endif
|
||||||
offset = 0x000;
|
offset = 0x000;
|
||||||
}
|
}
|
||||||
|
goto set_EPC;
|
||||||
|
case EXCP_THREAD:
|
||||||
|
cause = 25;
|
||||||
set_EPC:
|
set_EPC:
|
||||||
if (!(env->CP0_Status & (1 << CP0St_EXL))) {
|
if (!(env->CP0_Status & (1 << CP0St_EXL))) {
|
||||||
if (env->hflags & MIPS_HFLAG_BMASK) {
|
if (env->hflags & MIPS_HFLAG_BMASK) {
|
||||||
|
Loading…
Reference in New Issue
Block a user