xref: /openbmc/qemu/target/mips/tcg/msa.decode (revision 5c5b64000c751ed3f3535c17095161fea02db660)
1f5c6ee0cSPhilippe Mathieu-Daudé# MIPS SIMD Architecture Module instruction set
2f5c6ee0cSPhilippe Mathieu-Daudé#
3f5c6ee0cSPhilippe Mathieu-Daudé# Copyright (C) 2020  Philippe Mathieu-Daudé
4f5c6ee0cSPhilippe Mathieu-Daudé#
5f5c6ee0cSPhilippe Mathieu-Daudé# SPDX-License-Identifier: LGPL-2.1-or-later
6f5c6ee0cSPhilippe Mathieu-Daudé#
7f5c6ee0cSPhilippe Mathieu-Daudé# Reference:
8f5c6ee0cSPhilippe Mathieu-Daudé#       MIPS Architecture for Programmers Volume IV-j
9f5c6ee0cSPhilippe Mathieu-Daudé#       - The MIPS32 SIMD Architecture Module, Revision 1.12
10f5c6ee0cSPhilippe Mathieu-Daudé#         (Document Number: MD00866-2B-MSA32-AFP-01.12)
11f5c6ee0cSPhilippe Mathieu-Daudé#       - The MIPS64 SIMD Architecture Module, Revision 1.12
12f5c6ee0cSPhilippe Mathieu-Daudé#         (Document Number: MD00868-1D-MSA64-AFP-01.12)
13f5c6ee0cSPhilippe Mathieu-Daudé
1434fe9fa3SPhilippe Mathieu-Daudé&r                  rs rt rd sa
15f5c6ee0cSPhilippe Mathieu-Daudé
16*5c5b6400SPhilippe Mathieu-Daudé&msa_r              df  wd ws wt
17d61566cfSPhilippe Mathieu-Daudé&msa_bz             df        wt sa
1875094c33SPhilippe Mathieu-Daudé&msa_ldi            df  wd       sa
19b8e74816SPhilippe Mathieu-Daudé&msa_i              df  wd ws    sa
204701d23aSPhilippe Mathieu-Daudé&msa_bit            df  wd ws       m
214701d23aSPhilippe Mathieu-Daudé
224701d23aSPhilippe Mathieu-Daudé%bit_df             16:7 !function=bit_df
234701d23aSPhilippe Mathieu-Daudé%bit_m              16:7 !function=bit_m
24*5c5b6400SPhilippe Mathieu-Daudé%2r_df_w            16:1 !function=plus_2
25f5c6ee0cSPhilippe Mathieu-Daudé
2634fe9fa3SPhilippe Mathieu-Daudé@lsa                ...... rs:5 rt:5 rd:5 ... sa:2 ......   &r
27ce121fe2SPhilippe Mathieu-Daudé@ldst               ...... sa:s10 ws:5 wd:5 .... df:2       &msa_i
28d61566cfSPhilippe Mathieu-Daudé@bz_v               ...... ... ..    wt:5 sa:16             &msa_bz df=3
29d61566cfSPhilippe Mathieu-Daudé@bz                 ...... ...  df:2 wt:5 sa:16             &msa_bz
30*5c5b6400SPhilippe Mathieu-Daudé@2rf                ...... ......... .    ws:5 wd:5 ......  &msa_r wt=0 df=%2r_df_w
31b8e74816SPhilippe Mathieu-Daudé@u5                 ...... ... df:2 sa:5  ws:5 wd:5 ......  &msa_i
32b8e74816SPhilippe Mathieu-Daudé@s5                 ...... ... df:2 sa:s5 ws:5 wd:5 ......  &msa_i
33a9e17958SPhilippe Mathieu-Daudé@i8_df              ......     df:2 sa:s8 ws:5 wd:5 ......  &msa_i
347cc351ffSPhilippe Mathieu-Daudé@i8                 ...... ..       sa:s8 ws:5 wd:5 ......  &msa_i df=0
3575094c33SPhilippe Mathieu-Daudé@ldi                ...... ... df:2 sa:s10     wd:5 ......  &msa_ldi
364701d23aSPhilippe Mathieu-Daudé@bit                ...... ... .......    ws:5 wd:5 ......  &msa_bit df=%bit_df m=%bit_m
37f5c6ee0cSPhilippe Mathieu-Daudé
38f5c6ee0cSPhilippe Mathieu-DaudéLSA                 000000 ..... ..... ..... 000 .. 000101  @lsa
39f5c6ee0cSPhilippe Mathieu-DaudéDLSA                000000 ..... ..... ..... 000 .. 010101  @lsa
40f5c6ee0cSPhilippe Mathieu-Daudé
41d61566cfSPhilippe Mathieu-DaudéBZ_V                010001 01011  ..... ................    @bz_v
42d61566cfSPhilippe Mathieu-DaudéBNZ_V               010001 01111  ..... ................    @bz_v
43d61566cfSPhilippe Mathieu-DaudéBZ                  010001 110 .. ..... ................    @bz
44d61566cfSPhilippe Mathieu-DaudéBNZ                 010001 111 .. ..... ................    @bz
45f5c6ee0cSPhilippe Mathieu-Daudé
4675094c33SPhilippe Mathieu-Daudé{
477cc351ffSPhilippe Mathieu-Daudé  ANDI              011110 00 ........ ..... .....  000000  @i8
487cc351ffSPhilippe Mathieu-Daudé  ORI               011110 01 ........ ..... .....  000000  @i8
497cc351ffSPhilippe Mathieu-Daudé  NORI              011110 10 ........ ..... .....  000000  @i8
507cc351ffSPhilippe Mathieu-Daudé  XORI              011110 11 ........ ..... .....  000000  @i8
517cc351ffSPhilippe Mathieu-Daudé  BMNZI             011110 00 ........ ..... .....  000001  @i8
527cc351ffSPhilippe Mathieu-Daudé  BMZI              011110 01 ........ ..... .....  000001  @i8
537cc351ffSPhilippe Mathieu-Daudé  BSELI             011110 10 ........ ..... .....  000001  @i8
54a9e17958SPhilippe Mathieu-Daudé  SHF               011110 .. ........ ..... .....  000010  @i8_df
55a9e17958SPhilippe Mathieu-Daudé
56b8e74816SPhilippe Mathieu-Daudé  ADDVI             011110 000 .. ..... ..... ..... 000110  @u5
57b8e74816SPhilippe Mathieu-Daudé  SUBVI             011110 001 .. ..... ..... ..... 000110  @u5
58b8e74816SPhilippe Mathieu-Daudé  MAXI_S            011110 010 .. ..... ..... ..... 000110  @s5
59b8e74816SPhilippe Mathieu-Daudé  MAXI_U            011110 011 .. ..... ..... ..... 000110  @u5
60b8e74816SPhilippe Mathieu-Daudé  MINI_S            011110 100 .. ..... ..... ..... 000110  @s5
61b8e74816SPhilippe Mathieu-Daudé  MINI_U            011110 101 .. ..... ..... ..... 000110  @u5
62b8e74816SPhilippe Mathieu-Daudé
63b8e74816SPhilippe Mathieu-Daudé  CEQI              011110 000 .. ..... ..... ..... 000111  @s5
64b8e74816SPhilippe Mathieu-Daudé  CLTI_S            011110 010 .. ..... ..... ..... 000111  @s5
65b8e74816SPhilippe Mathieu-Daudé  CLTI_U            011110 011 .. ..... ..... ..... 000111  @u5
66b8e74816SPhilippe Mathieu-Daudé  CLEI_S            011110 100 .. ..... ..... ..... 000111  @s5
67b8e74816SPhilippe Mathieu-Daudé  CLEI_U            011110 101 .. ..... ..... ..... 000111  @u5
68b8e74816SPhilippe Mathieu-Daudé
6975094c33SPhilippe Mathieu-Daudé  LDI               011110 110 .. ..........  ..... 000111  @ldi
7075094c33SPhilippe Mathieu-Daudé
714701d23aSPhilippe Mathieu-Daudé  SLLI              011110 000 ....... ..... .....  001001  @bit
724701d23aSPhilippe Mathieu-Daudé  SRAI              011110 001 ....... ..... .....  001001  @bit
734701d23aSPhilippe Mathieu-Daudé  SRLI              011110 010 ....... ..... .....  001001  @bit
744701d23aSPhilippe Mathieu-Daudé  BCLRI             011110 011 ....... ..... .....  001001  @bit
754701d23aSPhilippe Mathieu-Daudé  BSETI             011110 100 ....... ..... .....  001001  @bit
764701d23aSPhilippe Mathieu-Daudé  BNEGI             011110 101 ....... ..... .....  001001  @bit
774701d23aSPhilippe Mathieu-Daudé  BINSLI            011110 110 ....... ..... .....  001001  @bit
784701d23aSPhilippe Mathieu-Daudé  BINSRI            011110 111 ....... ..... .....  001001  @bit
794701d23aSPhilippe Mathieu-Daudé
804701d23aSPhilippe Mathieu-Daudé  SAT_S             011110 000 ....... ..... .....  001010  @bit
814701d23aSPhilippe Mathieu-Daudé  SAT_U             011110 001 ....... ..... .....  001010  @bit
824701d23aSPhilippe Mathieu-Daudé  SRARI             011110 010 ....... ..... .....  001010  @bit
834701d23aSPhilippe Mathieu-Daudé  SRLRI             011110 011 ....... ..... .....  001010  @bit
844701d23aSPhilippe Mathieu-Daudé
85*5c5b6400SPhilippe Mathieu-Daudé  FCLASS            011110 110010000 . ..... .....  011110  @2rf
86*5c5b6400SPhilippe Mathieu-Daudé  FTRUNC_S          011110 110010001 . ..... .....  011110  @2rf
87*5c5b6400SPhilippe Mathieu-Daudé  FTRUNC_U          011110 110010010 . ..... .....  011110  @2rf
88*5c5b6400SPhilippe Mathieu-Daudé  FSQRT             011110 110010011 . ..... .....  011110  @2rf
89*5c5b6400SPhilippe Mathieu-Daudé  FRSQRT            011110 110010100 . ..... .....  011110  @2rf
90*5c5b6400SPhilippe Mathieu-Daudé  FRCP              011110 110010101 . ..... .....  011110  @2rf
91*5c5b6400SPhilippe Mathieu-Daudé  FRINT             011110 110010110 . ..... .....  011110  @2rf
92*5c5b6400SPhilippe Mathieu-Daudé  FLOG2             011110 110010111 . ..... .....  011110  @2rf
93*5c5b6400SPhilippe Mathieu-Daudé  FEXUPL            011110 110011000 . ..... .....  011110  @2rf
94*5c5b6400SPhilippe Mathieu-Daudé  FEXUPR            011110 110011001 . ..... .....  011110  @2rf
95*5c5b6400SPhilippe Mathieu-Daudé  FFQL              011110 110011010 . ..... .....  011110  @2rf
96*5c5b6400SPhilippe Mathieu-Daudé  FFQR              011110 110011011 . ..... .....  011110  @2rf
97*5c5b6400SPhilippe Mathieu-Daudé  FTINT_S           011110 110011100 . ..... .....  011110  @2rf
98*5c5b6400SPhilippe Mathieu-Daudé  FTINT_U           011110 110011101 . ..... .....  011110  @2rf
99*5c5b6400SPhilippe Mathieu-Daudé  FFINT_S           011110 110011110 . ..... .....  011110  @2rf
100*5c5b6400SPhilippe Mathieu-Daudé  FFINT_U           011110 110011111 . ..... .....  011110  @2rf
101*5c5b6400SPhilippe Mathieu-Daudé
102ce121fe2SPhilippe Mathieu-Daudé  LD                011110 .......... ..... .....   1000 .. @ldst
103ce121fe2SPhilippe Mathieu-Daudé  ST                011110 .......... ..... .....   1001 .. @ldst
104ce121fe2SPhilippe Mathieu-Daudé
105f5c6ee0cSPhilippe Mathieu-Daudé  MSA               011110 --------------------------
10675094c33SPhilippe Mathieu-Daudé}
107