~ubuntu-branches/ubuntu/quantal/gclcvs/quantal

« back to all changes in this revision

Viewing changes to binutils/include/opcode/convex.h

  • Committer: Bazaar Package Importer
  • Author(s): Camm Maguire
  • Date: 2004-06-24 15:13:46 UTC
  • Revision ID: james.westby@ubuntu.com-20040624151346-xh0xaaktyyp7aorc
Tags: 2.7.0-26
C_GC_OFFSET is 2 on m68k-linux

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Information for instruction disassembly on the Convex.
 
2
   Copyright 1989, 1993, 2002 Free Software Foundation, Inc.
 
3
 
 
4
This file is part of GDB.
 
5
 
 
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.
 
10
 
 
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.
 
15
 
 
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.  */
 
19
 
 
20
#define xxx 0
 
21
#define rrr 1
 
22
#define rr 2
 
23
#define rxr 3
 
24
#define r 4
 
25
#define nops 5
 
26
#define nr 6
 
27
#define pcrel 7
 
28
#define lr 8
 
29
#define rxl 9
 
30
#define rlr 10
 
31
#define rrl 11
 
32
#define iml 12
 
33
#define imr 13
 
34
#define a1r 14
 
35
#define a1l 15
 
36
#define a2r 16
 
37
#define a2l 17
 
38
#define a3 18
 
39
#define a4 19
 
40
#define a5 20
 
41
#define V 1
 
42
#define S 2
 
43
#define VM 3
 
44
#define A 4
 
45
#define VL 5
 
46
#define VS 6
 
47
#define VLS 7
 
48
#define PSW 8
 
49
/* Prevent an error during "make depend".  */
 
50
#if !defined (PC)
 
51
#define PC 9
 
52
#endif
 
53
#define ITR 10
 
54
#define VV 11
 
55
#define ITSR 12
 
56
#define TOC 13
 
57
#define CIR 14
 
58
#define TTR 15
 
59
#define VMU 16
 
60
#define VML 17
 
61
#define ICR 18
 
62
#define TCPU 19
 
63
#define CPUID 20
 
64
#define TID 21
 
65
 
 
66
const char *op[] = {
 
67
  "",
 
68
  "v0\0v1\0v2\0v3\0v4\0v5\0v6\0v7",
 
69
  "s0\0s1\0s2\0s3\0s4\0s5\0s6\0s7",
 
70
  "vm",
 
71
  "sp\0a1\0a2\0a3\0a4\0a5\0ap\0fp",
 
72
  "vl",
 
73
  "vs",
 
74
  "vls",
 
75
  "psw",
 
76
  "pc",
 
77
  "itr",
 
78
  "vv",
 
79
  "itsr",
 
80
  "toc",
 
81
  "cir",
 
82
  "ttr",
 
83
  "vmu",
 
84
  "vml",
 
85
  "icr",
 
86
  "tcpu",
 
87
  "cpuid",
 
88
  "tid",
 
89
};
 
90
 
 
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 */
 
156
};
 
157
 
 
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 */
 
175
  {0,0,0,0,0,0},
 
176
  {0,0,0,0,0,0},
 
177
  {0,0,0,0,0,0},
 
178
  {0,0,0,0,0,0},
 
179
  {0,0,0,0,0,0},
 
180
  {0,0,0,0,0,0},
 
181
  {0,0,0,0,0,0},
 
182
  {0,0,0,0,0,0},
 
183
  {0,0,0,0,0,0},
 
184
  {0,0,0,0,0,0},
 
185
  {0,0,0,0,0,0},
 
186
  {0,0,0,0,0,0},
 
187
  {0,0,0,0,0,0},
 
188
  {0,0,0,0,0,0},
 
189
  {0,0,0,0,0,0},
 
190
  {0,0,0,0,0,0},
 
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 */
 
223
};
 
224
 
 
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 */
 
354
};
 
355
 
 
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 */
 
363
  {0,0,0,0,0,0},
 
364
  {44,0,rr,S,S,0},      /* lop */
 
365
  {36,0,rr,V,V,0},      /* tzc */
 
366
  {44,0,rr,V,V,0},      /* lop */
 
367
  {0,0,0,0,0,0},
 
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 */
 
421
};
 
422
 
 
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 */
 
432
};
 
433
 
 
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 */
 
451
};
 
452
 
 
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 */
 
468
  {0,0,0,0,0,0},
 
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 */
 
480
  {0,0,0,0,0,0},
 
481
  {0,0,0,0,0,0},
 
482
  {69,3,r,S,0,0},       /* cos.s */
 
483
  {69,4,r,S,0,0},       /* cos.d */
 
484
  {0,0,0,0,0,0},
 
