//Decode SR.IMSK into a interrupt mask, update and return the interrupt state bool SRdecode(void) { decoded_srimask = (sr.BL) ? ~0xFFFFFFFF : ~InterruptLevelBit[sr.IMASK]; recalc_pending_itrs(); return Sh4cntx.interrupt_pend; }
//Decode SR.IMSK into a interrupt mask, update and return the interrupt state bool SRdecode() { if (sr.BL) decoded_srimask=~0xFFFFFFFF; else decoded_srimask=~InterruptLevelBit[sr.IMASK]; recalc_pending_itrs(); return Sh4cntx.interrupt_pend; }
void ResetInterruptMask(InterruptID intr) { u32 piid= intr & InterruptPIIDMask; interrupt_vmask&=~InterruptBit[piid]; recalc_pending_itrs(); }
void SetInterruptPend(InterruptID intr) { u32 piid= intr & InterruptPIIDMask; interrupt_vpend|=InterruptBit[piid]; recalc_pending_itrs(); }