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