485
  {0,0,0,0,0,0},
 
486
  {70,7,r,A,0,0},       /* psh.w */
 
487
  {0,0,0,0,0,0},
 
488
  {71,7,r,A,0,0},       /* pop.w */
 
489
  {0,0,0,0,0,0},
 
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 */
 
515
  {0,0,0,0,0,0},
 
516
  {83,3,r,S,0,0},       /* atan.s */
 
517
  {83,4,r,S,0,0},       /* atan.d */
 
518
};
 
519
 
 
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 */
 
528
  {0,0,0,0,0,0},
 
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 */
 
551
  {0,0,0,0,0,0},
 
552
  {0,0,0,0,0,0},
 
553
};
 
554
 
 
555
const struct formstr formatx[] = {
 
556
  {0,0,0,0,0,0},
 
557
};
 
558
 
 
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 */
 
578
  {0,0,0,0,0,0},
 
579
  {8,7,imr,S,0,0},      /* shf.w */
 
580
  {93,0,a5,0,0,0},      /* trap */
 
581
  {0,0,0,0,0,0},
 
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 */
 
592
};
 
593
 
 
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 */
 
627
};
 
628
 
 
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 */
 
694
};
 
695
 
 
696
const struct formstr e0_format1[] = {
 
697
  {0,0,0,0,0,0},
 
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 */
 
713
  {0,0,0,0,0,0},
 
714
  {0,0,0,0,0,0},
 
715
  {0,0,0,0,0,0},
 
716
  {0,0,0,0,0,0},
 
717
  {0,0,0,0,0,0},
 
718
  {0,0,0,0,0,0},
 
719
  {0,0,0,0,0,0},
 
720
  {0,0,0,0,0,0},
 
721
  {0,0,0,0,0,0},
 
722
  {0,0,0,0,0,0},
 
723
  {0,0,0,0,0,0},
 
724
  {0,0,0,0,0,0},
 
725
  {0,0,0,0,0,0},
 
726
  {0,0,0,0,0,0},
 
727
  {0,0,0,0,0,0},
 
728
  {0,0,0,0,0,0},
 
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 */
 
741
  {0,0,0,0,0,0},
 
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 */
 
749
  {0,0,0,0,0,0},
 
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 */
 
761
};
 
762
 
 
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 */
 
783
  {0,0,0,0,0,0},
 
784
  {28,4,rr,S,S,0},      /* cvtw.d */
 
785
  {32,7,rr,S,S,0},      /* cvtd.w */
 
786
  {0,0,0,0,0,0},
 
787
  {0,0,0,0,0,0},
 
788
  {0,0,0,0,0,0},
 
789
  {0,0,0,0,0,0},
 
790
  {0,0,0,0,0,0},
 
791
  {0,0,0,0,0,0},
 
792
  {116,3,rr,S,S,0},     /* frint.s */
 
793
  {116,4,rr,S,S,0},     /* frint.d */
 
794
  {0,0,0,0,0,0},
 
795
  {0,0,0,0,0,0},
 
796
  {0,0,0,0,0,0},
 
797
  {0,0,0,0,0,0},
 
798
  {0,0,0,0,0,0},
 
799
  {0,0,0,0,0,0},
 
800
  {0,0,0,0,0,0},
 
801
  {0,0,0,0,0,0},
 
802
  {0,0,0,0,0,0},
 
803
  {0,0,0,0,0,0},
 
804
  {0,0,0,0,0,0},
 
805
  {0,0,0,0,0,0},
 
806
  {0,0,0,0,0,0},
 
807
  {0,0,0,0,0,0},
 
808
  {0,0,0,0,0,0},
 
809
  {0,0,0,0,0,0},
 
810
  {0,0,0,0,0,0},
 
811
  {0,0,0,0,0,0},
 
812
  {0,0,0,0,0,0},
 
813
  {0,0,0,0,0,0},
 
814
  {0,0,0,0,0,0},
 
815
  {0,0,0,0,0,0},
 
816
  {0,0,0,0,0,0},
 
817
  {0,0,0,0,0,0},
 
818
  {0,0,0,0,0,0},
 
819
  {0,0,0,0,0,0},
 
820
  {0,0,0,0,0,0},
 
821
  {0,0,0,0,0,0},
 
822
  {0,0,0,0,0,0},
 
823
  {0,0,0,0,0,0},
 
824
  {0,0,0,0,0,0},
 
825
  {0,0,0,0,0,0},
 
826
  {0,0,0,0,0,0},
 
827
  {0,0,0,0,0,0},
 
828
  {0,0,0,0,0,0},
 
829
  {0,0,0,0,0,0},
 
830
  {0,0,0,0,0,0},
 
831
  {0,0,0,0,0,0},
 
