OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [branches/] [oc/] [gdb-5.0/] [include/] [opcode/] [convex.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 106 markom
/* Information for instruction disassembly on the Convex.
2
   Copyright 1989, 1993 Free Software Foundation.
3
 
4
This file is part of GDB.
5
 
6
This program is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2 of the License, or
9
(at your option) any later version.
10
 
11
This program is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
GNU General Public License for more details.
15
 
16
You should have received a copy of the GNU General Public License
17
along with this program; if not, write to the Free Software
18
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
19
 
20
#ifndef CONST
21
#define CONST
22
#endif  /* CONST */
23
 
24
#define xxx 0
25
#define rrr 1
26
#define rr 2
27
#define rxr 3
28
#define r 4
29
#define nops 5
30
#define nr 6
31
#define pcrel 7
32
#define lr 8
33
#define rxl 9
34
#define rlr 10
35
#define rrl 11
36
#define iml 12
37
#define imr 13
38
#define a1r 14
39
#define a1l 15
40
#define a2r 16
41
#define a2l 17
42
#define a3 18
43
#define a4 19
44
#define a5 20
45
#define V 1
46
#define S 2
47
#define VM 3
48
#define A 4
49
#define VL 5
50
#define VS 6
51
#define VLS 7
52
#define PSW 8
53
/* Prevent an error during "make depend".  */
54
#if !defined (PC)
55
#define PC 9
56
#endif
57
#define ITR 10
58
#define VV 11
59
#define ITSR 12
60
#define TOC 13
61
#define CIR 14
62
#define TTR 15
63
#define VMU 16
64
#define VML 17
65
#define ICR 18
66
#define TCPU 19
67
#define CPUID 20
68
#define TID 21
69
 
70
CONST char *op[] = {
71
  "",
72
  "v0\0v1\0v2\0v3\0v4\0v5\0v6\0v7",
73
  "s0\0s1\0s2\0s3\0s4\0s5\0s6\0s7",
74
  "vm",
75
  "sp\0a1\0a2\0a3\0a4\0a5\0ap\0fp",
76
  "vl",
77
  "vs",
78
  "vls",
79
  "psw",
80
  "pc",
81
  "itr",
82
  "vv",
83
  "itsr",
84
  "toc",
85
  "cir",
86
  "ttr",
87
  "vmu",
88
  "vml",
89
  "icr",
90
  "tcpu",
91
  "cpuid",
92
  "tid",
93
};
94
 
95
CONST struct formstr format0[] = {
96
  {0,0,rrr,V,S,S},        /* mov */
97
  {0,0,rrr,S,S,V},        /* mov */
98
  {1,1,rrr,V,V,V},      /* merg.t */
99
  {2,1,rrr,V,V,V},      /* mask.t */
100
  {1,2,rrr,V,S,V},      /* merg.f */
101
  {2,2,rrr,V,S,V},      /* mask.f */
102
  {1,1,rrr,V,S,V},      /* merg.t */
103
  {2,1,rrr,V,S,V},      /* mask.t */
104
  {3,3,rrr,V,V,V},      /* mul.s */
105
  {3,4,rrr,V,V,V},      /* mul.d */
106
  {4,3,rrr,V,V,V},      /* div.s */
107
  {4,4,rrr,V,V,V},      /* div.d */
108
  {3,3,rrr,V,S,V},      /* mul.s */
109
  {3,4,rrr,V,S,V},      /* mul.d */
110
  {4,3,rrr,V,S,V},      /* div.s */
111
  {4,4,rrr,V,S,V},      /* div.d */
112
  {5,0,rrr,V,V,V},       /* and */
113
  {6,0,rrr,V,V,V},       /* or */
114
  {7,0,rrr,V,V,V},       /* xor */
115
  {8,0,rrr,V,V,V},       /* shf */
116
  {5,0,rrr,V,S,V},       /* and */
117
  {6,0,rrr,V,S,V},       /* or */
118
  {7,0,rrr,V,S,V},       /* xor */
119
  {8,0,rrr,V,S,V},       /* shf */
120
  {9,3,rrr,V,V,V},      /* add.s */
121
  {9,4,rrr,V,V,V},      /* add.d */
122
  {10,3,rrr,V,V,V},     /* sub.s */
123
  {10,4,rrr,V,V,V},     /* sub.d */
124
  {9,3,rrr,V,S,V},      /* add.s */
125
  {9,4,rrr,V,S,V},      /* add.d */
126
  {10,3,rrr,V,S,V},     /* sub.s */
127
  {10,4,rrr,V,S,V},     /* sub.d */
128
  {9,5,rrr,V,V,V},      /* add.b */
129
  {9,6,rrr,V,V,V},      /* add.h */
130
  {9,7,rrr,V,V,V},      /* add.w */
131
  {9,8,rrr,V,V,V},      /* add.l */
132
  {9,5,rrr,V,S,V},      /* add.b */
133
  {9,6,rrr,V,S,V},      /* add.h */
134
  {9,7,rrr,V,S,V},      /* add.w */
135
  {9,8,rrr,V,S,V},      /* add.l */
136
  {10,5,rrr,V,V,V},     /* sub.b */
137
  {10,6,rrr,V,V,V},     /* sub.h */
138
  {10,7,rrr,V,V,V},     /* sub.w */
139
  {10,8,rrr,V,V,V},     /* sub.l */
140
  {10,5,rrr,V,S,V},     /* sub.b */
141
  {10,6,rrr,V,S,V},     /* sub.h */
142
  {10,7,rrr,V,S,V},     /* sub.w */
143
  {10,8,rrr,V,S,V},     /* sub.l */
144
  {3,5,rrr,V,V,V},      /* mul.b */
145
  {3,6,rrr,V,V,V},      /* mul.h */
146
  {3,7,rrr,V,V,V},      /* mul.w */
147
  {3,8,rrr,V,V,V},      /* mul.l */
148
  {3,5,rrr,V,S,V},      /* mul.b */
149
  {3,6,rrr,V,S,V},      /* mul.h */
150
  {3,7,rrr,V,S,V},      /* mul.w */
151
  {3,8,rrr,V,S,V},      /* mul.l */
152
  {4,5,rrr,V,V,V},      /* div.b */
153
  {4,6,rrr,V,V,V},      /* div.h */
154
  {4,7,rrr,V,V,V},      /* div.w */
155
  {4,8,rrr,V,V,V},      /* div.l */
156
  {4,5,rrr,V,S,V},      /* div.b */
157
  {4,6,rrr,V,S,V},      /* div.h */
158
  {4,7,rrr,V,S,V},      /* div.w */
159
  {4,8,rrr,V,S,V},      /* div.l */
160
};
161
 
162
CONST struct formstr format1[] = {
163
  {11,0,xxx,0,0,0}, /* exit */
164
  {12,0,a3,0,0,0},  /* jmp */
165
  {13,2,a3,0,0,0}, /* jmpi.f */
166
  {13,1,a3,0,0,0}, /* jmpi.t */
167
  {14,2,a3,0,0,0}, /* jmpa.f */
168
  {14,1,a3,0,0,0}, /* jmpa.t */
169
  {15,2,a3,0,0,0}, /* jmps.f */
170
  {15,1,a3,0,0,0}, /* jmps.t */
171
  {16,0,a3,0,0,0},  /* tac */
172
  {17,0,a1r,A,0,0},        /* ldea */
173
  {18,8,a1l,VLS,0,0},     /* ld.l */
174
  {18,9,a1l,VM,0,0},      /* ld.x */
175
  {19,0,a3,0,0,0},  /* tas */
176
  {20,0,a3,0,0,0},  /* pshea */
177
  {21,8,a2l,VLS,0,0},     /* st.l */
178
  {21,9,a2l,VM,0,0},      /* st.x */
179
  {0,0,0,0,0,0},
180
  {0,0,0,0,0,0},
181
  {0,0,0,0,0,0},
182
  {0,0,0,0,0,0},
183
  {0,0,0,0,0,0},
184
  {0,0,0,0,0,0},
185
  {0,0,0,0,0,0},
186
  {0,0,0,0,0,0},
187
  {0,0,0,0,0,0},
188
  {0,0,0,0,0,0},
189
  {0,0,0,0,0,0},
190
  {0,0,0,0,0,0},
191
  {0,0,0,0,0,0},
192
  {0,0,0,0,0,0},
193
  {0,0,0,0,0,0},
194
  {0,0,0,0,0,0},
195
  {22,0,a3,0,0,0},  /* call */
196
  {23,0,a3,0,0,0},  /* calls */
197
  {24,0,a3,0,0,0},  /* callq */
198
  {25,0,a1r,A,0,0},        /* pfork */
199
  {26,5,a2r,S,0,0},       /* ste.b */
200
  {26,6,a2r,S,0,0},       /* ste.h */
201
  {26,7,a2r,S,0,0},       /* ste.w */
202
  {26,8,a2r,S,0,0},       /* ste.l */
203
  {18,5,a1r,A,0,0},       /* ld.b */
204
  {18,6,a1r,A,0,0},       /* ld.h */
205
  {18,7,a1r,A,0,0},       /* ld.w */
206
  {27,7,a1r,A,0,0},       /* incr.w */
207
  {21,5,a2r,A,0,0},       /* st.b */
208
  {21,6,a2r,A,0,0},       /* st.h */
209
  {21,7,a2r,A,0,0},       /* st.w */
210
  {27,8,a1r,S,0,0},       /* incr.l */
211
  {18,5,a1r,S,0,0},       /* ld.b */
212
  {18,6,a1r,S,0,0},       /* ld.h */
213
  {18,7,a1r,S,0,0},       /* ld.w */
214
  {18,8,a1r,S,0,0},       /* ld.l */
215
  {21,5,a2r,S,0,0},       /* st.b */
216
  {21,6,a2r,S,0,0},       /* st.h */
217
  {21,7,a2r,S,0,0},       /* st.w */
218
  {21,8,a2r,S,0,0},       /* st.l */
219
  {18,5,a1r,V,0,0},       /* ld.b */
220
  {18,6,a1r,V,0,0},       /* ld.h */
221
  {18,7,a1r,V,0,0},       /* ld.w */
222
  {18,8,a1r,V,0,0},       /* ld.l */
223
  {21,5,a2r,V,0,0},       /* st.b */
224
  {21,6,a2r,V,0,0},       /* st.h */
225
  {21,7,a2r,V,0,0},       /* st.w */
226
  {21,8,a2r,V,0,0},       /* st.l */
227
};
228
 
229
CONST struct formstr format2[] = {
230
  {28,5,rr,A,A,0},       /* cvtw.b */
231
  {28,6,rr,A,A,0},       /* cvtw.h */
232
  {29,7,rr,A,A,0},       /* cvtb.w */
233
  {30,7,rr,A,A,0},       /* cvth.w */
234
  {28,5,rr,S,S,0},       /* cvtw.b */
235
  {28,6,rr,S,S,0},       /* cvtw.h */
236
  {29,7,rr,S,S,0},       /* cvtb.w */
237
  {30,7,rr,S,S,0},       /* cvth.w */
238
  {28,3,rr,S,S,0},       /* cvtw.s */
239
  {31,7,rr,S,S,0},       /* cvts.w */
240
  {32,3,rr,S,S,0},       /* cvtd.s */
241
  {31,4,rr,S,S,0},       /* cvts.d */
242
  {31,8,rr,S,S,0},       /* cvts.l */
243
  {32,8,rr,S,S,0},       /* cvtd.l */
244
  {33,3,rr,S,S,0},       /* cvtl.s */
245
  {33,4,rr,S,S,0},       /* cvtl.d */
246
  {34,0,rr,A,A,0},        /* ldpa */
247
  {8,0,nr,A,0,0},  /* shf */
248
  {18,6,nr,A,0,0},        /* ld.h */
249
  {18,7,nr,A,0,0},        /* ld.w */
250
  {33,7,rr,S,S,0},       /* cvtl.w */
251
  {28,8,rr,S,S,0},       /* cvtw.l */
252
  {35,1,rr,S,S,0},       /* plc.t */
253
  {36,0,rr,S,S,0},        /* tzc */
254
  {37,6,rr,A,A,0},       /* eq.h */
255
  {37,7,rr,A,A,0},       /* eq.w */
256
  {37,6,nr,A,0,0},        /* eq.h */
257
  {37,7,nr,A,0,0},        /* eq.w */
258
  {37,5,rr,S,S,0},       /* eq.b */
259
  {37,6,rr,S,S,0},       /* eq.h */
260
  {37,7,rr,S,S,0},       /* eq.w */
261
  {37,8,rr,S,S,0},       /* eq.l */
262
  {38,6,rr,A,A,0},       /* leu.h */
263
  {38,7,rr,A,A,0},       /* leu.w */
264
  {38,6,nr,A,0,0},        /* leu.h */
265
  {38,7,nr,A,0,0},        /* leu.w */
266
  {38,5,rr,S,S,0},       /* leu.b */
267
  {38,6,rr,S,S,0},       /* leu.h */
268
  {38,7,rr,S,S,0},       /* leu.w */
269
  {38,8,rr,S,S,0},       /* leu.l */
270
  {39,6,rr,A,A,0},       /* ltu.h */
271
  {39,7,rr,A,A,0},       /* ltu.w */
272
  {39,6,nr,A,0,0},        /* ltu.h */
273
  {39,7,nr,A,0,0},        /* ltu.w */
274
  {39,5,rr,S,S,0},       /* ltu.b */
275
  {39,6,rr,S,S,0},       /* ltu.h */
276
  {39,7,rr,S,S,0},       /* ltu.w */
277
  {39,8,rr,S,S,0},       /* ltu.l */
278
  {40,6,rr,A,A,0},       /* le.h */
279
  {40,7,rr,A,A,0},       /* le.w */
280
  {40,6,nr,A,0,0},        /* le.h */
281
  {40,7,nr,A,0,0},        /* le.w */
282
  {40,5,rr,S,S,0},       /* le.b */
283
  {40,6,rr,S,S,0},       /* le.h */
284
  {40,7,rr,S,S,0},       /* le.w */
285
  {40,8,rr,S,S,0},       /* le.l */
286
  {41,6,rr,A,A,0},       /* lt.h */
287
  {41,7,rr,A,A,0},       /* lt.w */
288
  {41,6,nr,A,0,0},        /* lt.h */
289
  {41,7,nr,A,0,0},        /* lt.w */
290
  {41,5,rr,S,S,0},       /* lt.b */
291
  {41,6,rr,S,S,0},       /* lt.h */
292
  {41,7,rr,S,S,0},       /* lt.w */
293
  {41,8,rr,S,S,0},       /* lt.l */
294
  {9,7,rr,S,A,0},        /* add.w */
295
  {8,0,rr,A,A,0}, /* shf */
296
  {0,0,rr,A,A,0},  /* mov */
297
  {0,0,rr,S,A,0},  /* mov */
298
  {0,7,rr,S,S,0}, /* mov.w */
299
  {8,0,rr,S,S,0}, /* shf */
300
  {0,0,rr,S,S,0},  /* mov */
301
  {0,0,rr,A,S,0},  /* mov */
302
  {5,0,rr,A,A,0}, /* and */
303
  {6,0,rr,A,A,0}, /* or */
304
  {7,0,rr,A,A,0}, /* xor */
305
  {42,0,rr,A,A,0},        /* not */
306
  {5,0,rr,S,S,0}, /* and */
307
  {6,0,rr,S,S,0}, /* or */
308
  {7,0,rr,S,S,0}, /* xor */
309
  {42,0,rr,S,S,0},        /* not */
310
  {40,3,rr,S,S,0},       /* le.s */
311
  {40,4,rr,S,S,0},       /* le.d */
312
  {41,3,rr,S,S,0},       /* lt.s */
313
  {41,4,rr,S,S,0},       /* lt.d */
314
  {9,3,rr,S,S,0},        /* add.s */
315
  {9,4,rr,S,S,0},        /* add.d */
316
  {10,3,rr,S,S,0},       /* sub.s */
317
  {10,4,rr,S,S,0},       /* sub.d */
318
  {37,3,rr,S,S,0},       /* eq.s */
319
  {37,4,rr,S,S,0},       /* eq.d */
320
  {43,6,rr,A,A,0},       /* neg.h */
321
  {43,7,rr,A,A,0},       /* neg.w */
322
  {3,3,rr,S,S,0},        /* mul.s */
323
  {3,4,rr,S,S,0},        /* mul.d */
324
  {4,3,rr,S,S,0},        /* div.s */
325
  {4,4,rr,S,S,0},        /* div.d */
326
  {9,6,rr,A,A,0},        /* add.h */
327
  {9,7,rr,A,A,0},        /* add.w */
328
  {9,6,nr,A,0,0}, /* add.h */
329
  {9,7,nr,A,0,0}, /* add.w */
330
  {9,5,rr,S,S,0},        /* add.b */
331
  {9,6,rr,S,S,0},        /* add.h */
332
  {9,7,rr,S,S,0},        /* add.w */
333
  {9,8,rr,S,S,0},        /* add.l */
334
  {10,6,rr,A,A,0},       /* sub.h */
335
  {10,7,rr,A,A,0},       /* sub.w */
336
  {10,6,nr,A,0,0},        /* sub.h */
337
  {10,7,nr,A,0,0},        /* sub.w */
338
  {10,5,rr,S,S,0},       /* sub.b */
339
  {10,6,rr,S,S,0},       /* sub.h */
340
  {10,7,rr,S,S,0},       /* sub.w */
341
  {10,8,rr,S,S,0},       /* sub.l */
342
  {3,6,rr,A,A,0},        /* mul.h */
343
  {3,7,rr,A,A,0},        /* mul.w */
344
  {3,6,nr,A,0,0}, /* mul.h */
345
  {3,7,nr,A,0,0}, /* mul.w */
346
  {3,5,rr,S,S,0},        /* mul.b */
347
  {3,6,rr,S,S,0},        /* mul.h */
348
  {3,7,rr,S,S,0},        /* mul.w */
349
  {3,8,rr,S,S,0},        /* mul.l */
350
  {4,6,rr,A,A,0},        /* div.h */
351
  {4,7,rr,A,A,0},        /* div.w */
352
  {4,6,nr,A,0,0}, /* div.h */
353
  {4,7,nr,A,0,0}, /* div.w */
354
  {4,5,rr,S,S,0},        /* div.b */
355
  {4,6,rr,S,S,0},        /* div.h */
356
  {4,7,rr,S,S,0},        /* div.w */
357
  {4,8,rr,S,S,0},        /* div.l */
358
};
359
 
360
CONST struct formstr format3[] = {
361
  {32,3,rr,V,V,0},       /* cvtd.s */
362
  {31,4,rr,V,V,0},       /* cvts.d */
363
  {33,4,rr,V,V,0},       /* cvtl.d */
364
  {32,8,rr,V,V,0},       /* cvtd.l */
365
  {0,0,rrl,S,S,VM},       /* mov */
366
  {0,0,rlr,S,VM,S},       /* mov */
367
  {0,0,0,0,0,0},
368
  {44,0,rr,S,S,0},        /* lop */
369
  {36,0,rr,V,V,0},        /* tzc */
370
  {44,0,rr,V,V,0},        /* lop */
371
  {0,0,0,0,0,0},
372
  {42,0,rr,V,V,0},        /* not */
373
  {8,0,rr,S,V,0}, /* shf */
374
  {35,1,rr,V,V,0},       /* plc.t */
375
  {45,2,rr,V,V,0},       /* cprs.f */
376
  {45,1,rr,V,V,0},       /* cprs.t */
377
  {37,3,rr,V,V,0},       /* eq.s */
378
  {37,4,rr,V,V,0},       /* eq.d */
379
  {43,3,rr,V,V,0},       /* neg.s */
380
  {43,4,rr,V,V,0},       /* neg.d */
381
  {37,3,rr,S,V,0},       /* eq.s */
382
  {37,4,rr,S,V,0},       /* eq.d */
383
  {43,3,rr,S,S,0},       /* neg.s */
384
  {43,4,rr,S,S,0},       /* neg.d */
385
  {40,3,rr,V,V,0},       /* le.s */
386
  {40,4,rr,V,V,0},       /* le.d */
387
  {41,3,rr,V,V,0},       /* lt.s */
388
  {41,4,rr,V,V,0},       /* lt.d */
389
  {40,3,rr,S,V,0},       /* le.s */
390
  {40,4,rr,S,V,0},       /* le.d */
391
  {41,3,rr,S,V,0},       /* lt.s */
392
  {41,4,rr,S,V,0},       /* lt.d */
393
  {37,5,rr,V,V,0},       /* eq.b */
394
  {37,6,rr,V,V,0},       /* eq.h */
395
  {37,7,rr,V,V,0},       /* eq.w */
396
  {37,8,rr,V,V,0},       /* eq.l */
397
  {37,5,rr,S,V,0},       /* eq.b */
398
  {37,6,rr,S,V,0},       /* eq.h */
399
  {37,7,rr,S,V,0},       /* eq.w */
400
  {37,8,rr,S,V,0},       /* eq.l */
401
  {40,5,rr,V,V,0},       /* le.b */
402
  {40,6,rr,V,V,0},       /* le.h */
403
  {40,7,rr,V,V,0},       /* le.w */
404
  {40,8,rr,V,V,0},       /* le.l */
405
  {40,5,rr,S,V,0},       /* le.b */
406
  {40,6,rr,S,V,0},       /* le.h */
407
  {40,7,rr,S,V,0},       /* le.w */
408
  {40,8,rr,S,V,0},       /* le.l */
409
  {41,5,rr,V,V,0},       /* lt.b */
410
  {41,6,rr,V,V,0},       /* lt.h */
411
  {41,7,rr,V,V,0},       /* lt.w */
412
  {41,8,rr,V,V,0},       /* lt.l */
413
  {41,5,rr,S,V,0},       /* lt.b */
414
  {41,6,rr,S,V,0},       /* lt.h */
415
  {41,7,rr,S,V,0},       /* lt.w */
416
  {41,8,rr,S,V,0},       /* lt.l */
417
  {43,5,rr,V,V,0},       /* neg.b */
418
  {43,6,rr,V,V,0},       /* neg.h */
419
  {43,7,rr,V,V,0},       /* neg.w */
420
  {43,8,rr,V,V,0},       /* neg.l */
421
  {43,5,rr,S,S,0},       /* neg.b */
422
  {43,6,rr,S,S,0},       /* neg.h */
423
  {43,7,rr,S,S,0},       /* neg.w */
424
  {43,8,rr,S,S,0},       /* neg.l */
425
};
426
 
427
CONST struct formstr format4[] = {
428
  {46,0,nops,0,0,0},        /* nop */
429
  {47,0,pcrel,0,0,0},       /* br */
430
  {48,2,pcrel,0,0,0},      /* bri.f */
431
  {48,1,pcrel,0,0,0},      /* bri.t */
432
  {49,2,pcrel,0,0,0},      /* bra.f */
433
  {49,1,pcrel,0,0,0},      /* bra.t */
434
  {50,2,pcrel,0,0,0},      /* brs.f */
435
  {50,1,pcrel,0,0,0},      /* brs.t */
436
};
437
 
438
CONST struct formstr format5[] = {
439
  {51,5,rr,V,V,0},       /* ldvi.b */
440
  {51,6,rr,V,V,0},       /* ldvi.h */
441
  {51,7,rr,V,V,0},       /* ldvi.w */
442
  {51,8,rr,V,V,0},       /* ldvi.l */
443
  {28,3,rr,V,V,0},       /* cvtw.s */
444
  {31,7,rr,V,V,0},       /* cvts.w */
445
  {28,8,rr,V,V,0},       /* cvtw.l */
446
  {33,7,rr,V,V,0},       /* cvtl.w */
447
  {52,5,rxr,V,V,0},      /* stvi.b */
448
  {52,6,rxr,V,V,0},      /* stvi.h */
449
  {52,7,rxr,V,V,0},      /* stvi.w */
450
  {52,8,rxr,V,V,0},      /* stvi.l */
451
  {52,5,rxr,S,V,0},      /* stvi.b */
452
  {52,6,rxr,S,V,0},      /* stvi.h */
453
  {52,7,rxr,S,V,0},      /* stvi.w */
454
  {52,8,rxr,S,V,0},      /* stvi.l */
455
};
456
 
457
CONST struct formstr format6[] = {
458
  {53,0,r,A,0,0},  /* ldsdr */
459
  {54,0,r,A,0,0},  /* ldkdr */
460
  {55,3,r,S,0,0}, /* ln.s */
461
  {55,4,r,S,0,0}, /* ln.d */
462
  {56,0,nops,0,0,0},        /* patu */
463
  {57,0,r,A,0,0},  /* pate */
464
  {58,0,nops,0,0,0},        /* pich */
465
  {59,0,nops,0,0,0},        /* plch */
466
  {0,0,lr,PSW,A,0},        /* mov */
467
  {0,0,rxl,A,PSW,0},       /* mov */
468
  {0,0,lr,PC,A,0}, /* mov */
469
  {60,0,r,S,0,0},  /* idle */
470
  {0,0,lr,ITR,S,0},        /* mov */
471
  {0,0,rxl,S,ITR,0},       /* mov */
472
  {0,0,0,0,0,0},
473
  {0,0,rxl,S,ITSR,0},      /* mov */
474
  {61,0,nops,0,0,0},        /* rtnq */
475
  {62,0,nops,0,0,0},        /* cfork */
476
  {63,0,nops,0,0,0},        /* rtn */
477
  {64,0,nops,0,0,0},        /* wfork */
478
  {65,0,nops,0,0,0},        /* join */
479
  {66,0,nops,0,0,0},        /* rtnc */
480
  {67,3,r,S,0,0}, /* exp.s */
481
  {67,4,r,S,0,0}, /* exp.d */
482
  {68,3,r,S,0,0}, /* sin.s */
483
  {68,4,r,S,0,0}, /* sin.d */
484
  {0,0,0,0,0,0},
485
  {0,0,0,0,0,0},
486
  {69,3,r,S,0,0}, /* cos.s */
487
  {69,4,r,S,0,0}, /* cos.d */
488
  {0,0,0,0,0,0},
489
  {0,0,0,0,0,0},
490
  {70,7,r,A,0,0}, /* psh.w */
491
  {0,0,0,0,0,0},
492
  {71,7,r,A,0,0}, /* pop.w */
493
  {0,0,0,0,0,0},
494
  {70,7,r,S,0,0}, /* psh.w */
495
  {70,8,r,S,0,0}, /* psh.l */
496
  {71,7,r,S,0,0}, /* pop.w */
497
  {71,8,r,S,0,0}, /* pop.l */
498
  {72,0,nops,0,0,0},        /* eni */
499
  {73,0,nops,0,0,0},        /* dsi */
500
  {74,0,nops,0,0,0},        /* bkpt */
501
  {75,0,nops,0,0,0},        /* msync */
502
  {76,0,r,S,0,0},  /* mski */
503
  {77,0,r,S,0,0},  /* xmti */
504
  {0,0,rxl,S,VV,0},        /* mov */
505
  {78,0,nops,0,0,0},        /* tstvv */
506
  {0,0,lr,VS,A,0}, /* mov */
507
  {0,0,rxl,A,VS,0},        /* mov */
508
  {0,0,lr,VL,A,0}, /* mov */
509
  {0,0,rxl,A,VL,0},        /* mov */
510
  {0,7,lr,VS,S,0},        /* mov.w */
511
  {0,7,rxl,S,VS,0},       /* mov.w */
512
  {0,7,lr,VL,S,0},        /* mov.w */
513
  {0,7,rxl,S,VL,0},       /* mov.w */
514
  {79,0,r,A,0,0},  /* diag */
515
  {80,0,nops,0,0,0},        /* pbkpt */
516
  {81,3,r,S,0,0}, /* sqrt.s */
517
  {81,4,r,S,0,0}, /* sqrt.d */
518
  {82,0,nops,0,0,0},        /* casr */
519
  {0,0,0,0,0,0},
520
  {83,3,r,S,0,0}, /* atan.s */
521
  {83,4,r,S,0,0}, /* atan.d */
522
};
523
 
524
CONST struct formstr format7[] = {
525
  {84,5,r,V,0,0}, /* sum.b */
526
  {84,6,r,V,0,0}, /* sum.h */
527
  {84,7,r,V,0,0}, /* sum.w */
528
  {84,8,r,V,0,0}, /* sum.l */
529
  {85,0,r,V,0,0},  /* all */
530
  {86,0,r,V,0,0},  /* any */
531
  {87,0,r,V,0,0},  /* parity */
532
  {0,0,0,0,0,0},
533
  {88,5,r,V,0,0}, /* max.b */
534
  {88,6,r,V,0,0}, /* max.h */
535
  {88,7,r,V,0,0}, /* max.w */
536
  {88,8,r,V,0,0}, /* max.l */
537
  {89,5,r,V,0,0}, /* min.b */
538
  {89,6,r,V,0,0}, /* min.h */
539
  {89,7,r,V,0,0}, /* min.w */
540
  {89,8,r,V,0,0}, /* min.l */
541
  {84,3,r,V,0,0}, /* sum.s */
542
  {84,4,r,V,0,0}, /* sum.d */
543
  {90,3,r,V,0,0}, /* prod.s */
544
  {90,4,r,V,0,0}, /* prod.d */
545
  {88,3,r,V,0,0}, /* max.s */
546
  {88,4,r,V,0,0}, /* max.d */
547
  {89,3,r,V,0,0}, /* min.s */
548
  {89,4,r,V,0,0}, /* min.d */
549
  {90,5,r,V,0,0}, /* prod.b */
550
  {90,6,r,V,0,0}, /* prod.h */
551
  {90,7,r,V,0,0}, /* prod.w */
552
  {90,8,r,V,0,0}, /* prod.l */
553
  {35,2,lr,VM,S,0},      /* plc.f */
554
  {35,1,lr,VM,S,0},      /* plc.t */
555
  {0,0,0,0,0,0},
556
  {0,0,0,0,0,0},
557
};
558
 
559
CONST struct formstr formatx[] = {
560
  {0,0,0,0,0,0},
561
};
562
 
563
CONST struct formstr format1a[] = {
564
  {91,0,imr,A,0,0},        /* halt */
565
  {92,0,a4,0,0,0},  /* sysc */
566
  {18,6,imr,A,0,0},       /* ld.h */
567
  {18,7,imr,A,0,0},       /* ld.w */
568
  {5,0,imr,A,0,0}, /* and */
569
  {6,0,imr,A,0,0}, /* or */
570
  {7,0,imr,A,0,0}, /* xor */
571
  {8,0,imr,A,0,0}, /* shf */
572
  {9,6,imr,A,0,0},        /* add.h */
573
  {9,7,imr,A,0,0},        /* add.w */
574
  {10,6,imr,A,0,0},       /* sub.h */
575
  {10,7,imr,A,0,0},       /* sub.w */
576
  {3,6,imr,A,0,0},        /* mul.h */
577
  {3,7,imr,A,0,0},        /* mul.w */
578
  {4,6,imr,A,0,0},        /* div.h */
579
  {4,7,imr,A,0,0},        /* div.w */
580
  {18,7,iml,VL,0,0},      /* ld.w */
581
  {18,7,iml,VS,0,0},      /* ld.w */
582
  {0,0,0,0,0,0},
583
  {8,7,imr,S,0,0},        /* shf.w */
584
  {93,0,a5,0,0,0},  /* trap */
585
  {0,0,0,0,0,0},
586
  {37,6,imr,A,0,0},       /* eq.h */
587
  {37,7,imr,A,0,0},       /* eq.w */
588
  {38,6,imr,A,0,0},       /* leu.h */
589
  {38,7,imr,A,0,0},       /* leu.w */
590
  {39,6,imr,A,0,0},       /* ltu.h */
591
  {39,7,imr,A,0,0},       /* ltu.w */
592
  {40,6,imr,A,0,0},       /* le.h */
593
  {40,7,imr,A,0,0},       /* le.w */
594
  {41,6,imr,A,0,0},       /* lt.h */
595
  {41,7,imr,A,0,0},       /* lt.w */
596
};
597
 
598
CONST struct formstr format1b[] = {
599
  {18,4,imr,S,0,0},       /* ld.d */
600
  {18,10,imr,S,0,0},      /* ld.u */
601
  {18,8,imr,S,0,0},       /* ld.l */
602
  {18,7,imr,S,0,0},       /* ld.w */
603
  {5,0,imr,S,0,0}, /* and */
604
  {6,0,imr,S,0,0}, /* or */
605
  {7,0,imr,S,0,0}, /* xor */
606
  {8,0,imr,S,0,0}, /* shf */
607
  {9,6,imr,S,0,0},        /* add.h */
608
  {9,7,imr,S,0,0},        /* add.w */
609
  {10,6,imr,S,0,0},       /* sub.h */
610
  {10,7,imr,S,0,0},       /* sub.w */
611
  {3,6,imr,S,0,0},        /* mul.h */
612
  {3,7,imr,S,0,0},        /* mul.w */
613
  {4,6,imr,S,0,0},        /* div.h */
614
  {4,7,imr,S,0,0},        /* div.w */
615
  {9,3,imr,S,0,0},        /* add.s */
616
  {10,3,imr,S,0,0},       /* sub.s */
617
  {3,3,imr,S,0,0},        /* mul.s */
618
  {4,3,imr,S,0,0},        /* div.s */
619
  {40,3,imr,S,0,0},       /* le.s */
620
  {41,3,imr,S,0,0},       /* lt.s */
621
  {37,6,imr,S,0,0},       /* eq.h */
622
  {37,7,imr,S,0,0},       /* eq.w */
623
  {38,6,imr,S,0,0},       /* leu.h */
624
  {38,7,imr,S,0,0},       /* leu.w */
625
  {39,6,imr,S,0,0},       /* ltu.h */
626
  {39,7,imr,S,0,0},       /* ltu.w */
627
  {40,6,imr,S,0,0},       /* le.h */
628
  {40,7,imr,S,0,0},       /* le.w */
629
  {41,6,imr,S,0,0},       /* lt.h */
630
  {41,7,imr,S,0,0},       /* lt.w */
631
};
632
 
633
CONST struct formstr e0_format0[] = {
634
  {10,3,rrr,S,V,V},     /* sub.s */
635
  {10,4,rrr,S,V,V},     /* sub.d */
636
  {4,3,rrr,S,V,V},      /* div.s */
637
  {4,4,rrr,S,V,V},      /* div.d */
638
  {10,11,rrr,S,V,V},    /* sub.s.f */
639
  {10,12,rrr,S,V,V},    /* sub.d.f */
640
  {4,11,rrr,S,V,V},     /* div.s.f */
641
  {4,12,rrr,S,V,V},     /* div.d.f */
642
  {3,11,rrr,V,V,V},     /* mul.s.f */
643
  {3,12,rrr,V,V,V},     /* mul.d.f */
644
  {4,11,rrr,V,V,V},     /* div.s.f */
645
  {4,12,rrr,V,V,V},     /* div.d.f */
646
  {3,11,rrr,V,S,V},     /* mul.s.f */
647
  {3,12,rrr,V,S,V},     /* mul.d.f */
648
  {4,11,rrr,V,S,V},     /* div.s.f */
649
  {4,12,rrr,V,S,V},     /* div.d.f */
650
  {5,2,rrr,V,V,V},      /* and.f */
651
  {6,2,rrr,V,V,V},      /* or.f */
652
  {7,2,rrr,V,V,V},      /* xor.f */
653
  {8,2,rrr,V,V,V},      /* shf.f */
654
  {5,2,rrr,V,S,V},      /* and.f */
655
  {6,2,rrr,V,S,V},      /* or.f */
656
  {7,2,rrr,V,S,V},      /* xor.f */
657
  {8,2,rrr,V,S,V},      /* shf.f */
658
  {9,11,rrr,V,V,V},     /* add.s.f */
659
  {9,12,rrr,V,V,V},     /* add.d.f */
660
  {10,11,rrr,V,V,V},    /* sub.s.f */
661
  {10,12,rrr,V,V,V},    /* sub.d.f */
662
  {9,11,rrr,V,S,V},     /* add.s.f */
663
  {9,12,rrr,V,S,V},     /* add.d.f */
664
  {10,11,rrr,V,S,V},    /* sub.s.f */
665
  {10,12,rrr,V,S,V},    /* sub.d.f */
666
  {9,13,rrr,V,V,V},     /* add.b.f */
667
  {9,14,rrr,V,V,V},     /* add.h.f */
668
  {9,15,rrr,V,V,V},     /* add.w.f */
669
  {9,16,rrr,V,V,V},     /* add.l.f */
670
  {9,13,rrr,V,S,V},     /* add.b.f */
671
  {9,14,rrr,V,S,V},     /* add.h.f */
672
  {9,15,rrr,V,S,V},     /* add.w.f */
673
  {9,16,rrr,V,S,V},     /* add.l.f */
674
  {10,13,rrr,V,V,V},    /* sub.b.f */
675
  {10,14,rrr,V,V,V},    /* sub.h.f */
676
  {10,15,rrr,V,V,V},    /* sub.w.f */
677
  {10,16,rrr,V,V,V},    /* sub.l.f */
678
  {10,13,rrr,V,S,V},    /* sub.b.f */
679
  {10,14,rrr,V,S,V},    /* sub.h.f */
680
  {10,15,rrr,V,S,V},    /* sub.w.f */
681
  {10,16,rrr,V,S,V},    /* sub.l.f */
682
  {3,13,rrr,V,V,V},     /* mul.b.f */
683
  {3,14,rrr,V,V,V},     /* mul.h.f */
684
  {3,15,rrr,V,V,V},     /* mul.w.f */
685
  {3,16,rrr,V,V,V},     /* mul.l.f */
686
  {3,13,rrr,V,S,V},     /* mul.b.f */
687
  {3,14,rrr,V,S,V},     /* mul.h.f */
688
  {3,15,rrr,V,S,V},     /* mul.w.f */
689
  {3,16,rrr,V,S,V},     /* mul.l.f */
690
  {4,13,rrr,V,V,V},     /* div.b.f */
691
  {4,14,rrr,V,V,V},     /* div.h.f */
692
  {4,15,rrr,V,V,V},     /* div.w.f */
693
  {4,16,rrr,V,V,V},     /* div.l.f */
694
  {4,13,rrr,V,S,V},     /* div.b.f */
695
  {4,14,rrr,V,S,V},     /* div.h.f */
696
  {4,15,rrr,V,S,V},     /* div.w.f */
697
  {4,16,rrr,V,S,V},     /* div.l.f */
698
};
699
 
700
CONST struct formstr e0_format1[] = {
701
  {0,0,0,0,0,0},
702
  {94,0,a3,0,0,0},  /* tst */
703
  {95,0,a3,0,0,0},  /* lck */
704
  {96,0,a3,0,0,0},  /* ulk */
705
  {17,0,a1r,S,0,0},        /* ldea */
706
  {97,0,a1r,A,0,0},        /* spawn */
707
  {98,0,a1r,A,0,0},        /* ldcmr */
708
  {99,0,a2r,A,0,0},        /* stcmr */
709
  {100,0,a1r,A,0,0},       /* popr */
710
  {101,0,a2r,A,0,0},       /* pshr */
711
  {102,7,a1r,A,0,0},      /* rcvr.w */
712
  {103,7,a2r,A,0,0},      /* matm.w */
713
  {104,7,a2r,A,0,0},      /* sndr.w */
714
  {104,8,a2r,S,0,0},      /* sndr.l */
715
  {102,8,a1r,S,0,0},      /* rcvr.l */
716
  {103,8,a2r,S,0,0},      /* matm.l */
717
  {0,0,0,0,0,0},
718
  {0,0,0,0,0,0},
719
  {0,0,0,0,0,0},
720
  {0,0,0,0,0,0},
721
  {0,0,0,0,0,0},
722
  {0,0,0,0,0,0},
723
  {0,0,0,0,0,0},
724
  {0,0,0,0,0,0},
725
  {0,0,0,0,0,0},
726
  {0,0,0,0,0,0},
727
  {0,0,0,0,0,0},
728
  {0,0,0,0,0,0},
729
  {0,0,0,0,0,0},
730
  {0,0,0,0,0,0},
731
  {0,0,0,0,0,0},
732
  {0,0,0,0,0,0},
733
  {105,7,a2r,A,0,0},      /* putr.w */
734
  {105,8,a2r,S,0,0},      /* putr.l */
735
  {106,7,a1r,A,0,0},      /* getr.w */
736
  {106,8,a1r,S,0,0},      /* getr.l */
737
  {26,13,a2r,S,0,0},      /* ste.b.f */
738
  {26,14,a2r,S,0,0},      /* ste.h.f */
739
  {26,15,a2r,S,0,0},      /* ste.w.f */
740
  {26,16,a2r,S,0,0},      /* ste.l.f */
741
  {107,7,a2r,A,0,0},      /* matr.w */
742
  {108,7,a2r,A,0,0},      /* mat.w */
743
  {109,7,a1r,A,0,0},      /* get.w */
744
  {110,7,a1r,A,0,0},      /* rcv.w */
745
  {0,0,0,0,0,0},
746
  {111,7,a1r,A,0,0},      /* inc.w */
747
  {112,7,a2r,A,0,0},      /* put.w */
748
  {113,7,a2r,A,0,0},      /* snd.w */
749
  {107,8,a2r,S,0,0},      /* matr.l */
750
  {108,8,a2r,S,0,0},      /* mat.l */
751
  {109,8,a1r,S,0,0},      /* get.l */
752
  {110,8,a1r,S,0,0},      /* rcv.l */
753
  {0,0,0,0,0,0},
754
  {111,8,a1r,S,0,0},      /* inc.l */
755
  {112,8,a2r,S,0,0},      /* put.l */
756
  {113,8,a2r,S,0,0},      /* snd.l */
757
  {18,13,a1r,V,0,0},      /* ld.b.f */
758
  {18,14,a1r,V,0,0},      /* ld.h.f */
759
  {18,15,a1r,V,0,0},      /* ld.w.f */
760
  {18,16,a1r,V,0,0},      /* ld.l.f */
761
  {21,13,a2r,V,0,0},      /* st.b.f */
762
  {21,14,a2r,V,0,0},      /* st.h.f */
763
  {21,15,a2r,V,0,0},      /* st.w.f */
764
  {21,16,a2r,V,0,0},      /* st.l.f */
765
};
766
 
767
CONST struct formstr e0_format2[] = {
768
  {28,5,rr,V,V,0},       /* cvtw.b */
769
  {28,6,rr,V,V,0},       /* cvtw.h */
770
  {29,7,rr,V,V,0},       /* cvtb.w */
771
  {30,7,rr,V,V,0},       /* cvth.w */
772
  {28,13,rr,V,V,0},      /* cvtw.b.f */
773
  {28,14,rr,V,V,0},      /* cvtw.h.f */
774
  {29,15,rr,V,V,0},      /* cvtb.w.f */
775
  {30,15,rr,V,V,0},      /* cvth.w.f */
776
  {31,8,rr,V,V,0},       /* cvts.l */
777
  {32,7,rr,V,V,0},       /* cvtd.w */
778
  {33,3,rr,V,V,0},       /* cvtl.s */
779
  {28,4,rr,V,V,0},       /* cvtw.d */
780
  {31,16,rr,V,V,0},      /* cvts.l.f */
781
  {32,15,rr,V,V,0},      /* cvtd.w.f */
782
  {33,11,rr,V,V,0},      /* cvtl.s.f */
783
  {28,12,rr,V,V,0},      /* cvtw.d.f */
784
  {114,0,rr,S,S,0},       /* enal */
785
  {8,7,rr,S,S,0},        /* shf.w */
786
  {115,0,rr,S,S,0},       /* enag */
787
  {0,0,0,0,0,0},
788
  {28,4,rr,S,S,0},       /* cvtw.d */
789
  {32,7,rr,S,S,0},       /* cvtd.w */
790
  {0,0,0,0,0,0},
791
  {0,0,0,0,0,0},
792
  {0,0,0,0,0,0},
793
  {0,0,0,0,0,0},
794
  {0,0,0,0,0,0},
795
  {0,0,0,0,0,0},
796
  {116,3,rr,S,S,0},      /* frint.s */
797
  {116,4,rr,S,S,0},      /* frint.d */
798
  {0,0,0,0,0,0},
799
  {0,0,0,0,0,0},
800
  {0,0,0,0,0,0},
801
  {0,0,0,0,0,0},
802
  {0,0,0,0,0,0},
803
  {0,0,0,0,0,0},
804
  {0,0,0,0,0,0},
805
  {0,0,0,0,0,0},
806
  {0,0,0,0,0,0},
807
  {0,0,0,0,0,0},
808
  {0,0,0,0,0,0},
809
  {0,0,0,0,0,0},
810
  {0,0,0,0,0,0},
811
  {0,0,0,0,0,0},
812
  {0,0,0,0,0,0},
813
  {0,0,0,0,0,0},
814
  {0,0,0,0,0,0},
815
  {0,0,0,0,0,0},
816
  {0,0,0,0,0,0},
817
  {0,0,0,0,0,0},
818
  {0,0,0,0,0,0},
819
  {0,0,0,0,0,0},
820
  {0,0,0,0,0,0},
821
  {0,0,0,0,0,0},
822
  {0,0,0,0,0,0},
823
  {0,0,0,0,0,0},
824
  {0,0,0,0,0,0},
825
  {0,0,0,0,0,0},
826
  {0,0,0,0,0,0},
827
  {0,0,0,0,0,0},
828
  {0,0,0,0,0,0},
829
  {0,0,0,0,0,0},
830
  {0,0,0,0,0,0},
831
  {0,0,0,0,0,0},
832
  {0,0,0,0,0,0},
833
  {0,0,0,0,0,0},
834
  {0,0,0,0,0,0},
835
  {0,0,0,0,0,0},
836
  {0,0,0,0,0,0},
837
  {0,0,0,0,0,0},
838
  {0,0,0,0,0,0},
839
  {0,0,0,0,0,0},
840
  {0,0,0,0,0,0},
841
  {0,0,0,0,0,0},
842
  {0,0,0,0,0,0},
843
  {0,0,0,0,0,0},
844
  {0,0,0,0,0,0},
845
  {0,0,0,0,0,0},
846
  {0,0,0,0,0,0},
847
  {0,0,0,0,0,0},
848
  {0,0,0,0,0,0},
849
  {0,0,0,0,0,0},
850
  {0,0,0,0,0,0},
851
  {0,0,0,0,0,0},
852
  {0,0,0,0,0,0},
853
  {0,0,0,0,0,0},
854
  {0,0,0,0,0,0},
855
  {0,0,0,0,0,0},
856
  {0,0,0,0,0,0},
857
  {0,0,0,0,0,0},
858
  {0,0,0,0,0,0},
859
  {0,0,0,0,0,0},
860
  {0,0,0,0,0,0},
861
  {0,0,0,0,0,0},
862
  {0,0,0,0,0,0},
863
  {0,0,0,0,0,0},
864
  {0,0,0,0,0,0},
865
  {0,0,0,0,0,0},
866
  {116,3,rr,V,V,0},      /* frint.s */
867
  {116,4,rr,V,V,0},      /* frint.d */
868
  {0,0,0,0,0,0},
869
  {0,0,0,0,0,0},
870
  {116,11,rr,V,V,0},     /* frint.s.f */
871
  {116,12,rr,V,V,0},     /* frint.d.f */
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
  {0,0,0,0,0,0},
882
  {0,0,0,0,0,0},
883
  {0,0,0,0,0,0},
884
  {81,3,rr,V,V,0},       /* sqrt.s */
885
  {81,4,rr,V,V,0},       /* sqrt.d */
886
  {0,0,0,0,0,0},
887
  {0,0,0,0,0,0},
888
  {0,0,0,0,0,0},
889
  {0,0,0,0,0,0},
890
  {0,0,0,0,0,0},
891
  {0,0,0,0,0,0},
892
  {81,11,rr,V,V,0},      /* sqrt.s.f */
893
  {81,12,rr,V,V,0},      /* sqrt.d.f */
894
  {0,0,0,0,0,0},
895
  {0,0,0,0,0,0},
896
};
897
 
898
CONST struct formstr e0_format3[] = {
899
  {32,11,rr,V,V,0},      /* cvtd.s.f */
900
  {31,12,rr,V,V,0},      /* cvts.d.f */
901
  {33,12,rr,V,V,0},      /* cvtl.d.f */
902
  {32,16,rr,V,V,0},      /* cvtd.l.f */
903
  {0,0,0,0,0,0},
904
  {0,0,0,0,0,0},
905
  {0,0,0,0,0,0},
906
  {0,0,0,0,0,0},
907
  {36,2,rr,V,V,0},       /* tzc.f */
908
  {44,2,rr,V,V,0},       /* lop.f */
909
  {117,2,rr,V,V,0},      /* xpnd.f */
910
  {42,2,rr,V,V,0},       /* not.f */
911
  {8,2,rr,S,V,0},        /* shf.f */
912
  {35,17,rr,V,V,0},      /* plc.t.f */
913
  {0,0,0,0,0,0},
914
  {0,0,0,0,0,0},
915
  {37,11,rr,V,V,0},      /* eq.s.f */
916
  {37,12,rr,V,V,0},      /* eq.d.f */
917
  {43,11,rr,V,V,0},      /* neg.s.f */
918
  {43,12,rr,V,V,0},      /* neg.d.f */
919
  {37,11,rr,S,V,0},      /* eq.s.f */
920
  {37,12,rr,S,V,0},      /* eq.d.f */
921
  {0,0,0,0,0,0},
922
  {0,0,0,0,0,0},
923
  {40,11,rr,V,V,0},      /* le.s.f */
924
  {40,12,rr,V,V,0},      /* le.d.f */
925
  {41,11,rr,V,V,0},      /* lt.s.f */
926
  {41,12,rr,V,V,0},      /* lt.d.f */
927
  {40,11,rr,S,V,0},      /* le.s.f */
928
  {40,12,rr,S,V,0},      /* le.d.f */
929
  {41,11,rr,S,V,0},      /* lt.s.f */
930
  {41,12,rr,S,V,0},      /* lt.d.f */
931
  {37,13,rr,V,V,0},      /* eq.b.f */
932
  {37,14,rr,V,V,0},      /* eq.h.f */
933
  {37,15,rr,V,V,0},      /* eq.w.f */
934
  {37,16,rr,V,V,0},      /* eq.l.f */
935
  {37,13,rr,S,V,0},      /* eq.b.f */
936
  {37,14,rr,S,V,0},      /* eq.h.f */
937
  {37,15,rr,S,V,0},      /* eq.w.f */
938
  {37,16,rr,S,V,0},      /* eq.l.f */
939
  {40,13,rr,V,V,0},      /* le.b.f */
940
  {40,14,rr,V,V,0},      /* le.h.f */
941
  {40,15,rr,V,V,0},      /* le.w.f */
942
  {40,16,rr,V,V,0},      /* le.l.f */
943
  {40,13,rr,S,V,0},      /* le.b.f */
944
  {40,14,rr,S,V,0},      /* le.h.f */
945
  {40,15,rr,S,V,0},      /* le.w.f */
946
  {40,16,rr,S,V,0},      /* le.l.f */
947
  {41,13,rr,V,V,0},      /* lt.b.f */
948
  {41,14,rr,V,V,0},      /* lt.h.f */
949
  {41,15,rr,V,V,0},      /* lt.w.f */
950
  {41,16,rr,V,V,0},      /* lt.l.f */
951
  {41,13,rr,S,V,0},      /* lt.b.f */
952
  {41,14,rr,S,V,0},      /* lt.h.f */
953
  {41,15,rr,S,V,0},      /* lt.w.f */
954
  {41,16,rr,S,V,0},      /* lt.l.f */
955
  {43,13,rr,V,V,0},      /* neg.b.f */
956
  {43,14,rr,V,V,0},      /* neg.h.f */
957
  {43,15,rr,V,V,0},      /* neg.w.f */
958
  {43,16,rr,V,V,0},      /* neg.l.f */
959
  {0,0,0,0,0,0},
960
  {0,0,0,0,0,0},
961
  {0,0,0,0,0,0},
962
  {0,0,0,0,0,0},
963
};
964
 
965
CONST struct formstr e0_format4[] = {
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
  {0,0,0,0,0,0},
972
  {0,0,0,0,0,0},
973
  {0,0,0,0,0,0},
974
};
975
 
976
CONST struct formstr e0_format5[] = {
977
  {51,13,rr,V,V,0},      /* ldvi.b.f */
978
  {51,14,rr,V,V,0},      /* ldvi.h.f */
979
  {51,15,rr,V,V,0},      /* ldvi.w.f */
980
  {51,16,rr,V,V,0},      /* ldvi.l.f */
981
  {28,11,rr,V,V,0},      /* cvtw.s.f */
982
  {31,15,rr,V,V,0},      /* cvts.w.f */
983
  {28,16,rr,V,V,0},      /* cvtw.l.f */
984
  {33,15,rr,V,V,0},      /* cvtl.w.f */
985
  {52,13,rxr,V,V,0},     /* stvi.b.f */
986
  {52,14,rxr,V,V,0},     /* stvi.h.f */
987
  {52,15,rxr,V,V,0},     /* stvi.w.f */
988
  {52,16,rxr,V,V,0},     /* stvi.l.f */
989
  {52,13,rxr,S,V,0},     /* stvi.b.f */
990
  {52,14,rxr,S,V,0},     /* stvi.h.f */
991
  {52,15,rxr,S,V,0},     /* stvi.w.f */
992
  {52,16,rxr,S,V,0},     /* stvi.l.f */
993
};
994
 
995
CONST struct formstr e0_format6[] = {
996
  {0,0,rxl,S,CIR,0},       /* mov */
997
  {0,0,lr,CIR,S,0},        /* mov */
998
  {0,0,lr,TOC,S,0},        /* mov */
999
  {0,0,lr,CPUID,S,0},      /* mov */
1000
  {0,0,rxl,S,TTR,0},       /* mov */
1001
  {0,0,lr,TTR,S,0},        /* mov */
1002
  {118,0,nops,0,0,0},       /* ctrsl */
1003
  {119,0,nops,0,0,0},       /* ctrsg */
1004
  {0,0,rxl,S,VMU,0},       /* mov */
1005
  {0,0,lr,VMU,S,0},        /* mov */
1006
  {0,0,rxl,S,VML,0},       /* mov */
1007
  {0,0,lr,VML,S,0},        /* mov */
1008
  {0,0,rxl,S,ICR,0},       /* mov */
1009
  {0,0,lr,ICR,S,0},        /* mov */
1010
  {0,0,rxl,S,TCPU,0},      /* mov */
1011
  {0,0,lr,TCPU,S,0},       /* mov */
1012
  {0,0,0,0,0,0},
1013
  {0,0,0,0,0,0},
1014
  {0,0,0,0,0,0},
1015
  {0,0,0,0,0,0},
1016
  {120,0,nops,0,0,0},       /* stop */
1017
  {0,0,0,0,0,0},
1018
  {0,0,rxl,S,TID,0},       /* mov */
1019
  {0,0,lr,TID,S,0},        /* mov */
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
  {0,0,0,0,0,0},
1058
  {0,0,0,0,0,0},
1059
  {0,0,0,0,0,0},
1060
};
1061
 
1062
CONST struct formstr e0_format7[] = {
1063
  {84,13,r,V,0,0},        /* sum.b.f */
1064
  {84,14,r,V,0,0},        /* sum.h.f */
1065
  {84,15,r,V,0,0},        /* sum.w.f */
1066
  {84,16,r,V,0,0},        /* sum.l.f */
1067
  {85,2,r,V,0,0}, /* all.f */
1068
  {86,2,r,V,0,0}, /* any.f */
1069
  {87,2,r,V,0,0}, /* parity.f */
1070
  {0,0,0,0,0,0},
1071
  {88,13,r,V,0,0},        /* max.b.f */
1072
  {88,14,r,V,0,0},        /* max.h.f */
1073
  {88,15,r,V,0,0},        /* max.w.f */
1074
  {88,16,r,V,0,0},        /* max.l.f */
1075
  {89,13,r,V,0,0},        /* min.b.f */
1076
  {89,14,r,V,0,0},        /* min.h.f */
1077
  {89,15,r,V,0,0},        /* min.w.f */
1078
  {89,16,r,V,0,0},        /* min.l.f */
1079
  {84,11,r,V,0,0},        /* sum.s.f */
1080
  {84,12,r,V,0,0},        /* sum.d.f */
1081
  {90,11,r,V,0,0},        /* prod.s.f */
1082
  {90,12,r,V,0,0},        /* prod.d.f */
1083
  {88,11,r,V,0,0},        /* max.s.f */
1084
  {88,12,r,V,0,0},        /* max.d.f */
1085
  {89,11,r,V,0,0},        /* min.s.f */
1086
  {89,12,r,V,0,0},        /* min.d.f */
1087
  {90,13,r,V,0,0},        /* prod.b.f */
1088
  {90,14,r,V,0,0},        /* prod.h.f */
1089
  {90,15,r,V,0,0},        /* prod.w.f */
1090
  {90,16,r,V,0,0},        /* prod.l.f */
1091
  {0,0,0,0,0,0},
1092
  {0,0,0,0,0,0},
1093
  {0,0,0,0,0,0},
1094
  {0,0,0,0,0,0},
1095
};
1096
 
1097
CONST struct formstr e1_format0[] = {
1098
  {0,0,0,0,0,0},
1099
  {0,0,0,0,0,0},
1100
  {0,0,0,0,0,0},
1101
  {0,0,0,0,0,0},
1102
  {10,18,rrr,S,V,V},    /* sub.s.t */
1103
  {10,19,rrr,S,V,V},    /* sub.d.t */
1104
  {4,18,rrr,S,V,V},     /* div.s.t */
1105
  {4,19,rrr,S,V,V},     /* div.d.t */
1106
  {3,18,rrr,V,V,V},     /* mul.s.t */
1107
  {3,19,rrr,V,V,V},     /* mul.d.t */
1108
  {4,18,rrr,V,V,V},     /* div.s.t */
1109
  {4,19,rrr,V,V,V},     /* div.d.t */
1110
  {3,18,rrr,V,S,V},     /* mul.s.t */
1111
  {3,19,rrr,V,S,V},     /* mul.d.t */
1112
  {4,18,rrr,V,S,V},     /* div.s.t */
1113
  {4,19,rrr,V,S,V},     /* div.d.t */
1114
  {5,1,rrr,V,V,V},      /* and.t */
1115
  {6,1,rrr,V,V,V},      /* or.t */
1116
  {7,1,rrr,V,V,V},      /* xor.t */
1117
  {8,1,rrr,V,V,V},      /* shf.t */
1118
  {5,1,rrr,V,S,V},      /* and.t */
1119
  {6,1,rrr,V,S,V},      /* or.t */
1120
  {7,1,rrr,V,S,V},      /* xor.t */
1121
  {8,1,rrr,V,S,V},      /* shf.t */
1122
  {9,18,rrr,V,V,V},     /* add.s.t */
1123
  {9,19,rrr,V,V,V},     /* add.d.t */
1124
  {10,18,rrr,V,V,V},    /* sub.s.t */
1125
  {10,19,rrr,V,V,V},    /* sub.d.t */
1126
  {9,18,rrr,V,S,V},     /* add.s.t */
1127
  {9,19,rrr,V,S,V},     /* add.d.t */
1128
  {10,18,rrr,V,S,V},    /* sub.s.t */
1129
  {10,19,rrr,V,S,V},    /* sub.d.t */
1130
  {9,20,rrr,V,V,V},     /* add.b.t */
1131
  {9,21,rrr,V,V,V},     /* add.h.t */
1132
  {9,22,rrr,V,V,V},     /* add.w.t */
1133
  {9,23,rrr,V,V,V},     /* add.l.t */
1134
  {9,20,rrr,V,S,V},     /* add.b.t */
1135
  {9,21,rrr,V,S,V},     /* add.h.t */
1136
  {9,22,rrr,V,S,V},     /* add.w.t */
1137
  {9,23,rrr,V,S,V},     /* add.l.t */
1138
  {10,20,rrr,V,V,V},    /* sub.b.t */
1139
  {10,21,rrr,V,V,V},    /* sub.h.t */
1140
  {10,22,rrr,V,V,V},    /* sub.w.t */
1141
  {10,23,rrr,V,V,V},    /* sub.l.t */
1142
  {10,20,rrr,V,S,V},    /* sub.b.t */
1143
  {10,21,rrr,V,S,V},    /* sub.h.t */
1144
  {10,22,rrr,V,S,V},    /* sub.w.t */
1145
  {10,23,rrr,V,S,V},    /* sub.l.t */
1146
  {3,20,rrr,V,V,V},     /* mul.b.t */
1147
  {3,21,rrr,V,V,V},     /* mul.h.t */
1148
  {3,22,rrr,V,V,V},     /* mul.w.t */
1149
  {3,23,rrr,V,V,V},     /* mul.l.t */
1150
  {3,20,rrr,V,S,V},     /* mul.b.t */
1151
  {3,21,rrr,V,S,V},     /* mul.h.t */
1152
  {3,22,rrr,V,S,V},     /* mul.w.t */
1153
  {3,23,rrr,V,S,V},     /* mul.l.t */
1154
  {4,20,rrr,V,V,V},     /* div.b.t */
1155
  {4,21,rrr,V,V,V},     /* div.h.t */
1156
  {4,22,rrr,V,V,V},     /* div.w.t */
1157
  {4,23,rrr,V,V,V},     /* div.l.t */
1158
  {4,20,rrr,V,S,V},     /* div.b.t */
1159
  {4,21,rrr,V,S,V},     /* div.h.t */
1160
  {4,22,rrr,V,S,V},     /* div.w.t */
1161
  {4,23,rrr,V,S,V},     /* div.l.t */
1162
};
1163
 
1164
CONST struct formstr e1_format1[] = {
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
  {0,0,0,0,0,0},
1199
  {0,0,0,0,0,0},
1200
  {0,0,0,0,0,0},
1201
  {26,20,a2r,S,0,0},      /* ste.b.t */
1202
  {26,21,a2r,S,0,0},      /* ste.h.t */
1203
  {26,22,a2r,S,0,0},      /* ste.w.t */
1204
  {26,23,a2r,S,0,0},      /* ste.l.t */
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
  {0,0,0,0,0,0},
1219
  {0,0,0,0,0,0},
1220
  {0,0,0,0,0,0},
1221
  {18,20,a1r,V,0,0},      /* ld.b.t */
1222
  {18,21,a1r,V,0,0},      /* ld.h.t */
1223
  {18,22,a1r,V,0,0},      /* ld.w.t */
1224
  {18,23,a1r,V,0,0},      /* ld.l.t */
1225
  {21,20,a2r,V,0,0},      /* st.b.t */
1226
  {21,21,a2r,V,0,0},      /* st.h.t */
1227
  {21,22,a2r,V,0,0},      /* st.w.t */
1228
  {21,23,a2r,V,0,0},      /* st.l.t */
1229
};
1230
 
1231
CONST struct formstr e1_format2[] = {
1232
  {0,0,0,0,0,0},
1233
  {0,0,0,0,0,0},
1234
  {0,0,0,0,0,0},
1235
  {0,0,0,0,0,0},
1236
  {28,20,rr,V,V,0},      /* cvtw.b.t */
1237
  {28,21,rr,V,V,0},      /* cvtw.h.t */
1238
  {29,22,rr,V,V,0},      /* cvtb.w.t */
1239
  {30,22,rr,V,V,0},      /* cvth.w.t */
1240
  {0,0,0,0,0,0},
1241
  {0,0,0,0,0,0},
1242
  {0,0,0,0,0,0},
1243
  {0,0,0,0,0,0},
1244
  {31,23,rr,V,V,0},      /* cvts.l.t */
1245
  {32,22,rr,V,V,0},      /* cvtd.w.t */
1246
  {33,18,rr,V,V,0},      /* cvtl.s.t */
1247
  {28,19,rr,V,V,0},      /* cvtw.d.t */
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
  {0,0,0,0,0,0},
1332
  {0,0,0,0,0,0},
1333
  {0,0,0,0,0,0},
1334
  {116,18,rr,V,V,0},     /* frint.s.t */
1335
  {116,19,rr,V,V,0},     /* frint.d.t */
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
  {0,0,0,0,0,0},
1354
  {0,0,0,0,0,0},
1355
  {0,0,0,0,0,0},
1356
  {81,18,rr,V,V,0},      /* sqrt.s.t */
1357
  {81,19,rr,V,V,0},      /* sqrt.d.t */
1358
  {0,0,0,0,0,0},
1359
  {0,0,0,0,0,0},
1360
};
1361
 
1362
CONST struct formstr e1_format3[] = {
1363
  {32,18,rr,V,V,0},      /* cvtd.s.t */
1364
  {31,19,rr,V,V,0},      /* cvts.d.t */
1365
  {33,19,rr,V,V,0},      /* cvtl.d.t */
1366
  {32,23,rr,V,V,0},      /* cvtd.l.t */
1367
  {0,0,0,0,0,0},
1368
  {0,0,0,0,0,0},
1369
  {0,0,0,0,0,0},
1370
  {0,0,0,0,0,0},
1371
  {36,1,rr,V,V,0},       /* tzc.t */
1372
  {44,1,rr,V,V,0},       /* lop.t */
1373
  {117,1,rr,V,V,0},      /* xpnd.t */
1374
  {42,1,rr,V,V,0},       /* not.t */
1375
  {8,1,rr,S,V,0},        /* shf.t */
1376
  {35,24,rr,V,V,0},      /* plc.t.t */
1377
  {0,0,0,0,0,0},
1378
  {0,0,0,0,0,0},
1379
  {37,18,rr,V,V,0},      /* eq.s.t */
1380
  {37,19,rr,V,V,0},      /* eq.d.t */
1381
  {43,18,rr,V,V,0},      /* neg.s.t */
1382
  {43,19,rr,V,V,0},      /* neg.d.t */
1383
  {37,18,rr,S,V,0},      /* eq.s.t */
1384
  {37,19,rr,S,V,0},      /* eq.d.t */
1385
  {0,0,0,0,0,0},
1386
  {0,0,0,0,0,0},
1387
  {40,18,rr,V,V,0},      /* le.s.t */
1388
  {40,19,rr,V,V,0},      /* le.d.t */
1389
  {41,18,rr,V,V,0},      /* lt.s.t */
1390
  {41,19,rr,V,V,0},      /* lt.d.t */
1391
  {40,18,rr,S,V,0},      /* le.s.t */
1392
  {40,19,rr,S,V,0},      /* le.d.t */
1393
  {41,18,rr,S,V,0},      /* lt.s.t */
1394
  {41,19,rr,S,V,0},      /* lt.d.t */
1395
  {37,20,rr,V,V,0},      /* eq.b.t */
1396
  {37,21,rr,V,V,0},      /* eq.h.t */
1397
  {37,22,rr,V,V,0},      /* eq.w.t */
1398
  {37,23,rr,V,V,0},      /* eq.l.t */
1399
  {37,20,rr,S,V,0},      /* eq.b.t */
1400
  {37,21,rr,S,V,0},      /* eq.h.t */
1401
  {37,22,rr,S,V,0},      /* eq.w.t */
1402
  {37,23,rr,S,V,0},      /* eq.l.t */
1403
  {40,20,rr,V,V,0},      /* le.b.t */
1404
  {40,21,rr,V,V,0},      /* le.h.t */
1405
  {40,22,rr,V,V,0},      /* le.w.t */
1406
  {40,23,rr,V,V,0},      /* le.l.t */
1407
  {40,20,rr,S,V,0},      /* le.b.t */
1408
  {40,21,rr,S,V,0},      /* le.h.t */
1409
  {40,22,rr,S,V,0},      /* le.w.t */
1410
  {40,23,rr,S,V,0},      /* le.l.t */
1411
  {41,20,rr,V,V,0},      /* lt.b.t */
1412
  {41,21,rr,V,V,0},      /* lt.h.t */
1413
  {41,22,rr,V,V,0},      /* lt.w.t */
1414
  {41,23,rr,V,V,0},      /* lt.l.t */
1415
  {41,20,rr,S,V,0},      /* lt.b.t */
1416
  {41,21,rr,S,V,0},      /* lt.h.t */
1417
  {41,22,rr,S,V,0},      /* lt.w.t */
1418
  {41,23,rr,S,V,0},      /* lt.l.t */
1419
  {43,20,rr,V,V,0},      /* neg.b.t */
1420
  {43,21,rr,V,V,0},      /* neg.h.t */
1421
  {43,22,rr,V,V,0},      /* neg.w.t */
1422
  {43,23,rr,V,V,0},      /* neg.l.t */
1423
  {0,0,0,0,0,0},
1424
  {0,0,0,0,0,0},
1425
  {0,0,0,0,0,0},
1426
  {0,0,0,0,0,0},
1427
};
1428
 
1429
CONST struct formstr e1_format4[] = {
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
  {0,0,0,0,0,0},
1436
  {0,0,0,0,0,0},
1437
  {0,0,0,0,0,0},
1438
};
1439
 
1440
CONST struct formstr e1_format5[] = {
1441
  {51,20,rr,V,V,0},      /* ldvi.b.t */
1442
  {51,21,rr,V,V,0},      /* ldvi.h.t */
1443
  {51,22,rr,V,V,0},      /* ldvi.w.t */
1444
  {51,23,rr,V,V,0},      /* ldvi.l.t */
1445
  {28,18,rr,V,V,0},      /* cvtw.s.t */
1446
  {31,22,rr,V,V,0},      /* cvts.w.t */
1447
  {28,23,rr,V,V,0},      /* cvtw.l.t */
1448
  {33,22,rr,V,V,0},      /* cvtl.w.t */
1449
  {52,20,rxr,V,V,0},     /* stvi.b.t */
1450
  {52,21,rxr,V,V,0},     /* stvi.h.t */
1451
  {52,22,rxr,V,V,0},     /* stvi.w.t */
1452
  {52,23,rxr,V,V,0},     /* stvi.l.t */
1453
  {52,20,rxr,S,V,0},     /* stvi.b.t */
1454
  {52,21,rxr,S,V,0},     /* stvi.h.t */
1455
  {52,22,rxr,S,V,0},     /* stvi.w.t */
1456
  {52,23,rxr,S,V,0},     /* stvi.l.t */
1457
};
1458
 
1459
CONST struct formstr e1_format6[] = {
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
  {0,0,0,0,0,0},
1522
  {0,0,0,0,0,0},
1523
  {0,0,0,0,0,0},
1524
};
1525
 
1526
CONST struct formstr e1_format7[] = {
1527
  {84,20,r,V,0,0},        /* sum.b.t */
1528
  {84,21,r,V,0,0},        /* sum.h.t */
1529
  {84,22,r,V,0,0},        /* sum.w.t */
1530
  {84,23,r,V,0,0},        /* sum.l.t */
1531
  {85,1,r,V,0,0}, /* all.t */
1532
  {86,1,r,V,0,0}, /* any.t */
1533
  {87,1,r,V,0,0}, /* parity.t */
1534
  {0,0,0,0,0,0},
1535
  {88,20,r,V,0,0},        /* max.b.t */
1536
  {88,21,r,V,0,0},        /* max.h.t */
1537
  {88,22,r,V,0,0},        /* max.w.t */
1538
  {88,23,r,V,0,0},        /* max.l.t */
1539
  {89,20,r,V,0,0},        /* min.b.t */
1540
  {89,21,r,V,0,0},        /* min.h.t */
1541
  {89,22,r,V,0,0},        /* min.w.t */
1542
  {89,23,r,V,0,0},        /* min.l.t */
1543
  {84,18,r,V,0,0},        /* sum.s.t */
1544
  {84,19,r,V,0,0},        /* sum.d.t */
1545
  {90,18,r,V,0,0},        /* prod.s.t */
1546
  {90,19,r,V,0,0},        /* prod.d.t */
1547
  {88,18,r,V,0,0},        /* max.s.t */
1548
  {88,19,r,V,0,0},        /* max.d.t */
1549
  {89,18,r,V,0,0},        /* min.s.t */
1550
  {89,19,r,V,0,0},        /* min.d.t */
1551
  {90,20,r,V,0,0},        /* prod.b.t */
1552
  {90,21,r,V,0,0},        /* prod.h.t */
1553
  {90,22,r,V,0,0},        /* prod.w.t */
1554
  {90,23,r,V,0,0},        /* prod.l.t */
1555
  {0,0,0,0,0,0},
1556
  {0,0,0,0,0,0},
1557
  {0,0,0,0,0,0},
1558
  {0,0,0,0,0,0},
1559
};
1560
 
1561
char *lop[] = {
1562
  "mov",        /* 0 */
1563
  "merg",       /* 1 */
1564
  "mask",       /* 2 */
1565
  "mul",        /* 3 */
1566
  "div",        /* 4 */
1567
  "and",        /* 5 */
1568
  "or", /* 6 */
1569
  "xor",        /* 7 */
1570
  "shf",        /* 8 */
1571
  "add",        /* 9 */
1572
  "sub",        /* 10 */
1573
  "exit",       /* 11 */
1574
  "jmp",        /* 12 */
1575
  "jmpi",       /* 13 */
1576
  "jmpa",       /* 14 */
1577
  "jmps",       /* 15 */
1578
  "tac",        /* 16 */
1579
  "ldea",       /* 17 */
1580
  "ld", /* 18 */
1581
  "tas",        /* 19 */
1582
  "pshea",      /* 20 */
1583
  "st", /* 21 */
1584
  "call",       /* 22 */
1585
  "calls",      /* 23 */
1586
  "callq",      /* 24 */
1587
  "pfork",      /* 25 */
1588
  "ste",        /* 26 */
1589
  "incr",       /* 27 */
1590
  "cvtw",       /* 28 */
1591
  "cvtb",       /* 29 */
1592
  "cvth",       /* 30 */
1593
  "cvts",       /* 31 */
1594
  "cvtd",       /* 32 */
1595
  "cvtl",       /* 33 */
1596
  "ldpa",       /* 34 */
1597
  "plc",        /* 35 */
1598
  "tzc",        /* 36 */
1599
  "eq", /* 37 */
1600
  "leu",        /* 38 */
1601
  "ltu",        /* 39 */
1602
  "le", /* 40 */
1603
  "lt", /* 41 */
1604
  "not",        /* 42 */
1605
  "neg",        /* 43 */
1606
  "lop",        /* 44 */
1607
  "cprs",       /* 45 */
1608
  "nop",        /* 46 */
1609
  "br", /* 47 */
1610
  "bri",        /* 48 */
1611
  "bra",        /* 49 */
1612
  "brs",        /* 50 */
1613
  "ldvi",       /* 51 */
1614
  "stvi",       /* 52 */
1615
  "ldsdr",      /* 53 */
1616
  "ldkdr",      /* 54 */
1617
  "ln", /* 55 */
1618
  "patu",       /* 56 */
1619
  "pate",       /* 57 */
1620
  "pich",       /* 58 */
1621
  "plch",       /* 59 */
1622
  "idle",       /* 60 */
1623
  "rtnq",       /* 61 */
1624
  "cfork",      /* 62 */
1625
  "rtn",        /* 63 */
1626
  "wfork",      /* 64 */
1627
  "join",       /* 65 */
1628
  "rtnc",       /* 66 */
1629
  "exp",        /* 67 */
1630
  "sin",        /* 68 */
1631
  "cos",        /* 69 */
1632
  "psh",        /* 70 */
1633
  "pop",        /* 71 */
1634
  "eni",        /* 72 */
1635
  "dsi",        /* 73 */
1636
  "bkpt",       /* 74 */
1637
  "msync",      /* 75 */
1638
  "mski",       /* 76 */
1639
  "xmti",       /* 77 */
1640
  "tstvv",      /* 78 */
1641
  "diag",       /* 79 */
1642
  "pbkpt",      /* 80 */
1643
  "sqrt",       /* 81 */
1644
  "casr",       /* 82 */
1645
  "atan",       /* 83 */
1646
  "sum",        /* 84 */
1647
  "all",        /* 85 */
1648
  "any",        /* 86 */
1649
  "parity",     /* 87 */
1650
  "max",        /* 88 */
1651
  "min",        /* 89 */
1652
  "prod",       /* 90 */
1653
  "halt",       /* 91 */
1654
  "sysc",       /* 92 */
1655
  "trap",       /* 93 */
1656
  "tst",        /* 94 */
1657
  "lck",        /* 95 */
1658
  "ulk",        /* 96 */
1659
  "spawn",      /* 97 */
1660
  "ldcmr",      /* 98 */
1661
  "stcmr",      /* 99 */
1662
  "popr",       /* 100 */
1663
  "pshr",       /* 101 */
1664
  "rcvr",       /* 102 */
1665
  "matm",       /* 103 */
1666
  "sndr",       /* 104 */
1667
  "putr",       /* 105 */
1668
  "getr",       /* 106 */
1669
  "matr",       /* 107 */
1670
  "mat",        /* 108 */
1671
  "get",        /* 109 */
1672
  "rcv",        /* 110 */
1673
  "inc",        /* 111 */
1674
  "put",        /* 112 */
1675
  "snd",        /* 113 */
1676
  "enal",       /* 114 */
1677
  "enag",       /* 115 */
1678
  "frint",      /* 116 */
1679
  "xpnd",       /* 117 */
1680
  "ctrsl",      /* 118 */
1681
  "ctrsg",      /* 119 */
1682
  "stop",       /* 120 */
1683
};
1684
 
1685
char *rop[] = {
1686
  "",   /* 0 */
1687
  ".t", /* 1 */
1688
  ".f", /* 2 */
1689
  ".s", /* 3 */
1690
  ".d", /* 4 */
1691
  ".b", /* 5 */
1692
  ".h", /* 6 */
1693
  ".w", /* 7 */
1694
  ".l", /* 8 */
1695
  ".x", /* 9 */
1696
  ".u", /* 10 */
1697
  ".s.f",       /* 11 */
1698
  ".d.f",       /* 12 */
1699
  ".b.f",       /* 13 */
1700
  ".h.f",       /* 14 */
1701
  ".w.f",       /* 15 */
1702
  ".l.f",       /* 16 */
1703
  ".t.f",       /* 17 */
1704
  ".s.t",       /* 18 */
1705
  ".d.t",       /* 19 */
1706
  ".b.t",       /* 20 */
1707
  ".h.t",       /* 21 */
1708
  ".w.t",       /* 22 */
1709
  ".l.t",       /* 23 */
1710
  ".t.t",       /* 24 */
1711
};

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.