projects
/
qemu
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
b4f0a31
)
Clear BD slot on next exception if appropriate.
author
ths
<ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Mon, 7 May 2007 12:46:25 +0000
(12:46 +0000)
committer
ths
<ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Mon, 7 May 2007 12:46:25 +0000
(12:46 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2777
c046a42c
-6fe2-441c-8c8c-
71466251a162
target-mips/helper.c
patch
|
blob
|
history
diff --git
a/target-mips/helper.c
b/target-mips/helper.c
index
71a9723
..
8d9435a
100644
(file)
--- a/
target-mips/helper.c
+++ b/
target-mips/helper.c
@@
-302,6
+302,8
@@
void do_interrupt (CPUState *env)
env->hflags |= MIPS_HFLAG_DM;
env->hflags &= ~MIPS_HFLAG_UM;
/* EJTAG probe trap enable is not implemented... */
+ if (!(env->CP0_Status & (1 << CP0St_EXL)))
+ env->CP0_Cause &= ~(1 << CP0Ca_BD);
env->PC = (int32_t)0xBFC00480;
break;
case EXCP_RESET:
@@
-324,6
+326,8
@@
void do_interrupt (CPUState *env)
}
env->CP0_Status |= (1 << CP0St_ERL) | (1 << CP0St_BEV);
env->hflags &= ~MIPS_HFLAG_UM;
+ if (!(env->CP0_Status & (1 << CP0St_EXL)))
+ env->CP0_Cause &= ~(1 << CP0Ca_BD);
env->PC = (int32_t)0xBFC00000;
break;
case EXCP_MCHECK: