target/s390x: Remove ilen parameter from tcg_s390_program_interrupt

Since we begin the operation with an unwind, we have the proper
value of ilen immediately available.

Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20191001171614.8405-3-richard.henderson@linaro.org>
Signed-off-by: David Hildenbrand <david@redhat.com>
This commit is contained in:
Richard Henderson 2019-10-01 10:15:58 -07:00 committed by David Hildenbrand
parent c87ff4d108
commit 3e20185892
4 changed files with 10 additions and 10 deletions

View File

@ -34,15 +34,15 @@
#include "hw/boards.h" #include "hw/boards.h"
#endif #endif
void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, uint32_t code, void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env,
int ilen, uintptr_t ra) uint32_t code, uintptr_t ra)
{ {
CPUState *cs = env_cpu(env); CPUState *cs = env_cpu(env);
cpu_restore_state(cs, ra, true); cpu_restore_state(cs, ra, true);
qemu_log_mask(CPU_LOG_INT, "program interrupt at %#" PRIx64 "\n", qemu_log_mask(CPU_LOG_INT, "program interrupt at %#" PRIx64 "\n",
env->psw.addr); env->psw.addr);
trigger_pgm_exception(env, code, ilen); trigger_pgm_exception(env, code, ILEN_UNWIND);
cpu_loop_exit(cs); 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) { if (env->cregs[0] & CR0_AFP) {
env->fpc = deposit32(env->fpc, 8, 8, dxc); 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, void QEMU_NORETURN tcg_s390_vector_exception(CPUS390XState *env, uint32_t vxc,
@ -75,7 +75,7 @@ void QEMU_NORETURN tcg_s390_vector_exception(CPUS390XState *env, uint32_t vxc,
/* Always store the VXC into the FPC, without AFP it is undefined */ /* Always store the VXC into the FPC, without AFP it is undefined */
env->fpc = deposit32(env->fpc, 8, 8, vxc); env->fpc = deposit32(env->fpc, 8, 8, vxc);
tcg_s390_program_interrupt(env, PGM_VECTOR_PROCESSING, ILEN_AUTO, ra); tcg_s390_program_interrupt(env, PGM_VECTOR_PROCESSING, ra);
} }
void HELPER(data_exception)(CPUS390XState *env, uint32_t dxc) void HELPER(data_exception)(CPUS390XState *env, uint32_t dxc)

View File

@ -40,7 +40,7 @@ void s390_program_interrupt(CPUS390XState *env, uint32_t code, int ilen,
if (kvm_enabled()) { if (kvm_enabled()) {
kvm_s390_program_interrupt(env_archcpu(env), code); kvm_s390_program_interrupt(env_archcpu(env), code);
} else if (tcg_enabled()) { } else if (tcg_enabled()) {
tcg_s390_program_interrupt(env, code, ilen, ra); tcg_s390_program_interrupt(env, code, ra);
} else { } else {
g_assert_not_reached(); g_assert_not_reached();
} }

View File

@ -18,8 +18,8 @@
void tcg_s390_tod_updated(CPUState *cs, run_on_cpu_data opaque) void tcg_s390_tod_updated(CPUState *cs, run_on_cpu_data opaque)
{ {
} }
void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, uint32_t code, void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env,
int ilen, uintptr_t ra) uint32_t code, uintptr_t ra)
{ {
g_assert_not_reached(); g_assert_not_reached();
} }

View File

@ -14,8 +14,8 @@
#define TCG_S390X_H #define TCG_S390X_H
void tcg_s390_tod_updated(CPUState *cs, run_on_cpu_data opaque); void tcg_s390_tod_updated(CPUState *cs, run_on_cpu_data opaque);
void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, uint32_t code, void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env,
int ilen, uintptr_t ra); uint32_t code, uintptr_t ra);
void QEMU_NORETURN tcg_s390_data_exception(CPUS390XState *env, uint32_t dxc, void QEMU_NORETURN tcg_s390_data_exception(CPUS390XState *env, uint32_t dxc,
uintptr_t ra); uintptr_t ra);
void QEMU_NORETURN tcg_s390_vector_exception(CPUS390XState *env, uint32_t vxc, void QEMU_NORETURN tcg_s390_vector_exception(CPUS390XState *env, uint32_t vxc,