832
  {0,0,0,0,0,0},
 
833
  {0,0,0,0,0,0},
 
834
  {0,0,0,0,0,0},
 
835
  {0,0,0,0,0,0},
 
836
  {0,0,0,0,0,0},
 
837
  {0,0,0,0,0,0},
 
838
  {0,0,0,0,0,0},
 
839
  {0,0,0,0,0,0},
 
840
  {0,0,0,0,0,0},
 
841
  {0,0,0,0,0,0},
 
842
  {0,0,0,0,0,0},
 
843
  {0,0,0,0,0,0},
 
844
  {0,0,0,0,0,0},
 
845
  {0,0,0,0,0,0},
 
846
  {0,0,0,0,0,0},
 
847
  {0,0,0,0,0,0},
 
848
  {0,0,0,0,0,0},
 
849
  {0,0,0,0,0,0},
 
850
  {0,0,0,0,0,0},
 
851
  {0,0,0,0,0,0},
 
852
  {0,0,0,0,0,0},
 
853
  {0,0,0,0,0,0},
 
854
  {0,0,0,0,0,0},
 
855
  {0,0,0,0,0,0},
 
856
  {0,0,0,0,0,0},
 
857
  {0,0,0,0,0,0},
 
858
  {0,0,0,0,0,0},
 
859
  {0,0,0,0,0,0},
 
860
  {0,0,0,0,0,0},
 
861
  {0,0,0,0,0,0},
 
862
  {116,3,rr,V,V,0},     /* frint.s */
 
863
  {116,4,rr,V,V,0},     /* frint.d */
 
864
  {0,0,0,0,0,0},
 
865
  {0,0,0,0,0,0},
 
866
  {116,11,rr,V,V,0},    /* frint.s.f */
 
867
  {116,12,rr,V,V,0},    /* frint.d.f */
 
868
  {0,0,0,0,0,0},
 
869
  {0,0,0,0,0,0},
 
870
  {0,0,0,0,0,0},
 
871
  {0,0,0,0,0,0},
 
872
  {0,0,0,0,0,0},
 
873
  {0,0,0,0,0,0},
 
874
  {0,0,0,0,0,0},
 
875
  {0,0,0,0,0,0},
 
876
  {0,0,0,0,0,0},
 
877
  {0,0,0,0,0,0},
 
878
  {0,0,0,0,0,0},
 
879
  {0,0,0,0,0,0},
 
880
  {81,3,rr,V,V,0},      /* sqrt.s */
 
881
  {81,4,rr,V,V,0},      /* sqrt.d */
 
882
  {0,0,0,0,0,0},
 
883
  {0,0,0,0,0,0},
 
884
  {0,0,0,0,0,0},
 
885
  {0,0,0,0,0,0},
 
886
  {0,0,0,0,0,0},
 
887
  {0,0,0,0,0,0},
 
888
  {81,11,rr,V,V,0},     /* sqrt.s.f */
 
889
  {81,12,rr,V,V,0},     /* sqrt.d.f */
 
890
  {0,0,0,0,0,0},
 
891
  {0,0,0,0,0,0},
 
892
};
 
893
 
 
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 */
 
899
  {0,0,0,0,0,0},
 
900
  {0,0,0,0,0,0},
 
901
  {0,0,0,0,0,0},
 
902
  {0,0,0,0,0,0},
 
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 */
 
909
  {0,0,0,0,0,0},
 
910
  {0,0,0,0,0,0},
 
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 */
 
917
  {0,0,0,0,0,0},
 
918
  {0,0,0,0,0,0},
 
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 */
 
955
  {0,0,0,0,0,0},
 
956
  {0,0,0,0,0,0},
 
957
  {0,0,0,0,0,0},
 
958
  {0,0,0,0,0,0},
 
959
};
 
960
 
 
961
const struct formstr e0_format4[] = {
 
962
  {0,0,0,0,0,0},
 
963
  {0,0,0,0,0,0},
 
964
  {0,0,0,0,0,0},
 
965
  {0,0,0,0,0,0},
 
966
  {0,0,0,0,0,0},
 
967
  {0,0,0,0,0,0},
 
968
  {0,0,0,0,0,0},
 
969
  {0,0,0,0,0,0},
 
970
};
 
971
 
 
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 */
 
989
};
 
990
 
 
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 */
 
1008
  {0,0,0,0,0,0},
 
1009
  {0,0,0,0,0,0},
 
1010
  {0,0,0,0,0,0},
 
1011
  {0,0,0,0,0,0},
 
1012
  {120,0,nops,0,0,0},   /* stop */
 
1013
  {0,0,0,0,0,0},
 
1014
  {0,0,rxl,S,TID,0},    /* mov */
 
