Commit d66433ff authored by Edgar E. Iglesias's avatar Edgar E. Iglesias
Browse files

cris: Abort when a v10 takes interrupts while in a delayslot



This is an internal error as the CRISv10 should mask interrupts
while executing delay slots. Bail out sooner rather than later.
Signed-off-by: default avatarEdgar E. Iglesias <edgar.iglesias@xilinx.com>
parent fd5d5afa
...@@ -126,6 +126,11 @@ void crisv10_cpu_do_interrupt(CPUState *cs) ...@@ -126,6 +126,11 @@ void crisv10_cpu_do_interrupt(CPUState *cs)
env->exception_index, env->exception_index,
cs->interrupt_request); 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)); assert(!(env->pregs[PR_CCS] & PFIX_FLAG));
switch (env->exception_index) { switch (env->exception_index) {
case EXCP_BREAK: case EXCP_BREAK:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment