mirror of https://github.com/xemu-project/xemu.git
Fix incorrect exception_index use
env->exception_index should be cleared with -1, not 0.
See also 821b19fe92
.
Spotted by Igor Kovalenko.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
b5937f2978
commit
ee0dc6d393
|
@ -467,7 +467,7 @@ void do_interrupt (CPUState *env)
|
|||
|
||||
env->ipr[IPR_EXC_ADDR] = env->pc | 1;
|
||||
excp = env->exception_index;
|
||||
env->exception_index = 0;
|
||||
env->exception_index = -1;
|
||||
env->error_code = 0;
|
||||
/* XXX: disable interrupts and memory mapping */
|
||||
if (env->ipr[IPR_PAL_BASE] != -1ULL) {
|
||||
|
|
|
@ -186,7 +186,7 @@ static void kvm_s390_interrupt_internal(CPUState *env, int type, uint32_t parm,
|
|||
}
|
||||
|
||||
env->halted = 0;
|
||||
env->exception_index = 0;
|
||||
env->exception_index = -1;
|
||||
|
||||
kvmint.type = type;
|
||||
kvmint.parm = parm;
|
||||
|
@ -325,7 +325,7 @@ static int s390_cpu_restart(CPUState *env)
|
|||
{
|
||||
kvm_s390_interrupt(env, KVM_S390_RESTART, 0);
|
||||
env->halted = 0;
|
||||
env->exception_index = 0;
|
||||
env->exception_index = -1;
|
||||
qemu_cpu_kick(env);
|
||||
dprintf("DONE: SIGP cpu restart: %p\n", env);
|
||||
return 0;
|
||||
|
|
|
@ -38,7 +38,7 @@ int cpu_sh4_handle_mmu_fault(CPUState * env, target_ulong address, int rw,
|
|||
int mmu_idx, int is_softmmu)
|
||||
{
|
||||
env->tea = address;
|
||||
env->exception_index = 0;
|
||||
env->exception_index = -1;
|
||||
switch (rw) {
|
||||
case 0:
|
||||
env->exception_index = 0x0a0;
|
||||
|
|
Loading…
Reference in New Issue