void cpu_check_irqs(CPUState *env)

{

    uint32_t pil = env->pil_in | (env->softint & ~SOFTINT_TIMER) |

        ((env->softint & SOFTINT_TIMER) << 14);



    if (pil && (env->interrupt_index == 0 ||

                (env->interrupt_index & ~15) == TT_EXTINT)) {

        unsigned int i;



        for (i = 15; i > 0; i--) {

            if (pil & (1 << i)) {

                int old_interrupt = env->interrupt_index;



                env->interrupt_index = TT_EXTINT | i;

                if (old_interrupt != env->interrupt_index) {

                    CPUIRQ_DPRINTF("Set CPU IRQ %d\n", i);

                    cpu_interrupt(env, CPU_INTERRUPT_HARD);

                }

                break;

            }

        }

    } else if (!pil && (env->interrupt_index & ~15) == TT_EXTINT) {

        CPUIRQ_DPRINTF("Reset CPU IRQ %d\n", env->interrupt_index & 15);

        env->interrupt_index = 0;

        cpu_reset_interrupt(env, CPU_INTERRUPT_HARD);

    }

}

void cpu_check_irqs(CPUState *env)

{

    uint32_t pil = env->pil_in | (env->softint & ~SOFTINT_TIMER) |

        ((env->softint & SOFTINT_TIMER) << 14);



    if (pil && (env->interrupt_index == 0 ||

                (env->interrupt_index & ~15) == TT_EXTINT)) {

        unsigned int i;



        for (i = 15; i > 0; i--) {

            if (pil & (1 << i)) {

                int old_interrupt = env->interrupt_index;



                env->interrupt_index = TT_EXTINT | i;

                if (old_interrupt != env->interrupt_index) {

                    CPUIRQ_DPRINTF("Set CPU IRQ %d\n", i);

                    cpu_interrupt(env, CPU_INTERRUPT_HARD);

                }

                break;

            }

        }

    } else if (!pil && (env->interrupt_index & ~15) == TT_EXTINT) {

        CPUIRQ_DPRINTF("Reset CPU IRQ %d\n", env->interrupt_index & 15);

        env->interrupt_index = 0;

        cpu_reset_interrupt(env, CPU_INTERRUPT_HARD);

    }

}

void FUNC_0(CPUState *VAR_0)

{

    uint32_t pil = VAR_0->pil_in | (VAR_0->softint & ~SOFTINT_TIMER) |

        ((VAR_0->softint & SOFTINT_TIMER) << 14);



    if (pil && (VAR_0->interrupt_index == 0 ||

                (VAR_0->interrupt_index & ~15) == TT_EXTINT)) {

        unsigned int VAR_1;



        for (VAR_1 = 15; VAR_1 > 0; VAR_1--) {

            if (pil & (1 << VAR_1)) {

                int VAR_2 = VAR_0->interrupt_index;



                VAR_0->interrupt_index = TT_EXTINT | VAR_1;

                if (VAR_2 != VAR_0->interrupt_index) {

                    CPUIRQ_DPRINTF("Set CPU IRQ %d\n", VAR_1);

                    cpu_interrupt(VAR_0, CPU_INTERRUPT_HARD);

                }

                break;

            }

        }

    } else if (!pil && (VAR_0->interrupt_index & ~15) == TT_EXTINT) {

        CPUIRQ_DPRINTF("Reset CPU IRQ %d\n", VAR_0->interrupt_index & 15);

        VAR_0->interrupt_index = 0;

        cpu_reset_interrupt(VAR_0, CPU_INTERRUPT_HARD);

    }

}

void FUNC_0(CPUState *VAR_0)
{ uint32_t pil = VAR_0->pil_in | (VAR_0->softint & ~SOFTINT_TIMER) |
((VAR_0->softint & SOFTINT_TIMER) << 14); if (pil && (VAR_0->interrupt_index == 0 ||
(VAR_0->interrupt_index & ~15) == TT_EXTINT)) { unsigned int VAR_1; for (VAR_1 = 15; VAR_1 > 0; VAR_1--) { if (pil & (1 << VAR_1)) { int VAR_2 = VAR_0->interrupt_index; VAR_0->interrupt_index = TT_EXTINT | VAR_1; if (VAR_2 != VAR_0->interrupt_index) { CPUIRQ_DPRINTF("Set CPU IRQ %d\n", VAR_1); cpu_interrupt(VAR_0, CPU_INTERRUPT_HARD); } break; } } } else if (!pil && (VAR_0->interrupt_index & ~15) == TT_EXTINT) { CPUIRQ_DPRINTF("Reset CPU IRQ %d\n", VAR_0->interrupt_index & 15); VAR_0->interrupt_index = 0; cpu_reset_interrupt(VAR_0, CPU_INTERRUPT_HARD); } }