target/ppc: 6xx: Software TLB exceptions cleanup
This code applies only to the 6xx CPUs, so we can remove the switch statement. Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com> Message-Id: <20220203200957.1434641-11-farosas@linux.ibm.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>
This commit is contained in:
parent
000ac49ad2
commit
8f8c7932d4
@ -553,7 +553,6 @@ static void powerpc_excp_6xx(PowerPCCPU *cpu, int excp)
|
|||||||
{
|
{
|
||||||
CPUState *cs = CPU(cpu);
|
CPUState *cs = CPU(cpu);
|
||||||
CPUPPCState *env = &cpu->env;
|
CPUPPCState *env = &cpu->env;
|
||||||
int excp_model = env->excp_model;
|
|
||||||
target_ulong msr, new_msr, vector;
|
target_ulong msr, new_msr, vector;
|
||||||
int srr0, srr1;
|
int srr0, srr1;
|
||||||
|
|
||||||
@ -695,15 +694,12 @@ static void powerpc_excp_6xx(PowerPCCPU *cpu, int excp)
|
|||||||
case POWERPC_EXCP_IFTLB: /* Instruction fetch TLB error */
|
case POWERPC_EXCP_IFTLB: /* Instruction fetch TLB error */
|
||||||
case POWERPC_EXCP_DLTLB: /* Data load TLB miss */
|
case POWERPC_EXCP_DLTLB: /* Data load TLB miss */
|
||||||
case POWERPC_EXCP_DSTLB: /* Data store TLB miss */
|
case POWERPC_EXCP_DSTLB: /* Data store TLB miss */
|
||||||
switch (excp_model) {
|
|
||||||
case POWERPC_EXCP_6xx:
|
|
||||||
/* Swap temporary saved registers with GPRs */
|
/* Swap temporary saved registers with GPRs */
|
||||||
if (!(new_msr & ((target_ulong)1 << MSR_TGPR))) {
|
if (!(new_msr & ((target_ulong)1 << MSR_TGPR))) {
|
||||||
new_msr |= (target_ulong)1 << MSR_TGPR;
|
new_msr |= (target_ulong)1 << MSR_TGPR;
|
||||||
hreg_swap_gpr_tgpr(env);
|
hreg_swap_gpr_tgpr(env);
|
||||||
}
|
}
|
||||||
/* fall through */
|
|
||||||
case POWERPC_EXCP_7x5:
|
|
||||||
ppc_excp_debug_sw_tlb(env, excp);
|
ppc_excp_debug_sw_tlb(env, excp);
|
||||||
|
|
||||||
msr |= env->crf[0] << 28;
|
msr |= env->crf[0] << 28;
|
||||||
@ -711,11 +707,6 @@ static void powerpc_excp_6xx(PowerPCCPU *cpu, int excp)
|
|||||||
/* Set way using a LRU mechanism */
|
/* Set way using a LRU mechanism */
|
||||||
msr |= ((env->last_way + 1) & (env->nb_ways - 1)) << 17;
|
msr |= ((env->last_way + 1) & (env->nb_ways - 1)) << 17;
|
||||||
break;
|
break;
|
||||||
default:
|
|
||||||
cpu_abort(cs, "Invalid TLB miss exception\n");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case POWERPC_EXCP_FPA: /* Floating-point assist exception */
|
case POWERPC_EXCP_FPA: /* Floating-point assist exception */
|
||||||
case POWERPC_EXCP_DABR: /* Data address breakpoint */
|
case POWERPC_EXCP_DABR: /* Data address breakpoint */
|
||||||
case POWERPC_EXCP_IABR: /* Instruction address breakpoint */
|
case POWERPC_EXCP_IABR: /* Instruction address breakpoint */
|
||||||
|
Loading…
Reference in New Issue
Block a user