[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 3/6] target/ppc: Fix instruction loading endianness in alignm
From: |
Nicholas Piggin |
Subject: |
Re: [PATCH 3/6] target/ppc: Fix instruction loading endianness in alignment interrupt |
Date: |
Mon, 27 Mar 2023 14:25:52 +1000 |
On Fri Mar 24, 2023 at 11:30 PM AEST, Fabiano Rosas wrote:
> Hi Nick,
>
> > powerpc ifetch endianness depends on MSR[LE] so it has to byteswap
> > after cpu_ldl_code(). This corrects DSISR bits in alignment
> > interrupts when running in little endian mode.
> >
>
> Just a thought, we have these tests that perhaps could have caught
> this: https://github.com/legoater/pnv-test
>
> Despite the name they do have (some) support to pseries as well. Not
> sure how the P8 support is these days though.
Hey Fabiano,
Thanks for the review. Good thinking, and actually I did catch some
of these (the SPR size one) when running kvm-unit-tests with TCG. I
ported it to powernv too. I wonder if we should merge pnv-test into
kvm-unit-tests.
> > Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> > ---
> > target/ppc/excp_helper.c | 27 ++++++++++++++++++++++++++-
> > 1 file changed, 26 insertions(+), 1 deletion(-)
> >
> > diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
> > index 287659c74d..5f0e363363 100644
> > --- a/target/ppc/excp_helper.c
> > +++ b/target/ppc/excp_helper.c
> > @@ -133,6 +133,31 @@ static void dump_hcall(CPUPPCState *env)
> > env->nip);
> > }
> >
> > +/* Return true iff byteswap is needed in a scalar memop */
> > +static inline bool need_byteswap(CPUArchState *env)
> > +{
> > +#if TARGET_BIG_ENDIAN
>
> TARGET_BIG_ENDIAN is always set for softmmu mode. See
> configs/targets/ppc64-softmmu.mak
I see, I just took it from translate.c and actually stupidly forgot
to actually call it here :) I'll fix it up.
Thanks,
Nick
- [PATCH 1/6] target/ppc: Fix width of some 32-bit SPRs, Nicholas Piggin, 2023/03/22
- [PATCH 2/6] target/ppc: Better CTRL SPR implementation, Nicholas Piggin, 2023/03/22
- [PATCH 3/6] target/ppc: Fix instruction loading endianness in alignment interrupt, Nicholas Piggin, 2023/03/22
- [PATCH 4/6] target/ppc: Alignment faults do not set DSISR in ISA v3.0 onward, Nicholas Piggin, 2023/03/22
- [PATCH 5/6] target/ppc: Add SRR1 prefix indication to interrupt handlers, Nicholas Piggin, 2023/03/22
- [PATCH 6/6] target/ppc: Implement HEIR SPR, Nicholas Piggin, 2023/03/22