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