1015
  {0,0,lr,TID,S,0},     /* mov */
 
1016
  {0,0,0,0,0,0},
 
1017
  {0,0,0,0,0,0},
 
1018
  {0,0,0,0,0,0},
 
1019
  {0,0,0,0,0,0},
 
1020
  {0,0,0,0,0,0},
 
1021
  {0,0,0,0,0,0},
 
1022
  {0,0,0,0,0,0},
 
1023
  {0,0,0,0,0,0},
 
1024
  {0,0,0,0,0,0},
 
1025
  {0,0,0,0,0,0},
 
1026
  {0,0,0,0,0,0},
 
1027
  {0,0,0,0,0,0},
 
1028
  {0,0,0,0,0,0},
 
1029
  {0,0,0,0,0,0},
 
1030
  {0,0,0,0,0,0},
 
1031
  {0,0,0,0,0,0},
 
1032
  {0,0,0,0,0,0},
 
1033
  {0,0,0,0,0,0},
 
1034
  {0,0,0,0,0,0},
 
1035
  {0,0,0,0,0,0},
 
1036
  {0,0,0,0,0,0},
 
1037
  {0,0,0,0,0,0},
 
1038
  {0,0,0,0,0,0},
 
1039
  {0,0,0,0,0,0},
 
1040
  {0,0,0,0,0,0},
 
1041
  {0,0,0,0,0,0},
 
1042
  {0,0,0,0,0,0},
 
1043
  {0,0,0,0,0,0},
 
1044
  {0,0,0,0,0,0},
 
1045
  {0,0,0,0,0,0},
 
1046
  {0,0,0,0,0,0},
 
1047
  {0,0,0,0,0,0},
 
1048
  {0,0,0,0,0,0},
 
1049
  {0,0,0,0,0,0},
 
1050
  {0,0,0,0,0,0},
 
1051
  {0,0,0,0,0,0},
 
1052
  {0,0,0,0,0,0},
 
1053
  {0,0,0,0,0,0},
 
1054
  {0,0,0,0,0,0},
 
1055
  {0,0,0,0,0,0},
 
1056
};
 
1057
 
 
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 */
 
1066
  {0,0,0,0,0,0},
 
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 */
 
1087
  {0,0,0,0,0,0},
 
1088
  {0,0,0,0,0,0},
 
1089
  {0,0,0,0,0,0},
 
1090
  {0,0,0,0,0,0},
 
1091
};
 
1092
 
 
1093
const struct formstr e1_format0[] = {
 
1094
  {0,0,0,0,0,0},
 
1095
  {0,0,0,0,0,0},
 
1096
  {0,0,0,0,0,0},
 
1097
  {0,0,0,0,0,0},
 
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 */
 
1158
};
 
1159
 
 
1160
const struct formstr e1_format1[] = {
 
1161
  {0,0,0,0,0,0},
 
1162
  {0,0,0,0,0,0},
 
1163
  {0,0,0,0,0,0},
 
1164
  {0,0,0,0,0,0},
 
1165
  {0,0,0,0,0,0},
 
1166
  {0,0,0,0,0,0},
 
1167
  {0,0,0,0,0,0},
 
1168
  {0,0,0,0,0,0},
 
1169
  {0,0,0,0,0,0},
 
1170
  {0,0,0,0,0,0},
 
1171
  {0,0,0,0,0,0},
 
1172
  {0,0,0,0,0,0},
 
1173
  {0,0,0,0,0,0},
 
1174
  {0,0,0,0,0,0},
 
1175
  {0,0,0,0,0,0},
 
1176
  {0,0,0,0,0,0},
 
1177
  {0,0,0,0,0,0},
 
1178
  {0,0,0,0,0,0},
 
1179
  {0,0,0,0,0,0},
 
1180
  {0,0,0,0,0,0},
 
1181
  {0,0,0,0,0,0},
 
1182
  {0,0,0,0,0,0},
 
1183
  {0,0,0,0,0,0},
 
1184
  {0,0,0,0,0,0},
 
1185
  {0,0,0,0,0,0},
 
1186
  {0,0,0,0,0,0},
 
1187
  {0,0,0,0,0,0},
 
1188
  {0,0,0,0,0,0},
 
1189
  {0,0,0,0,0,0},
 
1190
  {0,0,0,0,0,0},
 
1191
  {0,0,0,0,0,0},
 
1192
  {0,0,0,0,0,0},
 
1193
  {0,0,0,0,0,0},
 
1194
  {0,0,0,0,0,0},
 
1195
  {0,0,0,0,0,0},
 
1196
  {0,0,0,0,0,0},
 
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 */
 
1201
  {0,0,0,0,0,0},
 
1202
  {0,0,0,0,0,0},
 
1203
  {0,0,0,0,0,0},
 
1204
  {0,0,0,0,0,0},
 
1205
  {0,0,0,0,0,0},
 
1206
  {0,0,0,0,0,0},
 
1207
  {0,0,0,0,0,0},
 
1208
  {0,0,0,0,0,0},
 
1209
  {0,0,0,0,0,0},
 
1210
  {0,0,0,0,0,0},
 
1211
  {0,0,0,0,0,0},
 
1212
  {0,0,0,0,0,0},
 
1213
  {0,0,0,0,0,0},
 
1214
  {0,0,0,0,0,0},
 
1215
  {0,0,0,0,0,0},
 
1216
  {0,0,0,0,0,0},
 
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 */
 
1225
};
 
