aboutsummaryrefslogtreecommitdiff
path: root/target/mips/tcg/msa.decode
blob: 3d6c6faf688bc5e4feb30b1db5d5ba9988ea45eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# MIPS SIMD Architecture Module instruction set
#
# Copyright (C) 2020  Philippe Mathieu-Daudé
#
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Reference:
#       MIPS Architecture for Programmers Volume IV-j
#       - The MIPS32 SIMD Architecture Module, Revision 1.12
#         (Document Number: MD00866-2B-MSA32-AFP-01.12)
#       - The MIPS64 SIMD Architecture Module, Revision 1.12
#         (Document Number: MD00868-1D-MSA64-AFP-01.12)

&r                  rs rt rd sa

&msa_bz             df        wt sa
&msa_ldi            df  wd       sa
&msa_i              df  wd ws    sa
&msa_bit            df  wd ws       m

%bit_df             16:7 !function=bit_df
%bit_m              16:7 !function=bit_m

@lsa                ...... rs:5 rt:5 rd:5 ... sa:2 ......   &r
@bz_v               ...... ... ..    wt:5 sa:16             &msa_bz df=3
@bz                 ...... ...  df:2 wt:5 sa:16             &msa_bz
@u5                 ...... ... df:2 sa:5  ws:5 wd:5 ......  &msa_i
@s5                 ...... ... df:2 sa:s5 ws:5 wd:5 ......  &msa_i
@ldi                ...... ... df:2 sa:s10     wd:5 ......  &msa_ldi
@bit                ...... ... .......    ws:5 wd:5 ......  &msa_bit df=%bit_df m=%bit_m

LSA                 000000 ..... ..... ..... 000 .. 000101  @lsa
DLSA                000000 ..... ..... ..... 000 .. 010101  @lsa

BZ_V                010001 01011  ..... ................    @bz_v
BNZ_V               010001 01111  ..... ................    @bz_v
BZ                  010001 110 .. ..... ................    @bz
BNZ                 010001 111 .. ..... ................    @bz

{
  ADDVI             011110 000 .. ..... ..... ..... 000110  @u5
  SUBVI             011110 001 .. ..... ..... ..... 000110  @u5
  MAXI_S            011110 010 .. ..... ..... ..... 000110  @s5
  MAXI_U            011110 011 .. ..... ..... ..... 000110  @u5
  MINI_S            011110 100 .. ..... ..... ..... 000110  @s5
  MINI_U            011110 101 .. ..... ..... ..... 000110  @u5

  CEQI              011110 000 .. ..... ..... ..... 000111  @s5
  CLTI_S            011110 010 .. ..... ..... ..... 000111  @s5
  CLTI_U            011110 011 .. ..... ..... ..... 000111  @u5
  CLEI_S            011110 100 .. ..... ..... ..... 000111  @s5
  CLEI_U            011110 101 .. ..... ..... ..... 000111  @u5

  LDI               011110 110 .. ..........  ..... 000111  @ldi

  SLLI              011110 000 ....... ..... .....  001001  @bit
  SRAI              011110 001 ....... ..... .....  001001  @bit
  SRLI              011110 010 ....... ..... .....  001001  @bit
  BCLRI             011110 011 ....... ..... .....  001001  @bit
  BSETI             011110 100 ....... ..... .....  001001  @bit
  BNEGI             011110 101 ....... ..... .....  001001  @bit
  BINSLI            011110 110 ....... ..... .....  001001  @bit
  BINSRI            011110 111 ....... ..... .....  001001  @bit

  SAT_S             011110 000 ....... ..... .....  001010  @bit
  SAT_U             011110 001 ....... ..... .....  001010  @bit
  SRARI             011110 010 ....... ..... .....  001010  @bit
  SRLRI             011110 011 ....... ..... .....  001010  @bit

  MSA               011110 --------------------------
}