Message ID | 20210517205025.3777947-19-matheus.ferst@eldorado.org.br (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Base for adding PowerPC 64-bit instructions | expand |
On Mon, May 17, 2021 at 05:50:20PM -0300, matheus.ferst@eldorado.org.br wrote: > From: Richard Henderson <richard.henderson@linaro.org> > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br> Applied to ppc-for-6.1, thanks. > --- > target/ppc/insn64.decode | 12 ++++++++++++ > target/ppc/translate/fixedpoint-impl.c.inc | 4 ++++ > 2 files changed, 16 insertions(+) > > diff --git a/target/ppc/insn64.decode b/target/ppc/insn64.decode > index 547bd1736f..72c5944a53 100644 > --- a/target/ppc/insn64.decode > +++ b/target/ppc/insn64.decode > @@ -39,6 +39,18 @@ PLWA 000001 00 0--.-- .................. \ > PLD 000001 00 0--.-- .................. \ > 111001 ..... ..... ................ @PLS_D > > +### Fixed-Point Store Instructions > + > +PSTW 000001 10 0--.-- .................. \ > + 100100 ..... ..... ................ @PLS_D > +PSTB 000001 10 0--.-- .................. \ > + 100110 ..... ..... ................ @PLS_D > +PSTH 000001 10 0--.-- .................. \ > + 101100 ..... ..... ................ @PLS_D > + > +PSTD 000001 00 0--.-- .................. \ > + 111101 ..... ..... ................ @PLS_D > + > ### Fixed-Point Arithmetic Instructions > > PADDI 000001 10 0--.-- .................. \ > diff --git a/target/ppc/translate/fixedpoint-impl.c.inc b/target/ppc/translate/fixedpoint-impl.c.inc > index adeee33289..2d2d874146 100644 > --- a/target/ppc/translate/fixedpoint-impl.c.inc > +++ b/target/ppc/translate/fixedpoint-impl.c.inc > @@ -142,24 +142,28 @@ TRANS(STB, do_ldst_D, false, true, MO_UB) > TRANS(STBX, do_ldst_X, false, true, MO_UB) > TRANS(STBU, do_ldst_D, true, true, MO_UB) > TRANS(STBUX, do_ldst_X, true, true, MO_UB) > +TRANS(PSTB, do_ldst_PLS_D, false, true, MO_UB) > > /* Store Halfword */ > TRANS(STH, do_ldst_D, false, true, MO_UW) > TRANS(STHX, do_ldst_X, false, true, MO_UW) > TRANS(STHU, do_ldst_D, true, true, MO_UW) > TRANS(STHUX, do_ldst_X, true, true, MO_UW) > +TRANS(PSTH, do_ldst_PLS_D, false, true, MO_UW) > > /* Store Word */ > TRANS(STW, do_ldst_D, false, true, MO_UL) > TRANS(STWX, do_ldst_X, false, true, MO_UL) > TRANS(STWU, do_ldst_D, true, true, MO_UL) > TRANS(STWUX, do_ldst_X, true, true, MO_UL) > +TRANS(PSTW, do_ldst_PLS_D, false, true, MO_UL) > > /* Store Doubleword */ > TRANS64(STD, do_ldst_D, false, true, MO_Q) > TRANS64(STDX, do_ldst_X, false, true, MO_Q) > TRANS64(STDU, do_ldst_D, true, true, MO_Q) > TRANS64(STDUX, do_ldst_X, true, true, MO_Q) > +TRANS64(PSTD, do_ldst_PLS_D, false, true, MO_Q) > > /* > * Fixed-Point Arithmetic Instructions
diff --git a/target/ppc/insn64.decode b/target/ppc/insn64.decode index 547bd1736f..72c5944a53 100644 --- a/target/ppc/insn64.decode +++ b/target/ppc/insn64.decode @@ -39,6 +39,18 @@ PLWA 000001 00 0--.-- .................. \ PLD 000001 00 0--.-- .................. \ 111001 ..... ..... ................ @PLS_D +### Fixed-Point Store Instructions + +PSTW 000001 10 0--.-- .................. \ + 100100 ..... ..... ................ @PLS_D +PSTB 000001 10 0--.-- .................. \ + 100110 ..... ..... ................ @PLS_D +PSTH 000001 10 0--.-- .................. \ + 101100 ..... ..... ................ @PLS_D + +PSTD 000001 00 0--.-- .................. \ + 111101 ..... ..... ................ @PLS_D + ### Fixed-Point Arithmetic Instructions PADDI 000001 10 0--.-- .................. \ diff --git a/target/ppc/translate/fixedpoint-impl.c.inc b/target/ppc/translate/fixedpoint-impl.c.inc index adeee33289..2d2d874146 100644 --- a/target/ppc/translate/fixedpoint-impl.c.inc +++ b/target/ppc/translate/fixedpoint-impl.c.inc @@ -142,24 +142,28 @@ TRANS(STB, do_ldst_D, false, true, MO_UB) TRANS(STBX, do_ldst_X, false, true, MO_UB) TRANS(STBU, do_ldst_D, true, true, MO_UB) TRANS(STBUX, do_ldst_X, true, true, MO_UB) +TRANS(PSTB, do_ldst_PLS_D, false, true, MO_UB) /* Store Halfword */ TRANS(STH, do_ldst_D, false, true, MO_UW) TRANS(STHX, do_ldst_X, false, true, MO_UW) TRANS(STHU, do_ldst_D, true, true, MO_UW) TRANS(STHUX, do_ldst_X, true, true, MO_UW) +TRANS(PSTH, do_ldst_PLS_D, false, true, MO_UW) /* Store Word */ TRANS(STW, do_ldst_D, false, true, MO_UL) TRANS(STWX, do_ldst_X, false, true, MO_UL) TRANS(STWU, do_ldst_D, true, true, MO_UL) TRANS(STWUX, do_ldst_X, true, true, MO_UL) +TRANS(PSTW, do_ldst_PLS_D, false, true, MO_UL) /* Store Doubleword */ TRANS64(STD, do_ldst_D, false, true, MO_Q) TRANS64(STDX, do_ldst_X, false, true, MO_Q) TRANS64(STDU, do_ldst_D, true, true, MO_Q) TRANS64(STDUX, do_ldst_X, true, true, MO_Q) +TRANS64(PSTD, do_ldst_PLS_D, false, true, MO_Q) /* * Fixed-Point Arithmetic Instructions