blob: bcbc573deecd68eb45659083d52832b0618c59bf (
plain) (
blame)
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# 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_r df wd ws wt
&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
%2r_df_w 16:1 !function=plus_2
@lsa ...... rs:5 rt:5 rd:5 ... sa:2 ...... &r
@ldst ...... sa:s10 ws:5 wd:5 .... df:2 &msa_i
@bz_v ...... ... .. wt:5 sa:16 &msa_bz df=3
@bz ...... ... df:2 wt:5 sa:16 &msa_bz
@2r ...... ........ df:2 ws:5 wd:5 ...... &msa_r wt=0
@2rf ...... ......... . ws:5 wd:5 ...... &msa_r wt=0 df=%2r_df_w
@u5 ...... ... df:2 sa:5 ws:5 wd:5 ...... &msa_i
@s5 ...... ... df:2 sa:s5 ws:5 wd:5 ...... &msa_i
@i8_df ...... df:2 sa:s8 ws:5 wd:5 ...... &msa_i
@i8 ...... .. sa:s8 ws:5 wd:5 ...... &msa_i df=0
@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
{
ANDI 011110 00 ........ ..... ..... 000000 @i8
ORI 011110 01 ........ ..... ..... 000000 @i8
NORI 011110 10 ........ ..... ..... 000000 @i8
XORI 011110 11 ........ ..... ..... 000000 @i8
BMNZI 011110 00 ........ ..... ..... 000001 @i8
BMZI 011110 01 ........ ..... ..... 000001 @i8
BSELI 011110 10 ........ ..... ..... 000001 @i8
SHF 011110 .. ........ ..... ..... 000010 @i8_df
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
FILL 011110 11000000 .. ..... ..... 011110 @2r
FCLASS 011110 110010000 . ..... ..... 011110 @2rf
FTRUNC_S 011110 110010001 . ..... ..... 011110 @2rf
FTRUNC_U 011110 110010010 . ..... ..... 011110 @2rf
FSQRT 011110 110010011 . ..... ..... 011110 @2rf
FRSQRT 011110 110010100 . ..... ..... 011110 @2rf
FRCP 011110 110010101 . ..... ..... 011110 @2rf
FRINT 011110 110010110 . ..... ..... 011110 @2rf
FLOG2 011110 110010111 . ..... ..... 011110 @2rf
FEXUPL 011110 110011000 . ..... ..... 011110 @2rf
FEXUPR 011110 110011001 . ..... ..... 011110 @2rf
FFQL 011110 110011010 . ..... ..... 011110 @2rf
FFQR 011110 110011011 . ..... ..... 011110 @2rf
FTINT_S 011110 110011100 . ..... ..... 011110 @2rf
FTINT_U 011110 110011101 . ..... ..... 011110 @2rf
FFINT_S 011110 110011110 . ..... ..... 011110 @2rf
FFINT_U 011110 110011111 . ..... ..... 011110 @2rf
LD 011110 .......... ..... ..... 1000 .. @ldst
ST 011110 .......... ..... ..... 1001 .. @ldst
MSA 011110 --------------------------
}
|