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