summaryrefslogtreecommitdiff
path: root/target/s390x/interrupt.c
diff options
context:
space:
mode:
Diffstat (limited to 'target/s390x/interrupt.c')
-rw-r--r--target/s390x/interrupt.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/target/s390x/interrupt.c b/target/s390x/interrupt.c
index ce6177c141..b07e75daed 100644
--- a/target/s390x/interrupt.c
+++ b/target/s390x/interrupt.c
@@ -53,6 +53,19 @@ void program_interrupt(CPUS390XState *env, uint32_t code, int ilen)
}
}
+void s390_program_interrupt(CPUS390XState *env, uint32_t code, int ilen,
+ uintptr_t ra)
+{
+#ifdef CONFIG_TCG
+ S390CPU *cpu = s390_env_get_cpu(env);
+
+ if (tcg_enabled()) {
+ cpu_restore_state(CPU(cpu), ra);
+ }
+#endif
+ program_interrupt(env, code, ilen);
+}
+
#if !defined(CONFIG_USER_ONLY)
static void cpu_inject_service(S390CPU *cpu, uint32_t param)
{