Lines Matching +full:16 +full:- +full:bits
1 //===-- MicroMipsDSPInstrFormats.td - Instruction Formats --*- tablegen -*-===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
24 class POOL32A_3R_FMT<string opstr, bits<11> op> : MMDSPInst<opstr> {
25 bits<5> rd;
26 bits<5> rs;
27 bits<5> rt;
29 let Inst{31-26} = 0b000000;
30 let Inst{25-21} = rt;
31 let Inst{20-16} = rs;
32 let Inst{15-11} = rd;
33 let Inst{10-0} = op;
36 class POOL32A_2R_FMT<string opstr, bits<10> op> : MMDSPInst<opstr> {
37 bits<5> rt;
38 bits<5> rs;
40 let Inst{31-26} = 0b000000;
41 let Inst{25-21} = rt;
42 let Inst{20-16} = rs;
43 let Inst{15-6} = op;
44 let Inst{5-0} = 0b111100;
47 class POOL32A_2RAC_FMT<string opstr, bits<8> op> : MMDSPInst<opstr> {
48 bits<5> rt;
49 bits<5> rs;
50 bits<2> ac;
52 let Inst{31-26} = 0b000000;
53 let Inst{25-21} = rt;
54 let Inst{20-16} = rs;
55 let Inst{15-14} = ac;
56 let Inst{13-6} = op;
57 let Inst{5-0} = 0b111100;
60 class POOL32A_3RB0_FMT<string opstr, bits<10> op> : MMDSPInst<opstr> {
61 bits<5> rd;
62 bits<5> rs;
63 bits<5> rt;
65 let Inst{31-26} = 0b000000;
66 let Inst{25-21} = rt;
67 let Inst{20-16} = rs;
68 let Inst{15-11} = rd;
70 let Inst{9-0} = op;
73 class POOL32A_2RSA4_FMT<string opstr, bits<12> op> : MMDSPInst<opstr> {
74 bits<5> rt;
75 bits<5> rs;
76 bits<4> sa;
78 let Inst{31-26} = 0b000000;
79 let Inst{25-21} = rt;
80 let Inst{20-16} = rs;
81 let Inst{15-12} = sa;
82 let Inst{11-0} = op;
85 class POOL32A_2RSA3_FMT<string opstr, bits<7> op> : MMDSPInst<opstr> {
86 bits<5> rt;
87 bits<5> rs;
88 bits<3> sa;
90 let Inst{31-26} = 0b000000;
91 let Inst{25-21} = rt;
92 let Inst{20-16} = rs;
93 let Inst{15-13} = sa;
94 let Inst{12-6} = op;
95 let Inst{5-0} = 0b111100;
98 class POOL32A_2RSA5B0_FMT<string opstr, bits<10> op> : MMDSPInst<opstr> {
99 bits<5> rt;
100 bits<5> rs;
101 bits<5> sa;
103 let Inst{31-26} = 0b000000;
104 let Inst{25-21} = rt;
105 let Inst{20-16} = rs;
106 let Inst{15-11} = sa;
108 let Inst{9-0} = op;
111 class POOL32A_2RSA4B0_FMT<string opstr, bits<11> op> : MMDSPInst<opstr> {
112 bits<5> rt;
113 bits<5> rs;
114 bits<4> sa;
116 let Inst{31-26} = 0b000000;
117 let Inst{25-21} = rt;
118 let Inst{20-16} = rs;
119 let Inst{15-12} = sa;
121 let Inst{10-0} = op;
124 class POOL32A_2RSA4OP6_FMT<string opstr, bits<6> op> : MMDSPInst<opstr> {
125 bits<5> rt;
126 bits<5> rs;
127 bits<4> sa;
129 let Inst{31-26} = 0b000000;
130 let Inst{25-21} = rt;
131 let Inst{20-16} = rs;
132 let Inst{15-12} = sa;
133 let Inst{11-6} = op;
134 let Inst{5-0} = 0b111100;
137 class POOL32A_1RIMM5AC_FMT<string opstr, bits<8> funct> : MMDSPInst<opstr> {
138 bits<5> rt;
139 bits<5> imm;
140 bits<2> ac;
142 let Inst{31-26} = 0b000000;
143 let Inst{25-21} = rt;
144 let Inst{20-16} = imm;
145 let Inst{15-14} = ac;
146 let Inst{13-6} = funct;
147 let Inst{5-0} = 0b111100;
150 class POOL32A_2RSA5_FMT<string opstr, bits<11> op> : MMDSPInst<opstr> {
151 bits<5> rt;
152 bits<5> rs;
153 bits<5> sa;
155 let Inst{31-26} = 0b000000;
156 let Inst{25-21} = rt;
157 let Inst{20-16} = rs;
158 let Inst{15-11} = sa;
159 let Inst{10-0} = op;
162 class POOL32A_1RMEMB0_FMT<string opstr, bits<10> funct> : MMDSPInst<opstr> {
163 bits<5> index;
164 bits<5> base;
165 bits<5> rd;
167 let Inst{31-26} = 0;
168 let Inst{25-21} = index;
169 let Inst{20-16} = base;
170 let Inst{15-11} = rd;
172 let Inst{9-0} = funct;
175 class POOL32A_1RAC_FMT<string instr_asm, bits<8> funct> : MMDSPInst<instr_asm> {
176 bits<5> rs;
177 bits<2> ac;
179 let Inst{31-26} = 0;
180 let Inst{25-21} = 0;
181 let Inst{20-16} = rs;
182 let Inst{15-14} = ac;
183 let Inst{13-6} = funct;
184 let Inst{5-0} = 0b111100;
187 class POOL32A_1RMASK7_FMT<string opstr, bits<8> op> : MMDSPInst<opstr> {
188 bits<5> rt;
189 bits<7> mask;
191 let Inst{31-26} = 0b000000;
192 let Inst{25-21} = rt;
193 let Inst{20-14} = mask;
194 let Inst{13-6} = op;
195 let Inst{5-0} = 0b111100;
198 class POOL32A_1RIMM10_FMT<string opstr, bits<10> op> : MMDSPInst<opstr> {
199 bits<5> rd;
200 bits<10> imm;
202 let Inst{31-26} = 0;
203 let Inst{25-16} = imm;
204 let Inst{15-11} = rd;
206 let Inst{9-0} = op;
209 class POOL32A_1RIMM8_FMT<string opstr, bits<6> op> : MMDSPInst<opstr> {
210 bits<5> rt;
211 bits<8> imm;
213 let Inst{31-26} = 0;
214 let Inst{25-21} = rt;
215 let Inst{20-13} = imm;
217 let Inst{11-6} = op;
218 let Inst{5-0} = 0b111100;
221 class POOL32A_4B0SHIFT6AC4B0_FMT<string opstr, bits<10> op> : MMDSPInst<opstr> {
222 bits<6> shift;
223 bits<2> ac;
225 let Inst{31-26} = 0b000000;
226 let Inst{25-22} = 0b0000;
227 let Inst{21-16} = shift;
228 let Inst{15-14} = ac;
229 let Inst{13-10} = 0b0000;
230 let Inst{9-0} = op;
233 class POOL32A_5B01RAC_FMT<string opstr, bits<8> op> : MMDSPInst<opstr> {
234 bits<5> rs;
235 bits<2> ac;
237 let Inst{31-26} = 0b000000;
238 let Inst{25-21} = 0b00000;
239 let Inst{20-16} = rs;
240 let Inst{15-14} = ac;
241 let Inst{13-6} = op;
242 let Inst{5-0} = 0b111100;
245 class POOL32I_IMMB0_FMT<string opstr, bits<5> op> : MMDSPInst<opstr> {
246 bits<16> offset;
248 let Inst{31-26} = 0b010000;
249 let Inst{25-21} = op;
250 let Inst{20-16} = 0;
251 let Inst{15-0} = offset;
255 bits<5> rt;
256 bits<5> rs;
257 bits<2> bp;
259 let Inst{31-26} = 0;
260 let Inst{25-21} = rt;
261 let Inst{20-16} = rs;
262 let Inst{15-14} = bp;
263 let Inst{13-6} = 0b00100010;
264 let Inst{5-0} = 0b111100;
267 class POOL32A_2RB0_FMT<string opstr, bits<10> op> : MMDSPInst<opstr> {
268 bits<5> rt;
269 bits<5> rs;
271 let Inst{31-26} = 0;
272 let Inst{25-21} = rt;
273 let Inst{20-16} = rs;
274 let Inst{15-10} = 0;
275 let Inst{9-0} = op;
278 class POOL32S_3RB0_FMT<string opstr, bits<10> op> : MMDSPInst<opstr> {
279 bits<5> rt;
280 bits<5> rs;
281 bits<5> rd;
283 let Inst{31-26} = 0b010110;
284 let Inst{25-21} = rt;
285 let Inst{20-16} = rs;
286 let Inst{15-11} = rd;
288 let Inst{9-0} = op;
291 class POOL32A_2R2B0_FMT<string opstr, bits<10> op> : MMDSPInst<opstr> {
292 bits<5> rt;
293 bits<5> rs;
295 let Inst{31-26} = 0;
296 let Inst{25-21} = rt;
297 let Inst{20-16} = rs;
298 let Inst{15-11} = 0;
300 let Inst{9-0} = op;