summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2021-12-06 01:31:02 +0100
committer hap <happppp@users.noreply.github.com>2021-12-06 01:31:24 +0100
commit0cd40f3acfbfd4679347e43e9ad5c7731bb7124f (patch)
treef4a80b1a811888bf3a039d814a0e97888598bd50
parenta402cdbafbe111a980e7b31a3813ae9c634f1731 (diff)
sparc: check pending interrupt after RETT
-rw-r--r--src/devices/cpu/sparc/sparc.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/devices/cpu/sparc/sparc.cpp b/src/devices/cpu/sparc/sparc.cpp
index 1babc38128c..48ad8c98816 100644
--- a/src/devices/cpu/sparc/sparc.cpp
+++ b/src/devices/cpu/sparc/sparc.cpp
@@ -1841,6 +1841,12 @@ void sparc_base_device::execute_rett(uint32_t op)
}
update_gpr_pointers();
+
+ if (m_et && (m_bp_irl == 15 || m_bp_irl > m_pil) && m_interrupt_level == 0)
+ {
+ m_trap = 1;
+ m_interrupt_level = m_bp_irl;
+ }
}