mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-27 13:30:52 +00:00
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:
parent
c87ff4d108
commit
3e20185892
@ -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,
|
||||
@ -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 */
|
||||
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)
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user