1
/* Information for instruction disassembly on the Convex.
2
Copyright 1989, 1993, 2002 Free Software Foundation, Inc.
4
This file is part of GDB.
6
This program is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2 of the License, or
9
(at your option) any later version.
11
This program is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
16
You should have received a copy of the GNU General Public License
17
along with this program; if not, write to the Free Software
18
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
49
/* Prevent an error during "make depend". */
68
"v0\0v1\0v2\0v3\0v4\0v5\0v6\0v7",
69
"s0\0s1\0s2\0s3\0s4\0s5\0s6\0s7",
71
"sp\0a1\0a2\0a3\0a4\0a5\0ap\0fp",
91
const struct formstr format0[] = {
92
{0,0,rrr,V,S,S}, /* mov */
93
{0,0,rrr,S,S,V}, /* mov */
94
{1,1,rrr,V,V,V}, /* merg.t */
95
{2,1,rrr,V,V,V}, /* mask.t */
96
{1,2,rrr,V,S,V}, /* merg.f */
97
{2,2,rrr,V,S,V}, /* mask.f */
98
{1,1,rrr,V,S,V}, /* merg.t */
99
{2,1,rrr,V,S,V}, /* mask.t */
100
{3,3,rrr,V,V,V}, /* mul.s */
101
{3,4,rrr,V,V,V}, /* mul.d */
102
{4,3,rrr,V,V,V}, /* div.s */
103
{4,4,rrr,V,V,V}, /* div.d */
104
{3,3,rrr,V,S,V}, /* mul.s */
105
{3,4,rrr,V,S,V}, /* mul.d */
106
{4,3,rrr,V,S,V}, /* div.s */
107
{4,4,rrr,V,S,V}, /* div.d */
108
{5,0,rrr,V,V,V}, /* and */
109
{6,0,rrr,V,V,V}, /* or */
110
{7,0,rrr,V,V,V}, /* xor */
111
{8,0,rrr,V,V,V}, /* shf */
112
{5,0,rrr,V,S,V}, /* and */
113
{6,0,rrr,V,S,V}, /* or */
114
{7,0,rrr,V,S,V}, /* xor */
115
{8,0,rrr,V,S,V}, /* shf */
116
{9,3,rrr,V,V,V}, /* add.s */
117
{9,4,rrr,V,V,V}, /* add.d */
118
{10,3,rrr,V,V,V}, /* sub.s */
119
{10,4,rrr,V,V,V}, /* sub.d */
120
{9,3,rrr,V,S,V}, /* add.s */
121
{9,4,rrr,V,S,V}, /* add.d */
122
{10,3,rrr,V,S,V}, /* sub.s */
123
{10,4,rrr,V,S,V}, /* sub.d */
124
{9,5,rrr,V,V,V}, /* add.b */
125
{9,6,rrr,V,V,V}, /* add.h */
126
{9,7,rrr,V,V,V}, /* add.w */
127
{9,8,rrr,V,V,V}, /* add.l */
128
{9,5,rrr,V,S,V}, /* add.b */
129
{9,6,rrr,V,S,V}, /* add.h */
130
{9,7,rrr,V,S,V}, /* add.w */
131
{9,8,rrr,V,S,V}, /* add.l */
132
{10,5,rrr,V,V,V}, /* sub.b */
133
{10,6,rrr,V,V,V}, /* sub.h */
134
{10,7,rrr,V,V,V}, /* sub.w */
135
{10,8,rrr,V,V,V}, /* sub.l */
136
{10,5,rrr,V,S,V}, /* sub.b */
137
{10,6,rrr,V,S,V}, /* sub.h */
138
{10,7,rrr,V,S,V}, /* sub.w */
139
{10,8,rrr,V,S,V}, /* sub.l */
140
{3,5,rrr,V,V,V}, /* mul.b */
141
{3,6,rrr,V,V,V}, /* mul.h */
142
{3,7,rrr,V,V,V}, /* mul.w */
143
{3,8,rrr,V,V,V}, /* mul.l */
144
{3,5,rrr,V,S,V}, /* mul.b */
145
{3,6,rrr,V,S,V}, /* mul.h */
146
{3,7,rrr,V,S,V}, /* mul.w */
147
{3,8,rrr,V,S,V}, /* mul.l */
148
{4,5,rrr,V,V,V}, /* div.b */
149
{4,6,rrr,V,V,V}, /* div.h */
150
{4,7,rrr,V,V,V}, /* div.w */
151
{4,8,rrr,V,V,V}, /* div.l */
152
{4,5,rrr,V,S,V}, /* div.b */
153
{4,6,rrr,V,S,V}, /* div.h */
154
{4,7,rrr,V,S,V}, /* div.w */
155
{4,8,rrr,V,S,V}, /* div.l */
158
const struct formstr format1[] = {
159
{11,0,xxx,0,0,0}, /* exit */
160
{12,0,a3,0,0,0}, /* jmp */
161
{13,2,a3,0,0,0}, /* jmpi.f */
162
{13,1,a3,0,0,0}, /* jmpi.t */
163
{14,2,a3,0,0,0}, /* jmpa.f */
164
{14,1,a3,0,0,0}, /* jmpa.t */
165
{15,2,a3,0,0,0}, /* jmps.f */
166
{15,1,a3,0,0,0}, /* jmps.t */
167
{16,0,a3,0,0,0}, /* tac */
168
{17,0,a1r,A,0,0}, /* ldea */
169
{18,8,a1l,VLS,0,0}, /* ld.l */
170
{18,9,a1l,VM,0,0}, /* ld.x */
171
{19,0,a3,0,0,0}, /* tas */
172
{20,0,a3,0,0,0}, /* pshea */
173
{21,8,a2l,VLS,0,0}, /* st.l */
174
{21,9,a2l,VM,0,0}, /* st.x */
191
{22,0,a3,0,0,0}, /* call */
192
{23,0,a3,0,0,0}, /* calls */
193
{24,0,a3,0,0,0}, /* callq */
194
{25,0,a1r,A,0,0}, /* pfork */
195
{26,5,a2r,S,0,0}, /* ste.b */
196
{26,6,a2r,S,0,0}, /* ste.h */
197
{26,7,a2r,S,0,0}, /* ste.w */
198
{26,8,a2r,S,0,0}, /* ste.l */
199
{18,5,a1r,A,0,0}, /* ld.b */
200
{18,6,a1r,A,0,0}, /* ld.h */
201
{18,7,a1r,A,0,0}, /* ld.w */
202
{27,7,a1r,A,0,0}, /* incr.w */
203
{21,5,a2r,A,0,0}, /* st.b */
204
{21,6,a2r,A,0,0}, /* st.h */
205
{21,7,a2r,A,0,0}, /* st.w */
206
{27,8,a1r,S,0,0}, /* incr.l */
207
{18,5,a1r,S,0,0}, /* ld.b */
208
{18,6,a1r,S,0,0}, /* ld.h */
209
{18,7,a1r,S,0,0}, /* ld.w */
210
{18,8,a1r,S,0,0}, /* ld.l */
211
{21,5,a2r,S,0,0}, /* st.b */
212
{21,6,a2r,S,0,0}, /* st.h */
213
{21,7,a2r,S,0,0}, /* st.w */
214
{21,8,a2r,S,0,0}, /* st.l */
215
{18,5,a1r,V,0,0}, /* ld.b */
216
{18,6,a1r,V,0,0}, /* ld.h */
217
{18,7,a1r,V,0,0}, /* ld.w */
218
{18,8,a1r,V,0,0}, /* ld.l */
219
{21,5,a2r,V,0,0}, /* st.b */
220
{21,6,a2r,V,0,0}, /* st.h */
221
{21,7,a2r,V,0,0}, /* st.w */
222
{21,8,a2r,V,0,0}, /* st.l */
225
const struct formstr format2[] = {
226
{28,5,rr,A,A,0}, /* cvtw.b */
227
{28,6,rr,A,A,0}, /* cvtw.h */
228
{29,7,rr,A,A,0}, /* cvtb.w */
229
{30,7,rr,A,A,0}, /* cvth.w */
230
{28,5,rr,S,S,0}, /* cvtw.b */
231
{28,6,rr,S,S,0}, /* cvtw.h */
232
{29,7,rr,S,S,0}, /* cvtb.w */
233
{30,7,rr,S,S,0}, /* cvth.w */
234
{28,3,rr,S,S,0}, /* cvtw.s */
235
{31,7,rr,S,S,0}, /* cvts.w */
236
{32,3,rr,S,S,0}, /* cvtd.s */
237
{31,4,rr,S,S,0}, /* cvts.d */
238
{31,8,rr,S,S,0}, /* cvts.l */
239
{32,8,rr,S,S,0}, /* cvtd.l */
240
{33,3,rr,S,S,0}, /* cvtl.s */
241
{33,4,rr,S,S,0}, /* cvtl.d */
242
{34,0,rr,A,A,0}, /* ldpa */
243
{8,0,nr,A,0,0}, /* shf */
244
{18,6,nr,A,0,0}, /* ld.h */
245
{18,7,nr,A,0,0}, /* ld.w */
246
{33,7,rr,S,S,0}, /* cvtl.w */
247
{28,8,rr,S,S,0}, /* cvtw.l */
248
{35,1,rr,S,S,0}, /* plc.t */
249
{36,0,rr,S,S,0}, /* tzc */
250
{37,6,rr,A,A,0}, /* eq.h */
251
{37,7,rr,A,A,0}, /* eq.w */
252
{37,6,nr,A,0,0}, /* eq.h */
253
{37,7,nr,A,0,0}, /* eq.w */
254
{37,5,rr,S,S,0}, /* eq.b */
255
{37,6,rr,S,S,0}, /* eq.h */
256
{37,7,rr,S,S,0}, /* eq.w */
257
{37,8,rr,S,S,0}, /* eq.l */
258
{38,6,rr,A,A,0}, /* leu.h */
259
{38,7,rr,A,A,0}, /* leu.w */
260
{38,6,nr,A,0,0}, /* leu.h */
261
{38,7,nr,A,0,0}, /* leu.w */
262
{38,5,rr,S,S,0}, /* leu.b */
263
{38,6,rr,S,S,0}, /* leu.h */
264
{38,7,rr,S,S,0}, /* leu.w */
265
{38,8,rr,S,S,0}, /* leu.l */
266
{39,6,rr,A,A,0}, /* ltu.h */
267
{39,7,rr,A,A,0}, /* ltu.w */
268
{39,6,nr,A,0,0}, /* ltu.h */
269
{39,7,nr,A,0,0}, /* ltu.w */
270
{39,5,rr,S,S,0}, /* ltu.b */
271
{39,6,rr,S,S,0}, /* ltu.h */
272
{39,7,rr,S,S,0}, /* ltu.w */
273
{39,8,rr,S,S,0}, /* ltu.l */
274
{40,6,rr,A,A,0}, /* le.h */
275
{40,7,rr,A,A,0}, /* le.w */
276
{40,6,nr,A,0,0}, /* le.h */
277
{40,7,nr,A,0,0}, /* le.w */
278
{40,5,rr,S,S,0}, /* le.b */
279
{40,6,rr,S,S,0}, /* le.h */
280
{40,7,rr,S,S,0}, /* le.w */
281
{40,8,rr,S,S,0}, /* le.l */
282
{41,6,rr,A,A,0}, /* lt.h */
283
{41,7,rr,A,A,0}, /* lt.w */
284
{41,6,nr,A,0,0}, /* lt.h */
285
{41,7,nr,A,0,0}, /* lt.w */
286
{41,5,rr,S,S,0}, /* lt.b */
287
{41,6,rr,S,S,0}, /* lt.h */
288
{41,7,rr,S,S,0}, /* lt.w */
289
{41,8,rr,S,S,0}, /* lt.l */
290
{9,7,rr,S,A,0}, /* add.w */
291
{8,0,rr,A,A,0}, /* shf */
292
{0,0,rr,A,A,0}, /* mov */
293
{0,0,rr,S,A,0}, /* mov */
294
{0,7,rr,S,S,0}, /* mov.w */
295
{8,0,rr,S,S,0}, /* shf */
296
{0,0,rr,S,S,0}, /* mov */
297
{0,0,rr,A,S,0}, /* mov */
298
{5,0,rr,A,A,0}, /* and */
299
{6,0,rr,A,A,0}, /* or */
300
{7,0,rr,A,A,0}, /* xor */
301
{42,0,rr,A,A,0}, /* not */
302
{5,0,rr,S,S,0}, /* and */
303
{6,0,rr,S,S,0}, /* or */
304
{7,0,rr,S,S,0}, /* xor */
305
{42,0,rr,S,S,0}, /* not */
306
{40,3,rr,S,S,0}, /* le.s */
307
{40,4,rr,S,S,0}, /* le.d */
308
{41,3,rr,S,S,0}, /* lt.s */
309
{41,4,rr,S,S,0}, /* lt.d */
310
{9,3,rr,S,S,0}, /* add.s */
311
{9,4,rr,S,S,0}, /* add.d */
312
{10,3,rr,S,S,0}, /* sub.s */
313
{10,4,rr,S,S,0}, /* sub.d */
314
{37,3,rr,S,S,0}, /* eq.s */
315
{37,4,rr,S,S,0}, /* eq.d */
316
{43,6,rr,A,A,0}, /* neg.h */
317
{43,7,rr,A,A,0}, /* neg.w */
318
{3,3,rr,S,S,0}, /* mul.s */
319
{3,4,rr,S,S,0}, /* mul.d */
320
{4,3,rr,S,S,0}, /* div.s */
321
{4,4,rr,S,S,0}, /* div.d */
322
{9,6,rr,A,A,0}, /* add.h */
323
{9,7,rr,A,A,0}, /* add.w */
324
{9,6,nr,A,0,0}, /* add.h */
325
{9,7,nr,A,0,0}, /* add.w */
326
{9,5,rr,S,S,0}, /* add.b */
327
{9,6,rr,S,S,0}, /* add.h */
328
{9,7,rr,S,S,0}, /* add.w */
329
{9,8,rr,S,S,0}, /* add.l */
330
{10,6,rr,A,A,0}, /* sub.h */
331
{10,7,rr,A,A,0}, /* sub.w */
332
{10,6,nr,A,0,0}, /* sub.h */
333
{10,7,nr,A,0,0}, /* sub.w */
334
{10,5,rr,S,S,0}, /* sub.b */
335
{10,6,rr,S,S,0}, /* sub.h */
336
{10,7,rr,S,S,0}, /* sub.w */
337
{10,8,rr,S,S,0}, /* sub.l */
338
{3,6,rr,A,A,0}, /* mul.h */
339
{3,7,rr,A,A,0}, /* mul.w */
340
{3,6,nr,A,0,0}, /* mul.h */
341
{3,7,nr,A,0,0}, /* mul.w */
342
{3,5,rr,S,S,0}, /* mul.b */
343
{3,6,rr,S,S,0}, /* mul.h */
344
{3,7,rr,S,S,0}, /* mul.w */
345
{3,8,rr,S,S,0}, /* mul.l */
346
{4,6,rr,A,A,0}, /* div.h */
347
{4,7,rr,A,A,0}, /* div.w */
348
{4,6,nr,A,0,0}, /* div.h */
349
{4,7,nr,A,0,0}, /* div.w */
350
{4,5,rr,S,S,0}, /* div.b */
351
{4,6,rr,S,S,0}, /* div.h */
352
{4,7,rr,S,S,0}, /* div.w */
353
{4,8,rr,S,S,0}, /* div.l */
356
const struct formstr format3[] = {
357
{32,3,rr,V,V,0}, /* cvtd.s */
358
{31,4,rr,V,V,0}, /* cvts.d */
359
{33,4,rr,V,V,0}, /* cvtl.d */
360
{32,8,rr,V,V,0}, /* cvtd.l */
361
{0,0,rrl,S,S,VM}, /* mov */
362
{0,0,rlr,S,VM,S}, /* mov */
364
{44,0,rr,S,S,0}, /* lop */
365
{36,0,rr,V,V,0}, /* tzc */
366
{44,0,rr,V,V,0}, /* lop */
368
{42,0,rr,V,V,0}, /* not */
369
{8,0,rr,S,V,0}, /* shf */
370
{35,1,rr,V,V,0}, /* plc.t */
371
{45,2,rr,V,V,0}, /* cprs.f */
372
{45,1,rr,V,V,0}, /* cprs.t */
373
{37,3,rr,V,V,0}, /* eq.s */
374
{37,4,rr,V,V,0}, /* eq.d */
375
{43,3,rr,V,V,0}, /* neg.s */
376
{43,4,rr,V,V,0}, /* neg.d */
377
{37,3,rr,S,V,0}, /* eq.s */
378
{37,4,rr,S,V,0}, /* eq.d */
379
{43,3,rr,S,S,0}, /* neg.s */
380
{43,4,rr,S,S,0}, /* neg.d */
381
{40,3,rr,V,V,0}, /* le.s */
382
{40,4,rr,V,V,0}, /* le.d */
383
{41,3,rr,V,V,0}, /* lt.s */
384
{41,4,rr,V,V,0}, /* lt.d */
385
{40,3,rr,S,V,0}, /* le.s */
386
{40,4,rr,S,V,0}, /* le.d */
387
{41,3,rr,S,V,0}, /* lt.s */
388
{41,4,rr,S,V,0}, /* lt.d */
389
{37,5,rr,V,V,0}, /* eq.b */
390
{37,6,rr,V,V,0}, /* eq.h */
391
{37,7,rr,V,V,0}, /* eq.w */
392
{37,8,rr,V,V,0}, /* eq.l */
393
{37,5,rr,S,V,0}, /* eq.b */
394
{37,6,rr,S,V,0}, /* eq.h */
395
{37,7,rr,S,V,0}, /* eq.w */
396
{37,8,rr,S,V,0}, /* eq.l */
397
{40,5,rr,V,V,0}, /* le.b */
398
{40,6,rr,V,V,0}, /* le.h */
399
{40,7,rr,V,V,0}, /* le.w */
400
{40,8,rr,V,V,0}, /* le.l */
401
{40,5,rr,S,V,0}, /* le.b */
402
{40,6,rr,S,V,0}, /* le.h */
403
{40,7,rr,S,V,0}, /* le.w */
404
{40,8,rr,S,V,0}, /* le.l */
405
{41,5,rr,V,V,0}, /* lt.b */
406
{41,6,rr,V,V,0}, /* lt.h */
407
{41,7,rr,V,V,0}, /* lt.w */
408
{41,8,rr,V,V,0}, /* lt.l */
409
{41,5,rr,S,V,0}, /* lt.b */
410
{41,6,rr,S,V,0}, /* lt.h */
411
{41,7,rr,S,V,0}, /* lt.w */
412
{41,8,rr,S,V,0}, /* lt.l */
413
{43,5,rr,V,V,0}, /* neg.b */
414
{43,6,rr,V,V,0}, /* neg.h */
415
{43,7,rr,V,V,0}, /* neg.w */
416
{43,8,rr,V,V,0}, /* neg.l */
417
{43,5,rr,S,S,0}, /* neg.b */
418
{43,6,rr,S,S,0}, /* neg.h */
419
{43,7,rr,S,S,0}, /* neg.w */
420
{43,8,rr,S,S,0}, /* neg.l */
423
const struct formstr format4[] = {
424
{46,0,nops,0,0,0}, /* nop */
425
{47,0,pcrel,0,0,0}, /* br */
426
{48,2,pcrel,0,0,0}, /* bri.f */
427
{48,1,pcrel,0,0,0}, /* bri.t */
428
{49,2,pcrel,0,0,0}, /* bra.f */
429
{49,1,pcrel,0,0,0}, /* bra.t */
430
{50,2,pcrel,0,0,0}, /* brs.f */
431
{50,1,pcrel,0,0,0}, /* brs.t */
434
const struct formstr format5[] = {
435
{51,5,rr,V,V,0}, /* ldvi.b */
436
{51,6,rr,V,V,0}, /* ldvi.h */
437
{51,7,rr,V,V,0}, /* ldvi.w */
438
{51,8,rr,V,V,0}, /* ldvi.l */
439
{28,3,rr,V,V,0}, /* cvtw.s */
440
{31,7,rr,V,V,0}, /* cvts.w */
441
{28,8,rr,V,V,0}, /* cvtw.l */
442
{33,7,rr,V,V,0}, /* cvtl.w */
443
{52,5,rxr,V,V,0}, /* stvi.b */
444
{52,6,rxr,V,V,0}, /* stvi.h */
445
{52,7,rxr,V,V,0}, /* stvi.w */
446
{52,8,rxr,V,V,0}, /* stvi.l */
447
{52,5,rxr,S,V,0}, /* stvi.b */
448
{52,6,rxr,S,V,0}, /* stvi.h */
449
{52,7,rxr,S,V,0}, /* stvi.w */
450
{52,8,rxr,S,V,0}, /* stvi.l */
453
const struct formstr format6[] = {
454
{53,0,r,A,0,0}, /* ldsdr */
455
{54,0,r,A,0,0}, /* ldkdr */
456
{55,3,r,S,0,0}, /* ln.s */
457
{55,4,r,S,0,0}, /* ln.d */
458
{56,0,nops,0,0,0}, /* patu */
459
{57,0,r,A,0,0}, /* pate */
460
{58,0,nops,0,0,0}, /* pich */
461
{59,0,nops,0,0,0}, /* plch */
462
{0,0,lr,PSW,A,0}, /* mov */
463
{0,0,rxl,A,PSW,0}, /* mov */
464
{0,0,lr,PC,A,0}, /* mov */
465
{60,0,r,S,0,0}, /* idle */
466
{0,0,lr,ITR,S,0}, /* mov */
467
{0,0,rxl,S,ITR,0}, /* mov */
469
{0,0,rxl,S,ITSR,0}, /* mov */
470
{61,0,nops,0,0,0}, /* rtnq */
471
{62,0,nops,0,0,0}, /* cfork */
472
{63,0,nops,0,0,0}, /* rtn */
473
{64,0,nops,0,0,0}, /* wfork */
474
{65,0,nops,0,0,0}, /* join */
475
{66,0,nops,0,0,0}, /* rtnc */
476
{67,3,r,S,0,0}, /* exp.s */
477
{67,4,r,S,0,0}, /* exp.d */
478
{68,3,r,S,0,0}, /* sin.s */
479
{68,4,r,S,0,0}, /* sin.d */
482
{69,3,r,S,0,0}, /* cos.s */
483
{69,4,r,S,0,0}, /* cos.d */
486
{70,7,r,A,0,0}, /* psh.w */
488
{71,7,r,A,0,0}, /* pop.w */
490
{70,7,r,S,0,0}, /* psh.w */
491
{70,8,r,S,0,0}, /* psh.l */
492
{71,7,r,S,0,0}, /* pop.w */
493
{71,8,r,S,0,0}, /* pop.l */
494
{72,0,nops,0,0,0}, /* eni */
495
{73,0,nops,0,0,0}, /* dsi */
496
{74,0,nops,0,0,0}, /* bkpt */
497
{75,0,nops,0,0,0}, /* msync */
498
{76,0,r,S,0,0}, /* mski */
499
{77,0,r,S,0,0}, /* xmti */
500
{0,0,rxl,S,VV,0}, /* mov */
501
{78,0,nops,0,0,0}, /* tstvv */
502
{0,0,lr,VS,A,0}, /* mov */
503
{0,0,rxl,A,VS,0}, /* mov */
504
{0,0,lr,VL,A,0}, /* mov */
505
{0,0,rxl,A,VL,0}, /* mov */
506
{0,7,lr,VS,S,0}, /* mov.w */
507
{0,7,rxl,S,VS,0}, /* mov.w */
508
{0,7,lr,VL,S,0}, /* mov.w */
509
{0,7,rxl,S,VL,0}, /* mov.w */
510
{79,0,r,A,0,0}, /* diag */
511
{80,0,nops,0,0,0}, /* pbkpt */
512
{81,3,r,S,0,0}, /* sqrt.s */
513
{81,4,r,S,0,0}, /* sqrt.d */
514
{82,0,nops,0,0,0}, /* casr */
516
{83,3,r,S,0,0}, /* atan.s */
517
{83,4,r,S,0,0}, /* atan.d */
520
const struct formstr format7[] = {
521
{84,5,r,V,0,0}, /* sum.b */
522
{84,6,r,V,0,0}, /* sum.h */
523
{84,7,r,V,0,0}, /* sum.w */
524
{84,8,r,V,0,0}, /* sum.l */
525
{85,0,r,V,0,0}, /* all */
526
{86,0,r,V,0,0}, /* any */
527
{87,0,r,V,0,0}, /* parity */
529
{88,5,r,V,0,0}, /* max.b */
530
{88,6,r,V,0,0}, /* max.h */
531
{88,7,r,V,0,0}, /* max.w */
532
{88,8,r,V,0,0}, /* max.l */
533
{89,5,r,V,0,0}, /* min.b */
534
{89,6,r,V,0,0}, /* min.h */
535
{89,7,r,V,0,0}, /* min.w */
536
{89,8,r,V,0,0}, /* min.l */
537
{84,3,r,V,0,0}, /* sum.s */
538
{84,4,r,V,0,0}, /* sum.d */
539
{90,3,r,V,0,0}, /* prod.s */
540
{90,4,r,V,0,0}, /* prod.d */
541
{88,3,r,V,0,0}, /* max.s */
542
{88,4,r,V,0,0}, /* max.d */
543
{89,3,r,V,0,0}, /* min.s */
544
{89,4,r,V,0,0}, /* min.d */
545
{90,5,r,V,0,0}, /* prod.b */
546
{90,6,r,V,0,0}, /* prod.h */
547
{90,7,r,V,0,0}, /* prod.w */
548
{90,8,r,V,0,0}, /* prod.l */
549
{35,2,lr,VM,S,0}, /* plc.f */
550
{35,1,lr,VM,S,0}, /* plc.t */
555
const struct formstr formatx[] = {
559
const struct formstr format1a[] = {
560
{91,0,imr,A,0,0}, /* halt */
561
{92,0,a4,0,0,0}, /* sysc */
562
{18,6,imr,A,0,0}, /* ld.h */
563
{18,7,imr,A,0,0}, /* ld.w */
564
{5,0,imr,A,0,0}, /* and */
565
{6,0,imr,A,0,0}, /* or */
566
{7,0,imr,A,0,0}, /* xor */
567
{8,0,imr,A,0,0}, /* shf */
568
{9,6,imr,A,0,0}, /* add.h */
569
{9,7,imr,A,0,0}, /* add.w */
570
{10,6,imr,A,0,0}, /* sub.h */
571
{10,7,imr,A,0,0}, /* sub.w */
572
{3,6,imr,A,0,0}, /* mul.h */
573
{3,7,imr,A,0,0}, /* mul.w */
574
{4,6,imr,A,0,0}, /* div.h */
575
{4,7,imr,A,0,0}, /* div.w */
576
{18,7,iml,VL,0,0}, /* ld.w */
577
{18,7,iml,VS,0,0}, /* ld.w */
579
{8,7,imr,S,0,0}, /* shf.w */
580
{93,0,a5,0,0,0}, /* trap */
582
{37,6,imr,A,0,0}, /* eq.h */
583
{37,7,imr,A,0,0}, /* eq.w */
584
{38,6,imr,A,0,0}, /* leu.h */
585
{38,7,imr,A,0,0}, /* leu.w */
586
{39,6,imr,A,0,0}, /* ltu.h */
587
{39,7,imr,A,0,0}, /* ltu.w */
588
{40,6,imr,A,0,0}, /* le.h */
589
{40,7,imr,A,0,0}, /* le.w */
590
{41,6,imr,A,0,0}, /* lt.h */
591
{41,7,imr,A,0,0}, /* lt.w */
594
const struct formstr format1b[] = {
595
{18,4,imr,S,0,0}, /* ld.d */
596
{18,10,imr,S,0,0}, /* ld.u */
597
{18,8,imr,S,0,0}, /* ld.l */
598
{18,7,imr,S,0,0}, /* ld.w */
599
{5,0,imr,S,0,0}, /* and */
600
{6,0,imr,S,0,0}, /* or */
601
{7,0,imr,S,0,0}, /* xor */
602
{8,0,imr,S,0,0}, /* shf */
603
{9,6,imr,S,0,0}, /* add.h */
604
{9,7,imr,S,0,0}, /* add.w */
605
{10,6,imr,S,0,0}, /* sub.h */
606
{10,7,imr,S,0,0}, /* sub.w */
607
{3,6,imr,S,0,0}, /* mul.h */
608
{3,7,imr,S,0,0}, /* mul.w */
609
{4,6,imr,S,0,0}, /* div.h */
610
{4,7,imr,S,0,0}, /* div.w */
611
{9,3,imr,S,0,0}, /* add.s */
612
{10,3,imr,S,0,0}, /* sub.s */
613
{3,3,imr,S,0,0}, /* mul.s */
614
{4,3,imr,S,0,0}, /* div.s */
615
{40,3,imr,S,0,0}, /* le.s */
616
{41,3,imr,S,0,0}, /* lt.s */
617
{37,6,imr,S,0,0}, /* eq.h */
618
{37,7,imr,S,0,0}, /* eq.w */
619
{38,6,imr,S,0,0}, /* leu.h */
620
{38,7,imr,S,0,0}, /* leu.w */
621
{39,6,imr,S,0,0}, /* ltu.h */
622
{39,7,imr,S,0,0}, /* ltu.w */
623
{40,6,imr,S,0,0}, /* le.h */
624
{40,7,imr,S,0,0}, /* le.w */
625
{41,6,imr,S,0,0}, /* lt.h */
626
{41,7,imr,S,0,0}, /* lt.w */
629
const struct formstr e0_format0[] = {
630
{10,3,rrr,S,V,V}, /* sub.s */
631
{10,4,rrr,S,V,V}, /* sub.d */
632
{4,3,rrr,S,V,V}, /* div.s */
633
{4,4,rrr,S,V,V}, /* div.d */
634
{10,11,rrr,S,V,V}, /* sub.s.f */
635
{10,12,rrr,S,V,V}, /* sub.d.f */
636
{4,11,rrr,S,V,V}, /* div.s.f */
637
{4,12,rrr,S,V,V}, /* div.d.f */
638
{3,11,rrr,V,V,V}, /* mul.s.f */
639
{3,12,rrr,V,V,V}, /* mul.d.f */
640
{4,11,rrr,V,V,V}, /* div.s.f */
641
{4,12,rrr,V,V,V}, /* div.d.f */
642
{3,11,rrr,V,S,V}, /* mul.s.f */
643
{3,12,rrr,V,S,V}, /* mul.d.f */
644
{4,11,rrr,V,S,V}, /* div.s.f */
645
{4,12,rrr,V,S,V}, /* div.d.f */
646
{5,2,rrr,V,V,V}, /* and.f */
647
{6,2,rrr,V,V,V}, /* or.f */
648
{7,2,rrr,V,V,V}, /* xor.f */
649
{8,2,rrr,V,V,V}, /* shf.f */
650
{5,2,rrr,V,S,V}, /* and.f */
651
{6,2,rrr,V,S,V}, /* or.f */
652
{7,2,rrr,V,S,V}, /* xor.f */
653
{8,2,rrr,V,S,V}, /* shf.f */
654
{9,11,rrr,V,V,V}, /* add.s.f */
655
{9,12,rrr,V,V,V}, /* add.d.f */
656
{10,11,rrr,V,V,V}, /* sub.s.f */
657
{10,12,rrr,V,V,V}, /* sub.d.f */
658
{9,11,rrr,V,S,V}, /* add.s.f */
659
{9,12,rrr,V,S,V}, /* add.d.f */
660
{10,11,rrr,V,S,V}, /* sub.s.f */
661
{10,12,rrr,V,S,V}, /* sub.d.f */
662
{9,13,rrr,V,V,V}, /* add.b.f */
663
{9,14,rrr,V,V,V}, /* add.h.f */
664
{9,15,rrr,V,V,V}, /* add.w.f */
665
{9,16,rrr,V,V,V}, /* add.l.f */
666
{9,13,rrr,V,S,V}, /* add.b.f */
667
{9,14,rrr,V,S,V}, /* add.h.f */
668
{9,15,rrr,V,S,V}, /* add.w.f */
669
{9,16,rrr,V,S,V}, /* add.l.f */
670
{10,13,rrr,V,V,V}, /* sub.b.f */
671
{10,14,rrr,V,V,V}, /* sub.h.f */
672
{10,15,rrr,V,V,V}, /* sub.w.f */
673
{10,16,rrr,V,V,V}, /* sub.l.f */
674
{10,13,rrr,V,S,V}, /* sub.b.f */
675
{10,14,rrr,V,S,V}, /* sub.h.f */
676
{10,15,rrr,V,S,V}, /* sub.w.f */
677
{10,16,rrr,V,S,V}, /* sub.l.f */
678
{3,13,rrr,V,V,V}, /* mul.b.f */
679
{3,14,rrr,V,V,V}, /* mul.h.f */
680
{3,15,rrr,V,V,V}, /* mul.w.f */
681
{3,16,rrr,V,V,V}, /* mul.l.f */
682
{3,13,rrr,V,S,V}, /* mul.b.f */
683
{3,14,rrr,V,S,V}, /* mul.h.f */
684
{3,15,rrr,V,S,V}, /* mul.w.f */
685
{3,16,rrr,V,S,V}, /* mul.l.f */
686
{4,13,rrr,V,V,V}, /* div.b.f */
687
{4,14,rrr,V,V,V}, /* div.h.f */
688
{4,15,rrr,V,V,V}, /* div.w.f */
689
{4,16,rrr,V,V,V}, /* div.l.f */
690
{4,13,rrr,V,S,V}, /* div.b.f */
691
{4,14,rrr,V,S,V}, /* div.h.f */
692
{4,15,rrr,V,S,V}, /* div.w.f */
693
{4,16,rrr,V,S,V}, /* div.l.f */
696
const struct formstr e0_format1[] = {
698
{94,0,a3,0,0,0}, /* tst */
699
{95,0,a3,0,0,0}, /* lck */
700
{96,0,a3,0,0,0}, /* ulk */
701
{17,0,a1r,S,0,0}, /* ldea */
702
{97,0,a1r,A,0,0}, /* spawn */
703
{98,0,a1r,A,0,0}, /* ldcmr */
704
{99,0,a2r,A,0,0}, /* stcmr */
705
{100,0,a1r,A,0,0}, /* popr */
706
{101,0,a2r,A,0,0}, /* pshr */
707
{102,7,a1r,A,0,0}, /* rcvr.w */
708
{103,7,a2r,A,0,0}, /* matm.w */
709
{104,7,a2r,A,0,0}, /* sndr.w */
710
{104,8,a2r,S,0,0}, /* sndr.l */
711
{102,8,a1r,S,0,0}, /* rcvr.l */
712
{103,8,a2r,S,0,0}, /* matm.l */
729
{105,7,a2r,A,0,0}, /* putr.w */
730
{105,8,a2r,S,0,0}, /* putr.l */
731
{106,7,a1r,A,0,0}, /* getr.w */
732
{106,8,a1r,S,0,0}, /* getr.l */
733
{26,13,a2r,S,0,0}, /* ste.b.f */
734
{26,14,a2r,S,0,0}, /* ste.h.f */
735
{26,15,a2r,S,0,0}, /* ste.w.f */
736
{26,16,a2r,S,0,0}, /* ste.l.f */
737
{107,7,a2r,A,0,0}, /* matr.w */
738
{108,7,a2r,A,0,0}, /* mat.w */
739
{109,7,a1r,A,0,0}, /* get.w */
740
{110,7,a1r,A,0,0}, /* rcv.w */
742
{111,7,a1r,A,0,0}, /* inc.w */
743
{112,7,a2r,A,0,0}, /* put.w */
744
{113,7,a2r,A,0,0}, /* snd.w */
745
{107,8,a2r,S,0,0}, /* matr.l */
746
{108,8,a2r,S,0,0}, /* mat.l */
747
{109,8,a1r,S,0,0}, /* get.l */
748
{110,8,a1r,S,0,0}, /* rcv.l */
750
{111,8,a1r,S,0,0}, /* inc.l */
751
{112,8,a2r,S,0,0}, /* put.l */
752
{113,8,a2r,S,0,0}, /* snd.l */
753
{18,13,a1r,V,0,0}, /* ld.b.f */
754
{18,14,a1r,V,0,0}, /* ld.h.f */
755
{18,15,a1r,V,0,0}, /* ld.w.f */
756
{18,16,a1r,V,0,0}, /* ld.l.f */
757
{21,13,a2r,V,0,0}, /* st.b.f */
758
{21,14,a2r,V,0,0}, /* st.h.f */
759
{21,15,a2r,V,0,0}, /* st.w.f */
760
{21,16,a2r,V,0,0}, /* st.l.f */
763
const struct formstr e0_format2[] = {
764
{28,5,rr,V,V,0}, /* cvtw.b */
765
{28,6,rr,V,V,0}, /* cvtw.h */
766
{29,7,rr,V,V,0}, /* cvtb.w */
767
{30,7,rr,V,V,0}, /* cvth.w */
768
{28,13,rr,V,V,0}, /* cvtw.b.f */
769
{28,14,rr,V,V,0}, /* cvtw.h.f */
770
{29,15,rr,V,V,0}, /* cvtb.w.f */
771
{30,15,rr,V,V,0}, /* cvth.w.f */
772
{31,8,rr,V,V,0}, /* cvts.l */
773
{32,7,rr,V,V,0}, /* cvtd.w */
774
{33,3,rr,V,V,0}, /* cvtl.s */
775
{28,4,rr,V,V,0}, /* cvtw.d */
776
{31,16,rr,V,V,0}, /* cvts.l.f */
777
{32,15,rr,V,V,0}, /* cvtd.w.f */
778
{33,11,rr,V,V,0}, /* cvtl.s.f */
779
{28,12,rr,V,V,0}, /* cvtw.d.f */
780
{114,0,rr,S,S,0}, /* enal */
781
{8,7,rr,S,S,0}, /* shf.w */
782
{115,0,rr,S,S,0}, /* enag */
784
{28,4,rr,S,S,0}, /* cvtw.d */
785
{32,7,rr,S,S,0}, /* cvtd.w */
792
{116,3,rr,S,S,0}, /* frint.s */
793
{116,4,rr,S,S,0}, /* frint.d */
862
{116,3,rr,V,V,0}, /* frint.s */
863
{116,4,rr,V,V,0}, /* frint.d */
866
{116,11,rr,V,V,0}, /* frint.s.f */
867
{116,12,rr,V,V,0}, /* frint.d.f */
880
{81,3,rr,V,V,0}, /* sqrt.s */
881
{81,4,rr,V,V,0}, /* sqrt.d */
888
{81,11,rr,V,V,0}, /* sqrt.s.f */
889
{81,12,rr,V,V,0}, /* sqrt.d.f */
894
const struct formstr e0_format3[] = {
895
{32,11,rr,V,V,0}, /* cvtd.s.f */
896
{31,12,rr,V,V,0}, /* cvts.d.f */
897
{33,12,rr,V,V,0}, /* cvtl.d.f */
898
{32,16,rr,V,V,0}, /* cvtd.l.f */
903
{36,2,rr,V,V,0}, /* tzc.f */
904
{44,2,rr,V,V,0}, /* lop.f */
905
{117,2,rr,V,V,0}, /* xpnd.f */
906
{42,2,rr,V,V,0}, /* not.f */
907
{8,2,rr,S,V,0}, /* shf.f */
908
{35,17,rr,V,V,0}, /* plc.t.f */
911
{37,11,rr,V,V,0}, /* eq.s.f */
912
{37,12,rr,V,V,0}, /* eq.d.f */
913
{43,11,rr,V,V,0}, /* neg.s.f */
914
{43,12,rr,V,V,0}, /* neg.d.f */
915
{37,11,rr,S,V,0}, /* eq.s.f */
916
{37,12,rr,S,V,0}, /* eq.d.f */
919
{40,11,rr,V,V,0}, /* le.s.f */
920
{40,12,rr,V,V,0}, /* le.d.f */
921
{41,11,rr,V,V,0}, /* lt.s.f */
922
{41,12,rr,V,V,0}, /* lt.d.f */
923
{40,11,rr,S,V,0}, /* le.s.f */
924
{40,12,rr,S,V,0}, /* le.d.f */
925
{41,11,rr,S,V,0}, /* lt.s.f */
926
{41,12,rr,S,V,0}, /* lt.d.f */
927
{37,13,rr,V,V,0}, /* eq.b.f */
928
{37,14,rr,V,V,0}, /* eq.h.f */
929
{37,15,rr,V,V,0}, /* eq.w.f */
930
{37,16,rr,V,V,0}, /* eq.l.f */
931
{37,13,rr,S,V,0}, /* eq.b.f */
932
{37,14,rr,S,V,0}, /* eq.h.f */
933
{37,15,rr,S,V,0}, /* eq.w.f */
934
{37,16,rr,S,V,0}, /* eq.l.f */
935
{40,13,rr,V,V,0}, /* le.b.f */
936
{40,14,rr,V,V,0}, /* le.h.f */
937
{40,15,rr,V,V,0}, /* le.w.f */
938
{40,16,rr,V,V,0}, /* le.l.f */
939
{40,13,rr,S,V,0}, /* le.b.f */
940
{40,14,rr,S,V,0}, /* le.h.f */
941
{40,15,rr,S,V,0}, /* le.w.f */
942
{40,16,rr,S,V,0}, /* le.l.f */
943
{41,13,rr,V,V,0}, /* lt.b.f */
944
{41,14,rr,V,V,0}, /* lt.h.f */
945
{41,15,rr,V,V,0}, /* lt.w.f */
946
{41,16,rr,V,V,0}, /* lt.l.f */
947
{41,13,rr,S,V,0}, /* lt.b.f */
948
{41,14,rr,S,V,0}, /* lt.h.f */
949
{41,15,rr,S,V,0}, /* lt.w.f */
950
{41,16,rr,S,V,0}, /* lt.l.f */
951
{43,13,rr,V,V,0}, /* neg.b.f */
952
{43,14,rr,V,V,0}, /* neg.h.f */
953
{43,15,rr,V,V,0}, /* neg.w.f */
954
{43,16,rr,V,V,0}, /* neg.l.f */
961
const struct formstr e0_format4[] = {
972
const struct formstr e0_format5[] = {
973
{51,13,rr,V,V,0}, /* ldvi.b.f */
974
{51,14,rr,V,V,0}, /* ldvi.h.f */
975
{51,15,rr,V,V,0}, /* ldvi.w.f */
976
{51,16,rr,V,V,0}, /* ldvi.l.f */
977
{28,11,rr,V,V,0}, /* cvtw.s.f */
978
{31,15,rr,V,V,0}, /* cvts.w.f */
979
{28,16,rr,V,V,0}, /* cvtw.l.f */
980
{33,15,rr,V,V,0}, /* cvtl.w.f */
981
{52,13,rxr,V,V,0}, /* stvi.b.f */
982
{52,14,rxr,V,V,0}, /* stvi.h.f */
983
{52,15,rxr,V,V,0}, /* stvi.w.f */
984
{52,16,rxr,V,V,0}, /* stvi.l.f */
985
{52,13,rxr,S,V,0}, /* stvi.b.f */
986
{52,14,rxr,S,V,0}, /* stvi.h.f */
987
{52,15,rxr,S,V,0}, /* stvi.w.f */
988
{52,16,rxr,S,V,0}, /* stvi.l.f */
991
const struct formstr e0_format6[] = {
992
{0,0,rxl,S,CIR,0}, /* mov */
993
{0,0,lr,CIR,S,0}, /* mov */
994
{0,0,lr,TOC,S,0}, /* mov */
995
{0,0,lr,CPUID,S,0}, /* mov */
996
{0,0,rxl,S,TTR,0}, /* mov */
997
{0,0,lr,TTR,S,0}, /* mov */
998
{118,0,nops,0,0,0}, /* ctrsl */
999
{119,0,nops,0,0,0}, /* ctrsg */
1000
{0,0,rxl,S,VMU,0}, /* mov */
1001
{0,0,lr,VMU,S,0}, /* mov */
1002
{0,0,rxl,S,VML,0}, /* mov */
1003
{0,0,lr,VML,S,0}, /* mov */
1004
{0,0,rxl,S,ICR,0}, /* mov */
1005
{0,0,lr,ICR,S,0}, /* mov */
1006
{0,0,rxl,S,TCPU,0}, /* mov */
1007
{0,0,lr,TCPU,S,0}, /* mov */
1012
{120,0,nops,0,0,0}, /* stop */
1014
{0,0,rxl,S,TID,0}, /* mov */
1015
{0,0,lr,TID,S,0}, /* mov */
1058
const struct formstr e0_format7[] = {
1059
{84,13,r,V,0,0}, /* sum.b.f */
1060
{84,14,r,V,0,0}, /* sum.h.f */
1061
{84,15,r,V,0,0}, /* sum.w.f */
1062
{84,16,r,V,0,0}, /* sum.l.f */
1063
{85,2,r,V,0,0}, /* all.f */
1064
{86,2,r,V,0,0}, /* any.f */
1065
{87,2,r,V,0,0}, /* parity.f */
1067
{88,13,r,V,0,0}, /* max.b.f */
1068
{88,14,r,V,0,0}, /* max.h.f */
1069
{88,15,r,V,0,0}, /* max.w.f */
1070
{88,16,r,V,0,0}, /* max.l.f */
1071
{89,13,r,V,0,0}, /* min.b.f */
1072
{89,14,r,V,0,0}, /* min.h.f */
1073
{89,15,r,V,0,0}, /* min.w.f */
1074
{89,16,r,V,0,0}, /* min.l.f */
1075
{84,11,r,V,0,0}, /* sum.s.f */
1076
{84,12,r,V,0,0}, /* sum.d.f */
1077
{90,11,r,V,0,0}, /* prod.s.f */
1078
{90,12,r,V,0,0}, /* prod.d.f */
1079
{88,11,r,V,0,0}, /* max.s.f */
1080
{88,12,r,V,0,0}, /* max.d.f */
1081
{89,11,r,V,0,0}, /* min.s.f */
1082
{89,12,r,V,0,0}, /* min.d.f */
1083
{90,13,r,V,0,0}, /* prod.b.f */
1084
{90,14,r,V,0,0}, /* prod.h.f */
1085
{90,15,r,V,0,0}, /* prod.w.f */
1086
{90,16,r,V,0,0}, /* prod.l.f */
1093
const struct formstr e1_format0[] = {
1098
{10,18,rrr,S,V,V}, /* sub.s.t */
1099
{10,19,rrr,S,V,V}, /* sub.d.t */
1100
{4,18,rrr,S,V,V}, /* div.s.t */
1101
{4,19,rrr,S,V,V}, /* div.d.t */
1102
{3,18,rrr,V,V,V}, /* mul.s.t */
1103
{3,19,rrr,V,V,V}, /* mul.d.t */
1104
{4,18,rrr,V,V,V}, /* div.s.t */
1105
{4,19,rrr,V,V,V}, /* div.d.t */
1106
{3,18,rrr,V,S,V}, /* mul.s.t */
1107
{3,19,rrr,V,S,V}, /* mul.d.t */
1108
{4,18,rrr,V,S,V}, /* div.s.t */
1109
{4,19,rrr,V,S,V}, /* div.d.t */
1110
{5,1,rrr,V,V,V}, /* and.t */
1111
{6,1,rrr,V,V,V}, /* or.t */
1112
{7,1,rrr,V,V,V}, /* xor.t */
1113
{8,1,rrr,V,V,V}, /* shf.t */
1114
{5,1,rrr,V,S,V}, /* and.t */
1115
{6,1,rrr,V,S,V}, /* or.t */
1116
{7,1,rrr,V,S,V}, /* xor.t */
1117
{8,1,rrr,V,S,V}, /* shf.t */
1118
{9,18,rrr,V,V,V}, /* add.s.t */
1119
{9,19,rrr,V,V,V}, /* add.d.t */
1120
{10,18,rrr,V,V,V}, /* sub.s.t */
1121
{10,19,rrr,V,V,V}, /* sub.d.t */
1122
{9,18,rrr,V,S,V}, /* add.s.t */
1123
{9,19,rrr,V,S,V}, /* add.d.t */
1124
{10,18,rrr,V,S,V}, /* sub.s.t */
1125
{10,19,rrr,V,S,V}, /* sub.d.t */
1126
{9,20,rrr,V,V,V}, /* add.b.t */
1127
{9,21,rrr,V,V,V}, /* add.h.t */
1128
{9,22,rrr,V,V,V}, /* add.w.t */
1129
{9,23,rrr,V,V,V}, /* add.l.t */
1130
{9,20,rrr,V,S,V}, /* add.b.t */
1131
{9,21,rrr,V,S,V}, /* add.h.t */
1132
{9,22,rrr,V,S,V}, /* add.w.t */
1133
{9,23,rrr,V,S,V}, /* add.l.t */
1134
{10,20,rrr,V,V,V}, /* sub.b.t */
1135
{10,21,rrr,V,V,V}, /* sub.h.t */
1136
{10,22,rrr,V,V,V}, /* sub.w.t */
1137
{10,23,rrr,V,V,V}, /* sub.l.t */
1138
{10,20,rrr,V,S,V}, /* sub.b.t */
1139
{10,21,rrr,V,S,V}, /* sub.h.t */
1140
{10,22,rrr,V,S,V}, /* sub.w.t */
1141
{10,23,rrr,V,S,V}, /* sub.l.t */
1142
{3,20,rrr,V,V,V}, /* mul.b.t */
1143
{3,21,rrr,V,V,V}, /* mul.h.t */
1144
{3,22,rrr,V,V,V}, /* mul.w.t */
1145
{3,23,rrr,V,V,V}, /* mul.l.t */
1146
{3,20,rrr,V,S,V}, /* mul.b.t */
1147
{3,21,rrr,V,S,V}, /* mul.h.t */
1148
{3,22,rrr,V,S,V}, /* mul.w.t */
1149
{3,23,rrr,V,S,V}, /* mul.l.t */
1150
{4,20,rrr,V,V,V}, /* div.b.t */
1151
{4,21,rrr,V,V,V}, /* div.h.t */
1152
{4,22,rrr,V,V,V}, /* div.w.t */
1153
{4,23,rrr,V,V,V}, /* div.l.t */
1154
{4,20,rrr,V,S,V}, /* div.b.t */
1155
{4,21,rrr,V,S,V}, /* div.h.t */
1156
{4,22,rrr,V,S,V}, /* div.w.t */
1157
{4,23,rrr,V,S,V}, /* div.l.t */
1160
const struct formstr e1_format1[] = {
1197
{26,20,a2r,S,0,0}, /* ste.b.t */
1198
{26,21,a2r,S,0,0}, /* ste.h.t */
1199
{26,22,a2r,S,0,0}, /* ste.w.t */
1200
{26,23,a2r,S,0,0}, /* ste.l.t */
1217
{18,20,a1r,V,0,0}, /* ld.b.t */
1218
{18,21,a1r,V,0,0}, /* ld.h.t */
1219
{18,22,a1r,V,0,0}, /* ld.w.t */
1220
{18,23,a1r,V,0,0}, /* ld.l.t */
1221
{21,20,a2r,V,0,0}, /* st.b.t */
1222
{21,21,a2r,V,0,0}, /* st.h.t */
1223
{21,22,a2r,V,0,0}, /* st.w.t */
1224
{21,23,a2r,V,0,0}, /* st.l.t */
1227
const struct formstr e1_format2[] = {
1232
{28,20,rr,V,V,0}, /* cvtw.b.t */
1233
{28,21,rr,V,V,0}, /* cvtw.h.t */
1234
{29,22,rr,V,V,0}, /* cvtb.w.t */
1235
{30,22,rr,V,V,0}, /* cvth.w.t */
1240
{31,23,rr,V,V,0}, /* cvts.l.t */
1241
{32,22,rr,V,V,0}, /* cvtd.w.t */
1242
{33,18,rr,V,V,0}, /* cvtl.s.t */
1243
{28,19,rr,V,V,0}, /* cvtw.d.t */
1330
{116,18,rr,V,V,0}, /* frint.s.t */
1331
{116,19,rr,V,V,0}, /* frint.d.t */
1352
{81,18,rr,V,V,0}, /* sqrt.s.t */
1353
{81,19,rr,V,V,0}, /* sqrt.d.t */
1358
const struct formstr e1_format3[] = {
1359
{32,18,rr,V,V,0}, /* cvtd.s.t */
1360
{31,19,rr,V,V,0}, /* cvts.d.t */
1361
{33,19,rr,V,V,0}, /* cvtl.d.t */
1362
{32,23,rr,V,V,0}, /* cvtd.l.t */
1367
{36,1,rr,V,V,0}, /* tzc.t */
1368
{44,1,rr,V,V,0}, /* lop.t */
1369
{117,1,rr,V,V,0}, /* xpnd.t */
1370
{42,1,rr,V,V,0}, /* not.t */
1371
{8,1,rr,S,V,0}, /* shf.t */
1372
{35,24,rr,V,V,0}, /* plc.t.t */
1375
{37,18,rr,V,V,0}, /* eq.s.t */
1376
{37,19,rr,V,V,0}, /* eq.d.t */
1377
{43,18,rr,V,V,0}, /* neg.s.t */
1378
{43,19,rr,V,V,0}, /* neg.d.t */
1379
{37,18,rr,S,V,0}, /* eq.s.t */
1380
{37,19,rr,S,V,0}, /* eq.d.t */
1383
{40,18,rr,V,V,0}, /* le.s.t */
1384
{40,19,rr,V,V,0}, /* le.d.t */
1385
{41,18,rr,V,V,0}, /* lt.s.t */
1386
{41,19,rr,V,V,0}, /* lt.d.t */
1387
{40,18,rr,S,V,0}, /* le.s.t */
1388
{40,19,rr,S,V,0}, /* le.d.t */
1389
{41,18,rr,S,V,0}, /* lt.s.t */
1390
{41,19,rr,S,V,0}, /* lt.d.t */
1391
{37,20,rr,V,V,0}, /* eq.b.t */
1392
{37,21,rr,V,V,0}, /* eq.h.t */
1393
{37,22,rr,V,V,0}, /* eq.w.t */
1394
{37,23,rr,V,V,0}, /* eq.l.t */
1395
{37,20,rr,S,V,0}, /* eq.b.t */
1396
{37,21,rr,S,V,0}, /* eq.h.t */
1397
{37,22,rr,S,V,0}, /* eq.w.t */
1398
{37,23,rr,S,V,0}, /* eq.l.t */
1399
{40,20,rr,V,V,0}, /* le.b.t */
1400
{40,21,rr,V,V,0}, /* le.h.t */
1401
{40,22,rr,V,V,0}, /* le.w.t */
1402
{40,23,rr,V,V,0}, /* le.l.t */
1403
{40,20,rr,S,V,0}, /* le.b.t */
1404
{40,21,rr,S,V,0}, /* le.h.t */
1405
{40,22,rr,S,V,0}, /* le.w.t */
1406
{40,23,rr,S,V,0}, /* le.l.t */
1407
{41,20,rr,V,V,0}, /* lt.b.t */
1408
{41,21,rr,V,V,0}, /* lt.h.t */
1409
{41,22,rr,V,V,0}, /* lt.w.t */
1410
{41,23,rr,V,V,0}, /* lt.l.t */
1411
{41,20,rr,S,V,0}, /* lt.b.t */
1412
{41,21,rr,S,V,0}, /* lt.h.t */
1413
{41,22,rr,S,V,0}, /* lt.w.t */
1414
{41,23,rr,S,V,0}, /* lt.l.t */
1415
{43,20,rr,V,V,0}, /* neg.b.t */
1416
{43,21,rr,V,V,0}, /* neg.h.t */
1417
{43,22,rr,V,V,0}, /* neg.w.t */
1418
{43,23,rr,V,V,0}, /* neg.l.t */
1425
const struct formstr e1_format4[] = {
1436
const struct formstr e1_format5[] = {
1437
{51,20,rr,V,V,0}, /* ldvi.b.t */
1438
{51,21,rr,V,V,0}, /* ldvi.h.t */
1439
{51,22,rr,V,V,0}, /* ldvi.w.t */
1440
{51,23,rr,V,V,0}, /* ldvi.l.t */
1441
{28,18,rr,V,V,0}, /* cvtw.s.t */
1442
{31,22,rr,V,V,0}, /* cvts.w.t */
1443
{28,23,rr,V,V,0}, /* cvtw.l.t */
1444
{33,22,rr,V,V,0}, /* cvtl.w.t */
1445
{52,20,rxr,V,V,0}, /* stvi.b.t */
1446
{52,21,rxr,V,V,0}, /* stvi.h.t */
1447
{52,22,rxr,V,V,0}, /* stvi.w.t */
1448
{52,23,rxr,V,V,0}, /* stvi.l.t */
1449
{52,20,rxr,S,V,0}, /* stvi.b.t */
1450
{52,21,rxr,S,V,0}, /* stvi.h.t */
1451
{52,22,rxr,S,V,0}, /* stvi.w.t */
1452
{52,23,rxr,S,V,0}, /* stvi.l.t */
1455
const struct formstr e1_format6[] = {
1522
const struct formstr e1_format7[] = {
1523
{84,20,r,V,0,0}, /* sum.b.t */
1524
{84,21,r,V,0,0}, /* sum.h.t */
1525
{84,22,r,V,0,0}, /* sum.w.t */
1526
{84,23,r,V,0,0}, /* sum.l.t */
1527
{85,1,r,V,0,0}, /* all.t */
1528
{86,1,r,V,0,0}, /* any.t */
1529
{87,1,r,V,0,0}, /* parity.t */
1531
{88,20,r,V,0,0}, /* max.b.t */
1532
{88,21,r,V,0,0}, /* max.h.t */
1533
{88,22,r,V,0,0}, /* max.w.t */
1534
{88,23,r,V,0,0}, /* max.l.t */
1535
{89,20,r,V,0,0}, /* min.b.t */
1536
{89,21,r,V,0,0}, /* min.h.t */
1537
{89,22,r,V,0,0}, /* min.w.t */
1538
{89,23,r,V,0,0}, /* min.l.t */
1539
{84,18,r,V,0,0}, /* sum.s.t */
1540
{84,19,r,V,0,0}, /* sum.d.t */
1541
{90,18,r,V,0,0}, /* prod.s.t */
1542
{90,19,r,V,0,0}, /* prod.d.t */
1543
{88,18,r,V,0,0}, /* max.s.t */
1544
{88,19,r,V,0,0}, /* max.d.t */
1545
{89,18,r,V,0,0}, /* min.s.t */
1546
{89,19,r,V,0,0}, /* min.d.t */
1547
{90,20,r,V,0,0}, /* prod.b.t */
1548
{90,21,r,V,0,0}, /* prod.h.t */
1549
{90,22,r,V,0,0}, /* prod.w.t */
1550
{90,23,r,V,0,0}, /* prod.l.t */