OpenCores
URL https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [opcodes/] [tilegx-opc.c] - Blame information for rev 298

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 148 khays
/* TILE-Gx opcode information.
2
 
3
   Copyright 2011 Free Software Foundation, Inc.
4
 
5
   This program is free software; you can redistribute it and/or modify
6
   it under the terms of the GNU General Public License as published by
7
   the Free Software Foundation; either version 3 of the License, or
8
   (at your option) any later version.
9
 
10
    This program is distributed in the hope that it will be useful,
11
    but WITHOUT ANY WARRANTY; without even the implied warranty of
12
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
    GNU General Public License for more details.
14
 
15
    You should have received a copy of the GNU General Public License
16
    along with this program; if not, write to the Free Software
17
    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
18
    MA 02110-1301, USA.  */
19
 
20
/* This define is BFD_RELOC_##x for real bfd, or -1 for everyone else.  */
21
#define BFD_RELOC(x) BFD_RELOC_##x
22
 
23
#include "bfd.h"
24
 
25
/* Special registers.  */
26
#define TREG_LR   55
27
#define TREG_SN   56
28
#define TREG_ZERO 63
29
 
30
#if defined(__KERNEL__) || defined(_LIBC)
31
/* FIXME: Rename this. */
32
#include <asm/opcode-tile_64.h>
33
#define DISASM_ONLY
34
#else
35
#include "opcode/tilegx.h"
36
#endif
37
 
38
#ifdef __KERNEL__
39
#include <linux/stddef.h>
40
#else
41
#include <stddef.h>
42
#endif
43
 
