OSDN Git Service
(root)
/
qmiga
/
qemu.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
fd5d5af
)
cris: Abort when a v10 takes interrupts while in a delayslot
author
Edgar E. Iglesias
<edgar.iglesias@xilinx.com>
Sat, 18 Jan 2014 04:07:48 +0000
(
04:07
+0000)
committer
Edgar E. Iglesias
<edgar.iglesias@xilinx.com>
Mon, 3 Feb 2014 14:03:59 +0000
(14:03 +0000)
This is an internal error as the CRISv10 should mask interrupts
while executing delay slots. Bail out sooner rather than later.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
target-cris/helper.c
patch
|
blob
|
history
diff --git
a/target-cris/helper.c
b/target-cris/helper.c
index
d274b38
..
c940582
100644
(file)
--- a/
target-cris/helper.c
+++ b/
target-cris/helper.c
@@
-126,6
+126,11
@@
void crisv10_cpu_do_interrupt(CPUState *cs)
env->exception_index,
cs->interrupt_request);
+ if (env->dslot) {
+ /* CRISv10 never takes interrupts while in a delay-slot. */
+ cpu_abort(env, "CRIS: Interrupt on delay-slot\n");
+ }
+
assert(!(env->pregs[PR_CCS] & PFIX_FLAG));
switch (env->exception_index) {
case EXCP_BREAK: