diff mbox series

[v3,03/18] target/s390x: Remove ilen parameter from tcg_s390_program_interrupt

Message ID 20190926162615.31168-4-richard.henderson@linaro.org (mailing list archive)
State New, archived
Headers show
Series target/s390: Use tcg unwinding for ilen | expand

Commit Message

Richard Henderson Sept. 26, 2019, 4:26 p.m. UTC
Since we begin the operation with an unwind, we have the proper
value of ilen immediately available.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 target/s390x/tcg_s390x.h   | 4 ++--
 target/s390x/excp_helper.c | 8 ++++----
 target/s390x/interrupt.c   | 2 +-
 target/s390x/tcg-stub.c    | 4 ++--
 4 files changed, 9 insertions(+), 9 deletions(-)

Comments

David Hildenbrand Sept. 27, 2019, 10:31 a.m. UTC | #1
On 26.09.19 18:26, Richard Henderson wrote:
> Since we begin the operation with an unwind, we have the proper
> value of ilen immediately available.
> 
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>  target/s390x/tcg_s390x.h   | 4 ++--
>  target/s390x/excp_helper.c | 8 ++++----
>  target/s390x/interrupt.c   | 2 +-
>  target/s390x/tcg-stub.c    | 4 ++--
>  4 files changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/target/s390x/tcg_s390x.h b/target/s390x/tcg_s390x.h
> index 2813f9d48e..2f54ccb027 100644
> --- a/target/s390x/tcg_s390x.h
> +++ b/target/s390x/tcg_s390x.h
> @@ -14,8 +14,8 @@
>  #define TCG_S390X_H
>  
>  void tcg_s390_tod_updated(CPUState *cs, run_on_cpu_data opaque);
> -void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, uint32_t code,
> -                                              int ilen, uintptr_t ra);
> +void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env,
> +                                              uint32_t code, uintptr_t ra);
>  void QEMU_NORETURN tcg_s390_data_exception(CPUS390XState *env, uint32_t dxc,
>                                             uintptr_t ra);
>  void QEMU_NORETURN tcg_s390_vector_exception(CPUS390XState *env, uint32_t vxc,
> diff --git a/target/s390x/excp_helper.c b/target/s390x/excp_helper.c
> index 892f659d5a..681a9c59e1 100644
> --- a/target/s390x/excp_helper.c
> +++ b/target/s390x/excp_helper.c
> @@ -34,15 +34,15 @@
>  #include "hw/boards.h"
>  #endif
>  
> -void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, uint32_t code,
> -                                              int ilen, uintptr_t ra)
> +void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env,
> +                                              uint32_t code, uintptr_t ra)
>  {
>      CPUState *cs = env_cpu(env);
>  
>      cpu_restore_state(cs, ra, true);
>      qemu_log_mask(CPU_LOG_INT, "program interrupt at %#" PRIx64 "\n",
>                    env->psw.addr);
> -    trigger_pgm_exception(env, code, ilen);
> +    trigger_pgm_exception(env, code, ILEN_UNWIND);
>      cpu_loop_exit(cs);
>  }
>  
> @@ -60,7 +60,7 @@ void QEMU_NORETURN tcg_s390_data_exception(CPUS390XState *env, uint32_t dxc,
>      if (env->cregs[0] & CR0_AFP) {
>          env->fpc = deposit32(env->fpc, 8, 8, dxc);
>      }
> -    tcg_s390_program_interrupt(env, PGM_DATA, ILEN_AUTO, ra);
> +    tcg_s390_program_interrupt(env, PGM_DATA, ra);
>  }
>  
>  void QEMU_NORETURN tcg_s390_vector_exception(CPUS390XState *env, uint32_t vxc,
> diff --git a/target/s390x/interrupt.c b/target/s390x/interrupt.c
> index 30a9fb8852..b798e2ecbe 100644
> --- a/target/s390x/interrupt.c
> +++ b/target/s390x/interrupt.c
> @@ -40,7 +40,7 @@ void s390_program_interrupt(CPUS390XState *env, uint32_t code, int ilen,
>      if (kvm_enabled()) {
>          kvm_s390_program_interrupt(env_archcpu(env), code);
>      } else if (tcg_enabled()) {
> -        tcg_s390_program_interrupt(env, code, ilen, ra);
> +        tcg_s390_program_interrupt(env, code, ra);
>      } else {
>          g_assert_not_reached();
>      }
> diff --git a/target/s390x/tcg-stub.c b/target/s390x/tcg-stub.c
> index 32adb7276a..d22c898802 100644
> --- a/target/s390x/tcg-stub.c
> +++ b/target/s390x/tcg-stub.c
> @@ -18,8 +18,8 @@
>  void tcg_s390_tod_updated(CPUState *cs, run_on_cpu_data opaque)
>  {
>  }
> -void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, uint32_t code,
> -                                              int ilen, uintptr_t ra)
> +void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env,
> +                                              uint32_t code, uintptr_t ra)
>  {
>      g_assert_not_reached();
>  }
> 

