1130561Sobrien/* Information for instruction disassembly on the Convex.
2130561Sobrien   Copyright 1989, 1993, 2002 Free Software Foundation, Inc.
3130561Sobrien
4130561SobrienThis file is part of GDB.
5130561Sobrien
6130561SobrienThis program is free software; you can redistribute it and/or modify
7130561Sobrienit under the terms of the GNU General Public License as published by
8130561Sobrienthe Free Software Foundation; either version 2 of the License, or
9130561Sobrien(at your option) any later version.
10130561Sobrien
11130561SobrienThis program is distributed in the hope that it will be useful,
12130561Sobrienbut WITHOUT ANY WARRANTY; without even the implied warranty of
13130561SobrienMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14130561SobrienGNU General Public License for more details.
15130561Sobrien
16130561SobrienYou should have received a copy of the GNU General Public License
17130561Sobrienalong with this program; if not, write to the Free Software
18218822SdimFoundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
19130561Sobrien
20130561Sobrien#define xxx 0
21130561Sobrien#define rrr 1
22130561Sobrien#define rr 2
23130561Sobrien#define rxr 3
24130561Sobrien#define r 4
25130561Sobrien#define nops 5
26130561Sobrien#define nr 6
27130561Sobrien#define pcrel 7
28130561Sobrien#define lr 8
29130561Sobrien#define rxl 9
30130561Sobrien#define rlr 10
31130561Sobrien#define rrl 11
32130561Sobrien#define iml 12
33130561Sobrien#define imr 13
34130561Sobrien#define a1r 14
35130561Sobrien#define a1l 15
36130561Sobrien#define a2r 16
37130561Sobrien#define a2l 17
38130561Sobrien#define a3 18
39130561Sobrien#define a4 19
40130561Sobrien#define a5 20
41130561Sobrien#define V 1
42130561Sobrien#define S 2
43130561Sobrien#define VM 3
44130561Sobrien#define A 4
45130561Sobrien#define VL 5
46130561Sobrien#define VS 6
47130561Sobrien#define VLS 7
48130561Sobrien#define PSW 8
49130561Sobrien/* Prevent an error during "make depend".  */
50130561Sobrien#if !defined (PC)
51130561Sobrien#define PC 9
52130561Sobrien#endif
53130561Sobrien#define ITR 10
54130561Sobrien#define VV 11
55130561Sobrien#define ITSR 12
56130561Sobrien#define TOC 13
57130561Sobrien#define CIR 14
58130561Sobrien#define TTR 15
59130561Sobrien#define VMU 16
60130561Sobrien#define VML 17
61130561Sobrien#define ICR 18
62130561Sobrien#define TCPU 19
63130561Sobrien#define CPUID 20
64130561Sobrien#define TID 21
65130561Sobrien
66130561Sobrienconst char *op[] = {
67130561Sobrien  "",
68130561Sobrien  "v0\0v1\0v2\0v3\0v4\0v5\0v6\0v7",
69130561Sobrien  "s0\0s1\0s2\0s3\0s4\0s5\0s6\0s7",
70130561Sobrien  "vm",
71130561Sobrien  "sp\0a1\0a2\0a3\0a4\0a5\0ap\0fp",
72130561Sobrien  "vl",
73130561Sobrien  "vs",
74130561Sobrien  "vls",
75130561Sobrien  "psw",
76130561Sobrien  "pc",
77130561Sobrien  "itr",
78130561Sobrien  "vv",
79130561Sobrien  "itsr",
80130561Sobrien  "toc",
81130561Sobrien  "cir",
82130561Sobrien  "ttr",
83130561Sobrien  "vmu",
84130561Sobrien  "vml",
85130561Sobrien  "icr",
86130561Sobrien  "tcpu",
87130561Sobrien  "cpuid",
88130561Sobrien  "tid",
89130561Sobrien};
90130561Sobrien
91130561Sobrienconst struct formstr format0[] = {
92130561Sobrien  {0,0,rrr,V,S,S},	/* mov */
93130561Sobrien  {0,0,rrr,S,S,V},	/* mov */
94130561Sobrien  {1,1,rrr,V,V,V},	/* merg.t */
95130561Sobrien  {2,1,rrr,V,V,V},	/* mask.t */
96130561Sobrien  {1,2,rrr,V,S,V},	/* merg.f */
97130561Sobrien  {2,2,rrr,V,S,V},	/* mask.f */
98130561Sobrien  {1,1,rrr,V,S,V},	/* merg.t */
99130561Sobrien  {2,1,rrr,V,S,V},	/* mask.t */
100130561Sobrien  {3,3,rrr,V,V,V},	/* mul.s */
101130561Sobrien  {3,4,rrr,V,V,V},	/* mul.d */
102130561Sobrien  {4,3,rrr,V,V,V},	/* div.s */
103130561Sobrien  {4,4,rrr,V,V,V},	/* div.d */
104130561Sobrien  {3,3,rrr,V,S,V},	/* mul.s */
105130561Sobrien  {3,4,rrr,V,S,V},	/* mul.d */
106130561Sobrien  {4,3,rrr,V,S,V},	/* div.s */
107130561Sobrien  {4,4,rrr,V,S,V},	/* div.d */
108130561Sobrien  {5,0,rrr,V,V,V},	/* and */
109130561Sobrien  {6,0,rrr,V,V,V},	/* or */
110130561Sobrien  {7,0,rrr,V,V,V},	/* xor */
111130561Sobrien  {8,0,rrr,V,V,V},	/* shf */
112130561Sobrien  {5,0,rrr,V,S,V},	/* and */
113130561Sobrien  {6,0,rrr,V,S,V},	/* or */
114130561Sobrien  {7,0,rrr,V,S,V},	/* xor */
115130561Sobrien  {8,0,rrr,V,S,V},	/* shf */
116130561Sobrien  {9,3,rrr,V,V,V},	/* add.s */
117130561Sobrien  {9,4,rrr,V,V,V},	/* add.d */
118130561Sobrien  {10,3,rrr,V,V,V},	/* sub.s */
119130561Sobrien  {10,4,rrr,V,V,V},	/* sub.d */
120130561Sobrien  {9,3,rrr,V,S,V},	/* add.s */
121130561Sobrien  {9,4,rrr,V,S,V},	/* add.d */
122130561Sobrien  {10,3,rrr,V,S,V},	/* sub.s */
123130561Sobrien  {10,4,rrr,V,S,V},	/* sub.d */
124130561Sobrien  {9,5,rrr,V,V,V},	/* add.b */
125130561Sobrien  {9,6,rrr,V,V,V},	/* add.h */
126130561Sobrien  {9,7,rrr,V,V,V},	/* add.w */
127130561Sobrien  {9,8,rrr,V,V,V},	/* add.l */
128130561Sobrien  {9,5,rrr,V,S,V},	/* add.b */
129130561Sobrien  {9,6,rrr,V,S,V},	/* add.h */
130130561Sobrien  {9,7,rrr,V,S,V},	/* add.w */
131130561Sobrien  {9,8,rrr,V,S,V},	/* add.l */
132130561Sobrien  {10,5,rrr,V,V,V},	/* sub.b */
133130561Sobrien  {10,6,rrr,V,V,V},	/* sub.h */
134130561Sobrien  {10,7,rrr,V,V,V},	/* sub.w */
135130561Sobrien  {10,8,rrr,V,V,V},	/* sub.l */
136130561Sobrien  {10,5,rrr,V,S,V},	/* sub.b */
137130561Sobrien  {10,6,rrr,V,S,V},	/* sub.h */
138130561Sobrien  {10,7,rrr,V,S,V},	/* sub.w */
139130561Sobrien  {10,8,rrr,V,S,V},	/* sub.l */
140130561Sobrien  {3,5,rrr,V,V,V},	/* mul.b */
141130561Sobrien  {3,6,rrr,V,V,V},	/* mul.h */
142130561Sobrien  {3,7,rrr,V,V,V},	/* mul.w */
143130561Sobrien  {3,8,rrr,V,V,V},	/* mul.l */
144130561Sobrien  {3,5,rrr,V,S,V},	/* mul.b */
145130561Sobrien  {3,6,rrr,V,S,V},	/* mul.h */
146130561Sobrien  {3,7,rrr,V,S,V},	/* mul.w */
147130561Sobrien  {3,8,rrr,V,S,V},	/* mul.l */
148130561Sobrien  {4,5,rrr,V,V,V},	/* div.b */
149130561Sobrien  {4,6,rrr,V,V,V},	/* div.h */
150130561Sobrien  {4,7,rrr,V,V,V},	/* div.w */
151130561Sobrien  {4,8,rrr,V,V,V},	/* div.l */
152130561Sobrien  {4,5,rrr,V,S,V},	/* div.b */
153130561Sobrien  {4,6,rrr,V,S,V},	/* div.h */
154130561Sobrien  {4,7,rrr,V,S,V},	/* div.w */
155130561Sobrien  {4,8,rrr,V,S,V},	/* div.l */
156130561Sobrien};
157130561Sobrien
158130561Sobrienconst struct formstr format1[] = {
159130561Sobrien  {11,0,xxx,0,0,0},	/* exit */
160130561Sobrien  {12,0,a3,0,0,0},	/* jmp */
161130561Sobrien  {13,2,a3,0,0,0},	/* jmpi.f */
162130561Sobrien  {13,1,a3,0,0,0},	/* jmpi.t */
163130561Sobrien  {14,2,a3,0,0,0},	/* jmpa.f */
164130561Sobrien  {14,1,a3,0,0,0},	/* jmpa.t */
165130561Sobrien  {15,2,a3,0,0,0},	/* jmps.f */
166130561Sobrien  {15,1,a3,0,0,0},	/* jmps.t */
167130561Sobrien  {16,0,a3,0,0,0},	/* tac */
168130561Sobrien  {17,0,a1r,A,0,0},	/* ldea */
169130561Sobrien  {18,8,a1l,VLS,0,0},	/* ld.l */
170130561Sobrien  {18,9,a1l,VM,0,0},	/* ld.x */
171130561Sobrien  {19,0,a3,0,0,0},	/* tas */
172130561Sobrien  {20,0,a3,0,0,0},	/* pshea */
173130561Sobrien  {21,8,a2l,VLS,0,0},	/* st.l */
174130561Sobrien  {21,9,a2l,VM,0,0},	/* st.x */
175130561Sobrien  {0,0,0,0,0,0},
176130561Sobrien  {0,0,0,0,0,0},
177130561Sobrien  {0,0,0,0,0,0},
178130561Sobrien  {0,0,0,0,0,0},
179130561Sobrien  {0,0,0,0,0,0},
180130561Sobrien  {0,0,0,0,0,0},
181130561Sobrien  {0,0,0,0,0,0},
182130561Sobrien  {0,0,0,0,0,0},
183130561Sobrien  {0,0,0,0,0,0},
184130561Sobrien  {0,0,0,0,0,0},
185130561Sobrien  {0,0,0,0,0,0},
186130561Sobrien  {0,0,0,0,0,0},
187130561Sobrien  {0,0,0,0,0,0},
188130561Sobrien  {0,0,0,0,0,0},
189130561Sobrien  {0,0,0,0,0,0},
190130561Sobrien  {0,0,0,0,0,0},
191130561Sobrien  {22,0,a3,0,0,0},	/* call */
192130561Sobrien  {23,0,a3,0,0,0},	/* calls */
193130561Sobrien  {24,0,a3,0,0,0},	/* callq */
194130561Sobrien  {25,0,a1r,A,0,0},	/* pfork */
195130561Sobrien  {26,5,a2r,S,0,0},	/* ste.b */
196130561Sobrien  {26,6,a2r,S,0,0},	/* ste.h */
197130561Sobrien  {26,7,a2r,S,0,0},	/* ste.w */
198130561Sobrien  {26,8,a2r,S,0,0},	/* ste.l */
199130561Sobrien  {18,5,a1r,A,0,0},	/* ld.b */
200130561Sobrien  {18,6,a1r,A,0,0},	/* ld.h */
201130561Sobrien  {18,7,a1r,A,0,0},	/* ld.w */
202130561Sobrien  {27,7,a1r,A,0,0},	/* incr.w */
203130561Sobrien  {21,5,a2r,A,0,0},	/* st.b */
204130561Sobrien  {21,6,a2r,A,0,0},	/* st.h */
205130561Sobrien  {21,7,a2r,A,0,0},	/* st.w */
206130561Sobrien  {27,8,a1r,S,0,0},	/* incr.l */
207130561Sobrien  {18,5,a1r,S,0,0},	/* ld.b */
208130561Sobrien  {18,6,a1r,S,0,0},	/* ld.h */
209130561Sobrien  {18,7,a1r,S,0,0},	/* ld.w */
210130561Sobrien  {18,8,a1r,S,0,0},	/* ld.l */
211130561Sobrien  {21,5,a2r,S,0,0},	/* st.b */
212130561Sobrien  {21,6,a2r,S,0,0},	/* st.h */
213130561Sobrien  {21,7,a2r,S,0,0},	/* st.w */
214130561Sobrien  {21,8,a2r,S,0,0},	/* st.l */
215130561Sobrien  {18,5,a1r,V,0,0},	/* ld.b */
216130561Sobrien  {18,6,a1r,V,0,0},	/* ld.h */
217130561Sobrien  {18,7,a1r,V,0,0},	/* ld.w */
218130561Sobrien  {18,8,a1r,V,0,0},	/* ld.l */
219130561Sobrien  {21,5,a2r,V,0,0},	/* st.b */
220130561Sobrien  {21,6,a2r,V,0,0},	/* st.h */
221130561Sobrien  {21,7,a2r,V,0,0},	/* st.w */
222130561Sobrien  {21,8,a2r,V,0,0},	/* st.l */
223130561Sobrien};
224130561Sobrien
225130561Sobrienconst struct formstr format2[] = {
226130561Sobrien  {28,5,rr,A,A,0},	/* cvtw.b */
227130561Sobrien  {28,6,rr,A,A,0},	/* cvtw.h */
228130561Sobrien  {29,7,rr,A,A,0},	/* cvtb.w */
229130561Sobrien  {30,7,rr,A,A,0},	/* cvth.w */
230130561Sobrien  {28,5,rr,S,S,0},	/* cvtw.b */
231130561Sobrien  {28,6,rr,S,S,0},	/* cvtw.h */
232130561Sobrien  {29,7,rr,S,S,0},	/* cvtb.w */
233130561Sobrien  {30,7,rr,S,S,0},	/* cvth.w */
234130561Sobrien  {28,3,rr,S,S,0},	/* cvtw.s */
235130561Sobrien  {31,7,rr,S,S,0},	/* cvts.w */
236130561Sobrien  {32,3,rr,S,S,0},	/* cvtd.s */
237130561Sobrien  {31,4,rr,S,S,0},	/* cvts.d */
238130561Sobrien  {31,8,rr,S,S,0},	/* cvts.l */
239130561Sobrien  {32,8,rr,S,S,0},	/* cvtd.l */
240130561Sobrien  {33,3,rr,S,S,0},	/* cvtl.s */
241130561Sobrien  {33,4,rr,S,S,0},	/* cvtl.d */
242130561Sobrien  {34,0,rr,A,A,0},	/* ldpa */
243130561Sobrien  {8,0,nr,A,0,0},	/* shf */
244130561Sobrien  {18,6,nr,A,0,0},	/* ld.h */
245130561Sobrien  {18,7,nr,A,0,0},	/* ld.w */
246130561Sobrien  {33,7,rr,S,S,0},	/* cvtl.w */
247130561Sobrien  {28,8,rr,S,S,0},	/* cvtw.l */
248130561Sobrien  {35,1,rr,S,S,0},	/* plc.t */
249130561Sobrien  {36,0,rr,S,S,0},	/* tzc */
250130561Sobrien  {37,6,rr,A,A,0},	/* eq.h */
251130561Sobrien  {37,7,rr,A,A,0},	/* eq.w */
252130561Sobrien  {37,6,nr,A,0,0},	/* eq.h */
253130561Sobrien  {37,7,nr,A,0,0},	/* eq.w */
254130561Sobrien  {37,5,rr,S,S,0},	/* eq.b */
255130561Sobrien  {37,6,rr,S,S,0},	/* eq.h */
256130561Sobrien  {37,7,rr,S,S,0},	/* eq.w */
257130561Sobrien  {37,8,rr,S,S,0},	/* eq.l */
258130561Sobrien  {38,6,rr,A,A,0},	/* leu.h */
259130561Sobrien  {38,7,rr,A,A,0},	/* leu.w */
260130561Sobrien  {38,6,nr,A,0,0},	/* leu.h */
261130561Sobrien  {38,7,nr,A,0,0},	/* leu.w */
262130561Sobrien  {38,5,rr,S,S,0},	/* leu.b */
263130561Sobrien  {38,6,rr,S,S,0},	/* leu.h */
264130561Sobrien  {38,7,rr,S,S,0},	/* leu.w */
265130561Sobrien  {38,8,rr,S,S,0},	/* leu.l */
266130561Sobrien  {39,6,rr,A,A,0},	/* ltu.h */
267130561Sobrien  {39,7,rr,A,A,0},	/* ltu.w */
268130561Sobrien  {39,6,nr,A,0,0},	/* ltu.h */
269130561Sobrien  {39,7,nr,A,0,0},	/* ltu.w */
270130561Sobrien  {39,5,rr,S,S,0},	/* ltu.b */
271130561Sobrien  {39,6,rr,S,S,0},	/* ltu.h */
272130561Sobrien  {39,7,rr,S,S,0},	/* ltu.w */
273130561Sobrien  {39,8,rr,S,S,0},	/* ltu.l */
274130561Sobrien  {40,6,rr,A,A,0},	/* le.h */
275130561Sobrien  {40,7,rr,A,A,0},	/* le.w */
276130561Sobrien  {40,6,nr,A,0,0},	/* le.h */
277130561Sobrien  {40,7,nr,A,0,0},	/* le.w */
278130561Sobrien  {40,5,rr,S,S,0},	/* le.b */
279130561Sobrien  {40,6,rr,S,S,0},	/* le.h */
280130561Sobrien  {40,7,rr,S,S,0},	/* le.w */
281130561Sobrien  {40,8,rr,S,S,0},	/* le.l */
282130561Sobrien  {41,6,rr,A,A,0},	/* lt.h */
283130561Sobrien  {41,7,rr,A,A,0},	/* lt.w */
284130561Sobrien  {41,6,nr,A,0,0},	/* lt.h */
285130561Sobrien  {41,7,nr,A,0,0},	/* lt.w */
286130561Sobrien  {41,5,rr,S,S,0},	/* lt.b */
287130561Sobrien  {41,6,rr,S,S,0},	/* lt.h */
288130561Sobrien  {41,7,rr,S,S,0},	/* lt.w */
289130561Sobrien  {41,8,rr,S,S,0},	/* lt.l */
290130561Sobrien  {9,7,rr,S,A,0},	/* add.w */
291130561Sobrien  {8,0,rr,A,A,0},	/* shf */
292130561Sobrien  {0,0,rr,A,A,0},	/* mov */
293130561Sobrien  {0,0,rr,S,A,0},	/* mov */
294130561Sobrien  {0,7,rr,S,S,0},	/* mov.w */
295130561Sobrien  {8,0,rr,S,S,0},	/* shf */
296130561Sobrien  {0,0,rr,S,S,0},	/* mov */
297130561Sobrien  {0,0,rr,A,S,0},	/* mov */
298130561Sobrien  {5,0,rr,A,A,0},	/* and */
299130561Sobrien  {6,0,rr,A,A,0},	/* or */
300130561Sobrien  {7,0,rr,A,A,0},	/* xor */
301130561Sobrien  {42,0,rr,A,A,0},	/* not */
302130561Sobrien  {5,0,rr,S,S,0},	/* and */
303130561Sobrien  {6,0,rr,S,S,0},	/* or */
304130561Sobrien  {7,0,rr,S,S,0},	/* xor */
305130561Sobrien  {42,0,rr,S,S,0},	/* not */
306130561Sobrien  {40,3,rr,S,S,0},	/* le.s */
307130561Sobrien  {40,4,rr,S,S,0},	/* le.d */
308130561Sobrien  {41,3,rr,S,S,0},	/* lt.s */
309130561Sobrien  {41,4,rr,S,S,0},	/* lt.d */
310130561Sobrien  {9,3,rr,S,S,0},	/* add.s */
311130561Sobrien  {9,4,rr,S,S,0},	/* add.d */
312130561Sobrien  {10,3,rr,S,S,0},	/* sub.s */
313130561Sobrien  {10,4,rr,S,S,0},	/* sub.d */
314130561Sobrien  {37,3,rr,S,S,0},	/* eq.s */
315130561Sobrien  {37,4,rr,S,S,0},	/* eq.d */
316130561Sobrien  {43,6,rr,A,A,0},	/* neg.h */
317130561Sobrien  {43,7,rr,A,A,0},	/* neg.w */
318130561Sobrien  {3,3,rr,S,S,0},	/* mul.s */
319130561Sobrien  {3,4,rr,S,S,0},	/* mul.d */
320130561Sobrien  {4,3,rr,S,S,0},	/* div.s */
321130561Sobrien  {4,4,rr,S,S,0},	/* div.d */
322130561Sobrien  {9,6,rr,A,A,0},	/* add.h */
323130561Sobrien  {9,7,rr,A,A,0},	/* add.w */
324130561Sobrien  {9,6,nr,A,0,0},	/* add.h */
325130561Sobrien  {9,7,nr,A,0,0},	/* add.w */
326130561Sobrien  {9,5,rr,S,S,0},	/* add.b */
327130561Sobrien  {9,6,rr,S,S,0},	/* add.h */
328130561Sobrien  {9,7,rr,S,S,0},	/* add.w */
329130561Sobrien  {9,8,rr,S,S,0},	/* add.l */
330130561Sobrien  {10,6,rr,A,A,0},	/* sub.h */
331130561Sobrien  {10,7,rr,A,A,0},	/* sub.w */
332130561Sobrien  {10,6,nr,A,0,0},	/* sub.h */
333130561Sobrien  {10,7,nr,A,0,0},	/* sub.w */
334130561Sobrien  {10,5,rr,S,S,0},	/* sub.b */
335130561Sobrien  {10,6,rr,S,S,0},	/* sub.h */
336130561Sobrien  {10,7,rr,S,S,0},	/* sub.w */
337130561Sobrien  {10,8,rr,S,S,0},	/* sub.l */
338130561Sobrien  {3,6,rr,A,A,0},	/* mul.h */
339130561Sobrien  {3,7,rr,A,A,0},	/* mul.w */
340130561Sobrien  {3,6,nr,A,0,0},	/* mul.h */
341130561Sobrien  {3,7,nr,A,0,0},	/* mul.w */
342130561Sobrien  {3,5,rr,S,S,0},	/* mul.b */
343130561Sobrien  {3,6,rr,S,S,0},	/* mul.h */
344130561Sobrien  {3,7,rr,S,S,0},	/* mul.w */
345130561Sobrien  {3,8,rr,S,S,0},	/* mul.l */
346130561Sobrien  {4,6,rr,A,A,0},	/* div.h */
347130561Sobrien  {4,7,rr,A,A,0},	/* div.w */
348130561Sobrien  {4,6,nr,A,0,0},	/* div.h */
349130561Sobrien  {4,7,nr,A,0,0},	/* div.w */
350130561Sobrien  {4,5,rr,S,S,0},	/* div.b */
351130561Sobrien  {4,6,rr,S,S,0},	/* div.h */
352130561Sobrien  {4,7,rr,S,S,0},	/* div.w */
353130561Sobrien  {4,8,rr,S,S,0},	/* div.l */
354130561Sobrien};
355130561Sobrien
356130561Sobrienconst struct formstr format3[] = {
357130561Sobrien  {32,3,rr,V,V,0},	/* cvtd.s */
358130561Sobrien  {31,4,rr,V,V,0},	/* cvts.d */
359130561Sobrien  {33,4,rr,V,V,0},	/* cvtl.d */
360130561Sobrien  {32,8,rr,V,V,0},	/* cvtd.l */
361130561Sobrien  {0,0,rrl,S,S,VM},	/* mov */
362130561Sobrien  {0,0,rlr,S,VM,S},	/* mov */
363130561Sobrien  {0,0,0,0,0,0},
364130561Sobrien  {44,0,rr,S,S,0},	/* lop */
365130561Sobrien  {36,0,rr,V,V,0},	/* tzc */
366130561Sobrien  {44,0,rr,V,V,0},	/* lop */
367130561Sobrien  {0,0,0,0,0,0},
368130561Sobrien  {42,0,rr,V,V,0},	/* not */
369130561Sobrien  {8,0,rr,S,V,0},	/* shf */
370130561Sobrien  {35,1,rr,V,V,0},	/* plc.t */
371130561Sobrien  {45,2,rr,V,V,0},	/* cprs.f */
372130561Sobrien  {45,1,rr,V,V,0},	/* cprs.t */
373130561Sobrien  {37,3,rr,V,V,0},	/* eq.s */
374130561Sobrien  {37,4,rr,V,V,0},	/* eq.d */
375130561Sobrien  {43,3,rr,V,V,0},	/* neg.s */
376130561Sobrien  {43,4,rr,V,V,0},	/* neg.d */
377130561Sobrien  {37,3,rr,S,V,0},	/* eq.s */
378130561Sobrien  {37,4,rr,S,V,0},	/* eq.d */
379130561Sobrien  {43,3,rr,S,S,0},	/* neg.s */
380130561Sobrien  {43,4,rr,S,S,0},	/* neg.d */
381130561Sobrien  {40,3,rr,V,V,0},	/* le.s */
382130561Sobrien  {40,4,rr,V,V,0},	/* le.d */
383130561Sobrien  {41,3,rr,V,V,0},	/* lt.s */
384130561Sobrien  {41,4,rr,V,V,0},	/* lt.d */
385130561Sobrien  {40,3,rr,S,V,0},	/* le.s */
386130561Sobrien  {40,4,rr,S,V,0},	/* le.d */
387130561Sobrien  {41,3,rr,S,V,0},	/* lt.s */
388130561Sobrien  {41,4,rr,S,V,0},	/* lt.d */
389130561Sobrien  {37,5,rr,V,V,0},	/* eq.b */
390130561Sobrien  {37,6,rr,V,V,0},	/* eq.h */
391130561Sobrien  {37,7,rr,V,V,0},	/* eq.w */
392130561Sobrien  {37,8,rr,V,V,0},	/* eq.l */
393130561Sobrien  {37,5,rr,S,V,0},	/* eq.b */
394130561Sobrien  {37,6,rr,S,V,0},	/* eq.h */
395130561Sobrien  {37,7,rr,S,V,0},	/* eq.w */
396130561Sobrien  {37,8,rr,S,V,0},	/* eq.l */
397130561Sobrien  {40,5,rr,V,V,0},	/* le.b */
398130561Sobrien  {40,6,rr,V,V,0},	/* le.h */
399130561Sobrien  {40,7,rr,V,V,0},	/* le.w */
400130561Sobrien  {40,8,rr,V,V,0},	/* le.l */
401130561Sobrien  {40,5,rr,S,V,0},	/* le.b */
402130561Sobrien  {40,6,rr,S,V,0},	/* le.h */
403130561Sobrien  {40,7,rr,S,V,0},	/* le.w */
404130561Sobrien  {40,8,rr,S,V,0},	/* le.l */
405130561Sobrien  {41,5,rr,V,V,0},	/* lt.b */
406130561Sobrien  {41,6,rr,V,V,0},	/* lt.h */
407130561Sobrien  {41,7,rr,V,V,0},	/* lt.w */
408130561Sobrien  {41,8,rr,V,V,0},	/* lt.l */
409130561Sobrien  {41,5,rr,S,V,0},	/* lt.b */
410130561Sobrien  {41,6,rr,S,V,0},	/* lt.h */
411130561Sobrien  {41,7,rr,S,V,0},	/* lt.w */
412130561Sobrien  {41,8,rr,S,V,0},	/* lt.l */
413130561Sobrien  {43,5,rr,V,V,0},	/* neg.b */
414130561Sobrien  {43,6,rr,V,V,0},	/* neg.h */
415130561Sobrien  {43,7,rr,V,V,0},	/* neg.w */
416130561Sobrien  {43,8,rr,V,V,0},	/* neg.l */
417130561Sobrien  {43,5,rr,S,S,0},	/* neg.b */
418130561Sobrien  {43,6,rr,S,S,0},	/* neg.h */
419130561Sobrien  {43,7,rr,S,S,0},	/* neg.w */
420130561Sobrien  {43,8,rr,S,S,0},	/* neg.l */
421130561Sobrien};
422130561Sobrien
423130561Sobrienconst struct formstr format4[] = {
424130561Sobrien  {46,0,nops,0,0,0},	/* nop */
425130561Sobrien  {47,0,pcrel,0,0,0},	/* br */
426130561Sobrien  {48,2,pcrel,0,0,0},	/* bri.f */
427130561Sobrien  {48,1,pcrel,0,0,0},	/* bri.t */
428130561Sobrien  {49,2,pcrel,0,0,0},	/* bra.f */
429130561Sobrien  {49,1,pcrel,0,0,0},	/* bra.t */
430130561Sobrien  {50,2,pcrel,0,0,0},	/* brs.f */
431130561Sobrien  {50,1,pcrel,0,0,0},	/* brs.t */
432130561Sobrien};
433130561Sobrien
434130561Sobrienconst struct formstr format5[] = {
435130561Sobrien  {51,5,rr,V,V,0},	/* ldvi.b */
436130561Sobrien  {51,6,rr,V,V,0},	/* ldvi.h */
437130561Sobrien  {51,7,rr,V,V,0},	/* ldvi.w */
438130561Sobrien  {51,8,rr,V,V,0},	/* ldvi.l */
439130561Sobrien  {28,3,rr,V,V,0},	/* cvtw.s */
440130561Sobrien  {31,7,rr,V,V,0},	/* cvts.w */
441130561Sobrien  {28,8,rr,V,V,0},	/* cvtw.l */
442130561Sobrien  {33,7,rr,V,V,0},	/* cvtl.w */
443130561Sobrien  {52,5,rxr,V,V,0},	/* stvi.b */
444130561Sobrien  {52,6,rxr,V,V,0},	/* stvi.h */
445130561Sobrien  {52,7,rxr,V,V,0},	/* stvi.w */
446130561Sobrien  {52,8,rxr,V,V,0},	/* stvi.l */
447130561Sobrien  {52,5,rxr,S,V,0},	/* stvi.b */
448130561Sobrien  {52,6,rxr,S,V,0},	/* stvi.h */
449130561Sobrien  {52,7,rxr,S,V,0},	/* stvi.w */
450130561Sobrien  {52,8,rxr,S,V,0},	/* stvi.l */
451130561Sobrien};
452130561Sobrien
453130561Sobrienconst struct formstr format6[] = {
454130561Sobrien  {53,0,r,A,0,0},	/* ldsdr */
455130561Sobrien  {54,0,r,A,0,0},	/* ldkdr */
456130561Sobrien  {55,3,r,S,0,0},	/* ln.s */
457130561Sobrien  {55,4,r,S,0,0},	/* ln.d */
458130561Sobrien  {56,0,nops,0,0,0},	/* patu */
459130561Sobrien  {57,0,r,A,0,0},	/* pate */
460130561Sobrien  {58,0,nops,0,0,0},	/* pich */
461130561Sobrien  {59,0,nops,0,0,0},	/* plch */
462130561Sobrien  {0,0,lr,PSW,A,0},	/* mov */
463130561Sobrien  {0,0,rxl,A,PSW,0},	/* mov */
464130561Sobrien  {0,0,lr,PC,A,0},	/* mov */
465130561Sobrien  {60,0,r,S,0,0},	/* idle */
466130561Sobrien  {0,0,lr,ITR,S,0},	/* mov */
467130561Sobrien  {0,0,rxl,S,ITR,0},	/* mov */
468130561Sobrien  {0,0,0,0,0,0},
469130561Sobrien  {0,0,rxl,S,ITSR,0},	/* mov */
470130561Sobrien  {61,0,nops,0,0,0},	/* rtnq */
471130561Sobrien  {62,0,nops,0,0,0},	/* cfork */
472130561Sobrien  {63,0,nops,0,0,0},	/* rtn */
473130561Sobrien  {64,0,nops,0,0,0},	/* wfork */
474130561Sobrien  {65,0,nops,0,0,0},	/* join */
475130561Sobrien  {66,0,nops,0,0,0},	/* rtnc */
476130561Sobrien  {67,3,r,S,0,0},	/* exp.s */
477130561Sobrien  {67,4,r,S,0,0},	/* exp.d */
478130561Sobrien  {68,3,r,S,0,0},	/* sin.s */
479130561Sobrien  {68,4,r,S,0,0},	/* sin.d */
480130561Sobrien  {0,0,0,0,0,0},
481130561Sobrien  {0,0,0,0,0,0},
482130561Sobrien  {69,3,r,S,0,0},	/* cos.s */
483130561Sobrien  {69,4,r,S,0,0},	/* cos.d */
484130561Sobrien  {0,0,0,0,0,0},
485130561Sobrien  {0,0,0,0,0,0},
486130561Sobrien  {70,7,r,A,0,0},	/* psh.w */
487130561Sobrien  {0,0,0,0,0,0},
488130561Sobrien  {71,7,r,A,0,0},	/* pop.w */
489130561Sobrien  {0,0,0,0,0,0},
490130561Sobrien  {70,7,r,S,0,0},	/* psh.w */
491130561Sobrien  {70,8,r,S,0,0},	/* psh.l */
492130561Sobrien  {71,7,r,S,0,0},	/* pop.w */
493130561Sobrien  {71,8,r,S,0,0},	/* pop.l */
494130561Sobrien  {72,0,nops,0,0,0},	/* eni */
495130561Sobrien  {73,0,nops,0,0,0},	/* dsi */
496130561Sobrien  {74,0,nops,0,0,0},	/* bkpt */
497130561Sobrien  {75,0,nops,0,0,0},	/* msync */
498130561Sobrien  {76,0,r,S,0,0},	/* mski */
499130561Sobrien  {77,0,r,S,0,0},	/* xmti */
500130561Sobrien  {0,0,rxl,S,VV,0},	/* mov */
501130561Sobrien  {78,0,nops,0,0,0},	/* tstvv */
502130561Sobrien  {0,0,lr,VS,A,0},	/* mov */
503130561Sobrien  {0,0,rxl,A,VS,0},	/* mov */
504130561Sobrien  {0,0,lr,VL,A,0},	/* mov */
505130561Sobrien  {0,0,rxl,A,VL,0},	/* mov */
506130561Sobrien  {0,7,lr,VS,S,0},	/* mov.w */
507130561Sobrien  {0,7,rxl,S,VS,0},	/* mov.w */
508130561Sobrien  {0,7,lr,VL,S,0},	/* mov.w */
509130561Sobrien  {0,7,rxl,S,VL,0},	/* mov.w */
510130561Sobrien  {79,0,r,A,0,0},	/* diag */
511130561Sobrien  {80,0,nops,0,0,0},	/* pbkpt */
512130561Sobrien  {81,3,r,S,0,0},	/* sqrt.s */
513130561Sobrien  {81,4,r,S,0,0},	/* sqrt.d */
514130561Sobrien  {82,0,nops,0,0,0},	/* casr */
515130561Sobrien  {0,0,0,0,0,0},
516130561Sobrien  {83,3,r,S,0,0},	/* atan.s */
517130561Sobrien  {83,4,r,S,0,0},	/* atan.d */
518130561Sobrien};
519130561Sobrien
520130561Sobrienconst struct formstr format7[] = {
521130561Sobrien  {84,5,r,V,0,0},	/* sum.b */
522130561Sobrien  {84,6,r,V,0,0},	/* sum.h */
523130561Sobrien  {84,7,r,V,0,0},	/* sum.w */
524130561Sobrien  {84,8,r,V,0,0},	/* sum.l */
525130561Sobrien  {85,0,r,V,0,0},	/* all */
526130561Sobrien  {86,0,r,V,0,0},	/* any */
527130561Sobrien  {87,0,r,V,0,0},	/* parity */
528130561Sobrien  {0,0,0,0,0,0},
529130561Sobrien  {88,5,r,V,0,0},	/* max.b */
530130561Sobrien  {88,6,r,V,0,0},	/* max.h */
531130561Sobrien  {88,7,r,V,0,0},	/* max.w */
532130561Sobrien  {88,8,r,V,0,0},	/* max.l */
533130561Sobrien  {89,5,r,V,0,0},	/* min.b */
534130561Sobrien  {89,6,r,V,0,0},	/* min.h */
535130561Sobrien  {89,7,r,V,0,0},	/* min.w */
536130561Sobrien  {89,8,r,V,0,0},	/* min.l */
537130561Sobrien  {84,3,r,V,0,0},	/* sum.s */
538130561Sobrien  {84,4,r,V,0,0},	/* sum.d */
539130561Sobrien  {90,3,r,V,0,0},	/* prod.s */
540130561Sobrien  {90,4,r,V,0,0},	/* prod.d */
541130561Sobrien  {88,3,r,V,0,0},	/* max.s */
542130561Sobrien  {88,4,r,V,0,0},	/* max.d */
543130561Sobrien  {89,3,r,V,0,0},	/* min.s */
544130561Sobrien  {89,4,r,V,0,0},	/* min.d */
545130561Sobrien  {90,5,r,V,0,0},	/* prod.b */
546130561Sobrien  {90,6,r,V,0,0},	/* prod.h */
547130561Sobrien  {90,7,r,V,0,0},	/* prod.w */
548130561Sobrien  {90,8,r,V,0,0},	/* prod.l */
549130561Sobrien  {35,2,lr,VM,S,0},	/* plc.f */
550130561Sobrien  {35,1,lr,VM,S,0},	/* plc.t */
551130561Sobrien  {0,0,0,0,0,0},
552130561Sobrien  {0,0,0,0,0,0},
553130561Sobrien};
554130561Sobrien
555130561Sobrienconst struct formstr formatx[] = {
556130561Sobrien  {0,0,0,0,0,0},
557130561Sobrien};
558130561Sobrien
559130561Sobrienconst struct formstr format1a[] = {
560130561Sobrien  {91,0,imr,A,0,0},	/* halt */
561130561Sobrien  {92,0,a4,0,0,0},	/* sysc */
562130561Sobrien  {18,6,imr,A,0,0},	/* ld.h */
563130561Sobrien  {18,7,imr,A,0,0},	/* ld.w */
564130561Sobrien  {5,0,imr,A,0,0},	/* and */
565130561Sobrien  {6,0,imr,A,0,0},	/* or */
566130561Sobrien  {7,0,imr,A,0,0},	/* xor */
567130561Sobrien  {8,0,imr,A,0,0},	/* shf */
568130561Sobrien  {9,6,imr,A,0,0},	/* add.h */
569130561Sobrien  {9,7,imr,A,0,0},	/* add.w */
570130561Sobrien  {10,6,imr,A,0,0},	/* sub.h */
571130561Sobrien  {10,7,imr,A,0,0},	/* sub.w */
572130561Sobrien  {3,6,imr,A,0,0},	/* mul.h */
573130561Sobrien  {3,7,imr,A,0,0},	/* mul.w */
574130561Sobrien  {4,6,imr,A,0,0},	/* div.h */
575130561Sobrien  {4,7,imr,A,0,0},	/* div.w */
576130561Sobrien  {18,7,iml,VL,0,0},	/* ld.w */
577130561Sobrien  {18,7,iml,VS,0,0},	/* ld.w */
578130561Sobrien  {0,0,0,0,0,0},
579130561Sobrien  {8,7,imr,S,0,0},	/* shf.w */
580130561Sobrien  {93,0,a5,0,0,0},	/* trap */
581130561Sobrien  {0,0,0,0,0,0},
582130561Sobrien  {37,6,imr,A,0,0},	/* eq.h */
583130561Sobrien  {37,7,imr,A,0,0},	/* eq.w */
584130561Sobrien  {38,6,imr,A,0,0},	/* leu.h */
585130561Sobrien  {38,7,imr,A,0,0},	/* leu.w */
586130561Sobrien  {39,6,imr,A,0,0},	/* ltu.h */
587130561Sobrien  {39,7,imr,A,0,0},	/* ltu.w */
588130561Sobrien  {40,6,imr,A,0,0},	/* le.h */
589130561Sobrien  {40,7,imr,A,0,0},	/* le.w */
590130561Sobrien  {41,6,imr,A,0,0},	/* lt.h */
591130561Sobrien  {41,7,imr,A,0,0},	/* lt.w */
592130561Sobrien};
593130561Sobrien
594130561Sobrienconst struct formstr format1b[] = {
595130561Sobrien  {18,4,imr,S,0,0},	/* ld.d */
596130561Sobrien  {18,10,imr,S,0,0},	/* ld.u */
597130561Sobrien  {18,8,imr,S,0,0},	/* ld.l */
598130561Sobrien  {18,7,imr,S,0,0},	/* ld.w */
599130561Sobrien  {5,0,imr,S,0,0},	/* and */
600130561Sobrien  {6,0,imr,S,0,0},	/* or */
601130561Sobrien  {7,0,imr,S,0,0},	/* xor */
602130561Sobrien  {8,0,imr,S,0,0},	/* shf */
603130561Sobrien  {9,6,imr,S,0,0},	/* add.h */
604130561Sobrien  {9,7,imr,S,0,0},	/* add.w */
605130561Sobrien  {10,6,imr,S,0,0},	/* sub.h */
606130561Sobrien  {10,7,imr,S,0,0},	/* sub.w */
607130561Sobrien  {3,6,imr,S,0,0},	/* mul.h */
608130561Sobrien  {3,7,imr,S,0,0},	/* mul.w */
609130561Sobrien  {4,6,imr,S,0,0},	/* div.h */
610130561Sobrien  {4,7,imr,S,0,0},	/* div.w */
611130561Sobrien  {9,3,imr,S,0,0},	/* add.s */
612130561Sobrien  {10,3,imr,S,0,0},	/* sub.s */
613130561Sobrien  {3,3,imr,S,0,0},	/* mul.s */
614130561Sobrien  {4,3,imr,S,0,0},	/* div.s */
615130561Sobrien  {40,3,imr,S,0,0},	/* le.s */
616130561Sobrien  {41,3,imr,S,0,0},	/* lt.s */
617130561Sobrien  {37,6,imr,S,0,0},	/* eq.h */
618130561Sobrien  {37,7,imr,S,0,0},	/* eq.w */
619130561Sobrien  {38,6,imr,S,0,0},	/* leu.h */
620130561Sobrien  {38,7,imr,S,0,0},	/* leu.w */
621130561Sobrien  {39,6,imr,S,0,0},	/* ltu.h */
622130561Sobrien  {39,7,imr,S,0,0},	/* ltu.w */
623130561Sobrien  {40,6,imr,S,0,0},	/* le.h */
624130561Sobrien  {40,7,imr,S,0,0},	/* le.w */
625130561Sobrien  {41,6,imr,S,0,0},	/* lt.h */
626130561Sobrien  {41,7,imr,S,0,0},	/* lt.w */
627130561Sobrien};
628130561Sobrien
629130561Sobrienconst struct formstr e0_format0[] = {
630130561Sobrien  {10,3,rrr,S,V,V},	/* sub.s */
631130561Sobrien  {10,4,rrr,S,V,V},	/* sub.d */
632130561Sobrien  {4,3,rrr,S,V,V},	/* div.s */
633130561Sobrien  {4,4,rrr,S,V,V},	/* div.d */
634130561Sobrien  {10,11,rrr,S,V,V},	/* sub.s.f */
635130561Sobrien  {10,12,rrr,S,V,V},	/* sub.d.f */
636130561Sobrien  {4,11,rrr,S,V,V},	/* div.s.f */
637130561Sobrien  {4,12,rrr,S,V,V},	/* div.d.f */
638130561Sobrien  {3,11,rrr,V,V,V},	/* mul.s.f */
639130561Sobrien  {3,12,rrr,V,V,V},	/* mul.d.f */
640130561Sobrien  {4,11,rrr,V,V,V},	/* div.s.f */
641130561Sobrien  {4,12,rrr,V,V,V},	/* div.d.f */
642130561Sobrien  {3,11,rrr,V,S,V},	/* mul.s.f */
643130561Sobrien  {3,12,rrr,V,S,V},	/* mul.d.f */
644130561Sobrien  {4,11,rrr,V,S,V},	/* div.s.f */
645130561Sobrien  {4,12,rrr,V,S,V},	/* div.d.f */
646130561Sobrien  {5,2,rrr,V,V,V},	/* and.f */
647130561Sobrien  {6,2,rrr,V,V,V},	/* or.f */
648130561Sobrien  {7,2,rrr,V,V,V},	/* xor.f */
649130561Sobrien  {8,2,rrr,V,V,V},	/* shf.f */
650130561Sobrien  {5,2,rrr,V,S,V},	/* and.f */
651130561Sobrien  {6,2,rrr,V,S,V},	/* or.f */
652130561Sobrien  {7,2,rrr,V,S,V},	/* xor.f */
653130561Sobrien  {8,2,rrr,V,S,V},	/* shf.f */
654130561Sobrien  {9,11,rrr,V,V,V},	/* add.s.f */
655130561Sobrien  {9,12,rrr,V,V,V},	/* add.d.f */
656130561Sobrien  {10,11,rrr,V,V,V},	/* sub.s.f */
657130561Sobrien  {10,12,rrr,V,V,V},	/* sub.d.f */
658130561Sobrien  {9,11,rrr,V,S,V},	/* add.s.f */
659130561Sobrien  {9,12,rrr,V,S,V},	/* add.d.f */
660130561Sobrien  {10,11,rrr,V,S,V},	/* sub.s.f */
661130561Sobrien  {10,12,rrr,V,S,V},	/* sub.d.f */
662130561Sobrien  {9,13,rrr,V,V,V},	/* add.b.f */
663130561Sobrien  {9,14,rrr,V,V,V},	/* add.h.f */
664130561Sobrien  {9,15,rrr,V,V,V},	/* add.w.f */
665130561Sobrien  {9,16,rrr,V,V,V},	/* add.l.f */
666130561Sobrien  {9,13,rrr,V,S,V},	/* add.b.f */
667130561Sobrien  {9,14,rrr,V,S,V},	/* add.h.f */
668130561Sobrien  {9,15,rrr,V,S,V},	/* add.w.f */
669130561Sobrien  {9,16,rrr,V,S,V},	/* add.l.f */
670130561Sobrien  {10,13,rrr,V,V,V},	/* sub.b.f */
671130561Sobrien  {10,14,rrr,V,V,V},	/* sub.h.f */
672130561Sobrien  {10,15,rrr,V,V,V},	/* sub.w.f */
673130561Sobrien  {10,16,rrr,V,V,V},	/* sub.l.f */
674130561Sobrien  {10,13,rrr,V,S,V},	/* sub.b.f */
675130561Sobrien  {10,14,rrr,V,S,V},	/* sub.h.f */
676130561Sobrien  {10,15,rrr,V,S,V},	/* sub.w.f */
677130561Sobrien  {10,16,rrr,V,S,V},	/* sub.l.f */
678130561Sobrien  {3,13,rrr,V,V,V},	/* mul.b.f */
679130561Sobrien  {3,14,rrr,V,V,V},	/* mul.h.f */
680130561Sobrien  {3,15,rrr,V,V,V},	/* mul.w.f */
681130561Sobrien  {3,16,rrr,V,V,V},	/* mul.l.f */
682130561Sobrien  {3,13,rrr,V,S,V},	/* mul.b.f */
683130561Sobrien  {3,14,rrr,V,S,V},	/* mul.h.f */
684130561Sobrien  {3,15,rrr,V,S,V},	/* mul.w.f */
685130561Sobrien  {3,16,rrr,V,S,V},	/* mul.l.f */
686130561Sobrien  {4,13,rrr,V,V,V},	/* div.b.f */
687130561Sobrien  {4,14,rrr,V,V,V},	/* div.h.f */
688130561Sobrien  {4,15,rrr,V,V,V},	/* div.w.f */
689130561Sobrien  {4,16,rrr,V,V,V},	/* div.l.f */
690130561Sobrien  {4,13,rrr,V,S,V},	/* div.b.f */
691130561Sobrien  {4,14,rrr,V,S,V},	/* div.h.f */
692130561Sobrien  {4,15,rrr,V,S,V},	/* div.w.f */
693130561Sobrien  {4,16,rrr,V,S,V},	/* div.l.f */
694130561Sobrien};
695130561Sobrien
696130561Sobrienconst struct formstr e0_format1[] = {
697130561Sobrien  {0,0,0,0,0,0},
698130561Sobrien  {94,0,a3,0,0,0},	/* tst */
699130561Sobrien  {95,0,a3,0,0,0},	/* lck */
700130561Sobrien  {96,0,a3,0,0,0},	/* ulk */
701130561Sobrien  {17,0,a1r,S,0,0},	/* ldea */
702130561Sobrien  {97,0,a1r,A,0,0},	/* spawn */
703130561Sobrien  {98,0,a1r,A,0,0},	/* ldcmr */
704130561Sobrien  {99,0,a2r,A,0,0},	/* stcmr */
705130561Sobrien  {100,0,a1r,A,0,0},	/* popr */
706130561Sobrien  {101,0,a2r,A,0,0},	/* pshr */
707130561Sobrien  {102,7,a1r,A,0,0},	/* rcvr.w */
708130561Sobrien  {103,7,a2r,A,0,0},	/* matm.w */
709130561Sobrien  {104,7,a2r,A,0,0},	/* sndr.w */
710130561Sobrien  {104,8,a2r,S,0,0},	/* sndr.l */
711130561Sobrien  {102,8,a1r,S,0,0},	/* rcvr.l */
712130561Sobrien  {103,8,a2r,S,0,0},	/* matm.l */
713130561Sobrien  {0,0,0,0,0,0},
714130561Sobrien  {0,0,0,0,0,0},
715130561Sobrien  {0,0,0,0,0,0},
716130561Sobrien  {0,0,0,0,0,0},
717130561Sobrien  {0,0,0,0,0,0},
718130561Sobrien  {0,0,0,0,0,0},
719130561Sobrien  {0,0,0,0,0,0},
720130561Sobrien  {0,0,0,0,0,0},
721130561Sobrien  {0,0,0,0,0,0},
722130561Sobrien  {0,0,0,0,0,0},
723130561Sobrien  {0,0,0,0,0,0},
724130561Sobrien  {0,0,0,0,0,0},
725130561Sobrien  {0,0,0,0,0,0},
726130561Sobrien  {0,0,0,0,0,0},
727130561Sobrien  {0,0,0,0,0,0},
728130561Sobrien  {0,0,0,0,0,0},
729130561Sobrien  {105,7,a2r,A,0,0},	/* putr.w */
730130561Sobrien  {105,8,a2r,S,0,0},	/* putr.l */
731130561Sobrien  {106,7,a1r,A,0,0},	/* getr.w */
732130561Sobrien  {106,8,a1r,S,0,0},	/* getr.l */
733130561Sobrien  {26,13,a2r,S,0,0},	/* ste.b.f */
734130561Sobrien  {26,14,a2r,S,0,0},	/* ste.h.f */
735130561Sobrien  {26,15,a2r,S,0,0},	/* ste.w.f */
736130561Sobrien  {26,16,a2r,S,0,0},	/* ste.l.f */
737130561Sobrien  {107,7,a2r,A,0,0},	/* matr.w */
738130561Sobrien  {108,7,a2r,A,0,0},	/* mat.w */
739130561Sobrien  {109,7,a1r,A,0,0},	/* get.w */
740130561Sobrien  {110,7,a1r,A,0,0},	/* rcv.w */
741130561Sobrien  {0,0,0,0,0,0},
742130561Sobrien  {111,7,a1r,A,0,0},	/* inc.w */
743130561Sobrien  {112,7,a2r,A,0,0},	/* put.w */
744130561Sobrien  {113,7,a2r,A,0,0},	/* snd.w */
745130561Sobrien  {107,8,a2r,S,0,0},	/* matr.l */
746130561Sobrien  {108,8,a2r,S,0,0},	/* mat.l */
747130561Sobrien  {109,8,a1r,S,0,0},	/* get.l */
748130561Sobrien  {110,8,a1r,S,0,0},	/* rcv.l */
749130561Sobrien  {0,0,0,0,0,0},
750130561Sobrien  {111,8,a1r,S,0,0},	/* inc.l */
751130561Sobrien  {112,8,a2r,S,0,0},	/* put.l */
752130561Sobrien  {113,8,a2r,S,0,0},	/* snd.l */
753130561Sobrien  {18,13,a1r,V,0,0},	/* ld.b.f */
754130561Sobrien  {18,14,a1r,V,0,0},	/* ld.h.f */
755130561Sobrien  {18,15,a1r,V,0,0},	/* ld.w.f */
756130561Sobrien  {18,16,a1r,V,0,0},	/* ld.l.f */
757130561Sobrien  {21,13,a2r,V,0,0},	/* st.b.f */
758130561Sobrien  {21,14,a2r,V,0,0},	/* st.h.f */
759130561Sobrien  {21,15,a2r,V,0,0},	/* st.w.f */
760130561Sobrien  {21,16,a2r,V,0,0},	/* st.l.f */
761130561Sobrien};
762130561Sobrien
763130561Sobrienconst struct formstr e0_format2[] = {
764130561Sobrien  {28,5,rr,V,V,0},	/* cvtw.b */
765130561Sobrien  {28,6,rr,V,V,0},	/* cvtw.h */
766130561Sobrien  {29,7,rr,V,V,0},	/* cvtb.w */
767130561Sobrien  {30,7,rr,V,V,0},	/* cvth.w */
768130561Sobrien  {28,13,rr,V,V,0},	/* cvtw.b.f */
769130561Sobrien  {28,14,rr,V,V,0},	/* cvtw.h.f */
770130561Sobrien  {29,15,rr,V,V,0},	/* cvtb.w.f */
771130561Sobrien  {30,15,rr,V,V,0},	/* cvth.w.f */
772130561Sobrien  {31,8,rr,V,V,0},	/* cvts.l */
773130561Sobrien  {32,7,rr,V,V,0},	/* cvtd.w */
774130561Sobrien  {33,3,rr,V,V,0},	/* cvtl.s */
775130561Sobrien  {28,4,rr,V,V,0},	/* cvtw.d */
776130561Sobrien  {31,16,rr,V,V,0},	/* cvts.l.f */
777130561Sobrien  {32,15,rr,V,V,0},	/* cvtd.w.f */
778130561Sobrien  {33,11,rr,V,V,0},	/* cvtl.s.f */
779130561Sobrien  {28,12,rr,V,V,0},	/* cvtw.d.f */
780130561Sobrien  {114,0,rr,S,S,0},	/* enal */
781130561Sobrien  {8,7,rr,S,S,0},	/* shf.w */
782130561Sobrien  {115,0,rr,S,S,0},	/* enag */
783130561Sobrien  {0,0,0,0,0,0},
784130561Sobrien  {28,4,rr,S,S,0},	/* cvtw.d */
785130561Sobrien  {32,7,rr,S,S,0},	/* cvtd.w */
786130561Sobrien  {0,0,0,0,0,0},
787130561Sobrien  {0,0,0,0,0,0},
788130561Sobrien  {0,0,0,0,0,0},
789130561Sobrien  {0,0,0,0,0,0},
790130561Sobrien  {0,0,0,0,0,0},
791130561Sobrien  {0,0,0,0,0,0},
792130561Sobrien  {116,3,rr,S,S,0},	/* frint.s */
793130561Sobrien  {116,4,rr,S,S,0},	/* frint.d */
794130561Sobrien  {0,0,0,0,0,0},
795130561Sobrien  {0,0,0,0,0,0},
796130561Sobrien  {0,0,0,0,0,0},
797130561Sobrien  {0,0,0,0,0,0},
798130561Sobrien  {0,0,0,0,0,0},
799130561Sobrien  {0,0,0,0,0,0},
800130561Sobrien  {0,0,0,0,0,0},
801130561Sobrien  {0,0,0,0,0,0},
802130561Sobrien  {0,0,0,0,0,0},
803130561Sobrien  {0,0,0,0,0,0},
804130561Sobrien  {0,0,0,0,0,0},
805130561Sobrien  {0,0,0,0,0,0},
806130561Sobrien  {0,0,0,0,0,0},
807130561Sobrien  {0,0,0,0,0,0},
808130561Sobrien  {0,0,0,0,0,0},
809130561Sobrien  {0,0,0,0,0,0},
810130561Sobrien  {0,0,0,0,0,0},
811130561Sobrien  {0,0,0,0,0,0},
812130561Sobrien  {0,0,0,0,0,0},
813130561Sobrien  {0,0,0,0,0,0},
814130561Sobrien  {0,0,0,0,0,0},
815130561Sobrien  {0,0,0,0,0,0},
816130561Sobrien  {0,0,0,0,0,0},
817130561Sobrien  {0,0,0,0,0,0},
818130561Sobrien  {0,0,0,0,0,0},
819130561Sobrien  {0,0,0,0,0,0},
820130561Sobrien  {0,0,0,0,0,0},
821130561Sobrien  {0,0,0,0,0,0},
822130561Sobrien  {0,0,0,0,0,0},
823130561Sobrien  {0,0,0,0,0,0},
824130561Sobrien  {0,0,0,0,0,0},
825130561Sobrien  {0,0,0,0,0,0},
826130561Sobrien  {0,0,0,0,0,0},
827130561Sobrien  {0,0,0,0,0,0},
828130561Sobrien  {0,0,0,0,0,0},
829130561Sobrien  {0,0,0,0,0,0},
830130561Sobrien  {0,0,0,0,0,0},
831130561Sobrien  {0,0,0,0,0,0},
832130561Sobrien  {0,0,0,0,0,0},
833130561Sobrien  {0,0,0,0,0,0},
834130561Sobrien  {0,0,0,0,0,0},
835130561Sobrien  {0,0,0,0,0,0},
836130561Sobrien  {0,0,0,0,0,0},
837130561Sobrien  {0,0,0,0,0,0},
838130561Sobrien  {0,0,0,0,0,0},
839130561Sobrien  {0,0,0,0,0,0},
840130561Sobrien  {0,0,0,0,0,0},
841130561Sobrien  {0,0,0,0,0,0},
842130561Sobrien  {0,0,0,0,0,0},
843130561Sobrien  {0,0,0,0,0,0},
844130561Sobrien  {0,0,0,0,0,0},
845130561Sobrien  {0,0,0,0,0,0},
846130561Sobrien  {0,0,0,0,0,0},
847130561Sobrien  {0,0,0,0,0,0},
848130561Sobrien  {0,0,0,0,0,0},
849130561Sobrien  {0,0,0,0,0,0},
850130561Sobrien  {0,0,0,0,0,0},
851130561Sobrien  {0,0,0,0,0,0},
852130561Sobrien  {0,0,0,0,0,0},
853130561Sobrien  {0,0,0,0,0,0},
854130561Sobrien  {0,0,0,0,0,0},
855130561Sobrien  {0,0,0,0,0,0},
856130561Sobrien  {0,0,0,0,0,0},
857130561Sobrien  {0,0,0,0,0,0},
858130561Sobrien  {0,0,0,0,0,0},
859130561Sobrien  {0,0,0,0,0,0},
860130561Sobrien  {0,0,0,0,0,0},
861130561Sobrien  {0,0,0,0,0,0},
862130561Sobrien  {116,3,rr,V,V,0},	/* frint.s */
863130561Sobrien  {116,4,rr,V,V,0},	/* frint.d */
864130561Sobrien  {0,0,0,0,0,0},
865130561Sobrien  {0,0,0,0,0,0},
866130561Sobrien  {116,11,rr,V,V,0},	/* frint.s.f */
867130561Sobrien  {116,12,rr,V,V,0},	/* frint.d.f */
868130561Sobrien  {0,0,0,0,0,0},
869130561Sobrien  {0,0,0,0,0,0},
870130561Sobrien  {0,0,0,0,0,0},
871130561Sobrien  {0,0,0,0,0,0},
872130561Sobrien  {0,0,0,0,0,0},
873130561Sobrien  {0,0,0,0,0,0},
874130561Sobrien  {0,0,0,0,0,0},
875130561Sobrien  {0,0,0,0,0,0},
876130561Sobrien  {0,0,0,0,0,0},
877130561Sobrien  {0,0,0,0,0,0},
878130561Sobrien  {0,0,0,0,0,0},
879130561Sobrien  {0,0,0,0,0,0},
880130561Sobrien  {81,3,rr,V,V,0},	/* sqrt.s */
881130561Sobrien  {81,4,rr,V,V,0},	/* sqrt.d */
882130561Sobrien  {0,0,0,0,0,0},
883130561Sobrien  {0,0,0,0,0,0},
884130561Sobrien  {0,0,0,0,0,0},
885130561Sobrien  {0,0,0,0,0,0},
886130561Sobrien  {0,0,0,0,0,0},
887130561Sobrien  {0,0,0,0,0,0},
888130561Sobrien  {81,11,rr,V,V,0},	/* sqrt.s.f */
889130561Sobrien  {81,12,rr,V,V,0},	/* sqrt.d.f */
890130561Sobrien  {0,0,0,0,0,0},
891130561Sobrien  {0,0,0,0,0,0},
892130561Sobrien};
893130561Sobrien
894130561Sobrienconst struct formstr e0_format3[] = {
895130561Sobrien  {32,11,rr,V,V,0},	/* cvtd.s.f */
896130561Sobrien  {31,12,rr,V,V,0},	/* cvts.d.f */
897130561Sobrien  {33,12,rr,V,V,0},	/* cvtl.d.f */
898130561Sobrien  {32,16,rr,V,V,0},	/* cvtd.l.f */
899130561Sobrien  {0,0,0,0,0,0},
900130561Sobrien  {0,0,0,0,0,0},
901130561Sobrien  {0,0,0,0,0,0},
902130561Sobrien  {0,0,0,0,0,0},
903130561Sobrien  {36,2,rr,V,V,0},	/* tzc.f */
904130561Sobrien  {44,2,rr,V,V,0},	/* lop.f */
905130561Sobrien  {117,2,rr,V,V,0},	/* xpnd.f */
906130561Sobrien  {42,2,rr,V,V,0},	/* not.f */
907130561Sobrien  {8,2,rr,S,V,0},	/* shf.f */
908130561Sobrien  {35,17,rr,V,V,0},	/* plc.t.f */
909130561Sobrien  {0,0,0,0,0,0},
910130561Sobrien  {0,0,0,0,0,0},
911130561Sobrien  {37,11,rr,V,V,0},	/* eq.s.f */
912130561Sobrien  {37,12,rr,V,V,0},	/* eq.d.f */
913130561Sobrien  {43,11,rr,V,V,0},	/* neg.s.f */
914130561Sobrien  {43,12,rr,V,V,0},	/* neg.d.f */
915130561Sobrien  {37,11,rr,S,V,0},	/* eq.s.f */
916130561Sobrien  {37,12,rr,S,V,0},	/* eq.d.f */
917130561Sobrien  {0,0,0,0,0,0},
918130561Sobrien  {0,0,0,0,0,0},
919130561Sobrien  {40,11,rr,V,V,0},	/* le.s.f */
920130561Sobrien  {40,12,rr,V,V,0},	/* le.d.f */
921130561Sobrien  {41,11,rr,V,V,0},	/* lt.s.f */
922130561Sobrien  {41,12,rr,V,V,0},	/* lt.d.f */
923130561Sobrien  {40,11,rr,S,V,0},	/* le.s.f */
924130561Sobrien  {40,12,rr,S,V,0},	/* le.d.f */
925130561Sobrien  {41,11,rr,S,V,0},	/* lt.s.f */
926130561Sobrien  {41,12,rr,S,V,0},	/* lt.d.f */
927130561Sobrien  {37,13,rr,V,V,0},	/* eq.b.f */
928130561Sobrien  {37,14,rr,V,V,0},	/* eq.h.f */
929130561Sobrien  {37,15,rr,V,V,0},	/* eq.w.f */
930130561Sobrien  {37,16,rr,V,V,0},	/* eq.l.f */
931130561Sobrien  {37,13,rr,S,V,0},	/* eq.b.f */
932130561Sobrien  {37,14,rr,S,V,0},	/* eq.h.f */
933130561Sobrien  {37,15,rr,S,V,0},	/* eq.w.f */
934130561Sobrien  {37,16,rr,S,V,0},	/* eq.l.f */
935130561Sobrien  {40,13,rr,V,V,0},	/* le.b.f */
936130561Sobrien  {40,14,rr,V,V,0},	/* le.h.f */
937130561Sobrien  {40,15,rr,V,V,0},	/* le.w.f */
938130561Sobrien  {40,16,rr,V,V,0},	/* le.l.f */
939130561Sobrien  {40,13,rr,S,V,0},	/* le.b.f */
940130561Sobrien  {40,14,rr,S,V,0},	/* le.h.f */
941130561Sobrien  {40,15,rr,S,V,0},	/* le.w.f */
942130561Sobrien  {40,16,rr,S,V,0},	/* le.l.f */
943130561Sobrien  {41,13,rr,V,V,0},	/* lt.b.f */
944130561Sobrien  {41,14,rr,V,V,0},	/* lt.h.f */
945130561Sobrien  {41,15,rr,V,V,0},	/* lt.w.f */
946130561Sobrien  {41,16,rr,V,V,0},	/* lt.l.f */
947130561Sobrien  {41,13,rr,S,V,0},	/* lt.b.f */
948130561Sobrien  {41,14,rr,S,V,0},	/* lt.h.f */
949130561Sobrien  {41,15,rr,S,V,0},	/* lt.w.f */
950130561Sobrien  {41,16,rr,S,V,0},	/* lt.l.f */
951130561Sobrien  {43,13,rr,V,V,0},	/* neg.b.f */
952130561Sobrien  {43,14,rr,V,V,0},	/* neg.h.f */
953130561Sobrien  {43,15,rr,V,V,0},	/* neg.w.f */
954130561Sobrien  {43,16,rr,V,V,0},	/* neg.l.f */
955130561Sobrien  {0,0,0,0,0,0},
956130561Sobrien  {0,0,0,0,0,0},
957130561Sobrien  {0,0,0,0,0,0},
958130561Sobrien  {0,0,0,0,0,0},
959130561Sobrien};
960130561Sobrien
961130561Sobrienconst struct formstr e0_format4[] = {
962130561Sobrien  {0,0,0,0,0,0},
963130561Sobrien  {0,0,0,0,0,0},
964130561Sobrien  {0,0,0,0,0,0},
965130561Sobrien  {0,0,0,0,0,0},
966130561Sobrien  {0,0,0,0,0,0},
967130561Sobrien  {0,0,0,0,0,0},
968130561Sobrien  {0,0,0,0,0,0},
969130561Sobrien  {0,0,0,0,0,0},
970130561Sobrien};
971130561Sobrien
972130561Sobrienconst struct formstr e0_format5[] = {
973130561Sobrien  {51,13,rr,V,V,0},	/* ldvi.b.f */
974130561Sobrien  {51,14,rr,V,V,0},	/* ldvi.h.f */
975130561Sobrien  {51,15,rr,V,V,0},	/* ldvi.w.f */
976130561Sobrien  {51,16,rr,V,V,0},	/* ldvi.l.f */
977130561Sobrien  {28,11,rr,V,V,0},	/* cvtw.s.f */
978130561Sobrien  {31,15,rr,V,V,0},	/* cvts.w.f */
979130561Sobrien  {28,16,rr,V,V,0},	/* cvtw.l.f */
980130561Sobrien  {33,15,rr,V,V,0},	/* cvtl.w.f */
981130561Sobrien  {52,13,rxr,V,V,0},	/* stvi.b.f */
982130561Sobrien  {52,14,rxr,V,V,0},	/* stvi.h.f */
983130561Sobrien  {52,15,rxr,V,V,0},	/* stvi.w.f */
984130561Sobrien  {52,16,rxr,V,V,0},	/* stvi.l.f */
985130561Sobrien  {52,13,rxr,S,V,0},	/* stvi.b.f */
986130561Sobrien  {52,14,rxr,S,V,0},	/* stvi.h.f */
987130561Sobrien  {52,15,rxr,S,V,0},	/* stvi.w.f */
988130561Sobrien  {52,16,rxr,S,V,0},	/* stvi.l.f */
989130561Sobrien};
990130561Sobrien
991130561Sobrienconst struct formstr e0_format6[] = {
992130561Sobrien  {0,0,rxl,S,CIR,0},	/* mov */
993130561Sobrien  {0,0,lr,CIR,S,0},	/* mov */
994130561Sobrien  {0,0,lr,TOC,S,0},	/* mov */
995130561Sobrien  {0,0,lr,CPUID,S,0},	/* mov */
996130561Sobrien  {0,0,rxl,S,TTR,0},	/* mov */
997130561Sobrien  {0,0,lr,TTR,S,0},	/* mov */
998130561Sobrien  {118,0,nops,0,0,0},	/* ctrsl */
999130561Sobrien  {119,0,nops,0,0,0},	/* ctrsg */
1000130561Sobrien  {0,0,rxl,S,VMU,0},	/* mov */
1001130561Sobrien  {0,0,lr,VMU,S,0},	/* mov */
1002130561Sobrien  {0,0,rxl,S,VML,0},	/* mov */
1003130561Sobrien  {0,0,lr,VML,S,0},	/* mov */
1004130561Sobrien  {0,0,rxl,S,ICR,0},	/* mov */
1005130561Sobrien  {0,0,lr,ICR,S,0},	/* mov */
1006130561Sobrien  {0,0,rxl,S,TCPU,0},	/* mov */
1007130561Sobrien  {0,0,lr,TCPU,S,0},	/* mov */
1008130561Sobrien  {0,0,0,0,0,0},
1009130561Sobrien  {0,0,0,0,0,0},
1010130561Sobrien  {0,0,0,0,0,0},
1011130561Sobrien  {0,0,0,0,0,0},
1012130561Sobrien  {120,0,nops,0,0,0},	/* stop */
1013130561Sobrien  {0,0,0,0,0,0},
1014130561Sobrien  {0,0,rxl,S,TID,0},	/* mov */
1015130561Sobrien  {0,0,lr,TID,S,0},	/* mov */
1016130561Sobrien  {0,0,0,0,0,0},
1017130561Sobrien  {0,0,0,0,0,0},
1018130561Sobrien  {0,0,0,0,0,0},
1019130561Sobrien  {0,0,0,0,0,0},
1020130561Sobrien  {0,0,0,0,0,0},
1021130561Sobrien  {0,0,0,0,0,0},
1022130561Sobrien  {0,0,0,0,0,0},
1023130561Sobrien  {0,0,0,0,0,0},
1024130561Sobrien  {0,0,0,0,0,0},
1025130561Sobrien  {0,0,0,0,0,0},
1026130561Sobrien  {0,0,0,0,0,0},
1027130561Sobrien  {0,0,0,0,0,0},
1028130561Sobrien  {0,0,0,0,0,0},
1029130561Sobrien  {0,0,0,0,0,0},
1030130561Sobrien  {0,0,0,0,0,0},
1031130561Sobrien  {0,0,0,0,0,0},
1032130561Sobrien  {0,0,0,0,0,0},
1033130561Sobrien  {0,0,0,0,0,0},
1034130561Sobrien  {0,0,0,0,0,0},
1035130561Sobrien  {0,0,0,0,0,0},
1036130561Sobrien  {0,0,0,0,0,0},
1037130561Sobrien  {0,0,0,0,0,0},
1038130561Sobrien  {0,0,0,0,0,0},
1039130561Sobrien  {0,0,0,0,0,0},
1040130561Sobrien  {0,0,0,0,0,0},
1041130561Sobrien  {0,0,0,0,0,0},
1042130561Sobrien  {0,0,0,0,0,0},
1043130561Sobrien  {0,0,0,0,0,0},
1044130561Sobrien  {0,0,0,0,0,0},
1045130561Sobrien  {0,0,0,0,0,0},
1046130561Sobrien  {0,0,0,0,0,0},
1047130561Sobrien  {0,0,0,0,0,0},
1048130561Sobrien  {0,0,0,0,0,0},
1049130561Sobrien  {0,0,0,0,0,0},
1050130561Sobrien  {0,0,0,0,0,0},
1051130561Sobrien  {0,0,0,0,0,0},
1052130561Sobrien  {0,0,0,0,0,0},
1053130561Sobrien  {0,0,0,0,0,0},
1054130561Sobrien  {0,0,0,0,0,0},
1055130561Sobrien  {0,0,0,0,0,0},
1056130561Sobrien};
1057130561Sobrien
1058130561Sobrienconst struct formstr e0_format7[] = {
1059130561Sobrien  {84,13,r,V,0,0},	/* sum.b.f */
1060130561Sobrien  {84,14,r,V,0,0},	/* sum.h.f */
1061130561Sobrien  {84,15,r,V,0,0},	/* sum.w.f */
1062130561Sobrien  {84,16,r,V,0,0},	/* sum.l.f */
1063130561Sobrien  {85,2,r,V,0,0},	/* all.f */
1064130561Sobrien  {86,2,r,V,0,0},	/* any.f */
1065130561Sobrien  {87,2,r,V,0,0},	/* parity.f */
1066130561Sobrien  {0,0,0,0,0,0},
1067130561Sobrien  {88,13,r,V,0,0},	/* max.b.f */
1068130561Sobrien  {88,14,r,V,0,0},	/* max.h.f */
1069130561Sobrien  {88,15,r,V,0,0},	/* max.w.f */
1070130561Sobrien  {88,16,r,V,0,0},	/* max.l.f */
1071130561Sobrien  {89,13,r,V,0,0},	/* min.b.f */
1072130561Sobrien  {89,14,r,V,0,0},	/* min.h.f */
1073130561Sobrien  {89,15,r,V,0,0},	/* min.w.f */
1074130561Sobrien  {89,16,r,V,0,0},	/* min.l.f */
1075130561Sobrien  {84,11,r,V,0,0},	/* sum.s.f */
1076130561Sobrien  {84,12,r,V,0,0},	/* sum.d.f */
1077130561Sobrien  {90,11,r,V,0,0},	/* prod.s.f */
1078130561Sobrien  {90,12,r,V,0,0},	/* prod.d.f */
1079130561Sobrien  {88,11,r,V,0,0},	/* max.s.f */
1080130561Sobrien  {88,12,r,V,0,0},	/* max.d.f */
1081130561Sobrien  {89,11,r,V,0,0},	/* min.s.f */
1082130561Sobrien  {89,12,r,V,0,0},	/* min.d.f */
1083130561Sobrien  {90,13,r,V,0,0},	/* prod.b.f */
1084130561Sobrien  {90,14,r,V,0,0},	/* prod.h.f */
1085130561Sobrien  {90,15,r,V,0,0},	/* prod.w.f */
1086130561Sobrien  {90,16,r,V,0,0},	/* prod.l.f */
1087130561Sobrien  {0,0,0,0,0,0},
1088130561Sobrien  {0,0,0,0,0,0},
1089130561Sobrien  {0,0,0,0,0,0},
1090130561Sobrien  {0,0,0,0,0,0},
1091130561Sobrien};
1092130561Sobrien
1093130561Sobrienconst struct formstr e1_format0[] = {
1094130561Sobrien  {0,0,0,0,0,0},
1095130561Sobrien  {0,0,0,0,0,0},
1096130561Sobrien  {0,0,0,0,0,0},
1097130561Sobrien  {0,0,0,0,0,0},
1098130561Sobrien  {10,18,rrr,S,V,V},	/* sub.s.t */
1099130561Sobrien  {10,19,rrr,S,V,V},	/* sub.d.t */
1100130561Sobrien  {4,18,rrr,S,V,V},	/* div.s.t */
1101130561Sobrien  {4,19,rrr,S,V,V},	/* div.d.t */
1102130561Sobrien  {3,18,rrr,V,V,V},	/* mul.s.t */
1103130561Sobrien  {3,19,rrr,V,V,V},	/* mul.d.t */
1104130561Sobrien  {4,18,rrr,V,V,V},	/* div.s.t */
1105130561Sobrien  {4,19,rrr,V,V,V},	/* div.d.t */
1106130561Sobrien  {3,18,rrr,V,S,V},	/* mul.s.t */
1107130561Sobrien  {3,19,rrr,V,S,V},	/* mul.d.t */
1108130561Sobrien  {4,18,rrr,V,S,V},	/* div.s.t */
1109130561Sobrien  {4,19,rrr,V,S,V},	/* div.d.t */
1110130561Sobrien  {5,1,rrr,V,V,V},	/* and.t */
1111130561Sobrien  {6,1,rrr,V,V,V},	/* or.t */
1112130561Sobrien  {7,1,rrr,V,V,V},	/* xor.t */
1113130561Sobrien  {8,1,rrr,V,V,V},	/* shf.t */
1114130561Sobrien  {5,1,rrr,V,S,V},	/* and.t */
1115130561Sobrien  {6,1,rrr,V,S,V},	/* or.t */
1116130561Sobrien  {7,1,rrr,V,S,V},	/* xor.t */
1117130561Sobrien  {8,1,rrr,V,S,V},	/* shf.t */
1118130561Sobrien  {9,18,rrr,V,V,V},	/* add.s.t */
1119130561Sobrien  {9,19,rrr,V,V,V},	/* add.d.t */
1120130561Sobrien  {10,18,rrr,V,V,V},	/* sub.s.t */
1121130561Sobrien  {10,19,rrr,V,V,V},	/* sub.d.t */
1122130561Sobrien  {9,18,rrr,V,S,V},	/* add.s.t */
1123130561Sobrien  {9,19,rrr,V,S,V},	/* add.d.t */
1124130561Sobrien  {10,18,rrr,V,S,V},	/* sub.s.t */
1125130561Sobrien  {10,19,rrr,V,S,V},	/* sub.d.t */
1126130561Sobrien  {9,20,rrr,V,V,V},	/* add.b.t */
1127130561Sobrien  {9,21,rrr,V,V,V},	/* add.h.t */
1128130561Sobrien  {9,22,rrr,V,V,V},	/* add.w.t */
1129130561Sobrien  {9,23,rrr,V,V,V},	/* add.l.t */
1130130561Sobrien  {9,20,rrr,V,S,V},	/* add.b.t */
1131130561Sobrien  {9,21,rrr,V,S,V},	/* add.h.t */
1132130561Sobrien  {9,22,rrr,V,S,V},	/* add.w.t */
1133130561Sobrien  {9,23,rrr,V,S,V},	/* add.l.t */
1134130561Sobrien  {10,20,rrr,V,V,V},	/* sub.b.t */
1135130561Sobrien  {10,21,rrr,V,V,V},	/* sub.h.t */
1136130561Sobrien  {10,22,rrr,V,V,V},	/* sub.w.t */
1137130561Sobrien  {10,23,rrr,V,V,V},	/* sub.l.t */
1138130561Sobrien  {10,20,rrr,V,S,V},	/* sub.b.t */
1139130561Sobrien  {10,21,rrr,V,S,V},	/* sub.h.t */
1140130561Sobrien  {10,22,rrr,V,S,V},	/* sub.w.t */
1141130561Sobrien  {10,23,rrr,V,S,V},	/* sub.l.t */
1142130561Sobrien  {3,20,rrr,V,V,V},	/* mul.b.t */
1143130561Sobrien  {3,21,rrr,V,V,V},	/* mul.h.t */
1144130561Sobrien  {3,22,rrr,V,V,V},	/* mul.w.t */
1145130561Sobrien  {3,23,rrr,V,V,V},	/* mul.l.t */
1146130561Sobrien  {3,20,rrr,V,S,V},	/* mul.b.t */
1147130561Sobrien  {3,21,rrr,V,S,V},	/* mul.h.t */
1148130561Sobrien  {3,22,rrr,V,S,V},	/* mul.w.t */
1149130561Sobrien  {3,23,rrr,V,S,V},	/* mul.l.t */
1150130561Sobrien  {4,20,rrr,V,V,V},	/* div.b.t */
1151130561Sobrien  {4,21,rrr,V,V,V},	/* div.h.t */
1152130561Sobrien  {4,22,rrr,V,V,V},	/* div.w.t */
1153130561Sobrien  {4,23,rrr,V,V,V},	/* div.l.t */
1154130561Sobrien  {4,20,rrr,V,S,V},	/* div.b.t */
1155130561Sobrien  {4,21,rrr,V,S,V},	/* div.h.t */
1156130561Sobrien  {4,22,rrr,V,S,V},	/* div.w.t */
1157130561Sobrien  {4,23,rrr,V,S,V},	/* div.l.t */
1158130561Sobrien};
1159130561Sobrien
1160130561Sobrienconst struct formstr e1_format1[] = {
1161130561Sobrien  {0,0,0,0,0,0},
1162130561Sobrien  {0,0,0,0,0,0},
1163130561Sobrien  {0,0,0,0,0,0},
1164130561Sobrien  {0,0,0,0,0,0},
1165130561Sobrien  {0,0,0,0,0,0},
1166130561Sobrien  {0,0,0,0,0,0},
1167130561Sobrien  {0,0,0,0,0,0},
1168130561Sobrien  {0,0,0,0,0,0},
1169130561Sobrien  {0,0,0,0,0,0},
1170130561Sobrien  {0,0,0,0,0,0},
1171130561Sobrien  {0,0,0,0,0,0},
1172130561Sobrien  {0,0,0,0,0,0},
1173130561Sobrien  {0,0,0,0,0,0},
1174130561Sobrien  {0,0,0,0,0,0},
1175130561Sobrien  {0,0,0,0,0,0},
1176130561Sobrien  {0,0,0,0,0,0},
1177130561Sobrien  {0,0,0,0,0,0},
1178130561Sobrien  {0,0,0,0,0,0},
1179130561Sobrien  {0,0,0,0,0,0},
1180130561Sobrien  {0,0,0,0,0,0},
1181130561Sobrien  {0,0,0,0,0,0},
1182130561Sobrien  {0,0,0,0,0,0},
1183130561Sobrien  {0,0,0,0,0,0},
1184130561Sobrien  {0,0,0,0,0,0},
1185130561Sobrien  {0,0,0,0,0,0},
1186130561Sobrien  {0,0,0,0,0,0},
1187130561Sobrien  {0,0,0,0,0,0},
1188130561Sobrien  {0,0,0,0,0,0},
1189130561Sobrien  {0,0,0,0,0,0},
1190130561Sobrien  {0,0,0,0,0,0},
1191130561Sobrien  {0,0,0,0,0,0},
1192130561Sobrien  {0,0,0,0,0,0},
1193130561Sobrien  {0,0,0,0,0,0},
1194130561Sobrien  {0,0,0,0,0,0},
1195130561Sobrien  {0,0,0,0,0,0},
1196130561Sobrien  {0,0,0,0,0,0},
1197130561Sobrien  {26,20,a2r,S,0,0},	/* ste.b.t */
1198130561Sobrien  {26,21,a2r,S,0,0},	/* ste.h.t */
1199130561Sobrien  {26,22,a2r,S,0,0},	/* ste.w.t */
1200130561Sobrien  {26,23,a2r,S,0,0},	/* ste.l.t */
1201130561Sobrien  {0,0,0,0,0,0},
1202130561Sobrien  {0,0,0,0,0,0},
1203130561Sobrien  {0,0,0,0,0,0},
1204130561Sobrien  {0,0,0,0,0,0},
1205130561Sobrien  {0,0,0,0,0,0},
1206130561Sobrien  {0,0,0,0,0,0},
1207130561Sobrien  {0,0,0,0,0,0},
1208130561Sobrien  {0,0,0,0,0,0},
1209130561Sobrien  {0,0,0,0,0,0},
1210130561Sobrien  {0,0,0,0,0,0},
1211130561Sobrien  {0,0,0,0,0,0},
1212130561Sobrien  {0,0,0,0,0,0},
1213130561Sobrien  {0,0,0,0,0,0},
1214130561Sobrien  {0,0,0,0,0,0},
1215130561Sobrien  {0,0,0,0,0,0},
1216130561Sobrien  {0,0,0,0,0,0},
1217130561Sobrien  {18,20,a1r,V,0,0},	/* ld.b.t */
1218130561Sobrien  {18,21,a1r,V,0,0},	/* ld.h.t */
1219130561Sobrien  {18,22,a1r,V,0,0},	/* ld.w.t */
1220130561Sobrien  {18,23,a1r,V,0,0},	/* ld.l.t */
1221130561Sobrien  {21,20,a2r,V,0,0},	/* st.b.t */
1222130561Sobrien  {21,21,a2r,V,0,0},	/* st.h.t */
1223130561Sobrien  {21,22,a2r,V,0,0},	/* st.w.t */
1224130561Sobrien  {21,23,a2r,V,0,0},	/* st.l.t */
1225130561Sobrien};
1226130561Sobrien
1227130561Sobrienconst struct formstr e1_format2[] = {
1228130561Sobrien  {0,0,0,0,0,0},
1229130561Sobrien  {0,0,0,0,0,0},
1230130561Sobrien  {0,0,0,0,0,0},
1231130561Sobrien  {0,0,0,0,0,0},
1232130561Sobrien  {28,20,rr,V,V,0},	/* cvtw.b.t */
1233130561Sobrien  {28,21,rr,V,V,0},	/* cvtw.h.t */
1234130561Sobrien  {29,22,rr,V,V,0},	/* cvtb.w.t */
1235130561Sobrien  {30,22,rr,V,V,0},	/* cvth.w.t */
1236130561Sobrien  {0,0,0,0,0,0},
1237130561Sobrien  {0,0,0,0,0,0},
1238130561Sobrien  {0,0,0,0,0,0},
1239130561Sobrien  {0,0,0,0,0,0},
1240130561Sobrien  {31,23,rr,V,V,0},	/* cvts.l.t */
1241130561Sobrien  {32,22,rr,V,V,0},	/* cvtd.w.t */
1242130561Sobrien  {33,18,rr,V,V,0},	/* cvtl.s.t */
1243130561Sobrien  {28,19,rr,V,V,0},	/* cvtw.d.t */
1244130561Sobrien  {0,0,0,0,0,0},
1245130561Sobrien  {0,0,0,0,0,0},
1246130561Sobrien  {0,0,0,0,0,0},
1247130561Sobrien  {0,0,0,0,0,0},
1248130561Sobrien  {0,0,0,0,0,0},
1249130561Sobrien  {0,0,0,0,0,0},
1250130561Sobrien  {0,0,0,0,0,0},
1251130561Sobrien  {0,0,0,0,0,0},
1252130561Sobrien  {0,0,0,0,0,0},
1253130561Sobrien  {0,0,0,0,0,0},
1254130561Sobrien  {0,0,0,0,0,0},
1255130561Sobrien  {0,0,0,0,0,0},
1256130561Sobrien  {0,0,0,0,0,0},
1257130561Sobrien  {0,0,0,0,0,0},
1258130561Sobrien  {0,0,0,0,0,0},
1259130561Sobrien  {0,0,0,0,0,0},
1260130561Sobrien  {0,0,0,0,0,0},
1261130561Sobrien  {0,0,0,0,0,0},
1262130561Sobrien  {0,0,0,0,0,0},
1263130561Sobrien  {0,0,0,0,0,0},
1264130561Sobrien  {0,0,0,0,0,0},
1265130561Sobrien  {0,0,0,0,0,0},
1266130561Sobrien  {0,0,0,0,0,0},
1267130561Sobrien  {0,0,0,0,0,0},
1268130561Sobrien  {0,0,0,0,0,0},
1269130561Sobrien  {0,0,0,0,0,0},
1270130561Sobrien  {0,0,0,0,0,0},
1271130561Sobrien  {0,0,0,0,0,0},
1272130561Sobrien  {0,0,0,0,0,0},
1273130561Sobrien  {0,0,0,0,0,0},
1274130561Sobrien  {0,0,0,0,0,0},
1275130561Sobrien  {0,0,0,0,0,0},
1276130561Sobrien  {0,0,0,0,0,0},
1277130561Sobrien  {0,0,0,0,0,0},
1278130561Sobrien  {0,0,0,0,0,0},
1279130561Sobrien  {0,0,0,0,0,0},
1280130561Sobrien  {0,0,0,0,0,0},
1281130561Sobrien  {0,0,0,0,0,0},
1282130561Sobrien  {0,0,0,0,0,0},
1283130561Sobrien  {0,0,0,0,0,0},
1284130561Sobrien  {0,0,0,0,0,0},
1285130561Sobrien  {0,0,0,0,0,0},
1286130561Sobrien  {0,0,0,0,0,0},
1287130561Sobrien  {0,0,0,0,0,0},
1288130561Sobrien  {0,0,0,0,0,0},
1289130561Sobrien  {0,0,0,0,0,0},
1290130561Sobrien  {0,0,0,0,0,0},
1291130561Sobrien  {0,0,0,0,0,0},
1292130561Sobrien  {0,0,0,0,0,0},
1293130561Sobrien  {0,0,0,0,0,0},
1294130561Sobrien  {0,0,0,0,0,0},
1295130561Sobrien  {0,0,0,0,0,0},
1296130561Sobrien  {0,0,0,0,0,0},
1297130561Sobrien  {0,0,0,0,0,0},
1298130561Sobrien  {0,0,0,0,0,0},
1299130561Sobrien  {0,0,0,0,0,0},
1300130561Sobrien  {0,0,0,0,0,0},
1301130561Sobrien  {0,0,0,0,0,0},
1302130561Sobrien  {0,0,0,0,0,0},
1303130561Sobrien  {0,0,0,0,0,0},
1304130561Sobrien  {0,0,0,0,0,0},
1305130561Sobrien  {0,0,0,0,0,0},
1306130561Sobrien  {0,0,0,0,0,0},
1307130561Sobrien  {0,0,0,0,0,0},
1308130561Sobrien  {0,0,0,0,0,0},
1309130561Sobrien  {0,0,0,0,0,0},
1310130561Sobrien  {0,0,0,0,0,0},
1311130561Sobrien  {0,0,0,0,0,0},
1312130561Sobrien  {0,0,0,0,0,0},
1313130561Sobrien  {0,0,0,0,0,0},
1314130561Sobrien  {0,0,0,0,0,0},
1315130561Sobrien  {0,0,0,0,0,0},
1316130561Sobrien  {0,0,0,0,0,0},
1317130561Sobrien  {0,0,0,0,0,0},
1318130561Sobrien  {0,0,0,0,0,0},
1319130561Sobrien  {0,0,0,0,0,0},
1320130561Sobrien  {0,0,0,0,0,0},
1321130561Sobrien  {0,0,0,0,0,0},
1322130561Sobrien  {0,0,0,0,0,0},
1323130561Sobrien  {0,0,0,0,0,0},
1324130561Sobrien  {0,0,0,0,0,0},
1325130561Sobrien  {0,0,0,0,0,0},
1326130561Sobrien  {0,0,0,0,0,0},
1327130561Sobrien  {0,0,0,0,0,0},
1328130561Sobrien  {0,0,0,0,0,0},
1329130561Sobrien  {0,0,0,0,0,0},
1330130561Sobrien  {116,18,rr,V,V,0},	/* frint.s.t */
1331130561Sobrien  {116,19,rr,V,V,0},	/* frint.d.t */
1332130561Sobrien  {0,0,0,0,0,0},
1333130561Sobrien  {0,0,0,0,0,0},
1334130561Sobrien  {0,0,0,0,0,0},
1335130561Sobrien  {0,0,0,0,0,0},
1336130561Sobrien  {0,0,0,0,0,0},
1337130561Sobrien  {0,0,0,0,0,0},
1338130561Sobrien  {0,0,0,0,0,0},
1339130561Sobrien  {0,0,0,0,0,0},
1340130561Sobrien  {0,0,0,0,0,0},
1341130561Sobrien  {0,0,0,0,0,0},
1342130561Sobrien  {0,0,0,0,0,0},
1343130561Sobrien  {0,0,0,0,0,0},
1344130561Sobrien  {0,0,0,0,0,0},
1345130561Sobrien  {0,0,0,0,0,0},
1346130561Sobrien  {0,0,0,0,0,0},
1347130561Sobrien  {0,0,0,0,0,0},
1348130561Sobrien  {0,0,0,0,0,0},
1349130561Sobrien  {0,0,0,0,0,0},
1350130561Sobrien  {0,0,0,0,0,0},
1351130561Sobrien  {0,0,0,0,0,0},
1352130561Sobrien  {81,18,rr,V,V,0},	/* sqrt.s.t */
1353130561Sobrien  {81,19,rr,V,V,0},	/* sqrt.d.t */
1354130561Sobrien  {0,0,0,0,0,0},
1355130561Sobrien  {0,0,0,0,0,0},
1356130561Sobrien};
1357130561Sobrien
1358130561Sobrienconst struct formstr e1_format3[] = {
1359130561Sobrien  {32,18,rr,V,V,0},	/* cvtd.s.t */
1360130561Sobrien  {31,19,rr,V,V,0},	/* cvts.d.t */
1361130561Sobrien  {33,19,rr,V,V,0},	/* cvtl.d.t */
1362130561Sobrien  {32,23,rr,V,V,0},	/* cvtd.l.t */
1363130561Sobrien  {0,0,0,0,0,0},
1364130561Sobrien  {0,0,0,0,0,0},
1365130561Sobrien  {0,0,0,0,0,0},
1366130561Sobrien  {0,0,0,0,0,0},
1367130561Sobrien  {36,1,rr,V,V,0},	/* tzc.t */
1368130561Sobrien  {44,1,rr,V,V,0},	/* lop.t */
1369130561Sobrien  {117,1,rr,V,V,0},	/* xpnd.t */
1370130561Sobrien  {42,1,rr,V,V,0},	/* not.t */
1371130561Sobrien  {8,1,rr,S,V,0},	/* shf.t */
1372130561Sobrien  {35,24,rr,V,V,0},	/* plc.t.t */
1373130561Sobrien  {0,0,0,0,0,0},
1374130561Sobrien  {0,0,0,0,0,0},
1375130561Sobrien  {37,18,rr,V,V,0},	/* eq.s.t */
1376130561Sobrien  {37,19,rr,V,V,0},	/* eq.d.t */
1377130561Sobrien  {43,18,rr,V,V,0},	/* neg.s.t */
1378130561Sobrien  {43,19,rr,V,V,0},	/* neg.d.t */
1379130561Sobrien  {37,18,rr,S,V,0},	/* eq.s.t */
1380130561Sobrien  {37,19,rr,S,V,0},	/* eq.d.t */
1381130561Sobrien  {0,0,0,0,0,0},
1382130561Sobrien  {0,0,0,0,0,0},
1383130561Sobrien  {40,18,rr,V,V,0},	/* le.s.t */
1384130561Sobrien  {40,19,rr,V,V,0},	/* le.d.t */
1385130561Sobrien  {41,18,rr,V,V,0},	/* lt.s.t */
1386130561Sobrien  {41,19,rr,V,V,0},	/* lt.d.t */
1387130561Sobrien  {40,18,rr,S,V,0},	/* le.s.t */
1388130561Sobrien  {40,19,rr,S,V,0},	/* le.d.t */
1389130561Sobrien  {41,18,rr,S,V,0},	/* lt.s.t */
1390130561Sobrien  {41,19,rr,S,V,0},	/* lt.d.t */
1391130561Sobrien  {37,20,rr,V,V,0},	/* eq.b.t */
1392130561Sobrien  {37,21,rr,V,V,0},	/* eq.h.t */
1393130561Sobrien  {37,22,rr,V,V,0},	/* eq.w.t */
1394130561Sobrien  {37,23,rr,V,V,0},	/* eq.l.t */
1395130561Sobrien  {37,20,rr,S,V,0},	/* eq.b.t */
1396130561Sobrien  {37,21,rr,S,V,0},	/* eq.h.t */
1397130561Sobrien  {37,22,rr,S,V,0},	/* eq.w.t */
1398130561Sobrien  {37,23,rr,S,V,0},	/* eq.l.t */
1399130561Sobrien  {40,20,rr,V,V,0},	/* le.b.t */
1400130561Sobrien  {40,21,rr,V,V,0},	/* le.h.t */
1401130561Sobrien  {40,22,rr,V,V,0},	/* le.w.t */
1402130561Sobrien  {40,23,rr,V,V,0},	/* le.l.t */
1403130561Sobrien  {40,20,rr,S,V,0},	/* le.b.t */
1404130561Sobrien  {40,21,rr,S,V,0},	/* le.h.t */
1405130561Sobrien  {40,22,rr,S,V,0},	/* le.w.t */
1406130561Sobrien  {40,23,rr,S,V,0},	/* le.l.t */
1407130561Sobrien  {41,20,rr,V,V,0},	/* lt.b.t */
1408130561Sobrien  {41,21,rr,V,V,0},	/* lt.h.t */
1409130561Sobrien  {41,22,rr,V,V,0},	/* lt.w.t */
1410130561Sobrien  {41,23,rr,V,V,0},	/* lt.l.t */
1411130561Sobrien  {41,20,rr,S,V,0},	/* lt.b.t */
1412130561Sobrien  {41,21,rr,S,V,0},	/* lt.h.t */
1413130561Sobrien  {41,22,rr,S,V,0},	/* lt.w.t */
1414130561Sobrien  {41,23,rr,S,V,0},	/* lt.l.t */
1415130561Sobrien  {43,20,rr,V,V,0},	/* neg.b.t */
1416130561Sobrien  {43,21,rr,V,V,0},	/* neg.h.t */
1417130561Sobrien  {43,22,rr,V,V,0},	/* neg.w.t */
1418130561Sobrien  {43,23,rr,V,V,0},	/* neg.l.t */
1419130561Sobrien  {0,0,0,0,0,0},
1420130561Sobrien  {0,0,0,0,0,0},
1421130561Sobrien  {0,0,0,0,0,0},
1422130561Sobrien  {0,0,0,0,0,0},
1423130561Sobrien};
1424130561Sobrien
1425130561Sobrienconst struct formstr e1_format4[] = {
1426130561Sobrien  {0,0,0,0,0,0},
1427130561Sobrien  {0,0,0,0,0,0},
1428130561Sobrien  {0,0,0,0,0,0},
1429130561Sobrien  {0,0,0,0,0,0},
1430130561Sobrien  {0,0,0,0,0,0},
1431130561Sobrien  {0,0,0,0,0,0},
1432130561Sobrien  {0,0,0,0,0,0},
1433130561Sobrien  {0,0,0,0,0,0},
1434130561Sobrien};
1435130561Sobrien
1436130561Sobrienconst struct formstr e1_format5[] = {
1437130561Sobrien  {51,20,rr,V,V,0},	/* ldvi.b.t */
1438130561Sobrien  {51,21,rr,V,V,0},	/* ldvi.h.t */
1439130561Sobrien  {51,22,rr,V,V,0},	/* ldvi.w.t */
1440130561Sobrien  {51,23,rr,V,V,0},	/* ldvi.l.t */
1441130561Sobrien  {28,18,rr,V,V,0},	/* cvtw.s.t */
1442130561Sobrien  {31,22,rr,V,V,0},	/* cvts.w.t */
1443130561Sobrien  {28,23,rr,V,V,0},	/* cvtw.l.t */
1444130561Sobrien  {33,22,rr,V,V,0},	/* cvtl.w.t */
1445130561Sobrien  {52,20,rxr,V,V,0},	/* stvi.b.t */
1446130561Sobrien  {52,21,rxr,V,V,0},	/* stvi.h.t */
1447130561Sobrien  {52,22,rxr,V,V,0},	/* stvi.w.t */
1448130561Sobrien  {52,23,rxr,V,V,0},	/* stvi.l.t */
1449130561Sobrien  {52,20,rxr,S,V,0},	/* stvi.b.t */
1450130561Sobrien  {52,21,rxr,S,V,0},	/* stvi.h.t */
1451130561Sobrien  {52,22,rxr,S,V,0},	/* stvi.w.t */
1452130561Sobrien  {52,23,rxr,S,V,0},	/* stvi.l.t */
1453130561Sobrien};
1454130561Sobrien
1455130561Sobrienconst struct formstr e1_format6[] = {
1456130561Sobrien  {0,0,0,0,0,0},
1457130561Sobrien  {0,0,0,0,0,0},
1458130561Sobrien  {0,0,0,0,0,0},
1459130561Sobrien  {0,0,0,0,0,0},
1460130561Sobrien  {0,0,0,0,0,0},
1461130561Sobrien  {0,0,0,0,0,0},
1462130561Sobrien  {0,0,0,0,0,0},
1463130561Sobrien  {0,0,0,0,0,0},
1464130561Sobrien  {0,0,0,0,0,0},
1465130561Sobrien  {0,0,0,0,0,0},
1466130561Sobrien  {0,0,0,0,0,0},
1467130561Sobrien  {0,0,0,0,0,0},
1468130561Sobrien  {0,0,0,0,0,0},
1469130561Sobrien  {0,0,0,0,0,0},
1470130561Sobrien  {0,0,0,0,0,0},
1471130561Sobrien  {0,0,0,0,0,0},
1472130561Sobrien  {0,0,0,0,0,0},
1473130561Sobrien  {0,0,0,0,0,0},
1474130561Sobrien  {0,0,0,0,0,0},
1475130561Sobrien  {0,0,0,0,0,0},
1476130561Sobrien  {0,0,0,0,0,0},
1477130561Sobrien  {0,0,0,0,0,0},
1478130561Sobrien  {0,0,0,0,0,0},
1479130561Sobrien  {0,0,0,0,0,0},
1480130561Sobrien  {0,0,0,0,0,0},
1481130561Sobrien  {0,0,0,0,0,0},
1482130561Sobrien  {0,0,0,0,0,0},
1483130561Sobrien  {0,0,0,0,0,0},
1484130561Sobrien  {0,0,0,0,0,0},
1485130561Sobrien  {0,0,0,0,0,0},
1486130561Sobrien  {0,0,0,0,0,0},
1487130561Sobrien  {0,0,0,0,0,0},
1488130561Sobrien  {0,0,0,0,0,0},
1489130561Sobrien  {0,0,0,0,0,0},
1490130561Sobrien  {0,0,0,0,0,0},
1491130561Sobrien  {0,0,0,0,0,0},
1492130561Sobrien  {0,0,0,0,0,0},
1493130561Sobrien  {0,0,0,0,0,0},
1494130561Sobrien  {0,0,0,0,0,0},
1495130561Sobrien  {0,0,0,0,0,0},
1496130561Sobrien  {0,0,0,0,0,0},
1497130561Sobrien  {0,0,0,0,0,0},
1498130561Sobrien  {0,0,0,0,0,0},
1499130561Sobrien  {0,0,0,0,0,0},
1500130561Sobrien  {0,0,0,0,0,0},
1501130561Sobrien  {0,0,0,0,0,0},
1502130561Sobrien  {0,0,0,0,0,0},
1503130561Sobrien  {0,0,0,0,0,0},
1504130561Sobrien  {0,0,0,0,0,0},
1505130561Sobrien  {0,0,0,0,0,0},
1506130561Sobrien  {0,0,0,0,0,0},
1507130561Sobrien  {0,0,0,0,0,0},
1508130561Sobrien  {0,0,0,0,0,0},
1509130561Sobrien  {0,0,0,0,0,0},
1510130561Sobrien  {0,0,0,0,0,0},
1511130561Sobrien  {0,0,0,0,0,0},
1512130561Sobrien  {0,0,0,0,0,0},
1513130561Sobrien  {0,0,0,0,0,0},
1514130561Sobrien  {0,0,0,0,0,0},
1515130561Sobrien  {0,0,0,0,0,0},
1516130561Sobrien  {0,0,0,0,0,0},
1517130561Sobrien  {0,0,0,0,0,0},
1518130561Sobrien  {0,0,0,0,0,0},
1519130561Sobrien  {0,0,0,0,0,0},
1520130561Sobrien};
1521130561Sobrien
1522130561Sobrienconst struct formstr e1_format7[] = {
1523130561Sobrien  {84,20,r,V,0,0},	/* sum.b.t */
1524130561Sobrien  {84,21,r,V,0,0},	/* sum.h.t */
1525130561Sobrien  {84,22,r,V,0,0},	/* sum.w.t */
1526130561Sobrien  {84,23,r,V,0,0},	/* sum.l.t */
1527130561Sobrien  {85,1,r,V,0,0},	/* all.t */
1528130561Sobrien  {86,1,r,V,0,0},	/* any.t */
1529130561Sobrien  {87,1,r,V,0,0},	/* parity.t */
1530130561Sobrien  {0,0,0,0,0,0},
1531130561Sobrien  {88,20,r,V,0,0},	/* max.b.t */
1532130561Sobrien  {88,21,r,V,0,0},	/* max.h.t */
1533130561Sobrien  {88,22,r,V,0,0},	/* max.w.t */
1534130561Sobrien  {88,23,r,V,0,0},	/* max.l.t */
1535130561Sobrien  {89,20,r,V,0,0},	/* min.b.t */
1536130561Sobrien  {89,21,r,V,0,0},	/* min.h.t */
1537130561Sobrien  {89,22,r,V,0,0},	/* min.w.t */
1538130561Sobrien  {89,23,r,V,0,0},	/* min.l.t */
1539130561Sobrien  {84,18,r,V,0,0},	/* sum.s.t */
1540130561Sobrien  {84,19,r,V,0,0},	/* sum.d.t */
1541130561Sobrien  {90,18,r,V,0,0},	/* prod.s.t */
1542130561Sobrien  {90,19,r,V,0,0},	/* prod.d.t */
1543130561Sobrien  {88,18,r,V,0,0},	/* max.s.t */
1544130561Sobrien  {88,19,r,V,0,0},	/* max.d.t */
1545130561Sobrien  {89,18,r,V,0,0},	/* min.s.t */
1546130561Sobrien  {89,19,r,V,0,0},	/* min.d.t */
1547130561Sobrien  {90,20,r,V,0,0},	/* prod.b.t */
1548130561Sobrien  {90,21,r,V,0,0},	/* prod.h.t */
1549130561Sobrien  {90,22,r,V,0,0},	/* prod.w.t */
1550130561Sobrien  {90,23,r,V,0,0},	/* prod.l.t */
1551130561Sobrien  {0,0,0,0,0,0},
1552130561Sobrien  {0,0,0,0,0,0},
1553130561Sobrien  {0,0,0,0,0,0},
1554130561Sobrien  {0,0,0,0,0,0},
1555130561Sobrien};
1556130561Sobrien
1557130561Sobrienchar *lop[] = {
1558130561Sobrien  "mov",	/* 0 */
1559130561Sobrien  "merg",	/* 1 */
1560130561Sobrien  "mask",	/* 2 */
1561130561Sobrien  "mul",	/* 3 */
1562130561Sobrien  "div",	/* 4 */
1563130561Sobrien  "and",	/* 5 */
1564130561Sobrien  "or",	/* 6 */
1565130561Sobrien  "xor",	/* 7 */
1566130561Sobrien  "shf",	/* 8 */
1567130561Sobrien  "add",	/* 9 */
1568130561Sobrien  "sub",	/* 10 */
1569130561Sobrien  "exit",	/* 11 */
1570130561Sobrien  "jmp",	/* 12 */
1571130561Sobrien  "jmpi",	/* 13 */
1572130561Sobrien  "jmpa",	/* 14 */
1573130561Sobrien  "jmps",	/* 15 */
1574130561Sobrien  "tac",	/* 16 */
1575130561Sobrien  "ldea",	/* 17 */
1576130561Sobrien  "ld",	/* 18 */
1577130561Sobrien  "tas",	/* 19 */
1578130561Sobrien  "pshea",	/* 20 */
1579130561Sobrien  "st",	/* 21 */
1580130561Sobrien  "call",	/* 22 */
1581130561Sobrien  "calls",	/* 23 */
1582130561Sobrien  "callq",	/* 24 */
1583130561Sobrien  "pfork",	/* 25 */
1584130561Sobrien  "ste",	/* 26 */
1585130561Sobrien  "incr",	/* 27 */
1586130561Sobrien  "cvtw",	/* 28 */
1587130561Sobrien  "cvtb",	/* 29 */
1588130561Sobrien  "cvth",	/* 30 */
1589130561Sobrien  "cvts",	/* 31 */
1590130561Sobrien  "cvtd",	/* 32 */
1591130561Sobrien  "cvtl",	/* 33 */
1592130561Sobrien  "ldpa",	/* 34 */
1593130561Sobrien  "plc",	/* 35 */
1594130561Sobrien  "tzc",	/* 36 */
1595130561Sobrien  "eq",	/* 37 */
1596130561Sobrien  "leu",	/* 38 */
1597130561Sobrien  "ltu",	/* 39 */
1598130561Sobrien  "le",	/* 40 */
1599130561Sobrien  "lt",	/* 41 */
1600130561Sobrien  "not",	/* 42 */
1601130561Sobrien  "neg",	/* 43 */
1602130561Sobrien  "lop",	/* 44 */
1603130561Sobrien  "cprs",	/* 45 */
1604130561Sobrien  "nop",	/* 46 */
1605130561Sobrien  "br",	/* 47 */
1606130561Sobrien  "bri",	/* 48 */
1607130561Sobrien  "bra",	/* 49 */
1608130561Sobrien  "brs",	/* 50 */
1609130561Sobrien  "ldvi",	/* 51 */
1610130561Sobrien  "stvi",	/* 52 */
1611130561Sobrien  "ldsdr",	/* 53 */
1612130561Sobrien  "ldkdr",	/* 54 */
1613130561Sobrien  "ln",	/* 55 */
1614130561Sobrien  "patu",	/* 56 */
1615130561Sobrien  "pate",	/* 57 */
1616130561Sobrien  "pich",	/* 58 */
1617130561Sobrien  "plch",	/* 59 */
1618130561Sobrien  "idle",	/* 60 */
1619130561Sobrien  "rtnq",	/* 61 */
1620130561Sobrien  "cfork",	/* 62 */
1621130561Sobrien  "rtn",	/* 63 */
1622130561Sobrien  "wfork",	/* 64 */
1623130561Sobrien  "join",	/* 65 */
1624130561Sobrien  "rtnc",	/* 66 */
1625130561Sobrien  "exp",	/* 67 */
1626130561Sobrien  "sin",	/* 68 */
1627130561Sobrien  "cos",	/* 69 */
1628130561Sobrien  "psh",	/* 70 */
1629130561Sobrien  "pop",	/* 71 */
1630130561Sobrien  "eni",	/* 72 */
1631130561Sobrien  "dsi",	/* 73 */
1632130561Sobrien  "bkpt",	/* 74 */
1633130561Sobrien  "msync",	/* 75 */
1634130561Sobrien  "mski",	/* 76 */
1635130561Sobrien  "xmti",	/* 77 */
1636130561Sobrien  "tstvv",	/* 78 */
1637130561Sobrien  "diag",	/* 79 */
1638130561Sobrien  "pbkpt",	/* 80 */
1639130561Sobrien  "sqrt",	/* 81 */
1640130561Sobrien  "casr",	/* 82 */
1641130561Sobrien  "atan",	/* 83 */
1642130561Sobrien  "sum",	/* 84 */
1643130561Sobrien  "all",	/* 85 */
1644130561Sobrien  "any",	/* 86 */
1645130561Sobrien  "parity",	/* 87 */
1646130561Sobrien  "max",	/* 88 */
1647130561Sobrien  "min",	/* 89 */
1648130561Sobrien  "prod",	/* 90 */
1649130561Sobrien  "halt",	/* 91 */
1650130561Sobrien  "sysc",	/* 92 */
1651130561Sobrien  "trap",	/* 93 */
1652130561Sobrien  "tst",	/* 94 */
1653130561Sobrien  "lck",	/* 95 */
1654130561Sobrien  "ulk",	/* 96 */
1655130561Sobrien  "spawn",	/* 97 */
1656130561Sobrien  "ldcmr",	/* 98 */
1657130561Sobrien  "stcmr",	/* 99 */
1658130561Sobrien  "popr",	/* 100 */
1659130561Sobrien  "pshr",	/* 101 */
1660130561Sobrien  "rcvr",	/* 102 */
1661130561Sobrien  "matm",	/* 103 */
1662130561Sobrien  "sndr",	/* 104 */
1663130561Sobrien  "putr",	/* 105 */
1664130561Sobrien  "getr",	/* 106 */
1665130561Sobrien  "matr",	/* 107 */
1666130561Sobrien  "mat",	/* 108 */
1667130561Sobrien  "get",	/* 109 */
1668130561Sobrien  "rcv",	/* 110 */
1669130561Sobrien  "inc",	/* 111 */
1670130561Sobrien  "put",	/* 112 */
1671130561Sobrien  "snd",	/* 113 */
1672130561Sobrien  "enal",	/* 114 */
1673130561Sobrien  "enag",	/* 115 */
1674130561Sobrien  "frint",	/* 116 */
1675130561Sobrien  "xpnd",	/* 117 */
1676130561Sobrien  "ctrsl",	/* 118 */
1677130561Sobrien  "ctrsg",	/* 119 */
1678130561Sobrien  "stop",	/* 120 */
1679130561Sobrien};
1680130561Sobrien
1681130561Sobrienchar *rop[] = {
1682130561Sobrien  "",	/* 0 */
1683130561Sobrien  ".t",	/* 1 */
1684130561Sobrien  ".f",	/* 2 */
1685130561Sobrien  ".s",	/* 3 */
1686130561Sobrien  ".d",	/* 4 */
1687130561Sobrien  ".b",	/* 5 */
1688130561Sobrien  ".h",	/* 6 */
1689130561Sobrien  ".w",	/* 7 */
1690130561Sobrien  ".l",	/* 8 */
1691130561Sobrien  ".x",	/* 9 */
1692130561Sobrien  ".u",	/* 10 */
1693130561Sobrien  ".s.f",	/* 11 */
1694130561Sobrien  ".d.f",	/* 12 */
1695130561Sobrien  ".b.f",	/* 13 */
1696130561Sobrien  ".h.f",	/* 14 */
1697130561Sobrien  ".w.f",	/* 15 */
1698130561Sobrien  ".l.f",	/* 16 */
1699130561Sobrien  ".t.f",	/* 17 */
1700130561Sobrien  ".s.t",	/* 18 */
1701130561Sobrien  ".d.t",	/* 19 */
1702130561Sobrien  ".b.t",	/* 20 */
1703130561Sobrien  ".h.t",	/* 21 */
1704130561Sobrien  ".w.t",	/* 22 */
1705130561Sobrien  ".l.t",	/* 23 */
1706130561Sobrien  ".t.t",	/* 24 */
1707130561Sobrien};
1708