Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
tile-desc_32.c
Go to the documentation of this file.
1 /* TILEPro opcode information.
2  *
3  * Copyright 2011 Tilera Corporation. All Rights Reserved.
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation, version 2.
8  *
9  * This program is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
12  * NON INFRINGEMENT. See the GNU General Public License for
13  * more details.
14  *
15  *
16  *
17  *
18  *
19  */
20 
21 /* This define is BFD_RELOC_##x for real bfd, or -1 for everyone else. */
22 #define BFD_RELOC(x) -1
23 
24 /* Special registers. */
25 #define TREG_LR 55
26 #define TREG_SN 56
27 #define TREG_ZERO 63
28 
29 #include <linux/stddef.h>
30 #include <asm/tile-desc.h>
31 
32 const struct tilepro_opcode tilepro_opcodes[395] =
33 {
34  { "bpt", TILEPRO_OPC_BPT, 0x2, 0, TREG_ZERO, 0,
35  { { 0, }, { }, { 0, }, { 0, }, { 0, } },
36  },
37  { "info", TILEPRO_OPC_INFO, 0xf, 1, TREG_ZERO, 1,
38  { { 0 }, { 1 }, { 2 }, { 3 }, { 0, } },
39  },
40  { "infol", TILEPRO_OPC_INFOL, 0x3, 1, TREG_ZERO, 1,
41  { { 4 }, { 5 }, { 0, }, { 0, }, { 0, } },
42  },
43  { "j", TILEPRO_OPC_J, 0x2, 1, TREG_ZERO, 1,
44  { { 0, }, { 6 }, { 0, }, { 0, }, { 0, } },
45  },
46  { "jal", TILEPRO_OPC_JAL, 0x2, 1, TREG_LR, 1,
47  { { 0, }, { 6 }, { 0, }, { 0, }, { 0, } },
48  },
49  { "move", TILEPRO_OPC_MOVE, 0xf, 2, TREG_ZERO, 1,
50  { { 7, 8 }, { 9, 10 }, { 11, 12 }, { 13, 14 }, { 0, } },
51  },
52  { "move.sn", TILEPRO_OPC_MOVE_SN, 0x3, 2, TREG_SN, 1,
53  { { 7, 8 }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
54  },
55  { "movei", TILEPRO_OPC_MOVEI, 0xf, 2, TREG_ZERO, 1,
56  { { 7, 0 }, { 9, 1 }, { 11, 2 }, { 13, 3 }, { 0, } },
57  },
58  { "movei.sn", TILEPRO_OPC_MOVEI_SN, 0x3, 2, TREG_SN, 1,
59  { { 7, 0 }, { 9, 1 }, { 0, }, { 0, }, { 0, } },
60  },
61  { "moveli", TILEPRO_OPC_MOVELI, 0x3, 2, TREG_ZERO, 1,
62  { { 7, 4 }, { 9, 5 }, { 0, }, { 0, }, { 0, } },
63  },
64  { "moveli.sn", TILEPRO_OPC_MOVELI_SN, 0x3, 2, TREG_SN, 1,
65  { { 7, 4 }, { 9, 5 }, { 0, }, { 0, }, { 0, } },
66  },
67  { "movelis", TILEPRO_OPC_MOVELIS, 0x3, 2, TREG_SN, 1,
68  { { 7, 4 }, { 9, 5 }, { 0, }, { 0, }, { 0, } },
69  },
70  { "prefetch", TILEPRO_OPC_PREFETCH, 0x12, 1, TREG_ZERO, 1,
71  { { 0, }, { 10 }, { 0, }, { 0, }, { 15 } },
72  },
73  { "raise", TILEPRO_OPC_RAISE, 0x2, 0, TREG_ZERO, 1,
74  { { 0, }, { }, { 0, }, { 0, }, { 0, } },
75  },
76  { "add", TILEPRO_OPC_ADD, 0xf, 3, TREG_ZERO, 1,
77  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
78  },
79  { "add.sn", TILEPRO_OPC_ADD_SN, 0x3, 3, TREG_SN, 1,
80  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
81  },
82  { "addb", TILEPRO_OPC_ADDB, 0x3, 3, TREG_ZERO, 1,
83  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
84  },
85  { "addb.sn", TILEPRO_OPC_ADDB_SN, 0x3, 3, TREG_SN, 1,
86  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
87  },
88  { "addbs_u", TILEPRO_OPC_ADDBS_U, 0x3, 3, TREG_ZERO, 1,
89  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
90  },
91  { "addbs_u.sn", TILEPRO_OPC_ADDBS_U_SN, 0x3, 3, TREG_SN, 1,
92  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
93  },
94  { "addh", TILEPRO_OPC_ADDH, 0x3, 3, TREG_ZERO, 1,
95  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
96  },
97  { "addh.sn", TILEPRO_OPC_ADDH_SN, 0x3, 3, TREG_SN, 1,
98  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
99  },
100  { "addhs", TILEPRO_OPC_ADDHS, 0x3, 3, TREG_ZERO, 1,
101  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
102  },
103  { "addhs.sn", TILEPRO_OPC_ADDHS_SN, 0x3, 3, TREG_SN, 1,
104  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
105  },
106  { "addi", TILEPRO_OPC_ADDI, 0xf, 3, TREG_ZERO, 1,
107  { { 7, 8, 0 }, { 9, 10, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
108  },
109  { "addi.sn", TILEPRO_OPC_ADDI_SN, 0x3, 3, TREG_SN, 1,
110  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
111  },
112  { "addib", TILEPRO_OPC_ADDIB, 0x3, 3, TREG_ZERO, 1,
113  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
114  },
115  { "addib.sn", TILEPRO_OPC_ADDIB_SN, 0x3, 3, TREG_SN, 1,
116  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
117  },
118  { "addih", TILEPRO_OPC_ADDIH, 0x3, 3, TREG_ZERO, 1,
119  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
120  },
121  { "addih.sn", TILEPRO_OPC_ADDIH_SN, 0x3, 3, TREG_SN, 1,
122  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
123  },
124  { "addli", TILEPRO_OPC_ADDLI, 0x3, 3, TREG_ZERO, 1,
125  { { 7, 8, 4 }, { 9, 10, 5 }, { 0, }, { 0, }, { 0, } },
126  },
127  { "addli.sn", TILEPRO_OPC_ADDLI_SN, 0x3, 3, TREG_SN, 1,
128  { { 7, 8, 4 }, { 9, 10, 5 }, { 0, }, { 0, }, { 0, } },
129  },
130  { "addlis", TILEPRO_OPC_ADDLIS, 0x3, 3, TREG_SN, 1,
131  { { 7, 8, 4 }, { 9, 10, 5 }, { 0, }, { 0, }, { 0, } },
132  },
133  { "adds", TILEPRO_OPC_ADDS, 0x3, 3, TREG_ZERO, 1,
134  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
135  },
136  { "adds.sn", TILEPRO_OPC_ADDS_SN, 0x3, 3, TREG_SN, 1,
137  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
138  },
139  { "adiffb_u", TILEPRO_OPC_ADIFFB_U, 0x1, 3, TREG_ZERO, 1,
140  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
141  },
142  { "adiffb_u.sn", TILEPRO_OPC_ADIFFB_U_SN, 0x1, 3, TREG_SN, 1,
143  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
144  },
145  { "adiffh", TILEPRO_OPC_ADIFFH, 0x1, 3, TREG_ZERO, 1,
146  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
147  },
148  { "adiffh.sn", TILEPRO_OPC_ADIFFH_SN, 0x1, 3, TREG_SN, 1,
149  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
150  },
151  { "and", TILEPRO_OPC_AND, 0xf, 3, TREG_ZERO, 1,
152  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
153  },
154  { "and.sn", TILEPRO_OPC_AND_SN, 0x3, 3, TREG_SN, 1,
155  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
156  },
157  { "andi", TILEPRO_OPC_ANDI, 0xf, 3, TREG_ZERO, 1,
158  { { 7, 8, 0 }, { 9, 10, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
159  },
160  { "andi.sn", TILEPRO_OPC_ANDI_SN, 0x3, 3, TREG_SN, 1,
161  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
162  },
163  { "auli", TILEPRO_OPC_AULI, 0x3, 3, TREG_ZERO, 1,
164  { { 7, 8, 4 }, { 9, 10, 5 }, { 0, }, { 0, }, { 0, } },
165  },
166  { "avgb_u", TILEPRO_OPC_AVGB_U, 0x1, 3, TREG_ZERO, 1,
167  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
168  },
169  { "avgb_u.sn", TILEPRO_OPC_AVGB_U_SN, 0x1, 3, TREG_SN, 1,
170  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
171  },
172  { "avgh", TILEPRO_OPC_AVGH, 0x1, 3, TREG_ZERO, 1,
173  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
174  },
175  { "avgh.sn", TILEPRO_OPC_AVGH_SN, 0x1, 3, TREG_SN, 1,
176  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
177  },
178  { "bbns", TILEPRO_OPC_BBNS, 0x2, 2, TREG_ZERO, 1,
179  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
180  },
181  { "bbns.sn", TILEPRO_OPC_BBNS_SN, 0x2, 2, TREG_SN, 1,
182  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
183  },
184  { "bbnst", TILEPRO_OPC_BBNST, 0x2, 2, TREG_ZERO, 1,
185  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
186  },
187  { "bbnst.sn", TILEPRO_OPC_BBNST_SN, 0x2, 2, TREG_SN, 1,
188  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
189  },
190  { "bbs", TILEPRO_OPC_BBS, 0x2, 2, TREG_ZERO, 1,
191  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
192  },
193  { "bbs.sn", TILEPRO_OPC_BBS_SN, 0x2, 2, TREG_SN, 1,
194  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
195  },
196  { "bbst", TILEPRO_OPC_BBST, 0x2, 2, TREG_ZERO, 1,
197  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
198  },
199  { "bbst.sn", TILEPRO_OPC_BBST_SN, 0x2, 2, TREG_SN, 1,
200  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
201  },
202  { "bgez", TILEPRO_OPC_BGEZ, 0x2, 2, TREG_ZERO, 1,
203  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
204  },
205  { "bgez.sn", TILEPRO_OPC_BGEZ_SN, 0x2, 2, TREG_SN, 1,
206  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
207  },
208  { "bgezt", TILEPRO_OPC_BGEZT, 0x2, 2, TREG_ZERO, 1,
209  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
210  },
211  { "bgezt.sn", TILEPRO_OPC_BGEZT_SN, 0x2, 2, TREG_SN, 1,
212  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
213  },
214  { "bgz", TILEPRO_OPC_BGZ, 0x2, 2, TREG_ZERO, 1,
215  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
216  },
217  { "bgz.sn", TILEPRO_OPC_BGZ_SN, 0x2, 2, TREG_SN, 1,
218  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
219  },
220  { "bgzt", TILEPRO_OPC_BGZT, 0x2, 2, TREG_ZERO, 1,
221  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
222  },
223  { "bgzt.sn", TILEPRO_OPC_BGZT_SN, 0x2, 2, TREG_SN, 1,
224  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
225  },
226  { "bitx", TILEPRO_OPC_BITX, 0x5, 2, TREG_ZERO, 1,
227  { { 7, 8 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
228  },
229  { "bitx.sn", TILEPRO_OPC_BITX_SN, 0x1, 2, TREG_SN, 1,
230  { { 7, 8 }, { 0, }, { 0, }, { 0, }, { 0, } },
231  },
232  { "blez", TILEPRO_OPC_BLEZ, 0x2, 2, TREG_ZERO, 1,
233  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
234  },
235  { "blez.sn", TILEPRO_OPC_BLEZ_SN, 0x2, 2, TREG_SN, 1,
236  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
237  },
238  { "blezt", TILEPRO_OPC_BLEZT, 0x2, 2, TREG_ZERO, 1,
239  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
240  },
241  { "blezt.sn", TILEPRO_OPC_BLEZT_SN, 0x2, 2, TREG_SN, 1,
242  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
243  },
244  { "blz", TILEPRO_OPC_BLZ, 0x2, 2, TREG_ZERO, 1,
245  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
246  },
247  { "blz.sn", TILEPRO_OPC_BLZ_SN, 0x2, 2, TREG_SN, 1,
248  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
249  },
250  { "blzt", TILEPRO_OPC_BLZT, 0x2, 2, TREG_ZERO, 1,
251  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
252  },
253  { "blzt.sn", TILEPRO_OPC_BLZT_SN, 0x2, 2, TREG_SN, 1,
254  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
255  },
256  { "bnz", TILEPRO_OPC_BNZ, 0x2, 2, TREG_ZERO, 1,
257  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
258  },
259  { "bnz.sn", TILEPRO_OPC_BNZ_SN, 0x2, 2, TREG_SN, 1,
260  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
261  },
262  { "bnzt", TILEPRO_OPC_BNZT, 0x2, 2, TREG_ZERO, 1,
263  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
264  },
265  { "bnzt.sn", TILEPRO_OPC_BNZT_SN, 0x2, 2, TREG_SN, 1,
266  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
267  },
268  { "bytex", TILEPRO_OPC_BYTEX, 0x5, 2, TREG_ZERO, 1,
269  { { 7, 8 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
270  },
271  { "bytex.sn", TILEPRO_OPC_BYTEX_SN, 0x1, 2, TREG_SN, 1,
272  { { 7, 8 }, { 0, }, { 0, }, { 0, }, { 0, } },
273  },
274  { "bz", TILEPRO_OPC_BZ, 0x2, 2, TREG_ZERO, 1,
275  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
276  },
277  { "bz.sn", TILEPRO_OPC_BZ_SN, 0x2, 2, TREG_SN, 1,
278  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
279  },
280  { "bzt", TILEPRO_OPC_BZT, 0x2, 2, TREG_ZERO, 1,
281  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
282  },
283  { "bzt.sn", TILEPRO_OPC_BZT_SN, 0x2, 2, TREG_SN, 1,
284  { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
285  },
286  { "clz", TILEPRO_OPC_CLZ, 0x5, 2, TREG_ZERO, 1,
287  { { 7, 8 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
288  },
289  { "clz.sn", TILEPRO_OPC_CLZ_SN, 0x1, 2, TREG_SN, 1,
290  { { 7, 8 }, { 0, }, { 0, }, { 0, }, { 0, } },
291  },
292  { "crc32_32", TILEPRO_OPC_CRC32_32, 0x1, 3, TREG_ZERO, 1,
293  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
294  },
295  { "crc32_32.sn", TILEPRO_OPC_CRC32_32_SN, 0x1, 3, TREG_SN, 1,
296  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
297  },
298  { "crc32_8", TILEPRO_OPC_CRC32_8, 0x1, 3, TREG_ZERO, 1,
299  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
300  },
301  { "crc32_8.sn", TILEPRO_OPC_CRC32_8_SN, 0x1, 3, TREG_SN, 1,
302  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
303  },
304  { "ctz", TILEPRO_OPC_CTZ, 0x5, 2, TREG_ZERO, 1,
305  { { 7, 8 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
306  },
307  { "ctz.sn", TILEPRO_OPC_CTZ_SN, 0x1, 2, TREG_SN, 1,
308  { { 7, 8 }, { 0, }, { 0, }, { 0, }, { 0, } },
309  },
310  { "drain", TILEPRO_OPC_DRAIN, 0x2, 0, TREG_ZERO, 0,
311  { { 0, }, { }, { 0, }, { 0, }, { 0, } },
312  },
313  { "dtlbpr", TILEPRO_OPC_DTLBPR, 0x2, 1, TREG_ZERO, 1,
314  { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
315  },
316  { "dword_align", TILEPRO_OPC_DWORD_ALIGN, 0x1, 3, TREG_ZERO, 1,
317  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
318  },
319  { "dword_align.sn", TILEPRO_OPC_DWORD_ALIGN_SN, 0x1, 3, TREG_SN, 1,
320  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
321  },
322  { "finv", TILEPRO_OPC_FINV, 0x2, 1, TREG_ZERO, 1,
323  { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
324  },
325  { "flush", TILEPRO_OPC_FLUSH, 0x2, 1, TREG_ZERO, 1,
326  { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
327  },
328  { "fnop", TILEPRO_OPC_FNOP, 0xf, 0, TREG_ZERO, 1,
329  { { }, { }, { }, { }, { 0, } },
330  },
331  { "icoh", TILEPRO_OPC_ICOH, 0x2, 1, TREG_ZERO, 1,
332  { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
333  },
334  { "ill", TILEPRO_OPC_ILL, 0xa, 0, TREG_ZERO, 1,
335  { { 0, }, { }, { 0, }, { }, { 0, } },
336  },
337  { "inthb", TILEPRO_OPC_INTHB, 0x3, 3, TREG_ZERO, 1,
338  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
339  },
340  { "inthb.sn", TILEPRO_OPC_INTHB_SN, 0x3, 3, TREG_SN, 1,
341  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
342  },
343  { "inthh", TILEPRO_OPC_INTHH, 0x3, 3, TREG_ZERO, 1,
344  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
345  },
346  { "inthh.sn", TILEPRO_OPC_INTHH_SN, 0x3, 3, TREG_SN, 1,
347  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
348  },
349  { "intlb", TILEPRO_OPC_INTLB, 0x3, 3, TREG_ZERO, 1,
350  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
351  },
352  { "intlb.sn", TILEPRO_OPC_INTLB_SN, 0x3, 3, TREG_SN, 1,
353  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
354  },
355  { "intlh", TILEPRO_OPC_INTLH, 0x3, 3, TREG_ZERO, 1,
356  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
357  },
358  { "intlh.sn", TILEPRO_OPC_INTLH_SN, 0x3, 3, TREG_SN, 1,
359  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
360  },
361  { "inv", TILEPRO_OPC_INV, 0x2, 1, TREG_ZERO, 1,
362  { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
363  },
364  { "iret", TILEPRO_OPC_IRET, 0x2, 0, TREG_ZERO, 1,
365  { { 0, }, { }, { 0, }, { 0, }, { 0, } },
366  },
367  { "jalb", TILEPRO_OPC_JALB, 0x2, 1, TREG_LR, 1,
368  { { 0, }, { 22 }, { 0, }, { 0, }, { 0, } },
369  },
370  { "jalf", TILEPRO_OPC_JALF, 0x2, 1, TREG_LR, 1,
371  { { 0, }, { 22 }, { 0, }, { 0, }, { 0, } },
372  },
373  { "jalr", TILEPRO_OPC_JALR, 0x2, 1, TREG_LR, 1,
374  { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
375  },
376  { "jalrp", TILEPRO_OPC_JALRP, 0x2, 1, TREG_LR, 1,
377  { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
378  },
379  { "jb", TILEPRO_OPC_JB, 0x2, 1, TREG_ZERO, 1,
380  { { 0, }, { 22 }, { 0, }, { 0, }, { 0, } },
381  },
382  { "jf", TILEPRO_OPC_JF, 0x2, 1, TREG_ZERO, 1,
383  { { 0, }, { 22 }, { 0, }, { 0, }, { 0, } },
384  },
385  { "jr", TILEPRO_OPC_JR, 0x2, 1, TREG_ZERO, 1,
386  { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
387  },
388  { "jrp", TILEPRO_OPC_JRP, 0x2, 1, TREG_ZERO, 1,
389  { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
390  },
391  { "lb", TILEPRO_OPC_LB, 0x12, 2, TREG_ZERO, 1,
392  { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 23, 15 } },
393  },
394  { "lb.sn", TILEPRO_OPC_LB_SN, 0x2, 2, TREG_SN, 1,
395  { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
396  },
397  { "lb_u", TILEPRO_OPC_LB_U, 0x12, 2, TREG_ZERO, 1,
398  { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 23, 15 } },
399  },
400  { "lb_u.sn", TILEPRO_OPC_LB_U_SN, 0x2, 2, TREG_SN, 1,
401  { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
402  },
403  { "lbadd", TILEPRO_OPC_LBADD, 0x2, 3, TREG_ZERO, 1,
404  { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
405  },
406  { "lbadd.sn", TILEPRO_OPC_LBADD_SN, 0x2, 3, TREG_SN, 1,
407  { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
408  },
409  { "lbadd_u", TILEPRO_OPC_LBADD_U, 0x2, 3, TREG_ZERO, 1,
410  { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
411  },
412  { "lbadd_u.sn", TILEPRO_OPC_LBADD_U_SN, 0x2, 3, TREG_SN, 1,
413  { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
414  },
415  { "lh", TILEPRO_OPC_LH, 0x12, 2, TREG_ZERO, 1,
416  { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 23, 15 } },
417  },
418  { "lh.sn", TILEPRO_OPC_LH_SN, 0x2, 2, TREG_SN, 1,
419  { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
420  },
421  { "lh_u", TILEPRO_OPC_LH_U, 0x12, 2, TREG_ZERO, 1,
422  { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 23, 15 } },
423  },
424  { "lh_u.sn", TILEPRO_OPC_LH_U_SN, 0x2, 2, TREG_SN, 1,
425  { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
426  },
427  { "lhadd", TILEPRO_OPC_LHADD, 0x2, 3, TREG_ZERO, 1,
428  { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
429  },
430  { "lhadd.sn", TILEPRO_OPC_LHADD_SN, 0x2, 3, TREG_SN, 1,
431  { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
432  },
433  { "lhadd_u", TILEPRO_OPC_LHADD_U, 0x2, 3, TREG_ZERO, 1,
434  { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
435  },
436  { "lhadd_u.sn", TILEPRO_OPC_LHADD_U_SN, 0x2, 3, TREG_SN, 1,
437  { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
438  },
439  { "lnk", TILEPRO_OPC_LNK, 0x2, 1, TREG_ZERO, 1,
440  { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
441  },
442  { "lnk.sn", TILEPRO_OPC_LNK_SN, 0x2, 1, TREG_SN, 1,
443  { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
444  },
445  { "lw", TILEPRO_OPC_LW, 0x12, 2, TREG_ZERO, 1,
446  { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 23, 15 } },
447  },
448  { "lw.sn", TILEPRO_OPC_LW_SN, 0x2, 2, TREG_SN, 1,
449  { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
450  },
451  { "lw_na", TILEPRO_OPC_LW_NA, 0x2, 2, TREG_ZERO, 1,
452  { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
453  },
454  { "lw_na.sn", TILEPRO_OPC_LW_NA_SN, 0x2, 2, TREG_SN, 1,
455  { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
456  },
457  { "lwadd", TILEPRO_OPC_LWADD, 0x2, 3, TREG_ZERO, 1,
458  { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
459  },
460  { "lwadd.sn", TILEPRO_OPC_LWADD_SN, 0x2, 3, TREG_SN, 1,
461  { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
462  },
463  { "lwadd_na", TILEPRO_OPC_LWADD_NA, 0x2, 3, TREG_ZERO, 1,
464  { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
465  },
466  { "lwadd_na.sn", TILEPRO_OPC_LWADD_NA_SN, 0x2, 3, TREG_SN, 1,
467  { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
468  },
469  { "maxb_u", TILEPRO_OPC_MAXB_U, 0x3, 3, TREG_ZERO, 1,
470  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
471  },
472  { "maxb_u.sn", TILEPRO_OPC_MAXB_U_SN, 0x3, 3, TREG_SN, 1,
473  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
474  },
475  { "maxh", TILEPRO_OPC_MAXH, 0x3, 3, TREG_ZERO, 1,
476  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
477  },
478  { "maxh.sn", TILEPRO_OPC_MAXH_SN, 0x3, 3, TREG_SN, 1,
479  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
480  },
481  { "maxib_u", TILEPRO_OPC_MAXIB_U, 0x3, 3, TREG_ZERO, 1,
482  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
483  },
484  { "maxib_u.sn", TILEPRO_OPC_MAXIB_U_SN, 0x3, 3, TREG_SN, 1,
485  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
486  },
487  { "maxih", TILEPRO_OPC_MAXIH, 0x3, 3, TREG_ZERO, 1,
488  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
489  },
490  { "maxih.sn", TILEPRO_OPC_MAXIH_SN, 0x3, 3, TREG_SN, 1,
491  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
492  },
493  { "mf", TILEPRO_OPC_MF, 0x2, 0, TREG_ZERO, 1,
494  { { 0, }, { }, { 0, }, { 0, }, { 0, } },
495  },
496  { "mfspr", TILEPRO_OPC_MFSPR, 0x2, 2, TREG_ZERO, 1,
497  { { 0, }, { 9, 25 }, { 0, }, { 0, }, { 0, } },
498  },
499  { "minb_u", TILEPRO_OPC_MINB_U, 0x3, 3, TREG_ZERO, 1,
500  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
501  },
502  { "minb_u.sn", TILEPRO_OPC_MINB_U_SN, 0x3, 3, TREG_SN, 1,
503  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
504  },
505  { "minh", TILEPRO_OPC_MINH, 0x3, 3, TREG_ZERO, 1,
506  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
507  },
508  { "minh.sn", TILEPRO_OPC_MINH_SN, 0x3, 3, TREG_SN, 1,
509  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
510  },
511  { "minib_u", TILEPRO_OPC_MINIB_U, 0x3, 3, TREG_ZERO, 1,
512  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
513  },
514  { "minib_u.sn", TILEPRO_OPC_MINIB_U_SN, 0x3, 3, TREG_SN, 1,
515  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
516  },
517  { "minih", TILEPRO_OPC_MINIH, 0x3, 3, TREG_ZERO, 1,
518  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
519  },
520  { "minih.sn", TILEPRO_OPC_MINIH_SN, 0x3, 3, TREG_SN, 1,
521  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
522  },
523  { "mm", TILEPRO_OPC_MM, 0x3, 5, TREG_ZERO, 1,
524  { { 7, 8, 16, 26, 27 }, { 9, 10, 17, 28, 29 }, { 0, }, { 0, }, { 0, } },
525  },
526  { "mnz", TILEPRO_OPC_MNZ, 0xf, 3, TREG_ZERO, 1,
527  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
528  },
529  { "mnz.sn", TILEPRO_OPC_MNZ_SN, 0x3, 3, TREG_SN, 1,
530  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
531  },
532  { "mnzb", TILEPRO_OPC_MNZB, 0x3, 3, TREG_ZERO, 1,
533  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
534  },
535  { "mnzb.sn", TILEPRO_OPC_MNZB_SN, 0x3, 3, TREG_SN, 1,
536  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
537  },
538  { "mnzh", TILEPRO_OPC_MNZH, 0x3, 3, TREG_ZERO, 1,
539  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
540  },
541  { "mnzh.sn", TILEPRO_OPC_MNZH_SN, 0x3, 3, TREG_SN, 1,
542  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
543  },
544  { "mtspr", TILEPRO_OPC_MTSPR, 0x2, 2, TREG_ZERO, 1,
545  { { 0, }, { 30, 10 }, { 0, }, { 0, }, { 0, } },
546  },
547  { "mulhh_ss", TILEPRO_OPC_MULHH_SS, 0x5, 3, TREG_ZERO, 1,
548  { { 7, 8, 16 }, { 0, }, { 11, 12, 18 }, { 0, }, { 0, } },
549  },
550  { "mulhh_ss.sn", TILEPRO_OPC_MULHH_SS_SN, 0x1, 3, TREG_SN, 1,
551  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
552  },
553  { "mulhh_su", TILEPRO_OPC_MULHH_SU, 0x1, 3, TREG_ZERO, 1,
554  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
555  },
556  { "mulhh_su.sn", TILEPRO_OPC_MULHH_SU_SN, 0x1, 3, TREG_SN, 1,
557  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
558  },
559  { "mulhh_uu", TILEPRO_OPC_MULHH_UU, 0x5, 3, TREG_ZERO, 1,
560  { { 7, 8, 16 }, { 0, }, { 11, 12, 18 }, { 0, }, { 0, } },
561  },
562  { "mulhh_uu.sn", TILEPRO_OPC_MULHH_UU_SN, 0x1, 3, TREG_SN, 1,
563  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
564  },
565  { "mulhha_ss", TILEPRO_OPC_MULHHA_SS, 0x5, 3, TREG_ZERO, 1,
566  { { 21, 8, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
567  },
568  { "mulhha_ss.sn", TILEPRO_OPC_MULHHA_SS_SN, 0x1, 3, TREG_SN, 1,
569  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
570  },
571  { "mulhha_su", TILEPRO_OPC_MULHHA_SU, 0x1, 3, TREG_ZERO, 1,
572  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
573  },
574  { "mulhha_su.sn", TILEPRO_OPC_MULHHA_SU_SN, 0x1, 3, TREG_SN, 1,
575  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
576  },
577  { "mulhha_uu", TILEPRO_OPC_MULHHA_UU, 0x5, 3, TREG_ZERO, 1,
578  { { 21, 8, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
579  },
580  { "mulhha_uu.sn", TILEPRO_OPC_MULHHA_UU_SN, 0x1, 3, TREG_SN, 1,
581  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
582  },
583  { "mulhhsa_uu", TILEPRO_OPC_MULHHSA_UU, 0x1, 3, TREG_ZERO, 1,
584  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
585  },
586  { "mulhhsa_uu.sn", TILEPRO_OPC_MULHHSA_UU_SN, 0x1, 3, TREG_SN, 1,
587  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
588  },
589  { "mulhl_ss", TILEPRO_OPC_MULHL_SS, 0x1, 3, TREG_ZERO, 1,
590  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
591  },
592  { "mulhl_ss.sn", TILEPRO_OPC_MULHL_SS_SN, 0x1, 3, TREG_SN, 1,
593  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
594  },
595  { "mulhl_su", TILEPRO_OPC_MULHL_SU, 0x1, 3, TREG_ZERO, 1,
596  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
597  },
598  { "mulhl_su.sn", TILEPRO_OPC_MULHL_SU_SN, 0x1, 3, TREG_SN, 1,
599  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
600  },
601  { "mulhl_us", TILEPRO_OPC_MULHL_US, 0x1, 3, TREG_ZERO, 1,
602  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
603  },
604  { "mulhl_us.sn", TILEPRO_OPC_MULHL_US_SN, 0x1, 3, TREG_SN, 1,
605  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
606  },
607  { "mulhl_uu", TILEPRO_OPC_MULHL_UU, 0x1, 3, TREG_ZERO, 1,
608  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
609  },
610  { "mulhl_uu.sn", TILEPRO_OPC_MULHL_UU_SN, 0x1, 3, TREG_SN, 1,
611  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
612  },
613  { "mulhla_ss", TILEPRO_OPC_MULHLA_SS, 0x1, 3, TREG_ZERO, 1,
614  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
615  },
616  { "mulhla_ss.sn", TILEPRO_OPC_MULHLA_SS_SN, 0x1, 3, TREG_SN, 1,
617  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
618  },
619  { "mulhla_su", TILEPRO_OPC_MULHLA_SU, 0x1, 3, TREG_ZERO, 1,
620  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
621  },
622  { "mulhla_su.sn", TILEPRO_OPC_MULHLA_SU_SN, 0x1, 3, TREG_SN, 1,
623  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
624  },
625  { "mulhla_us", TILEPRO_OPC_MULHLA_US, 0x1, 3, TREG_ZERO, 1,
626  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
627  },
628  { "mulhla_us.sn", TILEPRO_OPC_MULHLA_US_SN, 0x1, 3, TREG_SN, 1,
629  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
630  },
631  { "mulhla_uu", TILEPRO_OPC_MULHLA_UU, 0x1, 3, TREG_ZERO, 1,
632  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
633  },
634  { "mulhla_uu.sn", TILEPRO_OPC_MULHLA_UU_SN, 0x1, 3, TREG_SN, 1,
635  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
636  },
637  { "mulhlsa_uu", TILEPRO_OPC_MULHLSA_UU, 0x5, 3, TREG_ZERO, 1,
638  { { 21, 8, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
639  },
640  { "mulhlsa_uu.sn", TILEPRO_OPC_MULHLSA_UU_SN, 0x1, 3, TREG_SN, 1,
641  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
642  },
643  { "mulll_ss", TILEPRO_OPC_MULLL_SS, 0x5, 3, TREG_ZERO, 1,
644  { { 7, 8, 16 }, { 0, }, { 11, 12, 18 }, { 0, }, { 0, } },
645  },
646  { "mulll_ss.sn", TILEPRO_OPC_MULLL_SS_SN, 0x1, 3, TREG_SN, 1,
647  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
648  },
649  { "mulll_su", TILEPRO_OPC_MULLL_SU, 0x1, 3, TREG_ZERO, 1,
650  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
651  },
652  { "mulll_su.sn", TILEPRO_OPC_MULLL_SU_SN, 0x1, 3, TREG_SN, 1,
653  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
654  },
655  { "mulll_uu", TILEPRO_OPC_MULLL_UU, 0x5, 3, TREG_ZERO, 1,
656  { { 7, 8, 16 }, { 0, }, { 11, 12, 18 }, { 0, }, { 0, } },
657  },
658  { "mulll_uu.sn", TILEPRO_OPC_MULLL_UU_SN, 0x1, 3, TREG_SN, 1,
659  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
660  },
661  { "mullla_ss", TILEPRO_OPC_MULLLA_SS, 0x5, 3, TREG_ZERO, 1,
662  { { 21, 8, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
663  },
664  { "mullla_ss.sn", TILEPRO_OPC_MULLLA_SS_SN, 0x1, 3, TREG_SN, 1,
665  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
666  },
667  { "mullla_su", TILEPRO_OPC_MULLLA_SU, 0x1, 3, TREG_ZERO, 1,
668  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
669  },
670  { "mullla_su.sn", TILEPRO_OPC_MULLLA_SU_SN, 0x1, 3, TREG_SN, 1,
671  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
672  },
673  { "mullla_uu", TILEPRO_OPC_MULLLA_UU, 0x5, 3, TREG_ZERO, 1,
674  { { 21, 8, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
675  },
676  { "mullla_uu.sn", TILEPRO_OPC_MULLLA_UU_SN, 0x1, 3, TREG_SN, 1,
677  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
678  },
679  { "mulllsa_uu", TILEPRO_OPC_MULLLSA_UU, 0x1, 3, TREG_ZERO, 1,
680  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
681  },
682  { "mulllsa_uu.sn", TILEPRO_OPC_MULLLSA_UU_SN, 0x1, 3, TREG_SN, 1,
683  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
684  },
685  { "mvnz", TILEPRO_OPC_MVNZ, 0x5, 3, TREG_ZERO, 1,
686  { { 21, 8, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
687  },
688  { "mvnz.sn", TILEPRO_OPC_MVNZ_SN, 0x1, 3, TREG_SN, 1,
689  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
690  },
691  { "mvz", TILEPRO_OPC_MVZ, 0x5, 3, TREG_ZERO, 1,
692  { { 21, 8, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
693  },
694  { "mvz.sn", TILEPRO_OPC_MVZ_SN, 0x1, 3, TREG_SN, 1,
695  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
696  },
697  { "mz", TILEPRO_OPC_MZ, 0xf, 3, TREG_ZERO, 1,
698  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
699  },
700  { "mz.sn", TILEPRO_OPC_MZ_SN, 0x3, 3, TREG_SN, 1,
701  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
702  },
703  { "mzb", TILEPRO_OPC_MZB, 0x3, 3, TREG_ZERO, 1,
704  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
705  },
706  { "mzb.sn", TILEPRO_OPC_MZB_SN, 0x3, 3, TREG_SN, 1,
707  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
708  },
709  { "mzh", TILEPRO_OPC_MZH, 0x3, 3, TREG_ZERO, 1,
710  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
711  },
712  { "mzh.sn", TILEPRO_OPC_MZH_SN, 0x3, 3, TREG_SN, 1,
713  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
714  },
715  { "nap", TILEPRO_OPC_NAP, 0x2, 0, TREG_ZERO, 0,
716  { { 0, }, { }, { 0, }, { 0, }, { 0, } },
717  },
718  { "nop", TILEPRO_OPC_NOP, 0xf, 0, TREG_ZERO, 1,
719  { { }, { }, { }, { }, { 0, } },
720  },
721  { "nor", TILEPRO_OPC_NOR, 0xf, 3, TREG_ZERO, 1,
722  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
723  },
724  { "nor.sn", TILEPRO_OPC_NOR_SN, 0x3, 3, TREG_SN, 1,
725  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
726  },
727  { "or", TILEPRO_OPC_OR, 0xf, 3, TREG_ZERO, 1,
728  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
729  },
730  { "or.sn", TILEPRO_OPC_OR_SN, 0x3, 3, TREG_SN, 1,
731  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
732  },
733  { "ori", TILEPRO_OPC_ORI, 0xf, 3, TREG_ZERO, 1,
734  { { 7, 8, 0 }, { 9, 10, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
735  },
736  { "ori.sn", TILEPRO_OPC_ORI_SN, 0x3, 3, TREG_SN, 1,
737  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
738  },
739  { "packbs_u", TILEPRO_OPC_PACKBS_U, 0x3, 3, TREG_ZERO, 1,
740  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
741  },
742  { "packbs_u.sn", TILEPRO_OPC_PACKBS_U_SN, 0x3, 3, TREG_SN, 1,
743  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
744  },
745  { "packhb", TILEPRO_OPC_PACKHB, 0x3, 3, TREG_ZERO, 1,
746  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
747  },
748  { "packhb.sn", TILEPRO_OPC_PACKHB_SN, 0x3, 3, TREG_SN, 1,
749  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
750  },
751  { "packhs", TILEPRO_OPC_PACKHS, 0x3, 3, TREG_ZERO, 1,
752  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
753  },
754  { "packhs.sn", TILEPRO_OPC_PACKHS_SN, 0x3, 3, TREG_SN, 1,
755  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
756  },
757  { "packlb", TILEPRO_OPC_PACKLB, 0x3, 3, TREG_ZERO, 1,
758  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
759  },
760  { "packlb.sn", TILEPRO_OPC_PACKLB_SN, 0x3, 3, TREG_SN, 1,
761  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
762  },
763  { "pcnt", TILEPRO_OPC_PCNT, 0x5, 2, TREG_ZERO, 1,
764  { { 7, 8 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
765  },
766  { "pcnt.sn", TILEPRO_OPC_PCNT_SN, 0x1, 2, TREG_SN, 1,
767  { { 7, 8 }, { 0, }, { 0, }, { 0, }, { 0, } },
768  },
769  { "rl", TILEPRO_OPC_RL, 0xf, 3, TREG_ZERO, 1,
770  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
771  },
772  { "rl.sn", TILEPRO_OPC_RL_SN, 0x3, 3, TREG_SN, 1,
773  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
774  },
775  { "rli", TILEPRO_OPC_RLI, 0xf, 3, TREG_ZERO, 1,
776  { { 7, 8, 32 }, { 9, 10, 33 }, { 11, 12, 34 }, { 13, 14, 35 }, { 0, } },
777  },
778  { "rli.sn", TILEPRO_OPC_RLI_SN, 0x3, 3, TREG_SN, 1,
779  { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
780  },
781  { "s1a", TILEPRO_OPC_S1A, 0xf, 3, TREG_ZERO, 1,
782  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
783  },
784  { "s1a.sn", TILEPRO_OPC_S1A_SN, 0x3, 3, TREG_SN, 1,
785  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
786  },
787  { "s2a", TILEPRO_OPC_S2A, 0xf, 3, TREG_ZERO, 1,
788  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
789  },
790  { "s2a.sn", TILEPRO_OPC_S2A_SN, 0x3, 3, TREG_SN, 1,
791  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
792  },
793  { "s3a", TILEPRO_OPC_S3A, 0xf, 3, TREG_ZERO, 1,
794  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
795  },
796  { "s3a.sn", TILEPRO_OPC_S3A_SN, 0x3, 3, TREG_SN, 1,
797  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
798  },
799  { "sadab_u", TILEPRO_OPC_SADAB_U, 0x1, 3, TREG_ZERO, 1,
800  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
801  },
802  { "sadab_u.sn", TILEPRO_OPC_SADAB_U_SN, 0x1, 3, TREG_SN, 1,
803  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
804  },
805  { "sadah", TILEPRO_OPC_SADAH, 0x1, 3, TREG_ZERO, 1,
806  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
807  },
808  { "sadah.sn", TILEPRO_OPC_SADAH_SN, 0x1, 3, TREG_SN, 1,
809  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
810  },
811  { "sadah_u", TILEPRO_OPC_SADAH_U, 0x1, 3, TREG_ZERO, 1,
812  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
813  },
814  { "sadah_u.sn", TILEPRO_OPC_SADAH_U_SN, 0x1, 3, TREG_SN, 1,
815  { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
816  },
817  { "sadb_u", TILEPRO_OPC_SADB_U, 0x1, 3, TREG_ZERO, 1,
818  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
819  },
820  { "sadb_u.sn", TILEPRO_OPC_SADB_U_SN, 0x1, 3, TREG_SN, 1,
821  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
822  },
823  { "sadh", TILEPRO_OPC_SADH, 0x1, 3, TREG_ZERO, 1,
824  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
825  },
826  { "sadh.sn", TILEPRO_OPC_SADH_SN, 0x1, 3, TREG_SN, 1,
827  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
828  },
829  { "sadh_u", TILEPRO_OPC_SADH_U, 0x1, 3, TREG_ZERO, 1,
830  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
831  },
832  { "sadh_u.sn", TILEPRO_OPC_SADH_U_SN, 0x1, 3, TREG_SN, 1,
833  { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
834  },
835  { "sb", TILEPRO_OPC_SB, 0x12, 2, TREG_ZERO, 1,
836  { { 0, }, { 10, 17 }, { 0, }, { 0, }, { 15, 36 } },
837  },
838  { "sbadd", TILEPRO_OPC_SBADD, 0x2, 3, TREG_ZERO, 1,
839  { { 0, }, { 24, 17, 37 }, { 0, }, { 0, }, { 0, } },
840  },
841  { "seq", TILEPRO_OPC_SEQ, 0xf, 3, TREG_ZERO, 1,
842  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
843  },
844  { "seq.sn", TILEPRO_OPC_SEQ_SN, 0x3, 3, TREG_SN, 1,
845  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
846  },
847  { "seqb", TILEPRO_OPC_SEQB, 0x3, 3, TREG_ZERO, 1,
848  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
849  },
850  { "seqb.sn", TILEPRO_OPC_SEQB_SN, 0x3, 3, TREG_SN, 1,
851  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
852  },
853  { "seqh", TILEPRO_OPC_SEQH, 0x3, 3, TREG_ZERO, 1,
854  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
855  },
856  { "seqh.sn", TILEPRO_OPC_SEQH_SN, 0x3, 3, TREG_SN, 1,
857  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
858  },
859  { "seqi", TILEPRO_OPC_SEQI, 0xf, 3, TREG_ZERO, 1,
860  { { 7, 8, 0 }, { 9, 10, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
861  },
862  { "seqi.sn", TILEPRO_OPC_SEQI_SN, 0x3, 3, TREG_SN, 1,
863  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
864  },
865  { "seqib", TILEPRO_OPC_SEQIB, 0x3, 3, TREG_ZERO, 1,
866  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
867  },
868  { "seqib.sn", TILEPRO_OPC_SEQIB_SN, 0x3, 3, TREG_SN, 1,
869  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
870  },
871  { "seqih", TILEPRO_OPC_SEQIH, 0x3, 3, TREG_ZERO, 1,
872  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
873  },
874  { "seqih.sn", TILEPRO_OPC_SEQIH_SN, 0x3, 3, TREG_SN, 1,
875  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
876  },
877  { "sh", TILEPRO_OPC_SH, 0x12, 2, TREG_ZERO, 1,
878  { { 0, }, { 10, 17 }, { 0, }, { 0, }, { 15, 36 } },
879  },
880  { "shadd", TILEPRO_OPC_SHADD, 0x2, 3, TREG_ZERO, 1,
881  { { 0, }, { 24, 17, 37 }, { 0, }, { 0, }, { 0, } },
882  },
883  { "shl", TILEPRO_OPC_SHL, 0xf, 3, TREG_ZERO, 1,
884  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
885  },
886  { "shl.sn", TILEPRO_OPC_SHL_SN, 0x3, 3, TREG_SN, 1,
887  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
888  },
889  { "shlb", TILEPRO_OPC_SHLB, 0x3, 3, TREG_ZERO, 1,
890  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
891  },
892  { "shlb.sn", TILEPRO_OPC_SHLB_SN, 0x3, 3, TREG_SN, 1,
893  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
894  },
895  { "shlh", TILEPRO_OPC_SHLH, 0x3, 3, TREG_ZERO, 1,
896  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
897  },
898  { "shlh.sn", TILEPRO_OPC_SHLH_SN, 0x3, 3, TREG_SN, 1,
899  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
900  },
901  { "shli", TILEPRO_OPC_SHLI, 0xf, 3, TREG_ZERO, 1,
902  { { 7, 8, 32 }, { 9, 10, 33 }, { 11, 12, 34 }, { 13, 14, 35 }, { 0, } },
903  },
904  { "shli.sn", TILEPRO_OPC_SHLI_SN, 0x3, 3, TREG_SN, 1,
905  { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
906  },
907  { "shlib", TILEPRO_OPC_SHLIB, 0x3, 3, TREG_ZERO, 1,
908  { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
909  },
910  { "shlib.sn", TILEPRO_OPC_SHLIB_SN, 0x3, 3, TREG_SN, 1,
911  { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
912  },
913  { "shlih", TILEPRO_OPC_SHLIH, 0x3, 3, TREG_ZERO, 1,
914  { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
915  },
916  { "shlih.sn", TILEPRO_OPC_SHLIH_SN, 0x3, 3, TREG_SN, 1,
917  { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
918  },
919  { "shr", TILEPRO_OPC_SHR, 0xf, 3, TREG_ZERO, 1,
920  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
921  },
922  { "shr.sn", TILEPRO_OPC_SHR_SN, 0x3, 3, TREG_SN, 1,
923  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
924  },
925  { "shrb", TILEPRO_OPC_SHRB, 0x3, 3, TREG_ZERO, 1,
926  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
927  },
928  { "shrb.sn", TILEPRO_OPC_SHRB_SN, 0x3, 3, TREG_SN, 1,
929  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
930  },
931  { "shrh", TILEPRO_OPC_SHRH, 0x3, 3, TREG_ZERO, 1,
932  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
933  },
934  { "shrh.sn", TILEPRO_OPC_SHRH_SN, 0x3, 3, TREG_SN, 1,
935  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
936  },
937  { "shri", TILEPRO_OPC_SHRI, 0xf, 3, TREG_ZERO, 1,
938  { { 7, 8, 32 }, { 9, 10, 33 }, { 11, 12, 34 }, { 13, 14, 35 }, { 0, } },
939  },
940  { "shri.sn", TILEPRO_OPC_SHRI_SN, 0x3, 3, TREG_SN, 1,
941  { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
942  },
943  { "shrib", TILEPRO_OPC_SHRIB, 0x3, 3, TREG_ZERO, 1,
944  { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
945  },
946  { "shrib.sn", TILEPRO_OPC_SHRIB_SN, 0x3, 3, TREG_SN, 1,
947  { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
948  },
949  { "shrih", TILEPRO_OPC_SHRIH, 0x3, 3, TREG_ZERO, 1,
950  { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
951  },
952  { "shrih.sn", TILEPRO_OPC_SHRIH_SN, 0x3, 3, TREG_SN, 1,
953  { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
954  },
955  { "slt", TILEPRO_OPC_SLT, 0xf, 3, TREG_ZERO, 1,
956  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
957  },
958  { "slt.sn", TILEPRO_OPC_SLT_SN, 0x3, 3, TREG_SN, 1,
959  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
960  },
961  { "slt_u", TILEPRO_OPC_SLT_U, 0xf, 3, TREG_ZERO, 1,
962  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
963  },
964  { "slt_u.sn", TILEPRO_OPC_SLT_U_SN, 0x3, 3, TREG_SN, 1,
965  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
966  },
967  { "sltb", TILEPRO_OPC_SLTB, 0x3, 3, TREG_ZERO, 1,
968  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
969  },
970  { "sltb.sn", TILEPRO_OPC_SLTB_SN, 0x3, 3, TREG_SN, 1,
971  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
972  },
973  { "sltb_u", TILEPRO_OPC_SLTB_U, 0x3, 3, TREG_ZERO, 1,
974  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
975  },
976  { "sltb_u.sn", TILEPRO_OPC_SLTB_U_SN, 0x3, 3, TREG_SN, 1,
977  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
978  },
979  { "slte", TILEPRO_OPC_SLTE, 0xf, 3, TREG_ZERO, 1,
980  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
981  },
982  { "slte.sn", TILEPRO_OPC_SLTE_SN, 0x3, 3, TREG_SN, 1,
983  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
984  },
985  { "slte_u", TILEPRO_OPC_SLTE_U, 0xf, 3, TREG_ZERO, 1,
986  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
987  },
988  { "slte_u.sn", TILEPRO_OPC_SLTE_U_SN, 0x3, 3, TREG_SN, 1,
989  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
990  },
991  { "slteb", TILEPRO_OPC_SLTEB, 0x3, 3, TREG_ZERO, 1,
992  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
993  },
994  { "slteb.sn", TILEPRO_OPC_SLTEB_SN, 0x3, 3, TREG_SN, 1,
995  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
996  },
997  { "slteb_u", TILEPRO_OPC_SLTEB_U, 0x3, 3, TREG_ZERO, 1,
998  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
999  },
1000  { "slteb_u.sn", TILEPRO_OPC_SLTEB_U_SN, 0x3, 3, TREG_SN, 1,
1001  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1002  },
1003  { "slteh", TILEPRO_OPC_SLTEH, 0x3, 3, TREG_ZERO, 1,
1004  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1005  },
1006  { "slteh.sn", TILEPRO_OPC_SLTEH_SN, 0x3, 3, TREG_SN, 1,
1007  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1008  },
1009  { "slteh_u", TILEPRO_OPC_SLTEH_U, 0x3, 3, TREG_ZERO, 1,
1010  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1011  },
1012  { "slteh_u.sn", TILEPRO_OPC_SLTEH_U_SN, 0x3, 3, TREG_SN, 1,
1013  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1014  },
1015  { "slth", TILEPRO_OPC_SLTH, 0x3, 3, TREG_ZERO, 1,
1016  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1017  },
1018  { "slth.sn", TILEPRO_OPC_SLTH_SN, 0x3, 3, TREG_SN, 1,
1019  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1020  },
1021  { "slth_u", TILEPRO_OPC_SLTH_U, 0x3, 3, TREG_ZERO, 1,
1022  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1023  },
1024  { "slth_u.sn", TILEPRO_OPC_SLTH_U_SN, 0x3, 3, TREG_SN, 1,
1025  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1026  },
1027  { "slti", TILEPRO_OPC_SLTI, 0xf, 3, TREG_ZERO, 1,
1028  { { 7, 8, 0 }, { 9, 10, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
1029  },
1030  { "slti.sn", TILEPRO_OPC_SLTI_SN, 0x3, 3, TREG_SN, 1,
1031  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
1032  },
1033  { "slti_u", TILEPRO_OPC_SLTI_U, 0xf, 3, TREG_ZERO, 1,
1034  { { 7, 8, 0 }, { 9, 10, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
1035  },
1036  { "slti_u.sn", TILEPRO_OPC_SLTI_U_SN, 0x3, 3, TREG_SN, 1,
1037  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
1038  },
1039  { "sltib", TILEPRO_OPC_SLTIB, 0x3, 3, TREG_ZERO, 1,
1040  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
1041  },
1042  { "sltib.sn", TILEPRO_OPC_SLTIB_SN, 0x3, 3, TREG_SN, 1,
1043  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
1044  },
1045  { "sltib_u", TILEPRO_OPC_SLTIB_U, 0x3, 3, TREG_ZERO, 1,
1046  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
1047  },
1048  { "sltib_u.sn", TILEPRO_OPC_SLTIB_U_SN, 0x3, 3, TREG_SN, 1,
1049  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
1050  },
1051  { "sltih", TILEPRO_OPC_SLTIH, 0x3, 3, TREG_ZERO, 1,
1052  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
1053  },
1054  { "sltih.sn", TILEPRO_OPC_SLTIH_SN, 0x3, 3, TREG_SN, 1,
1055  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
1056  },
1057  { "sltih_u", TILEPRO_OPC_SLTIH_U, 0x3, 3, TREG_ZERO, 1,
1058  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
1059  },
1060  { "sltih_u.sn", TILEPRO_OPC_SLTIH_U_SN, 0x3, 3, TREG_SN, 1,
1061  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
1062  },
1063  { "sne", TILEPRO_OPC_SNE, 0xf, 3, TREG_ZERO, 1,
1064  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
1065  },
1066  { "sne.sn", TILEPRO_OPC_SNE_SN, 0x3, 3, TREG_SN, 1,
1067  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1068  },
1069  { "sneb", TILEPRO_OPC_SNEB, 0x3, 3, TREG_ZERO, 1,
1070  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1071  },
1072  { "sneb.sn", TILEPRO_OPC_SNEB_SN, 0x3, 3, TREG_SN, 1,
1073  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1074  },
1075  { "sneh", TILEPRO_OPC_SNEH, 0x3, 3, TREG_ZERO, 1,
1076  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1077  },
1078  { "sneh.sn", TILEPRO_OPC_SNEH_SN, 0x3, 3, TREG_SN, 1,
1079  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1080  },
1081  { "sra", TILEPRO_OPC_SRA, 0xf, 3, TREG_ZERO, 1,
1082  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
1083  },
1084  { "sra.sn", TILEPRO_OPC_SRA_SN, 0x3, 3, TREG_SN, 1,
1085  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1086  },
1087  { "srab", TILEPRO_OPC_SRAB, 0x3, 3, TREG_ZERO, 1,
1088  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1089  },
1090  { "srab.sn", TILEPRO_OPC_SRAB_SN, 0x3, 3, TREG_SN, 1,
1091  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1092  },
1093  { "srah", TILEPRO_OPC_SRAH, 0x3, 3, TREG_ZERO, 1,
1094  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1095  },
1096  { "srah.sn", TILEPRO_OPC_SRAH_SN, 0x3, 3, TREG_SN, 1,
1097  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1098  },
1099  { "srai", TILEPRO_OPC_SRAI, 0xf, 3, TREG_ZERO, 1,
1100  { { 7, 8, 32 }, { 9, 10, 33 }, { 11, 12, 34 }, { 13, 14, 35 }, { 0, } },
1101  },
1102  { "srai.sn", TILEPRO_OPC_SRAI_SN, 0x3, 3, TREG_SN, 1,
1103  { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
1104  },
1105  { "sraib", TILEPRO_OPC_SRAIB, 0x3, 3, TREG_ZERO, 1,
1106  { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
1107  },
1108  { "sraib.sn", TILEPRO_OPC_SRAIB_SN, 0x3, 3, TREG_SN, 1,
1109  { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
1110  },
1111  { "sraih", TILEPRO_OPC_SRAIH, 0x3, 3, TREG_ZERO, 1,
1112  { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
1113  },
1114  { "sraih.sn", TILEPRO_OPC_SRAIH_SN, 0x3, 3, TREG_SN, 1,
1115  { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
1116  },
1117  { "sub", TILEPRO_OPC_SUB, 0xf, 3, TREG_ZERO, 1,
1118  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
1119  },
1120  { "sub.sn", TILEPRO_OPC_SUB_SN, 0x3, 3, TREG_SN, 1,
1121  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1122  },
1123  { "subb", TILEPRO_OPC_SUBB, 0x3, 3, TREG_ZERO, 1,
1124  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1125  },
1126  { "subb.sn", TILEPRO_OPC_SUBB_SN, 0x3, 3, TREG_SN, 1,
1127  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1128  },
1129  { "subbs_u", TILEPRO_OPC_SUBBS_U, 0x3, 3, TREG_ZERO, 1,
1130  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1131  },
1132  { "subbs_u.sn", TILEPRO_OPC_SUBBS_U_SN, 0x3, 3, TREG_SN, 1,
1133  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1134  },
1135  { "subh", TILEPRO_OPC_SUBH, 0x3, 3, TREG_ZERO, 1,
1136  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1137  },
1138  { "subh.sn", TILEPRO_OPC_SUBH_SN, 0x3, 3, TREG_SN, 1,
1139  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1140  },
1141  { "subhs", TILEPRO_OPC_SUBHS, 0x3, 3, TREG_ZERO, 1,
1142  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1143  },
1144  { "subhs.sn", TILEPRO_OPC_SUBHS_SN, 0x3, 3, TREG_SN, 1,
1145  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1146  },
1147  { "subs", TILEPRO_OPC_SUBS, 0x3, 3, TREG_ZERO, 1,
1148  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1149  },
1150  { "subs.sn", TILEPRO_OPC_SUBS_SN, 0x3, 3, TREG_SN, 1,
1151  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1152  },
1153  { "sw", TILEPRO_OPC_SW, 0x12, 2, TREG_ZERO, 1,
1154  { { 0, }, { 10, 17 }, { 0, }, { 0, }, { 15, 36 } },
1155  },
1156  { "swadd", TILEPRO_OPC_SWADD, 0x2, 3, TREG_ZERO, 1,
1157  { { 0, }, { 24, 17, 37 }, { 0, }, { 0, }, { 0, } },
1158  },
1159  { "swint0", TILEPRO_OPC_SWINT0, 0x2, 0, TREG_ZERO, 0,
1160  { { 0, }, { }, { 0, }, { 0, }, { 0, } },
1161  },
1162  { "swint1", TILEPRO_OPC_SWINT1, 0x2, 0, TREG_ZERO, 0,
1163  { { 0, }, { }, { 0, }, { 0, }, { 0, } },
1164  },
1165  { "swint2", TILEPRO_OPC_SWINT2, 0x2, 0, TREG_ZERO, 0,
1166  { { 0, }, { }, { 0, }, { 0, }, { 0, } },
1167  },
1168  { "swint3", TILEPRO_OPC_SWINT3, 0x2, 0, TREG_ZERO, 0,
1169  { { 0, }, { }, { 0, }, { 0, }, { 0, } },
1170  },
1171  { "tblidxb0", TILEPRO_OPC_TBLIDXB0, 0x5, 2, TREG_ZERO, 1,
1172  { { 21, 8 }, { 0, }, { 31, 12 }, { 0, }, { 0, } },
1173  },
1174  { "tblidxb0.sn", TILEPRO_OPC_TBLIDXB0_SN, 0x1, 2, TREG_SN, 1,
1175  { { 21, 8 }, { 0, }, { 0, }, { 0, }, { 0, } },
1176  },
1177  { "tblidxb1", TILEPRO_OPC_TBLIDXB1, 0x5, 2, TREG_ZERO, 1,
1178  { { 21, 8 }, { 0, }, { 31, 12 }, { 0, }, { 0, } },
1179  },
1180  { "tblidxb1.sn", TILEPRO_OPC_TBLIDXB1_SN, 0x1, 2, TREG_SN, 1,
1181  { { 21, 8 }, { 0, }, { 0, }, { 0, }, { 0, } },
1182  },
1183  { "tblidxb2", TILEPRO_OPC_TBLIDXB2, 0x5, 2, TREG_ZERO, 1,
1184  { { 21, 8 }, { 0, }, { 31, 12 }, { 0, }, { 0, } },
1185  },
1186  { "tblidxb2.sn", TILEPRO_OPC_TBLIDXB2_SN, 0x1, 2, TREG_SN, 1,
1187  { { 21, 8 }, { 0, }, { 0, }, { 0, }, { 0, } },
1188  },
1189  { "tblidxb3", TILEPRO_OPC_TBLIDXB3, 0x5, 2, TREG_ZERO, 1,
1190  { { 21, 8 }, { 0, }, { 31, 12 }, { 0, }, { 0, } },
1191  },
1192  { "tblidxb3.sn", TILEPRO_OPC_TBLIDXB3_SN, 0x1, 2, TREG_SN, 1,
1193  { { 21, 8 }, { 0, }, { 0, }, { 0, }, { 0, } },
1194  },
1195  { "tns", TILEPRO_OPC_TNS, 0x2, 2, TREG_ZERO, 1,
1196  { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
1197  },
1198  { "tns.sn", TILEPRO_OPC_TNS_SN, 0x2, 2, TREG_SN, 1,
1199  { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
1200  },
1201  { "wh64", TILEPRO_OPC_WH64, 0x2, 1, TREG_ZERO, 1,
1202  { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
1203  },
1204  { "xor", TILEPRO_OPC_XOR, 0xf, 3, TREG_ZERO, 1,
1205  { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
1206  },
1207  { "xor.sn", TILEPRO_OPC_XOR_SN, 0x3, 3, TREG_SN, 1,
1208  { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
1209  },
1210  { "xori", TILEPRO_OPC_XORI, 0x3, 3, TREG_ZERO, 1,
1211  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
1212  },
1213  { "xori.sn", TILEPRO_OPC_XORI_SN, 0x3, 3, TREG_SN, 1,
1214  { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
1215  },
1216  { NULL, TILEPRO_OPC_NONE, 0, 0, TREG_ZERO, 0, { { 0, } },
1217  }
1218 };
1219 #define BITFIELD(start, size) ((start) | (((1 << (size)) - 1) << 6))
1220 #define CHILD(array_index) (TILEPRO_OPC_NONE + (array_index))
1221 
1222 static const unsigned short decode_X0_fsm[1153] =
1223 {
1224  BITFIELD(22, 9) /* index 0 */,
1225  CHILD(513), CHILD(530), CHILD(547), CHILD(564), CHILD(596), CHILD(613),
1232  TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, CHILD(663), CHILD(680), CHILD(697),
1233  CHILD(714), CHILD(746), CHILD(763), CHILD(780), TILEPRO_OPC_NONE,
1240  CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
1241  CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
1242  CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
1243  CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
1244  CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
1245  CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
1246  CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
1247  CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
1248  CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
1249  CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
1250  CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(828), CHILD(828),
1251  CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
1252  CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
1253  CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
1254  CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
1255  CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
1256  CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
1257  CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
1258  CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
1259  CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
1260  CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
1261  CHILD(828), CHILD(828), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
1262  CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
1263  CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
1264  CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
1265  CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
1266  CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
1267  CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
1268  CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
1269  CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
1270  CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
1271  CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
1272  CHILD(873), CHILD(878), CHILD(883), CHILD(903), CHILD(908),
1280  CHILD(918), CHILD(923), CHILD(943), CHILD(948), TILEPRO_OPC_NONE,
1336  BITFIELD(18, 4) /* index 513 */,
1342  BITFIELD(18, 4) /* index 530 */,
1348  BITFIELD(18, 4) /* index 547 */,
1354  BITFIELD(18, 4) /* index 564 */,
1360  BITFIELD(12, 2) /* index 581 */,
1362  BITFIELD(14, 2) /* index 586 */,
1364  BITFIELD(16, 2) /* index 591 */,
1366  BITFIELD(18, 4) /* index 596 */,
1372  BITFIELD(18, 4) /* index 613 */,
1377  BITFIELD(18, 3) /* index 630 */,
1378  CHILD(639), CHILD(642), CHILD(645), CHILD(648), CHILD(651), CHILD(654),
1379  CHILD(657), CHILD(660),
1380  BITFIELD(21, 1) /* index 639 */,
1382  BITFIELD(21, 1) /* index 642 */,
1384  BITFIELD(21, 1) /* index 645 */,
1386  BITFIELD(21, 1) /* index 648 */,
1388  BITFIELD(21, 1) /* index 651 */,
1390  BITFIELD(21, 1) /* index 654 */,
1392  BITFIELD(21, 1) /* index 657 */,
1394  BITFIELD(21, 1) /* index 660 */,
1396  BITFIELD(18, 4) /* index 663 */,
1403  BITFIELD(18, 4) /* index 680 */,
1411  BITFIELD(18, 4) /* index 697 */,
1418  BITFIELD(18, 4) /* index 714 */,
1424  BITFIELD(12, 2) /* index 731 */,
1426  BITFIELD(14, 2) /* index 736 */,
1428  BITFIELD(16, 2) /* index 741 */,
1431  BITFIELD(18, 4) /* index 746 */,
1438  BITFIELD(18, 4) /* index 763 */,
1445  BITFIELD(18, 3) /* index 780 */,
1446  CHILD(789), CHILD(792), CHILD(795), CHILD(798), CHILD(801), CHILD(804),
1447  CHILD(807), CHILD(810),
1448  BITFIELD(21, 1) /* index 789 */,
1450  BITFIELD(21, 1) /* index 792 */,
1452  BITFIELD(21, 1) /* index 795 */,
1454  BITFIELD(21, 1) /* index 798 */,
1456  BITFIELD(21, 1) /* index 801 */,
1458  BITFIELD(21, 1) /* index 804 */,
1460  BITFIELD(21, 1) /* index 807 */,
1462  BITFIELD(21, 1) /* index 810 */,
1464  BITFIELD(6, 2) /* index 813 */,
1466  CHILD(818),
1467  BITFIELD(8, 2) /* index 818 */,
1469  CHILD(823),
1470  BITFIELD(10, 2) /* index 823 */,
1473  BITFIELD(6, 2) /* index 828 */,
1475  BITFIELD(8, 2) /* index 833 */,
1477  BITFIELD(10, 2) /* index 838 */,
1479  BITFIELD(0, 2) /* index 843 */,
1481  BITFIELD(2, 2) /* index 848 */,
1483  BITFIELD(4, 2) /* index 853 */,
1485  BITFIELD(6, 2) /* index 858 */,
1487  BITFIELD(8, 2) /* index 863 */,
1489  BITFIELD(10, 2) /* index 868 */,
1491  BITFIELD(20, 2) /* index 873 */,
1493  BITFIELD(20, 2) /* index 878 */,
1496  BITFIELD(20, 2) /* index 883 */,
1498  BITFIELD(6, 2) /* index 888 */,
1500  BITFIELD(8, 2) /* index 893 */,
1502  BITFIELD(10, 2) /* index 898 */,
1504  BITFIELD(20, 2) /* index 903 */,
1507  BITFIELD(20, 2) /* index 908 */,
1509  BITFIELD(20, 2) /* index 913 */,
1512  BITFIELD(20, 2) /* index 918 */,
1515  BITFIELD(20, 2) /* index 923 */,
1517  BITFIELD(6, 2) /* index 928 */,
1519  BITFIELD(8, 2) /* index 933 */,
1521  BITFIELD(10, 2) /* index 938 */,
1524  BITFIELD(20, 2) /* index 943 */,
1527  BITFIELD(20, 2) /* index 948 */,
1530  BITFIELD(20, 2) /* index 953 */,
1532  BITFIELD(0, 2) /* index 958 */,
1534  BITFIELD(2, 2) /* index 963 */,
1536  BITFIELD(4, 2) /* index 968 */,
1538  BITFIELD(6, 2) /* index 973 */,
1540  BITFIELD(8, 2) /* index 978 */,
1542  BITFIELD(10, 2) /* index 983 */,
1544  BITFIELD(20, 2) /* index 988 */,
1547  BITFIELD(17, 5) /* index 993 */,
1556  BITFIELD(12, 4) /* index 1026 */,
1557  TILEPRO_OPC_NONE, CHILD(1043), CHILD(1046), CHILD(1049), CHILD(1052),
1558  CHILD(1055), CHILD(1058), CHILD(1061), CHILD(1064), CHILD(1067),
1561  BITFIELD(16, 1) /* index 1043 */,
1563  BITFIELD(16, 1) /* index 1046 */,
1565  BITFIELD(16, 1) /* index 1049 */,
1567  BITFIELD(16, 1) /* index 1052 */,
1569  BITFIELD(16, 1) /* index 1055 */,
1571  BITFIELD(16, 1) /* index 1058 */,
1573  BITFIELD(16, 1) /* index 1061 */,
1575  BITFIELD(16, 1) /* index 1064 */,
1577  BITFIELD(16, 1) /* index 1067 */,
1579  BITFIELD(16, 1) /* index 1070 */,
1581  BITFIELD(16, 1) /* index 1073 */,
1583  BITFIELD(17, 5) /* index 1076 */,
1593  BITFIELD(12, 4) /* index 1109 */,
1594  TILEPRO_OPC_NONE, CHILD(1126), CHILD(1129), CHILD(1132), CHILD(1135),
1595  CHILD(1055), CHILD(1058), CHILD(1138), CHILD(1141), CHILD(1144),
1598  BITFIELD(16, 1) /* index 1126 */,
1600  BITFIELD(16, 1) /* index 1129 */,
1602  BITFIELD(16, 1) /* index 1132 */,
1604  BITFIELD(16, 1) /* index 1135 */,
1606  BITFIELD(16, 1) /* index 1138 */,
1608  BITFIELD(16, 1) /* index 1141 */,
1610  BITFIELD(16, 1) /* index 1144 */,
1612  BITFIELD(16, 1) /* index 1147 */,
1614  BITFIELD(16, 1) /* index 1150 */,
1616 };
1617 
1618 static const unsigned short decode_X1_fsm[1540] =
1619 {
1620  BITFIELD(54, 9) /* index 0 */,
1629  CHILD(513), CHILD(561), CHILD(594), TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
1637  CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766),
1638  CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766),
1639  CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766),
1640  CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766),
1641  CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766),
1642  CHILD(766), CHILD(781), CHILD(781), CHILD(781), CHILD(781), CHILD(781),
1643  CHILD(781), CHILD(781), CHILD(781), CHILD(781), CHILD(781), CHILD(781),
1644  CHILD(781), CHILD(781), CHILD(781), CHILD(781), CHILD(781), CHILD(781),
1645  CHILD(781), CHILD(781), CHILD(781), CHILD(781), CHILD(781), CHILD(781),
1646  CHILD(781), CHILD(781), CHILD(781), CHILD(781), CHILD(781), CHILD(781),
1647  CHILD(781), CHILD(781), CHILD(781), CHILD(796), CHILD(796), CHILD(796),
1648  CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(796),
1649  CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(796),
1650  CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(796),
1651  CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(796),
1652  CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(826),
1653  CHILD(826), CHILD(826), CHILD(826), CHILD(826), CHILD(826), CHILD(826),
1654  CHILD(826), CHILD(826), CHILD(826), CHILD(826), CHILD(826), CHILD(826),
1655  CHILD(826), CHILD(826), CHILD(826), CHILD(843), CHILD(843), CHILD(843),
1656  CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
1657  CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
1658  CHILD(843), CHILD(860), CHILD(899), CHILD(923), CHILD(932),
1662  CHILD(941), CHILD(950), CHILD(974), CHILD(983), TILEPRO_OPC_NONE,
1735  BITFIELD(49, 5) /* index 513 */,
1744  BITFIELD(43, 2) /* index 546 */,
1746  BITFIELD(45, 2) /* index 551 */,
1748  BITFIELD(47, 2) /* index 556 */,
1750  BITFIELD(49, 5) /* index 561 */,
1760  BITFIELD(49, 4) /* index 594 */,
1761  CHILD(611), CHILD(614), CHILD(617), CHILD(620), CHILD(623), CHILD(626),
1762  CHILD(629), CHILD(632), CHILD(635), CHILD(638), TILEPRO_OPC_NONE,
1765  BITFIELD(53, 1) /* index 611 */,
1767  BITFIELD(53, 1) /* index 614 */,
1769  BITFIELD(53, 1) /* index 617 */,
1771  BITFIELD(53, 1) /* index 620 */,
1773  BITFIELD(53, 1) /* index 623 */,
1775  BITFIELD(53, 1) /* index 626 */,
1777  BITFIELD(53, 1) /* index 629 */,
1779  BITFIELD(53, 1) /* index 632 */,
1781  BITFIELD(53, 1) /* index 635 */,
1783  BITFIELD(53, 1) /* index 638 */,
1785  BITFIELD(49, 5) /* index 641 */,
1796  BITFIELD(43, 2) /* index 674 */,
1798  BITFIELD(45, 2) /* index 679 */,
1800  BITFIELD(47, 2) /* index 684 */,
1803  BITFIELD(49, 5) /* index 689 */,
1815  BITFIELD(49, 4) /* index 722 */,
1816  CHILD(611), CHILD(739), CHILD(742), CHILD(745), CHILD(748), CHILD(751),
1817  CHILD(754), CHILD(757), CHILD(760), CHILD(763), TILEPRO_OPC_NONE,
1820  BITFIELD(53, 1) /* index 739 */,
1822  BITFIELD(53, 1) /* index 742 */,
1824  BITFIELD(53, 1) /* index 745 */,
1826  BITFIELD(53, 1) /* index 748 */,
1828  BITFIELD(53, 1) /* index 751 */,
1830  BITFIELD(53, 1) /* index 754 */,
1832  BITFIELD(53, 1) /* index 757 */,
1834  BITFIELD(53, 1) /* index 760 */,
1836  BITFIELD(53, 1) /* index 763 */,
1838  BITFIELD(37, 2) /* index 766 */,
1840  CHILD(771),
1841  BITFIELD(39, 2) /* index 771 */,
1843  CHILD(776),
1844  BITFIELD(41, 2) /* index 776 */,
1847  BITFIELD(37, 2) /* index 781 */,
1849  BITFIELD(39, 2) /* index 786 */,
1851  BITFIELD(41, 2) /* index 791 */,
1853  BITFIELD(31, 2) /* index 796 */,
1855  BITFIELD(33, 2) /* index 801 */,
1857  BITFIELD(35, 2) /* index 806 */,
1859  BITFIELD(37, 2) /* index 811 */,
1861  BITFIELD(39, 2) /* index 816 */,
1863  BITFIELD(41, 2) /* index 821 */,
1865  BITFIELD(31, 4) /* index 826 */,
1870  BITFIELD(31, 4) /* index 843 */,
1877  BITFIELD(51, 3) /* index 860 */,
1880  BITFIELD(31, 2) /* index 869 */,
1882  BITFIELD(33, 2) /* index 874 */,
1884  BITFIELD(35, 2) /* index 879 */,
1886  BITFIELD(37, 2) /* index 884 */,
1888  BITFIELD(39, 2) /* index 889 */,
1890  BITFIELD(41, 2) /* index 894 */,
1892  BITFIELD(51, 3) /* index 899 */,
1895  BITFIELD(37, 2) /* index 908 */,
1897  BITFIELD(39, 2) /* index 913 */,
1899  BITFIELD(41, 2) /* index 918 */,
1901  BITFIELD(51, 3) /* index 923 */,
1905  BITFIELD(51, 3) /* index 932 */,
1909  BITFIELD(51, 3) /* index 941 */,
1913  BITFIELD(51, 3) /* index 950 */,
1917  BITFIELD(37, 2) /* index 959 */,
1919  BITFIELD(39, 2) /* index 964 */,
1921  BITFIELD(41, 2) /* index 969 */,
1924  BITFIELD(51, 3) /* index 974 */,
1928  BITFIELD(51, 3) /* index 983 */,
1932  BITFIELD(46, 7) /* index 992 */,
1934  CHILD(1121), CHILD(1121), CHILD(1121), CHILD(1121), CHILD(1124),
1935  CHILD(1124), CHILD(1124), CHILD(1124), CHILD(1127), CHILD(1127),
1936  CHILD(1127), CHILD(1127), CHILD(1130), CHILD(1130), CHILD(1130),
1937  CHILD(1130), CHILD(1133), CHILD(1133), CHILD(1133), CHILD(1133),
1938  CHILD(1136), CHILD(1136), CHILD(1136), CHILD(1136), CHILD(1139),
1939  CHILD(1139), CHILD(1139), CHILD(1139), CHILD(1142), CHILD(1142),
1940  CHILD(1142), CHILD(1142), CHILD(1145), CHILD(1145), CHILD(1145),
1941  CHILD(1145), CHILD(1148), CHILD(1148), CHILD(1148), CHILD(1148),
1942  CHILD(1151), CHILD(1242), CHILD(1290), CHILD(1323), TILEPRO_OPC_NONE,
1963  BITFIELD(53, 1) /* index 1121 */,
1965  BITFIELD(53, 1) /* index 1124 */,
1967  BITFIELD(53, 1) /* index 1127 */,
1969  BITFIELD(53, 1) /* index 1130 */,
1971  BITFIELD(53, 1) /* index 1133 */,
1973  BITFIELD(53, 1) /* index 1136 */,
1975  BITFIELD(53, 1) /* index 1139 */,
1977  BITFIELD(53, 1) /* index 1142 */,
1979  BITFIELD(53, 1) /* index 1145 */,
1981  BITFIELD(53, 1) /* index 1148 */,
1983  BITFIELD(43, 3) /* index 1151 */,
1984  TILEPRO_OPC_NONE, CHILD(1160), CHILD(1163), CHILD(1166), CHILD(1169),
1985  CHILD(1172), CHILD(1175), CHILD(1178),
1986  BITFIELD(53, 1) /* index 1160 */,
1988  BITFIELD(53, 1) /* index 1163 */,
1990  BITFIELD(53, 1) /* index 1166 */,
1992  BITFIELD(53, 1) /* index 1169 */,
1994  BITFIELD(53, 1) /* index 1172 */,
1996  BITFIELD(53, 1) /* index 1175 */,
1998  BITFIELD(31, 2) /* index 1178 */,
1999  CHILD(1183), CHILD(1211), CHILD(1239), CHILD(1239),
2000  BITFIELD(53, 1) /* index 1183 */,
2001  CHILD(1186), TILEPRO_OPC_NONE,
2002  BITFIELD(33, 2) /* index 1186 */,
2004  BITFIELD(35, 2) /* index 1191 */,
2006  BITFIELD(37, 2) /* index 1196 */,
2008  BITFIELD(39, 2) /* index 1201 */,
2010  BITFIELD(41, 2) /* index 1206 */,
2012  BITFIELD(53, 1) /* index 1211 */,
2013  CHILD(1214), TILEPRO_OPC_NONE,
2014  BITFIELD(33, 2) /* index 1214 */,
2016  BITFIELD(35, 2) /* index 1219 */,
2018  BITFIELD(37, 2) /* index 1224 */,
2020  BITFIELD(39, 2) /* index 1229 */,
2022  BITFIELD(41, 2) /* index 1234 */,
2024  BITFIELD(53, 1) /* index 1239 */,
2026  BITFIELD(43, 3) /* index 1242 */,
2027  CHILD(1251), CHILD(1254), CHILD(1257), CHILD(1275), CHILD(1278),
2028  CHILD(1281), CHILD(1284), CHILD(1287),
2029  BITFIELD(53, 1) /* index 1251 */,
2031  BITFIELD(53, 1) /* index 1254 */,
2033  BITFIELD(53, 1) /* index 1257 */,
2034  CHILD(1260), TILEPRO_OPC_NONE,
2035  BITFIELD(31, 2) /* index 1260 */,
2037  BITFIELD(33, 2) /* index 1265 */,
2039  BITFIELD(35, 2) /* index 1270 */,
2041  BITFIELD(53, 1) /* index 1275 */,
2043  BITFIELD(53, 1) /* index 1278 */,
2045  BITFIELD(53, 1) /* index 1281 */,
2047  BITFIELD(53, 1) /* index 1284 */,
2049  BITFIELD(53, 1) /* index 1287 */,
2051  BITFIELD(43, 3) /* index 1290 */,
2052  CHILD(1299), CHILD(1302), CHILD(1305), CHILD(1308), CHILD(1311),
2053  CHILD(1314), CHILD(1317), CHILD(1320),
2054  BITFIELD(53, 1) /* index 1299 */,
2056  BITFIELD(53, 1) /* index 1302 */,
2058  BITFIELD(53, 1) /* index 1305 */,
2060  BITFIELD(53, 1) /* index 1308 */,
2062  BITFIELD(53, 1) /* index 1311 */,
2064  BITFIELD(53, 1) /* index 1314 */,
2066  BITFIELD(53, 1) /* index 1317 */,
2068  BITFIELD(53, 1) /* index 1320 */,
2070  BITFIELD(43, 2) /* index 1323 */,
2072  BITFIELD(45, 1) /* index 1328 */,
2073  CHILD(1331), TILEPRO_OPC_NONE,
2074  BITFIELD(53, 1) /* index 1331 */,
2076  BITFIELD(46, 7) /* index 1334 */,
2078  CHILD(1463), CHILD(1463), CHILD(1463), CHILD(1463), CHILD(1466),
2079  CHILD(1466), CHILD(1466), CHILD(1466), CHILD(1469), CHILD(1469),
2080  CHILD(1469), CHILD(1469), CHILD(1472), CHILD(1472), CHILD(1472),
2081  CHILD(1472), CHILD(1475), CHILD(1475), CHILD(1475), CHILD(1475),
2082  CHILD(1478), CHILD(1478), CHILD(1478), CHILD(1478), CHILD(1481),
2083  CHILD(1481), CHILD(1481), CHILD(1481), CHILD(1484), CHILD(1484),
2084  CHILD(1484), CHILD(1484), CHILD(1487), CHILD(1487), CHILD(1487),
2085  CHILD(1487), CHILD(1490), CHILD(1490), CHILD(1490), CHILD(1490),
2086  CHILD(1151), CHILD(1493), CHILD(1517), CHILD(1529), TILEPRO_OPC_NONE,
2107  BITFIELD(53, 1) /* index 1463 */,
2109  BITFIELD(53, 1) /* index 1466 */,
2111  BITFIELD(53, 1) /* index 1469 */,
2113  BITFIELD(53, 1) /* index 1472 */,
2115  BITFIELD(53, 1) /* index 1475 */,
2117  BITFIELD(53, 1) /* index 1478 */,
2119  BITFIELD(53, 1) /* index 1481 */,
2121  BITFIELD(53, 1) /* index 1484 */,
2123  BITFIELD(53, 1) /* index 1487 */,
2125  BITFIELD(53, 1) /* index 1490 */,
2127  BITFIELD(43, 3) /* index 1493 */,
2128  CHILD(1251), CHILD(1254), CHILD(1502), CHILD(1505), CHILD(1508),
2129  CHILD(1511), CHILD(1514), CHILD(1287),
2130  BITFIELD(53, 1) /* index 1502 */,
2132  BITFIELD(53, 1) /* index 1505 */,
2134  BITFIELD(53, 1) /* index 1508 */,
2136  BITFIELD(53, 1) /* index 1511 */,
2138  BITFIELD(53, 1) /* index 1514 */,
2140  BITFIELD(43, 3) /* index 1517 */,
2141  CHILD(1299), CHILD(1302), CHILD(1305), CHILD(1308), CHILD(1311),
2142  CHILD(1314), CHILD(1526), CHILD(1320),
2143  BITFIELD(53, 1) /* index 1526 */,
2145  BITFIELD(43, 2) /* index 1529 */,
2147  BITFIELD(45, 1) /* index 1534 */,
2148  CHILD(1537), TILEPRO_OPC_NONE,
2149  BITFIELD(53, 1) /* index 1537 */,
2151 };
2152 
2153 static const unsigned short decode_Y0_fsm[168] =
2154 {
2155  BITFIELD(27, 4) /* index 0 */,
2156  TILEPRO_OPC_NONE, CHILD(17), CHILD(22), CHILD(27), CHILD(47), CHILD(52),
2157  CHILD(57), CHILD(62), CHILD(67), TILEPRO_OPC_ADDI, CHILD(72), CHILD(102),
2159  BITFIELD(18, 2) /* index 17 */,
2161  BITFIELD(18, 2) /* index 22 */,
2163  BITFIELD(18, 2) /* index 27 */,
2165  BITFIELD(12, 2) /* index 32 */,
2167  BITFIELD(14, 2) /* index 37 */,
2169  BITFIELD(16, 2) /* index 42 */,
2171  BITFIELD(18, 2) /* index 47 */,
2173  BITFIELD(18, 2) /* index 52 */,
2175  BITFIELD(18, 2) /* index 57 */,
2177  BITFIELD(18, 2) /* index 62 */,
2180  BITFIELD(18, 2) /* index 67 */,
2183  BITFIELD(0, 2) /* index 72 */,
2185  BITFIELD(2, 2) /* index 77 */,
2187  BITFIELD(4, 2) /* index 82 */,
2189  BITFIELD(6, 2) /* index 87 */,
2191  BITFIELD(8, 2) /* index 92 */,
2193  BITFIELD(10, 2) /* index 97 */,
2195  BITFIELD(6, 2) /* index 102 */,
2197  BITFIELD(8, 2) /* index 107 */,
2199  BITFIELD(10, 2) /* index 112 */,
2201  BITFIELD(15, 5) /* index 117 */,
2210  BITFIELD(12, 3) /* index 150 */,
2213  BITFIELD(12, 3) /* index 159 */,
2217 };
2218 
2219 static const unsigned short decode_Y1_fsm[140] =
2220 {
2221  BITFIELD(59, 4) /* index 0 */,
2222  TILEPRO_OPC_NONE, CHILD(17), CHILD(22), CHILD(27), CHILD(47), CHILD(52),
2226  BITFIELD(49, 2) /* index 17 */,
2228  BITFIELD(49, 2) /* index 22 */,
2230  BITFIELD(49, 2) /* index 27 */,
2232  BITFIELD(43, 2) /* index 32 */,
2234  BITFIELD(45, 2) /* index 37 */,
2236  BITFIELD(47, 2) /* index 42 */,
2238  BITFIELD(49, 2) /* index 47 */,
2240  BITFIELD(49, 2) /* index 52 */,
2242  BITFIELD(49, 2) /* index 57 */,
2244  BITFIELD(31, 2) /* index 62 */,
2246  BITFIELD(33, 2) /* index 67 */,
2248  BITFIELD(35, 2) /* index 72 */,
2250  BITFIELD(37, 2) /* index 77 */,
2252  BITFIELD(39, 2) /* index 82 */,
2254  BITFIELD(41, 2) /* index 87 */,
2256  BITFIELD(37, 2) /* index 92 */,
2258  BITFIELD(39, 2) /* index 97 */,
2260  BITFIELD(41, 2) /* index 102 */,
2262  BITFIELD(48, 3) /* index 107 */,
2265  BITFIELD(43, 3) /* index 116 */,
2266  TILEPRO_OPC_NONE, CHILD(125), CHILD(130), CHILD(135), TILEPRO_OPC_NONE,
2268  BITFIELD(46, 2) /* index 125 */,
2270  BITFIELD(46, 2) /* index 130 */,
2272  BITFIELD(46, 2) /* index 135 */,
2274 };
2275 
2276 static const unsigned short decode_Y2_fsm[24] =
2277 {
2278  BITFIELD(56, 3) /* index 0 */,
2281  BITFIELD(20, 2) /* index 9 */,
2283  BITFIELD(22, 2) /* index 14 */,
2285  BITFIELD(24, 2) /* index 19 */,
2287 };
2288 
2289 #undef BITFIELD
2290 #undef CHILD
2291 const unsigned short * const
2293 {
2294  decode_X0_fsm,
2295  decode_X1_fsm,
2296  decode_Y0_fsm,
2297  decode_Y1_fsm,
2298  decode_Y2_fsm
2299 };
2301 {
2302  {
2303  TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_IMM8_X0),
2304  8, 1, 0, 0, 0, 0,
2305  create_Imm8_X0, get_Imm8_X0
2306  },
2307  {
2308  TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_IMM8_X1),
2309  8, 1, 0, 0, 0, 0,
2310  create_Imm8_X1, get_Imm8_X1
2311  },
2312  {
2313  TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_IMM8_Y0),
2314  8, 1, 0, 0, 0, 0,
2315  create_Imm8_Y0, get_Imm8_Y0
2316  },
2317  {
2318  TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_IMM8_Y1),
2319  8, 1, 0, 0, 0, 0,
2320  create_Imm8_Y1, get_Imm8_Y1
2321  },
2322  {
2323  TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_IMM16_X0),
2324  16, 1, 0, 0, 0, 0,
2325  create_Imm16_X0, get_Imm16_X0
2326  },
2327  {
2328  TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_IMM16_X1),
2329  16, 1, 0, 0, 0, 0,
2330  create_Imm16_X1, get_Imm16_X1
2331  },
2332  {
2333  TILEPRO_OP_TYPE_ADDRESS, BFD_RELOC(TILEPRO_JOFFLONG_X1),
2335  create_JOffLong_X1, get_JOffLong_X1
2336  },
2337  {
2339  6, 0, 0, 1, 0, 0,
2340  create_Dest_X0, get_Dest_X0
2341  },
2342  {
2344  6, 0, 1, 0, 0, 0,
2345  create_SrcA_X0, get_SrcA_X0
2346  },
2347  {
2349  6, 0, 0, 1, 0, 0,
2350  create_Dest_X1, get_Dest_X1
2351  },
2352  {
2354  6, 0, 1, 0, 0, 0,
2355  create_SrcA_X1, get_SrcA_X1
2356  },
2357  {
2359  6, 0, 0, 1, 0, 0,
2360  create_Dest_Y0, get_Dest_Y0
2361  },
2362  {
2364  6, 0, 1, 0, 0, 0,
2365  create_SrcA_Y0, get_SrcA_Y0
2366  },
2367  {
2369  6, 0, 0, 1, 0, 0,
2370  create_Dest_Y1, get_Dest_Y1
2371  },
2372  {
2374  6, 0, 1, 0, 0, 0,
2375  create_SrcA_Y1, get_SrcA_Y1
2376  },
2377  {
2379  6, 0, 1, 0, 0, 0,
2380  create_SrcA_Y2, get_SrcA_Y2
2381  },
2382  {
2384  6, 0, 1, 0, 0, 0,
2385  create_SrcB_X0, get_SrcB_X0
2386  },
2387  {
2389  6, 0, 1, 0, 0, 0,
2390  create_SrcB_X1, get_SrcB_X1
2391  },
2392  {
2394  6, 0, 1, 0, 0, 0,
2395  create_SrcB_Y0, get_SrcB_Y0
2396  },
2397  {
2399  6, 0, 1, 0, 0, 0,
2400  create_SrcB_Y1, get_SrcB_Y1
2401  },
2402  {
2403  TILEPRO_OP_TYPE_ADDRESS, BFD_RELOC(TILEPRO_BROFF_X1),
2405  create_BrOff_X1, get_BrOff_X1
2406  },
2407  {
2409  6, 0, 1, 1, 0, 0,
2410  create_Dest_X0, get_Dest_X0
2411  },
2412  {
2415  create_JOff_X1, get_JOff_X1
2416  },
2417  {
2419  6, 0, 0, 1, 0, 0,
2420  create_SrcBDest_Y2, get_SrcBDest_Y2
2421  },
2422  {
2424  6, 0, 1, 1, 0, 0,
2425  create_SrcA_X1, get_SrcA_X1
2426  },
2427  {
2428  TILEPRO_OP_TYPE_SPR, BFD_RELOC(TILEPRO_MF_IMM15_X1),
2429  15, 0, 0, 0, 0, 0,
2430  create_MF_Imm15_X1, get_MF_Imm15_X1
2431  },
2432  {
2433  TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_MMSTART_X0),
2434  5, 0, 0, 0, 0, 0,
2435  create_MMStart_X0, get_MMStart_X0
2436  },
2437  {
2438  TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_MMEND_X0),
2439  5, 0, 0, 0, 0, 0,
2440  create_MMEnd_X0, get_MMEnd_X0
2441  },
2442  {
2443  TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_MMSTART_X1),
2444  5, 0, 0, 0, 0, 0,
2445  create_MMStart_X1, get_MMStart_X1
2446  },
2447  {
2448  TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_MMEND_X1),
2449  5, 0, 0, 0, 0, 0,
2450  create_MMEnd_X1, get_MMEnd_X1
2451  },
2452  {
2453  TILEPRO_OP_TYPE_SPR, BFD_RELOC(TILEPRO_MT_IMM15_X1),
2454  15, 0, 0, 0, 0, 0,
2455  create_MT_Imm15_X1, get_MT_Imm15_X1
2456  },
2457  {
2459  6, 0, 1, 1, 0, 0,
2460  create_Dest_Y0, get_Dest_Y0
2461  },
2462  {
2463  TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_SHAMT_X0),
2464  5, 0, 0, 0, 0, 0,
2465  create_ShAmt_X0, get_ShAmt_X0
2466  },
2467  {
2468  TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_SHAMT_X1),
2469  5, 0, 0, 0, 0, 0,
2470  create_ShAmt_X1, get_ShAmt_X1
2471  },
2472  {
2473  TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_SHAMT_Y0),
2474  5, 0, 0, 0, 0, 0,
2475  create_ShAmt_Y0, get_ShAmt_Y0
2476  },
2477  {
2478  TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_SHAMT_Y1),
2479  5, 0, 0, 0, 0, 0,
2480  create_ShAmt_Y1, get_ShAmt_Y1
2481  },
2482  {
2484  6, 0, 1, 0, 0, 0,
2485  create_SrcBDest_Y2, get_SrcBDest_Y2
2486  },
2487  {
2488  TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_DEST_IMM8_X1),
2489  8, 1, 0, 0, 0, 0,
2490  create_Dest_Imm8_X1, get_Dest_Imm8_X1
2491  },
2492  {
2495  create_BrOff_SN, get_BrOff_SN
2496  },
2497  {
2499  8, 0, 0, 0, 0, 0,
2500  create_Imm8_SN, get_Imm8_SN
2501  },
2502  {
2504  8, 1, 0, 0, 0, 0,
2505  create_Imm8_SN, get_Imm8_SN
2506  },
2507  {
2509  2, 0, 0, 1, 0, 0,
2510  create_Dest_SN, get_Dest_SN
2511  },
2512  {
2514  2, 0, 1, 0, 0, 0,
2515  create_Src_SN, get_Src_SN
2516  }
2517 };
2518 
2519 
2520 
2521 
2522 /* Given a set of bundle bits and a specific pipe, returns which
2523  * instruction the bundle contains in that pipe.
2524  */
2525 const struct tilepro_opcode *
2527 {
2528  const unsigned short *table = tilepro_bundle_decoder_fsms[pipe];
2529  int index = 0;
2530 
2531  while (1)
2532  {
2533  unsigned short bitspec = table[index];
2534  unsigned int bitfield =
2535  ((unsigned int)(bits >> (bitspec & 63))) & (bitspec >> 6);
2536 
2537  unsigned short next = table[index + 1 + bitfield];
2538  if (next <= TILEPRO_OPC_NONE)
2539  return &tilepro_opcodes[next];
2540 
2541  index = next - TILEPRO_OPC_NONE;
2542  }
2543 }
2544 
2545 
2546 int
2548  unsigned int pc,
2551 {
2552  int num_instructions = 0;
2553  int pipe;
2554 
2555  int min_pipe, max_pipe;
2556  if ((bits & TILEPRO_BUNDLE_Y_ENCODING_MASK) == 0)
2557  {
2558  min_pipe = TILEPRO_PIPELINE_X0;
2559  max_pipe = TILEPRO_PIPELINE_X1;
2560  }
2561  else
2562  {
2563  min_pipe = TILEPRO_PIPELINE_Y0;
2564  max_pipe = TILEPRO_PIPELINE_Y2;
2565  }
2566 
2567  /* For each pipe, find an instruction that fits. */
2568  for (pipe = min_pipe; pipe <= max_pipe; pipe++)
2569  {
2570  const struct tilepro_opcode *opc;
2572  int i;
2573 
2574  d = &decoded[num_instructions++];
2575  opc = find_opcode (bits, (tilepro_pipeline)pipe);
2576  d->opcode = opc;
2577 
2578  /* Decode each operand, sign extending, etc. as appropriate. */
2579  for (i = 0; i < opc->num_operands; i++)
2580  {
2581  const struct tilepro_operand *op =
2582  &tilepro_operands[opc->operands[pipe][i]];
2583  int opval = op->extract (bits);
2584  if (op->is_signed)
2585  {
2586  /* Sign-extend the operand. */
2587  int shift = (int)((sizeof(int) * 8) - op->num_bits);
2588  opval = (opval << shift) >> shift;
2589  }
2590 
2591  /* Adjust PC-relative scaled branch offsets. */
2592  if (op->type == TILEPRO_OP_TYPE_ADDRESS)
2593  {
2595  opval += (int)pc;
2596  }
2597 
2598  /* Record the final value. */
2599  d->operands[i] = op;
2600  d->operand_values[i] = opval;
2601  }
2602  }
2603 
2604  return num_instructions;
2605 }