1226
 
 
1227
const struct formstr e1_format2[] = {
 
1228
  {0,0,0,0,0,0},
 
1229
  {0,0,0,0,0,0},
 
1230
  {0,0,0,0,0,0},
 
1231
  {0,0,0,0,0,0},
 
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 */
 
1236
  {0,0,0,0,0,0},
 
1237
  {0,0,0,0,0,0},
 
1238
  {0,0,0,0,0,0},
 
1239
  {0,0,0,0,0,0},
 
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 */
 
1244
  {0,0,0,0,0,0},
 
1245
  {0,0,0,0,0,0},
 
1246
  {0,0,0,0,0,0},
 
1247
  {0,0,0,0,0,0},
 
1248
  {0,0,0,0,0,0},
 
1249
  {0,0,0,0,0,0},
 
1250
  {0,0,0,0,0,0},
 
1251
  {0,0,0,0,0,0},
 
1252
  {0,0,0,0,0,0},
 
1253
  {0,0,0,0,0,0},
 
1254
  {0,0,0,0,0,0},
 
1255
  {0,0,0,0,0,0},
 
1256
  {0,0,0,0,0,0},
 
1257
  {0,0,0,0,0,0},
 
1258
  {0,0,0,0,0,0},
 
1259
  {0,0,0,0,0,0},
 
1260
  {0,0,0,0,0,0},
 
1261
  {0,0,0,0,0,0},
 
1262
  {0,0,0,0,0,0},
 
1263
  {0,0,0,0,0,0},
 
1264
  {0,0,0,0,0,0},
 
1265
  {0,0,0,0,0,0},
 
1266
  {0,0,0,0,0,0},
 
1267
  {0,0,0,0,0,0},
 
1268
  {0,0,0,0,0,0},
 
1269
  {0,0,0,0,0,0},
 
1270
  {0,0,0,0,0,0},
 
1271
  {0,0,0,0,0,0},
 
1272
  {0,0,0,0,0,0},
 
1273
  {0,0,0,0,0,0},
 
1274
  {0,0,0,0,0,0},
 
1275
  {0,0,0,0,0,0},
 
1276
  {0,0,0,0,0,0},
 
1277
  {0,0,0,0,0,0},
 
1278
  {0,0,0,0,0,0},
 
1279
  {0,0,0,0,0,0},
 
1280
  {0,0,0,0,0,0},
 
1281
  {0,0,0,0,0,0},
 
1282
  {0,0,0,0,0,0},
 
1283
  {0,0,0,0,0,0},
 
1284
  {0,0,0,0,0,0},
 
1285
  {0,0,0,0,0,0},
 
1286
  {0,0,0,0,0,0},
 
1287
  {0,0,0,0,0,0},
 
1288
  {0,0,0,0,0,0},
 
1289
  {0,0,0,0,0,0},
 
1290
  {0,0,0,0,0,0},
 
1291
  {0,0,0,0,0,0},
 
1292
  {0,0,0,0,0,0},
 
1293
  {0,0,0,0,0,0},
 
1294
  {0,0,0,0,0,0},
 
1295
  {0,0,0,0,0,0},
 
1296
  {0,0,0,0,0,0},
 
1297
  {0,0,0,0,0,0},
 
1298
  {0,0,0,0,0,0},
 
1299
  {0,0,0,0,0,0},
 
1300
  {0,0,0,0,0,0},
 
1301
  {0,0,0,0,0,0},
 
1302
  {0,0,0,0,0,0},
 
1303
  {0,0,0,0,0,0},
 
1304
  {0,0,0,0,0,0},
 
1305
  {0,0,0,0,0,0},
 
1306
  {0,0,0,0,0,0},
 
1307
  {0,0,0,0,0,0},
 
1308
  {0,0,0,0,0,0},
 
1309
  {0,0,0,0,0,0},
 
1310
  {0,0,0,0,0,0},
 
1311
  {0,0,0,0,0,0},
 
1312
  {0,0,0,0,0,0},
 
1313
  {0,0,0,0,0,0},
 
1314
  {0,0,0,0,0,0},
 
1315
  {0,0,0,0,0,0},
 
1316
  {0,0,0,0,0,0},
 
1317
  {0,0,0,0,0,0},
 
1318
  {0,0,0,0,0,0},
 
1319
  {0,0,0,0,0,0},
 
1320
  {0,0,0,0,0,0},
 
1321
  {0,0,0,0,0,0},
 
1322
  {0,0,0,0,0,0},
 
1323
  {0,0,0,0,0,0},
 
1324
  {0,0,0,0,0,0},
 
1325
  {0,0,0,0,0,0},
 
1326
  {0,0,0,0,0,0},
 
1327
  {0,0,0,0,0,0},
 
1328
  {0,0,0,0,0,0},
 
1329
  {0,0,0,0,0,0},
 
1330
  {116,18,rr,V,V,0},    /* frint.s.t */
 
1331
  {116,19,rr,V,V,0},    /* frint.d.t */
 
1332
  {0,0,0,0,0,0},
 
1333
  {0,0,0,0,0,0},
 
1334
  {0,0,0,0,0,0},
 
1335
  {0,0,0,0,0,0},
 
1336
  {0,0,0,0,0,0},
 
1337
  {0,0,0,0,0,0},
 
1338
  {0,0,0,0,0,0},
 
1339
  {0,0,0,0,0,0},
 
1340
  {0,0,0,0,0,0},
 
1341
  {0,0,0,0,0,0},
 
1342
  {0,0,0,0,0,0},
 
1343
  {0,0,0,0,0,0},
 
1344
  {0,0,0,0,0,0},
 
1345
  {0,0,0,0,0,0},
 
1346
  {0,0,0,0,0,0},
 
1347
  {0,0,0,0,0,0},
 
1348
  {0,0,0,0,0,0},
 
1349
  {0,0,0,0,0,0},
 
1350
  {0,0,0,0,0,0},
 
1351
  {0,0,0,0,0,0},
 
1352
  {81,18,rr,V,V,0},     /* sqrt.s.t */
 
1353
  {81,19,rr,V,V,0},     /* sqrt.d.t */
 
1354
  {0,0,0,0,0,0},
 
1355
  {0,0,0,0,0,0},
 
1356
};
 
