static void check_interrupts(void) { int i; if (tms.st0.intm == 0 && tms.ifr != 0) { for (i=0; i < 16; i++) { if (tms.ifr & (1 << i)) { tms.st0.intm = 1; PUSH_STACK(tms.pc); tms.pc = (tms.pmst.iptr << 11) | ((i+1) << 1); tms.ifr &= ~(1 << i); save_interrupt_context(); break; } } } }
static void check_interrupts(tms32051_state *cpustate) { int i; if (cpustate->st0.intm == 0 && cpustate->ifr != 0) { for (i=0; i < 16; i++) { if (cpustate->ifr & (1 << i)) { cpustate->st0.intm = 1; PUSH_STACK(cpustate, cpustate->pc); cpustate->pc = (cpustate->pmst.iptr << 11) | ((i+1) << 1); cpustate->ifr &= ~(1 << i); save_interrupt_context(cpustate); break; } } } }