From: Richard Henderson <richard.hender...@linaro.org> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> --- target/ppc/insn64.decode | 12 ++++++++++++ target/ppc/translate/fixedpoint-impl.c.inc | 20 ++++++++++++++++++++ 2 files changed, 32 insertions(+)
diff --git a/target/ppc/insn64.decode b/target/ppc/insn64.decode index 2e08d89e62..0f3b0b2725 100644 --- a/target/ppc/insn64.decode +++ b/target/ppc/insn64.decode @@ -41,6 +41,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 b36011a539..4ba477eb93 100644 --- a/target/ppc/translate/fixedpoint-impl.c.inc +++ b/target/ppc/translate/fixedpoint-impl.c.inc @@ -362,6 +362,26 @@ static bool trans_PLD(DisasContext *ctx, arg_PLS_D *a) return do_ldst_PLS_D(ctx, a, false, MO_Q); } +static bool trans_PSTB(DisasContext *ctx, arg_PLS_D *a) +{ + return do_ldst_PLS_D(ctx, a, true, MO_UB); +} + +static bool trans_PSTH(DisasContext *ctx, arg_PLS_D *a) +{ + return do_ldst_PLS_D(ctx, a, true, MO_UW); +} + +static bool trans_PSTW(DisasContext *ctx, arg_PLS_D *a) +{ + return do_ldst_PLS_D(ctx, a, true, MO_UL); +} + +static bool trans_PSTD(DisasContext *ctx, arg_PLS_D *a) +{ + return do_ldst_PLS_D(ctx, a, true, MO_Q); +} + static bool trans_ADDI(DisasContext *ctx, arg_D *a) { if (a->ra) { -- 2.25.1