+static bool has_interrupt(void)
+{
+ return ((psxHu32(0x1070) & psxHu32(0x1074)) &&
+ (psxRegs.CP0.n.Status & 0x401) == 0x401) ||
+ (psxRegs.CP0.n.Status & psxRegs.CP0.n.Cause & 0x0300);
+}
+
+static void lightrec_restore_state(struct lightrec_state *state)
+{
+ lightrec_reset_cycle_count(state, psxRegs.cycle);
+
+ if (booting || has_interrupt())
+ lightrec_set_exit_flags(state, LIGHTREC_EXIT_CHECK_INTERRUPT);
+ else
+ lightrec_set_target_cycle_count(state, next_interupt);
+}
+