Revision d532b26c cpu-exec.c
b/cpu-exec.c | ||
---|---|---|
449 | 449 |
next_tb = 0; |
450 | 450 |
} |
451 | 451 |
#elif defined(TARGET_SPARC) |
452 |
if ((interrupt_request & CPU_INTERRUPT_HARD) &&
|
|
453 |
cpu_interrupts_enabled(env)) {
|
|
454 |
int pil = env->interrupt_index & 15;
|
|
455 |
int type = env->interrupt_index & 0xf0;
|
|
456 |
|
|
457 |
if (((type == TT_EXTINT) && |
|
458 |
(pil == 15 || pil > env->psrpil)) ||
|
|
459 |
type != TT_EXTINT) {
|
|
460 |
env->interrupt_request &= ~CPU_INTERRUPT_HARD;
|
|
461 |
env->exception_index = env->interrupt_index; |
|
462 |
do_interrupt(env); |
|
463 |
env->interrupt_index = 0;
|
|
464 |
next_tb = 0;
|
|
465 |
}
|
|
452 |
if (interrupt_request & CPU_INTERRUPT_HARD) {
|
|
453 |
if (cpu_interrupts_enabled(env) &&
|
|
454 |
env->interrupt_index > 0) {
|
|
455 |
int pil = env->interrupt_index & 0xf;
|
|
456 |
int type = env->interrupt_index & 0xf0; |
|
457 |
|
|
458 |
if (((type == TT_EXTINT) &&
|
|
459 |
cpu_pil_allowed(env, pil)) ||
|
|
460 |
type != TT_EXTINT) {
|
|
461 |
env->exception_index = env->interrupt_index;
|
|
462 |
do_interrupt(env);
|
|
463 |
next_tb = 0;
|
|
464 |
}
|
|
465 |
}
|
|
466 | 466 |
} else if (interrupt_request & CPU_INTERRUPT_TIMER) { |
467 | 467 |
//do_interrupt(0, 0, 0, 0, 0); |
468 | 468 |
env->interrupt_request &= ~CPU_INTERRUPT_TIMER; |
Also available in: Unified diff