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
State Superseded
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(-)

-- 
2.17.1

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>


-- 

Thanks,

David / dhildenb
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();
 }