1145519Sdarrenr/* Information for instruction disassembly on the Convex.
2145510Sdarrenr   Copyright (C) 1989-2017 Free Software Foundation, Inc.
3145510Sdarrenr
4255332Scy   This file is part of GDB.
5145510Sdarrenr
6145510Sdarrenr   This program is free software; you can redistribute it and/or modify
7145510Sdarrenr   it under the terms of the GNU General Public License as published by
8145510Sdarrenr   the Free Software Foundation; either version 3 of the License, or
9145510Sdarrenr   (at your option) any later version.
10145510Sdarrenr
11145510Sdarrenr   This program is distributed in the hope that it will be useful,
12145510Sdarrenr   but WITHOUT ANY WARRANTY; without even the implied warranty of
13145510Sdarrenr   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14145510Sdarrenr   GNU General Public License for more details.
15145510Sdarrenr
16145510Sdarrenr   You should have received a copy of the GNU General Public License
17145510Sdarrenr   along with this program; if not, write to the Free Software
18145510Sdarrenr   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
19145510Sdarrenr   MA 02110-1301, USA.  */
20145510Sdarrenr
21145510Sdarrenr#define xxx 0
22145510Sdarrenr#define rrr 1
23145510Sdarrenr#define rr 2
24145510Sdarrenr#define rxr 3
25145510Sdarrenr#define r 4
26145510Sdarrenr#define nops 5
27145510Sdarrenr#define nr 6
28145510Sdarrenr#define pcrel 7
29145510Sdarrenr#define lr 8
30145510Sdarrenr#define rxl 9
31145510Sdarrenr#define rlr 10
32145510Sdarrenr#define rrl 11
33145510Sdarrenr#define iml 12
34145510Sdarrenr#define imr 13
35145510Sdarrenr#define a1r 14
36145510Sdarrenr#define a1l 15
37145510Sdarrenr#define a2r 16
38145510Sdarrenr#define a2l 17
39145510Sdarrenr#define a3 18
40145510Sdarrenr#define a4 19
41145510Sdarrenr#define a5 20
42145510Sdarrenr#define V 1
43145510Sdarrenr#define S 2
44145510Sdarrenr#define VM 3
45145510Sdarrenr#define A 4
46145510Sdarrenr#define VL 5
47145510Sdarrenr#define VS 6
48145510Sdarrenr#define VLS 7
49145510Sdarrenr#define PSW 8
50145510Sdarrenr/* Prevent an error during "make depend".  */
51145510Sdarrenr#if !defined (PC)
52145510Sdarrenr#define PC 9
53145510Sdarrenr#endif
54145554Sdarrenr#define ITR 10
55145510Sdarrenr#define VV 11
56145510Sdarrenr#define ITSR 12
57145510Sdarrenr#define TOC 13
58145510Sdarrenr#define CIR 14
59145510Sdarrenr#define TTR 15
60145510Sdarrenr#define VMU 16
61145510Sdarrenr#define VML 17
62145510Sdarrenr#define ICR 18
63145510Sdarrenr#define TCPU 19
64145510Sdarrenr#define CPUID 20
65145510Sdarrenr#define TID 21
66145510Sdarrenr
67145510Sdarrenrconst char *op[] = {
68145510Sdarrenr  "",
69145510Sdarrenr  "v0\0v1\0v2\0v3\0v4\0v5\0v6\0v7",
70255332Scy  "s0\0s1\0s2\0s3\0s4\0s5\0s6\0s7",
71145510Sdarrenr  "vm",
72145510Sdarrenr  "sp\0a1\0a2\0a3\0a4\0a5\0ap\0fp",
73145510Sdarrenr  "vl",
74145510Sdarrenr  "vs",
75145510Sdarrenr  "vls",
76145510Sdarrenr  "psw",
77145510Sdarrenr  "pc",
78145510Sdarrenr  "itr",
79145510Sdarrenr  "vv",
80145510Sdarrenr  "itsr",
81145510Sdarrenr  "toc",
82255332Scy  "cir",
83255332Scy  "ttr",
84255332Scy  "vmu",
85145510Sdarrenr  "vml",
86145510Sdarrenr  "icr",
87145510Sdarrenr  "tcpu",
88145510Sdarrenr  "cpuid",
89255332Scy  "tid",
90170268Sdarrenr};
91170268Sdarrenr
92255332Scyconst struct formstr format0[] = {
93255332Scy  {0,0,rrr,V,S,S},	/* mov */
94145510Sdarrenr  {0,0,rrr,S,S,V},	/* mov */
95255332Scy  {1,1,rrr,V,V,V},	/* merg.t */
96255332Scy  {2,1,rrr,V,V,V},	/* mask.t */
97255332Scy  {1,2,rrr,V,S,V},	/* merg.f */
98145510Sdarrenr  {2,2,rrr,V,S,V},	/* mask.f */
99145510Sdarrenr  {1,1,rrr,V,S,V},	/* merg.t */
100255332Scy  {2,1,rrr,V,S,V},	/* mask.t */
101145510Sdarrenr  {3,3,rrr,V,V,V},	/* mul.s */
102145510Sdarrenr  {3,4,rrr,V,V,V},	/* mul.d */
103145510Sdarrenr  {4,3,rrr,V,V,V},	/* div.s */
104145510Sdarrenr  {4,4,rrr,V,V,V},	/* div.d */
105145510Sdarrenr  {3,3,rrr,V,S,V},	/* mul.s */
106145510Sdarrenr  {3,4,rrr,V,S,V},	/* mul.d */
107145510Sdarrenr  {4,3,rrr,V,S,V},	/* div.s */
108255332Scy  {4,4,rrr,V,S,V},	/* div.d */
109255332Scy  {5,0,rrr,V,V,V},	/* and */
110145510Sdarrenr  {6,0,rrr,V,V,V},	/* or */
111255332Scy  {7,0,rrr,V,V,V},	/* xor */
112145510Sdarrenr  {8,0,rrr,V,V,V},	/* shf */
113145510Sdarrenr  {5,0,rrr,V,S,V},	/* and */
114145510Sdarrenr  {6,0,rrr,V,S,V},	/* or */
115145510Sdarrenr  {7,0,rrr,V,S,V},	/* xor */
116145510Sdarrenr  {8,0,rrr,V,S,V},	/* shf */
117145510Sdarrenr  {9,3,rrr,V,V,V},	/* add.s */
118145510Sdarrenr  {9,4,rrr,V,V,V},	/* add.d */
119145510Sdarrenr  {10,3,rrr,V,V,V},	/* sub.s */
120145510Sdarrenr  {10,4,rrr,V,V,V},	/* sub.d */
121145510Sdarrenr  {9,3,rrr,V,S,V},	/* add.s */
122145510Sdarrenr  {9,4,rrr,V,S,V},	/* add.d */
123255332Scy  {10,3,rrr,V,S,V},	/* sub.s */
124145510Sdarrenr  {10,4,rrr,V,S,V},	/* sub.d */
125255332Scy  {9,5,rrr,V,V,V},	/* add.b */
126255332Scy  {9,6,rrr,V,V,V},	/* add.h */
127255332Scy  {9,7,rrr,V,V,V},	/* add.w */
128145510Sdarrenr  {9,8,rrr,V,V,V},	/* add.l */
129145510Sdarrenr  {9,5,rrr,V,S,V},	/* add.b */
130145510Sdarrenr  {9,6,rrr,V,S,V},	/* add.h */
131145510Sdarrenr  {9,7,rrr,V,S,V},	/* add.w */
132145510Sdarrenr  {9,8,rrr,V,S,V},	/* add.l */
133145510Sdarrenr  {10,5,rrr,V,V,V},	/* sub.b */
134145510Sdarrenr  {10,6,rrr,V,V,V},	/* sub.h */
135145510Sdarrenr  {10,7,rrr,V,V,V},	/* sub.w */
136145510Sdarrenr  {10,8,rrr,V,V,V},	/* sub.l */
137145510Sdarrenr  {10,5,rrr,V,S,V},	/* sub.b */
138145510Sdarrenr  {10,6,rrr,V,S,V},	/* sub.h */
139145510Sdarrenr  {10,7,rrr,V,S,V},	/* sub.w */
140145510Sdarrenr  {10,8,rrr,V,S,V},	/* sub.l */
141145510Sdarrenr  {3,5,rrr,V,V,V},	/* mul.b */
142145510Sdarrenr  {3,6,rrr,V,V,V},	/* mul.h */
143145510Sdarrenr  {3,7,rrr,V,V,V},	/* mul.w */
144145510Sdarrenr  {3,8,rrr,V,V,V},	/* mul.l */
145145510Sdarrenr  {3,5,rrr,V,S,V},	/* mul.b */
146145510Sdarrenr  {3,6,rrr,V,S,V},	/* mul.h */
147145510Sdarrenr  {3,7,rrr,V,S,V},	/* mul.w */
148145510Sdarrenr  {3,8,rrr,V,S,V},	/* mul.l */
149255332Scy  {4,5,rrr,V,V,V},	/* div.b */
150255332Scy  {4,6,rrr,V,V,V},	/* div.h */
151255332Scy  {4,7,rrr,V,V,V},	/* div.w */
152145510Sdarrenr  {4,8,rrr,V,V,V},	/* div.l */
153145510Sdarrenr  {4,5,rrr,V,S,V},	/* div.b */
154145510Sdarrenr  {4,6,rrr,V,S,V},	/* div.h */
155145510Sdarrenr  {4,7,rrr,V,S,V},	/* div.w */
156145510Sdarrenr  {4,8,rrr,V,S,V},	/* div.l */
157145510Sdarrenr};
158145510Sdarrenr
159255332Scyconst struct formstr format1[] = {
160145510Sdarrenr  {11,0,xxx,0,0,0},	/* exit */
161145510Sdarrenr  {12,0,a3,0,0,0},	/* jmp */
162255332Scy  {13,2,a3,0,0,0},	/* jmpi.f */
163255332Scy  {13,1,a3,0,0,0},	/* jmpi.t */
164255332Scy  {14,2,a3,0,0,0},	/* jmpa.f */
165255332Scy  {14,1,a3,0,0,0},	/* jmpa.t */
166255332Scy  {15,2,a3,0,0,0},	/* jmps.f */
167255332Scy  {15,1,a3,0,0,0},	/* jmps.t */
168145510Sdarrenr  {16,0,a3,0,0,0},	/* tac */
169145510Sdarrenr  {17,0,a1r,A,0,0},	/* ldea */
170145510Sdarrenr  {18,8,a1l,VLS,0,0},	/* ld.l */
171145510Sdarrenr  {18,9,a1l,VM,0,0},	/* ld.x */
172145510Sdarrenr  {19,0,a3,0,0,0},	/* tas */
173145510Sdarrenr  {20,0,a3,0,0,0},	/* pshea */
174145510Sdarrenr  {21,8,a2l,VLS,0,0},	/* st.l */
175145510Sdarrenr  {21,9,a2l,VM,0,0},	/* st.x */
176145510Sdarrenr  {0,0,0,0,0,0},
177145510Sdarrenr  {0,0,0,0,0,0},
178145510Sdarrenr  {0,0,0,0,0,0},
179145510Sdarrenr  {0,0,0,0,0,0},
180145510Sdarrenr  {0,0,0,0,0,0},
181145510Sdarrenr  {0,0,0,0,0,0},
182145510Sdarrenr  {0,0,0,0,0,0},
183145510Sdarrenr  {0,0,0,0,0,0},
184145510Sdarrenr  {0,0,0,0,0,0},
185255332Scy  {0,0,0,0,0,0},
186255332Scy  {0,0,0,0,0,0},
187255332Scy  {0,0,0,0,0,0},
188255332Scy  {0,0,0,0,0,0},
189255332Scy  {0,0,0,0,0,0},
190255332Scy  {0,0,0,0,0,0},
191145510Sdarrenr  {0,0,0,0,0,0},
192145510Sdarrenr  {22,0,a3,0,0,0},	/* call */
193145510Sdarrenr  {23,0,a3,0,0,0},	/* calls */
194145510Sdarrenr  {24,0,a3,0,0,0},	/* callq */
195145510Sdarrenr  {25,0,a1r,A,0,0},	/* pfork */
196145510Sdarrenr  {26,5,a2r,S,0,0},	/* ste.b */
197145510Sdarrenr  {26,6,a2r,S,0,0},	/* ste.h */
198170268Sdarrenr  {26,7,a2r,S,0,0},	/* ste.w */
199170268Sdarrenr  {26,8,a2r,S,0,0},	/* ste.l */
200170268Sdarrenr  {18,5,a1r,A,0,0},	/* ld.b */
201170268Sdarrenr  {18,6,a1r,A,0,0},	/* ld.h */
202170268Sdarrenr  {18,7,a1r,A,0,0},	/* ld.w */
203170268Sdarrenr  {27,7,a1r,A,0,0},	/* incr.w */
204170268Sdarrenr  {21,5,a2r,A,0,0},	/* st.b */
205170268Sdarrenr  {21,6,a2r,A,0,0},	/* st.h */
206170268Sdarrenr  {21,7,a2r,A,0,0},	/* st.w */
207145510Sdarrenr  {27,8,a1r,S,0,0},	/* incr.l */
208145510Sdarrenr  {18,5,a1r,S,0,0},	/* ld.b */
209145510Sdarrenr  {18,6,a1r,S,0,0},	/* ld.h */
210145510Sdarrenr  {18,7,a1r,S,0,0},	/* ld.w */
211145510Sdarrenr  {18,8,a1r,S,0,0},	/* ld.l */
212145510Sdarrenr  {21,5,a2r,S,0,0},	/* st.b */
213145510Sdarrenr  {21,6,a2r,S,0,0},	/* st.h */
214145510Sdarrenr  {21,7,a2r,S,0,0},	/* st.w */
215145510Sdarrenr  {21,8,a2r,S,0,0},	/* st.l */
216145510Sdarrenr  {18,5,a1r,V,0,0},	/* ld.b */
217145510Sdarrenr  {18,6,a1r,V,0,0},	/* ld.h */
218145510Sdarrenr  {18,7,a1r,V,0,0},	/* ld.w */
219170268Sdarrenr  {18,8,a1r,V,0,0},	/* ld.l */
220145510Sdarrenr  {21,5,a2r,V,0,0},	/* st.b */
221145510Sdarrenr  {21,6,a2r,V,0,0},	/* st.h */
222145510Sdarrenr  {21,7,a2r,V,0,0},	/* st.w */
223255332Scy  {21,8,a2r,V,0,0},	/* st.l */
224145510Sdarrenr};
225145510Sdarrenr
226145510Sdarrenrconst struct formstr format2[] = {
227145510Sdarrenr  {28,5,rr,A,A,0},	/* cvtw.b */
228145510Sdarrenr  {28,6,rr,A,A,0},	/* cvtw.h */
229145510Sdarrenr  {29,7,rr,A,A,0},	/* cvtb.w */
230145510Sdarrenr  {30,7,rr,A,A,0},	/* cvth.w */
231145510Sdarrenr  {28,5,rr,S,S,0},	/* cvtw.b */
232145510Sdarrenr  {28,6,rr,S,S,0},	/* cvtw.h */
233145510Sdarrenr  {29,7,rr,S,S,0},	/* cvtb.w */
234255332Scy  {30,7,rr,S,S,0},	/* cvth.w */
235145510Sdarrenr  {28,3,rr,S,S,0},	/* cvtw.s */
236145510Sdarrenr  {31,7,rr,S,S,0},	/* cvts.w */
237145510Sdarrenr  {32,3,rr,S,S,0},	/* cvtd.s */
238145510Sdarrenr  {31,4,rr,S,S,0},	/* cvts.d */
239255332Scy  {31,8,rr,S,S,0},	/* cvts.l */
240145510Sdarrenr  {32,8,rr,S,S,0},	/* cvtd.l */
241255332Scy  {33,3,rr,S,S,0},	/* cvtl.s */
242145510Sdarrenr  {33,4,rr,S,S,0},	/* cvtl.d */
243145510Sdarrenr  {34,0,rr,A,A,0},	/* ldpa */
244255332Scy  {8,0,nr,A,0,0},	/* shf */
245145510Sdarrenr  {18,6,nr,A,0,0},	/* ld.h */
246145510Sdarrenr  {18,7,nr,A,0,0},	/* ld.w */
247145510Sdarrenr  {33,7,rr,S,S,0},	/* cvtl.w */
248145510Sdarrenr  {28,8,rr,S,S,0},	/* cvtw.l */
249145510Sdarrenr  {35,1,rr,S,S,0},	/* plc.t */
250145510Sdarrenr  {36,0,rr,S,S,0},	/* tzc */
251145510Sdarrenr  {37,6,rr,A,A,0},	/* eq.h */
252145510Sdarrenr  {37,7,rr,A,A,0},	/* eq.w */
253145510Sdarrenr  {37,6,nr,A,0,0},	/* eq.h */
254255332Scy  {37,7,nr,A,0,0},	/* eq.w */
255255332Scy  {37,5,rr,S,S,0},	/* eq.b */
256145510Sdarrenr  {37,6,rr,S,S,0},	/* eq.h */
257145510Sdarrenr  {37,7,rr,S,S,0},	/* eq.w */
258145510Sdarrenr  {37,8,rr,S,S,0},	/* eq.l */
259145510Sdarrenr  {38,6,rr,A,A,0},	/* leu.h */
260145510Sdarrenr  {38,7,rr,A,A,0},	/* leu.w */
261145510Sdarrenr  {38,6,nr,A,0,0},	/* leu.h */
262145510Sdarrenr  {38,7,nr,A,0,0},	/* leu.w */
263145510Sdarrenr  {38,5,rr,S,S,0},	/* leu.b */
264145510Sdarrenr  {38,6,rr,S,S,0},	/* leu.h */
265145510Sdarrenr  {38,7,rr,S,S,0},	/* leu.w */
266145510Sdarrenr  {38,8,rr,S,S,0},	/* leu.l */
267145510Sdarrenr  {39,6,rr,A,A,0},	/* ltu.h */
268145510Sdarrenr  {39,7,rr,A,A,0},	/* ltu.w */
269145510Sdarrenr  {39,6,nr,A,0,0},	/* ltu.h */
270145510Sdarrenr  {39,7,nr,A,0,0},	/* ltu.w */
271145510Sdarrenr  {39,5,rr,S,S,0},	/* ltu.b */
272145510Sdarrenr  {39,6,rr,S,S,0},	/* ltu.h */
273145510Sdarrenr  {39,7,rr,S,S,0},	/* ltu.w */
274145510Sdarrenr  {39,8,rr,S,S,0},	/* ltu.l */
275145510Sdarrenr  {40,6,rr,A,A,0},	/* le.h */
276145510Sdarrenr  {40,7,rr,A,A,0},	/* le.w */
277145510Sdarrenr  {40,6,nr,A,0,0},	/* le.h */
278145510Sdarrenr  {40,7,nr,A,0,0},	/* le.w */
279145510Sdarrenr  {40,5,rr,S,S,0},	/* le.b */
280145510Sdarrenr  {40,6,rr,S,S,0},	/* le.h */
281255332Scy  {40,7,rr,S,S,0},	/* le.w */
282255332Scy  {40,8,rr,S,S,0},	/* le.l */
283145510Sdarrenr  {41,6,rr,A,A,0},	/* lt.h */
284145510Sdarrenr  {41,7,rr,A,A,0},	/* lt.w */
285145510Sdarrenr  {41,6,nr,A,0,0},	/* lt.h */
286145510Sdarrenr  {41,7,nr,A,0,0},	/* lt.w */
287145510Sdarrenr  {41,5,rr,S,S,0},	/* lt.b */
288145510Sdarrenr  {41,6,rr,S,S,0},	/* lt.h */
289145510Sdarrenr  {41,7,rr,S,S,0},	/* lt.w */
290145510Sdarrenr  {41,8,rr,S,S,0},	/* lt.l */
291145510Sdarrenr  {9,7,rr,S,A,0},	/* add.w */
292145510Sdarrenr  {8,0,rr,A,A,0},	/* shf */
293145510Sdarrenr  {0,0,rr,A,A,0},	/* mov */
294145510Sdarrenr  {0,0,rr,S,A,0},	/* mov */
295145510Sdarrenr  {0,7,rr,S,S,0},	/* mov.w */
296145510Sdarrenr  {8,0,rr,S,S,0},	/* shf */
297145510Sdarrenr  {0,0,rr,S,S,0},	/* mov */
298145510Sdarrenr  {0,0,rr,A,S,0},	/* mov */
299145510Sdarrenr  {5,0,rr,A,A,0},	/* and */
300145510Sdarrenr  {6,0,rr,A,A,0},	/* or */
301145510Sdarrenr  {7,0,rr,A,A,0},	/* xor */
302170268Sdarrenr  {42,0,rr,A,A,0},	/* not */
303170268Sdarrenr  {5,0,rr,S,S,0},	/* and */
304170268Sdarrenr  {6,0,rr,S,S,0},	/* or */
305255332Scy  {7,0,rr,S,S,0},	/* xor */
306255332Scy  {42,0,rr,S,S,0},	/* not */
307170268Sdarrenr  {40,3,rr,S,S,0},	/* le.s */
308170268Sdarrenr  {40,4,rr,S,S,0},	/* le.d */
309170268Sdarrenr  {41,3,rr,S,S,0},	/* lt.s */
310170268Sdarrenr  {41,4,rr,S,S,0},	/* lt.d */
311170268Sdarrenr  {9,3,rr,S,S,0},	/* add.s */
312255332Scy  {9,4,rr,S,S,0},	/* add.d */
313255332Scy  {10,3,rr,S,S,0},	/* sub.s */
314255332Scy  {10,4,rr,S,S,0},	/* sub.d */
315255332Scy  {37,3,rr,S,S,0},	/* eq.s */
316255332Scy  {37,4,rr,S,S,0},	/* eq.d */
317255332Scy  {43,6,rr,A,A,0},	/* neg.h */
318255332Scy  {43,7,rr,A,A,0},	/* neg.w */
319255332Scy  {3,3,rr,S,S,0},	/* mul.s */
320255332Scy  {3,4,rr,S,S,0},	/* mul.d */
321255332Scy  {4,3,rr,S,S,0},	/* div.s */
322255332Scy  {4,4,rr,S,S,0},	/* div.d */
323255332Scy  {9,6,rr,A,A,0},	/* add.h */
324255332Scy  {9,7,rr,A,A,0},	/* add.w */
325255332Scy  {9,6,nr,A,0,0},	/* add.h */
326255332Scy  {9,7,nr,A,0,0},	/* add.w */
327255332Scy  {9,5,rr,S,S,0},	/* add.b */
328255332Scy  {9,6,rr,S,S,0},	/* add.h */
329255332Scy  {9,7,rr,S,S,0},	/* add.w */
330255332Scy  {9,8,rr,S,S,0},	/* add.l */
331255332Scy  {10,6,rr,A,A,0},	/* sub.h */
332170268Sdarrenr  {10,7,rr,A,A,0},	/* sub.w */
333170268Sdarrenr  {10,6,nr,A,0,0},	/* sub.h */
334170268Sdarrenr  {10,7,nr,A,0,0},	/* sub.w */
335170268Sdarrenr  {10,5,rr,S,S,0},	/* sub.b */
336170268Sdarrenr  {10,6,rr,S,S,0},	/* sub.h */
337170268Sdarrenr  {10,7,rr,S,S,0},	/* sub.w */
338255332Scy  {10,8,rr,S,S,0},	/* sub.l */
339170268Sdarrenr  {3,6,rr,A,A,0},	/* mul.h */
340170268Sdarrenr  {3,7,rr,A,A,0},	/* mul.w */
341170268Sdarrenr  {3,6,nr,A,0,0},	/* mul.h */
342170268Sdarrenr  {3,7,nr,A,0,0},	/* mul.w */
343170268Sdarrenr  {3,5,rr,S,S,0},	/* mul.b */
344170268Sdarrenr  {3,6,rr,S,S,0},	/* mul.h */
345170268Sdarrenr  {3,7,rr,S,S,0},	/* mul.w */
346145510Sdarrenr  {3,8,rr,S,S,0},	/* mul.l */
347145510Sdarrenr  {4,6,rr,A,A,0},	/* div.h */
348255332Scy  {4,7,rr,A,A,0},	/* div.w */
349255332Scy  {4,6,nr,A,0,0},	/* div.h */
350255332Scy  {4,7,nr,A,0,0},	/* div.w */
351145510Sdarrenr  {4,5,rr,S,S,0},	/* div.b */
352145510Sdarrenr  {4,6,rr,S,S,0},	/* div.h */
353145510Sdarrenr  {4,7,rr,S,S,0},	/* div.w */
354255332Scy  {4,8,rr,S,S,0},	/* div.l */
355145510Sdarrenr};
356255332Scy
357255332Scyconst struct formstr format3[] = {
358255332Scy  {32,3,rr,V,V,0},	/* cvtd.s */
359255332Scy  {31,4,rr,V,V,0},	/* cvts.d */
360255332Scy  {33,4,rr,V,V,0},	/* cvtl.d */
361255332Scy  {32,8,rr,V,V,0},	/* cvtd.l */
362255332Scy  {0,0,rrl,S,S,VM},	/* mov */
363255332Scy  {0,0,rlr,S,VM,S},	/* mov */
364255332Scy  {0,0,0,0,0,0},
365255332Scy  {44,0,rr,S,S,0},	/* lop */
366255332Scy  {36,0,rr,V,V,0},	/* tzc */
367255332Scy  {44,0,rr,V,V,0},	/* lop */
368170268Sdarrenr  {0,0,0,0,0,0},
369170268Sdarrenr  {42,0,rr,V,V,0},	/* not */
370170268Sdarrenr  {8,0,rr,S,V,0},	/* shf */
371255332Scy  {35,1,rr,V,V,0},	/* plc.t */
372255332Scy  {45,2,rr,V,V,0},	/* cprs.f */
373170268Sdarrenr  {45,1,rr,V,V,0},	/* cprs.t */
374255332Scy  {37,3,rr,V,V,0},	/* eq.s */
375255332Scy  {37,4,rr,V,V,0},	/* eq.d */
376255332Scy  {43,3,rr,V,V,0},	/* neg.s */
377255332Scy  {43,4,rr,V,V,0},	/* neg.d */
378255332Scy  {37,3,rr,S,V,0},	/* eq.s */
379255332Scy  {37,4,rr,S,V,0},	/* eq.d */
380255332Scy  {43,3,rr,S,S,0},	/* neg.s */
381255332Scy  {43,4,rr,S,S,0},	/* neg.d */
382255332Scy  {40,3,rr,V,V,0},	/* le.s */
383170268Sdarrenr  {40,4,rr,V,V,0},	/* le.d */
384170268Sdarrenr  {41,3,rr,V,V,0},	/* lt.s */
385170268Sdarrenr  {41,4,rr,V,V,0},	/* lt.d */
386255332Scy  {40,3,rr,S,V,0},	/* le.s */
387255332Scy  {40,4,rr,S,V,0},	/* le.d */
388255332Scy  {41,3,rr,S,V,0},	/* lt.s */
389255332Scy  {41,4,rr,S,V,0},	/* lt.d */
390255332Scy  {37,5,rr,V,V,0},	/* eq.b */
391255332Scy  {37,6,rr,V,V,0},	/* eq.h */
392255332Scy  {37,7,rr,V,V,0},	/* eq.w */
393255332Scy  {37,8,rr,V,V,0},	/* eq.l */
394255332Scy  {37,5,rr,S,V,0},	/* eq.b */
395255332Scy  {37,6,rr,S,V,0},	/* eq.h */
396255332Scy  {37,7,rr,S,V,0},	/* eq.w */
397255332Scy  {37,8,rr,S,V,0},	/* eq.l */
398255332Scy  {40,5,rr,V,V,0},	/* le.b */
399255332Scy  {40,6,rr,V,V,0},	/* le.h */
400255332Scy  {40,7,rr,V,V,0},	/* le.w */
401255332Scy  {40,8,rr,V,V,0},	/* le.l */
402255332Scy  {40,5,rr,S,V,0},	/* le.b */
403255332Scy  {40,6,rr,S,V,0},	/* le.h */
404255332Scy  {40,7,rr,S,V,0},	/* le.w */
405255332Scy  {40,8,rr,S,V,0},	/* le.l */
406255332Scy  {41,5,rr,V,V,0},	/* lt.b */
407170268Sdarrenr  {41,6,rr,V,V,0},	/* lt.h */
408170268Sdarrenr  {41,7,rr,V,V,0},	/* lt.w */
409170268Sdarrenr  {41,8,rr,V,V,0},	/* lt.l */
410170268Sdarrenr  {41,5,rr,S,V,0},	/* lt.b */
411170268Sdarrenr  {41,6,rr,S,V,0},	/* lt.h */
412170268Sdarrenr  {41,7,rr,S,V,0},	/* lt.w */
413170268Sdarrenr  {41,8,rr,S,V,0},	/* lt.l */
414255332Scy  {43,5,rr,V,V,0},	/* neg.b */
415255332Scy  {43,6,rr,V,V,0},	/* neg.h */
416255332Scy  {43,7,rr,V,V,0},	/* neg.w */
417255332Scy  {43,8,rr,V,V,0},	/* neg.l */
418170268Sdarrenr  {43,5,rr,S,S,0},	/* neg.b */
419255332Scy  {43,6,rr,S,S,0},	/* neg.h */
420172776Sdarrenr  {43,7,rr,S,S,0},	/* neg.w */
421255332Scy  {43,8,rr,S,S,0},	/* neg.l */
422172776Sdarrenr};
423172776Sdarrenr
424172776Sdarrenrconst struct formstr format4[] = {
425255332Scy  {46,0,nops,0,0,0},	/* nop */
426255332Scy  {47,0,pcrel,0,0,0},	/* br */
427255332Scy  {48,2,pcrel,0,0,0},	/* bri.f */
428255332Scy  {48,1,pcrel,0,0,0},	/* bri.t */
429255332Scy  {49,2,pcrel,0,0,0},	/* bra.f */
430255332Scy  {49,1,pcrel,0,0,0},	/* bra.t */
431172776Sdarrenr  {50,2,pcrel,0,0,0},	/* brs.f */
432172776Sdarrenr  {50,1,pcrel,0,0,0},	/* brs.t */
433172776Sdarrenr};
434172776Sdarrenr
435172776Sdarrenrconst struct formstr format5[] = {
436172776Sdarrenr  {51,5,rr,V,V,0},	/* ldvi.b */
437255332Scy  {51,6,rr,V,V,0},	/* ldvi.h */
438255332Scy  {51,7,rr,V,V,0},	/* ldvi.w */
439255332Scy  {51,8,rr,V,V,0},	/* ldvi.l */
440255332Scy  {28,3,rr,V,V,0},	/* cvtw.s */
441255332Scy  {31,7,rr,V,V,0},	/* cvts.w */
442172776Sdarrenr  {28,8,rr,V,V,0},	/* cvtw.l */
443172776Sdarrenr  {33,7,rr,V,V,0},	/* cvtl.w */
444172776Sdarrenr  {52,5,rxr,V,V,0},	/* stvi.b */
445172776Sdarrenr  {52,6,rxr,V,V,0},	/* stvi.h */
446255332Scy  {52,7,rxr,V,V,0},	/* stvi.w */
447172776Sdarrenr  {52,8,rxr,V,V,0},	/* stvi.l */
448172776Sdarrenr  {52,5,rxr,S,V,0},	/* stvi.b */
449172776Sdarrenr  {52,6,rxr,S,V,0},	/* stvi.h */
450172776Sdarrenr  {52,7,rxr,S,V,0},	/* stvi.w */
451172776Sdarrenr  {52,8,rxr,S,V,0},	/* stvi.l */
452172776Sdarrenr};
453172776Sdarrenr
454172776Sdarrenrconst struct formstr format6[] = {
455172776Sdarrenr  {53,0,r,A,0,0},	/* ldsdr */
456172776Sdarrenr  {54,0,r,A,0,0},	/* ldkdr */
457255332Scy  {55,3,r,S,0,0},	/* ln.s */
458172776Sdarrenr  {55,4,r,S,0,0},	/* ln.d */
459172776Sdarrenr  {56,0,nops,0,0,0},	/* patu */
460172776Sdarrenr  {57,0,r,A,0,0},	/* pate */
461172776Sdarrenr  {58,0,nops,0,0,0},	/* pich */
462172776Sdarrenr  {59,0,nops,0,0,0},	/* plch */
463172776Sdarrenr  {0,0,lr,PSW,A,0},	/* mov */
464172776Sdarrenr  {0,0,rxl,A,PSW,0},	/* mov */
465172776Sdarrenr  {0,0,lr,PC,A,0},	/* mov */
466172776Sdarrenr  {60,0,r,S,0,0},	/* idle */
467172776Sdarrenr  {0,0,lr,ITR,S,0},	/* mov */
468172776Sdarrenr  {0,0,rxl,S,ITR,0},	/* mov */
469172776Sdarrenr  {0,0,0,0,0,0},
470172776Sdarrenr  {0,0,rxl,S,ITSR,0},	/* mov */
471172776Sdarrenr  {61,0,nops,0,0,0},	/* rtnq */
472255332Scy  {62,0,nops,0,0,0},	/* cfork */
473255332Scy  {63,0,nops,0,0,0},	/* rtn */
474255332Scy  {64,0,nops,0,0,0},	/* wfork */
475255332Scy  {65,0,nops,0,0,0},	/* join */
476255332Scy  {66,0,nops,0,0,0},	/* rtnc */
477255332Scy  {67,3,r,S,0,0},	/* exp.s */
478255332Scy  {67,4,r,S,0,0},	/* exp.d */
479255332Scy  {68,3,r,S,0,0},	/* sin.s */
480255332Scy  {68,4,r,S,0,0},	/* sin.d */
481255332Scy  {0,0,0,0,0,0},
482172776Sdarrenr  {0,0,0,0,0,0},
483172776Sdarrenr  {69,3,r,S,0,0},	/* cos.s */
484172776Sdarrenr  {69,4,r,S,0,0},	/* cos.d */
485255332Scy  {0,0,0,0,0,0},
486255332Scy  {0,0,0,0,0,0},
487255332Scy  {70,7,r,A,0,0},	/* psh.w */
488255332Scy  {0,0,0,0,0,0},
489255332Scy  {71,7,r,A,0,0},	/* pop.w */
490255332Scy  {0,0,0,0,0,0},
491255332Scy  {70,7,r,S,0,0},	/* psh.w */
492255332Scy  {70,8,r,S,0,0},	/* psh.l */
493255332Scy  {71,7,r,S,0,0},	/* pop.w */
494255332Scy  {71,8,r,S,0,0},	/* pop.l */
495255332Scy  {72,0,nops,0,0,0},	/* eni */
496255332Scy  {73,0,nops,0,0,0},	/* dsi */
497255332Scy  {74,0,nops,0,0,0},	/* bkpt */
498255332Scy  {75,0,nops,0,0,0},	/* msync */
499255332Scy  {76,0,r,S,0,0},	/* mski */
500255332Scy  {77,0,r,S,0,0},	/* xmti */
501255332Scy  {0,0,rxl,S,VV,0},	/* mov */
502255332Scy  {78,0,nops,0,0,0},	/* tstvv */
503255332Scy  {0,0,lr,VS,A,0},	/* mov */
504255332Scy  {0,0,rxl,A,VS,0},	/* mov */
505255332Scy  {0,0,lr,VL,A,0},	/* mov */
506255332Scy  {0,0,rxl,A,VL,0},	/* mov */
507255332Scy  {0,7,lr,VS,S,0},	/* mov.w */
508255332Scy  {0,7,rxl,S,VS,0},	/* mov.w */
509255332Scy  {0,7,lr,VL,S,0},	/* mov.w */
510255332Scy  {0,7,rxl,S,VL,0},	/* mov.w */
511255332Scy  {79,0,r,A,0,0},	/* diag */
512255332Scy  {80,0,nops,0,0,0},	/* pbkpt */
513255332Scy  {81,3,r,S,0,0},	/* sqrt.s */
514255332Scy  {81,4,r,S,0,0},	/* sqrt.d */
515255332Scy  {82,0,nops,0,0,0},	/* casr */
516255332Scy  {0,0,0,0,0,0},
517255332Scy  {83,3,r,S,0,0},	/* atan.s */
518255332Scy  {83,4,r,S,0,0},	/* atan.d */
519255332Scy};
520255332Scy
521255332Scyconst struct formstr format7[] = {
522255332Scy  {84,5,r,V,0,0},	/* sum.b */
523255332Scy  {84,6,r,V,0,0},	/* sum.h */
524255332Scy  {84,7,r,V,0,0},	/* sum.w */
525255332Scy  {84,8,r,V,0,0},	/* sum.l */
526255332Scy  {85,0,r,V,0,0},	/* all */
527255332Scy  {86,0,r,V,0,0},	/* any */
528255332Scy  {87,0,r,V,0,0},	/* parity */
529255332Scy  {0,0,0,0,0,0},
530255332Scy  {88,5,r,V,0,0},	/* max.b */
531255332Scy  {88,6,r,V,0,0},	/* max.h */
532255332Scy  {88,7,r,V,0,0},	/* max.w */
533255332Scy  {88,8,r,V,0,0},	/* max.l */
534255332Scy  {89,5,r,V,0,0},	/* min.b */
535255332Scy  {89,6,r,V,0,0},	/* min.h */
536255332Scy  {89,7,r,V,0,0},	/* min.w */
537170268Sdarrenr  {89,8,r,V,0,0},	/* min.l */
538170268Sdarrenr  {84,3,r,V,0,0},	/* sum.s */
539170268Sdarrenr  {84,4,r,V,0,0},	/* sum.d */
540255332Scy  {90,3,r,V,0,0},	/* prod.s */
541255332Scy  {90,4,r,V,0,0},	/* prod.d */
542255332Scy  {88,3,r,V,0,0},	/* max.s */
543170268Sdarrenr  {88,4,r,V,0,0},	/* max.d */
544170268Sdarrenr  {89,3,r,V,0,0},	/* min.s */
545255332Scy  {89,4,r,V,0,0},	/* min.d */
546170268Sdarrenr  {90,5,r,V,0,0},	/* prod.b */
547255332Scy  {90,6,r,V,0,0},	/* prod.h */
548170268Sdarrenr  {90,7,r,V,0,0},	/* prod.w */
549255332Scy  {90,8,r,V,0,0},	/* prod.l */
550170268Sdarrenr  {35,2,lr,VM,S,0},	/* plc.f */
551170268Sdarrenr  {35,1,lr,VM,S,0},	/* plc.t */
552170268Sdarrenr  {0,0,0,0,0,0},
553170268Sdarrenr  {0,0,0,0,0,0},
554170268Sdarrenr};
555170268Sdarrenr
556170268Sdarrenrconst struct formstr formatx[] = {
557170268Sdarrenr  {0,0,0,0,0,0},
558170268Sdarrenr};
559255332Scy
560255332Scyconst struct formstr format1a[] = {
561170268Sdarrenr  {91,0,imr,A,0,0},	/* halt */
562145510Sdarrenr  {92,0,a4,0,0,0},	/* sysc */
563145510Sdarrenr  {18,6,imr,A,0,0},	/* ld.h */
564145510Sdarrenr  {18,7,imr,A,0,0},	/* ld.w */
565255332Scy  {5,0,imr,A,0,0},	/* and */
566255332Scy  {6,0,imr,A,0,0},	/* or */
567255332Scy  {7,0,imr,A,0,0},	/* xor */
568255332Scy  {8,0,imr,A,0,0},	/* shf */
569255332Scy  {9,6,imr,A,0,0},	/* add.h */
570255332Scy  {9,7,imr,A,0,0},	/* add.w */
571255332Scy  {10,6,imr,A,0,0},	/* sub.h */
572255332Scy  {10,7,imr,A,0,0},	/* sub.w */
573255332Scy  {3,6,imr,A,0,0},	/* mul.h */
574255332Scy  {3,7,imr,A,0,0},	/* mul.w */
575170268Sdarrenr  {4,6,imr,A,0,0},	/* div.h */
576145510Sdarrenr  {4,7,imr,A,0,0},	/* div.w */
577255332Scy  {18,7,iml,VL,0,0},	/* ld.w */
578255332Scy  {18,7,iml,VS,0,0},	/* ld.w */
579145510Sdarrenr  {0,0,0,0,0,0},
580255332Scy  {8,7,imr,S,0,0},	/* shf.w */
581255332Scy  {93,0,a5,0,0,0},	/* trap */
582255332Scy  {0,0,0,0,0,0},
583255332Scy  {37,6,imr,A,0,0},	/* eq.h */
584255332Scy  {37,7,imr,A,0,0},	/* eq.w */
585255332Scy  {38,6,imr,A,0,0},	/* leu.h */
586255332Scy  {38,7,imr,A,0,0},	/* leu.w */
587255332Scy  {39,6,imr,A,0,0},	/* ltu.h */
588255332Scy  {39,7,imr,A,0,0},	/* ltu.w */
589255332Scy  {40,6,imr,A,0,0},	/* le.h */
590255332Scy  {40,7,imr,A,0,0},	/* le.w */
591255332Scy  {41,6,imr,A,0,0},	/* lt.h */
592255332Scy  {41,7,imr,A,0,0},	/* lt.w */
593170268Sdarrenr};
594170268Sdarrenr
595170268Sdarrenrconst struct formstr format1b[] = {
596145510Sdarrenr  {18,4,imr,S,0,0},	/* ld.d */
597170268Sdarrenr  {18,10,imr,S,0,0},	/* ld.u */
598170268Sdarrenr  {18,8,imr,S,0,0},	/* ld.l */
599170268Sdarrenr  {18,7,imr,S,0,0},	/* ld.w */
600255332Scy  {5,0,imr,S,0,0},	/* and */
601255332Scy  {6,0,imr,S,0,0},	/* or */
602255332Scy  {7,0,imr,S,0,0},	/* xor */
603255332Scy  {8,0,imr,S,0,0},	/* shf */
604255332Scy  {9,6,imr,S,0,0},	/* add.h */
605255332Scy  {9,7,imr,S,0,0},	/* add.w */
606255332Scy  {10,6,imr,S,0,0},	/* sub.h */
607255332Scy  {10,7,imr,S,0,0},	/* sub.w */
608255332Scy  {3,6,imr,S,0,0},	/* mul.h */
609255332Scy  {3,7,imr,S,0,0},	/* mul.w */
610255332Scy  {4,6,imr,S,0,0},	/* div.h */
611255332Scy  {4,7,imr,S,0,0},	/* div.w */
612255332Scy  {9,3,imr,S,0,0},	/* add.s */
613255332Scy  {10,3,imr,S,0,0},	/* sub.s */
614255332Scy  {3,3,imr,S,0,0},	/* mul.s */
615255332Scy  {4,3,imr,S,0,0},	/* div.s */
616255332Scy  {40,3,imr,S,0,0},	/* le.s */
617255332Scy  {41,3,imr,S,0,0},	/* lt.s */
618255332Scy  {37,6,imr,S,0,0},	/* eq.h */
619255332Scy  {37,7,imr,S,0,0},	/* eq.w */
620255332Scy  {38,6,imr,S,0,0},	/* leu.h */
621170268Sdarrenr  {38,7,imr,S,0,0},	/* leu.w */
622145510Sdarrenr  {39,6,imr,S,0,0},	/* ltu.h */
623170268Sdarrenr  {39,7,imr,S,0,0},	/* ltu.w */
624170268Sdarrenr  {40,6,imr,S,0,0},	/* le.h */
625170268Sdarrenr  {40,7,imr,S,0,0},	/* le.w */
626255332Scy  {41,6,imr,S,0,0},	/* lt.h */
627255332Scy  {41,7,imr,S,0,0},	/* lt.w */
628255332Scy};
629145510Sdarrenr
630145510Sdarrenrconst struct formstr e0_format0[] = {
631145510Sdarrenr  {10,3,rrr,S,V,V},	/* sub.s */
632145510Sdarrenr  {10,4,rrr,S,V,V},	/* sub.d */
633145510Sdarrenr  {4,3,rrr,S,V,V},	/* div.s */
634145510Sdarrenr  {4,4,rrr,S,V,V},	/* div.d */
635170268Sdarrenr  {10,11,rrr,S,V,V},	/* sub.s.f */
636255332Scy  {10,12,rrr,S,V,V},	/* sub.d.f */
637145510Sdarrenr  {4,11,rrr,S,V,V},	/* div.s.f */
638145510Sdarrenr  {4,12,rrr,S,V,V},	/* div.d.f */
639145510Sdarrenr  {3,11,rrr,V,V,V},	/* mul.s.f */
640145510Sdarrenr  {3,12,rrr,V,V,V},	/* mul.d.f */
641145510Sdarrenr  {4,11,rrr,V,V,V},	/* div.s.f */
642145510Sdarrenr  {4,12,rrr,V,V,V},	/* div.d.f */
643145510Sdarrenr  {3,11,rrr,V,S,V},	/* mul.s.f */
644145510Sdarrenr  {3,12,rrr,V,S,V},	/* mul.d.f */
645145510Sdarrenr  {4,11,rrr,V,S,V},	/* div.s.f */
646145510Sdarrenr  {4,12,rrr,V,S,V},	/* div.d.f */
647145510Sdarrenr  {5,2,rrr,V,V,V},	/* and.f */
648145510Sdarrenr  {6,2,rrr,V,V,V},	/* or.f */
649145510Sdarrenr  {7,2,rrr,V,V,V},	/* xor.f */
650145510Sdarrenr  {8,2,rrr,V,V,V},	/* shf.f */
651145510Sdarrenr  {5,2,rrr,V,S,V},	/* and.f */
652145510Sdarrenr  {6,2,rrr,V,S,V},	/* or.f */
653145510Sdarrenr  {7,2,rrr,V,S,V},	/* xor.f */
654145510Sdarrenr  {8,2,rrr,V,S,V},	/* shf.f */
655145510Sdarrenr  {9,11,rrr,V,V,V},	/* add.s.f */
656145510Sdarrenr  {9,12,rrr,V,V,V},	/* add.d.f */
657145510Sdarrenr  {10,11,rrr,V,V,V},	/* sub.s.f */
658145510Sdarrenr  {10,12,rrr,V,V,V},	/* sub.d.f */
659145510Sdarrenr  {9,11,rrr,V,S,V},	/* add.s.f */
660145510Sdarrenr  {9,12,rrr,V,S,V},	/* add.d.f */
661145510Sdarrenr  {10,11,rrr,V,S,V},	/* sub.s.f */
662145510Sdarrenr  {10,12,rrr,V,S,V},	/* sub.d.f */
663145510Sdarrenr  {9,13,rrr,V,V,V},	/* add.b.f */
664145510Sdarrenr  {9,14,rrr,V,V,V},	/* add.h.f */
665145510Sdarrenr  {9,15,rrr,V,V,V},	/* add.w.f */
666145510Sdarrenr  {9,16,rrr,V,V,V},	/* add.l.f */
667145510Sdarrenr  {9,13,rrr,V,S,V},	/* add.b.f */
668145510Sdarrenr  {9,14,rrr,V,S,V},	/* add.h.f */
669170268Sdarrenr  {9,15,rrr,V,S,V},	/* add.w.f */
670145510Sdarrenr  {9,16,rrr,V,S,V},	/* add.l.f */
671170268Sdarrenr  {10,13,rrr,V,V,V},	/* sub.b.f */
672255332Scy  {10,14,rrr,V,V,V},	/* sub.h.f */
673255332Scy  {10,15,rrr,V,V,V},	/* sub.w.f */
674145510Sdarrenr  {10,16,rrr,V,V,V},	/* sub.l.f */
675170268Sdarrenr  {10,13,rrr,V,S,V},	/* sub.b.f */
676170268Sdarrenr  {10,14,rrr,V,S,V},	/* sub.h.f */
677170268Sdarrenr  {10,15,rrr,V,S,V},	/* sub.w.f */
678255332Scy  {10,16,rrr,V,S,V},	/* sub.l.f */
679145510Sdarrenr  {3,13,rrr,V,V,V},	/* mul.b.f */
680170268Sdarrenr  {3,14,rrr,V,V,V},	/* mul.h.f */
681170268Sdarrenr  {3,15,rrr,V,V,V},	/* mul.w.f */
682170268Sdarrenr  {3,16,rrr,V,V,V},	/* mul.l.f */
683170268Sdarrenr  {3,13,rrr,V,S,V},	/* mul.b.f */
684170268Sdarrenr  {3,14,rrr,V,S,V},	/* mul.h.f */
685170268Sdarrenr  {3,15,rrr,V,S,V},	/* mul.w.f */
686170268Sdarrenr  {3,16,rrr,V,S,V},	/* mul.l.f */
687170268Sdarrenr  {4,13,rrr,V,V,V},	/* div.b.f */
688170268Sdarrenr  {4,14,rrr,V,V,V},	/* div.h.f */
689170268Sdarrenr  {4,15,rrr,V,V,V},	/* div.w.f */
690170268Sdarrenr  {4,16,rrr,V,V,V},	/* div.l.f */
691170268Sdarrenr  {4,13,rrr,V,S,V},	/* div.b.f */
692170268Sdarrenr  {4,14,rrr,V,S,V},	/* div.h.f */
693170268Sdarrenr  {4,15,rrr,V,S,V},	/* div.w.f */
694170268Sdarrenr  {4,16,rrr,V,S,V},	/* div.l.f */
695255332Scy};
696170268Sdarrenr
697145510Sdarrenrconst struct formstr e0_format1[] = {
698255332Scy  {0,0,0,0,0,0},
699255332Scy  {94,0,a3,0,0,0},	/* tst */
700255332Scy  {95,0,a3,0,0,0},	/* lck */
701170268Sdarrenr  {96,0,a3,0,0,0},	/* ulk */
702145510Sdarrenr  {17,0,a1r,S,0,0},	/* ldea */
703170268Sdarrenr  {97,0,a1r,A,0,0},	/* spawn */
704255332Scy  {98,0,a1r,A,0,0},	/* ldcmr */
705255332Scy  {99,0,a2r,A,0,0},	/* stcmr */
706255332Scy  {100,0,a1r,A,0,0},	/* popr */
707170268Sdarrenr  {101,0,a2r,A,0,0},	/* pshr */
708255332Scy  {102,7,a1r,A,0,0},	/* rcvr.w */
709255332Scy  {103,7,a2r,A,0,0},	/* matm.w */
710170268Sdarrenr  {104,7,a2r,A,0,0},	/* sndr.w */
711255332Scy  {104,8,a2r,S,0,0},	/* sndr.l */
712255332Scy  {102,8,a1r,S,0,0},	/* rcvr.l */
713255332Scy  {103,8,a2r,S,0,0},	/* matm.l */
714170268Sdarrenr  {0,0,0,0,0,0},
715255332Scy  {0,0,0,0,0,0},
716255332Scy  {0,0,0,0,0,0},
717255332Scy  {0,0,0,0,0,0},
718255332Scy  {0,0,0,0,0,0},
719255332Scy  {0,0,0,0,0,0},
720255332Scy  {0,0,0,0,0,0},
721255332Scy  {0,0,0,0,0,0},
722255332Scy  {0,0,0,0,0,0},
723255332Scy  {0,0,0,0,0,0},
724255332Scy  {0,0,0,0,0,0},
725255332Scy  {0,0,0,0,0,0},
726255332Scy  {0,0,0,0,0,0},
727255332Scy  {0,0,0,0,0,0},
728255332Scy  {0,0,0,0,0,0},
729255332Scy  {0,0,0,0,0,0},
730255332Scy  {105,7,a2r,A,0,0},	/* putr.w */
731255332Scy  {105,8,a2r,S,0,0},	/* putr.l */
732255332Scy  {106,7,a1r,A,0,0},	/* getr.w */
733255332Scy  {106,8,a1r,S,0,0},	/* getr.l */
734255332Scy  {26,13,a2r,S,0,0},	/* ste.b.f */
735255332Scy  {26,14,a2r,S,0,0},	/* ste.h.f */
736255332Scy  {26,15,a2r,S,0,0},	/* ste.w.f */
737255332Scy  {26,16,a2r,S,0,0},	/* ste.l.f */
738255332Scy  {107,7,a2r,A,0,0},	/* matr.w */
739255332Scy  {108,7,a2r,A,0,0},	/* mat.w */
740255332Scy  {109,7,a1r,A,0,0},	/* get.w */
741255332Scy  {110,7,a1r,A,0,0},	/* rcv.w */
742255332Scy  {0,0,0,0,0,0},
743255332Scy  {111,7,a1r,A,0,0},	/* inc.w */
744255332Scy  {112,7,a2r,A,0,0},	/* put.w */
745255332Scy  {113,7,a2r,A,0,0},	/* snd.w */
746255332Scy  {107,8,a2r,S,0,0},	/* matr.l */
747255332Scy  {108,8,a2r,S,0,0},	/* mat.l */
748255332Scy  {109,8,a1r,S,0,0},	/* get.l */
749255332Scy  {110,8,a1r,S,0,0},	/* rcv.l */
750255332Scy  {0,0,0,0,0,0},
751255332Scy  {111,8,a1r,S,0,0},	/* inc.l */
752255332Scy  {112,8,a2r,S,0,0},	/* put.l */
753255332Scy  {113,8,a2r,S,0,0},	/* snd.l */
754255332Scy  {18,13,a1r,V,0,0},	/* ld.b.f */
755255332Scy  {18,14,a1r,V,0,0},	/* ld.h.f */
756255332Scy  {18,15,a1r,V,0,0},	/* ld.w.f */
757255332Scy  {18,16,a1r,V,0,0},	/* ld.l.f */
758255332Scy  {21,13,a2r,V,0,0},	/* st.b.f */
759255332Scy  {21,14,a2r,V,0,0},	/* st.h.f */
760255332Scy  {21,15,a2r,V,0,0},	/* st.w.f */
761255332Scy  {21,16,a2r,V,0,0},	/* st.l.f */
762255332Scy};
763255332Scy
764255332Scyconst struct formstr e0_format2[] = {
765255332Scy  {28,5,rr,V,V,0},	/* cvtw.b */
766255332Scy  {28,6,rr,V,V,0},	/* cvtw.h */
767255332Scy  {29,7,rr,V,V,0},	/* cvtb.w */
768255332Scy  {30,7,rr,V,V,0},	/* cvth.w */
769255332Scy  {28,13,rr,V,V,0},	/* cvtw.b.f */
770255332Scy  {28,14,rr,V,V,0},	/* cvtw.h.f */
771255332Scy  {29,15,rr,V,V,0},	/* cvtb.w.f */
772255332Scy  {30,15,rr,V,V,0},	/* cvth.w.f */
773255332Scy  {31,8,rr,V,V,0},	/* cvts.l */
774255332Scy  {32,7,rr,V,V,0},	/* cvtd.w */
775255332Scy  {33,3,rr,V,V,0},	/* cvtl.s */
776255332Scy  {28,4,rr,V,V,0},	/* cvtw.d */
777255332Scy  {31,16,rr,V,V,0},	/* cvts.l.f */
778255332Scy  {32,15,rr,V,V,0},	/* cvtd.w.f */
779255332Scy  {33,11,rr,V,V,0},	/* cvtl.s.f */
780255332Scy  {28,12,rr,V,V,0},	/* cvtw.d.f */
781255332Scy  {114,0,rr,S,S,0},	/* enal */
782255332Scy  {8,7,rr,S,S,0},	/* shf.w */
783255332Scy  {115,0,rr,S,S,0},	/* enag */
784255332Scy  {0,0,0,0,0,0},
785255332Scy  {28,4,rr,S,S,0},	/* cvtw.d */
786255332Scy  {32,7,rr,S,S,0},	/* cvtd.w */
787255332Scy  {0,0,0,0,0,0},
788255332Scy  {0,0,0,0,0,0},
789255332Scy  {0,0,0,0,0,0},
790255332Scy  {0,0,0,0,0,0},
791255332Scy  {0,0,0,0,0,0},
792255332Scy  {0,0,0,0,0,0},
793255332Scy  {116,3,rr,S,S,0},	/* frint.s */
794255332Scy  {116,4,rr,S,S,0},	/* frint.d */
795255332Scy  {0,0,0,0,0,0},
796255332Scy  {0,0,0,0,0,0},
797255332Scy  {0,0,0,0,0,0},
798255332Scy  {0,0,0,0,0,0},
799255332Scy  {0,0,0,0,0,0},
800255332Scy  {0,0,0,0,0,0},
801255332Scy  {0,0,0,0,0,0},
802255332Scy  {0,0,0,0,0,0},
803255332Scy  {0,0,0,0,0,0},
804255332Scy  {0,0,0,0,0,0},
805255332Scy  {0,0,0,0,0,0},
806255332Scy  {0,0,0,0,0,0},
807255332Scy  {0,0,0,0,0,0},
808255332Scy  {0,0,0,0,0,0},
809255332Scy  {0,0,0,0,0,0},
810255332Scy  {0,0,0,0,0,0},
811255332Scy  {0,0,0,0,0,0},
812255332Scy  {0,0,0,0,0,0},
813255332Scy  {0,0,0,0,0,0},
814255332Scy  {0,0,0,0,0,0},
815255332Scy  {0,0,0,0,0,0},
816255332Scy  {0,0,0,0,0,0},
817255332Scy  {0,0,0,0,0,0},
818255332Scy  {0,0,0,0,0,0},
819255332Scy  {0,0,0,0,0,0},
820255332Scy  {0,0,0,0,0,0},
821255332Scy  {0,0,0,0,0,0},
822255332Scy  {0,0,0,0,0,0},
823255332Scy  {0,0,0,0,0,0},
824255332Scy  {0,0,0,0,0,0},
825255332Scy  {0,0,0,0,0,0},
826255332Scy  {0,0,0,0,0,0},
827255332Scy  {0,0,0,0,0,0},
828255332Scy  {0,0,0,0,0,0},
829255332Scy  {0,0,0,0,0,0},
830255332Scy  {0,0,0,0,0,0},
831255332Scy  {0,0,0,0,0,0},
832255332Scy  {0,0,0,0,0,0},
833255332Scy  {0,0,0,0,0,0},
834255332Scy  {0,0,0,0,0,0},
835255332Scy  {0,0,0,0,0,0},
836255332Scy  {0,0,0,0,0,0},
837255332Scy  {0,0,0,0,0,0},
838255332Scy  {0,0,0,0,0,0},
839255332Scy  {0,0,0,0,0,0},
840255332Scy  {0,0,0,0,0,0},
841255332Scy  {0,0,0,0,0,0},
842255332Scy  {0,0,0,0,0,0},
843255332Scy  {0,0,0,0,0,0},
844255332Scy  {0,0,0,0,0,0},
845255332Scy  {0,0,0,0,0,0},
846255332Scy  {0,0,0,0,0,0},
847255332Scy  {0,0,0,0,0,0},
848255332Scy  {0,0,0,0,0,0},
849255332Scy  {0,0,0,0,0,0},
850255332Scy  {0,0,0,0,0,0},
851255332Scy  {0,0,0,0,0,0},
852255332Scy  {0,0,0,0,0,0},
853255332Scy  {0,0,0,0,0,0},
854255332Scy  {0,0,0,0,0,0},
855145510Sdarrenr  {0,0,0,0,0,0},
856255332Scy  {0,0,0,0,0,0},
857255332Scy  {0,0,0,0,0,0},
858145510Sdarrenr  {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  {0,0,0,0,0,0},
863  {116,3,rr,V,V,0},	/* frint.s */
864  {116,4,rr,V,V,0},	/* frint.d */
865  {0,0,0,0,0,0},
866  {0,0,0,0,0,0},
867  {116,11,rr,V,V,0},	/* frint.s.f */
868  {116,12,rr,V,V,0},	/* frint.d.f */
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  {0,0,0,0,0,0},
881  {81,3,rr,V,V,0},	/* sqrt.s */
882  {81,4,rr,V,V,0},	/* sqrt.d */
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  {0,0,0,0,0,0},
889  {81,11,rr,V,V,0},	/* sqrt.s.f */
890  {81,12,rr,V,V,0},	/* sqrt.d.f */
891  {0,0,0,0,0,0},
892  {0,0,0,0,0,0},
893};
894
895const struct formstr e0_format3[] = {
896  {32,11,rr,V,V,0},	/* cvtd.s.f */
897  {31,12,rr,V,V,0},	/* cvts.d.f */
898  {33,12,rr,V,V,0},	/* cvtl.d.f */
899  {32,16,rr,V,V,0},	/* cvtd.l.f */
900  {0,0,0,0,0,0},
901  {0,0,0,0,0,0},
902  {0,0,0,0,0,0},
903  {0,0,0,0,0,0},
904  {36,2,rr,V,V,0},	/* tzc.f */
905  {44,2,rr,V,V,0},	/* lop.f */
906  {117,2,rr,V,V,0},	/* xpnd.f */
907  {42,2,rr,V,V,0},	/* not.f */
908  {8,2,rr,S,V,0},	/* shf.f */
909  {35,17,rr,V,V,0},	/* plc.t.f */
910  {0,0,0,0,0,0},
911  {0,0,0,0,0,0},
912  {37,11,rr,V,V,0},	/* eq.s.f */
913  {37,12,rr,V,V,0},	/* eq.d.f */
914  {43,11,rr,V,V,0},	/* neg.s.f */
915  {43,12,rr,V,V,0},	/* neg.d.f */
916  {37,11,rr,S,V,0},	/* eq.s.f */
917  {37,12,rr,S,V,0},	/* eq.d.f */
918  {0,0,0,0,0,0},
919  {0,0,0,0,0,0},
920  {40,11,rr,V,V,0},	/* le.s.f */
921  {40,12,rr,V,V,0},	/* le.d.f */
922  {41,11,rr,V,V,0},	/* lt.s.f */
923  {41,12,rr,V,V,0},	/* lt.d.f */
924  {40,11,rr,S,V,0},	/* le.s.f */
925  {40,12,rr,S,V,0},	/* le.d.f */
926  {41,11,rr,S,V,0},	/* lt.s.f */
927  {41,12,rr,S,V,0},	/* lt.d.f */
928  {37,13,rr,V,V,0},	/* eq.b.f */
929  {37,14,rr,V,V,0},	/* eq.h.f */
930  {37,15,rr,V,V,0},	/* eq.w.f */
931  {37,16,rr,V,V,0},	/* eq.l.f */
932  {37,13,rr,S,V,0},	/* eq.b.f */
933  {37,14,rr,S,V,0},	/* eq.h.f */
934  {37,15,rr,S,V,0},	/* eq.w.f */
935  {37,16,rr,S,V,0},	/* eq.l.f */
936  {40,13,rr,V,V,0},	/* le.b.f */
937  {40,14,rr,V,V,0},	/* le.h.f */
938  {40,15,rr,V,V,0},	/* le.w.f */
939  {40,16,rr,V,V,0},	/* le.l.f */
940  {40,13,rr,S,V,0},	/* le.b.f */
941  {40,14,rr,S,V,0},	/* le.h.f */
942  {40,15,rr,S,V,0},	/* le.w.f */
943  {40,16,rr,S,V,0},	/* le.l.f */
944  {41,13,rr,V,V,0},	/* lt.b.f */
945  {41,14,rr,V,V,0},	/* lt.h.f */
946  {41,15,rr,V,V,0},	/* lt.w.f */
947  {41,16,rr,V,V,0},	/* lt.l.f */
948  {41,13,rr,S,V,0},	/* lt.b.f */
949  {41,14,rr,S,V,0},	/* lt.h.f */
950  {41,15,rr,S,V,0},	/* lt.w.f */
951  {41,16,rr,S,V,0},	/* lt.l.f */
952  {43,13,rr,V,V,0},	/* neg.b.f */
953  {43,14,rr,V,V,0},	/* neg.h.f */
954  {43,15,rr,V,V,0},	/* neg.w.f */
955  {43,16,rr,V,V,0},	/* neg.l.f */
956  {0,0,0,0,0,0},
957  {0,0,0,0,0,0},
958  {0,0,0,0,0,0},
959  {0,0,0,0,0,0},
960};
961
962const struct formstr e0_format4[] = {
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  {0,0,0,0,0,0},
971};
972
973const struct formstr e0_format5[] = {
974  {51,13,rr,V,V,0},	/* ldvi.b.f */
975  {51,14,rr,V,V,0},	/* ldvi.h.f */
976  {51,15,rr,V,V,0},	/* ldvi.w.f */
977  {51,16,rr,V,V,0},	/* ldvi.l.f */
978  {28,11,rr,V,V,0},	/* cvtw.s.f */
979  {31,15,rr,V,V,0},	/* cvts.w.f */
980  {28,16,rr,V,V,0},	/* cvtw.l.f */
981  {33,15,rr,V,V,0},	/* cvtl.w.f */
982  {52,13,rxr,V,V,0},	/* stvi.b.f */
983  {52,14,rxr,V,V,0},	/* stvi.h.f */
984  {52,15,rxr,V,V,0},	/* stvi.w.f */
985  {52,16,rxr,V,V,0},	/* stvi.l.f */
986  {52,13,rxr,S,V,0},	/* stvi.b.f */
987  {52,14,rxr,S,V,0},	/* stvi.h.f */
988  {52,15,rxr,S,V,0},	/* stvi.w.f */
989  {52,16,rxr,S,V,0},	/* stvi.l.f */
990};
991
992const struct formstr e0_format6[] = {
993  {0,0,rxl,S,CIR,0},	/* mov */
994  {0,0,lr,CIR,S,0},	/* mov */
995  {0,0,lr,TOC,S,0},	/* mov */
996  {0,0,lr,CPUID,S,0},	/* mov */
997  {0,0,rxl,S,TTR,0},	/* mov */
998  {0,0,lr,TTR,S,0},	/* mov */
999  {118,0,nops,0,0,0},	/* ctrsl */
1000  {119,0,nops,0,0,0},	/* ctrsg */
1001  {0,0,rxl,S,VMU,0},	/* mov */
1002  {0,0,lr,VMU,S,0},	/* mov */
1003  {0,0,rxl,S,VML,0},	/* mov */
1004  {0,0,lr,VML,S,0},	/* mov */
1005  {0,0,rxl,S,ICR,0},	/* mov */
1006  {0,0,lr,ICR,S,0},	/* mov */
1007  {0,0,rxl,S,TCPU,0},	/* mov */
1008  {0,0,lr,TCPU,S,0},	/* mov */
1009  {0,0,0,0,0,0},
1010  {0,0,0,0,0,0},
1011  {0,0,0,0,0,0},
1012  {0,0,0,0,0,0},
1013  {120,0,nops,0,0,0},	/* stop */
1014  {0,0,0,0,0,0},
1015  {0,0,rxl,S,TID,0},	/* mov */
1016  {0,0,lr,TID,S,0},	/* mov */
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  {0,0,0,0,0,0},
1057};
1058
1059const struct formstr e0_format7[] = {
1060  {84,13,r,V,0,0},	/* sum.b.f */
1061  {84,14,r,V,0,0},	/* sum.h.f */
1062  {84,15,r,V,0,0},	/* sum.w.f */
1063  {84,16,r,V,0,0},	/* sum.l.f */
1064  {85,2,r,V,0,0},	/* all.f */
1065  {86,2,r,V,0,0},	/* any.f */
1066  {87,2,r,V,0,0},	/* parity.f */
1067  {0,0,0,0,0,0},
1068  {88,13,r,V,0,0},	/* max.b.f */
1069  {88,14,r,V,0,0},	/* max.h.f */
1070  {88,15,r,V,0,0},	/* max.w.f */
1071  {88,16,r,V,0,0},	/* max.l.f */
1072  {89,13,r,V,0,0},	/* min.b.f */
1073  {89,14,r,V,0,0},	/* min.h.f */
1074  {89,15,r,V,0,0},	/* min.w.f */
1075  {89,16,r,V,0,0},	/* min.l.f */
1076  {84,11,r,V,0,0},	/* sum.s.f */
1077  {84,12,r,V,0,0},	/* sum.d.f */
1078  {90,11,r,V,0,0},	/* prod.s.f */
1079  {90,12,r,V,0,0},	/* prod.d.f */
1080  {88,11,r,V,0,0},	/* max.s.f */
1081  {88,12,r,V,0,0},	/* max.d.f */
1082  {89,11,r,V,0,0},	/* min.s.f */
1083  {89,12,r,V,0,0},	/* min.d.f */
1084  {90,13,r,V,0,0},	/* prod.b.f */
1085  {90,14,r,V,0,0},	/* prod.h.f */
1086  {90,15,r,V,0,0},	/* prod.w.f */
1087  {90,16,r,V,0,0},	/* prod.l.f */
1088  {0,0,0,0,0,0},
1089  {0,0,0,0,0,0},
1090  {0,0,0,0,0,0},
1091  {0,0,0,0,0,0},
1092};
1093
1094const struct formstr e1_format0[] = {
1095  {0,0,0,0,0,0},
1096  {0,0,0,0,0,0},
1097  {0,0,0,0,0,0},
1098  {0,0,0,0,0,0},
1099  {10,18,rrr,S,V,V},	/* sub.s.t */
1100  {10,19,rrr,S,V,V},	/* sub.d.t */
1101  {4,18,rrr,S,V,V},	/* div.s.t */
1102  {4,19,rrr,S,V,V},	/* div.d.t */
1103  {3,18,rrr,V,V,V},	/* mul.s.t */
1104  {3,19,rrr,V,V,V},	/* mul.d.t */
1105  {4,18,rrr,V,V,V},	/* div.s.t */
1106  {4,19,rrr,V,V,V},	/* div.d.t */
1107  {3,18,rrr,V,S,V},	/* mul.s.t */
1108  {3,19,rrr,V,S,V},	/* mul.d.t */
1109  {4,18,rrr,V,S,V},	/* div.s.t */
1110  {4,19,rrr,V,S,V},	/* div.d.t */
1111  {5,1,rrr,V,V,V},	/* and.t */
1112  {6,1,rrr,V,V,V},	/* or.t */
1113  {7,1,rrr,V,V,V},	/* xor.t */
1114  {8,1,rrr,V,V,V},	/* shf.t */
1115  {5,1,rrr,V,S,V},	/* and.t */
1116  {6,1,rrr,V,S,V},	/* or.t */
1117  {7,1,rrr,V,S,V},	/* xor.t */
1118  {8,1,rrr,V,S,V},	/* shf.t */
1119  {9,18,rrr,V,V,V},	/* add.s.t */
1120  {9,19,rrr,V,V,V},	/* add.d.t */
1121  {10,18,rrr,V,V,V},	/* sub.s.t */
1122  {10,19,rrr,V,V,V},	/* sub.d.t */
1123  {9,18,rrr,V,S,V},	/* add.s.t */
1124  {9,19,rrr,V,S,V},	/* add.d.t */
1125  {10,18,rrr,V,S,V},	/* sub.s.t */
1126  {10,19,rrr,V,S,V},	/* sub.d.t */
1127  {9,20,rrr,V,V,V},	/* add.b.t */
1128  {9,21,rrr,V,V,V},	/* add.h.t */
1129  {9,22,rrr,V,V,V},	/* add.w.t */
1130  {9,23,rrr,V,V,V},	/* add.l.t */
1131  {9,20,rrr,V,S,V},	/* add.b.t */
1132  {9,21,rrr,V,S,V},	/* add.h.t */
1133  {9,22,rrr,V,S,V},	/* add.w.t */
1134  {9,23,rrr,V,S,V},	/* add.l.t */
1135  {10,20,rrr,V,V,V},	/* sub.b.t */
1136  {10,21,rrr,V,V,V},	/* sub.h.t */
1137  {10,22,rrr,V,V,V},	/* sub.w.t */
1138  {10,23,rrr,V,V,V},	/* sub.l.t */
1139  {10,20,rrr,V,S,V},	/* sub.b.t */
1140  {10,21,rrr,V,S,V},	/* sub.h.t */
1141  {10,22,rrr,V,S,V},	/* sub.w.t */
1142  {10,23,rrr,V,S,V},	/* sub.l.t */
1143  {3,20,rrr,V,V,V},	/* mul.b.t */
1144  {3,21,rrr,V,V,V},	/* mul.h.t */
1145  {3,22,rrr,V,V,V},	/* mul.w.t */
1146  {3,23,rrr,V,V,V},	/* mul.l.t */
1147  {3,20,rrr,V,S,V},	/* mul.b.t */
1148  {3,21,rrr,V,S,V},	/* mul.h.t */
1149  {3,22,rrr,V,S,V},	/* mul.w.t */
1150  {3,23,rrr,V,S,V},	/* mul.l.t */
1151  {4,20,rrr,V,V,V},	/* div.b.t */
1152  {4,21,rrr,V,V,V},	/* div.h.t */
1153  {4,22,rrr,V,V,V},	/* div.w.t */
1154  {4,23,rrr,V,V,V},	/* div.l.t */
1155  {4,20,rrr,V,S,V},	/* div.b.t */
1156  {4,21,rrr,V,S,V},	/* div.h.t */
1157  {4,22,rrr,V,S,V},	/* div.w.t */
1158  {4,23,rrr,V,S,V},	/* div.l.t */
1159};
1160
1161const struct formstr e1_format1[] = {
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  {0,0,0,0,0,0},
1198  {26,20,a2r,S,0,0},	/* ste.b.t */
1199  {26,21,a2r,S,0,0},	/* ste.h.t */
1200  {26,22,a2r,S,0,0},	/* ste.w.t */
1201  {26,23,a2r,S,0,0},	/* ste.l.t */
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  {0,0,0,0,0,0},
1218  {18,20,a1r,V,0,0},	/* ld.b.t */
1219  {18,21,a1r,V,0,0},	/* ld.h.t */
1220  {18,22,a1r,V,0,0},	/* ld.w.t */
1221  {18,23,a1r,V,0,0},	/* ld.l.t */
1222  {21,20,a2r,V,0,0},	/* st.b.t */
1223  {21,21,a2r,V,0,0},	/* st.h.t */
1224  {21,22,a2r,V,0,0},	/* st.w.t */
1225  {21,23,a2r,V,0,0},	/* st.l.t */
1226};
1227
1228const struct formstr e1_format2[] = {
1229  {0,0,0,0,0,0},
1230  {0,0,0,0,0,0},
1231  {0,0,0,0,0,0},
1232  {0,0,0,0,0,0},
1233  {28,20,rr,V,V,0},	/* cvtw.b.t */
1234  {28,21,rr,V,V,0},	/* cvtw.h.t */
1235  {29,22,rr,V,V,0},	/* cvtb.w.t */
1236  {30,22,rr,V,V,0},	/* cvth.w.t */
1237  {0,0,0,0,0,0},
1238  {0,0,0,0,0,0},
1239  {0,0,0,0,0,0},
1240  {0,0,0,0,0,0},
1241  {31,23,rr,V,V,0},	/* cvts.l.t */
1242  {32,22,rr,V,V,0},	/* cvtd.w.t */
1243  {33,18,rr,V,V,0},	/* cvtl.s.t */
1244  {28,19,rr,V,V,0},	/* cvtw.d.t */
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  {0,0,0,0,0,0},
1331  {116,18,rr,V,V,0},	/* frint.s.t */
1332  {116,19,rr,V,V,0},	/* frint.d.t */
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  {0,0,0,0,0,0},
1353  {81,18,rr,V,V,0},	/* sqrt.s.t */
1354  {81,19,rr,V,V,0},	/* sqrt.d.t */
1355  {0,0,0,0,0,0},
1356  {0,0,0,0,0,0},
1357};
1358
1359const struct formstr e1_format3[] = {
1360  {32,18,rr,V,V,0},	/* cvtd.s.t */
1361  {31,19,rr,V,V,0},	/* cvts.d.t */
1362  {33,19,rr,V,V,0},	/* cvtl.d.t */
1363  {32,23,rr,V,V,0},	/* cvtd.l.t */
1364  {0,0,0,0,0,0},
1365  {0,0,0,0,0,0},
1366  {0,0,0,0,0,0},
1367  {0,0,0,0,0,0},
1368  {36,1,rr,V,V,0},	/* tzc.t */
1369  {44,1,rr,V,V,0},	/* lop.t */
1370  {117,1,rr,V,V,0},	/* xpnd.t */
1371  {42,1,rr,V,V,0},	/* not.t */
1372  {8,1,rr,S,V,0},	/* shf.t */
1373  {35,24,rr,V,V,0},	/* plc.t.t */
1374  {0,0,0,0,0,0},
1375  {0,0,0,0,0,0},
1376  {37,18,rr,V,V,0},	/* eq.s.t */
1377  {37,19,rr,V,V,0},	/* eq.d.t */
1378  {43,18,rr,V,V,0},	/* neg.s.t */
1379  {43,19,rr,V,V,0},	/* neg.d.t */
1380  {37,18,rr,S,V,0},	/* eq.s.t */
1381  {37,19,rr,S,V,0},	/* eq.d.t */
1382  {0,0,0,0,0,0},
1383  {0,0,0,0,0,0},
1384  {40,18,rr,V,V,0},	/* le.s.t */
1385  {40,19,rr,V,V,0},	/* le.d.t */
1386  {41,18,rr,V,V,0},	/* lt.s.t */
1387  {41,19,rr,V,V,0},	/* lt.d.t */
1388  {40,18,rr,S,V,0},	/* le.s.t */
1389  {40,19,rr,S,V,0},	/* le.d.t */
1390  {41,18,rr,S,V,0},	/* lt.s.t */
1391  {41,19,rr,S,V,0},	/* lt.d.t */
1392  {37,20,rr,V,V,0},	/* eq.b.t */
1393  {37,21,rr,V,V,0},	/* eq.h.t */
1394  {37,22,rr,V,V,0},	/* eq.w.t */
1395  {37,23,rr,V,V,0},	/* eq.l.t */
1396  {37,20,rr,S,V,0},	/* eq.b.t */
1397  {37,21,rr,S,V,0},	/* eq.h.t */
1398  {37,22,rr,S,V,0},	/* eq.w.t */
1399  {37,23,rr,S,V,0},	/* eq.l.t */
1400  {40,20,rr,V,V,0},	/* le.b.t */
1401  {40,21,rr,V,V,0},	/* le.h.t */
1402  {40,22,rr,V,V,0},	/* le.w.t */
1403  {40,23,rr,V,V,0},	/* le.l.t */
1404  {40,20,rr,S,V,0},	/* le.b.t */
1405  {40,21,rr,S,V,0},	/* le.h.t */
1406  {40,22,rr,S,V,0},	/* le.w.t */
1407  {40,23,rr,S,V,0},	/* le.l.t */
1408  {41,20,rr,V,V,0},	/* lt.b.t */
1409  {41,21,rr,V,V,0},	/* lt.h.t */
1410  {41,22,rr,V,V,0},	/* lt.w.t */
1411  {41,23,rr,V,V,0},	/* lt.l.t */
1412  {41,20,rr,S,V,0},	/* lt.b.t */
1413  {41,21,rr,S,V,0},	/* lt.h.t */
1414  {41,22,rr,S,V,0},	/* lt.w.t */
1415  {41,23,rr,S,V,0},	/* lt.l.t */
1416  {43,20,rr,V,V,0},	/* neg.b.t */
1417  {43,21,rr,V,V,0},	/* neg.h.t */
1418  {43,22,rr,V,V,0},	/* neg.w.t */
1419  {43,23,rr,V,V,0},	/* neg.l.t */
1420  {0,0,0,0,0,0},
1421  {0,0,0,0,0,0},
1422  {0,0,0,0,0,0},
1423  {0,0,0,0,0,0},
1424};
1425
1426const struct formstr e1_format4[] = {
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  {0,0,0,0,0,0},
1435};
1436
1437const struct formstr e1_format5[] = {
1438  {51,20,rr,V,V,0},	/* ldvi.b.t */
1439  {51,21,rr,V,V,0},	/* ldvi.h.t */
1440  {51,22,rr,V,V,0},	/* ldvi.w.t */
1441  {51,23,rr,V,V,0},	/* ldvi.l.t */
1442  {28,18,rr,V,V,0},	/* cvtw.s.t */
1443  {31,22,rr,V,V,0},	/* cvts.w.t */
1444  {28,23,rr,V,V,0},	/* cvtw.l.t */
1445  {33,22,rr,V,V,0},	/* cvtl.w.t */
1446  {52,20,rxr,V,V,0},	/* stvi.b.t */
1447  {52,21,rxr,V,V,0},	/* stvi.h.t */
1448  {52,22,rxr,V,V,0},	/* stvi.w.t */
1449  {52,23,rxr,V,V,0},	/* stvi.l.t */
1450  {52,20,rxr,S,V,0},	/* stvi.b.t */
1451  {52,21,rxr,S,V,0},	/* stvi.h.t */
1452  {52,22,rxr,S,V,0},	/* stvi.w.t */
1453  {52,23,rxr,S,V,0},	/* stvi.l.t */
1454};
1455
1456const struct formstr e1_format6[] = {
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  {0,0,0,0,0,0},
1521};
1522
1523const struct formstr e1_format7[] = {
1524  {84,20,r,V,0,0},	/* sum.b.t */
1525  {84,21,r,V,0,0},	/* sum.h.t */
1526  {84,22,r,V,0,0},	/* sum.w.t */
1527  {84,23,r,V,0,0},	/* sum.l.t */
1528  {85,1,r,V,0,0},	/* all.t */
1529  {86,1,r,V,0,0},	/* any.t */
1530  {87,1,r,V,0,0},	/* parity.t */
1531  {0,0,0,0,0,0},
1532  {88,20,r,V,0,0},	/* max.b.t */
1533  {88,21,r,V,0,0},	/* max.h.t */
1534  {88,22,r,V,0,0},	/* max.w.t */
1535  {88,23,r,V,0,0},	/* max.l.t */
1536  {89,20,r,V,0,0},	/* min.b.t */
1537  {89,21,r,V,0,0},	/* min.h.t */
1538  {89,22,r,V,0,0},	/* min.w.t */
1539  {89,23,r,V,0,0},	/* min.l.t */
1540  {84,18,r,V,0,0},	/* sum.s.t */
1541  {84,19,r,V,0,0},	/* sum.d.t */
1542  {90,18,r,V,0,0},	/* prod.s.t */
1543  {90,19,r,V,0,0},	/* prod.d.t */
1544  {88,18,r,V,0,0},	/* max.s.t */
1545  {88,19,r,V,0,0},	/* max.d.t */
1546  {89,18,r,V,0,0},	/* min.s.t */
1547  {89,19,r,V,0,0},	/* min.d.t */
1548  {90,20,r,V,0,0},	/* prod.b.t */
1549  {90,21,r,V,0,0},	/* prod.h.t */
1550  {90,22,r,V,0,0},	/* prod.w.t */
1551  {90,23,r,V,0,0},	/* prod.l.t */
1552  {0,0,0,0,0,0},
1553  {0,0,0,0,0,0},
1554  {0,0,0,0,0,0},
1555  {0,0,0,0,0,0},
1556};
1557
1558char *lop[] = {
1559  "mov",	/* 0 */
1560  "merg",	/* 1 */
1561  "mask",	/* 2 */
1562  "mul",	/* 3 */
1563  "div",	/* 4 */
1564  "and",	/* 5 */
1565  "or",	/* 6 */
1566  "xor",	/* 7 */
1567  "shf",	/* 8 */
1568  "add",	/* 9 */
1569  "sub",	/* 10 */
1570  "exit",	/* 11 */
1571  "jmp",	/* 12 */
1572  "jmpi",	/* 13 */
1573  "jmpa",	/* 14 */
1574  "jmps",	/* 15 */
1575  "tac",	/* 16 */
1576  "ldea",	/* 17 */
1577  "ld",	/* 18 */
1578  "tas",	/* 19 */
1579  "pshea",	/* 20 */
1580  "st",	/* 21 */
1581  "call",	/* 22 */
1582  "calls",	/* 23 */
1583  "callq",	/* 24 */
1584  "pfork",	/* 25 */
1585  "ste",	/* 26 */
1586  "incr",	/* 27 */
1587  "cvtw",	/* 28 */
1588  "cvtb",	/* 29 */
1589  "cvth",	/* 30 */
1590  "cvts",	/* 31 */
1591  "cvtd",	/* 32 */
1592  "cvtl",	/* 33 */
1593  "ldpa",	/* 34 */
1594  "plc",	/* 35 */
1595  "tzc",	/* 36 */
1596  "eq",	/* 37 */
1597  "leu",	/* 38 */
1598  "ltu",	/* 39 */
1599  "le",	/* 40 */
1600  "lt",	/* 41 */
1601  "not",	/* 42 */
1602  "neg",	/* 43 */
1603  "lop",	/* 44 */
1604  "cprs",	/* 45 */
1605  "nop",	/* 46 */
1606  "br",	/* 47 */
1607  "bri",	/* 48 */
1608  "bra",	/* 49 */
1609  "brs",	/* 50 */
1610  "ldvi",	/* 51 */
1611  "stvi",	/* 52 */
1612  "ldsdr",	/* 53 */
1613  "ldkdr",	/* 54 */
1614  "ln",	/* 55 */
1615  "patu",	/* 56 */
1616  "pate",	/* 57 */
1617  "pich",	/* 58 */
1618  "plch",	/* 59 */
1619  "idle",	/* 60 */
1620  "rtnq",	/* 61 */
1621  "cfork",	/* 62 */
1622  "rtn",	/* 63 */
1623  "wfork",	/* 64 */
1624  "join",	/* 65 */
1625  "rtnc",	/* 66 */
1626  "exp",	/* 67 */
1627  "sin",	/* 68 */
1628  "cos",	/* 69 */
1629  "psh",	/* 70 */
1630  "pop",	/* 71 */
1631  "eni",	/* 72 */
1632  "dsi",	/* 73 */
1633  "bkpt",	/* 74 */
1634  "msync",	/* 75 */
1635  "mski",	/* 76 */
1636  "xmti",	/* 77 */
1637  "tstvv",	/* 78 */
1638  "diag",	/* 79 */
1639  "pbkpt",	/* 80 */
1640  "sqrt",	/* 81 */
1641  "casr",	/* 82 */
1642  "atan",	/* 83 */
1643  "sum",	/* 84 */
1644  "all",	/* 85 */
1645  "any",	/* 86 */
1646  "parity",	/* 87 */
1647  "max",	/* 88 */
1648  "min",	/* 89 */
1649  "prod",	/* 90 */
1650  "halt",	/* 91 */
1651  "sysc",	/* 92 */
1652  "trap",	/* 93 */
1653  "tst",	/* 94 */
1654  "lck",	/* 95 */
1655  "ulk",	/* 96 */
1656  "spawn",	/* 97 */
1657  "ldcmr",	/* 98 */
1658  "stcmr",	/* 99 */
1659  "popr",	/* 100 */
1660  "pshr",	/* 101 */
1661  "rcvr",	/* 102 */
1662  "matm",	/* 103 */
1663  "sndr",	/* 104 */
1664  "putr",	/* 105 */
1665  "getr",	/* 106 */
1666  "matr",	/* 107 */
1667  "mat",	/* 108 */
1668  "get",	/* 109 */
1669  "rcv",	/* 110 */
1670  "inc",	/* 111 */
1671  "put",	/* 112 */
1672  "snd",	/* 113 */
1673  "enal",	/* 114 */
1674  "enag",	/* 115 */
1675  "frint",	/* 116 */
1676  "xpnd",	/* 117 */
1677  "ctrsl",	/* 118 */
1678  "ctrsg",	/* 119 */
1679  "stop",	/* 120 */
1680};
1681
1682char *rop[] = {
1683  "",	/* 0 */
1684  ".t",	/* 1 */
1685  ".f",	/* 2 */
1686  ".s",	/* 3 */
1687  ".d",	/* 4 */
1688  ".b",	/* 5 */
1689  ".h",	/* 6 */
1690  ".w",	/* 7 */
1691  ".l",	/* 8 */
1692  ".x",	/* 9 */
1693  ".u",	/* 10 */
1694  ".s.f",	/* 11 */
1695  ".d.f",	/* 12 */
1696  ".b.f",	/* 13 */
1697  ".h.f",	/* 14 */
1698  ".w.f",	/* 15 */
1699  ".l.f",	/* 16 */
1700  ".t.f",	/* 17 */
1701  ".s.t",	/* 18 */
1702  ".d.t",	/* 19 */
1703  ".b.t",	/* 20 */
1704  ".h.t",	/* 21 */
1705  ".w.t",	/* 22 */
1706  ".l.t",	/* 23 */
1707  ".t.t",	/* 24 */
1708};
1709