mirror of
https://github.com/mii443/qemu.git
synced 2025-12-09 14:08:32 +00:00
target-mips: Tighten ISA level checks
Tighten ISA level checks down to MIPS II that many of our instructions are missing. Also make sure any 64-bit instruction enables are only applied to 64-bit processors, that is ones that implement at least the MIPS III ISA. Signed-off-by: Maciej W. Rozycki <macro@codesourcery.com> Reviewed-by: Leon Alrae <leon.alrae@imgtec.com> Signed-off-by: Leon Alrae <leon.alrae@imgtec.com>
This commit is contained in:
committed by
Leon Alrae
parent
90f12d735d
commit
d922445020
@@ -527,7 +527,10 @@ void mips_cpu_do_interrupt(CPUState *cs)
|
||||
env->CP0_DEPC = exception_resume_pc(env);
|
||||
env->hflags &= ~MIPS_HFLAG_BMASK;
|
||||
enter_debug_mode:
|
||||
env->hflags |= MIPS_HFLAG_DM | MIPS_HFLAG_64 | MIPS_HFLAG_CP0;
|
||||
if (env->insn_flags & ISA_MIPS3) {
|
||||
env->hflags |= MIPS_HFLAG_64;
|
||||
}
|
||||
env->hflags |= MIPS_HFLAG_DM | MIPS_HFLAG_CP0;
|
||||
env->hflags &= ~(MIPS_HFLAG_KSU);
|
||||
/* EJTAG probe trap enable is not implemented... */
|
||||
if (!(env->CP0_Status & (1 << CP0St_EXL)))
|
||||
@@ -548,7 +551,10 @@ void mips_cpu_do_interrupt(CPUState *cs)
|
||||
env->CP0_ErrorEPC = exception_resume_pc(env);
|
||||
env->hflags &= ~MIPS_HFLAG_BMASK;
|
||||
env->CP0_Status |= (1 << CP0St_ERL) | (1 << CP0St_BEV);
|
||||
env->hflags |= MIPS_HFLAG_64 | MIPS_HFLAG_CP0;
|
||||
if (env->insn_flags & ISA_MIPS3) {
|
||||
env->hflags |= MIPS_HFLAG_64;
|
||||
}
|
||||
env->hflags |= MIPS_HFLAG_CP0;
|
||||
env->hflags &= ~(MIPS_HFLAG_KSU);
|
||||
if (!(env->CP0_Status & (1 << CP0St_EXL)))
|
||||
env->CP0_Cause &= ~(1U << CP0Ca_BD);
|
||||
@@ -726,7 +732,10 @@ void mips_cpu_do_interrupt(CPUState *cs)
|
||||
env->CP0_Cause &= ~(1U << CP0Ca_BD);
|
||||
}
|
||||
env->CP0_Status |= (1 << CP0St_EXL);
|
||||
env->hflags |= MIPS_HFLAG_64 | MIPS_HFLAG_CP0;
|
||||
if (env->insn_flags & ISA_MIPS3) {
|
||||
env->hflags |= MIPS_HFLAG_64;
|
||||
}
|
||||
env->hflags |= MIPS_HFLAG_CP0;
|
||||
env->hflags &= ~(MIPS_HFLAG_KSU);
|
||||
}
|
||||
env->hflags &= ~MIPS_HFLAG_BMASK;
|
||||
|
||||
Reference in New Issue
Block a user