diff mbox series

[v5,18/23] target/ppc: Implement prefixed integer store instructions

Message ID 20210517205025.3777947-19-matheus.ferst@eldorado.org.br
State New
Headers show
Series Base for adding PowerPC 64-bit instructions | expand

Commit Message

Matheus K. Ferst May 17, 2021, 8:50 p.m. UTC
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>
---
 target/ppc/insn64.decode                   | 12 ++++++++++++
 target/ppc/translate/fixedpoint-impl.c.inc |  4 ++++
 2 files changed, 16 insertions(+)

Comments

David Gibson May 18, 2021, 12:47 a.m. UTC | #1
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 mbox series

Patch

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