1357
 
 
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 */
 
1363
  {0,0,0,0,0,0},
 
1364
  {0,0,0,0,0,0},
 
1365
  {0,0,0,0,0,0},
 
1366
  {0,0,0,0,0,0},
 
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 */
 
1373
  {0,0,0,0,0,0},
 
1374
  {0,0,0,0,0,0},
 
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 */
 
1381
  {0,0,0,0,0,0},
 
1382
  {0,0,0,0,0,0},
 
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 */
 
1419
  {0,0,0,0,0,0},
 
1420
  {0,0,0,0,0,0},
 
1421
  {0,0,0,0,0,0},
 
1422
  {0,0,0,0,0,0},
 
1423
};
 
1424
 
 
1425
const struct formstr e1_format4[] = {
 
1426
  {0,0,0,0,0,0},
 
1427
  {0,0,0,0,0,0},
 
1428
  {0,0,0,0,0,0},
 
1429
  {0,0,0,0,0,0},
 
1430
  {0,0,0,0,0,0},
 
1431
  {0,0,0,0,0,0},
 
1432
  {0,0,0,0,0,0},
 
1433
  {0,0,0,0,0,0},
 
1434
};
 
1435
 
 
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 */
 
1453
};
 
1454
 
 
1455
const struct formstr e1_format6[] = {
 
1456
  {0,0,0,0,0,0},
 
1457
  {0,0,0,0,0,0},
 
1458
  {0,0,0,0,0,0},
 
1459
  {0,0,0,0,0,0},
 
1460
  {0,0,0,0,0,0},
 
1461
  {0,0,0,0,0,0},
 
1462
  {0,0,0,0,0,0},
 
1463
  {0,0,0,0,0,0},
 
1464
  {0,0,0,0,0,0},
 
1465
  {0,0,0,0,0,0},
 
1466
  {0,0,0,0,0,0},
 
1467
  {0,0,0,0,0,0},
 
1468
  {0,0,0,0,0,0},
 
1469
  {0,0,0,0,0,0},
 
1470
  {0,0,0,0,0,0},
 
1471
  {0,0,0,0,0,0},
 
1472
  {0,0,0,0,0,0},
 
1473
  {0,0,0,0,0,0},
 
1474
  {0,0,0,0,0,0},
 
1475
  {0,0,0,0,0,0},
 
1476
  {0,0,0,0,0,0},
 
1477
  {0,0,0,0,0,0},
 
1478
  {0,0,0,0,0,0},
 
1479
  {0,0,0,0,0,0},
 
1480
  {0,0,0,0,0,0},
 
1481
  {0,0,0,0,0,0},
 
1482
  {0,0,0,0,0,0},
 
1483
  {0,0,0,0,0,0},
 
1484
  {0,0,0,0,0,0},
 
1485
  {0,0,0,0,0,0},
 
1486
  {0,0,0,0,0,0},
 
1487
  {0,0,0,0,0,0},
 
1488
  {0,0,0,0,0,0},
 
1489
  {0,0,0,0,0,0},
 
1490
  {0,0,0,0,0,0},
 
1491
  {0,0,0,0,0,0},
 
1492
  {0,0,0,0,0,0},
 
1493
  {0,0,0,0,0,0},
 
1494
  {0,0,0,0,0,0},
 
1495
  {0,0,0,0,0,0},
 
1496
  {0,0,0,0,0,0},
 
1497
  {0,0,0,0,0,0},
 
1498
  {0,0,0,0,0,0},
 
1499
  {0,0,0,0,0,0},
 
1500
  {0,0,0,0,0,0},
 
1501
  {0,0,0,0,0,0},
 
1502
  {0,0,0,0,0,0},
 
1503
  {0,0,0,0,0,0},
 
1504
  {0,0,0,0,0,0},
 
1505
  {0,0,0,0,0,0},
 
1506
  {0,0,0,0,0,0},
 
1507
  {0,0,0,0,0,0},
 
1508
  {0,0,0,0,0,0},
 
1509
  {0,0,0,0,0,0},
 
1510
  {0,0,0,0,0,0},
 
1511
  {0,0,0,0,0,0},
 
1512
  {0,0,0,0,0,0},
 
1513
  {0,0,0,0,0,0},
 
1514
  {0,0,0,0,0,0},
 
1515
  {0,0,0,0,0,0},
 
1516
  {0,0,0,0,0,0},
 
1517
  {0,0,0,0,0,0},
 
1518
  {0,0,0,0,0,0},
 
1519
  {0,0,0,0,0,0},
 
1520
};
 
