]> git.proxmox.com Git - mirror_qemu.git/commitdiff
cris: Abort when a v10 takes interrupts while in a delayslot
authorEdgar E. Iglesias <edgar.iglesias@xilinx.com>
Sat, 18 Jan 2014 04:07:48 +0000 (04:07 +0000)
committerEdgar 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

index d274b388b818c32d17956f08940689b241b68549..c9405821325745b2b367112988bd97469fb1816f 100644 (file)
@@ -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: