Initial import from FreeBSD RELENG_4:
[games.git] / gnu / usr.bin / as / opcode / vax.h
1 /* Vax opcde list.
2    Copyright (C) 1989, Free Software Foundation, Inc.
3
4 This file is part of GDB and GAS.
5
6 GDB and GAS are 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 1, or (at your option)
9 any later version.
10
11 GDB and GAS are 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 GDB or GAS; see the file COPYING.  If not, write to
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
19
20 #ifndef vax_opcodeT
21 #define vax_opcodeT int
22 #endif /* no vax_opcodeT */
23
24 struct vot_wot                  /* vax opcode table: wot to do with this */
25                                 /* particular opcode */
26 {
27   char *            args;       /* how to compile said opcode */
28   vax_opcodeT       code;       /* op-code (may be > 8 bits!) */
29 };
30
31 struct vot                      /* vax opcode text */
32 {
33   char *            name;       /* opcode name: lowercase string  [key]  */
34   struct vot_wot    detail;     /* rest of opcode table          [datum] */
35 };
36
37 #define vot_how args
38 #define vot_code code
39 #define vot_detail detail
40 #define vot_name name
41
42 static const struct vot
43 votstrs[] =
44 {
45 {    "halt",    {"",                    0x00    } },
46 {    "nop",     {"",                    0x01    } },
47 {    "rei",     {"",                    0x02    } },
48 {    "bpt",     {"",                    0x03    } },
49 {    "ret",     {"",                    0x04    } },
50 {    "rsb",     {"",                    0x05    } },
51 {    "ldpctx",  {"",                    0x06    } },
52 {    "svpctx",  {"",                    0x07    } },
53 {    "cvtps",   {"rwabrwab",            0x08    } },
54 {    "cvtsp",   {"rwabrwab",            0x09    } },
55 {    "index",   {"rlrlrlrlrlwl",        0x0a    } },
56 {    "crc",     {"abrlrwab",            0x0b    } },
57 {    "prober",  {"rbrwab",              0x0c    } },
58 {    "probew",  {"rbrwab",              0x0d    } },
59 {    "insque",  {"abab",                0x0e    } },
60 {    "remque",  {"abwl",                0x0f    } },
61 {    "bsbb",    {"bb",                  0x10    } },
62 {    "brb",     {"bb",                  0x11    } },
63 {    "bneq",    {"bb",                  0x12    } },
64 {    "bnequ",   {"bb",                  0x12    } },
65 {    "beql",    {"bb",                  0x13    } },
66 {    "beqlu",   {"bb",                  0x13    } },
67 {    "bgtr",    {"bb",                  0x14    } },
68 {    "bleq",    {"bb",                  0x15    } },
69 {    "jsb",     {"ab",                  0x16    } },
70 {    "jmp",     {"ab",                  0x17    } },
71 {    "bgeq",    {"bb",                  0x18    } },
72 {    "blss",    {"bb",                  0x19    } },
73 {    "bgtru",   {"bb",                  0x1a    } },
74 {    "blequ",   {"bb",                  0x1b    } },
75 {    "bvc",     {"bb",                  0x1c    } },
76 {    "bvs",     {"bb",                  0x1d    } },
77 {    "bcc",     {"bb",                  0x1e    } },
78 {    "bgequ",   {"bb",                  0x1e    } },
79 {    "blssu",   {"bb",                  0x1f    } },
80 {    "bcs",     {"bb",                  0x1f    } },
81 {    "addp4",   {"rwabrwab",            0x20    } },
82 {    "addp6",   {"rwabrwabrwab",        0x21    } },
83 {    "subp4",   {"rwabrwab",            0x22    } },
84 {    "subp6",   {"rwabrwabrwab",        0x23    } },
85 {    "cvtpt",   {"rwababrwab",          0x24    } },
86 {    "mulp",    {"rwabrwabrwab",        0x25    } },
87 {    "cvttp",   {"rwababrwab",          0x26    } },
88 {    "divp",    {"rwabrwabrwab",        0x27    } },
89 {    "movc3",   {"rwabab",              0x28    } },
90 {    "cmpc3",   {"rwabab",              0x29    } },
91 {    "scanc",   {"rwababrb",            0x2a    } },
92 {    "spanc",   {"rwababrb",            0x2b    } },
93 {    "movc5",   {"rwabrbrwab",          0x2c    } },
94 {    "cmpc5",   {"rwabrbrwab",          0x2d    } },
95 {    "movtc",   {"rwabrbabrwab",        0x2e    } },
96 {    "movtuc",  {"rwabrbabrwab",        0x2f    } },
97 {    "bsbw",    {"bw",                  0x30    } },
98 {    "brw",     {"bw",                  0x31    } },
99 {    "cvtwl",   {"rwwl",                0x32    } },
100 {    "cvtwb",   {"rwwb",                0x33    } },
101 {    "movp",    {"rwabab",              0x34    } },
102 {    "cmpp3",   {"rwabab",              0x35    } },
103 {    "cvtpl",   {"rwabwl",              0x36    } },
104 {    "cmpp4",   {"rwabrwab",            0x37    } },
105 {    "editpc",  {"rwababab",            0x38    } },
106 {    "matchc",  {"rwabrwab",            0x39    } },
107 {    "locc",    {"rbrwab",              0x3a    } },
108 {    "skpc",    {"rbrwab",              0x3b    } },
109 {    "movzwl",  {"rwwl",                0x3c    } },
110 {    "acbw",    {"rwrwmwbw",            0x3d    } },
111 {    "movaw",   {"awwl",                0x3e    } },
112 {    "pushaw",  {"aw",                  0x3f    } },
113 {    "addf2",   {"rfmf",                0x40    } },
114 {    "addf3",   {"rfrfwf",              0x41    } },
115 {    "subf2",   {"rfmf",                0x42    } },
116 {    "subf3",   {"rfrfwf",              0x43    } },
117 {    "mulf2",   {"rfmf",                0x44    } },
118 {    "mulf3",   {"rfrfwf",              0x45    } },
119 {    "divf2",   {"rfmf",                0x46    } },
120 {    "divf3",   {"rfrfwf",              0x47    } },
121 {    "cvtfb",   {"rfwb",                0x48    } },
122 {    "cvtfw",   {"rfww",                0x49    } },
123 {    "cvtfl",   {"rfwl",                0x4a    } },
124 {    "cvtrfl",  {"rfwl",                0x4b    } },
125 {    "cvtbf",   {"rbwf",                0x4c    } },
126 {    "cvtwf",   {"rwwf",                0x4d    } },
127 {    "cvtlf",   {"rlwf",                0x4e    } },
128 {    "acbf",    {"rfrfmfbw",            0x4f    } },
129 {    "movf",    {"rfwf",                0x50    } },
130 {    "cmpf",    {"rfrf",                0x51    } },
131 {    "mnegf",   {"rfwf",                0x52    } },
132 {    "tstf",    {"rf",                  0x53    } },
133 {    "emodf",   {"rfrbrfwlwf",          0x54    } },
134 {    "polyf",   {"rfrwab",              0x55    } },
135 {    "cvtfd",   {"rfwd",                0x56    } },
136                                         /* opcode 57 is not defined yet */
137 {    "adawi",   {"rwmw",                0x58    } },
138                                         /* opcode 59 is not defined yet */
139                                         /* opcode 5a is not defined yet */
140                                         /* opcode 5b is not defined yet */
141 {    "insqhi",  {"abaq",                0x5c    } },
142 {    "insqti",  {"abaq",                0x5d    } },
143 {    "remqhi",  {"aqwl",                0x5e    } },
144 {    "remqti",  {"aqwl",                0x5f    } },
145 {    "addd2",   {"rdmd",                0x60    } },
146 {    "addd3",   {"rdrdwd",              0x61    } },
147 {    "subd2",   {"rdmd",                0x62    } },
148 {    "subd3",   {"rdrdwd",              0x63    } },
149 {    "muld2",   {"rdmd",                0x64    } },
150 {    "muld3",   {"rdrdwd",              0x65    } },
151 {    "divd2",   {"rdmd",                0x66    } },
152 {    "divd3",   {"rdrdwd",              0x67    } },
153 {    "cvtdb",   {"rdwb",                0x68    } },
154 {    "cvtdw",   {"rdww",                0x69    } },
155 {    "cvtdl",   {"rdwl",                0x6a    } },
156 {    "cvtrdl",  {"rdwl",                0x6b    } },
157 {    "cvtbd",   {"rbwd",                0x6c    } },
158 {    "cvtwd",   {"rwwd",                0x6d    } },
159 {    "cvtld",   {"rlwd",                0x6e    } },
160 {    "acbd",    {"rdrdmdbw",            0x6f    } },
161 {    "movd",    {"rdwd",                0x70    } },
162 {    "cmpd",    {"rdrd",                0x71    } },
163 {    "mnegd",   {"rdwd",                0x72    } },
164 {    "tstd",    {"rd",                  0x73    } },
165 {    "emodd",   {"rdrbrdwlwd",          0x74    } },
166 {    "polyd",   {"rdrwab",              0x75    } },
167 {    "cvtdf",   {"rdwf",                0x76    } },
168                                         /* opcode 77 is not defined yet */
169 {    "ashl",    {"rbrlwl",              0x78    } },
170 {    "ashq",    {"rbrqwq",              0x79    } },
171 {    "emul",    {"rlrlrlwq",            0x7a    } },
172 {    "ediv",    {"rlrqwlwl",            0x7b    } },
173 {    "clrd",    {"wd",                  0x7c    } },
174 {    "clrg",    {"wg",                  0x7c    } },
175 {    "clrq",    {"wd",                  0x7c    } },
176 {    "movq",    {"rqwq",                0x7d    } },
177 {    "movaq",   {"aqwl",                0x7e    } },
178 {    "movad",   {"adwl",                0x7e    } },
179 {    "pushaq",  {"aq",                  0x7f    } },
180 {    "pushad",  {"ad",                  0x7f    } },
181 {    "addb2",   {"rbmb",                0x80    } },
182 {    "addb3",   {"rbrbwb",              0x81    } },
183 {    "subb2",   {"rbmb",                0x82    } },
184 {    "subb3",   {"rbrbwb",              0x83    } },
185 {    "mulb2",   {"rbmb",                0x84    } },
186 {    "mulb3",   {"rbrbwb",              0x85    } },
187 {    "divb2",   {"rbmb",                0x86    } },
188 {    "divb3",   {"rbrbwb",              0x87    } },
189 {    "bisb2",   {"rbmb",                0x88    } },
190 {    "bisb3",   {"rbrbwb",              0x89    } },
191 {    "bicb2",   {"rbmb",                0x8a    } },
192 {    "bicb3",   {"rbrbwb",              0x8b    } },
193 {    "xorb2",   {"rbmb",                0x8c    } },
194 {    "xorb3",   {"rbrbwb",              0x8d    } },
195 {    "mnegb",   {"rbwb",                0x8e    } },
196 {    "caseb",   {"rbrbrb",              0x8f    } },
197 {    "movb",    {"rbwb",                0x90    } },
198 {    "cmpb",    {"rbrb",                0x91    } },
199 {    "mcomb",   {"rbwb",                0x92    } },
200 {    "bitb",    {"rbrb",                0x93    } },
201 {    "clrb",    {"wb",                  0x94    } },
202 {    "tstb",    {"rb",                  0x95    } },
203 {    "incb",    {"mb",                  0x96    } },
204 {    "decb",    {"mb",                  0x97    } },
205 {    "cvtbl",   {"rbwl",                0x98    } },
206 {    "cvtbw",   {"rbww",                0x99    } },
207 {    "movzbl",  {"rbwl",                0x9a    } },
208 {    "movzbw",  {"rbww",                0x9b    } },
209 {    "rotl",    {"rbrlwl",              0x9c    } },
210 {    "acbb",    {"rbrbmbbw",            0x9d    } },
211 {    "movab",   {"abwl",                0x9e    } },
212 {    "pushab",  {"ab",                  0x9f    } },
213 {    "addw2",   {"rwmw",                0xa0    } },
214 {    "addw3",   {"rwrwww",              0xa1    } },
215 {    "subw2",   {"rwmw",                0xa2    } },
216 {    "subw3",   {"rwrwww",              0xa3    } },
217 {    "mulw2",   {"rwmw",                0xa4    } },
218 {    "mulw3",   {"rwrwww",              0xa5    } },
219 {    "divw2",   {"rwmw",                0xa6    } },
220 {    "divw3",   {"rwrwww",              0xa7    } },
221 {    "bisw2",   {"rwmw",                0xa8    } },
222 {    "bisw3",   {"rwrwww",              0xa9    } },
223 {    "bicw2",   {"rwmw",                0xaa    } },
224 {    "bicw3",   {"rwrwww",              0xab    } },
225 {    "xorw2",   {"rwmw",                0xac    } },
226 {    "xorw3",   {"rwrwww",              0xad    } },
227 {    "mnegw",   {"rwww",                0xae    } },
228 {    "casew",   {"rwrwrw",              0xaf    } },
229 {    "movw",    {"rwww",                0xb0    } },
230 {    "cmpw",    {"rwrw",                0xb1    } },
231 {    "mcomw",   {"rwww",                0xb2    } },
232 {    "bitw",    {"rwrw",                0xb3    } },
233 {    "clrw",    {"ww",                  0xb4    } },
234 {    "tstw",    {"rw",                  0xb5    } },
235 {    "incw",    {"mw",                  0xb6    } },
236 {    "decw",    {"mw",                  0xb7    } },
237 {    "bispsw",  {"rw",                  0xb8    } },
238 {    "bicpsw",  {"rw",                  0xb9    } },
239 {    "popr",    {"rw",                  0xba    } },
240 {    "pushr",   {"rw",                  0xbb    } },
241 {    "chmk",    {"rw",                  0xbc    } },
242 {    "chme",    {"rw",                  0xbd    } },
243 {    "chms",    {"rw",                  0xbe    } },
244 {    "chmu",    {"rw",                  0xbf    } },
245 {    "addl2",   {"rlml",                0xc0    } },
246 {    "addl3",   {"rlrlwl",              0xc1    } },
247 {    "subl2",   {"rlml",                0xc2    } },
248 {    "subl3",   {"rlrlwl",              0xc3    } },
249 {    "mull2",   {"rlml",                0xc4    } },
250 {    "mull3",   {"rlrlwl",              0xc5    } },
251 {    "divl2",   {"rlml",                0xc6    } },
252 {    "divl3",   {"rlrlwl",              0xc7    } },
253 {    "bisl2",   {"rlml",                0xc8    } },
254 {    "bisl3",   {"rlrlwl",              0xc9    } },
255 {    "bicl2",   {"rlml",                0xca    } },
256 {    "bicl3",   {"rlrlwl",              0xcb    } },
257 {    "xorl2",   {"rlml",                0xcc    } },
258 {    "xorl3",   {"rlrlwl",              0xcd    } },
259 {    "mnegl",   {"rlwl",                0xce    } },
260 {    "casel",   {"rlrlrl",              0xcf    } },
261 {    "movl",    {"rlwl",                0xd0    } },
262 {    "cmpl",    {"rlrl",                0xd1    } },
263 {    "mcoml",   {"rlwl",                0xd2    } },
264 {    "bitl",    {"rlrl",                0xd3    } },
265 {    "clrf",    {"wf",                  0xd4    } },
266 {    "clrl",    {"wl",                  0xd4    } },
267 {    "tstl",    {"rl",                  0xd5    } },
268 {    "incl",    {"ml",                  0xd6    } },
269 {    "decl",    {"ml",                  0xd7    } },
270 {    "adwc",    {"rlml",                0xd8    } },
271 {    "sbwc",    {"rlml",                0xd9    } },
272 {    "mtpr",    {"rlrl",                0xda    } },
273 {    "mfpr",    {"rlwl",                0xdb    } },
274 {    "movpsl",  {"wl",                  0xdc    } },
275 {    "pushl",   {"rl",                  0xdd    } },
276 {    "moval",   {"alwl",                0xde    } },
277 {    "movaf",   {"afwl",                0xde    } },
278 {    "pushal",  {"al",                  0xdf    } },
279 {    "pushaf",  {"af",                  0xdf    } },
280 {    "bbs",     {"rlabbb",              0xe0    } },
281 {    "bbc",     {"rlabbb",              0xe1    } },
282 {    "bbss",    {"rlabbb",              0xe2    } },
283 {    "bbcs",    {"rlabbb",              0xe3    } },
284 {    "bbsc",    {"rlabbb",              0xe4    } },
285 {    "bbcc",    {"rlabbb",              0xe5    } },
286 {    "bbssi",   {"rlabbb",              0xe6    } },
287 {    "bbcci",   {"rlabbb",              0xe7    } },
288 {    "blbs",    {"rlbb",                0xe8    } },
289 {    "blbc",    {"rlbb",                0xe9    } },
290 {    "ffs",     {"rlrbvbwl",            0xea    } },
291 {    "ffc",     {"rlrbvbwl",            0xeb    } },
292 {    "cmpv",    {"rlrbvbrl",            0xec    } },
293 {    "cmpzv",   {"rlrbvbrl",            0xed    } },
294 {    "extv",    {"rlrbvbwl",            0xee    } },
295 {    "extzv",   {"rlrbvbwl",            0xef    } },
296 {    "insv",    {"rlrlrbvb",            0xf0    } },
297 {    "acbl",    {"rlrlmlbw",            0xf1    } },
298 {    "aoblss",  {"rlmlbb",              0xf2    } },
299 {    "aobleq",  {"rlmlbb",              0xf3    } },
300 {    "sobgeq",  {"mlbb",                0xf4    } },
301 {    "sobgtr",  {"mlbb",                0xf5    } },
302 {    "cvtlb",   {"rlwb",                0xf6    } },
303 {    "cvtlw",   {"rlww",                0xf7    } },
304 {    "ashp",    {"rbrwabrbrwab",        0xf8    } },
305 {    "cvtlp",   {"rlrwab",              0xf9    } },
306 {    "callg",   {"abab",                0xfa    } },
307 {    "calls",   {"rlab",                0xfb    } },
308 {    "xfc",     {"",                    0xfc    } },
309                                         /* undefined opcodes here */
310 {    "cvtdh",   {"rdwh",                0x32fd  } },
311 {    "cvtgf",   {"rgwh",                0x33fd  } },
312 {    "addg2",   {"rgmg",                0x40fd  } },
313 {    "addg3",   {"rgrgwg",              0x41fd  } },
314 {    "subg2",   {"rgmg",                0x42fd  } },
315 {    "subg3",   {"rgrgwg",              0x43fd  } },
316 {    "mulg2",   {"rgmg",                0x44fd  } },
317 {    "mulg3",   {"rgrgwg",              0x45fd  } },
318 {    "divg2",   {"rgmg",                0x46fd  } },
319 {    "divg3",   {"rgrgwg",              0x47fd  } },
320 {    "cvtgb",   {"rgwb",                0x48fd  } },
321 {    "cvtgw",   {"rgww",                0x49fd  } },
322 {    "cvtgl",   {"rgwl",                0x4afd  } },
323 {    "cvtrgl",  {"rgwl",                0x4bfd  } },
324 {    "cvtbg",   {"rbwg",                0x4cfd  } },
325 {    "cvtwg",   {"rwwg",                0x4dfd  } },
326 {    "cvtlg",   {"rlwg",                0x4efd  } },
327 {    "acbg",    {"rgrgmgbw",            0x4ffd  } },
328 {    "movg",    {"rgwg",                0x50fd  } },
329 {    "cmpg",    {"rgrg",                0x51fd  } },
330 {    "mnegg",   {"rgwg",                0x52fd  } },
331 {    "tstg",    {"rg",                  0x53fd  } },
332 {    "emodg",   {"rgrwrgwlwg",          0x54fd  } },
333 {    "polyg",   {"rgrwab",              0x55fd  } },
334 {    "cvtgh",   {"rgwh",                0x56fd  } },
335                                         /* undefined opcodes here */
336 {    "addh2",   {"rhmh",                0x60fd  } },
337 {    "addh3",   {"rhrhwh",              0x61fd  } },
338 {    "subh2",   {"rhmh",                0x62fd  } },
339 {    "subh3",   {"rhrhwh",              0x63fd  } },
340 {    "mulh2",   {"rhmh",                0x64fd  } },
341 {    "mulh3",   {"rhrhwh",              0x65fd  } },
342 {    "divh2",   {"rhmh",                0x66fd  } },
343 {    "divh3",   {"rhrhwh",              0x67fd  } },
344 {    "cvthb",   {"rhwb",                0x68fd  } },
345 {    "cvthw",   {"rhww",                0x69fd  } },
346 {    "cvthl",   {"rhwl",                0x6afd  } },
347 {    "cvtrhl",  {"rhwl",                0x6bfd  } },
348 {    "cvtbh",   {"rbwh",                0x6cfd  } },
349 {    "cvtwh",   {"rwwh",                0x6dfd  } },
350 {    "cvtlh",   {"rlwh",                0x6efd  } },
351 {    "acbh",    {"rhrhmhbw",            0x6ffd  } },
352 {    "movh",    {"rhwh",                0x70fd  } },
353 {    "cmph",    {"rhrh",                0x71fd  } },
354 {    "mnegh",   {"rhwh",                0x72fd  } },
355 {    "tsth",    {"rh",                  0x73fd  } },
356 {    "emodh",   {"rhrwrhwlwh",          0x74fd  } },
357 {    "polyh",   {"rhrwab",              0x75fd  } },
358 {    "cvthg",   {"rhwg",                0x76fd  } },
359                                         /* undefined opcodes here */
360 {    "clrh",    {"wh",                  0x7cfd  } },
361 {    "clro",    {"wo",                  0x7cfd  } },
362 {    "movo",    {"rowo",                0x7dfd  } },
363 {    "movah",   {"ahwl",                0x7efd  } },
364 {    "movao",   {"aowl",                0x7efd  } },
365 {    "pushah",  {"ah",                  0x7ffd  } },
366 {    "pushao",  {"ao",                  0x7ffd  } },
367                                         /* undefined opcodes here */
368 {    "cvtfh",   {"rfwh",                0x98fd  } },
369 {    "cvtfg",   {"rfwg",                0x99fd  } },
370                                         /* undefined opcodes here */
371 {    "cvthf",   {"rhwf",                0xf6fd  } },
372 {    "cvthd",   {"rhwd",                0xf7fd  } },
373                                         /* undefined opcodes here */
374 {    "bugl",    {"rl",                  0xfdff  } },
375 {    "bugw",    {"rw",                  0xfeff  } },
376                                         /* undefined opcodes here */
377
378 {      ""       ,   ""          } /* empty is end sentinel */
379
380 };                              /* votstrs */
381
382 /* end: vax.opcode.h */