1521
 
 
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 */
 
1530
  {0,0,0,0,0,0},
 
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 */
 
1551
  {0,0,0,0,0,0},
 
1552
  {0,0,0,0,0,0},
 
1553
  {0,0,0,0,0,0},
 
1554
  {0,0,0,0,0,0},
 
1555
};
 
1556
 
 
1557
char *lop[] = {
 
1558
  "mov",        /* 0 */
 
1559
  "merg",       /* 1 */
 
1560
  "mask",       /* 2 */
 
1561
  "mul",        /* 3 */
 
1562
  "div",        /* 4 */
 
1563
  "and",        /* 5 */
 
1564
  "or", /* 6 */
 
1565
  "xor",        /* 7 */
 
1566
  "shf",        /* 8 */
 
1567
  "add",        /* 9 */
 
1568
  "sub",        /* 10 */
 
1569
  "exit",       /* 11 */
 
1570
  "jmp",        /* 12 */
 
1571
  "jmpi",       /* 13 */
 
1572
  "jmpa",       /* 14 */
 
1573
  "jmps",       /* 15 */
 
1574
  "tac",        /* 16 */
 
1575
  "ldea",       /* 17 */
 
1576
  "ld", /* 18 */
 
1577
  "tas",        /* 19 */
 
1578
  "pshea",      /* 20 */
 
1579
  "st", /* 21 */
 
1580
  "call",       /* 22 */
 
1581
  "calls",      /* 23 */
 
1582
  "callq",      /* 24 */
 
1583
  "pfork",      /* 25 */
 
1584
  "ste",        /* 26 */
 
1585
  "incr",       /* 27 */
 
1586
  "cvtw",       /* 28 */
 
1587
  "cvtb",       /* 29 */
 
1588
  "cvth",       /* 30 */
 
1589
  "cvts",       /* 31 */
 
1590
  "cvtd",       /* 32 */
 
1591
  "cvtl",       /* 33 */
 
1592
  "ldpa",       /* 34 */
 
1593
  "plc",        /* 35 */
 
1594
  "tzc",        /* 36 */
 
1595
  "eq", /* 37 */
 
1596
  "leu",        /* 38 */
 
1597
  "ltu",        /* 39 */
 
1598
  "le", /* 40 */
 
1599
  "lt", /* 41 */
 
1600
  "not",        /* 42 */
 
1601
  "neg",        /* 43 */
 
1602
  "lop",        /* 44 */
 
1603
  "cprs",       /* 45 */
 
1604
  "nop",        /* 46 */
 
1605
  "br", /* 47 */
 
1606
  "bri",        /* 48 */
 
1607
  "bra",        /* 49 */
 
1608
  "brs",        /* 50 */
 
1609
  "ldvi",       /* 51 */
 
1610
  "stvi",       /* 52 */
 
1611
  "ldsdr",      /* 53 */
 
1612
  "ldkdr",      /* 54 */
 
1613
  "ln", /* 55 */
 
1614
  "patu",       /* 56 */
 
1615
  "pate",       /* 57 */
 
1616
  "pich",       /* 58 */
 
1617
  "plch",       /* 59 */
 
1618
  "idle",       /* 60 */
 
1619
  "rtnq",       /* 61 */
 
1620
  "cfork",      /* 62 */
 
1621
  "rtn",        /* 63 */
 
1622
  "wfork",      /* 64 */
 
1623
  "join",       /* 65 */
 
1624
  "rtnc",       /* 66 */
 
1625
  "exp",        /* 67 */
 
1626
  "sin",        /* 68 */
 
1627
  "cos",        /* 69 */
 
1628
  "psh",        /* 70 */
 
1629
  "pop",        /* 71 */
 
1630
  "eni",        /* 72 */
 
1631
  "dsi",        /* 73 */
 
1632
  "bkpt",       /* 74 */
 
1633
  "msync",      /* 75 */
 
1634
  "mski",       /* 76 */
 
1635
  "xmti",       /* 77 */
 
1636
  "tstvv",      /* 78 */
 
1637
  "diag",       /* 79 */
 
1638
  "pbkpt",      /* 80 */
 
1639
  "sqrt",       /* 81 */
 
1640
  "casr",       /* 82 */
 
1641
  "atan",       /* 83 */
 
1642
  "sum",        /* 84 */
 
1643
  "all",        /* 85 */
 
1644
  "any",        /* 86 */
 
1645
  "parity",     /* 87 */
 
1646
  "max",        /* 88 */
 
1647
  "min",        /* 89 */
 
1648
  "prod",       /* 90 */
 
1649
  "halt",       /* 91 */
 
1650
  "sysc",       /* 92 */
 
1651
  "trap",       /* 93 */
 
1652
  "tst",        /* 94 */
 
1653
  "lck",        /* 95 */
 
1654
  "ulk",        /* 96 */
 
1655
  "spawn",      /* 97 */
 
1656
  "ldcmr",      /* 98 */
 
1657
  "stcmr",      /* 99 */
 
1658
  "popr",       /* 100 */
 
1659
  "pshr",       /* 101 */
 
1660
  "rcvr",       /* 102 */
 
1661
  "matm",       /* 103 */
 
1662
  "sndr",       /* 104 */
 
1663
  "putr",       /* 105 */
 
1664
  "getr",       /* 106 */
 
1665
  "matr",       /* 107 */
 
1666
  "mat",        /* 108 */
 
1667
  "get",        /* 109 */
 
1668
  "rcv",        /* 110 */
 
1669
  "inc",        /* 111 */
 
1670
  "put",        /* 112 */
 
1671
  "snd",        /* 113 */
 
1672
  "enal",       /* 114 */
 
1673
  "enag",       /* 115 */
 
1674
  "frint",      /* 116 */
 
1675
  "xpnd",       /* 117 */
 
1676
  "ctrsl",      /* 118 */
 
1677
  "ctrsg",      /* 119 */
 
1678
  "stop",       /* 120 */
 
1679
};
 
1680
 
 
1681
char *rop[] = {
 
1682
  "",   /* 0 */
 
1683
  ".t", /* 1 */
 
1684
  ".f", /* 2 */
 
1685
  ".s", /* 3 */
 
1686
  ".d", /* 4 */
 
1687
  ".b", /* 5 */
 
1688
  ".h", /* 6 */
 
1689
  ".w", /* 7 */
 
1690
  ".l", /* 8 */
 
1691
  ".x", /* 9 */
 
1692
  ".u", /* 10 */
 
1693
  ".s.f",       /* 11 */
 
1694
  ".d.f",       /* 12 */
 
1695
  ".b.f",       /* 13 */
 
1696
  ".h.f",       /* 14 */
 
1697
  ".w.f",       /* 15 */
 
1698
  ".l.f",       /* 16 */
 
1699
  ".t.f",       /* 17 */
 
1700
  ".s.t",       /* 18 */
 
1701
  ".d.t",       /* 19 */
 
1702
  ".b.t",       /* 20 */
 
1703
  ".h.t",       /* 21 */
 
1704
  ".w.t",       /* 22 */
 
1705
  ".l.t",       /* 23 */
 
1706
  ".t.t",       /* 24 */
 
1707
};