]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - sim/sh64/defs-compact.h
Regenerate cgen-derived files.
[thirdparty/binutils-gdb.git] / sim / sh64 / defs-compact.h
CommitLineData
cbb38b47
BE
1/* ISA definitions header for compact.
2
3THIS FILE IS MACHINE GENERATED WITH CGEN.
4
0f51e9bf 5Copyright 1996-2010 Free Software Foundation, Inc.
cbb38b47 6
c7e628df 7This file is part of the GNU simulators.
cbb38b47 8
fda1c30b
DE
9 This file is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 3, or (at your option)
12 any later version.
cbb38b47 13
fda1c30b
DE
14 It is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 License for more details.
cbb38b47 18
fda1c30b
DE
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
cbb38b47
BE
22
23*/
24
25#ifndef DEFS_SH64_COMPACT_H
26#define DEFS_SH64_COMPACT_H
27
28/* Instruction argument buffer. */
29
30union sem_fields {
31 struct { /* no operands */
32 int empty;
2310652a 33 } sfmt_empty;
cbb38b47
BE
34 struct { /* */
35 IADDR i_disp12;
36 } sfmt_bra_compact;
37 struct { /* */
38 IADDR i_disp8;
39 } sfmt_bf_compact;
cbb38b47
BE
40 struct { /* */
41 SI f_imm8x2;
42 UINT f_rn;
43 } sfmt_movw10_compact;
44 struct { /* */
45 SI f_imm4x2;
c7e628df 46 UINT f_rm;
cbb38b47
BE
47 } sfmt_movw5_compact;
48 struct { /* */
49 SI f_imm8x4;
50 UINT f_rn;
51 } sfmt_movl10_compact;
52 struct { /* */
53 UINT f_imm4;
54 UINT f_rm;
55 } sfmt_movb5_compact;
c7e628df
DB
56 struct { /* */
57 INT f_imm20;
58 UINT f_rn;
59 } sfmt_movi20_compact;
cbb38b47
BE
60 struct { /* */
61 SI f_vm;
62 SI f_vn;
63 } sfmt_fipr_compact;
64 struct { /* */
65 UINT f_imm8;
66 UINT f_rn;
67 } sfmt_addi_compact;
c7e628df
DB
68 struct { /* */
69 SI f_imm12x4;
70 UINT f_rm;
71 UINT f_rn;
72 } sfmt_movl12_compact;
cbb38b47
BE
73 struct { /* */
74 SI f_imm4x4;
75 UINT f_rm;
76 UINT f_rn;
77 } sfmt_movl5_compact;
c7e628df
DB
78 struct { /* */
79 SI f_dm;
80 SI f_imm12x8;
81 UINT f_rn;
82 } sfmt_fmov9_compact;
83 struct { /* */
84 SI f_dn;
85 SI f_imm12x8;
86 UINT f_rm;
87 } sfmt_fmov8_compact;
cbb38b47
BE
88#if WITH_SCACHE_PBB
89 /* Writeback handler. */
90 struct {
91 /* Pointer to argbuf entry for insn whose results need writing back. */
92 const struct argbuf *abuf;
93 } write;
94 /* x-before handler */
95 struct {
96 /*const SCACHE *insns[MAX_PARALLEL_INSNS];*/
97 int first_p;
98 } before;
99 /* x-after handler */
100 struct {
101 int empty;
102 } after;
103 /* This entry is used to terminate each pbb. */
104 struct {
105 /* Number of insns in pbb. */
106 int insn_count;
107 /* Next pbb to execute. */
108 SCACHE *next;
109 SCACHE *branch_target;
110 } chain;
111#endif
112};
113
114/* The ARGBUF struct. */
115struct argbuf {
116 /* These are the baseclass definitions. */
117 IADDR addr;
118 const IDESC *idesc;
119 char trace_p;
120 char profile_p;
121 /* ??? Temporary hack for skip insns. */
122 char skip_count;
123 char unused;
124 /* cpu specific data follows */
125 union sem semantic;
126 int written;
127 union sem_fields fields;
128};
129
130/* A cached insn.
131
132 ??? SCACHE used to contain more than just argbuf. We could delete the
133 type entirely and always just use ARGBUF, but for future concerns and as
134 a level of abstraction it is left in. */
135
136struct scache {
137 struct argbuf argbuf;
138};
139
140/* Macros to simplify extraction, reading and semantic code.
141 These define and assign the local vars that contain the insn's fields. */
142
143#define EXTRACT_IFMT_EMPTY_VARS \
144 unsigned int length;
145#define EXTRACT_IFMT_EMPTY_CODE \
146 length = 0; \
147
148#define EXTRACT_IFMT_ADD_COMPACT_VARS \
149 UINT f_op4; \
150 UINT f_rn; \
151 UINT f_rm; \
152 UINT f_sub4; \
153 unsigned int length;
154#define EXTRACT_IFMT_ADD_COMPACT_CODE \
155 length = 2; \
c7e628df
DB
156 f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
157 f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
158 f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
159 f_sub4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \
cbb38b47
BE
160
161#define EXTRACT_IFMT_ADDI_COMPACT_VARS \
162 UINT f_op4; \
163 UINT f_rn; \
164 UINT f_imm8; \
165 unsigned int length;
166#define EXTRACT_IFMT_ADDI_COMPACT_CODE \
167 length = 2; \
c7e628df
DB
168 f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
169 f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
170 f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \
cbb38b47
BE
171
172#define EXTRACT_IFMT_AND_COMPACT_VARS \
173 UINT f_op4; \
174 UINT f_rn; \
175 UINT f_rm; \
176 UINT f_sub4; \
177 unsigned int length;
178#define EXTRACT_IFMT_AND_COMPACT_CODE \
179 length = 2; \
c7e628df
DB
180 f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
181 f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
182 f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
183 f_sub4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \
cbb38b47
BE
184
185#define EXTRACT_IFMT_ANDI_COMPACT_VARS \
186 UINT f_op8; \
187 UINT f_imm8; \
188 unsigned int length;
189#define EXTRACT_IFMT_ANDI_COMPACT_CODE \
190 length = 2; \
c7e628df
DB
191 f_op8 = EXTRACT_MSB0_UINT (insn, 16, 0, 8); \
192 f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \
cbb38b47
BE
193
194#define EXTRACT_IFMT_ANDB_COMPACT_VARS \
195 UINT f_op8; \
196 UINT f_imm8; \
197 unsigned int length;
198#define EXTRACT_IFMT_ANDB_COMPACT_CODE \
199 length = 2; \
c7e628df
DB
200 f_op8 = EXTRACT_MSB0_UINT (insn, 16, 0, 8); \
201 f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \
cbb38b47
BE
202
203#define EXTRACT_IFMT_BF_COMPACT_VARS \
204 UINT f_op8; \
205 SI f_disp8; \
206 unsigned int length;
207#define EXTRACT_IFMT_BF_COMPACT_CODE \
208 length = 2; \
c7e628df 209 f_op8 = EXTRACT_MSB0_UINT (insn, 16, 0, 8); \
62836bf4 210 f_disp8 = ((((EXTRACT_MSB0_SINT (insn, 16, 8, 8)) << (1))) + (((pc) + (4)))); \
cbb38b47
BE
211
212#define EXTRACT_IFMT_BRA_COMPACT_VARS \
213 UINT f_op4; \
214 SI f_disp12; \
215 unsigned int length;
216#define EXTRACT_IFMT_BRA_COMPACT_CODE \
217 length = 2; \
c7e628df 218 f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
62836bf4 219 f_disp12 = ((((EXTRACT_MSB0_SINT (insn, 16, 4, 12)) << (1))) + (((pc) + (4)))); \
cbb38b47
BE
220
221#define EXTRACT_IFMT_BRAF_COMPACT_VARS \
222 UINT f_op4; \
223 UINT f_rn; \
224 UINT f_sub8; \
225 unsigned int length;
226#define EXTRACT_IFMT_BRAF_COMPACT_CODE \
227 length = 2; \
c7e628df
DB
228 f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
229 f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
230 f_sub8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \
cbb38b47
BE
231
232#define EXTRACT_IFMT_BRK_COMPACT_VARS \
233 UINT f_op16; \
234 unsigned int length;
235#define EXTRACT_IFMT_BRK_COMPACT_CODE \
236 length = 2; \
c7e628df 237 f_op16 = EXTRACT_MSB0_UINT (insn, 16, 0, 16); \
cbb38b47
BE
238
239#define EXTRACT_IFMT_FABS_COMPACT_VARS \
240 UINT f_op4; \
241 UINT f_rn; \
242 UINT f_sub8; \
243 unsigned int length;
244#define EXTRACT_IFMT_FABS_COMPACT_CODE \
245 length = 2; \
c7e628df
DB
246 f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
247 f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
248 f_sub8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \
cbb38b47
BE
249
250#define EXTRACT_IFMT_FADD_COMPACT_VARS \
251 UINT f_op4; \
252 UINT f_rn; \
253 UINT f_rm; \
254 UINT f_sub4; \
255 unsigned int length;
256#define EXTRACT_IFMT_FADD_COMPACT_CODE \
257 length = 2; \
c7e628df
DB
258 f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
259 f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
260 f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
261 f_sub4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \
cbb38b47
BE
262
263#define EXTRACT_IFMT_FCNVDS_COMPACT_VARS \
264 UINT f_op4; \
265 SI f_dn; \
c7e628df 266 UINT f_7_1; \
cbb38b47
BE
267 UINT f_sub8; \
268 unsigned int length;
269#define EXTRACT_IFMT_FCNVDS_COMPACT_CODE \
270 length = 2; \
c7e628df
DB
271 f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
272 f_dn = ((EXTRACT_MSB0_UINT (insn, 16, 4, 3)) << (1)); \
273 f_7_1 = EXTRACT_MSB0_UINT (insn, 16, 7, 1); \
274 f_sub8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \
cbb38b47
BE
275
276#define EXTRACT_IFMT_FIPR_COMPACT_VARS \
277 UINT f_op4; \
278 SI f_vn; \
279 SI f_vm; \
280 UINT f_sub8; \
281 unsigned int length;
282#define EXTRACT_IFMT_FIPR_COMPACT_CODE \
283 length = 2; \
c7e628df
DB
284 f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
285 f_vn = ((EXTRACT_MSB0_UINT (insn, 16, 4, 2)) << (2)); \
286 f_vm = ((EXTRACT_MSB0_UINT (insn, 16, 6, 2)) << (2)); \
287 f_sub8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \
cbb38b47
BE
288
289#define EXTRACT_IFMT_FLDS_COMPACT_VARS \
290 UINT f_op4; \
291 UINT f_rn; \
292 UINT f_sub8; \
293 unsigned int length;
294#define EXTRACT_IFMT_FLDS_COMPACT_CODE \
295 length = 2; \
c7e628df
DB
296 f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
297 f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
298 f_sub8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \
cbb38b47
BE
299
300#define EXTRACT_IFMT_FMAC_COMPACT_VARS \
301 UINT f_op4; \
302 UINT f_rn; \
303 UINT f_rm; \
304 UINT f_sub4; \
305 unsigned int length;
306#define EXTRACT_IFMT_FMAC_COMPACT_CODE \
307 length = 2; \
c7e628df
DB
308 f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
309 f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
310 f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
311 f_sub4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \
312
313#define EXTRACT_IFMT_FMOV1_COMPACT_VARS \
314 UINT f_op4; \
315 UINT f_rn; \
316 UINT f_rm; \
317 UINT f_sub4; \
318 unsigned int length;
319#define EXTRACT_IFMT_FMOV1_COMPACT_CODE \
320 length = 2; \
321 f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
322 f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
323 f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
324 f_sub4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \
cbb38b47
BE
325
326#define EXTRACT_IFMT_FMOV2_COMPACT_VARS \
327 UINT f_op4; \
328 UINT f_rn; \
329 UINT f_rm; \
330 UINT f_sub4; \
331 unsigned int length;
332#define EXTRACT_IFMT_FMOV2_COMPACT_CODE \
333 length = 2; \
c7e628df
DB
334 f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
335 f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
336 f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
337 f_sub4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \
cbb38b47
BE
338
339#define EXTRACT_IFMT_FMOV5_COMPACT_VARS \
340 UINT f_op4; \
341 UINT f_rn; \
342 UINT f_rm; \
343 UINT f_sub4; \
344 unsigned int length;
345#define EXTRACT_IFMT_FMOV5_COMPACT_CODE \
346 length = 2; \
c7e628df
DB
347 f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
348 f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
349 f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
350 f_sub4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \
351
352#define EXTRACT_IFMT_FMOV8_COMPACT_VARS \
353 UINT f_op4; \
354 SI f_dn; \
355 UINT f_7_1; \
356 UINT f_rm; \
357 UINT f_sub4; \
358 UINT f_16_4; \
359 SI f_imm12x8; \
360 unsigned int length;
361#define EXTRACT_IFMT_FMOV8_COMPACT_CODE \
362 length = 4; \
363 f_op4 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \
364 f_dn = ((EXTRACT_MSB0_UINT (insn, 32, 4, 3)) << (1)); \
365 f_7_1 = EXTRACT_MSB0_UINT (insn, 32, 7, 1); \
366 f_rm = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \
367 f_sub4 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \
368 f_16_4 = EXTRACT_MSB0_UINT (insn, 32, 16, 4); \
62836bf4 369 f_imm12x8 = ((EXTRACT_MSB0_SINT (insn, 32, 20, 12)) << (3)); \
c7e628df
DB
370
371#define EXTRACT_IFMT_FMOV9_COMPACT_VARS \
372 UINT f_op4; \
373 UINT f_rn; \
374 SI f_dm; \
375 UINT f_11_1; \
376 UINT f_sub4; \
377 UINT f_16_4; \
378 SI f_imm12x8; \
379 unsigned int length;
380#define EXTRACT_IFMT_FMOV9_COMPACT_CODE \
381 length = 4; \
382 f_op4 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \
383 f_rn = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \
384 f_dm = ((EXTRACT_MSB0_UINT (insn, 32, 8, 3)) << (1)); \
385 f_11_1 = EXTRACT_MSB0_UINT (insn, 32, 11, 1); \
386 f_sub4 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \
387 f_16_4 = EXTRACT_MSB0_UINT (insn, 32, 16, 4); \
62836bf4 388 f_imm12x8 = ((EXTRACT_MSB0_SINT (insn, 32, 20, 12)) << (3)); \
cbb38b47
BE
389
390#define EXTRACT_IFMT_FTRV_COMPACT_VARS \
391 UINT f_op4; \
392 SI f_vn; \
393 UINT f_sub10; \
394 unsigned int length;
395#define EXTRACT_IFMT_FTRV_COMPACT_CODE \
396 length = 2; \
c7e628df
DB
397 f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
398 f_vn = ((EXTRACT_MSB0_UINT (insn, 16, 4, 2)) << (2)); \
399 f_sub10 = EXTRACT_MSB0_UINT (insn, 16, 6, 10); \
400
401#define EXTRACT_IFMT_MOVI20_COMPACT_VARS \
402 UINT f_op4; \
403 UINT f_rn; \
404 INT f_imm20_hi; \
405 UINT f_imm20_lo; \
406 INT f_imm20; \
407 UINT f_sub4; \
408 unsigned int length;
409#define EXTRACT_IFMT_MOVI20_COMPACT_CODE \
410 length = 4; \
411 f_op4 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \
412 f_rn = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \
62836bf4 413 f_imm20_hi = EXTRACT_MSB0_SINT (insn, 32, 8, 4); \
c7e628df
DB
414 f_imm20_lo = EXTRACT_MSB0_UINT (insn, 32, 16, 16); \
415 f_imm20 = ((((f_imm20_hi) << (16))) | (f_imm20_lo));\
416 f_sub4 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \
cbb38b47
BE
417
418#define EXTRACT_IFMT_MOVB5_COMPACT_VARS \
419 UINT f_op8; \
420 UINT f_rm; \
421 UINT f_imm4; \
422 unsigned int length;
423#define EXTRACT_IFMT_MOVB5_COMPACT_CODE \
424 length = 2; \
c7e628df
DB
425 f_op8 = EXTRACT_MSB0_UINT (insn, 16, 0, 8); \
426 f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
427 f_imm4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \
cbb38b47
BE
428
429#define EXTRACT_IFMT_MOVL4_COMPACT_VARS \
430 UINT f_op8; \
431 SI f_imm8x4; \
432 unsigned int length;
433#define EXTRACT_IFMT_MOVL4_COMPACT_CODE \
434 length = 2; \
c7e628df
DB
435 f_op8 = EXTRACT_MSB0_UINT (insn, 16, 0, 8); \
436 f_imm8x4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2)); \
cbb38b47
BE
437
438#define EXTRACT_IFMT_MOVL5_COMPACT_VARS \
439 UINT f_op4; \
440 UINT f_rn; \
441 UINT f_rm; \
442 SI f_imm4x4; \
443 unsigned int length;
444#define EXTRACT_IFMT_MOVL5_COMPACT_CODE \
445 length = 2; \
c7e628df
DB
446 f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
447 f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
448 f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
449 f_imm4x4 = ((EXTRACT_MSB0_UINT (insn, 16, 12, 4)) << (2)); \
cbb38b47
BE
450
451#define EXTRACT_IFMT_MOVL10_COMPACT_VARS \
452 UINT f_op4; \
453 UINT f_rn; \
454 SI f_imm8x4; \
455 unsigned int length;
456#define EXTRACT_IFMT_MOVL10_COMPACT_CODE \
457 length = 2; \
c7e628df
DB
458 f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
459 f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
460 f_imm8x4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2)); \
461
462#define EXTRACT_IFMT_MOVL12_COMPACT_VARS \
463 UINT f_op4; \
464 UINT f_rn; \
465 UINT f_rm; \
466 UINT f_sub4; \
467 UINT f_16_4; \
468 SI f_imm12x4; \
469 unsigned int length;
470#define EXTRACT_IFMT_MOVL12_COMPACT_CODE \
471 length = 4; \
472 f_op4 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \
473 f_rn = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \
474 f_rm = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \
475 f_sub4 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \
476 f_16_4 = EXTRACT_MSB0_UINT (insn, 32, 16, 4); \
62836bf4 477 f_imm12x4 = ((EXTRACT_MSB0_SINT (insn, 32, 20, 12)) << (2)); \
cbb38b47
BE
478
479#define EXTRACT_IFMT_MOVW4_COMPACT_VARS \
480 UINT f_op8; \
481 SI f_imm8x2; \
482 unsigned int length;
483#define EXTRACT_IFMT_MOVW4_COMPACT_CODE \
484 length = 2; \
c7e628df
DB
485 f_op8 = EXTRACT_MSB0_UINT (insn, 16, 0, 8); \
486 f_imm8x2 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1)); \
cbb38b47
BE
487
488#define EXTRACT_IFMT_MOVW5_COMPACT_VARS \
489 UINT f_op8; \
c7e628df 490 UINT f_rm; \
cbb38b47
BE
491 SI f_imm4x2; \
492 unsigned int length;
493#define EXTRACT_IFMT_MOVW5_COMPACT_CODE \
494 length = 2; \
c7e628df
DB
495 f_op8 = EXTRACT_MSB0_UINT (insn, 16, 0, 8); \
496 f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
497 f_imm4x2 = ((EXTRACT_MSB0_UINT (insn, 16, 12, 4)) << (1)); \
cbb38b47
BE
498
499#define EXTRACT_IFMT_MOVW10_COMPACT_VARS \
500 UINT f_op4; \
501 UINT f_rn; \
502 SI f_imm8x2; \
503 unsigned int length;
504#define EXTRACT_IFMT_MOVW10_COMPACT_CODE \
505 length = 2; \
c7e628df
DB
506 f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
507 f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
508 f_imm8x2 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1)); \
cbb38b47
BE
509
510#endif /* DEFS_SH64_COMPACT_H */