Reviewed-by: David Hildenbrand <david@redhat.com>
diff mbox series

Patch

diff --git a/target/s390x/tcg_s390x.h b/target/s390x/tcg_s390x.h
index 2813f9d48e..2f54ccb027 100644
--- a/target/s390x/tcg_s390x.h
+++ b/target/s390x/tcg_s390x.h
@@ -14,8 +14,8 @@ 
 #define TCG_S390X_H
 
 void tcg_s390_tod_updated(CPUState *cs, run_on_cpu_data opaque);
-void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, uint32_t code,
-                                              int ilen, uintptr_t ra);
+void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env,
+                                              uint32_t code, uintptr_t ra);
 void QEMU_NORETURN tcg_s390_data_exception(CPUS390XState *env, uint32_t dxc,
                                            uintptr_t ra);
 void QEMU_NORETURN tcg_s390_vector_exception(CPUS390XState *env, uint32_t vxc,
diff --git a/target/s390x/excp_helper.c b/target/s390x/excp_helper.c
index 892f659d5a..681a9c59e1 100644
--- a/target/s390x/excp_helper.c
+++ b/target/s390x/excp_helper.c
@@ -34,15 +34,15 @@ 
 #include "hw/boards.h"
 #endif
 
-void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, uint32_t code,
-                                              int ilen, uintptr_t ra)
+void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env,
+                                              uint32_t code, uintptr_t ra)
 {
     CPUState *cs = env_cpu(env);
 
     cpu_restore_state(cs, ra, true);
     qemu_log_mask(CPU_LOG_INT, "program interrupt at %#" PRIx64 "\n",
                   env->psw.addr);
-    trigger_pgm_exception(env, code, ilen);
+    trigger_pgm_exception(env, code, ILEN_UNWIND);
     cpu_loop_exit(cs);
 }
 
@@ -60,7 +60,7 @@  void QEMU_NORETURN tcg_s390_data_exception(CPUS390XState *env, uint32_t dxc,
     if (env->cregs[0] & CR0_AFP) {
         env->fpc = deposit32(env->fpc, 8, 8, dxc);
     }
-    tcg_s390_program_interrupt(env, PGM_DATA, ILEN_AUTO, ra);
+    tcg_s390_program_interrupt(env, PGM_DATA, ra);
 }
 
 void QEMU_NORETURN tcg_s390_vector_exception(CPUS390XState *env, uint32_t vxc,
diff --git a/target/s390x/interrupt.c b/target/s390x/interrupt.c
index 30a9fb8852..b798e2ecbe 100644
--- a/target/s390x/interrupt.c
+++ b/target/s390x/interrupt.c
@@ -40,7 +40,7 @@  void s390_program_interrupt(CPUS390XState *env, uint32_t code, int ilen,
     if (kvm_enabled()) {
         kvm_s390_program_interrupt(env_archcpu(env), code);
     } else if (tcg_enabled()) {
-        tcg_s390_program_interrupt(env, code, ilen, ra);
+        tcg_s390_program_interrupt(env, code, ra);
     } else {
         g_assert_not_reached();
     }
diff --git a/target/s390x/tcg-stub.c b/target/s390x/tcg-stub.c
index 32adb7276a..d22c898802 100644
--- a/target/s390x/tcg-stub.c
+++ b/target/s390x/tcg-stub.c
@@ -18,8 +18,8 @@ 
 void tcg_s390_tod_updated(CPUState *cs, run_on_cpu_data opaque)
 {
 }
-void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, uint32_t code,
-                                              int ilen, uintptr_t ra)
+void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env,
+                                              uint32_t code, uintptr_t ra)
 {
     g_assert_not_reached();
 }