On Thu Feb 22, 2024 at 9:33 PM AEST, BALATON Zoltan wrote: > After previous changes the hypercall handling in 7xx and 74xx > exception handlers can be folded into one if statement to simpilfy > this code. Also add "unlikely" to mark the less freqiently used branch > for the compiler. > > Signed-off-by: BALATON Zoltan <bala...@eik.bme.hu> > Reviewed-by: Harsh Prateek Bora <hars...@linux.ibm.com> > --- > target/ppc/excp_helper.c | 24 ++++++++---------------- > 1 file changed, 8 insertions(+), 16 deletions(-) > > diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c > index 411d67376c..035a9fd968 100644 > --- a/target/ppc/excp_helper.c > +++ b/target/ppc/excp_helper.c > @@ -762,26 +762,22 @@ static void powerpc_excp_7xx(PowerPCCPU *cpu, int excp) > case POWERPC_EXCP_SYSCALL: /* System call exception > */ > { > int lev = env->error_code; > - > - if (lev == 1 && cpu->vhyp) { > - dump_hcall(env); > - } else { > - dump_syscall(env); > - } > /* > * The Virtual Open Firmware (VOF) relies on the 'sc 1' > * instruction to communicate with QEMU. The pegasos2 machine > * uses VOF and the 7xx CPUs, so although the 7xx don't have > * HV mode, we need to keep hypercall support. > */ > - if (lev == 1 && cpu->vhyp) { > + if (unlikely(lev == 1 && cpu->vhyp)) { > PPCVirtualHypervisorClass *vhc = > PPC_VIRTUAL_HYPERVISOR_GET_CLASS(cpu->vhyp); > + dump_hcall(env); > vhc->hypercall(cpu->vhyp, cpu); > powerpc_reset_excp_state(cpu); > return; > + } else { > + dump_syscall(env); > } > - > break;
You could avoid the else statement for these because the hcall branch returns. Actually books could be changed similarly too, I think dump_hcall can be done in the books_vhyp_handles_hcall() branch. But you don't need to change that in your patch since it's behaviour change. Thanks, Nick