44 166 khays
const struct tilegx_opcode tilegx_opcodes[336] =
45 148 khays
{
46
 { "bpt", TILEGX_OPC_BPT, 0x2, 0, TREG_ZERO, 0,
47
    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
48
#ifndef DISASM_ONLY
49
    {
50
      0ULL,
51
      0xffffffff80000000ULL,
52
      0ULL,
53
      0ULL,
54
      0ULL
55
    },
56
    {
57
      -1ULL,
58
      0x286a44ae00000000ULL,
59
      -1ULL,
60
      -1ULL,
61
      -1ULL
62
    }
63
#endif
64
  },
65
  { "info", TILEGX_OPC_INFO, 0xf, 1, TREG_ZERO, 1,
66
    { { 0 }, { 1 }, { 2 }, { 3 }, { 0, } },
67
#ifndef DISASM_ONLY
68
    {
69
      0xc00000007ff00fffULL,
70
      0xfff807ff80000000ULL,
71
      0x0000000078000fffULL,
72
      0x3c0007ff80000000ULL,
73
      0ULL
74
    },
75
    {
76
      0x0000000040300fffULL,
77
      0x181807ff80000000ULL,
78
      0x0000000010000fffULL,
79
      0x0c0007ff80000000ULL,
80
      -1ULL
81
    }
82
#endif
83
  },
84
  { "infol", TILEGX_OPC_INFOL, 0x3, 1, TREG_ZERO, 1,
85
    { { 4 }, { 5 }, { 0, }, { 0, }, { 0, } },
86
#ifndef DISASM_ONLY
87
    {
88
      0xc000000070000fffULL,
89
      0xf80007ff80000000ULL,
90
      0ULL,
91
      0ULL,
92
      0ULL
93
    },
94
    {
95
      0x0000000070000fffULL,
96
      0x380007ff80000000ULL,
97
      -1ULL,
98
      -1ULL,
99
      -1ULL
100
    }
101
#endif
102
  },
103 166 khays
  { "ld4s_tls", TILEGX_OPC_LD4S_TLS, 0x2, 3, TREG_ZERO, 1,
104
    { { 0, }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
105
#ifndef DISASM_ONLY
106
    {
107
      0ULL,
108
      0xfffff80000000000ULL,
109
      0ULL,
110
      0ULL,
111
      0ULL
112
    },
113
    {
114
      -1ULL,
115
      0x1858000000000000ULL,
116
      -1ULL,
117
      -1ULL,
118
      -1ULL
119
    }
120
#endif
121
  },
122
  { "ld_tls", TILEGX_OPC_LD_TLS, 0x2, 3, TREG_ZERO, 1,
123
    { { 0, }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
124
#ifndef DISASM_ONLY
125
    {
126
      0ULL,
127
      0xfffff80000000000ULL,
128
      0ULL,
129
      0ULL,
130
      0ULL
131
    },
132
    {
133
      -1ULL,
134
      0x18a0000000000000ULL,
135
      -1ULL,
136
      -1ULL,
137
      -1ULL
138
    }
139
#endif
140
  },
141 148 khays
  { "move", TILEGX_OPC_MOVE, 0xf, 2, TREG_ZERO, 1,
142 166 khays
    { { 8, 9 }, { 6, 7 }, { 10, 11 }, { 12, 13 }, { 0, } },
143 148 khays
#ifndef DISASM_ONLY
144
    {
145
      0xc00000007ffff000ULL,
146
      0xfffff80000000000ULL,
147
      0x00000000780ff000ULL,
148
      0x3c07f80000000000ULL,
149
      0ULL
150
    },
151
    {
152
      0x000000005107f000ULL,
153
      0x283bf80000000000ULL,
154
      0x00000000500bf000ULL,
155
      0x2c05f80000000000ULL,
156
      -1ULL
157
    }
158
#endif
159
  },
160
  { "movei", TILEGX_OPC_MOVEI, 0xf, 2, TREG_ZERO, 1,
161 166 khays
    { { 8, 0 }, { 6, 1 }, { 10, 2 }, { 12, 3 }, { 0, } },
162 148 khays
#ifndef DISASM_ONLY
163
    {
164
      0xc00000007ff00fc0ULL,
165
      0xfff807e000000000ULL,
166
      0x0000000078000fc0ULL,
167
      0x3c0007e000000000ULL,
168
      0ULL
169
    },
170
    {
171
      0x0000000040100fc0ULL,
172
      0x180807e000000000ULL,
173
      0x0000000000000fc0ULL,
174
      0x040007e000000000ULL,
175
      -1ULL
176
    }
177
#endif
178
  },
179
  { "moveli", TILEGX_OPC_MOVELI, 0x3, 2, TREG_ZERO, 1,
180 166 khays
    { { 8, 4 }, { 6, 5 }, { 0, }, { 0, }, { 0, } },
181 148 khays
#ifndef DISASM_ONLY
182
    {
183
      0xc000000070000fc0ULL,
184
      0xf80007e000000000ULL,
185
      0ULL,
186
      0ULL,
187
      0ULL
188
    },
189
    {
190
      0x0000000010000fc0ULL,
191
      0x000007e000000000ULL,
192
      -1ULL,
193
      -1ULL,
194
      -1ULL
195
    }
196
#endif
197
  },
198
  { "prefetch", TILEGX_OPC_PREFETCH, 0x12, 1, TREG_ZERO, 1,
199 166 khays
    { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
200 148 khays
#ifndef DISASM_ONLY
201
    {
202
      0ULL,
203
      0xfffff81f80000000ULL,
204
      0ULL,
205
      0ULL,
206
      0xc3f8000004000000ULL
207
    },
208
    {
209
      -1ULL,
210
      0x286a801f80000000ULL,
211
      -1ULL,
212
      -1ULL,
213
      0x41f8000004000000ULL
214
    }
215
#endif
216
  },
217
  { "prefetch_add_l1", TILEGX_OPC_PREFETCH_ADD_L1, 0x2, 2, TREG_ZERO, 1,
218
    { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
219
#ifndef DISASM_ONLY
220
    {
221
      0ULL,
222
      0xfff8001f80000000ULL,
223
      0ULL,
224
      0ULL,
225
      0ULL
226
    },
227
    {
228
      -1ULL,
229
      0x1840001f80000000ULL,
230
      -1ULL,
231
      -1ULL,
232
      -1ULL
233
    }
234
#endif
235
  },
236
  { "prefetch_add_l1_fault", TILEGX_OPC_PREFETCH_ADD_L1_FAULT, 0x2, 2, TREG_ZERO, 1,
237
    { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
238
#ifndef DISASM_ONLY
239
    {
240
      0ULL,
241
      0xfff8001f80000000ULL,
242
      0ULL,
243
      0ULL,
244
      0ULL
245
    },
246
    {
247
      -1ULL,
248
      0x1838001f80000000ULL,
249
      -1ULL,
250
      -1ULL,
251
      -1ULL
252
    }
253
#endif
254
  },
255
  { "prefetch_add_l2", TILEGX_OPC_PREFETCH_ADD_L2, 0x2, 2, TREG_ZERO, 1,
256
    { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
257
#ifndef DISASM_ONLY
258
    {
259
      0ULL,
260
      0xfff8001f80000000ULL,
261
      0ULL,
262
      0ULL,
263
      0ULL
264
    },
265
    {
266
      -1ULL,
267
      0x1850001f80000000ULL,
268
      -1ULL,
269
      -1ULL,
270
      -1ULL
271
    }
272
#endif
273
  },
274
  { "prefetch_add_l2_fault", TILEGX_OPC_PREFETCH_ADD_L2_FAULT, 0x2, 2, TREG_ZERO, 1,
275
    { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
276
#ifndef DISASM_ONLY
277
    {
278
      0ULL,
279
      0xfff8001f80000000ULL,
280
      0ULL,
281
      0ULL,
282
      0ULL
283
    },
284
    {
285
      -1ULL,
286
      0x1848001f80000000ULL,
287
      -1ULL,
288
      -1ULL,
289
      -1ULL
290
    }
291
#endif
292
  },
293
  { "prefetch_add_l3", TILEGX_OPC_PREFETCH_ADD_L3, 0x2, 2, TREG_ZERO, 1,
294
    { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
295
#ifndef DISASM_ONLY
296
    {
297
      0ULL,
298
      0xfff8001f80000000ULL,
299
      0ULL,
300
      0ULL,
301
      0ULL
302
    },
303
    {
304
      -1ULL,
305
      0x1860001f80000000ULL,
306
      -1ULL,
307
      -1ULL,
308
      -1ULL
309
    }
310
#endif
311
  },
312
  { "prefetch_add_l3_fault", TILEGX_OPC_PREFETCH_ADD_L3_FAULT, 0x2, 2, TREG_ZERO, 1,
313
    { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
314
#ifndef DISASM_ONLY
315
    {
316
      0ULL,
317
      0xfff8001f80000000ULL,
318
      0ULL,
319
      0ULL,
320
      0ULL
321
    },
322
    {
323
      -1ULL,
324
      0x1858001f80000000ULL,
325
      -1ULL,
326
      -1ULL,
327
      -1ULL
328
    }
329
#endif
330
  },
331
  { "prefetch_l1", TILEGX_OPC_PREFETCH_L1, 0x12, 1, TREG_ZERO, 1,
332 166 khays
    { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
333 148 khays
#ifndef DISASM_ONLY
334
    {
335
      0ULL,
336
      0xfffff81f80000000ULL,
337
      0ULL,
338
      0ULL,
339
      0xc3f8000004000000ULL
340
    },
341
    {
342
      -1ULL,
343
      0x286a801f80000000ULL,
344
      -1ULL,
345
      -1ULL,
346
      0x41f8000004000000ULL
347
    }
348
#endif
349
  },
350
  { "prefetch_l1_fault", TILEGX_OPC_PREFETCH_L1_FAULT, 0x12, 1, TREG_ZERO, 1,
351 166 khays
    { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
352 148 khays
#ifndef DISASM_ONLY
353
    {
354
      0ULL,
355
      0xfffff81f80000000ULL,
356
      0ULL,
357
      0ULL,
358
      0xc3f8000004000000ULL
359
    },
360
    {
361
      -1ULL,
362
      0x286a781f80000000ULL,
363
      -1ULL,
364
      -1ULL,
365
      0x41f8000000000000ULL
366
    }
367
#endif
368
  },
369
  { "prefetch_l2", TILEGX_OPC_PREFETCH_L2, 0x12, 1, TREG_ZERO, 1,
370 166 khays
    { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
371 148 khays
#ifndef DISASM_ONLY
372
    {
373
      0ULL,
374
      0xfffff81f80000000ULL,
375
      0ULL,
376
      0ULL,
377
      0xc3f8000004000000ULL
378
    },
379
    {
380
      -1ULL,
381
      0x286a901f80000000ULL,
382
      -1ULL,
383
      -1ULL,
384
      0x43f8000004000000ULL
385
    }
386
#endif
387
  },
388
  { "prefetch_l2_fault", TILEGX_OPC_PREFETCH_L2_FAULT, 0x12, 1, TREG_ZERO, 1,
389 166 khays
    { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
390 148 khays
#ifndef DISASM_ONLY
391
    {
392
      0ULL,
393
      0xfffff81f80000000ULL,
394
      0ULL,
395
      0ULL,
396
      0xc3f8000004000000ULL
397
    },
398
    {
399
      -1ULL,
400
      0x286a881f80000000ULL,
401
      -1ULL,
402
      -1ULL,
403
      0x43f8000000000000ULL
404
    }
405
#endif
406
  },
407
  { "prefetch_l3", TILEGX_OPC_PREFETCH_L3, 0x12, 1, TREG_ZERO, 1,
408 166 khays
    { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
409 148 khays
#ifndef DISASM_ONLY
410
    {
411
      0ULL,
412
      0xfffff81f80000000ULL,
413
      0ULL,
414
      0ULL,
415
      0xc3f8000004000000ULL
416
    },
417
    {
418
      -1ULL,
419
      0x286aa01f80000000ULL,
420
      -1ULL,
421
      -1ULL,
422
      0x83f8000000000000ULL
423
    }
424
#endif
425
  },
426
  { "prefetch_l3_fault", TILEGX_OPC_PREFETCH_L3_FAULT, 0x12, 1, TREG_ZERO, 1,
427 166 khays
    { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
428 148 khays
#ifndef DISASM_ONLY
429
    {
430
      0ULL,
431
      0xfffff81f80000000ULL,
432
      0ULL,
433
      0ULL,
434
      0xc3f8000004000000ULL
435
    },
436
    {
437
      -1ULL,
438
      0x286a981f80000000ULL,
439
      -1ULL,
440
      -1ULL,
441
      0x81f8000004000000ULL
442
    }
443
#endif
444
  },
445
  { "raise", TILEGX_OPC_RAISE, 0x2, 0, TREG_ZERO, 1,
446
    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
447
#ifndef DISASM_ONLY
448
    {
449
      0ULL,
450
      0xffffffff80000000ULL,
451
      0ULL,
452
      0ULL,
453
      0ULL
454
    },
455
    {
456
      -1ULL,
457
      0x286a44ae80000000ULL,
458
      -1ULL,
459
      -1ULL,
460
      -1ULL
461
    }
462
#endif
463
  },
464
  { "add", TILEGX_OPC_ADD, 0xf, 3, TREG_ZERO, 1,
465 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
466 148 khays
#ifndef DISASM_ONLY
467
    {
468
      0xc00000007ffc0000ULL,
469
      0xfffe000000000000ULL,
470
      0x00000000780c0000ULL,
471
      0x3c06000000000000ULL,
472
      0ULL
473
    },
474
    {
475
      0x00000000500c0000ULL,
476
      0x2806000000000000ULL,
477
      0x0000000028040000ULL,
478
      0x1802000000000000ULL,
479
      -1ULL
480
    }
481
#endif
482
  },
483
  { "addi", TILEGX_OPC_ADDI, 0xf, 3, TREG_ZERO, 1,
484 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
485 148 khays
#ifndef DISASM_ONLY
486
    {
487
      0xc00000007ff00000ULL,
488
      0xfff8000000000000ULL,
489
      0x0000000078000000ULL,
490
      0x3c00000000000000ULL,
491
      0ULL
492
    },
493
    {
494
      0x0000000040100000ULL,
495
      0x1808000000000000ULL,
496
      0ULL,
497
      0x0400000000000000ULL,
498
      -1ULL
499
    }
500
#endif
501
  },
502
  { "addli", TILEGX_OPC_ADDLI, 0x3, 3, TREG_ZERO, 1,
503 166 khays
    { { 8, 9, 4 }, { 6, 7, 5 }, { 0, }, { 0, }, { 0, } },
504 148 khays
#ifndef DISASM_ONLY
505
    {
506
      0xc000000070000000ULL,
507
      0xf800000000000000ULL,
508
      0ULL,
509
      0ULL,
510
      0ULL
511
    },
512
    {
513
      0x0000000010000000ULL,
514
      0ULL,
515
      -1ULL,
516
      -1ULL,
517
      -1ULL
518
    }
519
#endif
520
  },
521
  { "addx", TILEGX_OPC_ADDX, 0xf, 3, TREG_ZERO, 1,
522 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
523 148 khays
#ifndef DISASM_ONLY
524
    {
525
      0xc00000007ffc0000ULL,
526
      0xfffe000000000000ULL,
527
      0x00000000780c0000ULL,
528
      0x3c06000000000000ULL,
529
      0ULL
530
    },
531
    {
532
      0x0000000050080000ULL,
533
      0x2804000000000000ULL,
534
      0x0000000028000000ULL,
535
      0x1800000000000000ULL,
536
      -1ULL
537
    }
538
#endif
539
  },
540
  { "addxi", TILEGX_OPC_ADDXI, 0xf, 3, TREG_ZERO, 1,
541 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
542 148 khays
#ifndef DISASM_ONLY
543
    {
544
      0xc00000007ff00000ULL,
545
      0xfff8000000000000ULL,
546
      0x0000000078000000ULL,
547
      0x3c00000000000000ULL,
548
      0ULL
549
    },
550
    {
551
      0x0000000040200000ULL,
552
      0x1810000000000000ULL,
553
      0x0000000008000000ULL,
554
      0x0800000000000000ULL,
555
      -1ULL
556
    }
557
#endif
558
  },
559
  { "addxli", TILEGX_OPC_ADDXLI, 0x3, 3, TREG_ZERO, 1,
560 166 khays
    { { 8, 9, 4 }, { 6, 7, 5 }, { 0, }, { 0, }, { 0, } },
561 148 khays
#ifndef DISASM_ONLY
562
    {
563
      0xc000000070000000ULL,
564
      0xf800000000000000ULL,
565
      0ULL,
566
      0ULL,
567
      0ULL
568
    },
569
    {
570
      0x0000000020000000ULL,
571
      0x0800000000000000ULL,
572
      -1ULL,
573
      -1ULL,
574
      -1ULL
575
    }
576
#endif
577
  },
578
  { "addxsc", TILEGX_OPC_ADDXSC, 0x3, 3, TREG_ZERO, 1,
579 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
580 148 khays
#ifndef DISASM_ONLY
581
    {
582
      0xc00000007ffc0000ULL,
583
      0xfffe000000000000ULL,
584
      0ULL,
585
      0ULL,
586
      0ULL
587
    },
588
    {
589
      0x0000000050040000ULL,
590
      0x2802000000000000ULL,
591
      -1ULL,
592
      -1ULL,
593
      -1ULL
594
    }
595
#endif
596
  },
597
  { "and", TILEGX_OPC_AND, 0xf, 3, TREG_ZERO, 1,
598 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
599 148 khays
#ifndef DISASM_ONLY
600
    {
601
      0xc00000007ffc0000ULL,
602
      0xfffe000000000000ULL,
603
      0x00000000780c0000ULL,
604
      0x3c06000000000000ULL,
605
      0ULL
606
    },
607
    {
608
      0x0000000050100000ULL,
609
      0x2808000000000000ULL,
610
      0x0000000050000000ULL,
611
      0x2c00000000000000ULL,
612
      -1ULL
613
    }
614
#endif
615
  },
616
  { "andi", TILEGX_OPC_ANDI, 0xf, 3, TREG_ZERO, 1,
617 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
618 148 khays
#ifndef DISASM_ONLY
619
    {
620
      0xc00000007ff00000ULL,
621
      0xfff8000000000000ULL,
622
      0x0000000078000000ULL,
623
      0x3c00000000000000ULL,
624
      0ULL
625
    },
626
    {
627
      0x0000000040300000ULL,
628
      0x1818000000000000ULL,
629
      0x0000000010000000ULL,
630
      0x0c00000000000000ULL,
631
      -1ULL
632
    }
633
#endif
634
  },
635
  { "beqz", TILEGX_OPC_BEQZ, 0x2, 2, TREG_ZERO, 1,
636 166 khays
    { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
637 148 khays
#ifndef DISASM_ONLY
638
    {
639
      0ULL,
640
      0xffc0000000000000ULL,
641
      0ULL,
642
      0ULL,
643
      0ULL
644
    },
645
    {
646
      -1ULL,
647
      0x1440000000000000ULL,
648
      -1ULL,
649
      -1ULL,
650
      -1ULL
651
    }
652
#endif
653
  },
654
  { "beqzt", TILEGX_OPC_BEQZT, 0x2, 2, TREG_ZERO, 1,
655 166 khays
    { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
656 148 khays
#ifndef DISASM_ONLY
657
    {
658
      0ULL,
659
      0xffc0000000000000ULL,
660
      0ULL,
661
      0ULL,
662
      0ULL
663
    },
664
    {
665
      -1ULL,
666
      0x1400000000000000ULL,
667
      -1ULL,
668
      -1ULL,
669
      -1ULL
670
    }
671
#endif
672
  },
673
  { "bfexts", TILEGX_OPC_BFEXTS, 0x1, 4, TREG_ZERO, 1,
674 166 khays
    { { 8, 9, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
675 148 khays
#ifndef DISASM_ONLY
676
    {
677
      0xc00000007f000000ULL,
678
      0ULL,
679
      0ULL,
680
      0ULL,
681
      0ULL
682
    },
683
    {
684
      0x0000000034000000ULL,
685
      -1ULL,
686
      -1ULL,
687
      -1ULL,
688
      -1ULL
689
    }
690
#endif
691
  },
692
  { "bfextu", TILEGX_OPC_BFEXTU, 0x1, 4, TREG_ZERO, 1,
693 166 khays
    { { 8, 9, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
694 148 khays
#ifndef DISASM_ONLY
695
    {
696
      0xc00000007f000000ULL,
697
      0ULL,
698
      0ULL,
699
      0ULL,
700
      0ULL
701
    },
702
    {
703
      0x0000000035000000ULL,
704
      -1ULL,
705
      -1ULL,
706
      -1ULL,
707
      -1ULL
708
    }
709
#endif
710
  },
711
  { "bfins", TILEGX_OPC_BFINS, 0x1, 4, TREG_ZERO, 1,
712 166 khays
    { { 23, 9, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
713 148 khays
#ifndef DISASM_ONLY
714
    {
715
      0xc00000007f000000ULL,
716
      0ULL,
717
      0ULL,
718
      0ULL,
719
      0ULL
720
    },
721
    {
722
      0x0000000036000000ULL,
723
      -1ULL,
724
      -1ULL,
725
      -1ULL,
726
      -1ULL
727
    }
728
#endif
729
  },
730
  { "bgez", TILEGX_OPC_BGEZ, 0x2, 2, TREG_ZERO, 1,
731 166 khays
    { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
732 148 khays
#ifndef DISASM_ONLY
733
    {
734
      0ULL,
735
      0xffc0000000000000ULL,
736
      0ULL,
737
      0ULL,
738
      0ULL
739
    },
740
    {
741
      -1ULL,
742
      0x14c0000000000000ULL,
743
      -1ULL,
744
      -1ULL,
745
      -1ULL
746
    }
747
#endif
748
  },
749
  { "bgezt", TILEGX_OPC_BGEZT, 0x2, 2, TREG_ZERO, 1,
750 166 khays
    { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
751 148 khays
#ifndef DISASM_ONLY
752
    {
753
      0ULL,
754
      0xffc0000000000000ULL,
755
      0ULL,
756
      0ULL,
757
      0ULL
758
    },
759
    {
760
      -1ULL,
761
      0x1480000000000000ULL,
762
      -1ULL,
763
      -1ULL,
764
      -1ULL
765
    }
766
#endif
767
  },
768
  { "bgtz", TILEGX_OPC_BGTZ, 0x2, 2, TREG_ZERO, 1,
769 166 khays
    { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
770 148 khays
#ifndef DISASM_ONLY
771
    {
772
      0ULL,
773
      0xffc0000000000000ULL,
774
      0ULL,
775
      0ULL,
776
      0ULL
777
    },
778
    {
779
      -1ULL,
780
      0x1540000000000000ULL,
781
      -1ULL,
782
      -1ULL,
783
      -1ULL
784
    }
785
#endif
786
  },
787
  { "bgtzt", TILEGX_OPC_BGTZT, 0x2, 2, TREG_ZERO, 1,
788 166 khays
    { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
789 148 khays
#ifndef DISASM_ONLY
790
    {
791
      0ULL,
792
      0xffc0000000000000ULL,
793
      0ULL,
794
      0ULL,
795
      0ULL
796
    },
797
    {
798
      -1ULL,
799
      0x1500000000000000ULL,
800
      -1ULL,
801
      -1ULL,
802
      -1ULL
803
    }
804
#endif
805
  },
806
  { "blbc", TILEGX_OPC_BLBC, 0x2, 2, TREG_ZERO, 1,
807 166 khays
    { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
808 148 khays
#ifndef DISASM_ONLY
809
    {
810
      0ULL,
811
      0xffc0000000000000ULL,
812
      0ULL,
813
      0ULL,
814
      0ULL
815
    },
816
    {
817
      -1ULL,
818
      0x15c0000000000000ULL,
819
      -1ULL,
820
      -1ULL,
821
      -1ULL
822
    }
823
#endif
824
  },
825
  { "blbct", TILEGX_OPC_BLBCT, 0x2, 2, TREG_ZERO, 1,
826 166 khays
    { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
827 148 khays
#ifndef DISASM_ONLY
828
    {
829
      0ULL,
830
      0xffc0000000000000ULL,
831
      0ULL,
832
      0ULL,
833
      0ULL
834
    },
835
    {
836
      -1ULL,
837
      0x1580000000000000ULL,
838
      -1ULL,
839
      -1ULL,
840
      -1ULL
841
    }
842
#endif
843
  },
844
  { "blbs", TILEGX_OPC_BLBS, 0x2, 2, TREG_ZERO, 1,
845 166 khays
    { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
846 148 khays
#ifndef DISASM_ONLY
847
    {
848
      0ULL,
849
      0xffc0000000000000ULL,
850
      0ULL,
851
      0ULL,
852
      0ULL
853
    },
854
    {
855
      -1ULL,
856
      0x1640000000000000ULL,
857
      -1ULL,
858
      -1ULL,
859
      -1ULL
860
    }
861
#endif
862
  },
863
  { "blbst", TILEGX_OPC_BLBST, 0x2, 2, TREG_ZERO, 1,
864 166 khays
    { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
865 148 khays
#ifndef DISASM_ONLY
866
    {
867
      0ULL,
868
      0xffc0000000000000ULL,
869
      0ULL,
870
      0ULL,
871
      0ULL
872
    },
873
    {
874
      -1ULL,
875
      0x1600000000000000ULL,
876
      -1ULL,
877
      -1ULL,
878
      -1ULL
879
    }
880
#endif
881
  },
882
  { "blez", TILEGX_OPC_BLEZ, 0x2, 2, TREG_ZERO, 1,
883 166 khays
    { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
884 148 khays
#ifndef DISASM_ONLY
885
    {
886
      0ULL,
887
      0xffc0000000000000ULL,
888
      0ULL,
889
      0ULL,
890
      0ULL
891
    },
892
    {
893
      -1ULL,
894
      0x16c0000000000000ULL,
895
      -1ULL,
896
      -1ULL,
897
      -1ULL
898
    }
899
#endif
900
  },
901
  { "blezt", TILEGX_OPC_BLEZT, 0x2, 2, TREG_ZERO, 1,
902 166 khays
    { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
903 148 khays
#ifndef DISASM_ONLY
904
    {
905
      0ULL,
906
      0xffc0000000000000ULL,
907
      0ULL,
908
      0ULL,
909
      0ULL
910
    },
911
    {
912
      -1ULL,
913
      0x1680000000000000ULL,
914
      -1ULL,
915
      -1ULL,
916
      -1ULL
917
    }
918
#endif
919
  },
920
  { "bltz", TILEGX_OPC_BLTZ, 0x2, 2, TREG_ZERO, 1,
921 166 khays
    { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
922 148 khays
#ifndef DISASM_ONLY
923
    {
924
      0ULL,
925
      0xffc0000000000000ULL,
926
      0ULL,
927
      0ULL,
928
      0ULL
929
    },
930
    {
931
      -1ULL,
932
      0x1740000000000000ULL,
933
      -1ULL,
934
      -1ULL,
935
      -1ULL
936
    }
937
#endif
938
  },
939
  { "bltzt", TILEGX_OPC_BLTZT, 0x2, 2, TREG_ZERO, 1,
940 166 khays
    { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
941 148 khays
#ifndef DISASM_ONLY
942
    {
943
      0ULL,
944
      0xffc0000000000000ULL,
945
      0ULL,
946
      0ULL,
947
      0ULL
948
    },
949
    {
950
      -1ULL,
951
      0x1700000000000000ULL,
952
      -1ULL,
953
      -1ULL,
954
      -1ULL
955
    }
956
#endif
957
  },
958
  { "bnez", TILEGX_OPC_BNEZ, 0x2, 2, TREG_ZERO, 1,
959 166 khays
    { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
960 148 khays
#ifndef DISASM_ONLY
961
    {
962
      0ULL,
963
      0xffc0000000000000ULL,
964
      0ULL,
965
      0ULL,
966
      0ULL
967
    },
968
    {
969
      -1ULL,
970
      0x17c0000000000000ULL,
971
      -1ULL,
972
      -1ULL,
973
      -1ULL
974
    }
975
#endif
976
  },
977
  { "bnezt", TILEGX_OPC_BNEZT, 0x2, 2, TREG_ZERO, 1,
978 166 khays
    { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
979 148 khays
#ifndef DISASM_ONLY
980
    {
981
      0ULL,
982
      0xffc0000000000000ULL,
983
      0ULL,
984
      0ULL,
985
      0ULL
986
    },
987
    {
988
      -1ULL,
989
      0x1780000000000000ULL,
990
      -1ULL,
991
      -1ULL,
992
      -1ULL
993
    }
994
#endif
995
  },
996
  { "clz", TILEGX_OPC_CLZ, 0x5, 2, TREG_ZERO, 1,
997 166 khays
    { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
998 148 khays
#ifndef DISASM_ONLY
999
    {
1000
      0xc00000007ffff000ULL,
1001
      0ULL,
1002
      0x00000000780ff000ULL,
1003
      0ULL,
1004
      0ULL
1005
    },
1006
    {
1007
      0x0000000051481000ULL,
1008
      -1ULL,
1009
      0x00000000300c1000ULL,
1010
      -1ULL,
1011
      -1ULL
1012
    }
1013
#endif
1014
  },
1015
  { "cmoveqz", TILEGX_OPC_CMOVEQZ, 0x5, 3, TREG_ZERO, 1,
1016 166 khays
    { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
1017 148 khays
#ifndef DISASM_ONLY
1018
    {
1019
      0xc00000007ffc0000ULL,
1020
      0ULL,
1021
      0x00000000780c0000ULL,
1022
      0ULL,
1023
      0ULL
1024
    },
1025
    {
1026
      0x0000000050140000ULL,
1027
      -1ULL,
1028
      0x0000000048000000ULL,
1029
      -1ULL,
1030
      -1ULL
1031
    }
1032
#endif
1033
  },
1034
  { "cmovnez", TILEGX_OPC_CMOVNEZ, 0x5, 3, TREG_ZERO, 1,
1035 166 khays
    { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
1036 148 khays
#ifndef DISASM_ONLY
1037
    {
1038
      0xc00000007ffc0000ULL,
1039
      0ULL,
1040
      0x00000000780c0000ULL,
1041
      0ULL,
1042
      0ULL
1043
    },
1044
    {
1045
      0x0000000050180000ULL,
1046
      -1ULL,
1047
      0x0000000048040000ULL,
1048
      -1ULL,
1049
      -1ULL
1050
    }
1051
#endif
1052
  },
1053
  { "cmpeq", TILEGX_OPC_CMPEQ, 0xf, 3, TREG_ZERO, 1,
1054 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
1055 148 khays
#ifndef DISASM_ONLY
1056
    {
1057
      0xc00000007ffc0000ULL,
1058
      0xfffe000000000000ULL,
1059
      0x00000000780c0000ULL,
1060
      0x3c06000000000000ULL,
1061
      0ULL
1062
    },
1063
    {
1064
      0x00000000501c0000ULL,
1065
      0x280a000000000000ULL,
1066
      0x0000000040000000ULL,
1067
      0x2404000000000000ULL,
1068
      -1ULL
1069
    }
1070
#endif
1071
  },
1072
  { "cmpeqi", TILEGX_OPC_CMPEQI, 0xf, 3, TREG_ZERO, 1,
1073 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
1074 148 khays
#ifndef DISASM_ONLY
1075
    {
1076
      0xc00000007ff00000ULL,
1077
      0xfff8000000000000ULL,
1078
      0x0000000078000000ULL,
1079
      0x3c00000000000000ULL,
1080
      0ULL
1081
    },
1082
    {
1083
      0x0000000040400000ULL,
1084
      0x1820000000000000ULL,
1085
      0x0000000018000000ULL,
1086
      0x1000000000000000ULL,
1087
      -1ULL
1088
    }
1089
#endif
1090
  },
1091
  { "cmpexch", TILEGX_OPC_CMPEXCH, 0x2, 3, TREG_ZERO, 1,
1092 166 khays
    { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1093 148 khays
#ifndef DISASM_ONLY
1094
    {
1095
      0ULL,
1096
      0xfffe000000000000ULL,
1097
      0ULL,
1098
      0ULL,
1099
      0ULL
1100
    },
1101
    {
1102
      -1ULL,
1103
      0x280e000000000000ULL,
1104
      -1ULL,
1105
      -1ULL,
1106
      -1ULL
1107
    }
1108
#endif
1109
  },
1110
  { "cmpexch4", TILEGX_OPC_CMPEXCH4, 0x2, 3, TREG_ZERO, 1,
1111 166 khays
    { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1112 148 khays
#ifndef DISASM_ONLY
1113
    {
1114
      0ULL,
1115
      0xfffe000000000000ULL,
1116
      0ULL,
1117
      0ULL,
1118
      0ULL
1119
    },
1120
    {
1121
      -1ULL,
1122
      0x280c000000000000ULL,
1123
      -1ULL,
1124
      -1ULL,
1125
      -1ULL
1126
    }
1127
#endif
1128
  },
1129
  { "cmples", TILEGX_OPC_CMPLES, 0xf, 3, TREG_ZERO, 1,
1130 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
1131 148 khays
#ifndef DISASM_ONLY
1132
    {
1133
      0xc00000007ffc0000ULL,
1134
      0xfffe000000000000ULL,
1135
      0x00000000780c0000ULL,
1136
      0x3c06000000000000ULL,
1137
      0ULL
1138
    },
1139
    {
1140
      0x0000000050200000ULL,
1141
      0x2810000000000000ULL,
1142
      0x0000000038000000ULL,
1143
      0x2000000000000000ULL,
1144
      -1ULL
1145
    }
1146
#endif
1147
  },
1148
  { "cmpleu", TILEGX_OPC_CMPLEU, 0xf, 3, TREG_ZERO, 1,
1149 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
1150 148 khays
#ifndef DISASM_ONLY
1151
    {
1152
      0xc00000007ffc0000ULL,
1153
      0xfffe000000000000ULL,
1154
      0x00000000780c0000ULL,
1155
      0x3c06000000000000ULL,
1156
      0ULL
1157
    },
1158
    {
1159
      0x0000000050240000ULL,
1160
      0x2812000000000000ULL,
1161
      0x0000000038040000ULL,
1162
      0x2002000000000000ULL,
1163
      -1ULL
1164
    }
1165
#endif
1166
  },
1167
  { "cmplts", TILEGX_OPC_CMPLTS, 0xf, 3, TREG_ZERO, 1,
1168 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
1169 148 khays
#ifndef DISASM_ONLY
1170
    {
1171
      0xc00000007ffc0000ULL,
1172
      0xfffe000000000000ULL,
1173
      0x00000000780c0000ULL,
1174
      0x3c06000000000000ULL,
1175
      0ULL
1176
    },
1177
    {
1178
      0x0000000050280000ULL,
1179
      0x2814000000000000ULL,
1180
      0x0000000038080000ULL,
1181
      0x2004000000000000ULL,
1182
      -1ULL
1183
    }
1184
#endif
1185
  },
1186
  { "cmpltsi", TILEGX_OPC_CMPLTSI, 0xf, 3, TREG_ZERO, 1,
1187 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
1188 148 khays
#ifndef DISASM_ONLY
1189
    {
1190
      0xc00000007ff00000ULL,
1191
      0xfff8000000000000ULL,
1192
      0x0000000078000000ULL,
1193
      0x3c00000000000000ULL,
1194
      0ULL
1195
    },
1196
    {
1197
      0x0000000040500000ULL,
1198
      0x1828000000000000ULL,
1199
      0x0000000020000000ULL,
1200
      0x1400000000000000ULL,
1201
      -1ULL
1202
    }
1203
#endif
1204
  },
1205
  { "cmpltu", TILEGX_OPC_CMPLTU, 0xf, 3, TREG_ZERO, 1,
1206 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
1207 148 khays
#ifndef DISASM_ONLY
1208
    {
1209
      0xc00000007ffc0000ULL,
1210
      0xfffe000000000000ULL,
1211
      0x00000000780c0000ULL,
1212
      0x3c06000000000000ULL,
1213
      0ULL
1214
    },
1215
    {
1216
      0x00000000502c0000ULL,
1217
      0x2816000000000000ULL,
1218
      0x00000000380c0000ULL,
1219
      0x2006000000000000ULL,
1220
      -1ULL
1221
    }
1222
#endif
1223
  },
1224
  { "cmpltui", TILEGX_OPC_CMPLTUI, 0x3, 3, TREG_ZERO, 1,
1225 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
1226 148 khays
#ifndef DISASM_ONLY
1227
    {
1228
      0xc00000007ff00000ULL,
1229
      0xfff8000000000000ULL,
1230
      0ULL,
1231
      0ULL,
1232
      0ULL
1233
    },
1234
    {
1235
      0x0000000040600000ULL,
1236
      0x1830000000000000ULL,
1237
      -1ULL,
1238
      -1ULL,
1239
      -1ULL
1240
    }
1241
#endif
1242
  },
1243
  { "cmpne", TILEGX_OPC_CMPNE, 0xf, 3, TREG_ZERO, 1,
1244 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
1245 148 khays
#ifndef DISASM_ONLY
1246
    {
1247
      0xc00000007ffc0000ULL,
1248
      0xfffe000000000000ULL,
1249
      0x00000000780c0000ULL,
1250
      0x3c06000000000000ULL,
1251
      0ULL
1252
    },
1253
    {
1254
      0x0000000050300000ULL,
1255
      0x2818000000000000ULL,
1256
      0x0000000040040000ULL,
1257
      0x2406000000000000ULL,
1258
      -1ULL
1259
    }
1260
#endif
1261
  },
1262
  { "cmul", TILEGX_OPC_CMUL, 0x1, 3, TREG_ZERO, 1,
1263 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1264 148 khays
#ifndef DISASM_ONLY
1265
    {
1266
      0xc00000007ffc0000ULL,
1267
      0ULL,
1268
      0ULL,
1269
      0ULL,
1270
      0ULL
1271
    },
1272
    {
1273
      0x00000000504c0000ULL,
1274
      -1ULL,
1275
      -1ULL,
1276
      -1ULL,
1277
      -1ULL
1278
    }
1279
#endif
1280
  },
1281
  { "cmula", TILEGX_OPC_CMULA, 0x1, 3, TREG_ZERO, 1,
1282 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1283 148 khays
#ifndef DISASM_ONLY
1284
    {
1285
      0xc00000007ffc0000ULL,
1286
      0ULL,
1287
      0ULL,
1288
      0ULL,
1289
      0ULL
1290
    },
1291
    {
1292
      0x0000000050380000ULL,
1293
      -1ULL,
1294
      -1ULL,
1295
      -1ULL,
1296
      -1ULL
1297
    }
1298
#endif
1299
  },
1300
  { "cmulaf", TILEGX_OPC_CMULAF, 0x1, 3, TREG_ZERO, 1,
1301 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1302 148 khays
#ifndef DISASM_ONLY
1303
    {
1304
      0xc00000007ffc0000ULL,
1305
      0ULL,
1306
      0ULL,
1307
      0ULL,
1308
      0ULL
1309
    },
1310
    {
1311
      0x0000000050340000ULL,
1312
      -1ULL,
1313
      -1ULL,
1314
      -1ULL,
1315
      -1ULL
1316
    }
1317
#endif
1318
  },
1319
  { "cmulf", TILEGX_OPC_CMULF, 0x1, 3, TREG_ZERO, 1,
1320 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1321 148 khays
#ifndef DISASM_ONLY
1322
    {
1323
      0xc00000007ffc0000ULL,
1324
      0ULL,
1325
      0ULL,
1326
      0ULL,
1327
      0ULL
1328
    },
1329
    {
1330
      0x0000000050400000ULL,
1331
      -1ULL,
1332
      -1ULL,
1333
      -1ULL,
1334
      -1ULL
1335
    }
1336
#endif
1337
  },
1338
  { "cmulfr", TILEGX_OPC_CMULFR, 0x1, 3, TREG_ZERO, 1,
1339 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1340 148 khays
#ifndef DISASM_ONLY
1341
    {
1342
      0xc00000007ffc0000ULL,
1343
      0ULL,
1344
      0ULL,
1345
      0ULL,
1346
      0ULL
1347
    },
1348
    {
1349
      0x00000000503c0000ULL,
1350
      -1ULL,
1351
      -1ULL,
1352
      -1ULL,
1353
      -1ULL
1354
    }
1355
#endif
1356
  },
1357
  { "cmulh", TILEGX_OPC_CMULH, 0x1, 3, TREG_ZERO, 1,
1358 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1359 148 khays
#ifndef DISASM_ONLY
1360
    {
1361
      0xc00000007ffc0000ULL,
1362
      0ULL,
1363
      0ULL,
1364
      0ULL,
1365
      0ULL
1366
    },
1367
    {
1368
      0x0000000050480000ULL,
1369
      -1ULL,
1370
      -1ULL,
1371
      -1ULL,
1372
      -1ULL
1373
    }
1374
#endif
1375
  },
1376
  { "cmulhr", TILEGX_OPC_CMULHR, 0x1, 3, TREG_ZERO, 1,
1377 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1378 148 khays
#ifndef DISASM_ONLY
1379
    {
1380
      0xc00000007ffc0000ULL,
1381
      0ULL,
1382
      0ULL,
1383
      0ULL,
1384
      0ULL
1385
    },
1386
    {
1387
      0x0000000050440000ULL,
1388
      -1ULL,
1389
      -1ULL,
1390
      -1ULL,
1391
      -1ULL
1392
    }
1393
#endif
1394
  },
1395
  { "crc32_32", TILEGX_OPC_CRC32_32, 0x1, 3, TREG_ZERO, 1,
1396 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1397 148 khays
#ifndef DISASM_ONLY
1398
    {
1399
      0xc00000007ffc0000ULL,
1400
      0ULL,
1401
      0ULL,
1402
      0ULL,
1403
      0ULL
1404
    },
1405
    {
1406
      0x0000000050500000ULL,
1407
      -1ULL,
1408
      -1ULL,
1409
      -1ULL,
1410
      -1ULL
1411
    }
1412
#endif
1413
  },
1414
  { "crc32_8", TILEGX_OPC_CRC32_8, 0x1, 3, TREG_ZERO, 1,
1415 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1416 148 khays
#ifndef DISASM_ONLY
1417
    {
1418
      0xc00000007ffc0000ULL,
1419
      0ULL,
1420
      0ULL,
1421
      0ULL,
1422
      0ULL
1423
    },
1424
    {
1425
      0x0000000050540000ULL,
1426
      -1ULL,
1427
      -1ULL,
1428
      -1ULL,
1429
      -1ULL
1430
    }
1431
#endif
1432
  },
1433
  { "ctz", TILEGX_OPC_CTZ, 0x5, 2, TREG_ZERO, 1,
1434 166 khays
    { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
1435 148 khays
#ifndef DISASM_ONLY
1436
    {
1437
      0xc00000007ffff000ULL,
1438
      0ULL,
1439
      0x00000000780ff000ULL,
1440
      0ULL,
1441
      0ULL
1442
    },
1443
    {
1444
      0x0000000051482000ULL,
1445
      -1ULL,
1446
      0x00000000300c2000ULL,
1447
      -1ULL,
1448
      -1ULL
1449
    }
1450
#endif
1451
  },
1452
  { "dblalign", TILEGX_OPC_DBLALIGN, 0x1, 3, TREG_ZERO, 1,
1453 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1454 148 khays
#ifndef DISASM_ONLY
1455
    {
1456
      0xc00000007ffc0000ULL,
1457
      0ULL,
1458
      0ULL,
1459
      0ULL,
1460
      0ULL
1461
    },
1462
    {
1463
      0x0000000050640000ULL,
1464
      -1ULL,
1465
      -1ULL,
1466
      -1ULL,
1467
      -1ULL
1468
    }
1469
#endif
1470
  },
1471
  { "dblalign2", TILEGX_OPC_DBLALIGN2, 0x3, 3, TREG_ZERO, 1,
1472 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1473 148 khays
#ifndef DISASM_ONLY
1474
    {
1475
      0xc00000007ffc0000ULL,
1476
      0xfffe000000000000ULL,
1477
      0ULL,
1478
      0ULL,
1479
      0ULL
1480
    },
1481
    {
1482
      0x0000000050580000ULL,
1483
      0x281a000000000000ULL,
1484
      -1ULL,
1485
      -1ULL,
1486
      -1ULL
1487
    }
1488
#endif
1489
  },
1490
  { "dblalign4", TILEGX_OPC_DBLALIGN4, 0x3, 3, TREG_ZERO, 1,
1491 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1492 148 khays
#ifndef DISASM_ONLY
1493
    {
1494
      0xc00000007ffc0000ULL,
1495
      0xfffe000000000000ULL,
1496
      0ULL,
1497
      0ULL,
1498
      0ULL
1499
    },
1500
    {
1501
      0x00000000505c0000ULL,
1502
      0x281c000000000000ULL,
1503
      -1ULL,
1504
      -1ULL,
1505
      -1ULL
1506
    }
1507
#endif
1508
  },
1509
  { "dblalign6", TILEGX_OPC_DBLALIGN6, 0x3, 3, TREG_ZERO, 1,
1510 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1511 148 khays
#ifndef DISASM_ONLY
1512
    {
1513
      0xc00000007ffc0000ULL,
1514
      0xfffe000000000000ULL,
1515
      0ULL,
1516
      0ULL,
1517
      0ULL
1518
    },
1519
    {
1520
      0x0000000050600000ULL,
1521
      0x281e000000000000ULL,
1522
      -1ULL,
1523
      -1ULL,
1524
      -1ULL
1525
    }
1526
#endif
1527
  },
1528
  { "drain", TILEGX_OPC_DRAIN, 0x2, 0, TREG_ZERO, 0,
1529
    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
1530
#ifndef DISASM_ONLY
1531
    {
1532
      0ULL,
1533
      0xfffff80000000000ULL,
1534
      0ULL,
1535
      0ULL,
1536
      0ULL
1537
    },
1538
    {
1539
      -1ULL,
1540
      0x286a080000000000ULL,
1541
      -1ULL,
1542
      -1ULL,
1543
      -1ULL
1544
    }
1545
#endif
1546
  },
1547
  { "dtlbpr", TILEGX_OPC_DTLBPR, 0x2, 1, TREG_ZERO, 1,
1548 166 khays
    { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
1549 148 khays
#ifndef DISASM_ONLY
1550
    {
1551
      0ULL,
1552
      0xfffff80000000000ULL,
1553
      0ULL,
1554
      0ULL,
1555
      0ULL
1556
    },
1557
    {
1558
      -1ULL,
1559
      0x286a100000000000ULL,
1560
      -1ULL,
1561
      -1ULL,
1562
      -1ULL
1563
    }
1564
#endif
1565
  },
1566
  { "exch", TILEGX_OPC_EXCH, 0x2, 3, TREG_ZERO, 1,
1567 166 khays
    { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1568 148 khays
#ifndef DISASM_ONLY
1569
    {
1570
      0ULL,
1571
      0xfffe000000000000ULL,
1572
      0ULL,
1573
      0ULL,
1574
      0ULL
1575
    },
1576
    {
1577
      -1ULL,
1578
      0x2822000000000000ULL,
1579
      -1ULL,
1580
      -1ULL,
1581
      -1ULL
1582
    }
1583
#endif
1584
  },
1585
  { "exch4", TILEGX_OPC_EXCH4, 0x2, 3, TREG_ZERO, 1,
1586 166 khays
    { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1587 148 khays
#ifndef DISASM_ONLY
1588
    {
1589
      0ULL,
1590
      0xfffe000000000000ULL,
1591
      0ULL,
1592
      0ULL,
1593
      0ULL
1594
    },
1595
    {
1596
      -1ULL,
1597
      0x2820000000000000ULL,
1598
      -1ULL,
1599
      -1ULL,
1600
      -1ULL
1601
    }
1602
#endif
1603
  },
1604
  { "fdouble_add_flags", TILEGX_OPC_FDOUBLE_ADD_FLAGS, 0x1, 3, TREG_ZERO, 1,
1605 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1606 148 khays
#ifndef DISASM_ONLY
1607
    {
1608
      0xc00000007ffc0000ULL,
1609
      0ULL,
1610
      0ULL,
1611
      0ULL,
1612
      0ULL
1613
    },
1614
    {
1615
      0x00000000506c0000ULL,
1616
      -1ULL,
1617
      -1ULL,
1618
      -1ULL,
1619
      -1ULL
1620
    }
1621
#endif
1622
  },
1623
  { "fdouble_addsub", TILEGX_OPC_FDOUBLE_ADDSUB, 0x1, 3, TREG_ZERO, 1,
1624 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1625 148 khays
#ifndef DISASM_ONLY
1626
    {
1627
      0xc00000007ffc0000ULL,
1628
      0ULL,
1629
      0ULL,
1630
      0ULL,
1631
      0ULL
1632
    },
1633
    {
1634
      0x0000000050680000ULL,
1635
      -1ULL,
1636
      -1ULL,
1637
      -1ULL,
1638
      -1ULL
1639
    }
1640
#endif
1641
  },
1642
  { "fdouble_mul_flags", TILEGX_OPC_FDOUBLE_MUL_FLAGS, 0x1, 3, TREG_ZERO, 1,
1643 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1644 148 khays
#ifndef DISASM_ONLY
1645
    {
1646
      0xc00000007ffc0000ULL,
1647
      0ULL,
1648
      0ULL,
1649
      0ULL,
1650
      0ULL
1651
    },
1652
    {
1653
      0x0000000050700000ULL,
1654
      -1ULL,
1655
      -1ULL,
1656
      -1ULL,
1657
      -1ULL
1658
    }
1659
#endif
1660
  },
1661
  { "fdouble_pack1", TILEGX_OPC_FDOUBLE_PACK1, 0x1, 3, TREG_ZERO, 1,
1662 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1663 148 khays
#ifndef DISASM_ONLY
1664
    {
1665
      0xc00000007ffc0000ULL,
1666
      0ULL,
1667
      0ULL,
1668
      0ULL,
1669
      0ULL
1670
    },
1671
    {
1672
      0x0000000050740000ULL,
1673
      -1ULL,
1674
      -1ULL,
1675
      -1ULL,
1676
      -1ULL
1677
    }
1678
#endif
1679
  },
1680
  { "fdouble_pack2", TILEGX_OPC_FDOUBLE_PACK2, 0x1, 3, TREG_ZERO, 1,
1681 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1682 148 khays
#ifndef DISASM_ONLY
1683
    {
1684
      0xc00000007ffc0000ULL,
1685
      0ULL,
1686
      0ULL,
1687
      0ULL,
1688
      0ULL
1689
    },
1690
    {
1691
      0x0000000050780000ULL,
1692
      -1ULL,
1693
      -1ULL,
1694
      -1ULL,
1695
      -1ULL
1696
    }
1697
#endif
1698
  },
1699
  { "fdouble_sub_flags", TILEGX_OPC_FDOUBLE_SUB_FLAGS, 0x1, 3, TREG_ZERO, 1,
1700 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1701 148 khays
#ifndef DISASM_ONLY
1702
    {
1703
      0xc00000007ffc0000ULL,
1704
      0ULL,
1705
      0ULL,
1706
      0ULL,
1707
      0ULL
1708
    },
1709
    {
1710
      0x00000000507c0000ULL,
1711
      -1ULL,
1712
      -1ULL,
1713
      -1ULL,
1714
      -1ULL
1715
    }
1716
#endif
1717
  },
1718
  { "fdouble_unpack_max", TILEGX_OPC_FDOUBLE_UNPACK_MAX, 0x1, 3, TREG_ZERO, 1,
1719 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1720 148 khays
#ifndef DISASM_ONLY
1721
    {
1722
      0xc00000007ffc0000ULL,
1723
      0ULL,
1724
      0ULL,
1725
      0ULL,
1726
      0ULL
1727
    },
1728
    {
1729
      0x0000000050800000ULL,
1730
      -1ULL,
1731
      -1ULL,
1732
      -1ULL,
1733
      -1ULL
1734
    }
1735
#endif
1736
  },
1737
  { "fdouble_unpack_min", TILEGX_OPC_FDOUBLE_UNPACK_MIN, 0x1, 3, TREG_ZERO, 1,
1738 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1739 148 khays
#ifndef DISASM_ONLY
1740
    {
1741
      0xc00000007ffc0000ULL,
1742
      0ULL,
1743
      0ULL,
1744
      0ULL,
1745
      0ULL
1746
    },
1747
    {
1748
      0x0000000050840000ULL,
1749
      -1ULL,
1750
      -1ULL,
1751
      -1ULL,
1752
      -1ULL
1753
    }
1754
#endif
1755
  },
1756
  { "fetchadd", TILEGX_OPC_FETCHADD, 0x2, 3, TREG_ZERO, 1,
1757 166 khays
    { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1758 148 khays
#ifndef DISASM_ONLY
1759
    {
1760
      0ULL,
1761
      0xfffe000000000000ULL,
1762
      0ULL,
1763
      0ULL,
1764
      0ULL
1765
    },
1766
    {
1767
      -1ULL,
1768
      0x282a000000000000ULL,
1769
      -1ULL,
1770
      -1ULL,
1771
      -1ULL
1772
    }
1773
#endif
1774
  },
1775
  { "fetchadd4", TILEGX_OPC_FETCHADD4, 0x2, 3, TREG_ZERO, 1,
1776 166 khays
    { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1777 148 khays
#ifndef DISASM_ONLY
1778
    {
1779
      0ULL,
1780
      0xfffe000000000000ULL,
1781
      0ULL,
1782
      0ULL,
1783
      0ULL
1784
    },
1785
    {
1786
      -1ULL,
1787
      0x2824000000000000ULL,
1788
      -1ULL,
1789
      -1ULL,
1790
      -1ULL
1791
    }
1792
#endif
1793
  },
1794
  { "fetchaddgez", TILEGX_OPC_FETCHADDGEZ, 0x2, 3, TREG_ZERO, 1,
1795 166 khays
    { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1796 148 khays
#ifndef DISASM_ONLY
1797
    {
1798
      0ULL,
1799
      0xfffe000000000000ULL,
1800
      0ULL,
1801
      0ULL,
1802
      0ULL
1803
    },
1804
    {
1805
      -1ULL,
1806
      0x2828000000000000ULL,
1807
      -1ULL,
1808
      -1ULL,
1809
      -1ULL
1810
    }
1811
#endif
1812
  },
1813
  { "fetchaddgez4", TILEGX_OPC_FETCHADDGEZ4, 0x2, 3, TREG_ZERO, 1,
1814 166 khays
    { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1815 148 khays
#ifndef DISASM_ONLY
1816
    {
1817
      0ULL,
1818
      0xfffe000000000000ULL,
1819
      0ULL,
1820
      0ULL,
1821
      0ULL
1822
    },
1823
    {
1824
      -1ULL,
1825
      0x2826000000000000ULL,
1826
      -1ULL,
1827
      -1ULL,
1828
      -1ULL
1829
    }
1830
#endif
1831
  },
1832
  { "fetchand", TILEGX_OPC_FETCHAND, 0x2, 3, TREG_ZERO, 1,
1833 166 khays
    { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1834 148 khays
#ifndef DISASM_ONLY
1835
    {
1836
      0ULL,
1837
      0xfffe000000000000ULL,
1838
      0ULL,
1839
      0ULL,
1840
      0ULL
1841
    },
1842
    {
1843
      -1ULL,
1844
      0x282e000000000000ULL,
1845
      -1ULL,
1846
      -1ULL,
1847
      -1ULL
1848
    }
1849
#endif
1850
  },
1851
  { "fetchand4", TILEGX_OPC_FETCHAND4, 0x2, 3, TREG_ZERO, 1,
1852 166 khays
    { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1853 148 khays
#ifndef DISASM_ONLY
1854
    {
1855
      0ULL,
1856
      0xfffe000000000000ULL,
1857
      0ULL,
1858
      0ULL,
1859
      0ULL
1860
    },
1861
    {
1862
      -1ULL,
1863
      0x282c000000000000ULL,
1864
      -1ULL,
1865
      -1ULL,
1866
      -1ULL
1867
    }
1868
#endif
1869
  },
1870
  { "fetchor", TILEGX_OPC_FETCHOR, 0x2, 3, TREG_ZERO, 1,
1871 166 khays
    { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1872 148 khays
#ifndef DISASM_ONLY
1873
    {
1874
      0ULL,
1875
      0xfffe000000000000ULL,
1876
      0ULL,
1877
      0ULL,
1878
      0ULL
1879
    },
1880
    {
1881
      -1ULL,
1882
      0x2832000000000000ULL,
1883
      -1ULL,
1884
      -1ULL,
1885
      -1ULL
1886
    }
1887
#endif
1888
  },
1889
  { "fetchor4", TILEGX_OPC_FETCHOR4, 0x2, 3, TREG_ZERO, 1,
1890 166 khays
    { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1891 148 khays
#ifndef DISASM_ONLY
1892
    {
1893
      0ULL,
1894
      0xfffe000000000000ULL,
1895
      0ULL,
1896
      0ULL,
1897
      0ULL
1898
    },
1899
    {
1900
      -1ULL,
1901
      0x2830000000000000ULL,
1902
      -1ULL,
1903
      -1ULL,
1904
      -1ULL
1905
    }
1906
#endif
1907
  },
1908
  { "finv", TILEGX_OPC_FINV, 0x2, 1, TREG_ZERO, 1,
1909 166 khays
    { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
1910 148 khays
#ifndef DISASM_ONLY
1911
    {
1912
      0ULL,
1913
      0xfffff80000000000ULL,
1914
      0ULL,
1915
      0ULL,
1916
      0ULL
1917
    },
1918
    {
1919
      -1ULL,
1920
      0x286a180000000000ULL,
1921
      -1ULL,
1922
      -1ULL,
1923
      -1ULL
1924
    }
1925
#endif
1926
  },
1927
  { "flush", TILEGX_OPC_FLUSH, 0x2, 1, TREG_ZERO, 1,
1928 166 khays
    { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
1929 148 khays
#ifndef DISASM_ONLY
1930
    {
1931
      0ULL,
1932
      0xfffff80000000000ULL,
1933
      0ULL,
1934
      0ULL,
1935
      0ULL
1936
    },
1937
    {
1938
      -1ULL,
1939
      0x286a280000000000ULL,
1940
      -1ULL,
1941
      -1ULL,
1942
      -1ULL
1943
    }
1944
#endif
1945
  },
1946
  { "flushwb", TILEGX_OPC_FLUSHWB, 0x2, 0, TREG_ZERO, 1,
1947
    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
1948
#ifndef DISASM_ONLY
1949
    {
1950
      0ULL,
1951
      0xfffff80000000000ULL,
1952
      0ULL,
1953
      0ULL,
1954
      0ULL
1955
    },
1956
    {
1957
      -1ULL,
1958
      0x286a200000000000ULL,
1959
      -1ULL,
1960
      -1ULL,
1961
      -1ULL
1962
    }
1963
#endif
1964
  },
1965
  { "fnop", TILEGX_OPC_FNOP, 0xf, 0, TREG_ZERO, 1,
1966
    { {  }, {  }, {  }, {  }, { 0, } },
1967
#ifndef DISASM_ONLY
1968
    {
1969
      0xc00000007ffff000ULL,
1970
      0xfffff80000000000ULL,
1971
      0x00000000780ff000ULL,
1972
      0x3c07f80000000000ULL,
1973
      0ULL
1974
    },
1975
    {
1976
      0x0000000051483000ULL,
1977
      0x286a300000000000ULL,
1978
      0x00000000300c3000ULL,
1979
      0x1c06400000000000ULL,
1980
      -1ULL
1981
    }
1982
#endif
1983
  },
1984
  { "fsingle_add1", TILEGX_OPC_FSINGLE_ADD1, 0x1, 3, TREG_ZERO, 1,
1985 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1986 148 khays
#ifndef DISASM_ONLY
1987
    {
1988
      0xc00000007ffc0000ULL,
1989
      0ULL,
1990
      0ULL,
1991
      0ULL,
1992
      0ULL
1993
    },
1994
    {
1995
      0x0000000050880000ULL,
1996
      -1ULL,
1997
      -1ULL,
1998
      -1ULL,
1999
      -1ULL
2000
    }
2001
#endif
2002
  },
2003
  { "fsingle_addsub2", TILEGX_OPC_FSINGLE_ADDSUB2, 0x1, 3, TREG_ZERO, 1,
2004 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
2005 148 khays
#ifndef DISASM_ONLY
2006
    {
2007
      0xc00000007ffc0000ULL,
2008
      0ULL,
2009
      0ULL,
2010
      0ULL,
2011
      0ULL
2012
    },
2013
    {
2014
      0x00000000508c0000ULL,
2015
      -1ULL,
2016
      -1ULL,
2017
      -1ULL,
2018
      -1ULL
2019
    }
2020
#endif
2021
  },
2022
  { "fsingle_mul1", TILEGX_OPC_FSINGLE_MUL1, 0x1, 3, TREG_ZERO, 1,
2023 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
2024 148 khays
#ifndef DISASM_ONLY
2025
    {
2026
      0xc00000007ffc0000ULL,
2027
      0ULL,
2028
      0ULL,
2029
      0ULL,
2030
      0ULL
2031
    },
2032
    {
2033
      0x0000000050900000ULL,
2034
      -1ULL,
2035
      -1ULL,
2036
      -1ULL,
2037
      -1ULL
2038
    }
2039
#endif
2040
  },
2041
  { "fsingle_mul2", TILEGX_OPC_FSINGLE_MUL2, 0x1, 3, TREG_ZERO, 1,
2042 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
2043 148 khays
#ifndef DISASM_ONLY
2044
    {
2045
      0xc00000007ffc0000ULL,
2046
      0ULL,
2047
      0ULL,
2048
      0ULL,
2049
      0ULL
2050
    },
2051
    {
2052
      0x0000000050940000ULL,
2053
      -1ULL,
2054
      -1ULL,
2055
      -1ULL,
2056
      -1ULL
2057
    }
2058
#endif
2059
  },
2060
  { "fsingle_pack1", TILEGX_OPC_FSINGLE_PACK1, 0x5, 2, TREG_ZERO, 1,
2061 166 khays
    { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
2062 148 khays
#ifndef DISASM_ONLY
2063
    {
2064
      0xc00000007ffff000ULL,
2065
      0ULL,
2066
      0x00000000780ff000ULL,
2067
      0ULL,
2068
      0ULL
2069
    },
2070
    {
2071
      0x0000000051484000ULL,
2072
      -1ULL,
2073
      0x00000000300c4000ULL,
2074
      -1ULL,
2075
      -1ULL
2076
    }
2077
#endif
2078
  },
2079
  { "fsingle_pack2", TILEGX_OPC_FSINGLE_PACK2, 0x1, 3, TREG_ZERO, 1,
2080 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
2081 148 khays
#ifndef DISASM_ONLY
2082
    {
2083
      0xc00000007ffc0000ULL,
2084
      0ULL,
2085
      0ULL,
2086
      0ULL,
2087
      0ULL
2088
    },
2089
    {
2090
      0x0000000050980000ULL,
2091
      -1ULL,
2092
      -1ULL,
2093
      -1ULL,
2094
      -1ULL
2095
    }
2096
#endif
2097
  },
2098
  { "fsingle_sub1", TILEGX_OPC_FSINGLE_SUB1, 0x1, 3, TREG_ZERO, 1,
2099 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
2100 148 khays
#ifndef DISASM_ONLY
2101
    {
2102
      0xc00000007ffc0000ULL,
2103
      0ULL,
2104
      0ULL,
2105
      0ULL,
2106
      0ULL
2107
    },
2108
    {
2109
      0x00000000509c0000ULL,
2110
      -1ULL,
2111
      -1ULL,
2112
      -1ULL,
2113
      -1ULL
2114
    }
2115
#endif
2116
  },
2117
  { "icoh", TILEGX_OPC_ICOH, 0x2, 1, TREG_ZERO, 1,
2118 166 khays
    { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
2119 148 khays
#ifndef DISASM_ONLY
2120
    {
2121
      0ULL,
2122
      0xfffff80000000000ULL,
2123
      0ULL,
2124
      0ULL,
2125
      0ULL
2126
    },
2127
    {
2128
      -1ULL,
2129
      0x286a380000000000ULL,
2130
      -1ULL,
2131
      -1ULL,
2132
      -1ULL
2133
    }
2134
#endif
2135
  },
2136
  { "ill", TILEGX_OPC_ILL, 0xa, 0, TREG_ZERO, 1,
2137
    { { 0, }, {  }, { 0, }, {  }, { 0, } },
2138
#ifndef DISASM_ONLY
2139
    {
2140
      0ULL,
2141
      0xfffff80000000000ULL,
2142
      0ULL,
2143
      0x3c07f80000000000ULL,
2144
      0ULL
2145
    },
2146
    {
2147
      -1ULL,
2148
      0x286a400000000000ULL,
2149
      -1ULL,
2150
      0x1c06480000000000ULL,
2151
      -1ULL
2152
    }
2153
#endif
2154
  },
2155
  { "inv", TILEGX_OPC_INV, 0x2, 1, TREG_ZERO, 1,
2156 166 khays
    { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
2157 148 khays
#ifndef DISASM_ONLY
2158
    {
2159
      0ULL,
2160
      0xfffff80000000000ULL,
2161
      0ULL,
2162
      0ULL,
2163
      0ULL
2164
    },
2165
    {
2166
      -1ULL,
2167
      0x286a480000000000ULL,
2168
      -1ULL,
2169
      -1ULL,
2170
      -1ULL
2171
    }
2172
#endif
2173
  },
2174
  { "iret", TILEGX_OPC_IRET, 0x2, 0, TREG_ZERO, 1,
2175
    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
2176
#ifndef DISASM_ONLY
2177
    {
2178
      0ULL,
2179
      0xfffff80000000000ULL,
2180
      0ULL,
2181
      0ULL,
2182
      0ULL
2183
    },
2184
    {
2185
      -1ULL,
2186
      0x286a500000000000ULL,
2187
      -1ULL,
2188
      -1ULL,
2189
      -1ULL
2190
    }
2191
#endif
2192
  },
2193
  { "j", TILEGX_OPC_J, 0x2, 1, TREG_ZERO, 1,
2194
    { { 0, }, { 25 }, { 0, }, { 0, }, { 0, } },
2195
#ifndef DISASM_ONLY
2196
    {
2197
      0ULL,
2198
      0xfc00000000000000ULL,
2199
      0ULL,
2200
      0ULL,
2201
      0ULL
2202
    },
2203
    {
2204
      -1ULL,
2205
      0x2400000000000000ULL,
2206
      -1ULL,
2207
      -1ULL,
2208
      -1ULL
2209
    }
2210
#endif
2211
  },
2212
  { "jal", TILEGX_OPC_JAL, 0x2, 1, TREG_LR, 1,
2213
    { { 0, }, { 25 }, { 0, }, { 0, }, { 0, } },
2214
#ifndef DISASM_ONLY
2215
    {
2216
      0ULL,
2217
      0xfc00000000000000ULL,
2218
      0ULL,
2219
      0ULL,
2220
      0ULL
2221
    },
2222
    {
2223
      -1ULL,
2224
      0x2000000000000000ULL,
2225
      -1ULL,
2226
      -1ULL,
2227
      -1ULL
2228
    }
2229
#endif
2230
  },
2231
  { "jalr", TILEGX_OPC_JALR, 0xa, 1, TREG_LR, 1,
2232 166 khays
    { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } },
2233 148 khays
#ifndef DISASM_ONLY
2234
    {
2235
      0ULL,
2236
      0xfffff80000000000ULL,
2237
      0ULL,
2238
      0x3c07f80000000000ULL,
2239
      0ULL
2240
    },
2241
    {
2242
      -1ULL,
2243
      0x286a600000000000ULL,
2244
      -1ULL,
2245
      0x1c06580000000000ULL,
2246
      -1ULL
2247
    }
2248
#endif
2249
  },
2250
  { "jalrp", TILEGX_OPC_JALRP, 0xa, 1, TREG_LR, 1,
2251 166 khays
    { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } },
2252 148 khays
#ifndef DISASM_ONLY
2253
    {
2254
      0ULL,
2255
      0xfffff80000000000ULL,
2256
      0ULL,
2257
      0x3c07f80000000000ULL,
2258
      0ULL
2259
    },
2260
    {
2261
      -1ULL,
2262
      0x286a580000000000ULL,
2263
      -1ULL,
2264
      0x1c06500000000000ULL,
2265
      -1ULL
2266
    }
2267
#endif
2268
  },
2269
  { "jr", TILEGX_OPC_JR, 0xa, 1, TREG_ZERO, 1,
2270 166 khays
    { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } },
2271 148 khays
#ifndef DISASM_ONLY
2272
    {
2273
      0ULL,
2274
      0xfffff80000000000ULL,
2275
      0ULL,
2276
      0x3c07f80000000000ULL,
2277
      0ULL
2278
    },
2279
    {
2280
      -1ULL,
2281
      0x286a700000000000ULL,
2282
      -1ULL,
2283
      0x1c06680000000000ULL,
2284
      -1ULL
2285
    }
2286
#endif
2287
  },
2288
  { "jrp", TILEGX_OPC_JRP, 0xa, 1, TREG_ZERO, 1,
2289 166 khays
    { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } },
2290 148 khays
#ifndef DISASM_ONLY
2291
    {
2292
      0ULL,
2293
      0xfffff80000000000ULL,
2294
      0ULL,
2295
      0x3c07f80000000000ULL,
2296
      0ULL
2297
    },
2298
    {
2299
      -1ULL,
2300
      0x286a680000000000ULL,
2301
      -1ULL,
2302
      0x1c06600000000000ULL,
2303
      -1ULL
2304
    }
2305
#endif
2306
  },
2307
  { "ld", TILEGX_OPC_LD, 0x12, 2, TREG_ZERO, 1,
2308 166 khays
    { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
2309 148 khays
#ifndef DISASM_ONLY
2310
    {
2311
      0ULL,
2312
      0xfffff80000000000ULL,
2313
      0ULL,
2314
      0ULL,
2315
      0xc200000004000000ULL
2316
    },
2317
    {
2318
      -1ULL,
2319
      0x286ae80000000000ULL,
2320
      -1ULL,
2321
      -1ULL,
2322
      0x8200000004000000ULL
2323
    }
2324
#endif
2325
  },
2326
  { "ld1s", TILEGX_OPC_LD1S, 0x12, 2, TREG_ZERO, 1,
2327 166 khays
    { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
2328 148 khays
#ifndef DISASM_ONLY
2329
    {
2330
      0ULL,
2331
      0xfffff80000000000ULL,
2332
      0ULL,
2333
      0ULL,
2334
      0xc200000004000000ULL
2335
    },
2336
    {
2337
      -1ULL,
2338
      0x286a780000000000ULL,
2339
      -1ULL,
2340
      -1ULL,
2341
      0x4000000000000000ULL
2342
    }
2343
#endif
2344
  },
2345
  { "ld1s_add", TILEGX_OPC_LD1S_ADD, 0x2, 3, TREG_ZERO, 1,
2346 166 khays
    { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2347 148 khays
#ifndef DISASM_ONLY
2348
    {
2349
      0ULL,
2350
      0xfff8000000000000ULL,
2351
      0ULL,
2352
      0ULL,
2353
      0ULL
2354
    },
2355
    {
2356
      -1ULL,
2357
      0x1838000000000000ULL,
2358
      -1ULL,
2359
      -1ULL,
2360
      -1ULL
2361
    }
2362
#endif
2363
  },
2364
  { "ld1u", TILEGX_OPC_LD1U, 0x12, 2, TREG_ZERO, 1,
2365 166 khays
    { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
2366 148 khays
#ifndef DISASM_ONLY
2367
    {
2368
      0ULL,
2369
      0xfffff80000000000ULL,
2370
      0ULL,
2371
      0ULL,
2372
      0xc200000004000000ULL
2373
    },
2374
    {
2375
      -1ULL,
2376
      0x286a800000000000ULL,
2377
      -1ULL,
2378
      -1ULL,
2379
      0x4000000004000000ULL
2380
    }
2381
#endif
2382
  },
2383
  { "ld1u_add", TILEGX_OPC_LD1U_ADD, 0x2, 3, TREG_ZERO, 1,
2384 166 khays
    { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2385 148 khays
#ifndef DISASM_ONLY
2386
    {
2387
      0ULL,
2388
      0xfff8000000000000ULL,
2389
      0ULL,
2390
      0ULL,
2391
      0ULL
2392
    },
2393
    {
2394
      -1ULL,
2395
      0x1840000000000000ULL,
2396
      -1ULL,
2397
      -1ULL,
2398
      -1ULL
2399
    }
2400
#endif
2401
  },
2402
  { "ld2s", TILEGX_OPC_LD2S, 0x12, 2, TREG_ZERO, 1,
2403 166 khays
    { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
2404 148 khays
#ifndef DISASM_ONLY
2405
    {
2406
      0ULL,
2407
      0xfffff80000000000ULL,
2408
      0ULL,
2409
      0ULL,
2410
      0xc200000004000000ULL
2411
    },
2412
    {
2413
      -1ULL,
2414
      0x286a880000000000ULL,
2415
      -1ULL,
2416
      -1ULL,
2417
      0x4200000000000000ULL
2418
    }
2419
#endif
2420
  },
2421
  { "ld2s_add", TILEGX_OPC_LD2S_ADD, 0x2, 3, TREG_ZERO, 1,
2422 166 khays
    { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2423 148 khays
#ifndef DISASM_ONLY
2424
    {
2425
      0ULL,
2426
      0xfff8000000000000ULL,
2427
      0ULL,
2428
      0ULL,
2429
      0ULL
2430
    },
2431
    {
2432
      -1ULL,
2433
      0x1848000000000000ULL,
2434
      -1ULL,
2435
      -1ULL,
2436
      -1ULL
2437
    }
2438
#endif
2439
  },
2440
  { "ld2u", TILEGX_OPC_LD2U, 0x12, 2, TREG_ZERO, 1,
2441 166 khays
    { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
2442 148 khays
#ifndef DISASM_ONLY
2443
    {
2444
      0ULL,
2445
      0xfffff80000000000ULL,
2446
      0ULL,
2447
      0ULL,
2448
      0xc200000004000000ULL
2449
    },
2450
    {
2451
      -1ULL,
2452
      0x286a900000000000ULL,
2453
      -1ULL,
2454
      -1ULL,
2455
      0x4200000004000000ULL
2456
    }
2457
#endif
2458
  },
2459
  { "ld2u_add", TILEGX_OPC_LD2U_ADD, 0x2, 3, TREG_ZERO, 1,
2460 166 khays
    { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2461 148 khays
#ifndef DISASM_ONLY
2462
    {
2463
      0ULL,
2464
      0xfff8000000000000ULL,
2465
      0ULL,
2466
      0ULL,
2467
      0ULL
2468
    },
2469
    {
2470
      -1ULL,
2471
      0x1850000000000000ULL,
2472
      -1ULL,
2473
      -1ULL,
2474
      -1ULL
2475
    }
2476
#endif
2477
  },
2478
  { "ld4s", TILEGX_OPC_LD4S, 0x12, 2, TREG_ZERO, 1,
2479 166 khays
    { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
2480 148 khays
#ifndef DISASM_ONLY
2481
    {
2482
      0ULL,
2483
      0xfffff80000000000ULL,
2484
      0ULL,
2485
      0ULL,
2486
      0xc200000004000000ULL
2487
    },
2488
    {
2489
      -1ULL,
2490
      0x286a980000000000ULL,
2491
      -1ULL,
2492
      -1ULL,
2493
      0x8000000004000000ULL
2494
    }
2495
#endif
2496
  },
2497
  { "ld4s_add", TILEGX_OPC_LD4S_ADD, 0x2, 3, TREG_ZERO, 1,
2498 166 khays
    { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2499 148 khays
#ifndef DISASM_ONLY
2500
    {
2501
      0ULL,
2502
      0xfff8000000000000ULL,
2503
      0ULL,
2504
      0ULL,
2505
      0ULL
2506
    },
2507
    {
2508
      -1ULL,
2509
      0x1858000000000000ULL,
2510
      -1ULL,
2511
      -1ULL,
2512
      -1ULL
2513
    }
2514
#endif
2515
  },
2516
  { "ld4u", TILEGX_OPC_LD4U, 0x12, 2, TREG_ZERO, 1,
2517 166 khays
    { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
2518 148 khays
#ifndef DISASM_ONLY
2519
    {
2520
      0ULL,
2521
      0xfffff80000000000ULL,
2522
      0ULL,
2523
      0ULL,
2524
      0xc200000004000000ULL
2525
    },
2526
    {
2527
      -1ULL,
2528
      0x286aa00000000000ULL,
2529
      -1ULL,
2530
      -1ULL,
2531
      0x8200000000000000ULL
2532
    }
2533
#endif
2534
  },
2535
  { "ld4u_add", TILEGX_OPC_LD4U_ADD, 0x2, 3, TREG_ZERO, 1,
2536 166 khays
    { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2537 148 khays
#ifndef DISASM_ONLY
2538
    {
2539
      0ULL,
2540
      0xfff8000000000000ULL,
2541
      0ULL,
2542
      0ULL,
2543
      0ULL
2544
    },
2545
    {
2546
      -1ULL,
2547
      0x1860000000000000ULL,
2548
      -1ULL,
2549
      -1ULL,
2550
      -1ULL
2551
    }
2552
#endif
2553
  },
2554
  { "ld_add", TILEGX_OPC_LD_ADD, 0x2, 3, TREG_ZERO, 1,
2555 166 khays
    { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2556 148 khays
#ifndef DISASM_ONLY
2557
    {
2558
      0ULL,
2559
      0xfff8000000000000ULL,
2560
      0ULL,
2561
      0ULL,
2562
      0ULL
2563
    },
2564
    {
2565
      -1ULL,
2566
      0x18a0000000000000ULL,
2567
      -1ULL,
2568
      -1ULL,
2569
      -1ULL
2570
    }
2571
#endif
2572
  },
2573
  { "ldna", TILEGX_OPC_LDNA, 0x2, 2, TREG_ZERO, 1,
2574 166 khays
    { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
2575 148 khays
#ifndef DISASM_ONLY
2576
    {
2577
      0ULL,
2578
      0xfffff80000000000ULL,
2579
      0ULL,
2580
      0ULL,
2581
      0ULL
2582
    },
2583
    {
2584
      -1ULL,
2585
      0x286aa80000000000ULL,
2586
      -1ULL,
2587
      -1ULL,
2588
      -1ULL
2589
    }
2590
#endif
2591
  },
2592
  { "ldna_add", TILEGX_OPC_LDNA_ADD, 0x2, 3, TREG_ZERO, 1,
2593 166 khays
    { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2594 148 khays
#ifndef DISASM_ONLY
2595
    {
2596
      0ULL,
2597
      0xfff8000000000000ULL,
2598
      0ULL,
2599
      0ULL,
2600
      0ULL
2601
    },
2602
    {
2603
      -1ULL,
2604
      0x18a8000000000000ULL,
2605
      -1ULL,
2606
      -1ULL,
2607
      -1ULL
2608
    }
2609
#endif
2610
  },
2611
  { "ldnt", TILEGX_OPC_LDNT, 0x2, 2, TREG_ZERO, 1,
2612 166 khays
    { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
2613 148 khays
#ifndef DISASM_ONLY
2614
    {
2615
      0ULL,
2616
      0xfffff80000000000ULL,
2617
      0ULL,
2618
      0ULL,
2619
      0ULL
2620
    },
2621
    {
2622
      -1ULL,
2623
      0x286ae00000000000ULL,
2624
      -1ULL,
2625
      -1ULL,
2626
      -1ULL
2627
    }
2628
#endif
2629
  },
2630
  { "ldnt1s", TILEGX_OPC_LDNT1S, 0x2, 2, TREG_ZERO, 1,
2631 166 khays
    { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
2632 148 khays
#ifndef DISASM_ONLY
2633
    {
2634
      0ULL,
2635
      0xfffff80000000000ULL,
2636
      0ULL,
2637
      0ULL,
2638
      0ULL
2639
    },
2640
    {
2641
      -1ULL,
2642
      0x286ab00000000000ULL,
2643
      -1ULL,
2644
      -1ULL,
2645
      -1ULL
2646
    }
2647
#endif
2648
  },
2649
  { "ldnt1s_add", TILEGX_OPC_LDNT1S_ADD, 0x2, 3, TREG_ZERO, 1,
2650 166 khays
    { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2651 148 khays
#ifndef DISASM_ONLY
2652
    {
2653
      0ULL,
2654
      0xfff8000000000000ULL,
2655
      0ULL,
2656
      0ULL,
2657
      0ULL
2658
    },
2659
    {
2660
      -1ULL,
2661
      0x1868000000000000ULL,
2662
      -1ULL,
2663
      -1ULL,
2664
      -1ULL
2665
    }
2666
#endif
2667
  },
2668
  { "ldnt1u", TILEGX_OPC_LDNT1U, 0x2, 2, TREG_ZERO, 1,
2669 166 khays
    { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
2670 148 khays
#ifndef DISASM_ONLY
2671
    {
2672
      0ULL,
2673
      0xfffff80000000000ULL,
2674
      0ULL,
2675
      0ULL,
2676
      0ULL
2677
    },
2678
    {
2679
      -1ULL,
2680
      0x286ab80000000000ULL,
2681
      -1ULL,
2682
      -1ULL,
2683
      -1ULL
2684
    }
2685
#endif
2686
  },
2687
  { "ldnt1u_add", TILEGX_OPC_LDNT1U_ADD, 0x2, 3, TREG_ZERO, 1,
2688 166 khays
    { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2689 148 khays
#ifndef DISASM_ONLY
2690
    {
2691
      0ULL,
2692
      0xfff8000000000000ULL,
2693
      0ULL,
2694
      0ULL,
2695
      0ULL
2696
    },
2697
    {
2698
      -1ULL,
2699
      0x1870000000000000ULL,
2700
      -1ULL,
2701
      -1ULL,
2702
      -1ULL
2703
    }
2704
#endif
2705
  },
2706
  { "ldnt2s", TILEGX_OPC_LDNT2S, 0x2, 2, TREG_ZERO, 1,
2707 166 khays
    { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
2708 148 khays
#ifndef DISASM_ONLY
2709
    {
2710
      0ULL,
2711
      0xfffff80000000000ULL,
2712
      0ULL,
2713
      0ULL,
2714
      0ULL
2715
    },
2716
    {
2717
      -1ULL,
2718
      0x286ac00000000000ULL,
2719
      -1ULL,
2720
      -1ULL,
2721
      -1ULL
2722
    }
2723
#endif
2724
  },
2725
  { "ldnt2s_add", TILEGX_OPC_LDNT2S_ADD, 0x2, 3, TREG_ZERO, 1,
2726 166 khays
    { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2727 148 khays
#ifndef DISASM_ONLY
2728
    {
2729
      0ULL,
2730
      0xfff8000000000000ULL,
2731
      0ULL,
2732
      0ULL,
2733
      0ULL
2734
    },
2735
    {
2736
      -1ULL,
2737
      0x1878000000000000ULL,
2738
      -1ULL,
2739
      -1ULL,
2740
      -1ULL
2741
    }
2742
#endif
2743
  },
2744
  { "ldnt2u", TILEGX_OPC_LDNT2U, 0x2, 2, TREG_ZERO, 1,
2745 166 khays
    { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
2746 148 khays
#ifndef DISASM_ONLY
2747
    {
2748
      0ULL,
2749
      0xfffff80000000000ULL,
2750
      0ULL,
2751
      0ULL,
2752
      0ULL
2753
    },
2754
    {
2755
      -1ULL,
2756
      0x286ac80000000000ULL,
2757
      -1ULL,
2758
      -1ULL,
2759
      -1ULL
2760
    }
2761
#endif
2762
  },
2763
  { "ldnt2u_add", TILEGX_OPC_LDNT2U_ADD, 0x2, 3, TREG_ZERO, 1,
2764 166 khays
    { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2765 148 khays
#ifndef DISASM_ONLY
2766
    {
2767
      0ULL,
2768
      0xfff8000000000000ULL,
2769
      0ULL,
2770
      0ULL,
2771
      0ULL
2772
    },
2773
    {
2774
      -1ULL,
2775
      0x1880000000000000ULL,
2776
      -1ULL,
2777
      -1ULL,
2778
      -1ULL
2779
    }
2780
#endif
2781
  },
2782
  { "ldnt4s", TILEGX_OPC_LDNT4S, 0x2, 2, TREG_ZERO, 1,
2783 166 khays
    { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
2784 148 khays
#ifndef DISASM_ONLY
2785
    {
2786
      0ULL,
2787
      0xfffff80000000000ULL,
2788
      0ULL,
2789
      0ULL,
2790
      0ULL
2791
    },
2792
    {
2793
      -1ULL,
2794
      0x286ad00000000000ULL,
2795
      -1ULL,
2796
      -1ULL,
2797
      -1ULL
2798
    }
2799
#endif
2800
  },
2801
  { "ldnt4s_add", TILEGX_OPC_LDNT4S_ADD, 0x2, 3, TREG_ZERO, 1,
2802 166 khays
    { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2803 148 khays
#ifndef DISASM_ONLY
2804
    {
2805
      0ULL,
2806
      0xfff8000000000000ULL,
2807
      0ULL,
2808
      0ULL,
2809
      0ULL
2810
    },
2811
    {
2812
      -1ULL,
2813
      0x1888000000000000ULL,
2814
      -1ULL,
2815
      -1ULL,
2816
      -1ULL
2817
    }
2818
#endif
2819
  },
2820
  { "ldnt4u", TILEGX_OPC_LDNT4U, 0x2, 2, TREG_ZERO, 1,
2821 166 khays
    { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
2822 148 khays
#ifndef DISASM_ONLY
2823
    {
2824
      0ULL,
2825
      0xfffff80000000000ULL,
2826
      0ULL,
2827
      0ULL,
2828
      0ULL
2829
    },
2830
    {
2831
      -1ULL,
2832
      0x286ad80000000000ULL,
2833
      -1ULL,
2834
      -1ULL,
2835
      -1ULL
2836
    }
2837
#endif
2838
  },
2839
  { "ldnt4u_add", TILEGX_OPC_LDNT4U_ADD, 0x2, 3, TREG_ZERO, 1,
2840 166 khays
    { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2841 148 khays
#ifndef DISASM_ONLY
2842
    {
2843
      0ULL,
2844
      0xfff8000000000000ULL,
2845
      0ULL,
2846
      0ULL,
2847
      0ULL
2848
    },
2849
    {
2850
      -1ULL,
2851
      0x1890000000000000ULL,
2852
      -1ULL,
2853
      -1ULL,
2854
      -1ULL
2855
    }
2856
#endif
2857
  },
2858
  { "ldnt_add", TILEGX_OPC_LDNT_ADD, 0x2, 3, TREG_ZERO, 1,
2859 166 khays
    { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2860 148 khays
#ifndef DISASM_ONLY
2861
    {
2862
      0ULL,
2863
      0xfff8000000000000ULL,
2864
      0ULL,
2865
      0ULL,
2866
      0ULL
2867
    },
2868
    {
2869
      -1ULL,
2870
      0x1898000000000000ULL,
2871
      -1ULL,
2872
      -1ULL,
2873
      -1ULL
2874
    }
2875
#endif
2876
  },
2877
  { "lnk", TILEGX_OPC_LNK, 0xa, 1, TREG_ZERO, 1,
2878 166 khays
    { { 0, }, { 6 }, { 0, }, { 12 }, { 0, } },
2879 148 khays
#ifndef DISASM_ONLY
2880
    {
2881
      0ULL,
2882
      0xfffff80000000000ULL,
2883
      0ULL,
2884
      0x3c07f80000000000ULL,
2885
      0ULL
2886
    },
2887
    {
2888
      -1ULL,
2889
      0x286af00000000000ULL,
2890
      -1ULL,
2891
      0x1c06700000000000ULL,
2892
      -1ULL
2893
    }
2894
#endif
2895
  },
2896
  { "mf", TILEGX_OPC_MF, 0x2, 0, TREG_ZERO, 1,
2897
    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
2898
#ifndef DISASM_ONLY
2899
    {
2900
      0ULL,
2901
      0xfffff80000000000ULL,
2902
      0ULL,
2903
      0ULL,
2904
      0ULL
2905
    },
2906
    {
2907
      -1ULL,
2908
      0x286af80000000000ULL,
2909
      -1ULL,
2910
      -1ULL,
2911
      -1ULL
2912
    }
2913
#endif
2914
  },
2915
  { "mfspr", TILEGX_OPC_MFSPR, 0x2, 2, TREG_ZERO, 1,
2916 166 khays
    { { 0, }, { 6, 27 }, { 0, }, { 0, }, { 0, } },
2917 148 khays
#ifndef DISASM_ONLY
2918
    {
2919
      0ULL,
2920
      0xfff8000000000000ULL,
2921
      0ULL,
2922
      0ULL,
2923
      0ULL
2924
    },
2925
    {
2926
      -1ULL,
2927
      0x18b0000000000000ULL,
2928
      -1ULL,
2929
      -1ULL,
2930
      -1ULL
2931
    }
2932
#endif
2933
  },
2934
  { "mm", TILEGX_OPC_MM, 0x1, 4, TREG_ZERO, 1,
2935 166 khays
    { { 23, 9, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
2936 148 khays
#ifndef DISASM_ONLY
2937
    {
2938
      0xc00000007f000000ULL,
2939
      0ULL,
2940
      0ULL,
2941
      0ULL,
2942
      0ULL
2943
    },
2944
    {
2945
      0x0000000037000000ULL,
2946
      -1ULL,
2947
      -1ULL,
2948
      -1ULL,
2949
      -1ULL
2950
    }
2951
#endif
2952
  },
2953
  { "mnz", TILEGX_OPC_MNZ, 0xf, 3, TREG_ZERO, 1,
2954 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
2955 148 khays
#ifndef DISASM_ONLY
2956
    {
2957
      0xc00000007ffc0000ULL,
2958
      0xfffe000000000000ULL,
2959
      0x00000000780c0000ULL,
2960
      0x3c06000000000000ULL,
2961
      0ULL
2962
    },
2963
    {
2964
      0x0000000050a00000ULL,
2965
      0x2834000000000000ULL,
2966
      0x0000000048080000ULL,
2967
      0x2804000000000000ULL,
2968
      -1ULL
2969
    }
2970
#endif
2971
  },
2972
  { "mtspr", TILEGX_OPC_MTSPR, 0x2, 2, TREG_ZERO, 1,
2973 166 khays
    { { 0, }, { 28, 7 }, { 0, }, { 0, }, { 0, } },
2974 148 khays
#ifndef DISASM_ONLY
2975
    {
2976
      0ULL,
2977
      0xfff8000000000000ULL,
2978
      0ULL,
2979
      0ULL,
2980
      0ULL
2981
    },
2982
    {
2983
      -1ULL,
2984
      0x18b8000000000000ULL,
2985
      -1ULL,
2986
      -1ULL,
2987
      -1ULL
2988
    }
2989
#endif
2990
  },
2991
  { "mul_hs_hs", TILEGX_OPC_MUL_HS_HS, 0x5, 3, TREG_ZERO, 1,
2992 166 khays
    { { 8, 9, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
2993 148 khays
#ifndef DISASM_ONLY
2994
    {
2995
      0xc00000007ffc0000ULL,
2996
      0ULL,
2997
      0x00000000780c0000ULL,
2998
      0ULL,
2999
      0ULL
3000
    },
3001
    {
3002
      0x0000000050d40000ULL,
3003
      -1ULL,
3004
      0x0000000068000000ULL,
3005
      -1ULL,
3006
      -1ULL
3007
    }
3008
#endif
3009
  },
3010
  { "mul_hs_hu", TILEGX_OPC_MUL_HS_HU, 0x1, 3, TREG_ZERO, 1,
3011 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3012 148 khays
#ifndef DISASM_ONLY
3013
    {
3014
      0xc00000007ffc0000ULL,
3015
      0ULL,
3016
      0ULL,
3017
      0ULL,
3018
      0ULL
3019
    },
3020
    {
3021
      0x0000000050d80000ULL,
3022
      -1ULL,
3023
      -1ULL,
3024
      -1ULL,
3025
      -1ULL
3026
    }
3027
#endif
3028
  },
3029
  { "mul_hs_ls", TILEGX_OPC_MUL_HS_LS, 0x1, 3, TREG_ZERO, 1,
3030 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3031 148 khays
#ifndef DISASM_ONLY
3032
    {
3033
      0xc00000007ffc0000ULL,
3034
      0ULL,
3035
      0ULL,
3036
      0ULL,
3037
      0ULL
3038
    },
3039
    {
3040
      0x0000000050dc0000ULL,
3041
      -1ULL,
3042
      -1ULL,
3043
      -1ULL,
3044
      -1ULL
3045
    }
3046
#endif
3047
  },
3048
  { "mul_hs_lu", TILEGX_OPC_MUL_HS_LU, 0x1, 3, TREG_ZERO, 1,
3049 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3050 148 khays
#ifndef DISASM_ONLY
3051
    {
3052
      0xc00000007ffc0000ULL,
3053
      0ULL,
3054
      0ULL,
3055
      0ULL,
3056
      0ULL
3057
    },
3058
    {
3059
      0x0000000050e00000ULL,
3060
      -1ULL,
3061
      -1ULL,
3062
      -1ULL,
3063
      -1ULL
3064
    }
3065
#endif
3066
  },
3067
  { "mul_hu_hu", TILEGX_OPC_MUL_HU_HU, 0x5, 3, TREG_ZERO, 1,
3068 166 khays
    { { 8, 9, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
3069 148 khays
#ifndef DISASM_ONLY
3070
    {
3071
      0xc00000007ffc0000ULL,
3072
      0ULL,
3073
      0x00000000780c0000ULL,
3074
      0ULL,
3075
      0ULL
3076
    },
3077
    {
3078
      0x0000000050e40000ULL,
3079
      -1ULL,
3080
      0x0000000068040000ULL,
3081
      -1ULL,
3082
      -1ULL
3083
    }
3084
#endif
3085
  },
3086
  { "mul_hu_ls", TILEGX_OPC_MUL_HU_LS, 0x1, 3, TREG_ZERO, 1,
3087 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3088 148 khays
#ifndef DISASM_ONLY
3089
    {
3090
      0xc00000007ffc0000ULL,
3091
      0ULL,
3092
      0ULL,
3093
      0ULL,
3094
      0ULL
3095
    },
3096
    {
3097
      0x0000000050e80000ULL,
3098
      -1ULL,
3099
      -1ULL,
3100
      -1ULL,
3101
      -1ULL
3102
    }
3103
#endif
3104
  },
3105
  { "mul_hu_lu", TILEGX_OPC_MUL_HU_LU, 0x1, 3, TREG_ZERO, 1,
3106 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3107 148 khays
#ifndef DISASM_ONLY
3108
    {
3109
      0xc00000007ffc0000ULL,
3110
      0ULL,
3111
      0ULL,
3112
      0ULL,
3113
      0ULL
3114
    },
3115
    {
3116
      0x0000000050ec0000ULL,
3117
      -1ULL,
3118
      -1ULL,
3119
      -1ULL,
3120
      -1ULL
3121
    }
3122
#endif
3123
  },
3124
  { "mul_ls_ls", TILEGX_OPC_MUL_LS_LS, 0x5, 3, TREG_ZERO, 1,
3125 166 khays
    { { 8, 9, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
3126 148 khays
#ifndef DISASM_ONLY
3127
    {
3128
      0xc00000007ffc0000ULL,
3129
      0ULL,
3130
      0x00000000780c0000ULL,
3131
      0ULL,
3132
      0ULL
3133
    },
3134
    {
3135
      0x0000000050f00000ULL,
3136
      -1ULL,
3137
      0x0000000068080000ULL,
3138
      -1ULL,
3139
      -1ULL
3140
    }
3141
#endif
3142
  },
3143
  { "mul_ls_lu", TILEGX_OPC_MUL_LS_LU, 0x1, 3, TREG_ZERO, 1,
3144 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3145 148 khays
#ifndef DISASM_ONLY
3146
    {
3147
      0xc00000007ffc0000ULL,
3148
      0ULL,
3149
      0ULL,
3150
      0ULL,
3151
      0ULL
3152
    },
3153
    {
3154
      0x0000000050f40000ULL,
3155
      -1ULL,
3156
      -1ULL,
3157
      -1ULL,
3158
      -1ULL
3159
    }
3160
#endif
3161
  },
3162
  { "mul_lu_lu", TILEGX_OPC_MUL_LU_LU, 0x5, 3, TREG_ZERO, 1,
3163 166 khays
    { { 8, 9, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
3164 148 khays
#ifndef DISASM_ONLY
3165
    {
3166
      0xc00000007ffc0000ULL,
3167
      0ULL,
3168
      0x00000000780c0000ULL,
3169
      0ULL,
3170
      0ULL
3171
    },
3172
    {
3173
      0x0000000050f80000ULL,
3174
      -1ULL,
3175
      0x00000000680c0000ULL,
3176
      -1ULL,
3177
      -1ULL
3178
    }
3179
#endif
3180
  },
3181
  { "mula_hs_hs", TILEGX_OPC_MULA_HS_HS, 0x5, 3, TREG_ZERO, 1,
3182 166 khays
    { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
3183 148 khays
#ifndef DISASM_ONLY
3184
    {
3185
      0xc00000007ffc0000ULL,
3186
      0ULL,
3187
      0x00000000780c0000ULL,
3188
      0ULL,
3189
      0ULL
3190
    },
3191
    {
3192
      0x0000000050a80000ULL,
3193
      -1ULL,
3194
      0x0000000070000000ULL,
3195
      -1ULL,
3196
      -1ULL
3197
    }
3198
#endif
3199
  },
3200
  { "mula_hs_hu", TILEGX_OPC_MULA_HS_HU, 0x1, 3, TREG_ZERO, 1,
3201 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3202 148 khays
#ifndef DISASM_ONLY
3203
    {
3204
      0xc00000007ffc0000ULL,
3205
      0ULL,
3206
      0ULL,
3207
      0ULL,
3208
      0ULL
3209
    },
3210
    {
3211
      0x0000000050ac0000ULL,
3212
      -1ULL,
3213
      -1ULL,
3214
      -1ULL,
3215
      -1ULL
3216
    }
3217
#endif
3218
  },
3219
  { "mula_hs_ls", TILEGX_OPC_MULA_HS_LS, 0x1, 3, TREG_ZERO, 1,
3220 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3221 148 khays
#ifndef DISASM_ONLY
3222
    {
3223
      0xc00000007ffc0000ULL,
3224
      0ULL,
3225
      0ULL,
3226
      0ULL,
3227
      0ULL
3228
    },
3229
    {
3230
      0x0000000050b00000ULL,
3231
      -1ULL,
3232
      -1ULL,
3233
      -1ULL,
3234
      -1ULL
3235
    }
3236
#endif
3237
  },
3238
  { "mula_hs_lu", TILEGX_OPC_MULA_HS_LU, 0x1, 3, TREG_ZERO, 1,
3239 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3240 148 khays
#ifndef DISASM_ONLY
3241
    {
3242
      0xc00000007ffc0000ULL,
3243
      0ULL,
3244
      0ULL,
3245
      0ULL,
3246
      0ULL
3247
    },
3248
    {
3249
      0x0000000050b40000ULL,
3250
      -1ULL,
3251
      -1ULL,
3252
      -1ULL,
3253
      -1ULL
3254
    }
3255
#endif
3256
  },
3257
  { "mula_hu_hu", TILEGX_OPC_MULA_HU_HU, 0x5, 3, TREG_ZERO, 1,
3258 166 khays
    { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
3259 148 khays
#ifndef DISASM_ONLY
3260
    {
3261
      0xc00000007ffc0000ULL,
3262
      0ULL,
3263
      0x00000000780c0000ULL,
3264
      0ULL,
3265
      0ULL
3266
    },
3267
    {
3268
      0x0000000050b80000ULL,
3269
      -1ULL,
3270
      0x0000000070040000ULL,
3271
      -1ULL,
3272
      -1ULL
3273
    }
3274
#endif
3275
  },
3276
  { "mula_hu_ls", TILEGX_OPC_MULA_HU_LS, 0x1, 3, TREG_ZERO, 1,
3277 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3278 148 khays
#ifndef DISASM_ONLY
3279
    {
3280
      0xc00000007ffc0000ULL,
3281
      0ULL,
3282
      0ULL,
3283
      0ULL,
3284
      0ULL
3285
    },
3286
    {
3287
      0x0000000050bc0000ULL,
3288
      -1ULL,
3289
      -1ULL,
3290
      -1ULL,
3291
      -1ULL
3292
    }
3293
#endif
3294
  },
3295
  { "mula_hu_lu", TILEGX_OPC_MULA_HU_LU, 0x1, 3, TREG_ZERO, 1,
3296 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3297 148 khays
#ifndef DISASM_ONLY
3298
    {
3299
      0xc00000007ffc0000ULL,
3300
      0ULL,
3301
      0ULL,
3302
      0ULL,
3303
      0ULL
3304
    },
3305
    {
3306
      0x0000000050c00000ULL,
3307
      -1ULL,
3308
      -1ULL,
3309
      -1ULL,
3310
      -1ULL
3311
    }
3312
#endif
3313
  },
3314
  { "mula_ls_ls", TILEGX_OPC_MULA_LS_LS, 0x5, 3, TREG_ZERO, 1,
3315 166 khays
    { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
3316 148 khays
#ifndef DISASM_ONLY
3317
    {
3318
      0xc00000007ffc0000ULL,
3319
      0ULL,
3320
      0x00000000780c0000ULL,
3321
      0ULL,
3322
      0ULL
3323
    },
3324
    {
3325
      0x0000000050c40000ULL,
3326
      -1ULL,
3327
      0x0000000070080000ULL,
3328
      -1ULL,
3329
      -1ULL
3330
    }
3331
#endif
3332
  },
3333
  { "mula_ls_lu", TILEGX_OPC_MULA_LS_LU, 0x1, 3, TREG_ZERO, 1,
3334 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3335 148 khays
#ifndef DISASM_ONLY
3336
    {
3337
      0xc00000007ffc0000ULL,
3338
      0ULL,
3339
      0ULL,
3340
      0ULL,
3341
      0ULL
3342
    },
3343
    {
3344
      0x0000000050c80000ULL,
3345
      -1ULL,
3346
      -1ULL,
3347
      -1ULL,
3348
      -1ULL
3349
    }
3350
#endif
3351
  },
3352
  { "mula_lu_lu", TILEGX_OPC_MULA_LU_LU, 0x5, 3, TREG_ZERO, 1,
3353 166 khays
    { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
3354 148 khays
#ifndef DISASM_ONLY
3355
    {
3356
      0xc00000007ffc0000ULL,
3357
      0ULL,
3358
      0x00000000780c0000ULL,
3359
      0ULL,
3360
      0ULL
3361
    },
3362
    {
3363
      0x0000000050cc0000ULL,
3364
      -1ULL,
3365
      0x00000000700c0000ULL,
3366
      -1ULL,
3367
      -1ULL
3368
    }
3369
#endif
3370
  },
3371
  { "mulax", TILEGX_OPC_MULAX, 0x5, 3, TREG_ZERO, 1,
3372 166 khays
    { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
3373 148 khays
#ifndef DISASM_ONLY
3374
    {
3375
      0xc00000007ffc0000ULL,
3376
      0ULL,
3377
      0x00000000780c0000ULL,
3378
      0ULL,
3379
      0ULL
3380
    },
3381
    {
3382
      0x0000000050a40000ULL,
3383
      -1ULL,
3384
      0x0000000040080000ULL,
3385
      -1ULL,
3386
      -1ULL
3387
    }
3388
#endif
3389
  },
3390
  { "mulx", TILEGX_OPC_MULX, 0x5, 3, TREG_ZERO, 1,
3391 166 khays
    { { 8, 9, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
3392 148 khays
#ifndef DISASM_ONLY
3393
    {
3394
      0xc00000007ffc0000ULL,
3395
      0ULL,
3396
      0x00000000780c0000ULL,
3397
      0ULL,
3398
      0ULL
3399
    },
3400
    {
3401
      0x0000000050d00000ULL,
3402
      -1ULL,
3403
      0x00000000400c0000ULL,
3404
      -1ULL,
3405
      -1ULL
3406
    }
3407
#endif
3408
  },
3409
  { "mz", TILEGX_OPC_MZ, 0xf, 3, TREG_ZERO, 1,
3410 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3411 148 khays
#ifndef DISASM_ONLY
3412
    {
3413
      0xc00000007ffc0000ULL,
3414
      0xfffe000000000000ULL,
3415
      0x00000000780c0000ULL,
3416
      0x3c06000000000000ULL,
3417
      0ULL
3418
    },
3419
    {
3420
      0x0000000050fc0000ULL,
3421
      0x2836000000000000ULL,
3422
      0x00000000480c0000ULL,
3423
      0x2806000000000000ULL,
3424
      -1ULL
3425
    }
3426
#endif
3427
  },
3428
  { "nap", TILEGX_OPC_NAP, 0x2, 0, TREG_ZERO, 0,
3429
    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
3430
#ifndef DISASM_ONLY
3431
    {
3432
      0ULL,
3433
      0xfffff80000000000ULL,
3434
      0ULL,
3435
      0ULL,
3436
      0ULL
3437
    },
3438
    {
3439
      -1ULL,
3440
      0x286b000000000000ULL,
3441
      -1ULL,
3442
      -1ULL,
3443
      -1ULL
3444
    }
3445
#endif
3446
  },
3447
  { "nop", TILEGX_OPC_NOP, 0xf, 0, TREG_ZERO, 1,
3448
    { {  }, {  }, {  }, {  }, { 0, } },
3449
#ifndef DISASM_ONLY
3450
    {
3451
      0xc00000007ffff000ULL,
3452
      0xfffff80000000000ULL,
3453
      0x00000000780ff000ULL,
3454
      0x3c07f80000000000ULL,
3455
      0ULL
3456
    },
3457
    {
3458
      0x0000000051485000ULL,
3459
      0x286b080000000000ULL,
3460
      0x00000000300c5000ULL,
3461
      0x1c06780000000000ULL,
3462
      -1ULL
3463
    }
3464
#endif
3465
  },
3466
  { "nor", TILEGX_OPC_NOR, 0xf, 3, TREG_ZERO, 1,
3467 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3468 148 khays
#ifndef DISASM_ONLY
3469
    {
3470
      0xc00000007ffc0000ULL,
3471
      0xfffe000000000000ULL,
3472
      0x00000000780c0000ULL,
3473
      0x3c06000000000000ULL,
3474
      0ULL
3475
    },
3476
    {
3477
      0x0000000051000000ULL,
3478
      0x2838000000000000ULL,
3479
      0x0000000050040000ULL,
3480
      0x2c02000000000000ULL,
3481
      -1ULL
3482
    }
3483
#endif
3484
  },
3485
  { "or", TILEGX_OPC_OR, 0xf, 3, TREG_ZERO, 1,
3486 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3487 148 khays
#ifndef DISASM_ONLY
3488
    {
3489
      0xc00000007ffc0000ULL,
3490
      0xfffe000000000000ULL,
3491
      0x00000000780c0000ULL,
3492
      0x3c06000000000000ULL,
3493
      0ULL
3494
    },
3495
    {
3496
      0x0000000051040000ULL,
3497
      0x283a000000000000ULL,
3498
      0x0000000050080000ULL,
3499
      0x2c04000000000000ULL,
3500
      -1ULL
3501
    }
3502
#endif
3503
  },
3504
  { "ori", TILEGX_OPC_ORI, 0x3, 3, TREG_ZERO, 1,
3505 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
3506 148 khays
#ifndef DISASM_ONLY
3507
    {
3508
      0xc00000007ff00000ULL,
3509
      0xfff8000000000000ULL,
3510
      0ULL,
3511
      0ULL,
3512
      0ULL
3513
    },
3514
    {
3515
      0x0000000040700000ULL,
3516
      0x18c0000000000000ULL,
3517
      -1ULL,
3518
      -1ULL,
3519
      -1ULL
3520
    }
3521
#endif
3522
  },
3523
  { "pcnt", TILEGX_OPC_PCNT, 0x5, 2, TREG_ZERO, 1,
3524 166 khays
    { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
3525 148 khays
#ifndef DISASM_ONLY
3526
    {
3527
      0xc00000007ffff000ULL,
3528
      0ULL,
3529
      0x00000000780ff000ULL,
3530
      0ULL,
3531
      0ULL
3532
    },
3533
    {
3534
      0x0000000051486000ULL,
3535
      -1ULL,
3536
      0x00000000300c6000ULL,
3537
      -1ULL,
3538
      -1ULL
3539
    }
3540
#endif
3541
  },
3542
  { "revbits", TILEGX_OPC_REVBITS, 0x5, 2, TREG_ZERO, 1,
3543 166 khays
    { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
3544 148 khays
#ifndef DISASM_ONLY
3545
    {
3546
      0xc00000007ffff000ULL,
3547
      0ULL,
3548
      0x00000000780ff000ULL,
3549
      0ULL,
3550
      0ULL
3551
    },
3552
    {
3553
      0x0000000051487000ULL,
3554
      -1ULL,
3555
      0x00000000300c7000ULL,
3556
      -1ULL,
3557
      -1ULL
3558
    }
3559
#endif
3560
  },
3561
  { "revbytes", TILEGX_OPC_REVBYTES, 0x5, 2, TREG_ZERO, 1,
3562 166 khays
    { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
3563 148 khays
#ifndef DISASM_ONLY
3564
    {
3565
      0xc00000007ffff000ULL,
3566
      0ULL,
3567
      0x00000000780ff000ULL,
3568
      0ULL,
3569
      0ULL
3570
    },
3571
    {
3572
      0x0000000051488000ULL,
3573
      -1ULL,
3574
      0x00000000300c8000ULL,
3575
      -1ULL,
3576
      -1ULL
3577
    }
3578
#endif
3579
  },
3580
  { "rotl", TILEGX_OPC_ROTL, 0xf, 3, TREG_ZERO, 1,
3581 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3582 148 khays
#ifndef DISASM_ONLY
3583
    {
3584
      0xc00000007ffc0000ULL,
3585
      0xfffe000000000000ULL,
3586
      0x00000000780c0000ULL,
3587
      0x3c06000000000000ULL,
3588
      0ULL
3589
    },
3590
    {
3591
      0x0000000051080000ULL,
3592
      0x283c000000000000ULL,
3593
      0x0000000058000000ULL,
3594
      0x3000000000000000ULL,
3595
      -1ULL
3596
    }
3597
#endif
3598
  },
3599
  { "rotli", TILEGX_OPC_ROTLI, 0xf, 3, TREG_ZERO, 1,
3600 166 khays
    { { 8, 9, 29 }, { 6, 7, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
3601 148 khays
#ifndef DISASM_ONLY
3602
    {
3603
      0xc00000007ffc0000ULL,
3604
      0xfffe000000000000ULL,
3605
      0x00000000780c0000ULL,
3606
      0x3c06000000000000ULL,
3607
      0ULL
3608
    },
3609
    {
3610
      0x0000000060040000ULL,
3611
      0x3002000000000000ULL,
3612
      0x0000000078000000ULL,
3613
      0x3800000000000000ULL,
3614
      -1ULL
3615
    }
3616
#endif
3617
  },
3618
  { "shl", TILEGX_OPC_SHL, 0xf, 3, TREG_ZERO, 1,
3619 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3620 148 khays
#ifndef DISASM_ONLY
3621
    {
3622
      0xc00000007ffc0000ULL,
3623
      0xfffe000000000000ULL,
3624
      0x00000000780c0000ULL,
3625
      0x3c06000000000000ULL,
3626
      0ULL
3627
    },
3628
    {
3629
      0x0000000051280000ULL,
3630
      0x284c000000000000ULL,
3631
      0x0000000058040000ULL,
3632
      0x3002000000000000ULL,
3633
      -1ULL
3634
    }
3635
#endif
3636
  },
3637
  { "shl16insli", TILEGX_OPC_SHL16INSLI, 0x3, 3, TREG_ZERO, 1,
3638 166 khays
    { { 8, 9, 4 }, { 6, 7, 5 }, { 0, }, { 0, }, { 0, } },
3639 148 khays
#ifndef DISASM_ONLY
3640
    {
3641
      0xc000000070000000ULL,
3642
      0xf800000000000000ULL,
3643
      0ULL,
3644
      0ULL,
3645
      0ULL
3646
    },
3647
    {
3648
      0x0000000070000000ULL,
3649
      0x3800000000000000ULL,
3650
      -1ULL,
3651
      -1ULL,
3652
      -1ULL
3653
    }
3654
#endif
3655
  },
3656
  { "shl1add", TILEGX_OPC_SHL1ADD, 0xf, 3, TREG_ZERO, 1,
3657 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3658 148 khays
#ifndef DISASM_ONLY
3659
    {
3660
      0xc00000007ffc0000ULL,
3661
      0xfffe000000000000ULL,
3662
      0x00000000780c0000ULL,
3663
      0x3c06000000000000ULL,
3664
      0ULL
3665
    },
3666
    {
3667
      0x0000000051100000ULL,
3668
      0x2840000000000000ULL,
3669
      0x0000000030000000ULL,
3670
      0x1c00000000000000ULL,
3671
      -1ULL
3672
    }
3673
#endif
3674
  },
3675
  { "shl1addx", TILEGX_OPC_SHL1ADDX, 0xf, 3, TREG_ZERO, 1,
3676 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3677 148 khays
#ifndef DISASM_ONLY
3678
    {
3679
      0xc00000007ffc0000ULL,
3680
      0xfffe000000000000ULL,
3681
      0x00000000780c0000ULL,
3682
      0x3c06000000000000ULL,
3683
      0ULL
3684
    },
3685
    {
3686
      0x00000000510c0000ULL,
3687
      0x283e000000000000ULL,
3688
      0x0000000060040000ULL,
3689
      0x3402000000000000ULL,
3690
      -1ULL
3691
    }
3692
#endif
3693
  },
3694
  { "shl2add", TILEGX_OPC_SHL2ADD, 0xf, 3, TREG_ZERO, 1,
3695 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3696 148 khays
#ifndef DISASM_ONLY
3697
    {
3698
      0xc00000007ffc0000ULL,
3699
      0xfffe000000000000ULL,
3700
      0x00000000780c0000ULL,
3701
      0x3c06000000000000ULL,
3702
      0ULL
3703
    },
3704
    {
3705
      0x0000000051180000ULL,
3706
      0x2844000000000000ULL,
3707
      0x0000000030040000ULL,
3708
      0x1c02000000000000ULL,
3709
      -1ULL
3710
    }
3711
#endif
3712
  },
3713
  { "shl2addx", TILEGX_OPC_SHL2ADDX, 0xf, 3, TREG_ZERO, 1,
3714 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3715 148 khays
#ifndef DISASM_ONLY
3716
    {
3717
      0xc00000007ffc0000ULL,
3718
      0xfffe000000000000ULL,
3719
      0x00000000780c0000ULL,
3720
      0x3c06000000000000ULL,
3721
      0ULL
3722
    },
3723
    {
3724
      0x0000000051140000ULL,
3725
      0x2842000000000000ULL,
3726
      0x0000000060080000ULL,
3727
      0x3404000000000000ULL,
3728
      -1ULL
3729
    }
3730
#endif
3731
  },
3732
  { "shl3add", TILEGX_OPC_SHL3ADD, 0xf, 3, TREG_ZERO, 1,
3733 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3734 148 khays
#ifndef DISASM_ONLY
3735
    {
3736
      0xc00000007ffc0000ULL,
3737
      0xfffe000000000000ULL,
3738
      0x00000000780c0000ULL,
3739
      0x3c06000000000000ULL,
3740
      0ULL
3741
    },
3742
    {
3743
      0x0000000051200000ULL,
3744
      0x2848000000000000ULL,
3745
      0x0000000030080000ULL,
3746
      0x1c04000000000000ULL,
3747
      -1ULL
3748
    }
3749
#endif
3750
  },
3751
  { "shl3addx", TILEGX_OPC_SHL3ADDX, 0xf, 3, TREG_ZERO, 1,
3752 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3753 148 khays
#ifndef DISASM_ONLY
3754
    {
3755
      0xc00000007ffc0000ULL,
3756
      0xfffe000000000000ULL,
3757
      0x00000000780c0000ULL,
3758
      0x3c06000000000000ULL,
3759
      0ULL
3760
    },
3761
    {
3762
      0x00000000511c0000ULL,
3763
      0x2846000000000000ULL,
3764
      0x00000000600c0000ULL,
3765
      0x3406000000000000ULL,
3766
      -1ULL
3767
    }
3768
#endif
3769
  },
3770
  { "shli", TILEGX_OPC_SHLI, 0xf, 3, TREG_ZERO, 1,
3771 166 khays
    { { 8, 9, 29 }, { 6, 7, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
3772 148 khays
#ifndef DISASM_ONLY
3773
    {
3774
      0xc00000007ffc0000ULL,
3775
      0xfffe000000000000ULL,
3776
      0x00000000780c0000ULL,
3777
      0x3c06000000000000ULL,
3778
      0ULL
3779
    },
3780
    {
3781
      0x0000000060080000ULL,
3782
      0x3004000000000000ULL,
3783
      0x0000000078040000ULL,
3784
      0x3802000000000000ULL,
3785
      -1ULL
3786
    }
3787
#endif
3788
  },
3789
  { "shlx", TILEGX_OPC_SHLX, 0x3, 3, TREG_ZERO, 1,
3790 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
3791 148 khays
#ifndef DISASM_ONLY
3792
    {
3793
      0xc00000007ffc0000ULL,
3794
      0xfffe000000000000ULL,
3795
      0ULL,
3796
      0ULL,
3797
      0ULL
3798
    },
3799
    {
3800
      0x0000000051240000ULL,
3801
      0x284a000000000000ULL,
3802
      -1ULL,
3803
      -1ULL,
3804
      -1ULL
3805
    }
3806
#endif
3807
  },
3808
  { "shlxi", TILEGX_OPC_SHLXI, 0x3, 3, TREG_ZERO, 1,
3809 166 khays
    { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
3810 148 khays
#ifndef DISASM_ONLY
3811
    {
3812
      0xc00000007ffc0000ULL,
3813
      0xfffe000000000000ULL,
3814
      0ULL,
3815
      0ULL,
3816
      0ULL
3817
    },
3818
    {
3819
      0x00000000600c0000ULL,
3820
      0x3006000000000000ULL,
3821
      -1ULL,
3822
      -1ULL,
3823
      -1ULL
3824
    }
3825
#endif
3826
  },
3827
  { "shrs", TILEGX_OPC_SHRS, 0xf, 3, TREG_ZERO, 1,
3828 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3829 148 khays
#ifndef DISASM_ONLY
3830
    {
3831
      0xc00000007ffc0000ULL,
3832
      0xfffe000000000000ULL,
3833
      0x00000000780c0000ULL,
3834
      0x3c06000000000000ULL,
3835
      0ULL
3836
    },
3837
    {
3838
      0x00000000512c0000ULL,
3839
      0x284e000000000000ULL,
3840
      0x0000000058080000ULL,
3841
      0x3004000000000000ULL,
3842
      -1ULL
3843
    }
3844
#endif
3845
  },
3846
  { "shrsi", TILEGX_OPC_SHRSI, 0xf, 3, TREG_ZERO, 1,
3847 166 khays
    { { 8, 9, 29 }, { 6, 7, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
3848 148 khays
#ifndef DISASM_ONLY
3849
    {
3850
      0xc00000007ffc0000ULL,
3851
      0xfffe000000000000ULL,
3852
      0x00000000780c0000ULL,
3853
      0x3c06000000000000ULL,
3854
      0ULL
3855
    },
3856
    {
3857
      0x0000000060100000ULL,
3858
      0x3008000000000000ULL,
3859
      0x0000000078080000ULL,
3860
      0x3804000000000000ULL,
3861
      -1ULL
3862
    }
3863
#endif
3864
  },
3865
  { "shru", TILEGX_OPC_SHRU, 0xf, 3, TREG_ZERO, 1,
3866 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3867 148 khays
#ifndef DISASM_ONLY
3868
    {
3869
      0xc00000007ffc0000ULL,
3870
      0xfffe000000000000ULL,
3871
      0x00000000780c0000ULL,
3872
      0x3c06000000000000ULL,
3873
      0ULL
3874
    },
3875
    {
3876
      0x0000000051340000ULL,
3877
      0x2852000000000000ULL,
3878
      0x00000000580c0000ULL,
3879
      0x3006000000000000ULL,
3880
      -1ULL
3881
    }
3882
#endif
3883
  },
3884
  { "shrui", TILEGX_OPC_SHRUI, 0xf, 3, TREG_ZERO, 1,
3885 166 khays
    { { 8, 9, 29 }, { 6, 7, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
3886 148 khays
#ifndef DISASM_ONLY
3887
    {
3888
      0xc00000007ffc0000ULL,
3889
      0xfffe000000000000ULL,
3890
      0x00000000780c0000ULL,
3891
      0x3c06000000000000ULL,
3892
      0ULL
3893
    },
3894
    {
3895
      0x0000000060140000ULL,
3896
      0x300a000000000000ULL,
3897
      0x00000000780c0000ULL,
3898
      0x3806000000000000ULL,
3899
      -1ULL
3900
    }
3901
#endif
3902
  },
3903
  { "shrux", TILEGX_OPC_SHRUX, 0x3, 3, TREG_ZERO, 1,
3904 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
3905 148 khays
#ifndef DISASM_ONLY
3906
    {
3907
      0xc00000007ffc0000ULL,
3908
      0xfffe000000000000ULL,
3909
      0ULL,
3910
      0ULL,
3911
      0ULL
3912
    },
3913
    {
3914
      0x0000000051300000ULL,
3915
      0x2850000000000000ULL,
3916
      -1ULL,
3917
      -1ULL,
3918
      -1ULL
3919
    }
3920
#endif
3921
  },
3922
  { "shruxi", TILEGX_OPC_SHRUXI, 0x3, 3, TREG_ZERO, 1,
3923 166 khays
    { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
3924 148 khays
#ifndef DISASM_ONLY
3925
    {
3926
      0xc00000007ffc0000ULL,
3927
      0xfffe000000000000ULL,
3928
      0ULL,
3929
      0ULL,
3930
      0ULL
3931
    },
3932
    {
3933
      0x0000000060180000ULL,
3934
      0x300c000000000000ULL,
3935
      -1ULL,
3936
      -1ULL,
3937
      -1ULL
3938
    }
3939
#endif
3940
  },
3941
  { "shufflebytes", TILEGX_OPC_SHUFFLEBYTES, 0x1, 3, TREG_ZERO, 1,
3942 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3943 148 khays
#ifndef DISASM_ONLY
3944
    {
3945
      0xc00000007ffc0000ULL,
3946
      0ULL,
3947
      0ULL,
3948
      0ULL,
3949
      0ULL
3950
    },
3951
    {
3952
      0x0000000051380000ULL,
3953
      -1ULL,
3954
      -1ULL,
3955
      -1ULL,
3956
      -1ULL
3957
    }
3958
#endif
3959
  },
3960
  { "st", TILEGX_OPC_ST, 0x12, 2, TREG_ZERO, 1,
3961 166 khays
    { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 14, 33 } },
3962 148 khays
#ifndef DISASM_ONLY
3963
    {
3964
      0ULL,
3965
      0xfffe000000000000ULL,
3966
      0ULL,
3967
      0ULL,
3968
      0xc200000004000000ULL
3969
    },
3970
    {
3971
      -1ULL,
3972
      0x2862000000000000ULL,
3973
      -1ULL,
3974
      -1ULL,
3975
      0xc200000004000000ULL
3976
    }
3977
#endif
3978
  },
3979
  { "st1", TILEGX_OPC_ST1, 0x12, 2, TREG_ZERO, 1,
3980 166 khays
    { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 14, 33 } },
3981 148 khays
#ifndef DISASM_ONLY
3982
    {
3983
      0ULL,
3984
      0xfffe000000000000ULL,
3985
      0ULL,
3986
      0ULL,
3987
      0xc200000004000000ULL
3988
    },
3989
    {
3990
      -1ULL,
3991
      0x2854000000000000ULL,
3992
      -1ULL,
3993
      -1ULL,
3994
      0xc000000000000000ULL
3995
    }
3996
#endif
3997
  },
3998
  { "st1_add", TILEGX_OPC_ST1_ADD, 0x2, 3, TREG_ZERO, 1,
3999
    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
4000
#ifndef DISASM_ONLY
4001
    {
4002
      0ULL,
4003
      0xfff8000000000000ULL,
4004
      0ULL,
4005
      0ULL,
4006
      0ULL
4007
    },
4008
    {
4009
      -1ULL,
4010
      0x18c8000000000000ULL,
4011
      -1ULL,
4012
      -1ULL,
4013
      -1ULL
4014
    }
4015
#endif
4016
  },
4017
  { "st2", TILEGX_OPC_ST2, 0x12, 2, TREG_ZERO, 1,
4018 166 khays
    { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 14, 33 } },
4019 148 khays
#ifndef DISASM_ONLY
4020
    {
4021
      0ULL,
4022
      0xfffe000000000000ULL,
4023
      0ULL,
4024
      0ULL,
4025
      0xc200000004000000ULL
4026
    },
4027
    {
4028
      -1ULL,
4029
      0x2856000000000000ULL,
4030
      -1ULL,
4031
      -1ULL,
4032
      0xc000000004000000ULL
4033
    }
4034
#endif
4035
  },
4036
  { "st2_add", TILEGX_OPC_ST2_ADD, 0x2, 3, TREG_ZERO, 1,
4037
    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
4038
#ifndef DISASM_ONLY
4039
    {
4040
      0ULL,
4041
      0xfff8000000000000ULL,
4042
      0ULL,
4043
      0ULL,
4044
      0ULL
4045
    },
4046
    {
4047
      -1ULL,
4048
      0x18d0000000000000ULL,
4049
      -1ULL,
4050
      -1ULL,
4051
      -1ULL
4052
    }
4053
#endif
4054
  },
4055
  { "st4", TILEGX_OPC_ST4, 0x12, 2, TREG_ZERO, 1,
4056 166 khays
    { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 14, 33 } },
4057 148 khays
#ifndef DISASM_ONLY
4058
    {
4059
      0ULL,
4060
      0xfffe000000000000ULL,
4061
      0ULL,
4062
      0ULL,
4063
      0xc200000004000000ULL
4064
    },
4065
    {
4066
      -1ULL,
4067
      0x2858000000000000ULL,
4068
      -1ULL,
4069
      -1ULL,
4070
      0xc200000000000000ULL
4071
    }
4072
#endif
4073
  },
4074
  { "st4_add", TILEGX_OPC_ST4_ADD, 0x2, 3, TREG_ZERO, 1,
4075
    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
4076
#ifndef DISASM_ONLY
4077
    {
4078
      0ULL,
4079
      0xfff8000000000000ULL,
4080
      0ULL,
4081
      0ULL,
4082
      0ULL
4083
    },
4084
    {
4085
      -1ULL,
4086
      0x18d8000000000000ULL,
4087
      -1ULL,
4088
      -1ULL,
4089
      -1ULL
4090
    }
4091
#endif
4092
  },
4093
  { "st_add", TILEGX_OPC_ST_ADD, 0x2, 3, TREG_ZERO, 1,
4094
    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
4095
#ifndef DISASM_ONLY
4096
    {
4097
      0ULL,
4098
      0xfff8000000000000ULL,
4099
      0ULL,
4100
      0ULL,
4101
      0ULL
4102
    },
4103
    {
4104
      -1ULL,
4105
      0x1900000000000000ULL,
4106
      -1ULL,
4107
      -1ULL,
4108
      -1ULL
4109
    }
4110
#endif
4111
  },
4112
  { "stnt", TILEGX_OPC_STNT, 0x2, 2, TREG_ZERO, 1,
4113 166 khays
    { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 0, } },
4114 148 khays
#ifndef DISASM_ONLY
4115
    {
4116
      0ULL,
4117
      0xfffe000000000000ULL,
4118
      0ULL,
4119
      0ULL,
4120
      0ULL
4121
    },
4122
    {
4123
      -1ULL,
4124
      0x2860000000000000ULL,
4125
      -1ULL,
4126
      -1ULL,
4127
      -1ULL
4128
    }
4129
#endif
4130
  },
4131
  { "stnt1", TILEGX_OPC_STNT1, 0x2, 2, TREG_ZERO, 1,
4132 166 khays
    { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 0, } },
4133 148 khays
#ifndef DISASM_ONLY
4134
    {
4135
      0ULL,
4136
      0xfffe000000000000ULL,
4137
      0ULL,
4138
      0ULL,
4139
      0ULL
4140
    },
4141
    {
4142
      -1ULL,
4143
      0x285a000000000000ULL,
4144
      -1ULL,
4145
      -1ULL,
4146
      -1ULL
4147
    }
4148
#endif
4149
  },
4150
  { "stnt1_add", TILEGX_OPC_STNT1_ADD, 0x2, 3, TREG_ZERO, 1,
4151
    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
4152
#ifndef DISASM_ONLY
4153
    {
4154
      0ULL,
4155
      0xfff8000000000000ULL,
4156
      0ULL,
4157
      0ULL,
4158
      0ULL
4159
    },
4160
    {
4161
      -1ULL,
4162
      0x18e0000000000000ULL,
4163
      -1ULL,
4164
      -1ULL,
4165
      -1ULL
4166
    }
4167
#endif
4168
  },
4169
  { "stnt2", TILEGX_OPC_STNT2, 0x2, 2, TREG_ZERO, 1,
4170 166 khays
    { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 0, } },
4171 148 khays
#ifndef DISASM_ONLY
4172
    {
4173
      0ULL,
4174
      0xfffe000000000000ULL,
4175
      0ULL,
4176
      0ULL,
4177
      0ULL
4178
    },
4179
    {
4180
      -1ULL,
4181
      0x285c000000000000ULL,
4182
      -1ULL,
4183
      -1ULL,
4184
      -1ULL
4185
    }
4186
#endif
4187
  },
4188
  { "stnt2_add", TILEGX_OPC_STNT2_ADD, 0x2, 3, TREG_ZERO, 1,
4189
    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
4190
#ifndef DISASM_ONLY
4191
    {
4192
      0ULL,
4193
      0xfff8000000000000ULL,
4194
      0ULL,
4195
      0ULL,
4196
      0ULL
4197
    },
4198
    {
4199
      -1ULL,
4200
      0x18e8000000000000ULL,
4201
      -1ULL,
4202
      -1ULL,
4203
      -1ULL
4204
    }
4205
#endif
4206
  },
4207
  { "stnt4", TILEGX_OPC_STNT4, 0x2, 2, TREG_ZERO, 1,
4208 166 khays
    { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 0, } },
4209 148 khays
#ifndef DISASM_ONLY
4210
    {
4211
      0ULL,
4212
      0xfffe000000000000ULL,
4213
      0ULL,
4214
      0ULL,
4215
      0ULL
4216
    },
4217
    {
4218
      -1ULL,
4219
      0x285e000000000000ULL,
4220
      -1ULL,
4221
      -1ULL,
4222
      -1ULL
4223
    }
4224
#endif
4225
  },
4226
  { "stnt4_add", TILEGX_OPC_STNT4_ADD, 0x2, 3, TREG_ZERO, 1,
4227
    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
4228
#ifndef DISASM_ONLY
4229
    {
4230
      0ULL,
4231
      0xfff8000000000000ULL,
4232
      0ULL,
4233
      0ULL,
4234
      0ULL
4235
    },
4236
    {
4237
      -1ULL,
4238
      0x18f0000000000000ULL,
4239
      -1ULL,
4240
      -1ULL,
4241
      -1ULL
4242
    }
4243
#endif
4244
  },
4245
  { "stnt_add", TILEGX_OPC_STNT_ADD, 0x2, 3, TREG_ZERO, 1,
4246
    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
4247
#ifndef DISASM_ONLY
4248
    {
4249
      0ULL,
4250
      0xfff8000000000000ULL,
4251
      0ULL,
4252
      0ULL,
4253
      0ULL
4254
    },
4255
    {
4256
      -1ULL,
4257
      0x18f8000000000000ULL,
4258
      -1ULL,
4259
      -1ULL,
4260
      -1ULL
4261
    }
4262
#endif
4263
  },
4264
  { "sub", TILEGX_OPC_SUB, 0xf, 3, TREG_ZERO, 1,
4265 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
4266 148 khays
#ifndef DISASM_ONLY
4267
    {
4268
      0xc00000007ffc0000ULL,
4269
      0xfffe000000000000ULL,
4270
      0x00000000780c0000ULL,
4271
      0x3c06000000000000ULL,
4272
      0ULL
4273
    },
4274
    {
4275
      0x0000000051440000ULL,
4276
      0x2868000000000000ULL,
4277
      0x00000000280c0000ULL,
4278
      0x1806000000000000ULL,
4279
      -1ULL
4280
    }
4281
#endif
4282
  },
4283
  { "subx", TILEGX_OPC_SUBX, 0xf, 3, TREG_ZERO, 1,
4284 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
4285 148 khays
#ifndef DISASM_ONLY
4286
    {
4287
      0xc00000007ffc0000ULL,
4288
      0xfffe000000000000ULL,
4289
      0x00000000780c0000ULL,
4290
      0x3c06000000000000ULL,
4291
      0ULL
4292
    },
4293
    {
4294
      0x0000000051400000ULL,
4295
      0x2866000000000000ULL,
4296
      0x0000000028080000ULL,
4297
      0x1804000000000000ULL,
4298
      -1ULL
4299
    }
4300
#endif
4301
  },
4302
  { "subxsc", TILEGX_OPC_SUBXSC, 0x3, 3, TREG_ZERO, 1,
4303 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4304 148 khays
#ifndef DISASM_ONLY
4305
    {
4306
      0xc00000007ffc0000ULL,
4307
      0xfffe000000000000ULL,
4308
      0ULL,
4309
      0ULL,
4310
      0ULL
4311
    },
4312
    {
4313
      0x00000000513c0000ULL,
4314
      0x2864000000000000ULL,
4315
      -1ULL,
4316
      -1ULL,
4317
      -1ULL
4318
    }
4319
#endif
4320
  },
4321
  { "swint0", TILEGX_OPC_SWINT0, 0x2, 0, TREG_ZERO, 0,
4322
    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
4323
#ifndef DISASM_ONLY
4324
    {
4325
      0ULL,
4326
      0xfffff80000000000ULL,
4327
      0ULL,
4328
      0ULL,
4329
      0ULL
4330
    },
4331
    {
4332
      -1ULL,
4333
      0x286b100000000000ULL,
4334
      -1ULL,
4335
      -1ULL,
4336
      -1ULL
4337
    }
4338
#endif
4339
  },
4340
  { "swint1", TILEGX_OPC_SWINT1, 0x2, 0, TREG_ZERO, 0,
4341
    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
4342
#ifndef DISASM_ONLY
4343
    {
4344
      0ULL,
4345
      0xfffff80000000000ULL,
4346
      0ULL,
4347
      0ULL,
4348
      0ULL
4349
    },
4350
    {
4351
      -1ULL,
4352
      0x286b180000000000ULL,
4353
      -1ULL,
4354
      -1ULL,
4355
      -1ULL
4356
    }
4357
#endif
4358
  },
4359
  { "swint2", TILEGX_OPC_SWINT2, 0x2, 0, TREG_ZERO, 0,
4360
    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
4361
#ifndef DISASM_ONLY
4362
    {
4363
      0ULL,
4364
      0xfffff80000000000ULL,
4365
      0ULL,
4366
      0ULL,
4367
      0ULL
4368
    },
4369
    {
4370
      -1ULL,
4371
      0x286b200000000000ULL,
4372
      -1ULL,
4373
      -1ULL,
4374
      -1ULL
4375
    }
4376
#endif
4377
  },
4378
  { "swint3", TILEGX_OPC_SWINT3, 0x2, 0, TREG_ZERO, 0,
4379
    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
4380
#ifndef DISASM_ONLY
4381
    {
4382
      0ULL,
4383
      0xfffff80000000000ULL,
4384
      0ULL,
4385
      0ULL,
4386
      0ULL
4387
    },
4388
    {
4389
      -1ULL,
4390
      0x286b280000000000ULL,
4391
      -1ULL,
4392
      -1ULL,
4393
      -1ULL
4394
    }
4395
#endif
4396
  },
4397
  { "tblidxb0", TILEGX_OPC_TBLIDXB0, 0x5, 2, TREG_ZERO, 1,
4398 166 khays
    { { 23, 9 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
4399 148 khays
#ifndef DISASM_ONLY
4400
    {
4401
      0xc00000007ffff000ULL,
4402
      0ULL,
4403
      0x00000000780ff000ULL,
4404
      0ULL,
4405
      0ULL
4406
    },
4407
    {
4408
      0x0000000051489000ULL,
4409
      -1ULL,
4410
      0x00000000300c9000ULL,
4411
      -1ULL,
4412
      -1ULL
4413
    }
4414
#endif
4415
  },
4416
  { "tblidxb1", TILEGX_OPC_TBLIDXB1, 0x5, 2, TREG_ZERO, 1,
4417 166 khays
    { { 23, 9 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
4418 148 khays
#ifndef DISASM_ONLY
4419
    {
4420
      0xc00000007ffff000ULL,
4421
      0ULL,
4422
      0x00000000780ff000ULL,
4423
      0ULL,
4424
      0ULL
4425
    },
4426
    {
4427
      0x000000005148a000ULL,
4428
      -1ULL,
4429
      0x00000000300ca000ULL,
4430
      -1ULL,
4431
      -1ULL
4432
    }
4433
#endif
4434
  },
4435
  { "tblidxb2", TILEGX_OPC_TBLIDXB2, 0x5, 2, TREG_ZERO, 1,
4436 166 khays
    { { 23, 9 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
4437 148 khays
#ifndef DISASM_ONLY
4438
    {
4439
      0xc00000007ffff000ULL,
4440
      0ULL,
4441
      0x00000000780ff000ULL,
4442
      0ULL,
4443
      0ULL
4444
    },
4445
    {
4446
      0x000000005148b000ULL,
4447
      -1ULL,
4448
      0x00000000300cb000ULL,
4449
      -1ULL,
4450
      -1ULL
4451
    }
4452
#endif
4453
  },
4454
  { "tblidxb3", TILEGX_OPC_TBLIDXB3, 0x5, 2, TREG_ZERO, 1,
4455 166 khays
    { { 23, 9 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
4456 148 khays
#ifndef DISASM_ONLY
4457
    {
4458
      0xc00000007ffff000ULL,
4459
      0ULL,
4460
      0x00000000780ff000ULL,
4461
      0ULL,
4462
      0ULL
4463
    },
4464
    {
4465
      0x000000005148c000ULL,
4466
      -1ULL,
4467
      0x00000000300cc000ULL,
4468
      -1ULL,
4469
      -1ULL
4470
    }
4471
#endif
4472
  },
4473
  { "v1add", TILEGX_OPC_V1ADD, 0x3, 3, TREG_ZERO, 1,
4474 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4475 148 khays
#ifndef DISASM_ONLY
4476
    {
4477
      0xc00000007ffc0000ULL,
4478
      0xfffe000000000000ULL,
4479
      0ULL,
4480
      0ULL,
4481
      0ULL
4482
    },
4483
    {
4484
      0x0000000051500000ULL,
4485
      0x286e000000000000ULL,
4486
      -1ULL,
4487
      -1ULL,
4488
      -1ULL
4489
    }
4490
#endif
4491
  },
4492
  { "v1addi", TILEGX_OPC_V1ADDI, 0x3, 3, TREG_ZERO, 1,
4493 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
4494 148 khays
#ifndef DISASM_ONLY
4495
    {
4496
      0xc00000007ff00000ULL,
4497
      0xfff8000000000000ULL,
4498
      0ULL,
4499
      0ULL,
4500
      0ULL
4501
    },
4502
    {
4503
      0x0000000040800000ULL,
4504
      0x1908000000000000ULL,
4505
      -1ULL,
4506
      -1ULL,
4507
      -1ULL
4508
    }
4509
#endif
4510
  },
4511
  { "v1adduc", TILEGX_OPC_V1ADDUC, 0x3, 3, TREG_ZERO, 1,
4512 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4513 148 khays
#ifndef DISASM_ONLY
4514
    {
4515
      0xc00000007ffc0000ULL,
4516
      0xfffe000000000000ULL,
4517
      0ULL,
4518
      0ULL,
4519
      0ULL
4520
    },
4521
    {
4522
      0x00000000514c0000ULL,
4523
      0x286c000000000000ULL,
4524
      -1ULL,
4525
      -1ULL,
4526
      -1ULL
4527
    }
4528
#endif
4529
  },
4530
  { "v1adiffu", TILEGX_OPC_V1ADIFFU, 0x1, 3, TREG_ZERO, 1,
4531 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4532 148 khays
#ifndef DISASM_ONLY
4533
    {
4534
      0xc00000007ffc0000ULL,
4535
      0ULL,
4536
      0ULL,
4537
      0ULL,
4538
      0ULL
4539
    },
4540
    {
4541
      0x0000000051540000ULL,
4542
      -1ULL,
4543
      -1ULL,
4544
      -1ULL,
4545
      -1ULL
4546
    }
4547
#endif
4548
  },
4549
  { "v1avgu", TILEGX_OPC_V1AVGU, 0x1, 3, TREG_ZERO, 1,
4550 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4551 148 khays
#ifndef DISASM_ONLY
4552
    {
4553
      0xc00000007ffc0000ULL,
4554
      0ULL,
4555
      0ULL,
4556
      0ULL,
4557
      0ULL
4558
    },
4559
    {
4560
      0x0000000051580000ULL,
4561
      -1ULL,
4562
      -1ULL,
4563
      -1ULL,
4564
      -1ULL
4565
    }
4566
#endif
4567
  },
4568
  { "v1cmpeq", TILEGX_OPC_V1CMPEQ, 0x3, 3, TREG_ZERO, 1,
4569 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4570 148 khays
#ifndef DISASM_ONLY
4571
    {
4572
      0xc00000007ffc0000ULL,
4573
      0xfffe000000000000ULL,
4574
      0ULL,
4575
      0ULL,
4576
      0ULL
4577
    },
4578
    {
4579
      0x00000000515c0000ULL,
4580
      0x2870000000000000ULL,
4581
      -1ULL,
4582
      -1ULL,
4583
      -1ULL
4584
    }
4585
#endif
4586
  },
4587
  { "v1cmpeqi", TILEGX_OPC_V1CMPEQI, 0x3, 3, TREG_ZERO, 1,
4588 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
4589 148 khays
#ifndef DISASM_ONLY
4590
    {
4591
      0xc00000007ff00000ULL,
4592
      0xfff8000000000000ULL,
4593
      0ULL,
4594
      0ULL,
4595
      0ULL
4596
    },
4597
    {
4598
      0x0000000040900000ULL,
4599
      0x1910000000000000ULL,
4600
      -1ULL,
4601
      -1ULL,
4602
      -1ULL
4603
    }
4604
#endif
4605
  },
4606
  { "v1cmples", TILEGX_OPC_V1CMPLES, 0x3, 3, TREG_ZERO, 1,
4607 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4608 148 khays
#ifndef DISASM_ONLY
4609
    {
4610
      0xc00000007ffc0000ULL,
4611
      0xfffe000000000000ULL,
4612
      0ULL,
4613
      0ULL,
4614
      0ULL
4615
    },
4616
    {
4617
      0x0000000051600000ULL,
4618
      0x2872000000000000ULL,
4619
      -1ULL,
4620
      -1ULL,
4621
      -1ULL
4622
    }
4623
#endif
4624
  },
4625
  { "v1cmpleu", TILEGX_OPC_V1CMPLEU, 0x3, 3, TREG_ZERO, 1,
4626 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4627 148 khays
#ifndef DISASM_ONLY
4628
    {
4629
      0xc00000007ffc0000ULL,
4630
      0xfffe000000000000ULL,
4631
      0ULL,
4632
      0ULL,
4633
      0ULL
4634
    },
4635
    {
4636
      0x0000000051640000ULL,
4637
      0x2874000000000000ULL,
4638
      -1ULL,
4639
      -1ULL,
4640
      -1ULL
4641
    }
4642
#endif
4643
  },
4644
  { "v1cmplts", TILEGX_OPC_V1CMPLTS, 0x3, 3, TREG_ZERO, 1,
4645 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4646 148 khays
#ifndef DISASM_ONLY
4647
    {
4648
      0xc00000007ffc0000ULL,
4649
      0xfffe000000000000ULL,
4650
      0ULL,
4651
      0ULL,
4652
      0ULL
4653
    },
4654
    {
4655
      0x0000000051680000ULL,
4656
      0x2876000000000000ULL,
4657
      -1ULL,
4658
      -1ULL,
4659
      -1ULL
4660
    }
4661
#endif
4662
  },
4663
  { "v1cmpltsi", TILEGX_OPC_V1CMPLTSI, 0x3, 3, TREG_ZERO, 1,
4664 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
4665 148 khays
#ifndef DISASM_ONLY
4666
    {
4667
      0xc00000007ff00000ULL,
4668
      0xfff8000000000000ULL,
4669
      0ULL,
4670
      0ULL,
4671
      0ULL
4672
    },
4673
    {
4674
      0x0000000040a00000ULL,
4675
      0x1918000000000000ULL,
4676
      -1ULL,
4677
      -1ULL,
4678
      -1ULL
4679
    }
4680
#endif
4681
  },
4682
  { "v1cmpltu", TILEGX_OPC_V1CMPLTU, 0x3, 3, TREG_ZERO, 1,
4683 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4684 148 khays
#ifndef DISASM_ONLY
4685
    {
4686
      0xc00000007ffc0000ULL,
4687
      0xfffe000000000000ULL,
4688
      0ULL,
4689
      0ULL,
4690
      0ULL
4691
    },
4692
    {
4693
      0x00000000516c0000ULL,
4694
      0x2878000000000000ULL,
4695
      -1ULL,
4696
      -1ULL,
4697
      -1ULL
4698
    }
4699
#endif
4700
  },
4701
  { "v1cmpltui", TILEGX_OPC_V1CMPLTUI, 0x3, 3, TREG_ZERO, 1,
4702 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
4703 148 khays
#ifndef DISASM_ONLY
4704
    {
4705
      0xc00000007ff00000ULL,
4706
      0xfff8000000000000ULL,
4707
      0ULL,
4708
      0ULL,
4709
      0ULL
4710
    },
4711
    {
4712
      0x0000000040b00000ULL,
4713
      0x1920000000000000ULL,
4714
      -1ULL,
4715
      -1ULL,
4716
      -1ULL
4717
    }
4718
#endif
4719
  },
4720
  { "v1cmpne", TILEGX_OPC_V1CMPNE, 0x3, 3, TREG_ZERO, 1,
4721 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4722 148 khays
#ifndef DISASM_ONLY
4723
    {
4724
      0xc00000007ffc0000ULL,
4725
      0xfffe000000000000ULL,
4726
      0ULL,
4727
      0ULL,
4728
      0ULL
4729
    },
4730
    {
4731
      0x0000000051700000ULL,
4732
      0x287a000000000000ULL,
4733
      -1ULL,
4734
      -1ULL,
4735
      -1ULL
4736
    }
4737
#endif
4738
  },
4739
  { "v1ddotpu", TILEGX_OPC_V1DDOTPU, 0x1, 3, TREG_ZERO, 1,
4740 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4741 148 khays
#ifndef DISASM_ONLY
4742
    {
4743
      0xc00000007ffc0000ULL,
4744
      0ULL,
4745
      0ULL,
4746
      0ULL,
4747
      0ULL
4748
    },
4749
    {
4750
      0x0000000052880000ULL,
4751
      -1ULL,
4752
      -1ULL,
4753
      -1ULL,
4754
      -1ULL
4755
    }
4756
#endif
4757
  },
4758
  { "v1ddotpua", TILEGX_OPC_V1DDOTPUA, 0x1, 3, TREG_ZERO, 1,
4759 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4760 148 khays
#ifndef DISASM_ONLY
4761
    {
4762
      0xc00000007ffc0000ULL,
4763
      0ULL,
4764
      0ULL,
4765
      0ULL,
4766
      0ULL
4767
    },
4768
    {
4769
      0x0000000052840000ULL,
4770
      -1ULL,
4771
      -1ULL,
4772
      -1ULL,
4773
      -1ULL
4774
    }
4775
#endif
4776
  },
4777
  { "v1ddotpus", TILEGX_OPC_V1DDOTPUS, 0x1, 3, TREG_ZERO, 1,
4778 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4779 148 khays
#ifndef DISASM_ONLY
4780
    {
4781
      0xc00000007ffc0000ULL,
4782
      0ULL,
4783
      0ULL,
4784
      0ULL,
4785
      0ULL
4786
    },
4787
    {
4788
      0x0000000051780000ULL,
4789
      -1ULL,
4790
      -1ULL,
4791
      -1ULL,
4792
      -1ULL
4793
    }
4794
#endif
4795
  },
4796
  { "v1ddotpusa", TILEGX_OPC_V1DDOTPUSA, 0x1, 3, TREG_ZERO, 1,
4797 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4798 148 khays
#ifndef DISASM_ONLY
4799
    {
4800
      0xc00000007ffc0000ULL,
4801
      0ULL,
4802
      0ULL,
4803
      0ULL,
4804
      0ULL
4805
    },
4806
    {
4807
      0x0000000051740000ULL,
4808
      -1ULL,
4809
      -1ULL,
4810
      -1ULL,
4811
      -1ULL
4812
    }
4813
#endif
4814
  },
4815
  { "v1dotp", TILEGX_OPC_V1DOTP, 0x1, 3, TREG_ZERO, 1,
4816 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4817 148 khays
#ifndef DISASM_ONLY
4818
    {
4819
      0xc00000007ffc0000ULL,
4820
      0ULL,
4821
      0ULL,
4822
      0ULL,
4823
      0ULL
4824
    },
4825
    {
4826
      0x0000000051880000ULL,
4827
      -1ULL,
4828
      -1ULL,
4829
      -1ULL,
4830
      -1ULL
4831
    }
4832
#endif
4833
  },
4834
  { "v1dotpa", TILEGX_OPC_V1DOTPA, 0x1, 3, TREG_ZERO, 1,
4835 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4836 148 khays
#ifndef DISASM_ONLY
4837
    {
4838
      0xc00000007ffc0000ULL,
4839
      0ULL,
4840
      0ULL,
4841
      0ULL,
4842
      0ULL
4843
    },
4844
    {
4845
      0x00000000517c0000ULL,
4846
      -1ULL,
4847
      -1ULL,
4848
      -1ULL,
4849
      -1ULL
4850
    }
4851
#endif
4852
  },
4853
  { "v1dotpu", TILEGX_OPC_V1DOTPU, 0x1, 3, TREG_ZERO, 1,
4854 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4855 148 khays
#ifndef DISASM_ONLY
4856
    {
4857
      0xc00000007ffc0000ULL,
4858
      0ULL,
4859
      0ULL,
4860
      0ULL,
4861
      0ULL
4862
    },
4863
    {
4864
      0x0000000052900000ULL,
4865
      -1ULL,
4866
      -1ULL,
4867
      -1ULL,
4868
      -1ULL
4869
    }
4870
#endif
4871
  },
4872
  { "v1dotpua", TILEGX_OPC_V1DOTPUA, 0x1, 3, TREG_ZERO, 1,
4873 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4874 148 khays
#ifndef DISASM_ONLY
4875
    {
4876
      0xc00000007ffc0000ULL,
4877
      0ULL,
4878
      0ULL,
4879
      0ULL,
4880
      0ULL
4881
    },
4882
    {
4883
      0x00000000528c0000ULL,
4884
      -1ULL,
4885
      -1ULL,
4886
      -1ULL,
4887
      -1ULL
4888
    }
4889
#endif
4890
  },
4891
  { "v1dotpus", TILEGX_OPC_V1DOTPUS, 0x1, 3, TREG_ZERO, 1,
4892 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4893 148 khays
#ifndef DISASM_ONLY
4894
    {
4895
      0xc00000007ffc0000ULL,
4896
      0ULL,
4897
      0ULL,
4898
      0ULL,
4899
      0ULL
4900
    },
4901
    {
4902
      0x0000000051840000ULL,
4903
      -1ULL,
4904
      -1ULL,
4905
      -1ULL,
4906
      -1ULL
4907
    }
4908
#endif
4909
  },
4910
  { "v1dotpusa", TILEGX_OPC_V1DOTPUSA, 0x1, 3, TREG_ZERO, 1,
4911 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4912 148 khays
#ifndef DISASM_ONLY
4913
    {
4914
      0xc00000007ffc0000ULL,
4915
      0ULL,
4916
      0ULL,
4917
      0ULL,
4918
      0ULL
4919
    },
4920
    {
4921
      0x0000000051800000ULL,
4922
      -1ULL,
4923
      -1ULL,
4924
      -1ULL,
4925
      -1ULL
4926
    }
4927
#endif
4928
  },
4929
  { "v1int_h", TILEGX_OPC_V1INT_H, 0x3, 3, TREG_ZERO, 1,
4930 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4931 148 khays
#ifndef DISASM_ONLY
4932
    {
4933
      0xc00000007ffc0000ULL,
4934
      0xfffe000000000000ULL,
4935
      0ULL,
4936
      0ULL,
4937
      0ULL
4938
    },
4939
    {
4940
      0x00000000518c0000ULL,
4941
      0x287c000000000000ULL,
4942
      -1ULL,
4943
      -1ULL,
4944
      -1ULL
4945
    }
4946
#endif
4947
  },
4948
  { "v1int_l", TILEGX_OPC_V1INT_L, 0x3, 3, TREG_ZERO, 1,
4949 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4950 148 khays
#ifndef DISASM_ONLY
4951
    {
4952
      0xc00000007ffc0000ULL,
4953
      0xfffe000000000000ULL,
4954
      0ULL,
4955
      0ULL,
4956
      0ULL
4957
    },
4958
    {
4959
      0x0000000051900000ULL,
4960
      0x287e000000000000ULL,
4961
      -1ULL,
4962
      -1ULL,
4963
      -1ULL
4964
    }
4965
#endif
4966
  },
4967
  { "v1maxu", TILEGX_OPC_V1MAXU, 0x3, 3, TREG_ZERO, 1,
4968 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4969 148 khays
#ifndef DISASM_ONLY
4970
    {
4971
      0xc00000007ffc0000ULL,
4972
      0xfffe000000000000ULL,
4973
      0ULL,
4974
      0ULL,
4975
      0ULL
4976
    },
4977
    {
4978
      0x0000000051940000ULL,
4979
      0x2880000000000000ULL,
4980
      -1ULL,
4981
      -1ULL,
4982
      -1ULL
4983
    }
4984
#endif
4985
  },
4986
  { "v1maxui", TILEGX_OPC_V1MAXUI, 0x3, 3, TREG_ZERO, 1,
4987 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
4988 148 khays
#ifndef DISASM_ONLY
4989
    {
4990
      0xc00000007ff00000ULL,
4991
      0xfff8000000000000ULL,
4992
      0ULL,
4993
      0ULL,
4994
      0ULL
4995
    },
4996
    {
4997
      0x0000000040c00000ULL,
4998
      0x1928000000000000ULL,
4999
      -1ULL,
5000
      -1ULL,
5001
      -1ULL
5002
    }
5003
#endif
5004
  },
5005
  { "v1minu", TILEGX_OPC_V1MINU, 0x3, 3, TREG_ZERO, 1,
5006 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5007 148 khays
#ifndef DISASM_ONLY
5008
    {
5009
      0xc00000007ffc0000ULL,
5010
      0xfffe000000000000ULL,
5011
      0ULL,
5012
      0ULL,
5013
      0ULL
5014
    },
5015
    {
5016
      0x0000000051980000ULL,
5017
      0x2882000000000000ULL,
5018
      -1ULL,
5019
      -1ULL,
5020
      -1ULL
5021
    }
5022
#endif
5023
  },
5024
  { "v1minui", TILEGX_OPC_V1MINUI, 0x3, 3, TREG_ZERO, 1,
5025 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
5026 148 khays
#ifndef DISASM_ONLY
5027
    {
5028
      0xc00000007ff00000ULL,
5029
      0xfff8000000000000ULL,
5030
      0ULL,
5031
      0ULL,
5032
      0ULL
5033
    },
5034
    {
5035
      0x0000000040d00000ULL,
5036
      0x1930000000000000ULL,
5037
      -1ULL,
5038
      -1ULL,
5039
      -1ULL
5040
    }
5041
#endif
5042
  },
5043
  { "v1mnz", TILEGX_OPC_V1MNZ, 0x3, 3, TREG_ZERO, 1,
5044 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5045 148 khays
#ifndef DISASM_ONLY
5046
    {
5047
      0xc00000007ffc0000ULL,
5048
      0xfffe000000000000ULL,
5049
      0ULL,
5050
      0ULL,
5051
      0ULL
5052
    },
5053
    {
5054
      0x00000000519c0000ULL,
5055
      0x2884000000000000ULL,
5056
      -1ULL,
5057
      -1ULL,
5058
      -1ULL
5059
    }
5060
#endif
5061
  },
5062
  { "v1multu", TILEGX_OPC_V1MULTU, 0x1, 3, TREG_ZERO, 1,
5063 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5064 148 khays
#ifndef DISASM_ONLY
5065
    {
5066
      0xc00000007ffc0000ULL,
5067
      0ULL,
5068
      0ULL,
5069
      0ULL,
5070
      0ULL
5071
    },
5072
    {
5073
      0x0000000051a00000ULL,
5074
      -1ULL,
5075
      -1ULL,
5076
      -1ULL,
5077
      -1ULL
5078
    }
5079
#endif
5080
  },
5081
  { "v1mulu", TILEGX_OPC_V1MULU, 0x1, 3, TREG_ZERO, 1,
5082 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5083 148 khays
#ifndef DISASM_ONLY
5084
    {
5085
      0xc00000007ffc0000ULL,
5086
      0ULL,
5087
      0ULL,
5088
      0ULL,
5089
      0ULL
5090
    },
5091
    {
5092
      0x0000000051a80000ULL,
5093
      -1ULL,
5094
      -1ULL,
5095
      -1ULL,
5096
      -1ULL
5097
    }
5098
#endif
5099
  },
5100
  { "v1mulus", TILEGX_OPC_V1MULUS, 0x1, 3, TREG_ZERO, 1,
5101 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5102 148 khays
#ifndef DISASM_ONLY
5103
    {
5104
      0xc00000007ffc0000ULL,
5105
      0ULL,
5106
      0ULL,
5107
      0ULL,
5108
      0ULL
5109
    },
5110
    {
5111
      0x0000000051a40000ULL,
5112
      -1ULL,
5113
      -1ULL,
5114
      -1ULL,
5115
      -1ULL
5116
    }
5117
#endif
5118
  },
5119
  { "v1mz", TILEGX_OPC_V1MZ, 0x3, 3, TREG_ZERO, 1,
5120 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5121 148 khays
#ifndef DISASM_ONLY
5122
    {
5123
      0xc00000007ffc0000ULL,
5124
      0xfffe000000000000ULL,
5125
      0ULL,
5126
      0ULL,
5127
      0ULL
5128
    },
5129
    {
5130
      0x0000000051ac0000ULL,
5131
      0x2886000000000000ULL,
5132
      -1ULL,
5133
      -1ULL,
5134
      -1ULL
5135
    }
5136
#endif
5137
  },
5138
  { "v1sadau", TILEGX_OPC_V1SADAU, 0x1, 3, TREG_ZERO, 1,
5139 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5140 148 khays
#ifndef DISASM_ONLY
5141
    {
5142
      0xc00000007ffc0000ULL,
5143
      0ULL,
5144
      0ULL,
5145
      0ULL,
5146
      0ULL
5147
    },
5148
    {
5149
      0x0000000051b00000ULL,
5150
      -1ULL,
5151
      -1ULL,
5152
      -1ULL,
5153
      -1ULL
5154
    }
5155
#endif
5156
  },
5157
  { "v1sadu", TILEGX_OPC_V1SADU, 0x1, 3, TREG_ZERO, 1,
5158 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5159 148 khays
#ifndef DISASM_ONLY
5160
    {
5161
      0xc00000007ffc0000ULL,
5162
      0ULL,
5163
      0ULL,
5164
      0ULL,
5165
      0ULL
5166
    },
5167
    {
5168
      0x0000000051b40000ULL,
5169
      -1ULL,
5170
      -1ULL,
5171
      -1ULL,
5172
      -1ULL
5173
    }
5174
#endif
5175
  },
5176
  { "v1shl", TILEGX_OPC_V1SHL, 0x3, 3, TREG_ZERO, 1,
5177 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5178 148 khays
#ifndef DISASM_ONLY
5179
    {
5180
      0xc00000007ffc0000ULL,
5181
      0xfffe000000000000ULL,
5182
      0ULL,
5183
      0ULL,
5184
      0ULL
5185
    },
5186
    {
5187
      0x0000000051b80000ULL,
5188
      0x2888000000000000ULL,
5189
      -1ULL,
5190
      -1ULL,
5191
      -1ULL
5192
    }
5193
#endif
5194
  },
5195
  { "v1shli", TILEGX_OPC_V1SHLI, 0x3, 3, TREG_ZERO, 1,
5196 166 khays
    { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
5197 148 khays
#ifndef DISASM_ONLY
5198
    {
5199
      0xc00000007ffc0000ULL,
5200
      0xfffe000000000000ULL,
5201
      0ULL,
5202
      0ULL,
5203
      0ULL
5204
    },
5205
    {
5206
      0x00000000601c0000ULL,
5207
      0x300e000000000000ULL,
5208
      -1ULL,
5209
      -1ULL,
5210
      -1ULL
5211
    }
5212
#endif
5213
  },
5214
  { "v1shrs", TILEGX_OPC_V1SHRS, 0x3, 3, TREG_ZERO, 1,
5215 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5216 148 khays
#ifndef DISASM_ONLY
5217
    {
5218
      0xc00000007ffc0000ULL,
5219
      0xfffe000000000000ULL,
5220
      0ULL,
5221
      0ULL,
5222
      0ULL
5223
    },
5224
    {
5225
      0x0000000051bc0000ULL,
5226
      0x288a000000000000ULL,
5227
      -1ULL,
5228
      -1ULL,
5229
      -1ULL
5230
    }
5231
#endif
5232
  },
5233
  { "v1shrsi", TILEGX_OPC_V1SHRSI, 0x3, 3, TREG_ZERO, 1,
5234 166 khays
    { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
5235 148 khays
#ifndef DISASM_ONLY
5236
    {
5237
      0xc00000007ffc0000ULL,
5238
      0xfffe000000000000ULL,
5239
      0ULL,
5240
      0ULL,
5241
      0ULL
5242
    },
5243
    {
5244
      0x0000000060200000ULL,
5245
      0x3010000000000000ULL,
5246
      -1ULL,
5247
      -1ULL,
5248
      -1ULL
5249
    }
5250
#endif
5251
  },
5252
  { "v1shru", TILEGX_OPC_V1SHRU, 0x3, 3, TREG_ZERO, 1,
5253 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5254 148 khays
#ifndef DISASM_ONLY
5255
    {
5256
      0xc00000007ffc0000ULL,
5257
      0xfffe000000000000ULL,
5258
      0ULL,
5259
      0ULL,
5260
      0ULL
5261
    },
5262
    {
5263
      0x0000000051c00000ULL,
5264
      0x288c000000000000ULL,
5265
      -1ULL,
5266
      -1ULL,
5267
      -1ULL
5268
    }
5269
#endif
5270
  },
5271
  { "v1shrui", TILEGX_OPC_V1SHRUI, 0x3, 3, TREG_ZERO, 1,
5272 166 khays
    { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
5273 148 khays
#ifndef DISASM_ONLY
5274
    {
5275
      0xc00000007ffc0000ULL,
5276
      0xfffe000000000000ULL,
5277
      0ULL,
5278
      0ULL,
5279
      0ULL
5280
    },
5281
    {
5282
      0x0000000060240000ULL,
5283
      0x3012000000000000ULL,
5284
      -1ULL,
5285
      -1ULL,
5286
      -1ULL
5287
    }
5288
#endif
5289
  },
5290
  { "v1sub", TILEGX_OPC_V1SUB, 0x3, 3, TREG_ZERO, 1,
5291 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5292 148 khays
#ifndef DISASM_ONLY
5293
    {
5294
      0xc00000007ffc0000ULL,
5295
      0xfffe000000000000ULL,
5296
      0ULL,
5297
      0ULL,
5298
      0ULL
5299
    },
5300
    {
5301
      0x0000000051c80000ULL,
5302
      0x2890000000000000ULL,
5303
      -1ULL,
5304
      -1ULL,
5305
      -1ULL
5306
    }
5307
#endif
5308
  },
5309
  { "v1subuc", TILEGX_OPC_V1SUBUC, 0x3, 3, TREG_ZERO, 1,
5310 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5311 148 khays
#ifndef DISASM_ONLY
5312
    {
5313
      0xc00000007ffc0000ULL,
5314
      0xfffe000000000000ULL,
5315
      0ULL,
5316
      0ULL,
5317
      0ULL
5318
    },
5319
    {
5320
      0x0000000051c40000ULL,
5321
      0x288e000000000000ULL,
5322
      -1ULL,
5323
      -1ULL,
5324
      -1ULL
5325
    }
5326
#endif
5327
  },
5328
  { "v2add", TILEGX_OPC_V2ADD, 0x3, 3, TREG_ZERO, 1,
5329 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5330 148 khays
#ifndef DISASM_ONLY
5331
    {
5332
      0xc00000007ffc0000ULL,
5333
      0xfffe000000000000ULL,
5334
      0ULL,
5335
      0ULL,
5336
      0ULL
5337
    },
5338
    {
5339
      0x0000000051d00000ULL,
5340
      0x2894000000000000ULL,
5341
      -1ULL,
5342
      -1ULL,
5343
      -1ULL
5344
    }
5345
#endif
5346
  },
5347
  { "v2addi", TILEGX_OPC_V2ADDI, 0x3, 3, TREG_ZERO, 1,
5348 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
5349 148 khays
#ifndef DISASM_ONLY
5350
    {
5351
      0xc00000007ff00000ULL,
5352
      0xfff8000000000000ULL,
5353
      0ULL,
5354
      0ULL,
5355
      0ULL
5356
    },
5357
    {
5358
      0x0000000040e00000ULL,
5359
      0x1938000000000000ULL,
5360
      -1ULL,
5361
      -1ULL,
5362
      -1ULL
5363
    }
5364
#endif
5365
  },
5366
  { "v2addsc", TILEGX_OPC_V2ADDSC, 0x3, 3, TREG_ZERO, 1,
5367 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5368 148 khays
#ifndef DISASM_ONLY
5369
    {
5370
      0xc00000007ffc0000ULL,
5371
      0xfffe000000000000ULL,
5372
      0ULL,
5373
      0ULL,
5374
      0ULL
5375
    },
5376
    {
5377
      0x0000000051cc0000ULL,
5378
      0x2892000000000000ULL,
5379
      -1ULL,
5380
      -1ULL,
5381
      -1ULL
5382
    }
5383
#endif
5384
  },
5385
  { "v2adiffs", TILEGX_OPC_V2ADIFFS, 0x1, 3, TREG_ZERO, 1,
5386 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5387 148 khays
#ifndef DISASM_ONLY
5388
    {
5389
      0xc00000007ffc0000ULL,
5390
      0ULL,
5391
      0ULL,
5392
      0ULL,
5393
      0ULL
5394
    },
5395
    {
5396
      0x0000000051d40000ULL,
5397
      -1ULL,
5398
      -1ULL,
5399
      -1ULL,
5400
      -1ULL
5401
    }
5402
#endif
5403
  },
5404
  { "v2avgs", TILEGX_OPC_V2AVGS, 0x1, 3, TREG_ZERO, 1,
5405 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5406 148 khays
#ifndef DISASM_ONLY
5407
    {
5408
      0xc00000007ffc0000ULL,
5409
      0ULL,
5410
      0ULL,
5411
      0ULL,
5412
      0ULL
5413
    },
5414
    {
5415
      0x0000000051d80000ULL,
5416
      -1ULL,
5417
      -1ULL,
5418
      -1ULL,
5419
      -1ULL
5420
    }
5421
#endif
5422
  },
5423
  { "v2cmpeq", TILEGX_OPC_V2CMPEQ, 0x3, 3, TREG_ZERO, 1,
5424 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5425 148 khays
#ifndef DISASM_ONLY
5426
    {
5427
      0xc00000007ffc0000ULL,
5428
      0xfffe000000000000ULL,
5429
      0ULL,
5430
      0ULL,
5431
      0ULL
5432
    },
5433
    {
5434
      0x0000000051dc0000ULL,
5435
      0x2896000000000000ULL,
5436
      -1ULL,
5437
      -1ULL,
5438
      -1ULL
5439
    }
5440
#endif
5441
  },
5442
  { "v2cmpeqi", TILEGX_OPC_V2CMPEQI, 0x3, 3, TREG_ZERO, 1,
5443 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
5444 148 khays
#ifndef DISASM_ONLY
5445
    {
5446
      0xc00000007ff00000ULL,
5447
      0xfff8000000000000ULL,
5448
      0ULL,
5449
      0ULL,
5450
      0ULL
5451
    },
5452
    {
5453
      0x0000000040f00000ULL,
5454
      0x1940000000000000ULL,
5455
      -1ULL,
5456
      -1ULL,
5457
      -1ULL
5458
    }
5459
#endif
5460
  },
5461
  { "v2cmples", TILEGX_OPC_V2CMPLES, 0x3, 3, TREG_ZERO, 1,
5462 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5463 148 khays
#ifndef DISASM_ONLY
5464
    {
5465
      0xc00000007ffc0000ULL,
5466
      0xfffe000000000000ULL,
5467
      0ULL,
5468
      0ULL,
5469
      0ULL
5470
    },
5471
    {
5472
      0x0000000051e00000ULL,
5473
      0x2898000000000000ULL,
5474
      -1ULL,
5475
      -1ULL,
5476
      -1ULL
5477
    }
5478
#endif
5479
  },
5480
  { "v2cmpleu", TILEGX_OPC_V2CMPLEU, 0x3, 3, TREG_ZERO, 1,
5481 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5482 148 khays
#ifndef DISASM_ONLY
5483
    {
5484
      0xc00000007ffc0000ULL,
5485
      0xfffe000000000000ULL,
5486
      0ULL,
5487
      0ULL,
5488
      0ULL
5489
    },
5490
    {
5491
      0x0000000051e40000ULL,
5492
      0x289a000000000000ULL,
5493
      -1ULL,
5494
      -1ULL,
5495
      -1ULL
5496
    }
5497
#endif
5498
  },
5499
  { "v2cmplts", TILEGX_OPC_V2CMPLTS, 0x3, 3, TREG_ZERO, 1,
5500 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5501 148 khays
#ifndef DISASM_ONLY
5502
    {
5503
      0xc00000007ffc0000ULL,
5504
      0xfffe000000000000ULL,
5505
      0ULL,
5506
      0ULL,
5507
      0ULL
5508
    },
5509
    {
5510
      0x0000000051e80000ULL,
5511
      0x289c000000000000ULL,
5512
      -1ULL,
5513
      -1ULL,
5514
      -1ULL
5515
    }
5516
#endif
5517
  },
5518
  { "v2cmpltsi", TILEGX_OPC_V2CMPLTSI, 0x3, 3, TREG_ZERO, 1,
5519 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
5520 148 khays
#ifndef DISASM_ONLY
5521
    {
5522
      0xc00000007ff00000ULL,
5523
      0xfff8000000000000ULL,
5524
      0ULL,
5525
      0ULL,
5526
      0ULL
5527
    },
5528
    {
5529
      0x0000000041000000ULL,
5530
      0x1948000000000000ULL,
5531
      -1ULL,
5532
      -1ULL,
5533
      -1ULL
5534
    }
5535
#endif
5536
  },
5537
  { "v2cmpltu", TILEGX_OPC_V2CMPLTU, 0x3, 3, TREG_ZERO, 1,
5538 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5539 148 khays
#ifndef DISASM_ONLY
5540
    {
5541
      0xc00000007ffc0000ULL,
5542
      0xfffe000000000000ULL,
5543
      0ULL,
5544
      0ULL,
5545
      0ULL
5546
    },
5547
    {
5548
      0x0000000051ec0000ULL,
5549
      0x289e000000000000ULL,
5550
      -1ULL,
5551
      -1ULL,
5552
      -1ULL
5553
    }
5554
#endif
5555
  },
5556
  { "v2cmpltui", TILEGX_OPC_V2CMPLTUI, 0x3, 3, TREG_ZERO, 1,
5557 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
5558 148 khays
#ifndef DISASM_ONLY
5559
    {
5560
      0xc00000007ff00000ULL,
5561
      0xfff8000000000000ULL,
5562
      0ULL,
5563
      0ULL,
5564
      0ULL
5565
    },
5566
    {
5567
      0x0000000041100000ULL,
5568
      0x1950000000000000ULL,
5569
      -1ULL,
5570
      -1ULL,
5571
      -1ULL
5572
    }
5573
#endif
5574
  },
5575
  { "v2cmpne", TILEGX_OPC_V2CMPNE, 0x3, 3, TREG_ZERO, 1,
5576 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5577 148 khays
#ifndef DISASM_ONLY
5578
    {
5579
      0xc00000007ffc0000ULL,
5580
      0xfffe000000000000ULL,
5581
      0ULL,
5582
      0ULL,
5583
      0ULL
5584
    },
5585
    {
5586
      0x0000000051f00000ULL,
5587
      0x28a0000000000000ULL,
5588
      -1ULL,
5589
      -1ULL,
5590
      -1ULL
5591
    }
5592
#endif
5593
  },
5594
  { "v2dotp", TILEGX_OPC_V2DOTP, 0x1, 3, TREG_ZERO, 1,
5595 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5596 148 khays
#ifndef DISASM_ONLY
5597
    {
5598
      0xc00000007ffc0000ULL,
5599
      0ULL,
5600
      0ULL,
5601
      0ULL,
5602
      0ULL
5603
    },
5604
    {
5605
      0x0000000051f80000ULL,
5606
      -1ULL,
5607
      -1ULL,
5608
      -1ULL,
5609
      -1ULL
5610
    }
5611
#endif
5612
  },
5613
  { "v2dotpa", TILEGX_OPC_V2DOTPA, 0x1, 3, TREG_ZERO, 1,
5614 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5615 148 khays
#ifndef DISASM_ONLY
5616
    {
5617
      0xc00000007ffc0000ULL,
5618
      0ULL,
5619
      0ULL,
5620
      0ULL,
5621
      0ULL
5622
    },
5623
    {
5624
      0x0000000051f40000ULL,
5625
      -1ULL,
5626
      -1ULL,
5627
      -1ULL,
5628
      -1ULL
5629
    }
5630
#endif
5631
  },
5632
  { "v2int_h", TILEGX_OPC_V2INT_H, 0x3, 3, TREG_ZERO, 1,
5633 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5634 148 khays
#ifndef DISASM_ONLY
5635
    {
5636
      0xc00000007ffc0000ULL,
5637
      0xfffe000000000000ULL,
5638
      0ULL,
5639
      0ULL,
5640
      0ULL
5641
    },
5642
    {
5643
      0x0000000051fc0000ULL,
5644
      0x28a2000000000000ULL,
5645
      -1ULL,
5646
      -1ULL,
5647
      -1ULL
5648
    }
5649
#endif
5650
  },
5651
  { "v2int_l", TILEGX_OPC_V2INT_L, 0x3, 3, TREG_ZERO, 1,
5652 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5653 148 khays
#ifndef DISASM_ONLY
5654
    {
5655
      0xc00000007ffc0000ULL,
5656
      0xfffe000000000000ULL,
5657
      0ULL,
5658
      0ULL,
5659
      0ULL
5660
    },
5661
    {
5662
      0x0000000052000000ULL,
5663
      0x28a4000000000000ULL,
5664
      -1ULL,
5665
      -1ULL,
5666
      -1ULL
5667
    }
5668
#endif
5669
  },
5670
  { "v2maxs", TILEGX_OPC_V2MAXS, 0x3, 3, TREG_ZERO, 1,
5671 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5672 148 khays
#ifndef DISASM_ONLY
5673
    {
5674
      0xc00000007ffc0000ULL,
5675
      0xfffe000000000000ULL,
5676
      0ULL,
5677
      0ULL,
5678
      0ULL
5679
    },
5680
    {
5681
      0x0000000052040000ULL,
5682
      0x28a6000000000000ULL,
5683
      -1ULL,
5684
      -1ULL,
5685
      -1ULL
5686
    }
5687
#endif
5688
  },
5689
  { "v2maxsi", TILEGX_OPC_V2MAXSI, 0x3, 3, TREG_ZERO, 1,
5690 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
5691 148 khays
#ifndef DISASM_ONLY
5692
    {
5693
      0xc00000007ff00000ULL,
5694
      0xfff8000000000000ULL,
5695
      0ULL,
5696
      0ULL,
5697
      0ULL
5698
    },
5699
    {
5700
      0x0000000041200000ULL,
5701
      0x1958000000000000ULL,
5702
      -1ULL,
5703
      -1ULL,
5704
      -1ULL
5705
    }
5706
#endif
5707
  },
5708
  { "v2mins", TILEGX_OPC_V2MINS, 0x3, 3, TREG_ZERO, 1,
5709 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5710 148 khays
#ifndef DISASM_ONLY
5711
    {
5712
      0xc00000007ffc0000ULL,
5713
      0xfffe000000000000ULL,
5714
      0ULL,
5715
      0ULL,
5716
      0ULL
5717
    },
5718
    {
5719
      0x0000000052080000ULL,
5720
      0x28a8000000000000ULL,
5721
      -1ULL,
5722
      -1ULL,
5723
      -1ULL
5724
    }
5725
#endif
5726
  },
5727
  { "v2minsi", TILEGX_OPC_V2MINSI, 0x3, 3, TREG_ZERO, 1,
5728 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
5729 148 khays
#ifndef DISASM_ONLY
5730
    {
5731
      0xc00000007ff00000ULL,
5732
      0xfff8000000000000ULL,
5733
      0ULL,
5734
      0ULL,
5735
      0ULL
5736
    },
5737
    {
5738
      0x0000000041300000ULL,
5739
      0x1960000000000000ULL,
5740
      -1ULL,
5741
      -1ULL,
5742
      -1ULL
5743
    }
5744
#endif
5745
  },
5746
  { "v2mnz", TILEGX_OPC_V2MNZ, 0x3, 3, TREG_ZERO, 1,
5747 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5748 148 khays
#ifndef DISASM_ONLY
5749
    {
5750
      0xc00000007ffc0000ULL,
5751
      0xfffe000000000000ULL,
5752
      0ULL,
5753
      0ULL,
5754
      0ULL
5755
    },
5756
    {
5757
      0x00000000520c0000ULL,
5758
      0x28aa000000000000ULL,
5759
      -1ULL,
5760
      -1ULL,
5761
      -1ULL
5762
    }
5763
#endif
5764
  },
5765
  { "v2mulfsc", TILEGX_OPC_V2MULFSC, 0x1, 3, TREG_ZERO, 1,
5766 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5767 148 khays
#ifndef DISASM_ONLY
5768
    {
5769
      0xc00000007ffc0000ULL,
5770
      0ULL,
5771
      0ULL,
5772
      0ULL,
5773
      0ULL
5774
    },
5775
    {
5776
      0x0000000052100000ULL,
5777
      -1ULL,
5778
      -1ULL,
5779
      -1ULL,
5780
      -1ULL
5781
    }
5782
#endif
5783
  },
5784
  { "v2muls", TILEGX_OPC_V2MULS, 0x1, 3, TREG_ZERO, 1,
5785 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5786 148 khays
#ifndef DISASM_ONLY
5787
    {
5788
      0xc00000007ffc0000ULL,
5789
      0ULL,
5790
      0ULL,
5791
      0ULL,
5792
      0ULL
5793
    },
5794
    {
5795
      0x0000000052140000ULL,
5796
      -1ULL,
5797
      -1ULL,
5798
      -1ULL,
5799
      -1ULL
5800
    }
5801
#endif
5802
  },
5803
  { "v2mults", TILEGX_OPC_V2MULTS, 0x1, 3, TREG_ZERO, 1,
5804 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5805 148 khays
#ifndef DISASM_ONLY
5806
    {
5807
      0xc00000007ffc0000ULL,
5808
      0ULL,
5809
      0ULL,
5810
      0ULL,
5811
      0ULL
5812
    },
5813
    {
5814
      0x0000000052180000ULL,
5815
      -1ULL,
5816
      -1ULL,
5817
      -1ULL,
5818
      -1ULL
5819
    }
5820
#endif
5821
  },
5822
  { "v2mz", TILEGX_OPC_V2MZ, 0x3, 3, TREG_ZERO, 1,
5823 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5824 148 khays
#ifndef DISASM_ONLY
5825
    {
5826
      0xc00000007ffc0000ULL,
5827
      0xfffe000000000000ULL,
5828
      0ULL,
5829
      0ULL,
5830
      0ULL
5831
    },
5832
    {
5833
      0x00000000521c0000ULL,
5834
      0x28ac000000000000ULL,
5835
      -1ULL,
5836
      -1ULL,
5837
      -1ULL
5838
    }
5839
#endif
5840
  },
5841
  { "v2packh", TILEGX_OPC_V2PACKH, 0x3, 3, TREG_ZERO, 1,
5842 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5843 148 khays
#ifndef DISASM_ONLY
5844
    {
5845
      0xc00000007ffc0000ULL,
5846
      0xfffe000000000000ULL,
5847
      0ULL,
5848
      0ULL,
5849
      0ULL
5850
    },
5851
    {
5852
      0x0000000052200000ULL,
5853
      0x28ae000000000000ULL,
5854
      -1ULL,
5855
      -1ULL,
5856
      -1ULL
5857
    }
5858
#endif
5859
  },
5860
  { "v2packl", TILEGX_OPC_V2PACKL, 0x3, 3, TREG_ZERO, 1,
5861 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5862 148 khays
#ifndef DISASM_ONLY
5863
    {
5864
      0xc00000007ffc0000ULL,
5865
      0xfffe000000000000ULL,
5866
      0ULL,
5867
      0ULL,
5868
      0ULL
5869
    },
5870
    {
5871
      0x0000000052240000ULL,
5872
      0x28b0000000000000ULL,
5873
      -1ULL,
5874
      -1ULL,
5875
      -1ULL
5876
    }
5877
#endif
5878
  },
5879
  { "v2packuc", TILEGX_OPC_V2PACKUC, 0x3, 3, TREG_ZERO, 1,
5880 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5881 148 khays
#ifndef DISASM_ONLY
5882
    {
5883
      0xc00000007ffc0000ULL,
5884
      0xfffe000000000000ULL,
5885
      0ULL,
5886
      0ULL,
5887
      0ULL
5888
    },
5889
    {
5890
      0x0000000052280000ULL,
5891
      0x28b2000000000000ULL,
5892
      -1ULL,
5893
      -1ULL,
5894
      -1ULL
5895
    }
5896
#endif
5897
  },
5898
  { "v2sadas", TILEGX_OPC_V2SADAS, 0x1, 3, TREG_ZERO, 1,
5899 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5900 148 khays
#ifndef DISASM_ONLY
5901
    {
5902
      0xc00000007ffc0000ULL,
5903
      0ULL,
5904
      0ULL,
5905
      0ULL,
5906
      0ULL
5907
    },
5908
    {
5909
      0x00000000522c0000ULL,
5910
      -1ULL,
5911
      -1ULL,
5912
      -1ULL,
5913
      -1ULL
5914
    }
5915
#endif
5916
  },
5917
  { "v2sadau", TILEGX_OPC_V2SADAU, 0x1, 3, TREG_ZERO, 1,
5918 166 khays
    { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5919 148 khays
#ifndef DISASM_ONLY
5920
    {
5921
      0xc00000007ffc0000ULL,
5922
      0ULL,
5923
      0ULL,
5924
      0ULL,
5925
      0ULL
5926
    },
5927
    {
5928
      0x0000000052300000ULL,
5929
      -1ULL,
5930
      -1ULL,
5931
      -1ULL,
5932
      -1ULL
5933
    }
5934
#endif
5935
  },
5936
  { "v2sads", TILEGX_OPC_V2SADS, 0x1, 3, TREG_ZERO, 1,
5937 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5938 148 khays
#ifndef DISASM_ONLY
5939
    {
5940
      0xc00000007ffc0000ULL,
5941
      0ULL,
5942
      0ULL,
5943
      0ULL,
5944
      0ULL
5945
    },
5946
    {
5947
      0x0000000052340000ULL,
5948
      -1ULL,
5949
      -1ULL,
5950
      -1ULL,
5951
      -1ULL
5952
    }
5953
#endif
5954
  },
5955
  { "v2sadu", TILEGX_OPC_V2SADU, 0x1, 3, TREG_ZERO, 1,
5956 166 khays
    { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5957 148 khays
#ifndef DISASM_ONLY
5958
    {
5959
      0xc00000007ffc0000ULL,
5960
      0ULL,
5961
      0ULL,
5962
      0ULL,
5963
      0ULL
5964
    },
5965
    {
5966
      0x0000000052380000ULL,
5967
      -1ULL,
5968
      -1ULL,
5969
      -1ULL,
5970
      -1ULL
5971
    }
5972
#endif
5973
  },
5974
  { "v2shl", TILEGX_OPC_V2SHL, 0x3, 3, TREG_ZERO, 1,
5975 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5976 148 khays
#ifndef DISASM_ONLY
5977
    {
5978
      0xc00000007ffc0000ULL,
5979
      0xfffe000000000000ULL,
5980
      0ULL,
5981
      0ULL,
5982
      0ULL
5983
    },
5984
    {
5985
      0x0000000052400000ULL,
5986
      0x28b6000000000000ULL,
5987
      -1ULL,
5988
      -1ULL,
5989
      -1ULL
5990
    }
5991
#endif
5992
  },
5993
  { "v2shli", TILEGX_OPC_V2SHLI, 0x3, 3, TREG_ZERO, 1,
5994 166 khays
    { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
5995 148 khays
#ifndef DISASM_ONLY
5996
    {
5997
      0xc00000007ffc0000ULL,
5998
      0xfffe000000000000ULL,
5999
      0ULL,
6000
      0ULL,
6001
      0ULL
6002
    },
6003
    {
6004
      0x0000000060280000ULL,
6005
      0x3014000000000000ULL,
6006
      -1ULL,
6007
      -1ULL,
6008
      -1ULL
6009
    }
6010
#endif
6011
  },
6012
  { "v2shlsc", TILEGX_OPC_V2SHLSC, 0x3, 3, TREG_ZERO, 1,
6013 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6014 148 khays
#ifndef DISASM_ONLY
6015
    {
6016
      0xc00000007ffc0000ULL,
6017
      0xfffe000000000000ULL,
6018
      0ULL,
6019
      0ULL,
6020
      0ULL
6021
    },
6022
    {
6023
      0x00000000523c0000ULL,
6024
      0x28b4000000000000ULL,
6025
      -1ULL,
6026
      -1ULL,
6027
      -1ULL
6028
    }
6029
#endif
6030
  },
6031
  { "v2shrs", TILEGX_OPC_V2SHRS, 0x3, 3, TREG_ZERO, 1,
6032 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6033 148 khays
#ifndef DISASM_ONLY
6034
    {
6035
      0xc00000007ffc0000ULL,
6036
      0xfffe000000000000ULL,
6037
      0ULL,
6038
      0ULL,
6039
      0ULL
6040
    },
6041
    {
6042
      0x0000000052440000ULL,
6043
      0x28b8000000000000ULL,
6044
      -1ULL,
6045
      -1ULL,
6046
      -1ULL
6047
    }
6048
#endif
6049
  },
6050
  { "v2shrsi", TILEGX_OPC_V2SHRSI, 0x3, 3, TREG_ZERO, 1,
6051 166 khays
    { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
6052 148 khays
#ifndef DISASM_ONLY
6053
    {
6054
      0xc00000007ffc0000ULL,
6055
      0xfffe000000000000ULL,
6056
      0ULL,
6057
      0ULL,
6058
      0ULL
6059
    },
6060
    {
6061
      0x00000000602c0000ULL,
6062
      0x3016000000000000ULL,
6063
      -1ULL,
6064
      -1ULL,
6065
      -1ULL
6066
    }
6067
#endif
6068
  },
6069
  { "v2shru", TILEGX_OPC_V2SHRU, 0x3, 3, TREG_ZERO, 1,
6070 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6071 148 khays
#ifndef DISASM_ONLY
6072
    {
6073
      0xc00000007ffc0000ULL,
6074
      0xfffe000000000000ULL,
6075
      0ULL,
6076
      0ULL,
6077
      0ULL
6078
    },
6079
    {
6080
      0x0000000052480000ULL,
6081
      0x28ba000000000000ULL,
6082
      -1ULL,
6083
      -1ULL,
6084
      -1ULL
6085
    }
6086
#endif
6087
  },
6088
  { "v2shrui", TILEGX_OPC_V2SHRUI, 0x3, 3, TREG_ZERO, 1,
6089 166 khays
    { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
6090 148 khays
#ifndef DISASM_ONLY
6091
    {
6092
      0xc00000007ffc0000ULL,
6093
      0xfffe000000000000ULL,
6094
      0ULL,
6095
      0ULL,
6096
      0ULL
6097
    },
6098
    {
6099
      0x0000000060300000ULL,
6100
      0x3018000000000000ULL,
6101
      -1ULL,
6102
      -1ULL,
6103
      -1ULL
6104
    }
6105
#endif
6106
  },
6107
  { "v2sub", TILEGX_OPC_V2SUB, 0x3, 3, TREG_ZERO, 1,
6108 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6109 148 khays
#ifndef DISASM_ONLY
6110
    {
6111
      0xc00000007ffc0000ULL,
6112
      0xfffe000000000000ULL,
6113
      0ULL,
6114
      0ULL,
6115
      0ULL
6116
    },
6117
    {
6118
      0x0000000052500000ULL,
6119
      0x28be000000000000ULL,
6120
      -1ULL,
6121
      -1ULL,
6122
      -1ULL
6123
    }
6124
#endif
6125
  },
6126
  { "v2subsc", TILEGX_OPC_V2SUBSC, 0x3, 3, TREG_ZERO, 1,
6127 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6128 148 khays
#ifndef DISASM_ONLY
6129
    {
6130
      0xc00000007ffc0000ULL,
6131
      0xfffe000000000000ULL,
6132
      0ULL,
6133
      0ULL,
6134
      0ULL
6135
    },
6136
    {
6137
      0x00000000524c0000ULL,
6138
      0x28bc000000000000ULL,
6139
      -1ULL,
6140
      -1ULL,
6141
      -1ULL
6142
    }
6143
#endif
6144
  },
6145
  { "v4add", TILEGX_OPC_V4ADD, 0x3, 3, TREG_ZERO, 1,
6146 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6147 148 khays
#ifndef DISASM_ONLY
6148
    {
6149
      0xc00000007ffc0000ULL,
6150
      0xfffe000000000000ULL,
6151
      0ULL,
6152
      0ULL,
6153
      0ULL
6154
    },
6155
    {
6156
      0x0000000052580000ULL,
6157
      0x28c2000000000000ULL,
6158
      -1ULL,
6159
      -1ULL,
6160
      -1ULL
6161
    }
6162
#endif
6163
  },
6164
  { "v4addsc", TILEGX_OPC_V4ADDSC, 0x3, 3, TREG_ZERO, 1,
6165 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6166 148 khays
#ifndef DISASM_ONLY
6167
    {
6168
      0xc00000007ffc0000ULL,
6169
      0xfffe000000000000ULL,
6170
      0ULL,
6171
      0ULL,
6172
      0ULL
6173
    },
6174
    {
6175
      0x0000000052540000ULL,
6176
      0x28c0000000000000ULL,
6177
      -1ULL,
6178
      -1ULL,
6179
      -1ULL
6180
    }
6181
#endif
6182
  },
6183
  { "v4int_h", TILEGX_OPC_V4INT_H, 0x3, 3, TREG_ZERO, 1,
6184 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6185 148 khays
#ifndef DISASM_ONLY
6186
    {
6187
      0xc00000007ffc0000ULL,
6188
      0xfffe000000000000ULL,
6189
      0ULL,
6190
      0ULL,
6191
      0ULL
6192
    },
6193
    {
6194
      0x00000000525c0000ULL,
6195
      0x28c4000000000000ULL,
6196
      -1ULL,
6197
      -1ULL,
6198
      -1ULL
6199
    }
6200
#endif
6201
  },
6202
  { "v4int_l", TILEGX_OPC_V4INT_L, 0x3, 3, TREG_ZERO, 1,
6203 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6204 148 khays
#ifndef DISASM_ONLY
6205
    {
6206
      0xc00000007ffc0000ULL,
6207
      0xfffe000000000000ULL,
6208
      0ULL,
6209
      0ULL,
6210
      0ULL
6211
    },
6212
    {
6213
      0x0000000052600000ULL,
6214
      0x28c6000000000000ULL,
6215
      -1ULL,
6216
      -1ULL,
6217
      -1ULL
6218
    }
6219
#endif
6220
  },
6221
  { "v4packsc", TILEGX_OPC_V4PACKSC, 0x3, 3, TREG_ZERO, 1,
6222 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6223 148 khays
#ifndef DISASM_ONLY
6224
    {
6225
      0xc00000007ffc0000ULL,
6226
      0xfffe000000000000ULL,
6227
      0ULL,
6228
      0ULL,
6229
      0ULL
6230
    },
6231
    {
6232
      0x0000000052640000ULL,
6233
      0x28c8000000000000ULL,
6234
      -1ULL,
6235
      -1ULL,
6236
      -1ULL
6237
    }
6238
#endif
6239
  },
6240
  { "v4shl", TILEGX_OPC_V4SHL, 0x3, 3, TREG_ZERO, 1,
6241 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6242 148 khays
#ifndef DISASM_ONLY
6243
    {
6244
      0xc00000007ffc0000ULL,
6245
      0xfffe000000000000ULL,
6246
      0ULL,
6247
      0ULL,
6248
      0ULL
6249
    },
6250
    {
6251
      0x00000000526c0000ULL,
6252
      0x28cc000000000000ULL,
6253
      -1ULL,
6254
      -1ULL,
6255
      -1ULL
6256
    }
6257
#endif
6258
  },
6259
  { "v4shlsc", TILEGX_OPC_V4SHLSC, 0x3, 3, TREG_ZERO, 1,
6260 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6261 148 khays
#ifndef DISASM_ONLY
6262
    {
6263
      0xc00000007ffc0000ULL,
6264
      0xfffe000000000000ULL,
6265
      0ULL,
6266
      0ULL,
6267
      0ULL
6268
    },
6269
    {
6270
      0x0000000052680000ULL,
6271
      0x28ca000000000000ULL,
6272
      -1ULL,
6273
      -1ULL,
6274
      -1ULL
6275
    }
6276
#endif
6277
  },
6278
  { "v4shrs", TILEGX_OPC_V4SHRS, 0x3, 3, TREG_ZERO, 1,
6279 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6280 148 khays
#ifndef DISASM_ONLY
6281
    {
6282
      0xc00000007ffc0000ULL,
6283
      0xfffe000000000000ULL,
6284
      0ULL,
6285
      0ULL,
6286
      0ULL
6287
    },
6288
    {
6289
      0x0000000052700000ULL,
6290
      0x28ce000000000000ULL,
6291
      -1ULL,
6292
      -1ULL,
6293
      -1ULL
6294
    }
6295
#endif
6296
  },
6297
  { "v4shru", TILEGX_OPC_V4SHRU, 0x3, 3, TREG_ZERO, 1,
6298 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6299 148 khays
#ifndef DISASM_ONLY
6300
    {
6301
      0xc00000007ffc0000ULL,
6302
      0xfffe000000000000ULL,
6303
      0ULL,
6304
      0ULL,
6305
      0ULL
6306
    },
6307
    {
6308
      0x0000000052740000ULL,
6309
      0x28d0000000000000ULL,
6310
      -1ULL,
6311
      -1ULL,
6312
      -1ULL
6313
    }
6314
#endif
6315
  },
6316
  { "v4sub", TILEGX_OPC_V4SUB, 0x3, 3, TREG_ZERO, 1,
6317 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6318 148 khays
#ifndef DISASM_ONLY
6319
    {
6320
      0xc00000007ffc0000ULL,
6321
      0xfffe000000000000ULL,
6322
      0ULL,
6323
      0ULL,
6324
      0ULL
6325
    },
6326
    {
6327
      0x00000000527c0000ULL,
6328
      0x28d4000000000000ULL,
6329
      -1ULL,
6330
      -1ULL,
6331
      -1ULL
6332
    }
6333
#endif
6334
  },
6335
  { "v4subsc", TILEGX_OPC_V4SUBSC, 0x3, 3, TREG_ZERO, 1,
6336 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6337 148 khays
#ifndef DISASM_ONLY
6338
    {
6339
      0xc00000007ffc0000ULL,
6340
      0xfffe000000000000ULL,
6341
      0ULL,
6342
      0ULL,
6343
      0ULL
6344
    },
6345
    {
6346
      0x0000000052780000ULL,
6347
      0x28d2000000000000ULL,
6348
      -1ULL,
6349
      -1ULL,
6350
      -1ULL
6351
    }
6352
#endif
6353
  },
6354
  { "wh64", TILEGX_OPC_WH64, 0x2, 1, TREG_ZERO, 1,
6355 166 khays
    { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
6356 148 khays
#ifndef DISASM_ONLY
6357
    {
6358
      0ULL,
6359
      0xfffff80000000000ULL,
6360
      0ULL,
6361
      0ULL,
6362
      0ULL
6363
    },
6364
    {
6365
      -1ULL,
6366
      0x286b300000000000ULL,
6367
      -1ULL,
6368
      -1ULL,
6369
      -1ULL
6370
    }
6371
#endif
6372
  },
6373
  { "xor", TILEGX_OPC_XOR, 0xf, 3, TREG_ZERO, 1,
6374 166 khays
    { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
6375 148 khays
#ifndef DISASM_ONLY
6376
    {
6377
      0xc00000007ffc0000ULL,
6378
      0xfffe000000000000ULL,
6379
      0x00000000780c0000ULL,
6380
      0x3c06000000000000ULL,
6381
      0ULL
6382
    },
6383
    {
6384
      0x0000000052800000ULL,
6385
      0x28d6000000000000ULL,
6386
      0x00000000500c0000ULL,
6387
      0x2c06000000000000ULL,
6388
      -1ULL
6389
    }
6390
#endif
6391
  },
6392
  { "xori", TILEGX_OPC_XORI, 0x3, 3, TREG_ZERO, 1,
6393 166 khays
    { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
6394 148 khays
#ifndef DISASM_ONLY
6395
    {
6396
      0xc00000007ff00000ULL,
6397
      0xfff8000000000000ULL,
6398
      0ULL,
6399
      0ULL,
6400
      0ULL
6401
    },
6402
    {
6403
      0x0000000041400000ULL,
6404
      0x1968000000000000ULL,
6405
      -1ULL,
6406
      -1ULL,
6407
      -1ULL
6408
    }
6409
#endif
6410
  },
6411
  { NULL, TILEGX_OPC_NONE, 0, 0, TREG_ZERO, 0, { { 0, } },
6412
#ifndef DISASM_ONLY
6413
    { 0, }, { 0, }
6414
#endif
6415
  }
6416
};
6417
#define BITFIELD(start, size) ((start) | (((1 << (size)) - 1) << 6))
6418
#define CHILD(array_index) (TILEGX_OPC_NONE + (array_index))
6419
 
6420
static const unsigned short decode_X0_fsm[936] =
6421
{
6422
  BITFIELD(22, 9) /* index 0 */,
6423
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6424
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6425
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6426
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6427
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6428
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6429
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6430
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6431
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6432
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6433
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6434
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6435
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6436
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6437
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6438
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6439
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6440
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6441
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6442
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6443
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6444
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6445
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6446
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6447
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6448
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6449
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), TILEGX_OPC_ADDXLI,
6450
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6451
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6452
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6453
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6454
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6455
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6456
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6457
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6458
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6459
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6460
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6461
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6462
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6463
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6464
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6465
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_NONE,
6466
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6467
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6468
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6469
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_BFEXTS,
6470
  TILEGX_OPC_BFEXTS, TILEGX_OPC_BFEXTS, TILEGX_OPC_BFEXTS, TILEGX_OPC_BFEXTU,
6471
  TILEGX_OPC_BFEXTU, TILEGX_OPC_BFEXTU, TILEGX_OPC_BFEXTU, TILEGX_OPC_BFINS,
6472
  TILEGX_OPC_BFINS, TILEGX_OPC_BFINS, TILEGX_OPC_BFINS, TILEGX_OPC_MM,
6473
  TILEGX_OPC_MM, TILEGX_OPC_MM, TILEGX_OPC_MM, TILEGX_OPC_NONE,
6474
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6475
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6476
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6477
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6478
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6479
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6480
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6481
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, CHILD(528), CHILD(578),
6482
  CHILD(583), CHILD(588), CHILD(593), CHILD(598), TILEGX_OPC_NONE,
6483
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6484
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6485
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6486
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6487
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6488
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6489
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6490
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6491
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6492
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6493
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6494
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6495
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6496
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6497
  TILEGX_OPC_NONE, CHILD(603), CHILD(620), CHILD(637), CHILD(654), CHILD(671),
6498
  CHILD(703), CHILD(797), CHILD(814), CHILD(831), CHILD(848), CHILD(865),
6499
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6500
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6501
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6502
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6503
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6504
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6505
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6506
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6507
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6508
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6509
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6510
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6511
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6512
  TILEGX_OPC_NONE, CHILD(889), TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6513
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6514
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6515
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6516
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6517
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6518
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6519
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6520
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6521
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6522
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6523
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6524
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6525
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6526
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6527
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6528
  TILEGX_OPC_NONE, CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6529
  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6530
  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6531
  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6532
  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6533
  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6534
  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6535
  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6536
  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6537
  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6538
  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6539
  BITFIELD(6, 2) /* index 513 */,
6540
  TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, CHILD(518),
6541
  BITFIELD(8, 2) /* index 518 */,
6542
  TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, CHILD(523),
6543
  BITFIELD(10, 2) /* index 523 */,
6544
  TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_MOVELI,
6545
  BITFIELD(20, 2) /* index 528 */,
6546
  TILEGX_OPC_NONE, CHILD(533), TILEGX_OPC_ADDXI, CHILD(548),
6547
  BITFIELD(6, 2) /* index 533 */,
6548
  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(538),
6549
  BITFIELD(8, 2) /* index 538 */,
6550
  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(543),
6551
  BITFIELD(10, 2) /* index 543 */,
6552
  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_MOVEI,
6553
  BITFIELD(0, 2) /* index 548 */,
6554
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(553),
6555
  BITFIELD(2, 2) /* index 553 */,
6556
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(558),
6557
  BITFIELD(4, 2) /* index 558 */,
6558
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(563),
6559
  BITFIELD(6, 2) /* index 563 */,
6560
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(568),
6561
  BITFIELD(8, 2) /* index 568 */,
6562
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(573),
6563
  BITFIELD(10, 2) /* index 573 */,
6564
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_INFO,
6565
  BITFIELD(20, 2) /* index 578 */,
6566
  TILEGX_OPC_CMPEQI, TILEGX_OPC_CMPLTSI, TILEGX_OPC_CMPLTUI, TILEGX_OPC_ORI,
6567
  BITFIELD(20, 2) /* index 583 */,
6568
  TILEGX_OPC_V1ADDI, TILEGX_OPC_V1CMPEQI, TILEGX_OPC_V1CMPLTSI,
6569
  TILEGX_OPC_V1CMPLTUI,
6570
  BITFIELD(20, 2) /* index 588 */,
6571
  TILEGX_OPC_V1MAXUI, TILEGX_OPC_V1MINUI, TILEGX_OPC_V2ADDI,
6572
  TILEGX_OPC_V2CMPEQI,
6573
  BITFIELD(20, 2) /* index 593 */,
6574
  TILEGX_OPC_V2CMPLTSI, TILEGX_OPC_V2CMPLTUI, TILEGX_OPC_V2MAXSI,
6575
  TILEGX_OPC_V2MINSI,
6576
  BITFIELD(20, 2) /* index 598 */,
6577
  TILEGX_OPC_XORI, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6578
  BITFIELD(18, 4) /* index 603 */,
6579
  TILEGX_OPC_NONE, TILEGX_OPC_ADDXSC, TILEGX_OPC_ADDX, TILEGX_OPC_ADD,
6580
  TILEGX_OPC_AND, TILEGX_OPC_CMOVEQZ, TILEGX_OPC_CMOVNEZ, TILEGX_OPC_CMPEQ,
6581
  TILEGX_OPC_CMPLES, TILEGX_OPC_CMPLEU, TILEGX_OPC_CMPLTS, TILEGX_OPC_CMPLTU,
6582
  TILEGX_OPC_CMPNE, TILEGX_OPC_CMULAF, TILEGX_OPC_CMULA, TILEGX_OPC_CMULFR,
6583
  BITFIELD(18, 4) /* index 620 */,
6584
  TILEGX_OPC_CMULF, TILEGX_OPC_CMULHR, TILEGX_OPC_CMULH, TILEGX_OPC_CMUL,
6585
  TILEGX_OPC_CRC32_32, TILEGX_OPC_CRC32_8, TILEGX_OPC_DBLALIGN2,
6586
  TILEGX_OPC_DBLALIGN4, TILEGX_OPC_DBLALIGN6, TILEGX_OPC_DBLALIGN,
6587
  TILEGX_OPC_FDOUBLE_ADDSUB, TILEGX_OPC_FDOUBLE_ADD_FLAGS,
6588
  TILEGX_OPC_FDOUBLE_MUL_FLAGS, TILEGX_OPC_FDOUBLE_PACK1,
6589
  TILEGX_OPC_FDOUBLE_PACK2, TILEGX_OPC_FDOUBLE_SUB_FLAGS,
6590
  BITFIELD(18, 4) /* index 637 */,
6591
  TILEGX_OPC_FDOUBLE_UNPACK_MAX, TILEGX_OPC_FDOUBLE_UNPACK_MIN,
6592
  TILEGX_OPC_FSINGLE_ADD1, TILEGX_OPC_FSINGLE_ADDSUB2,
6593
  TILEGX_OPC_FSINGLE_MUL1, TILEGX_OPC_FSINGLE_MUL2, TILEGX_OPC_FSINGLE_PACK2,
6594
  TILEGX_OPC_FSINGLE_SUB1, TILEGX_OPC_MNZ, TILEGX_OPC_MULAX,
6595
  TILEGX_OPC_MULA_HS_HS, TILEGX_OPC_MULA_HS_HU, TILEGX_OPC_MULA_HS_LS,
6596
  TILEGX_OPC_MULA_HS_LU, TILEGX_OPC_MULA_HU_HU, TILEGX_OPC_MULA_HU_LS,
6597
  BITFIELD(18, 4) /* index 654 */,
6598
  TILEGX_OPC_MULA_HU_LU, TILEGX_OPC_MULA_LS_LS, TILEGX_OPC_MULA_LS_LU,
6599
  TILEGX_OPC_MULA_LU_LU, TILEGX_OPC_MULX, TILEGX_OPC_MUL_HS_HS,
6600
  TILEGX_OPC_MUL_HS_HU, TILEGX_OPC_MUL_HS_LS, TILEGX_OPC_MUL_HS_LU,
6601
  TILEGX_OPC_MUL_HU_HU, TILEGX_OPC_MUL_HU_LS, TILEGX_OPC_MUL_HU_LU,
6602
  TILEGX_OPC_MUL_LS_LS, TILEGX_OPC_MUL_LS_LU, TILEGX_OPC_MUL_LU_LU,
6603
  TILEGX_OPC_MZ,
6604
  BITFIELD(18, 4) /* index 671 */,
6605
  TILEGX_OPC_NOR, CHILD(688), TILEGX_OPC_ROTL, TILEGX_OPC_SHL1ADDX,
6606
  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL2ADDX, TILEGX_OPC_SHL2ADD,
6607
  TILEGX_OPC_SHL3ADDX, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHLX, TILEGX_OPC_SHL,
6608
  TILEGX_OPC_SHRS, TILEGX_OPC_SHRUX, TILEGX_OPC_SHRU, TILEGX_OPC_SHUFFLEBYTES,
6609
  TILEGX_OPC_SUBXSC,
6610
  BITFIELD(12, 2) /* index 688 */,
6611
  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(693),
6612
  BITFIELD(14, 2) /* index 693 */,
6613
  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(698),
6614
  BITFIELD(16, 2) /* index 698 */,
6615
  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_MOVE,
6616
  BITFIELD(18, 4) /* index 703 */,
6617
  TILEGX_OPC_SUBX, TILEGX_OPC_SUB, CHILD(720), TILEGX_OPC_V1ADDUC,
6618
  TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADIFFU, TILEGX_OPC_V1AVGU,
6619
  TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLEU,
6620
  TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPNE,
6621
  TILEGX_OPC_V1DDOTPUSA, TILEGX_OPC_V1DDOTPUS, TILEGX_OPC_V1DOTPA,
6622
  BITFIELD(12, 4) /* index 720 */,
6623
  TILEGX_OPC_NONE, CHILD(737), CHILD(742), CHILD(747), CHILD(752), CHILD(757),
6624
  CHILD(762), CHILD(767), CHILD(772), CHILD(777), CHILD(782), CHILD(787),
6625
  CHILD(792), TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6626
  BITFIELD(16, 2) /* index 737 */,
6627
  TILEGX_OPC_CLZ, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6628
  BITFIELD(16, 2) /* index 742 */,
6629
  TILEGX_OPC_CTZ, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6630
  BITFIELD(16, 2) /* index 747 */,
6631
  TILEGX_OPC_FNOP, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6632
  BITFIELD(16, 2) /* index 752 */,
6633
  TILEGX_OPC_FSINGLE_PACK1, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6634
  BITFIELD(16, 2) /* index 757 */,
6635
  TILEGX_OPC_NOP, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6636
  BITFIELD(16, 2) /* index 762 */,
6637
  TILEGX_OPC_PCNT, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6638
  BITFIELD(16, 2) /* index 767 */,
6639
  TILEGX_OPC_REVBITS, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6640
  BITFIELD(16, 2) /* index 772 */,
6641
  TILEGX_OPC_REVBYTES, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6642
  BITFIELD(16, 2) /* index 777 */,
6643
  TILEGX_OPC_TBLIDXB0, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6644
  BITFIELD(16, 2) /* index 782 */,
6645
  TILEGX_OPC_TBLIDXB1, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6646
  BITFIELD(16, 2) /* index 787 */,
6647
  TILEGX_OPC_TBLIDXB2, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6648
  BITFIELD(16, 2) /* index 792 */,
6649
  TILEGX_OPC_TBLIDXB3, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6650
  BITFIELD(18, 4) /* index 797 */,
6651
  TILEGX_OPC_V1DOTPUSA, TILEGX_OPC_V1DOTPUS, TILEGX_OPC_V1DOTP,
6652
  TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_L, TILEGX_OPC_V1MAXU,
6653
  TILEGX_OPC_V1MINU, TILEGX_OPC_V1MNZ, TILEGX_OPC_V1MULTU, TILEGX_OPC_V1MULUS,
6654
  TILEGX_OPC_V1MULU, TILEGX_OPC_V1MZ, TILEGX_OPC_V1SADAU, TILEGX_OPC_V1SADU,
6655
  TILEGX_OPC_V1SHL, TILEGX_OPC_V1SHRS,
6656
  BITFIELD(18, 4) /* index 814 */,
6657
  TILEGX_OPC_V1SHRU, TILEGX_OPC_V1SUBUC, TILEGX_OPC_V1SUB, TILEGX_OPC_V2ADDSC,
6658
  TILEGX_OPC_V2ADD, TILEGX_OPC_V2ADIFFS, TILEGX_OPC_V2AVGS,
6659
  TILEGX_OPC_V2CMPEQ, TILEGX_OPC_V2CMPLES, TILEGX_OPC_V2CMPLEU,
6660
  TILEGX_OPC_V2CMPLTS, TILEGX_OPC_V2CMPLTU, TILEGX_OPC_V2CMPNE,
6661
  TILEGX_OPC_V2DOTPA, TILEGX_OPC_V2DOTP, TILEGX_OPC_V2INT_H,
6662
  BITFIELD(18, 4) /* index 831 */,
6663
  TILEGX_OPC_V2INT_L, TILEGX_OPC_V2MAXS, TILEGX_OPC_V2MINS, TILEGX_OPC_V2MNZ,
6664
  TILEGX_OPC_V2MULFSC, TILEGX_OPC_V2MULS, TILEGX_OPC_V2MULTS, TILEGX_OPC_V2MZ,
6665
  TILEGX_OPC_V2PACKH, TILEGX_OPC_V2PACKL, TILEGX_OPC_V2PACKUC,
6666
  TILEGX_OPC_V2SADAS, TILEGX_OPC_V2SADAU, TILEGX_OPC_V2SADS,
6667
  TILEGX_OPC_V2SADU, TILEGX_OPC_V2SHLSC,
6668
  BITFIELD(18, 4) /* index 848 */,
6669
  TILEGX_OPC_V2SHL, TILEGX_OPC_V2SHRS, TILEGX_OPC_V2SHRU, TILEGX_OPC_V2SUBSC,
6670
  TILEGX_OPC_V2SUB, TILEGX_OPC_V4ADDSC, TILEGX_OPC_V4ADD, TILEGX_OPC_V4INT_H,
6671
  TILEGX_OPC_V4INT_L, TILEGX_OPC_V4PACKSC, TILEGX_OPC_V4SHLSC,
6672
  TILEGX_OPC_V4SHL, TILEGX_OPC_V4SHRS, TILEGX_OPC_V4SHRU, TILEGX_OPC_V4SUBSC,
6673
  TILEGX_OPC_V4SUB,
6674
  BITFIELD(18, 3) /* index 865 */,
6675
  CHILD(874), CHILD(877), CHILD(880), CHILD(883), CHILD(886), TILEGX_OPC_NONE,
6676
  TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6677
  BITFIELD(21, 1) /* index 874 */,
6678
  TILEGX_OPC_XOR, TILEGX_OPC_NONE,
6679
  BITFIELD(21, 1) /* index 877 */,
6680
  TILEGX_OPC_V1DDOTPUA, TILEGX_OPC_NONE,
6681
  BITFIELD(21, 1) /* index 880 */,
6682
  TILEGX_OPC_V1DDOTPU, TILEGX_OPC_NONE,
6683
  BITFIELD(21, 1) /* index 883 */,
6684
  TILEGX_OPC_V1DOTPUA, TILEGX_OPC_NONE,
6685
  BITFIELD(21, 1) /* index 886 */,
6686
  TILEGX_OPC_V1DOTPU, TILEGX_OPC_NONE,
6687
  BITFIELD(18, 4) /* index 889 */,
6688
  TILEGX_OPC_NONE, TILEGX_OPC_ROTLI, TILEGX_OPC_SHLI, TILEGX_OPC_SHLXI,
6689
  TILEGX_OPC_SHRSI, TILEGX_OPC_SHRUI, TILEGX_OPC_SHRUXI, TILEGX_OPC_V1SHLI,
6690
  TILEGX_OPC_V1SHRSI, TILEGX_OPC_V1SHRUI, TILEGX_OPC_V2SHLI,
6691
  TILEGX_OPC_V2SHRSI, TILEGX_OPC_V2SHRUI, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6692
  TILEGX_OPC_NONE,
6693
  BITFIELD(0, 2) /* index 906 */,
6694
  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
6695
  CHILD(911),
6696
  BITFIELD(2, 2) /* index 911 */,
6697
  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
6698
  CHILD(916),
6699
  BITFIELD(4, 2) /* index 916 */,
6700
  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
6701
  CHILD(921),
6702
  BITFIELD(6, 2) /* index 921 */,
6703
  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
6704
  CHILD(926),
6705
  BITFIELD(8, 2) /* index 926 */,
6706
  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
6707
  CHILD(931),
6708
  BITFIELD(10, 2) /* index 931 */,
6709
  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
6710
  TILEGX_OPC_INFOL,
6711
};
6712
 
6713 166 khays
static const unsigned short decode_X1_fsm[1266] =
6714 148 khays
{
6715
  BITFIELD(53, 9) /* index 0 */,
6716
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6717
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6718
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6719
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6720
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6721
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6722
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6723
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6724
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6725
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6726
  CHILD(513), CHILD(513), CHILD(513), CHILD(513), TILEGX_OPC_ADDXLI,
6727
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6728
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6729
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6730
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6731
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6732
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6733
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6734
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6735
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6736
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6737
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6738
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6739
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6740
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6741
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6742
  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_NONE,
6743
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6744
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6745
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6746
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6747
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6748
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6749
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6750
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_BEQZT,
6751
  TILEGX_OPC_BEQZT, TILEGX_OPC_BEQZ, TILEGX_OPC_BEQZ, TILEGX_OPC_BGEZT,
6752
  TILEGX_OPC_BGEZT, TILEGX_OPC_BGEZ, TILEGX_OPC_BGEZ, TILEGX_OPC_BGTZT,
6753
  TILEGX_OPC_BGTZT, TILEGX_OPC_BGTZ, TILEGX_OPC_BGTZ, TILEGX_OPC_BLBCT,
6754
  TILEGX_OPC_BLBCT, TILEGX_OPC_BLBC, TILEGX_OPC_BLBC, TILEGX_OPC_BLBST,
6755
  TILEGX_OPC_BLBST, TILEGX_OPC_BLBS, TILEGX_OPC_BLBS, TILEGX_OPC_BLEZT,
6756
  TILEGX_OPC_BLEZT, TILEGX_OPC_BLEZ, TILEGX_OPC_BLEZ, TILEGX_OPC_BLTZT,
6757
  TILEGX_OPC_BLTZT, TILEGX_OPC_BLTZ, TILEGX_OPC_BLTZ, TILEGX_OPC_BNEZT,
6758
  TILEGX_OPC_BNEZT, TILEGX_OPC_BNEZ, TILEGX_OPC_BNEZ, CHILD(528), CHILD(578),
6759 166 khays
  CHILD(598), CHILD(703), CHILD(723), CHILD(728), CHILD(753), CHILD(758),
6760
  CHILD(763), CHILD(768), CHILD(773), CHILD(778), TILEGX_OPC_NONE,
6761 148 khays
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6762
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6763
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6764
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6765
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6766
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6767
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6768
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6769
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6770
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6771
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6772
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6773
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_JAL,
6774
  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
6775
  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
6776
  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
6777
  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
6778
  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
6779
  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
6780
  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
6781
  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_J, TILEGX_OPC_J,
6782
  TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
6783
  TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
6784
  TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
6785
  TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
6786
  TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
6787
  TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
6788 166 khays
  CHILD(783), CHILD(800), CHILD(832), CHILD(849), CHILD(1168), CHILD(1185),
6789
  CHILD(1202), TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6790 148 khays
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6791
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6792
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6793
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6794
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6795
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6796
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6797
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6798
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6799
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6800
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6801
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6802
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6803 166 khays
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, CHILD(1219), TILEGX_OPC_NONE,
6804 148 khays
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6805
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6806
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6807
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6808
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6809
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6810
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6811
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6812
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6813
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6814
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6815
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6816
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6817
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6818
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6819 166 khays
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, CHILD(1236), CHILD(1236), CHILD(1236),
6820
  CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6821
  CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6822
  CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6823
  CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6824
  CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6825
  CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6826
  CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6827
  CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6828
  CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6829
  CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6830
  CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6831
  CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6832
  CHILD(1236),
6833 148 khays
  BITFIELD(37, 2) /* index 513 */,
6834
  TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, CHILD(518),
6835
  BITFIELD(39, 2) /* index 518 */,
6836
  TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, CHILD(523),
6837
  BITFIELD(41, 2) /* index 523 */,
6838
  TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_MOVELI,
6839
  BITFIELD(51, 2) /* index 528 */,
6840
  TILEGX_OPC_NONE, CHILD(533), TILEGX_OPC_ADDXI, CHILD(548),
6841
  BITFIELD(37, 2) /* index 533 */,
6842
  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(538),
6843
  BITFIELD(39, 2) /* index 538 */,
6844
  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(543),
6845
  BITFIELD(41, 2) /* index 543 */,
6846
  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_MOVEI,
6847
  BITFIELD(31, 2) /* index 548 */,
6848
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(553),
6849
  BITFIELD(33, 2) /* index 553 */,
6850
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(558),
6851
  BITFIELD(35, 2) /* index 558 */,
6852
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(563),
6853
  BITFIELD(37, 2) /* index 563 */,
6854
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(568),
6855
  BITFIELD(39, 2) /* index 568 */,
6856
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(573),
6857
  BITFIELD(41, 2) /* index 573 */,
6858
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_INFO,
6859
  BITFIELD(51, 2) /* index 578 */,
6860
  TILEGX_OPC_CMPEQI, TILEGX_OPC_CMPLTSI, TILEGX_OPC_CMPLTUI, CHILD(583),
6861
  BITFIELD(31, 2) /* index 583 */,
6862
  TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, CHILD(588),
6863
  BITFIELD(33, 2) /* index 588 */,
6864
  TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, CHILD(593),
6865
  BITFIELD(35, 2) /* index 593 */,
6866
  TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD,
6867
  TILEGX_OPC_PREFETCH_ADD_L1_FAULT,
6868
  BITFIELD(51, 2) /* index 598 */,
6869
  CHILD(603), CHILD(618), CHILD(633), CHILD(648),
6870
  BITFIELD(31, 2) /* index 603 */,
6871
  TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, CHILD(608),
6872
  BITFIELD(33, 2) /* index 608 */,
6873
  TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, CHILD(613),
6874
  BITFIELD(35, 2) /* index 613 */,
6875
  TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD,
6876
  TILEGX_OPC_PREFETCH_ADD_L1,
6877
  BITFIELD(31, 2) /* index 618 */,
6878
  TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, CHILD(623),
6879
  BITFIELD(33, 2) /* index 623 */,
6880
  TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, CHILD(628),
6881
  BITFIELD(35, 2) /* index 628 */,
6882
  TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD,
6883
  TILEGX_OPC_PREFETCH_ADD_L2_FAULT,
6884
  BITFIELD(31, 2) /* index 633 */,
6885
  TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, CHILD(638),
6886
  BITFIELD(33, 2) /* index 638 */,
6887
  TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, CHILD(643),
6888
  BITFIELD(35, 2) /* index 643 */,
6889
  TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD,
6890
  TILEGX_OPC_PREFETCH_ADD_L2,
6891
  BITFIELD(31, 2) /* index 648 */,
6892 166 khays
  CHILD(653), CHILD(653), CHILD(653), CHILD(673),
6893
  BITFIELD(43, 2) /* index 653 */,
6894
  CHILD(658), TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD,
6895
  BITFIELD(45, 2) /* index 658 */,
6896
  CHILD(663), TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD,
6897
  BITFIELD(47, 2) /* index 663 */,
6898
  CHILD(668), TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD,
6899
  BITFIELD(49, 2) /* index 668 */,
6900
  TILEGX_OPC_LD4S_TLS, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD,
6901
  TILEGX_OPC_LD4S_ADD,
6902 148 khays
  BITFIELD(33, 2) /* index 673 */,
6903 166 khays
  CHILD(653), CHILD(653), CHILD(653), CHILD(678),
6904 148 khays
  BITFIELD(35, 2) /* index 678 */,
6905 166 khays
  CHILD(653), CHILD(653), CHILD(653), CHILD(683),
6906
  BITFIELD(43, 2) /* index 683 */,
6907
  CHILD(688), TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
6908
  TILEGX_OPC_PREFETCH_ADD_L3_FAULT, TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
6909
  BITFIELD(45, 2) /* index 688 */,
6910
  CHILD(693), TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
6911
  TILEGX_OPC_PREFETCH_ADD_L3_FAULT, TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
6912
  BITFIELD(47, 2) /* index 693 */,
6913
  CHILD(698), TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
6914
  TILEGX_OPC_PREFETCH_ADD_L3_FAULT, TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
6915
  BITFIELD(49, 2) /* index 698 */,
6916
  TILEGX_OPC_LD4S_TLS, TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
6917
  TILEGX_OPC_PREFETCH_ADD_L3_FAULT, TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
6918
  BITFIELD(51, 2) /* index 703 */,
6919
  CHILD(708), TILEGX_OPC_LDNT1S_ADD, TILEGX_OPC_LDNT1U_ADD,
6920
  TILEGX_OPC_LDNT2S_ADD,
6921
  BITFIELD(31, 2) /* index 708 */,
6922
  TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, CHILD(713),
6923
  BITFIELD(33, 2) /* index 713 */,
6924
  TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, CHILD(718),
6925
  BITFIELD(35, 2) /* index 718 */,
6926 148 khays
  TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD,
6927
  TILEGX_OPC_PREFETCH_ADD_L3,
6928 166 khays
  BITFIELD(51, 2) /* index 723 */,
6929 148 khays
  TILEGX_OPC_LDNT2U_ADD, TILEGX_OPC_LDNT4S_ADD, TILEGX_OPC_LDNT4U_ADD,
6930
  TILEGX_OPC_LDNT_ADD,
6931 166 khays
  BITFIELD(51, 2) /* index 728 */,
6932
  CHILD(733), TILEGX_OPC_LDNA_ADD, TILEGX_OPC_MFSPR, TILEGX_OPC_MTSPR,
6933
  BITFIELD(43, 2) /* index 733 */,
6934
  CHILD(738), TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD,
6935
  BITFIELD(45, 2) /* index 738 */,
6936
  CHILD(743), TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD,
6937
  BITFIELD(47, 2) /* index 743 */,
6938
  CHILD(748), TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD,
6939
  BITFIELD(49, 2) /* index 748 */,
6940
  TILEGX_OPC_LD_TLS, TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD,
6941
  BITFIELD(51, 2) /* index 753 */,
6942 148 khays
  TILEGX_OPC_ORI, TILEGX_OPC_ST1_ADD, TILEGX_OPC_ST2_ADD, TILEGX_OPC_ST4_ADD,
6943 166 khays
  BITFIELD(51, 2) /* index 758 */,
6944 148 khays
  TILEGX_OPC_STNT1_ADD, TILEGX_OPC_STNT2_ADD, TILEGX_OPC_STNT4_ADD,
6945
  TILEGX_OPC_STNT_ADD,
6946 166 khays
  BITFIELD(51, 2) /* index 763 */,
6947 148 khays
  TILEGX_OPC_ST_ADD, TILEGX_OPC_V1ADDI, TILEGX_OPC_V1CMPEQI,
6948
  TILEGX_OPC_V1CMPLTSI,
6949 166 khays
  BITFIELD(51, 2) /* index 768 */,
6950 148 khays
  TILEGX_OPC_V1CMPLTUI, TILEGX_OPC_V1MAXUI, TILEGX_OPC_V1MINUI,
6951
  TILEGX_OPC_V2ADDI,
6952 166 khays
  BITFIELD(51, 2) /* index 773 */,
6953 148 khays
  TILEGX_OPC_V2CMPEQI, TILEGX_OPC_V2CMPLTSI, TILEGX_OPC_V2CMPLTUI,
6954
  TILEGX_OPC_V2MAXSI,
6955 166 khays
  BITFIELD(51, 2) /* index 778 */,
6956 148 khays
  TILEGX_OPC_V2MINSI, TILEGX_OPC_XORI, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6957 166 khays
  BITFIELD(49, 4) /* index 783 */,
6958 148 khays
  TILEGX_OPC_NONE, TILEGX_OPC_ADDXSC, TILEGX_OPC_ADDX, TILEGX_OPC_ADD,
6959
  TILEGX_OPC_AND, TILEGX_OPC_CMPEQ, TILEGX_OPC_CMPEXCH4, TILEGX_OPC_CMPEXCH,
6960
  TILEGX_OPC_CMPLES, TILEGX_OPC_CMPLEU, TILEGX_OPC_CMPLTS, TILEGX_OPC_CMPLTU,
6961
  TILEGX_OPC_CMPNE, TILEGX_OPC_DBLALIGN2, TILEGX_OPC_DBLALIGN4,
6962
  TILEGX_OPC_DBLALIGN6,
6963 166 khays
  BITFIELD(49, 4) /* index 800 */,
6964 148 khays
  TILEGX_OPC_EXCH4, TILEGX_OPC_EXCH, TILEGX_OPC_FETCHADD4,
6965
  TILEGX_OPC_FETCHADDGEZ4, TILEGX_OPC_FETCHADDGEZ, TILEGX_OPC_FETCHADD,
6966
  TILEGX_OPC_FETCHAND4, TILEGX_OPC_FETCHAND, TILEGX_OPC_FETCHOR4,
6967
  TILEGX_OPC_FETCHOR, TILEGX_OPC_MNZ, TILEGX_OPC_MZ, TILEGX_OPC_NOR,
6968 166 khays
  CHILD(817), TILEGX_OPC_ROTL, TILEGX_OPC_SHL1ADDX,
6969
  BITFIELD(43, 2) /* index 817 */,
6970
  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(822),
6971
  BITFIELD(45, 2) /* index 822 */,
6972
  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(827),
6973
  BITFIELD(47, 2) /* index 827 */,
6974 148 khays
  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_MOVE,
6975 166 khays
  BITFIELD(49, 4) /* index 832 */,
6976 148 khays
  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL2ADDX, TILEGX_OPC_SHL2ADD,
6977
  TILEGX_OPC_SHL3ADDX, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHLX, TILEGX_OPC_SHL,
6978
  TILEGX_OPC_SHRS, TILEGX_OPC_SHRUX, TILEGX_OPC_SHRU, TILEGX_OPC_ST1,
6979
  TILEGX_OPC_ST2, TILEGX_OPC_ST4, TILEGX_OPC_STNT1, TILEGX_OPC_STNT2,
6980
  TILEGX_OPC_STNT4,
6981 166 khays
  BITFIELD(46, 7) /* index 849 */,
6982 148 khays
  TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT,
6983
  TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT,
6984
  TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST,
6985
  TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_SUBXSC,
6986
  TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC,
6987
  TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBX,
6988
  TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUBX,
6989
  TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUB,
6990
  TILEGX_OPC_SUB, TILEGX_OPC_SUB, TILEGX_OPC_SUB, TILEGX_OPC_SUB,
6991 166 khays
  TILEGX_OPC_SUB, TILEGX_OPC_SUB, TILEGX_OPC_SUB, CHILD(978), CHILD(987),
6992
  CHILD(1066), CHILD(1150), CHILD(1159), TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6993 148 khays
  TILEGX_OPC_NONE, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC,
6994
  TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC,
6995
  TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD,
6996
  TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD,
6997
  TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD, TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ,
6998
  TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ,
6999
  TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ,
7000
  TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES,
7001
  TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES,
7002
  TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLEU,
7003
  TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLEU,
7004
  TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLEU,
7005
  TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS,
7006
  TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS,
7007
  TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS,
7008
  TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU,
7009
  TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU,
7010
  TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPNE,
7011
  TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1CMPNE,
7012
  TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1CMPNE,
7013
  TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H,
7014
  TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H,
7015
  TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H,
7016
  TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L,
7017
  TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L,
7018
  TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L,
7019 166 khays
  BITFIELD(43, 3) /* index 978 */,
7020 148 khays
  TILEGX_OPC_NONE, TILEGX_OPC_DRAIN, TILEGX_OPC_DTLBPR, TILEGX_OPC_FINV,
7021
  TILEGX_OPC_FLUSHWB, TILEGX_OPC_FLUSH, TILEGX_OPC_FNOP, TILEGX_OPC_ICOH,
7022 166 khays
  BITFIELD(43, 3) /* index 987 */,
7023
  CHILD(996), TILEGX_OPC_INV, TILEGX_OPC_IRET, TILEGX_OPC_JALRP,
7024
  TILEGX_OPC_JALR, TILEGX_OPC_JRP, TILEGX_OPC_JR, CHILD(1051),
7025
  BITFIELD(31, 2) /* index 996 */,
7026
  CHILD(1001), CHILD(1026), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
7027
  BITFIELD(33, 2) /* index 1001 */,
7028
  TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_ILL, CHILD(1006),
7029
  BITFIELD(35, 2) /* index 1006 */,
7030
  TILEGX_OPC_ILL, CHILD(1011), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
7031
  BITFIELD(37, 2) /* index 1011 */,
7032
  TILEGX_OPC_ILL, CHILD(1016), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
7033
  BITFIELD(39, 2) /* index 1016 */,
7034
  TILEGX_OPC_ILL, CHILD(1021), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
7035
  BITFIELD(41, 2) /* index 1021 */,
7036 148 khays
  TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_BPT, TILEGX_OPC_ILL,
7037 166 khays
  BITFIELD(33, 2) /* index 1026 */,
7038
  TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_ILL, CHILD(1031),
7039
  BITFIELD(35, 2) /* index 1031 */,
7040
  TILEGX_OPC_ILL, CHILD(1036), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
7041
  BITFIELD(37, 2) /* index 1036 */,
7042
  TILEGX_OPC_ILL, CHILD(1041), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
7043
  BITFIELD(39, 2) /* index 1041 */,
7044
  TILEGX_OPC_ILL, CHILD(1046), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
7045
  BITFIELD(41, 2) /* index 1046 */,
7046 148 khays
  TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_RAISE, TILEGX_OPC_ILL,
7047 166 khays
  BITFIELD(31, 2) /* index 1051 */,
7048
  TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, CHILD(1056),
7049
  BITFIELD(33, 2) /* index 1056 */,
7050
  TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, CHILD(1061),
7051
  BITFIELD(35, 2) /* index 1061 */,
7052 148 khays
  TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S,
7053
  TILEGX_OPC_PREFETCH_L1_FAULT,
7054 166 khays
  BITFIELD(43, 3) /* index 1066 */,
7055
  CHILD(1075), CHILD(1090), CHILD(1105), CHILD(1120), CHILD(1135),
7056 148 khays
  TILEGX_OPC_LDNA, TILEGX_OPC_LDNT1S, TILEGX_OPC_LDNT1U,
7057 166 khays
  BITFIELD(31, 2) /* index 1075 */,
7058
  TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, CHILD(1080),
7059
  BITFIELD(33, 2) /* index 1080 */,
7060
  TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, CHILD(1085),
7061
  BITFIELD(35, 2) /* index 1085 */,
7062 148 khays
  TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_PREFETCH,
7063 166 khays
  BITFIELD(31, 2) /* index 1090 */,
7064
  TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, CHILD(1095),
7065
  BITFIELD(33, 2) /* index 1095 */,
7066
  TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, CHILD(1100),
7067
  BITFIELD(35, 2) /* index 1100 */,
7068 148 khays
  TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S,
7069
  TILEGX_OPC_PREFETCH_L2_FAULT,
7070 166 khays
  BITFIELD(31, 2) /* index 1105 */,
7071
  TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, CHILD(1110),
7072
  BITFIELD(33, 2) /* index 1110 */,
7073
  TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, CHILD(1115),
7074
  BITFIELD(35, 2) /* index 1115 */,
7075 148 khays
  TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_PREFETCH_L2,
7076 166 khays
  BITFIELD(31, 2) /* index 1120 */,
7077
  TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(1125),
7078
  BITFIELD(33, 2) /* index 1125 */,
7079
  TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(1130),
7080
  BITFIELD(35, 2) /* index 1130 */,
7081 148 khays
  TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S,
7082
  TILEGX_OPC_PREFETCH_L3_FAULT,
7083 166 khays
  BITFIELD(31, 2) /* index 1135 */,
7084
  TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(1140),
7085
  BITFIELD(33, 2) /* index 1140 */,
7086
  TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(1145),
7087
  BITFIELD(35, 2) /* index 1145 */,
7088 148 khays
  TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_PREFETCH_L3,
7089 166 khays
  BITFIELD(43, 3) /* index 1150 */,
7090 148 khays
  TILEGX_OPC_LDNT2S, TILEGX_OPC_LDNT2U, TILEGX_OPC_LDNT4S, TILEGX_OPC_LDNT4U,
7091
  TILEGX_OPC_LDNT, TILEGX_OPC_LD, TILEGX_OPC_LNK, TILEGX_OPC_MF,
7092 166 khays
  BITFIELD(43, 3) /* index 1159 */,
7093 148 khays
  TILEGX_OPC_NAP, TILEGX_OPC_NOP, TILEGX_OPC_SWINT0, TILEGX_OPC_SWINT1,
7094
  TILEGX_OPC_SWINT2, TILEGX_OPC_SWINT3, TILEGX_OPC_WH64, TILEGX_OPC_NONE,
7095 166 khays
  BITFIELD(49, 4) /* index 1168 */,
7096 148 khays
  TILEGX_OPC_V1MAXU, TILEGX_OPC_V1MINU, TILEGX_OPC_V1MNZ, TILEGX_OPC_V1MZ,
7097
  TILEGX_OPC_V1SHL, TILEGX_OPC_V1SHRS, TILEGX_OPC_V1SHRU, TILEGX_OPC_V1SUBUC,
7098
  TILEGX_OPC_V1SUB, TILEGX_OPC_V2ADDSC, TILEGX_OPC_V2ADD, TILEGX_OPC_V2CMPEQ,
7099
  TILEGX_OPC_V2CMPLES, TILEGX_OPC_V2CMPLEU, TILEGX_OPC_V2CMPLTS,
7100
  TILEGX_OPC_V2CMPLTU,
7101 166 khays
  BITFIELD(49, 4) /* index 1185 */,
7102 148 khays
  TILEGX_OPC_V2CMPNE, TILEGX_OPC_V2INT_H, TILEGX_OPC_V2INT_L,
7103
  TILEGX_OPC_V2MAXS, TILEGX_OPC_V2MINS, TILEGX_OPC_V2MNZ, TILEGX_OPC_V2MZ,
7104
  TILEGX_OPC_V2PACKH, TILEGX_OPC_V2PACKL, TILEGX_OPC_V2PACKUC,
7105
  TILEGX_OPC_V2SHLSC, TILEGX_OPC_V2SHL, TILEGX_OPC_V2SHRS, TILEGX_OPC_V2SHRU,
7106
  TILEGX_OPC_V2SUBSC, TILEGX_OPC_V2SUB,
7107 166 khays
  BITFIELD(49, 4) /* index 1202 */,
7108 148 khays
  TILEGX_OPC_V4ADDSC, TILEGX_OPC_V4ADD, TILEGX_OPC_V4INT_H,
7109
  TILEGX_OPC_V4INT_L, TILEGX_OPC_V4PACKSC, TILEGX_OPC_V4SHLSC,
7110
  TILEGX_OPC_V4SHL, TILEGX_OPC_V4SHRS, TILEGX_OPC_V4SHRU, TILEGX_OPC_V4SUBSC,
7111
  TILEGX_OPC_V4SUB, TILEGX_OPC_XOR, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
7112
  TILEGX_OPC_NONE, TILEGX_OPC_NONE,
7113 166 khays
  BITFIELD(49, 4) /* index 1219 */,
7114 148 khays
  TILEGX_OPC_NONE, TILEGX_OPC_ROTLI, TILEGX_OPC_SHLI, TILEGX_OPC_SHLXI,
7115
  TILEGX_OPC_SHRSI, TILEGX_OPC_SHRUI, TILEGX_OPC_SHRUXI, TILEGX_OPC_V1SHLI,
7116
  TILEGX_OPC_V1SHRSI, TILEGX_OPC_V1SHRUI, TILEGX_OPC_V2SHLI,
7117
  TILEGX_OPC_V2SHRSI, TILEGX_OPC_V2SHRUI, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
7118
  TILEGX_OPC_NONE,
7119 166 khays
  BITFIELD(31, 2) /* index 1236 */,
7120 148 khays
  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
7121 166 khays
  CHILD(1241),
7122
  BITFIELD(33, 2) /* index 1241 */,
7123 148 khays
  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
7124 166 khays
  CHILD(1246),
7125
  BITFIELD(35, 2) /* index 1246 */,
7126 148 khays
  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
7127 166 khays
  CHILD(1251),
7128
  BITFIELD(37, 2) /* index 1251 */,
7129 148 khays
  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
7130 166 khays
  CHILD(1256),
7131
  BITFIELD(39, 2) /* index 1256 */,
7132 148 khays
  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
7133 166 khays
  CHILD(1261),
7134
  BITFIELD(41, 2) /* index 1261 */,
7135 148 khays
  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
7136
  TILEGX_OPC_INFOL,
7137
};
7138
 
7139
static const unsigned short decode_Y0_fsm[178] =
7140
{
7141
  BITFIELD(27, 4) /* index 0 */,
7142
  CHILD(17), TILEGX_OPC_ADDXI, CHILD(32), TILEGX_OPC_CMPEQI,
7143
  TILEGX_OPC_CMPLTSI, CHILD(62), CHILD(67), CHILD(118), CHILD(123),
7144
  CHILD(128), CHILD(133), CHILD(153), CHILD(158), CHILD(163), CHILD(168),
7145
  CHILD(173),
7146
  BITFIELD(6, 2) /* index 17 */,
7147
  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(22),
7148
  BITFIELD(8, 2) /* index 22 */,
7149
  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(27),
7150
  BITFIELD(10, 2) /* index 27 */,
7151
  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_MOVEI,
7152
  BITFIELD(0, 2) /* index 32 */,
7153
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(37),
7154
  BITFIELD(2, 2) /* index 37 */,
7155
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(42),
7156
  BITFIELD(4, 2) /* index 42 */,
7157
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(47),
7158
  BITFIELD(6, 2) /* index 47 */,
7159
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(52),
7160
  BITFIELD(8, 2) /* index 52 */,
7161
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(57),
7162
  BITFIELD(10, 2) /* index 57 */,
7163
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_INFO,
7164
  BITFIELD(18, 2) /* index 62 */,
7165
  TILEGX_OPC_ADDX, TILEGX_OPC_ADD, TILEGX_OPC_SUBX, TILEGX_OPC_SUB,
7166
  BITFIELD(15, 5) /* index 67 */,
7167
  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD,
7168
  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD,
7169
  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL2ADD,
7170
  TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD,
7171
  TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD,
7172
  TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD,
7173
  TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD,
7174
  TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, CHILD(100),
7175
  CHILD(109), TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
7176
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
7177
  BITFIELD(12, 3) /* index 100 */,
7178
  TILEGX_OPC_NONE, TILEGX_OPC_CLZ, TILEGX_OPC_CTZ, TILEGX_OPC_FNOP,
7179
  TILEGX_OPC_FSINGLE_PACK1, TILEGX_OPC_NOP, TILEGX_OPC_PCNT,
7180
  TILEGX_OPC_REVBITS,
7181
  BITFIELD(12, 3) /* index 109 */,
7182
  TILEGX_OPC_REVBYTES, TILEGX_OPC_TBLIDXB0, TILEGX_OPC_TBLIDXB1,
7183
  TILEGX_OPC_TBLIDXB2, TILEGX_OPC_TBLIDXB3, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
7184
  TILEGX_OPC_NONE,
7185
  BITFIELD(18, 2) /* index 118 */,
7186
  TILEGX_OPC_CMPLES, TILEGX_OPC_CMPLEU, TILEGX_OPC_CMPLTS, TILEGX_OPC_CMPLTU,
7187
  BITFIELD(18, 2) /* index 123 */,
7188
  TILEGX_OPC_CMPEQ, TILEGX_OPC_CMPNE, TILEGX_OPC_MULAX, TILEGX_OPC_MULX,
7189
  BITFIELD(18, 2) /* index 128 */,
7190
  TILEGX_OPC_CMOVEQZ, TILEGX_OPC_CMOVNEZ, TILEGX_OPC_MNZ, TILEGX_OPC_MZ,
7191
  BITFIELD(18, 2) /* index 133 */,
7192
  TILEGX_OPC_AND, TILEGX_OPC_NOR, CHILD(138), TILEGX_OPC_XOR,
7193
  BITFIELD(12, 2) /* index 138 */,
7194
  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(143),
7195
  BITFIELD(14, 2) /* index 143 */,
7196
  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(148),
7197
  BITFIELD(16, 2) /* index 148 */,
7198
  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_MOVE,
7199
  BITFIELD(18, 2) /* index 153 */,
7200
  TILEGX_OPC_ROTL, TILEGX_OPC_SHL, TILEGX_OPC_SHRS, TILEGX_OPC_SHRU,
7201
  BITFIELD(18, 2) /* index 158 */,
7202
  TILEGX_OPC_NONE, TILEGX_OPC_SHL1ADDX, TILEGX_OPC_SHL2ADDX,
7203
  TILEGX_OPC_SHL3ADDX,
7204
  BITFIELD(18, 2) /* index 163 */,
7205
  TILEGX_OPC_MUL_HS_HS, TILEGX_OPC_MUL_HU_HU, TILEGX_OPC_MUL_LS_LS,
7206
  TILEGX_OPC_MUL_LU_LU,
7207
  BITFIELD(18, 2) /* index 168 */,
7208
  TILEGX_OPC_MULA_HS_HS, TILEGX_OPC_MULA_HU_HU, TILEGX_OPC_MULA_LS_LS,
7209
  TILEGX_OPC_MULA_LU_LU,
7210
  BITFIELD(18, 2) /* index 173 */,
7211
  TILEGX_OPC_ROTLI, TILEGX_OPC_SHLI, TILEGX_OPC_SHRSI, TILEGX_OPC_SHRUI,
7212
};
7213
 
7214
static const unsigned short decode_Y1_fsm[167] =
7215
{
7216
  BITFIELD(58, 4) /* index 0 */,
7217
  TILEGX_OPC_NONE, CHILD(17), TILEGX_OPC_ADDXI, CHILD(32), TILEGX_OPC_CMPEQI,
7218
  TILEGX_OPC_CMPLTSI, CHILD(62), CHILD(67), CHILD(117), CHILD(122),
7219
  CHILD(127), CHILD(132), CHILD(152), CHILD(157), CHILD(162), TILEGX_OPC_NONE,
7220
  BITFIELD(37, 2) /* index 17 */,
7221
  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(22),
7222
  BITFIELD(39, 2) /* index 22 */,
7223
  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(27),
7224
  BITFIELD(41, 2) /* index 27 */,
7225
  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_MOVEI,
7226
  BITFIELD(31, 2) /* index 32 */,
7227
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(37),
7228
  BITFIELD(33, 2) /* index 37 */,
7229
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(42),
7230
  BITFIELD(35, 2) /* index 42 */,
7231
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(47),
7232
  BITFIELD(37, 2) /* index 47 */,
7233
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(52),
7234
  BITFIELD(39, 2) /* index 52 */,
7235
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(57),
7236
  BITFIELD(41, 2) /* index 57 */,
7237
  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_INFO,
7238
  BITFIELD(49, 2) /* index 62 */,
7239
  TILEGX_OPC_ADDX, TILEGX_OPC_ADD, TILEGX_OPC_SUBX, TILEGX_OPC_SUB,
7240
  BITFIELD(47, 4) /* index 67 */,
7241
  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD,
7242
  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD,
7243
  TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL3ADD,
7244
  TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, CHILD(84),
7245
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
7246
  BITFIELD(43, 3) /* index 84 */,
7247
  CHILD(93), CHILD(96), CHILD(99), CHILD(102), CHILD(105), CHILD(108),
7248
  CHILD(111), CHILD(114),
7249
  BITFIELD(46, 1) /* index 93 */,
7250
  TILEGX_OPC_NONE, TILEGX_OPC_FNOP,
7251
  BITFIELD(46, 1) /* index 96 */,
7252
  TILEGX_OPC_NONE, TILEGX_OPC_ILL,
7253
  BITFIELD(46, 1) /* index 99 */,
7254
  TILEGX_OPC_NONE, TILEGX_OPC_JALRP,
7255
  BITFIELD(46, 1) /* index 102 */,
7256
  TILEGX_OPC_NONE, TILEGX_OPC_JALR,
7257
  BITFIELD(46, 1) /* index 105 */,
7258
  TILEGX_OPC_NONE, TILEGX_OPC_JRP,
7259
  BITFIELD(46, 1) /* index 108 */,
7260
  TILEGX_OPC_NONE, TILEGX_OPC_JR,
7261
  BITFIELD(46, 1) /* index 111 */,
7262
  TILEGX_OPC_NONE, TILEGX_OPC_LNK,
7263
  BITFIELD(46, 1) /* index 114 */,
7264
  TILEGX_OPC_NONE, TILEGX_OPC_NOP,
7265
  BITFIELD(49, 2) /* index 117 */,
7266
  TILEGX_OPC_CMPLES, TILEGX_OPC_CMPLEU, TILEGX_OPC_CMPLTS, TILEGX_OPC_CMPLTU,
7267
  BITFIELD(49, 2) /* index 122 */,
7268
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_CMPEQ, TILEGX_OPC_CMPNE,
7269
  BITFIELD(49, 2) /* index 127 */,
7270
  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_MNZ, TILEGX_OPC_MZ,
7271
  BITFIELD(49, 2) /* index 132 */,
7272
  TILEGX_OPC_AND, TILEGX_OPC_NOR, CHILD(137), TILEGX_OPC_XOR,
7273
  BITFIELD(43, 2) /* index 137 */,
7274
  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(142),
7275
  BITFIELD(45, 2) /* index 142 */,
7276
  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(147),
7277
  BITFIELD(47, 2) /* index 147 */,
7278
  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_MOVE,
7279
  BITFIELD(49, 2) /* index 152 */,
7280
  TILEGX_OPC_ROTL, TILEGX_OPC_SHL, TILEGX_OPC_SHRS, TILEGX_OPC_SHRU,
7281
  BITFIELD(49, 2) /* index 157 */,
7282
  TILEGX_OPC_NONE, TILEGX_OPC_SHL1ADDX, TILEGX_OPC_SHL2ADDX,
7283
  TILEGX_OPC_SHL3ADDX,
7284
  BITFIELD(49, 2) /* index 162 */,
7285
  TILEGX_OPC_ROTLI, TILEGX_OPC_SHLI, TILEGX_OPC_SHRSI, TILEGX_OPC_SHRUI,
7286
};
7287
 
7288
static const unsigned short decode_Y2_fsm[118] =
7289
{
7290
  BITFIELD(62, 2) /* index 0 */,
7291
  TILEGX_OPC_NONE, CHILD(5), CHILD(66), CHILD(109),
7292
  BITFIELD(55, 3) /* index 5 */,
7293
  CHILD(14), CHILD(14), CHILD(14), CHILD(17), CHILD(40), CHILD(40), CHILD(40),
7294
  CHILD(43),
7295
  BITFIELD(26, 1) /* index 14 */,
7296
  TILEGX_OPC_LD1S, TILEGX_OPC_LD1U,
7297
  BITFIELD(26, 1) /* index 17 */,
7298
  CHILD(20), CHILD(30),
7299
  BITFIELD(51, 2) /* index 20 */,
7300
  TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, CHILD(25),
7301
  BITFIELD(53, 2) /* index 25 */,
7302
  TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S,
7303
  TILEGX_OPC_PREFETCH_L1_FAULT,
7304
  BITFIELD(51, 2) /* index 30 */,
7305
  TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, CHILD(35),
7306
  BITFIELD(53, 2) /* index 35 */,
7307
  TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_PREFETCH,
7308
  BITFIELD(26, 1) /* index 40 */,
7309
  TILEGX_OPC_LD2S, TILEGX_OPC_LD2U,
7310
  BITFIELD(26, 1) /* index 43 */,
7311
  CHILD(46), CHILD(56),
7312
  BITFIELD(51, 2) /* index 46 */,
7313
  TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, CHILD(51),
7314
  BITFIELD(53, 2) /* index 51 */,
7315
  TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S,
7316
  TILEGX_OPC_PREFETCH_L2_FAULT,
7317
  BITFIELD(51, 2) /* index 56 */,
7318
  TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, CHILD(61),
7319
  BITFIELD(53, 2) /* index 61 */,
7320
  TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_PREFETCH_L2,
7321
  BITFIELD(56, 2) /* index 66 */,
7322
  CHILD(71), CHILD(74), CHILD(90), CHILD(93),
7323
  BITFIELD(26, 1) /* index 71 */,
7324
  TILEGX_OPC_NONE, TILEGX_OPC_LD4S,
7325
  BITFIELD(26, 1) /* index 74 */,
7326
  TILEGX_OPC_NONE, CHILD(77),
7327
  BITFIELD(51, 2) /* index 77 */,
7328
  TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(82),
7329
  BITFIELD(53, 2) /* index 82 */,
7330
  TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(87),
7331
  BITFIELD(55, 1) /* index 87 */,
7332
  TILEGX_OPC_LD4S, TILEGX_OPC_PREFETCH_L3_FAULT,
7333
  BITFIELD(26, 1) /* index 90 */,
7334
  TILEGX_OPC_LD4U, TILEGX_OPC_LD,
7335
  BITFIELD(26, 1) /* index 93 */,
7336
  CHILD(96), TILEGX_OPC_LD,
7337
  BITFIELD(51, 2) /* index 96 */,
7338
  TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(101),
7339
  BITFIELD(53, 2) /* index 101 */,
7340
  TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(106),
7341
  BITFIELD(55, 1) /* index 106 */,
7342
  TILEGX_OPC_LD4U, TILEGX_OPC_PREFETCH_L3,
7343
  BITFIELD(26, 1) /* index 109 */,
7344
  CHILD(112), CHILD(115),
7345
  BITFIELD(57, 1) /* index 112 */,
7346
  TILEGX_OPC_ST1, TILEGX_OPC_ST4,
7347
  BITFIELD(57, 1) /* index 115 */,
7348
  TILEGX_OPC_ST2, TILEGX_OPC_ST,
7349
};
7350
 
7351
#undef BITFIELD
7352
#undef CHILD
7353
const unsigned short * const
7354
tilegx_bundle_decoder_fsms[TILEGX_NUM_PIPELINE_ENCODINGS] =
7355
{
7356
  decode_X0_fsm,
7357
  decode_X1_fsm,
7358
  decode_Y0_fsm,
7359
  decode_Y1_fsm,
7360
  decode_Y2_fsm
7361
};
7362
const struct tilegx_operand tilegx_operands[35] =
7363
{
7364
  {
7365
    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM8_X0),
7366
    8, 1, 0, 0, 0, 0,
7367
    create_Imm8_X0, get_Imm8_X0
7368
  },
7369
  {
7370
    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM8_X1),
7371
    8, 1, 0, 0, 0, 0,
7372
    create_Imm8_X1, get_Imm8_X1
7373
  },
7374
  {
7375
    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM8_Y0),
7376
    8, 1, 0, 0, 0, 0,
7377
    create_Imm8_Y0, get_Imm8_Y0
7378
  },
7379
  {
7380
    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM8_Y1),
7381
    8, 1, 0, 0, 0, 0,
7382
    create_Imm8_Y1, get_Imm8_Y1
7383
  },
7384
  {
7385
    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM16_X0_HW0_LAST),
7386
    16, 1, 0, 0, 0, 0,
7387
    create_Imm16_X0, get_Imm16_X0
7388
  },
7389
  {
7390
    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM16_X1_HW0_LAST),
7391
    16, 1, 0, 0, 0, 0,
7392
    create_Imm16_X1, get_Imm16_X1
7393
  },
7394
  {
7395
    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7396
    6, 0, 0, 1, 0, 0,
7397 166 khays
    create_Dest_X1, get_Dest_X1
7398 148 khays
  },
7399
  {
7400
    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7401
    6, 0, 1, 0, 0, 0,
7402 166 khays
    create_SrcA_X1, get_SrcA_X1
7403 148 khays
  },
7404
  {
7405
    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7406
    6, 0, 0, 1, 0, 0,
7407 166 khays
    create_Dest_X0, get_Dest_X0
7408 148 khays
  },
7409
  {
7410
    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7411
    6, 0, 1, 0, 0, 0,
7412 166 khays
    create_SrcA_X0, get_SrcA_X0
7413 148 khays
  },
7414
  {
7415
    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7416
    6, 0, 0, 1, 0, 0,
7417
    create_Dest_Y0, get_Dest_Y0
7418
  },
7419
  {
7420
    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7421
    6, 0, 1, 0, 0, 0,
7422
    create_SrcA_Y0, get_SrcA_Y0
7423
  },
7424
  {
7425
    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7426
    6, 0, 0, 1, 0, 0,
7427
    create_Dest_Y1, get_Dest_Y1
7428
  },
7429
  {
7430
    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7431
    6, 0, 1, 0, 0, 0,
7432
    create_SrcA_Y1, get_SrcA_Y1
7433
  },
7434
  {
7435
    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7436
    6, 0, 1, 0, 0, 0,
7437
    create_SrcA_Y2, get_SrcA_Y2
7438
  },
7439
  {
7440
    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7441
    6, 0, 1, 1, 0, 0,
7442
    create_SrcA_X1, get_SrcA_X1
7443
  },
7444
  {
7445
    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7446
    6, 0, 1, 0, 0, 0,
7447
    create_SrcB_X0, get_SrcB_X0
7448
  },
7449
  {
7450
    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7451
    6, 0, 1, 0, 0, 0,
7452
    create_SrcB_X1, get_SrcB_X1
7453
  },
7454
  {
7455
    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7456
    6, 0, 1, 0, 0, 0,
7457
    create_SrcB_Y0, get_SrcB_Y0
7458
  },
7459
  {
7460
    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7461
    6, 0, 1, 0, 0, 0,
7462
    create_SrcB_Y1, get_SrcB_Y1
7463
  },
7464
  {
7465
    TILEGX_OP_TYPE_ADDRESS, BFD_RELOC(TILEGX_BROFF_X1),
7466
    17, 1, 0, 0, 1, TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES,
7467
    create_BrOff_X1, get_BrOff_X1
7468
  },
7469
  {
7470
    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_MMSTART_X0),
7471
    6, 0, 0, 0, 0, 0,
7472
    create_BFStart_X0, get_BFStart_X0
7473
  },
7474
  {
7475
    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_MMEND_X0),
7476
    6, 0, 0, 0, 0, 0,
7477
    create_BFEnd_X0, get_BFEnd_X0
7478
  },
7479
  {
7480
    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7481
    6, 0, 1, 1, 0, 0,
7482
    create_Dest_X0, get_Dest_X0
7483
  },
7484
  {
7485
    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7486
    6, 0, 1, 1, 0, 0,
7487
    create_Dest_Y0, get_Dest_Y0
7488
  },
7489
  {
7490
    TILEGX_OP_TYPE_ADDRESS, BFD_RELOC(TILEGX_JUMPOFF_X1),
7491
    27, 1, 0, 0, 1, TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES,
7492
    create_JumpOff_X1, get_JumpOff_X1
7493
  },
7494
  {
7495
    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7496
    6, 0, 0, 1, 0, 0,
7497
    create_SrcBDest_Y2, get_SrcBDest_Y2
7498
  },
7499
  {
7500
    TILEGX_OP_TYPE_SPR, BFD_RELOC(TILEGX_MF_IMM14_X1),
7501
    14, 0, 0, 0, 0, 0,
7502
    create_MF_Imm14_X1, get_MF_Imm14_X1
7503
  },
7504
  {
7505
    TILEGX_OP_TYPE_SPR, BFD_RELOC(TILEGX_MT_IMM14_X1),
7506
    14, 0, 0, 0, 0, 0,
7507
    create_MT_Imm14_X1, get_MT_Imm14_X1
7508
  },
7509
  {
7510
    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_SHAMT_X0),
7511
    6, 0, 0, 0, 0, 0,
7512
    create_ShAmt_X0, get_ShAmt_X0
7513
  },
7514
  {
7515
    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_SHAMT_X1),
7516
    6, 0, 0, 0, 0, 0,
7517
    create_ShAmt_X1, get_ShAmt_X1
7518
  },
7519
  {
7520
    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_SHAMT_Y0),
7521
    6, 0, 0, 0, 0, 0,
7522
    create_ShAmt_Y0, get_ShAmt_Y0
7523
  },
7524
  {
7525
    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_SHAMT_Y1),
7526
    6, 0, 0, 0, 0, 0,
7527
    create_ShAmt_Y1, get_ShAmt_Y1
7528
  },
7529
  {
7530
    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7531
    6, 0, 1, 0, 0, 0,
7532
    create_SrcBDest_Y2, get_SrcBDest_Y2
7533
  },
7534
  {
7535
    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_DEST_IMM8_X1),
7536
    8, 1, 0, 0, 0, 0,
7537
    create_Dest_Imm8_X1, get_Dest_Imm8_X1
7538
  }
7539
};
7540
 
7541
#ifndef DISASM_ONLY
7542
const struct tilegx_spr tilegx_sprs[] = {
7543
  { 0, "MPL_MEM_ERROR_SET_0" },
7544
  { 1, "MPL_MEM_ERROR_SET_1" },
7545
  { 2, "MPL_MEM_ERROR_SET_2" },
7546
  { 3, "MPL_MEM_ERROR_SET_3" },
7547
  { 4, "MPL_MEM_ERROR" },
7548
  { 5, "MEM_ERROR_CBOX_ADDR" },
7549
  { 6, "MEM_ERROR_CBOX_STATUS" },
7550
  { 7, "MEM_ERROR_ENABLE" },
7551
  { 8, "MEM_ERROR_MBOX_ADDR" },
7552
  { 9, "MEM_ERROR_MBOX_STATUS" },
7553
  { 10, "SBOX_ERROR" },
7554
  { 11, "XDN_DEMUX_ERROR" },
7555
  { 256, "MPL_SINGLE_STEP_3_SET_0" },
7556
  { 257, "MPL_SINGLE_STEP_3_SET_1" },
7557
  { 258, "MPL_SINGLE_STEP_3_SET_2" },
7558
  { 259, "MPL_SINGLE_STEP_3_SET_3" },
7559
  { 260, "MPL_SINGLE_STEP_3" },
7560
  { 261, "SINGLE_STEP_CONTROL_3" },
7561
  { 512, "MPL_SINGLE_STEP_2_SET_0" },
7562
  { 513, "MPL_SINGLE_STEP_2_SET_1" },
7563
  { 514, "MPL_SINGLE_STEP_2_SET_2" },
7564
  { 515, "MPL_SINGLE_STEP_2_SET_3" },
7565
  { 516, "MPL_SINGLE_STEP_2" },
7566
  { 517, "SINGLE_STEP_CONTROL_2" },
7567
  { 768, "MPL_SINGLE_STEP_1_SET_0" },
7568
  { 769, "MPL_SINGLE_STEP_1_SET_1" },
7569
  { 770, "MPL_SINGLE_STEP_1_SET_2" },
7570
  { 771, "MPL_SINGLE_STEP_1_SET_3" },
7571
  { 772, "MPL_SINGLE_STEP_1" },
7572
  { 773, "SINGLE_STEP_CONTROL_1" },
7573
  { 1024, "MPL_SINGLE_STEP_0_SET_0" },
7574
  { 1025, "MPL_SINGLE_STEP_0_SET_1" },
7575
  { 1026, "MPL_SINGLE_STEP_0_SET_2" },
7576
  { 1027, "MPL_SINGLE_STEP_0_SET_3" },
7577
  { 1028, "MPL_SINGLE_STEP_0" },
7578
  { 1029, "SINGLE_STEP_CONTROL_0" },
7579
  { 1280, "MPL_IDN_COMPLETE_SET_0" },
7580
  { 1281, "MPL_IDN_COMPLETE_SET_1" },
7581
  { 1282, "MPL_IDN_COMPLETE_SET_2" },
7582
  { 1283, "MPL_IDN_COMPLETE_SET_3" },
7583
  { 1284, "MPL_IDN_COMPLETE" },
7584
  { 1285, "IDN_COMPLETE_PENDING" },
7585
  { 1536, "MPL_UDN_COMPLETE_SET_0" },
7586
  { 1537, "MPL_UDN_COMPLETE_SET_1" },
7587
  { 1538, "MPL_UDN_COMPLETE_SET_2" },
7588
  { 1539, "MPL_UDN_COMPLETE_SET_3" },
7589
  { 1540, "MPL_UDN_COMPLETE" },
7590
  { 1541, "UDN_COMPLETE_PENDING" },
7591
  { 1792, "MPL_ITLB_MISS_SET_0" },
7592
  { 1793, "MPL_ITLB_MISS_SET_1" },
7593
  { 1794, "MPL_ITLB_MISS_SET_2" },
7594
  { 1795, "MPL_ITLB_MISS_SET_3" },
7595
  { 1796, "MPL_ITLB_MISS" },
7596
  { 1797, "ITLB_TSB_BASE_ADDR_0" },
7597
  { 1798, "ITLB_TSB_BASE_ADDR_1" },
7598
  { 1920, "ITLB_CURRENT_ATTR" },
7599
  { 1921, "ITLB_CURRENT_PA" },
7600
  { 1922, "ITLB_CURRENT_VA" },
7601
  { 1923, "ITLB_INDEX" },
7602
  { 1924, "ITLB_MATCH_0" },
7603
  { 1925, "ITLB_PERF" },
7604
  { 1926, "ITLB_PR" },
7605
  { 1927, "ITLB_TSB_ADDR_0" },
7606
  { 1928, "ITLB_TSB_ADDR_1" },
7607
  { 1929, "ITLB_TSB_FILL_CURRENT_ATTR" },
7608
  { 1930, "ITLB_TSB_FILL_MATCH" },
7609
  { 1931, "NUMBER_ITLB" },
7610
  { 1932, "REPLACEMENT_ITLB" },
7611
  { 1933, "WIRED_ITLB" },
7612
  { 2048, "MPL_ILL_SET_0" },
7613
  { 2049, "MPL_ILL_SET_1" },
7614
  { 2050, "MPL_ILL_SET_2" },
7615
  { 2051, "MPL_ILL_SET_3" },
7616
  { 2052, "MPL_ILL" },
7617
  { 2304, "MPL_GPV_SET_0" },
7618
  { 2305, "MPL_GPV_SET_1" },
7619
  { 2306, "MPL_GPV_SET_2" },
7620
  { 2307, "MPL_GPV_SET_3" },
7621
  { 2308, "MPL_GPV" },
7622
  { 2309, "GPV_REASON" },
7623
  { 2560, "MPL_IDN_ACCESS_SET_0" },
7624
  { 2561, "MPL_IDN_ACCESS_SET_1" },
7625
  { 2562, "MPL_IDN_ACCESS_SET_2" },
7626
  { 2563, "MPL_IDN_ACCESS_SET_3" },
7627
  { 2564, "MPL_IDN_ACCESS" },
7628
  { 2565, "IDN_DEMUX_COUNT_0" },
7629
  { 2566, "IDN_DEMUX_COUNT_1" },
7630
  { 2567, "IDN_FLUSH_EGRESS" },
7631
  { 2568, "IDN_PENDING" },
7632
  { 2569, "IDN_ROUTE_ORDER" },
7633
  { 2570, "IDN_SP_FIFO_CNT" },
7634
  { 2688, "IDN_DATA_AVAIL" },
7635
  { 2816, "MPL_UDN_ACCESS_SET_0" },
7636
  { 2817, "MPL_UDN_ACCESS_SET_1" },
7637
  { 2818, "MPL_UDN_ACCESS_SET_2" },
7638
  { 2819, "MPL_UDN_ACCESS_SET_3" },
7639
  { 2820, "MPL_UDN_ACCESS" },
7640
  { 2821, "UDN_DEMUX_COUNT_0" },
7641
  { 2822, "UDN_DEMUX_COUNT_1" },
7642
  { 2823, "UDN_DEMUX_COUNT_2" },
7643
  { 2824, "UDN_DEMUX_COUNT_3" },
7644
  { 2825, "UDN_FLUSH_EGRESS" },
7645
  { 2826, "UDN_PENDING" },
7646
  { 2827, "UDN_ROUTE_ORDER" },
7647
  { 2828, "UDN_SP_FIFO_CNT" },
7648
  { 2944, "UDN_DATA_AVAIL" },
7649
  { 3072, "MPL_SWINT_3_SET_0" },
7650
  { 3073, "MPL_SWINT_3_SET_1" },
7651
  { 3074, "MPL_SWINT_3_SET_2" },
7652
  { 3075, "MPL_SWINT_3_SET_3" },
7653
  { 3076, "MPL_SWINT_3" },
7654
  { 3328, "MPL_SWINT_2_SET_0" },
7655
  { 3329, "MPL_SWINT_2_SET_1" },
7656
  { 3330, "MPL_SWINT_2_SET_2" },
7657
  { 3331, "MPL_SWINT_2_SET_3" },
7658
  { 3332, "MPL_SWINT_2" },
7659
  { 3584, "MPL_SWINT_1_SET_0" },
7660
  { 3585, "MPL_SWINT_1_SET_1" },
7661
  { 3586, "MPL_SWINT_1_SET_2" },
7662
  { 3587, "MPL_SWINT_1_SET_3" },
7663
  { 3588, "MPL_SWINT_1" },
7664
  { 3840, "MPL_SWINT_0_SET_0" },
7665
  { 3841, "MPL_SWINT_0_SET_1" },
7666
  { 3842, "MPL_SWINT_0_SET_2" },
7667
  { 3843, "MPL_SWINT_0_SET_3" },
7668
  { 3844, "MPL_SWINT_0" },
7669
  { 4096, "MPL_ILL_TRANS_SET_0" },
7670
  { 4097, "MPL_ILL_TRANS_SET_1" },
7671
  { 4098, "MPL_ILL_TRANS_SET_2" },
7672
  { 4099, "MPL_ILL_TRANS_SET_3" },
7673
  { 4100, "MPL_ILL_TRANS" },
7674
  { 4101, "ILL_TRANS_REASON" },
7675
  { 4102, "ILL_VA_PC" },
7676
  { 4352, "MPL_UNALIGN_DATA_SET_0" },
7677
  { 4353, "MPL_UNALIGN_DATA_SET_1" },
7678
  { 4354, "MPL_UNALIGN_DATA_SET_2" },
7679
  { 4355, "MPL_UNALIGN_DATA_SET_3" },
7680
  { 4356, "MPL_UNALIGN_DATA" },
7681
  { 4608, "MPL_DTLB_MISS_SET_0" },
7682
  { 4609, "MPL_DTLB_MISS_SET_1" },
7683
  { 4610, "MPL_DTLB_MISS_SET_2" },
7684
  { 4611, "MPL_DTLB_MISS_SET_3" },
7685
  { 4612, "MPL_DTLB_MISS" },
7686
  { 4613, "DTLB_TSB_BASE_ADDR_0" },
7687
  { 4614, "DTLB_TSB_BASE_ADDR_1" },
7688
  { 4736, "AAR" },
7689
  { 4737, "CACHE_PINNED_WAYS" },
7690
  { 4738, "DTLB_BAD_ADDR" },
7691
  { 4739, "DTLB_BAD_ADDR_REASON" },
7692
  { 4740, "DTLB_CURRENT_ATTR" },
7693
  { 4741, "DTLB_CURRENT_PA" },
7694
  { 4742, "DTLB_CURRENT_VA" },
7695
  { 4743, "DTLB_INDEX" },
7696
  { 4744, "DTLB_MATCH_0" },
7697
  { 4745, "DTLB_PERF" },
7698
  { 4746, "DTLB_TSB_ADDR_0" },
7699
  { 4747, "DTLB_TSB_ADDR_1" },
7700
  { 4748, "DTLB_TSB_FILL_CURRENT_ATTR" },
7701
  { 4749, "DTLB_TSB_FILL_MATCH" },
7702
  { 4750, "NUMBER_DTLB" },
7703
  { 4751, "REPLACEMENT_DTLB" },
7704
  { 4752, "WIRED_DTLB" },
7705
  { 4864, "MPL_DTLB_ACCESS_SET_0" },
7706
  { 4865, "MPL_DTLB_ACCESS_SET_1" },
7707
  { 4866, "MPL_DTLB_ACCESS_SET_2" },
7708
  { 4867, "MPL_DTLB_ACCESS_SET_3" },
7709
  { 4868, "MPL_DTLB_ACCESS" },
7710
  { 5120, "MPL_IDN_FIREWALL_SET_0" },
7711
  { 5121, "MPL_IDN_FIREWALL_SET_1" },
7712
  { 5122, "MPL_IDN_FIREWALL_SET_2" },
7713
  { 5123, "MPL_IDN_FIREWALL_SET_3" },
7714
  { 5124, "MPL_IDN_FIREWALL" },
7715
  { 5125, "IDN_DIRECTION_PROTECT" },
7716
  { 5376, "MPL_UDN_FIREWALL_SET_0" },
7717
  { 5377, "MPL_UDN_FIREWALL_SET_1" },
7718
  { 5378, "MPL_UDN_FIREWALL_SET_2" },
7719
  { 5379, "MPL_UDN_FIREWALL_SET_3" },
7720
  { 5380, "MPL_UDN_FIREWALL" },
7721
  { 5381, "UDN_DIRECTION_PROTECT" },
7722
  { 5632, "MPL_TILE_TIMER_SET_0" },
7723
  { 5633, "MPL_TILE_TIMER_SET_1" },
7724
  { 5634, "MPL_TILE_TIMER_SET_2" },
7725
  { 5635, "MPL_TILE_TIMER_SET_3" },
7726
  { 5636, "MPL_TILE_TIMER" },
7727
  { 5637, "TILE_TIMER_CONTROL" },
7728
  { 5888, "MPL_AUX_TILE_TIMER_SET_0" },
7729
  { 5889, "MPL_AUX_TILE_TIMER_SET_1" },
7730
  { 5890, "MPL_AUX_TILE_TIMER_SET_2" },
7731
  { 5891, "MPL_AUX_TILE_TIMER_SET_3" },
7732
  { 5892, "MPL_AUX_TILE_TIMER" },
7733
  { 5893, "AUX_TILE_TIMER_CONTROL" },
7734
  { 6144, "MPL_IDN_TIMER_SET_0" },
7735
  { 6145, "MPL_IDN_TIMER_SET_1" },
7736
  { 6146, "MPL_IDN_TIMER_SET_2" },
7737
  { 6147, "MPL_IDN_TIMER_SET_3" },
7738
  { 6148, "MPL_IDN_TIMER" },
7739
  { 6149, "IDN_DEADLOCK_COUNT" },
7740
  { 6150, "IDN_DEADLOCK_TIMEOUT" },
7741
  { 6400, "MPL_UDN_TIMER_SET_0" },
7742
  { 6401, "MPL_UDN_TIMER_SET_1" },
7743
  { 6402, "MPL_UDN_TIMER_SET_2" },
7744
  { 6403, "MPL_UDN_TIMER_SET_3" },
7745
  { 6404, "MPL_UDN_TIMER" },
7746
  { 6405, "UDN_DEADLOCK_COUNT" },
7747
  { 6406, "UDN_DEADLOCK_TIMEOUT" },
7748
  { 6656, "MPL_IDN_AVAIL_SET_0" },
7749
  { 6657, "MPL_IDN_AVAIL_SET_1" },
7750
  { 6658, "MPL_IDN_AVAIL_SET_2" },
7751
  { 6659, "MPL_IDN_AVAIL_SET_3" },
7752
  { 6660, "MPL_IDN_AVAIL" },
7753
  { 6661, "IDN_AVAIL_EN" },
7754
  { 6912, "MPL_UDN_AVAIL_SET_0" },
7755
  { 6913, "MPL_UDN_AVAIL_SET_1" },
7756
  { 6914, "MPL_UDN_AVAIL_SET_2" },
7757
  { 6915, "MPL_UDN_AVAIL_SET_3" },
7758
  { 6916, "MPL_UDN_AVAIL" },
7759
  { 6917, "UDN_AVAIL_EN" },
7760
  { 7168, "MPL_IPI_3_SET_0" },
7761
  { 7169, "MPL_IPI_3_SET_1" },
7762
  { 7170, "MPL_IPI_3_SET_2" },
7763
  { 7171, "MPL_IPI_3_SET_3" },
7764
  { 7172, "MPL_IPI_3" },
7765
  { 7173, "IPI_EVENT_3" },
7766
  { 7174, "IPI_EVENT_RESET_3" },
7767
  { 7175, "IPI_EVENT_SET_3" },
7768
  { 7176, "IPI_MASK_3" },
7769
  { 7177, "IPI_MASK_RESET_3" },
7770
  { 7178, "IPI_MASK_SET_3" },
7771
  { 7424, "MPL_IPI_2_SET_0" },
7772
  { 7425, "MPL_IPI_2_SET_1" },
7773
  { 7426, "MPL_IPI_2_SET_2" },
7774
  { 7427, "MPL_IPI_2_SET_3" },
7775
  { 7428, "MPL_IPI_2" },
7776
  { 7429, "IPI_EVENT_2" },
7777
  { 7430, "IPI_EVENT_RESET_2" },
7778
  { 7431, "IPI_EVENT_SET_2" },
7779
  { 7432, "IPI_MASK_2" },
7780
  { 7433, "IPI_MASK_RESET_2" },
7781
  { 7434, "IPI_MASK_SET_2" },
7782
  { 7680, "MPL_IPI_1_SET_0" },
7783
  { 7681, "MPL_IPI_1_SET_1" },
7784
  { 7682, "MPL_IPI_1_SET_2" },
7785
  { 7683, "MPL_IPI_1_SET_3" },
7786
  { 7684, "MPL_IPI_1" },
7787
  { 7685, "IPI_EVENT_1" },
7788
  { 7686, "IPI_EVENT_RESET_1" },
7789
  { 7687, "IPI_EVENT_SET_1" },
7790
  { 7688, "IPI_MASK_1" },
7791
  { 7689, "IPI_MASK_RESET_1" },
7792
  { 7690, "IPI_MASK_SET_1" },
7793
  { 7936, "MPL_IPI_0_SET_0" },
7794
  { 7937, "MPL_IPI_0_SET_1" },
7795
  { 7938, "MPL_IPI_0_SET_2" },
7796
  { 7939, "MPL_IPI_0_SET_3" },
7797
  { 7940, "MPL_IPI_0" },
7798
  { 7941, "IPI_EVENT_0" },
7799
  { 7942, "IPI_EVENT_RESET_0" },
7800
  { 7943, "IPI_EVENT_SET_0" },
7801
  { 7944, "IPI_MASK_0" },
7802
  { 7945, "IPI_MASK_RESET_0" },
7803
  { 7946, "IPI_MASK_SET_0" },
7804
  { 8192, "MPL_PERF_COUNT_SET_0" },
7805
  { 8193, "MPL_PERF_COUNT_SET_1" },
7806
  { 8194, "MPL_PERF_COUNT_SET_2" },
7807
  { 8195, "MPL_PERF_COUNT_SET_3" },
7808
  { 8196, "MPL_PERF_COUNT" },
7809
  { 8197, "PERF_COUNT_0" },
7810
  { 8198, "PERF_COUNT_1" },
7811
  { 8199, "PERF_COUNT_CTL" },
7812
  { 8200, "PERF_COUNT_DN_CTL" },
7813
  { 8201, "PERF_COUNT_STS" },
7814
  { 8202, "WATCH_MASK" },
7815
  { 8203, "WATCH_VAL" },
7816
  { 8448, "MPL_AUX_PERF_COUNT_SET_0" },
7817
  { 8449, "MPL_AUX_PERF_COUNT_SET_1" },
7818
  { 8450, "MPL_AUX_PERF_COUNT_SET_2" },
7819
  { 8451, "MPL_AUX_PERF_COUNT_SET_3" },
7820
  { 8452, "MPL_AUX_PERF_COUNT" },
7821
  { 8453, "AUX_PERF_COUNT_0" },
7822
  { 8454, "AUX_PERF_COUNT_1" },
7823
  { 8455, "AUX_PERF_COUNT_CTL" },
7824
  { 8456, "AUX_PERF_COUNT_STS" },
7825
  { 8704, "MPL_INTCTRL_3_SET_0" },
7826
  { 8705, "MPL_INTCTRL_3_SET_1" },
7827
  { 8706, "MPL_INTCTRL_3_SET_2" },
7828
  { 8707, "MPL_INTCTRL_3_SET_3" },
7829
  { 8708, "MPL_INTCTRL_3" },
7830
  { 8709, "INTCTRL_3_STATUS" },
7831
  { 8710, "INTERRUPT_MASK_3" },
7832
  { 8711, "INTERRUPT_MASK_RESET_3" },
7833
  { 8712, "INTERRUPT_MASK_SET_3" },
7834
  { 8713, "INTERRUPT_VECTOR_BASE_3" },
7835
  { 8714, "SINGLE_STEP_EN_0_3" },
7836
  { 8715, "SINGLE_STEP_EN_1_3" },
7837
  { 8716, "SINGLE_STEP_EN_2_3" },
7838
  { 8717, "SINGLE_STEP_EN_3_3" },
7839
  { 8832, "EX_CONTEXT_3_0" },
7840
  { 8833, "EX_CONTEXT_3_1" },
7841
  { 8834, "SYSTEM_SAVE_3_0" },
7842
  { 8835, "SYSTEM_SAVE_3_1" },
7843
  { 8836, "SYSTEM_SAVE_3_2" },
7844
  { 8837, "SYSTEM_SAVE_3_3" },
7845
  { 8960, "MPL_INTCTRL_2_SET_0" },
7846
  { 8961, "MPL_INTCTRL_2_SET_1" },
7847
  { 8962, "MPL_INTCTRL_2_SET_2" },
7848
  { 8963, "MPL_INTCTRL_2_SET_3" },
7849
  { 8964, "MPL_INTCTRL_2" },
7850
  { 8965, "INTCTRL_2_STATUS" },
7851
  { 8966, "INTERRUPT_MASK_2" },
7852
  { 8967, "INTERRUPT_MASK_RESET_2" },
7853
  { 8968, "INTERRUPT_MASK_SET_2" },
7854
  { 8969, "INTERRUPT_VECTOR_BASE_2" },
7855
  { 8970, "SINGLE_STEP_EN_0_2" },
7856
  { 8971, "SINGLE_STEP_EN_1_2" },
7857
  { 8972, "SINGLE_STEP_EN_2_2" },
7858
  { 8973, "SINGLE_STEP_EN_3_2" },
7859
  { 9088, "EX_CONTEXT_2_0" },
7860
  { 9089, "EX_CONTEXT_2_1" },
7861
  { 9090, "SYSTEM_SAVE_2_0" },
7862
  { 9091, "SYSTEM_SAVE_2_1" },
7863
  { 9092, "SYSTEM_SAVE_2_2" },
7864
  { 9093, "SYSTEM_SAVE_2_3" },
7865
  { 9216, "MPL_INTCTRL_1_SET_0" },
7866
  { 9217, "MPL_INTCTRL_1_SET_1" },
7867
  { 9218, "MPL_INTCTRL_1_SET_2" },
7868
  { 9219, "MPL_INTCTRL_1_SET_3" },
7869
  { 9220, "MPL_INTCTRL_1" },
7870
  { 9221, "INTCTRL_1_STATUS" },
7871
  { 9222, "INTERRUPT_MASK_1" },
7872
  { 9223, "INTERRUPT_MASK_RESET_1" },
7873
  { 9224, "INTERRUPT_MASK_SET_1" },
7874
  { 9225, "INTERRUPT_VECTOR_BASE_1" },
7875
  { 9226, "SINGLE_STEP_EN_0_1" },
7876
  { 9227, "SINGLE_STEP_EN_1_1" },
7877
  { 9228, "SINGLE_STEP_EN_2_1" },
7878
  { 9229, "SINGLE_STEP_EN_3_1" },
7879
  { 9344, "EX_CONTEXT_1_0" },
7880
  { 9345, "EX_CONTEXT_1_1" },
7881
  { 9346, "SYSTEM_SAVE_1_0" },
7882
  { 9347, "SYSTEM_SAVE_1_1" },
7883
  { 9348, "SYSTEM_SAVE_1_2" },
7884
  { 9349, "SYSTEM_SAVE_1_3" },
7885
  { 9472, "MPL_INTCTRL_0_SET_0" },
7886
  { 9473, "MPL_INTCTRL_0_SET_1" },
7887
  { 9474, "MPL_INTCTRL_0_SET_2" },
7888
  { 9475, "MPL_INTCTRL_0_SET_3" },
7889
  { 9476, "MPL_INTCTRL_0" },
7890
  { 9477, "INTCTRL_0_STATUS" },
7891
  { 9478, "INTERRUPT_MASK_0" },
7892
  { 9479, "INTERRUPT_MASK_RESET_0" },
7893
  { 9480, "INTERRUPT_MASK_SET_0" },
7894
  { 9481, "INTERRUPT_VECTOR_BASE_0" },
7895
  { 9482, "SINGLE_STEP_EN_0_0" },
7896
  { 9483, "SINGLE_STEP_EN_1_0" },
7897
  { 9484, "SINGLE_STEP_EN_2_0" },
7898
  { 9485, "SINGLE_STEP_EN_3_0" },
7899
  { 9600, "EX_CONTEXT_0_0" },
7900
  { 9601, "EX_CONTEXT_0_1" },
7901
  { 9602, "SYSTEM_SAVE_0_0" },
7902
  { 9603, "SYSTEM_SAVE_0_1" },
7903
  { 9604, "SYSTEM_SAVE_0_2" },
7904
  { 9605, "SYSTEM_SAVE_0_3" },
7905
  { 9728, "MPL_BOOT_ACCESS_SET_0" },
7906
  { 9729, "MPL_BOOT_ACCESS_SET_1" },
7907
  { 9730, "MPL_BOOT_ACCESS_SET_2" },
7908
  { 9731, "MPL_BOOT_ACCESS_SET_3" },
7909
  { 9732, "MPL_BOOT_ACCESS" },
7910
  { 9733, "BIG_ENDIAN_CONFIG" },
7911
  { 9734, "CACHE_INVALIDATION_COMPRESSION_MODE" },
7912
  { 9735, "CACHE_INVALIDATION_MASK_0" },
7913
  { 9736, "CACHE_INVALIDATION_MASK_1" },
7914
  { 9737, "CACHE_INVALIDATION_MASK_2" },
7915
  { 9738, "CBOX_CACHEASRAM_CONFIG" },
7916
  { 9739, "CBOX_CACHE_CONFIG" },
7917
  { 9740, "CBOX_HOME_MAP_ADDR" },
7918
  { 9741, "CBOX_HOME_MAP_DATA" },
7919
  { 9742, "CBOX_MMAP_0" },
7920
  { 9743, "CBOX_MMAP_1" },
7921
  { 9744, "CBOX_MMAP_2" },
7922
  { 9745, "CBOX_MMAP_3" },
7923
  { 9746, "CBOX_MSR" },
7924
  { 9747, "DIAG_BCST_CTL" },
7925
  { 9748, "DIAG_BCST_MASK" },
7926
  { 9749, "DIAG_BCST_TRIGGER" },
7927
  { 9750, "DIAG_MUX_CTL" },
7928
  { 9751, "DIAG_TRACE_CTL" },
7929
  { 9752, "DIAG_TRACE_DATA" },
7930
  { 9753, "DIAG_TRACE_STS" },
7931
  { 9754, "IDN_DEMUX_BUF_THRESH" },
7932
  { 9755, "L1_I_PIN_WAY_0" },
7933
  { 9756, "MEM_ROUTE_ORDER" },
7934
  { 9757, "MEM_STRIPE_CONFIG" },
7935
  { 9758, "PERF_COUNT_PLS" },
7936
  { 9759, "PSEUDO_RANDOM_NUMBER_MODIFY" },
7937
  { 9760, "QUIESCE_CTL" },
7938
  { 9761, "RSHIM_COORD" },
7939
  { 9762, "SBOX_CONFIG" },
7940
  { 9763, "UDN_DEMUX_BUF_THRESH" },
7941
  { 9764, "XDN_CORE_STARVATION_COUNT" },
7942
  { 9765, "XDN_ROUND_ROBIN_ARB_CTL" },
7943
  { 9856, "CYCLE_MODIFY" },
7944
  { 9857, "I_AAR" },
7945
  { 9984, "MPL_WORLD_ACCESS_SET_0" },
7946
  { 9985, "MPL_WORLD_ACCESS_SET_1" },
7947
  { 9986, "MPL_WORLD_ACCESS_SET_2" },
7948
  { 9987, "MPL_WORLD_ACCESS_SET_3" },
7949
  { 9988, "MPL_WORLD_ACCESS" },
7950
  { 9989, "DONE" },
7951
  { 9990, "DSTREAM_PF" },
7952
  { 9991, "FAIL" },
7953
  { 9992, "INTERRUPT_CRITICAL_SECTION" },
7954
  { 9993, "PASS" },
7955
  { 9994, "PSEUDO_RANDOM_NUMBER" },
7956
  { 9995, "TILE_COORD" },
7957
  { 9996, "TILE_RTF_HWM" },
7958
  { 10112, "CMPEXCH_VALUE" },
7959
  { 10113, "CYCLE" },
7960
  { 10114, "EVENT_BEGIN" },
7961
  { 10115, "EVENT_END" },
7962
  { 10116, "PROC_STATUS" },
7963
  { 10117, "SIM_CONTROL" },
7964
  { 10118, "SIM_SOCKET" },
7965
  { 10119, "STATUS_SATURATE" },
7966
  { 10240, "MPL_I_ASID_SET_0" },
7967
  { 10241, "MPL_I_ASID_SET_1" },
7968
  { 10242, "MPL_I_ASID_SET_2" },
7969
  { 10243, "MPL_I_ASID_SET_3" },
7970
  { 10244, "MPL_I_ASID" },
7971
  { 10245, "I_ASID" },
7972
  { 10496, "MPL_D_ASID_SET_0" },
7973
  { 10497, "MPL_D_ASID_SET_1" },
7974
  { 10498, "MPL_D_ASID_SET_2" },
7975
  { 10499, "MPL_D_ASID_SET_3" },
7976
  { 10500, "MPL_D_ASID" },
7977
  { 10501, "D_ASID" },
7978
  { 10752, "MPL_DOUBLE_FAULT_SET_0" },
7979
  { 10753, "MPL_DOUBLE_FAULT_SET_1" },
7980
  { 10754, "MPL_DOUBLE_FAULT_SET_2" },
7981
  { 10755, "MPL_DOUBLE_FAULT_SET_3" },
7982
  { 10756, "MPL_DOUBLE_FAULT" },
7983
  { 10757, "LAST_INTERRUPT_REASON" },
7984
};
7985
 
7986
const int tilegx_num_sprs = 441;
7987
 
7988
#endif /* DISASM_ONLY */
7989
 
7990
#ifndef DISASM_ONLY
7991
 
7992
#include <stdlib.h>
7993
 
7994
static int
7995
tilegx_spr_compare (const void *a_ptr, const void *b_ptr)
7996
{
7997
  const struct tilegx_spr *a = (const struct tilegx_spr *) a_ptr;
7998
  const struct tilegx_spr *b = (const struct tilegx_spr *) b_ptr;
7999
  return (a->number - b->number);
8000
}
8001
 
8002
const char *
8003
get_tilegx_spr_name (int num)
8004
{
8005
  void *result;
8006
  struct tilegx_spr key;
8007
 
8008
  key.number = num;
8009
  result = bsearch ((const void *) &key, (const void *) tilegx_sprs,
8010
                    tilegx_num_sprs, sizeof (struct tilegx_spr),
8011
                    tilegx_spr_compare);
8012
 
8013
  if (result == NULL)
8014
    return NULL;
8015
 
8016
  {
8017
    struct tilegx_spr *result_ptr = (struct tilegx_spr *) result;
8018
 
8019
    return result_ptr->name;
8020
  }
8021
}
8022
 
8023
/* Canonical name of each register.  */
8024
const char * const tilegx_register_names[] =
8025
{
8026
  "r0",   "r1",  "r2",  "r3",  "r4",  "r5",  "r6",  "r7",
8027
  "r8",   "r9",  "r10", "r11", "r12", "r13", "r14", "r15",
8028
  "r16",  "r17", "r18", "r19", "r20", "r21", "r22", "r23",
8029
  "r24",  "r25", "r26", "r27", "r28", "r29", "r30", "r31",
8030
  "r32",  "r33", "r34", "r35", "r36", "r37", "r38", "r39",
8031
  "r40",  "r41", "r42", "r43", "r44", "r45", "r46", "r47",
8032
  "r48",  "r49", "r50", "r51", "r52", "tp",  "sp",  "lr",
8033
  "sn",  "idn0", "idn1", "udn0", "udn1", "udn2", "udn3", "zero"
8034
};
8035
 
8036
#endif /* not DISASM_ONLY */
8037
 
8038
 
8039
/* Given a set of bundle bits and the lookup FSM for a specific pipe,
8040
   returns which instruction the bundle contains in that pipe.  */
8041
 
8042
static const struct tilegx_opcode *
8043
find_opcode (tilegx_bundle_bits bits, const unsigned short *table)
8044
{
8045 158 khays
  int i = 0;
8046 148 khays
 
8047
  while (1)
8048
    {
8049 158 khays
      unsigned short bitspec = table[i];
8050 148 khays
      unsigned int bitfield =
8051
        ((unsigned int)(bits >> (bitspec & 63))) & (bitspec >> 6);
8052
 
8053 158 khays
      unsigned short next = table[i + 1 + bitfield];
8054 148 khays
      if (next <= TILEGX_OPC_NONE)
8055
        return & tilegx_opcodes[next];
8056
 
8057 158 khays
      i = next - TILEGX_OPC_NONE;
8058 148 khays
    }
8059
}
8060
 
8061
int
8062
parse_insn_tilegx (tilegx_bundle_bits bits,
8063
                   unsigned long long pc,
8064
                   struct tilegx_decoded_instruction
8065
                   decoded[TILEGX_MAX_INSTRUCTIONS_PER_BUNDLE])
8066
{
8067
  int num_instructions = 0;
8068
  int pipe;
8069
  int min_pipe, max_pipe;
8070
 
8071
  if ((bits & TILEGX_BUNDLE_MODE_MASK) == 0)
8072
    {
8073
      min_pipe = TILEGX_PIPELINE_X0;
8074
      max_pipe = TILEGX_PIPELINE_X1;
8075
    }
8076
  else
8077
    {
8078
      min_pipe = TILEGX_PIPELINE_Y0;
8079
      max_pipe = TILEGX_PIPELINE_Y2;
8080
    }
8081
 
8082
  /* For each pipe, find an instruction that fits.  */
8083
  for (pipe = min_pipe; pipe <= max_pipe; pipe++)
8084
    {
8085
      const struct tilegx_opcode *opc;
8086
      struct tilegx_decoded_instruction *d;
8087
      int i;
8088
 
8089
      d = &decoded[num_instructions++];
8090
      opc = find_opcode (bits, tilegx_bundle_decoder_fsms[pipe]);
8091
      d->opcode = opc;
8092
 
8093
      /* Decode each operand, sign extending, etc. as appropriate.  */
8094
      for (i = 0; i < opc->num_operands; i++)
8095
        {
8096
          const struct tilegx_operand *op =
8097
            &tilegx_operands[opc->operands[pipe][i]];
8098
          int raw_opval = op->extract (bits);
8099
          long long opval;
8100
 
8101
          if (op->is_signed)
8102
            {
8103
              /* Sign-extend the operand.  */
8104
              int shift = (int)((sizeof(int) * 8) - op->num_bits);
8105
              raw_opval = (raw_opval << shift) >> shift;
8106
            }
8107
 
8108
          /* Adjust PC-relative scaled branch offsets.  */
8109
          if (op->type == TILEGX_OP_TYPE_ADDRESS)
8110
            opval = (raw_opval * TILEGX_BUNDLE_SIZE_IN_BYTES) + pc;
8111
          else
8112
            opval = raw_opval;
8113
 
8114
          /* Record the final value.  */
8115
          d->operands[i] = op;
8116
          d->operand_values[i] = opval;
8117
        }
8118
    }
8119
 
8120
  return num_instructions;
8121
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.