On Tue, 28 Nov 2017 21:33:11 +0100 David Hildenbrand <da...@redhat.com> wrote:
> Allows to easily convert more callers of program_interrupt() and to > easily introduce new exceptions without forgetting about the cpu state > reset. > > Use program_interrupt_ra() in places where we already had the same > pattern. > > Signed-off-by: David Hildenbrand <da...@redhat.com> > --- > target/s390x/cpu.h | 2 ++ > target/s390x/crypto_helper.c | 7 ++----- > target/s390x/excp_helper.c | 5 +---- > target/s390x/interrupt.c | 13 +++++++++++++ > target/s390x/mem_helper.c | 35 +++++++++++------------------------ > target/s390x/misc_helper.c | 3 +-- > 6 files changed, 30 insertions(+), 35 deletions(-) > diff --git a/target/s390x/interrupt.c b/target/s390x/interrupt.c > index ce6177c141..6ce06bb549 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 program_interrupt_ra(CPUS390XState *env, uint32_t code, int ilen, > + uintptr_t ra) > +{ > + S390CPU *cpu = s390_env_get_cpu(env); Move this under the if? > + > +#ifdef CONFIG_TCG > + if (tcg_enabled() && ra) { > + 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) > {