target/ppc: Move add and subf type fixed-point arithmetic instructions to decodetree

This patch moves the below instructions to decodetree specification:

        {add, subf}[c,e,me,ze][o][.]       : XO-form
        addic[.], subfic                   : D-form
        addex                              : Z23-form

This patch introduces XO form instructions into decode tree
specification, for which all the four variations([o][.]) have been
handled with a single pattern. The changes were verified by validating
that the tcg ops generated by those instructions remain the same, which
were captured with the '-d in_asm,op' flag.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
Signed-off-by: Chinmay Rath <rathc@linux.ibm.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
This commit is contained in:
Chinmay Rath 2024-02-14 15:10:27 +05:30 committed by Nicholas Piggin
parent 623d9065b6
commit a9bd40d937
3 changed files with 96 additions and 136 deletions

View file

@ -187,6 +187,12 @@
&X_a ra
@X_a ...... ra:3 .. ..... ..... .......... . &X_a
&XO rt ra rb oe:bool rc:bool
@XO ...... rt:5 ra:5 rb:5 oe:1 ......... rc:1 &XO
&XO_ta rt ra oe:bool rc:bool
@XO_ta ...... rt:5 ra:5 ..... oe:1 ......... rc:1 &XO_ta
%xx_xt 0:1 21:5
%xx_xb 1:1 11:5
%xx_xa 2:1 16:5
@ -322,10 +328,30 @@ CMPLI 001010 ... - . ..... ................ @D_bfu
### Fixed-Point Arithmetic Instructions
ADD 011111 ..... ..... ..... . 100001010 . @XO
ADDC 011111 ..... ..... ..... . 000001010 . @XO
ADDE 011111 ..... ..... ..... . 010001010 . @XO
# ADDEX is Z23-form, with CY=0; all other values for CY are reserved.
# This works out the same as X-form.
ADDEX 011111 ..... ..... ..... 00 10101010 - @X
ADDI 001110 ..... ..... ................ @D
ADDIS 001111 ..... ..... ................ @D
ADDIC 001100 ..... ..... ................ @D
ADDIC_ 001101 ..... ..... ................ @D
ADDPCIS 010011 ..... ..... .......... 00010 . @DX
ADDME 011111 ..... ..... ----- . 011101010 . @XO_ta
ADDZE 011111 ..... ..... ----- . 011001010 . @XO_ta
SUBF 011111 ..... ..... ..... . 000101000 . @XO
SUBFIC 001000 ..... ..... ................ @D
SUBFC 011111 ..... ..... ..... . 000001000 . @XO
SUBFE 011111 ..... ..... ..... . 010001000 . @XO
SUBFME 011111 ..... ..... ----- . 011101000 . @XO_ta
SUBFZE 011111 ..... ..... ----- . 011001000 . @XO_ta
## Fixed-Point Logical Instructions