New Alpha support files, based on files from CMU.
[deliverable/binutils-gdb.git] / gas / config / alpha-opcode.h
1 /*
2 * Mach Operating System
3 * Copyright (c) 1993 Carnegie Mellon University
4 * All Rights Reserved.
5 *
6 * Permission to use, copy, modify and distribute this software and its
7 * documentation is hereby granted, provided that both the copyright
8 * notice and this permission notice appear in all copies of the
9 * software, derivative works or modified versions, and any portions
10 * thereof, and that both notices appear in supporting documentation.
11 *
12 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS
13 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
14 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
15 *
16 * Carnegie Mellon requests users of this software to return to
17 *
18 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
19 * School of Computer Science
20 * Carnegie Mellon University
21 * Pittsburgh PA 15213-3890
22 *
23 * any improvements or extensions that they make and grant Carnegie the
24 * rights to redistribute these changes.
25 */
26 /*
27 * HISTORY
28 * 5-Oct-93 Alessandro Forin (af) at Carnegie-Mellon University
29 * First checkin.
30 *
31 * $Log$
32 * Revision 1.1 1994/01/28 01:36:59 raeburn
33 * New Alpha support files, based on files from CMU.
34 * Still to do:
35 * - fix floating-point handling
36 * - figure out if we can adapt to using ../opcodes/alpha-opc.h
37 * - gcc bootstrap testing
38 * - 32-bit mode support?
39 * - test cross-assembly
40 *
41 *
42 * Author: Alessandro Forin, Carnegie Mellon University
43 * Date: Jan 1993
44 */
45
46 /* Table of opcodes for the alpha.
47 Copyright (C) 1989 Free Software Foundation, Inc.
48
49 This file is part of GAS, the GNU Assembler, and GDB, the GNU disassembler.
50
51 GAS/GDB is free software; you can redistribute it and/or modify
52 it under the terms of the GNU General Public License as published by
53 the Free Software Foundation; either version 1, or (at your option)
54 any later version.
55
56 GAS/GDB is distributed in the hope that it will be useful,
57 but WITHOUT ANY WARRANTY; without even the implied warranty of
58 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
59 GNU General Public License for more details.
60
61 You should have received a copy of the GNU General Public License
62 along with GAS or GDB; see the file COPYING. If not, write to
63 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
64
65 #if !defined(__STDC__) && !defined(const)
66 #define const
67 #endif
68
69 /*
70 * Structure of an opcode table entry.
71 */
72 struct alpha_opcode
73 {
74 const char *name;
75 const unsigned int match; /* fixed encoding part of instruction */
76 const int isa_float;
77 const char *args;
78 };
79
80 /*
81 All alpha opcodes are 32 bits, except for the `set' instruction (really
82 a macro), which is 64 bits. It is handled as a special case.
83
84 The match component is a mask saying which bits must match a
85 particular opcode in order for an instruction to be an instance
86 of that opcode.
87
88 The args component is a string containing one character
89 for each operand of the instruction.
90
91 Kinds of operands:
92 1 ra register
93 2 rb register
94 3 rc register
95 r same register for ra and rc
96 R same register for ra and rb
97 e fa floating point register.
98 f fb floating point register.
99 g fc floating point register.
100 I 26 bit immediate
101 l 16 low bits of immediate
102 h 16 high(er) bits of immediate [Never used. KR]
103 L 22 bit PC relative immediate.
104 i 14 bit immediate jmp/jsr/ret operand -- PC-rel or not,
105 dependent on opcode
106 b 8 bit literal, shifted left 13 bits (literal in `operate' fmt)
107 G Base-register GET at address, needs macro-expansion
108 P Base-register PUT at address, needs macro-expansion
109 Bn builtin macro
110 t twelve bit displacement
111 8 eight bit index
112
113 Syntactic elements
114 (
115 ) base register in "offset(base)" addressing
116 , separator
117
118 Builtin functions (look like macros to the programmer)
119 %br the current base register
120 la %r,A load the (64bit) address in register %r
121 li %r,N load the constant N in register %r
122 #if 0
123 lo(A) low 16 bits of Address (relocatable)
124 uml(A) med-low 16 bits, unchanged
125 umh(A) med-high 16 bits, unchanged
126 uhi(A) high 16 bits, unchanged
127 ml(A) med-low, adjusted viz sign of lo(A)
128 mh(A) med-high, adjusted viz sign of ml(A)
129 hi(A) high, adjusted viz sign of mh(A)
130 #endif
131
132 */
133
134 /* The order of the opcodes in this table is significant:
135
136 * The assembler requires that all instances of the same mnemonic must be
137 consecutive. If they aren't, the assembler will bomb at runtime.
138
139 * The disassembler should not care about the order of the opcodes. */
140
141 static const struct alpha_opcode alpha_opcodes[] =
142 {
143
144 { "ldgp", 0x00000000, 0, "3,l(1)Ba" }, /* builtin */
145 { "setgp", 0x00000000, 0, "0(1)Bb" }, /* builtin */
146
147 { "reml", 0x00000000, 0, "1,2,3B0" }, /* builtin */
148 { "divl", 0x00000000, 0, "1,2,3B1" }, /* builtin */
149 { "remq", 0x00000000, 0, "1,2,3B2" }, /* builtin */
150 { "divq", 0x00000000, 0, "1,2,3B3" }, /* builtin */
151 { "remlu", 0x00000000, 0, "1,2,3B4" }, /* builtin */
152 { "divlu", 0x00000000, 0, "1,2,3B5" }, /* builtin */
153 { "remqu", 0x00000000, 0, "1,2,3B6" }, /* builtin */
154 { "divqu", 0x00000000, 0, "1,2,3B7" }, /* builtin */
155
156 { "lda", 0x20000000, 0, "1,l(2)" }, /* 6o+5a+5b+16d */
157 { "lda", 0x20000000, 0, "1,G" }, /* regbase macro */
158 { "ldi", 0x201F0000, 0, "1,l"}, /* ldi ra,lit == lda ra,lit(r31) */
159 { "ldah", 0x24000000, 0, "1,l(2)" },
160 { "ldah", 0x24000000, 0, "1,G" }, /* regbase macro */
161 { "lui", 0x241F0000, 0, "1,l"}, /* lui ra,lit == ldah ra,lit(r31) */
162 { "ldil", 0x20000000, 0, "1,G" }, /* macro */
163 { "ldiq", 0x20000000, 0, "1,G" }, /* (broken) macro */
164
165 { "ldl", 0xa0000000, 0, "1,l(2)" },
166 { "ldl", 0xa0000000, 0, "1,G" }, /* regbase macro */
167 { "ldl_l", 0xa8000000, 0, "1,l(2)" },
168 { "ldl_l", 0xa8000000, 0, "1,G" }, /* regbase macro */
169 { "ldq", 0xa4000000, 0, "1,l(2)" },
170 { "ldq", 0xa4000000, 0, "1,G" }, /* regbase macro */
171 { "ldq_u", 0x2c000000, 0, "1,l(2)" },
172 { "ldq_u", 0x2c000000, 0, "1,G" }, /* regbase macro */
173 { "ldq_l", 0xac000000, 0, "1,l(2)" },
174 { "ldq_l", 0xac000000, 0, "1,G" }, /* regbase macro */
175
176 { "stl", 0xb0000000, 0, "1,l(2)" },
177 { "stl", 0xb0000000, 0, "1,P" }, /* regbase macro */
178 { "stl_c", 0xb8000000, 0, "1,l(2)" },
179 { "stl_c", 0xb8000000, 0, "1,P" }, /* regbase macro */
180 { "stq", 0xb4000000, 0, "1,l(2)" },
181 { "stq", 0xb4000000, 0, "1,P" }, /* regbase macro */
182 { "stq_u", 0x3c000000, 0, "1,l(2)" },
183 { "stq_u", 0x3c000000, 0, "1,P" }, /* regbase macro */
184 { "stq_c", 0xbc000000, 0, "1,l(2)" },
185 { "stq_c", 0xbc000000, 0, "1,P" }, /* regbase macro */
186
187 { "beq", 0xe4000000, 0, "1,L" }, /* 6o+5a+21d */
188 { "bne", 0xf4000000, 0, "1,L" },
189 { "blt", 0xe8000000, 0, "1,L" },
190 { "ble", 0xec000000, 0, "1,L" },
191 { "bgt", 0xfc000000, 0, "1,L" },
192 { "bge", 0xf8000000, 0, "1,L" },
193 { "blbc", 0xe0000000, 0, "1,L" },
194 { "blbs", 0xf0000000, 0, "1,L" },
195
196 { "br", 0xc0000000, 0, "1,L" },
197 { "br", 0xc3e00000, 0, "L" }, /* macro: br zero,disp */
198 { "bsr", 0xd0000000, 0, "1,L" },
199 { "bsr", 0xd3500000, 0, "L" }, /* macro: bsr $ra,L */
200
201 { "jmp", 0x68000000, 0, "1,(2),i" }, /* 6o+5a+5b+2A+14d */
202 { "jmp", 0x68000000, 0, "1,(2)" },
203 { "jsr", 0x68004000, 0, "1,(2),i" },
204 { "jsr", 0x68004000, 0, "1,(2)" },
205 { "jsr", 0x68004000, 0, "1,Bc" }, /* macro: lda $pv,L;jsr .. */
206 { "ret", 0x68008000, 0, "1,(2),i" },
207 { "ret", 0x68008000, 0, "1,(2)" },
208 { "ret", 0x6b5a8000, 0, "" }, /* macro: ret ra,(ra) */
209 { "ret", 0x6be08000, 0, "(2)" }, /* macro: ret zero,(2) */
210 { "ret", 0x681a8000, 0, "1" }, /* macro: ret 1,(ra) */
211 { "jcr", 0x6800c000, 0, "1,(2)" },
212 { "jsr_coroutine", 0x6800c000, 0, "1,(2)" },
213
214 { "addl", 0x40000000, 0, "1,2,3" }, /* 6o+5a+5b+4z+7f+5c */
215 { "addl", 0x40001000, 0, "1,b,3" }, /* 6o+5a+8n+1+7f+5c */
216 { "addl/v", 0x40000800, 0, "1,2,3" },
217 { "addl/v", 0x40001800, 0, "1,b,3" },
218 { "s4addl", 0x40000040, 0, "1,2,3" },
219 { "s4addl", 0x40001040, 0, "1,b,3" },
220 { "s8addl", 0x40000240, 0, "1,2,3" },
221 { "s8addl", 0x40001240, 0, "1,b,3" },
222 { "addq", 0x40000400, 0, "1,2,3" },
223 { "addq", 0x40001400, 0, "1,b,3" },
224 { "addq/v", 0x40000c00, 0, "1,2,3" },
225
226 { "addq/v", 0x40001c00, 0, "1,b,3" },
227 { "s4addq", 0x40000440, 0, "1,2,3" },
228 { "s4addq", 0x40001440, 0, "1,b,3" },
229 { "s8addq", 0x40000640, 0, "1,2,3" },
230 { "s8addq", 0x40001640, 0, "1,b,3" },
231 { "cmpeq", 0x400005a0, 0, "1,2,3" },
232 { "cmpeq", 0x400015a0, 0, "1,b,3" },
233 { "cmplt", 0x400009a0, 0, "1,2,3" },
234 { "cmplt", 0x400019a0, 0, "1,b,3" },
235 { "cmple", 0x40000da0, 0, "1,2,3" },
236 { "cmple", 0x40001da0, 0, "1,b,3" },
237 { "cmpult", 0x400003a0, 0, "1,2,3" },
238 { "cmpult", 0x400013a0, 0, "1,b,3" },
239 { "cmpule", 0x400007a0, 0, "1,2,3" },
240 { "cmpule", 0x400017a0, 0, "1,b,3" },
241 { "subl", 0x40000120, 0, "1,2,3" },
242 { "subl", 0x40001120, 0, "1,b,3" },
243 { "subl/v", 0x40000920, 0, "1,2,3" },
244 { "subl/v", 0x40001920, 0, "1,b,3" },
245 { "s4subl", 0x40000160, 0, "1,2,3" },
246 { "s4subl", 0x40001160, 0, "1,b,3" },
247 { "s8subl", 0x40000360, 0, "1,2,3" },
248 { "s8subl", 0x40001360, 0, "1,b,3" },
249 { "subq", 0x40000520, 0, "1,2,3" },
250 { "subq", 0x40001520, 0, "1,b,3" },
251 { "subq/v", 0x40000d20, 0, "1,2,3" },
252 { "subq/v", 0x40001d20, 0, "1,b,3" },
253 { "s4subq", 0x40000560, 0, "1,2,3" },
254 { "s4subq", 0x40001560, 0, "1,b,3" },
255 { "s8subq", 0x40000760, 0, "1,2,3" },
256 { "s8subq", 0x40001760, 0, "1,b,3" },
257 { "cmpbge", 0x400001e0, 0, "1,2,3" },
258 { "cmpbge", 0x400011e0, 0, "1,b,3" },
259
260 { "mull", 0x4c000000, 0, "1,2,3" },
261 { "mull", 0x4c001000, 0, "1,b,3" },
262 { "mull/v", 0x4c000800, 0, "1,2,3" },
263 { "mull/v", 0x4c001800, 0, "1,b,3" },
264 { "mulq", 0x4c000400, 0, "1,2,3" },
265 { "mulq", 0x4c001400, 0, "1,b,3" },
266 { "mulq/v", 0x4c000c00, 0, "1,2,3" },
267 { "mulq/v", 0x4c001c00, 0, "1,b,3" },
268 { "umulh", 0x4c000600, 0, "1,2,3" },
269 { "umulh", 0x4c001600, 0, "1,b,3" },
270
271 { "clr", 0x47ff0400, 0, "3" }, /* macro: or zero,zero,rc */
272 { "negl", 0x43e00120, 0, "2,3" }, /* macro: subl zero,rb,rc */
273 { "negl_v", 0x43e00920, 0, "2,3" }, /* macro: subl_v zero,rb,rc */
274 { "negq", 0x43e00520, 0, "2,3" }, /* macro: subq zero,rb,rc */
275 { "negq_v", 0x43e00d20, 0, "2,3" }, /* macro: subq_v zero,rb,rc */
276 { "sextl", 0x43e00000, 0, "2,3" }, /* macro: addl zero,rb,rc */
277
278 { "and", 0x44000000, 0, "1,2,3" },
279 { "and", 0x44001000, 0, "1,b,3" },
280 { "and", 0x44000000, 0, "r,2" }, /* macro: and ra,rb,ra */
281 { "and", 0x44001000, 0, "r,b" }, /* macro: and ra,#,ra */
282 { "or", 0x44000400, 0, "1,2,3" },
283 { "or", 0x44001400, 0, "1,b,3" },
284 { "or", 0x44000400, 0, "r,2" }, /* macro: or ra,rb,ra */
285 { "or", 0x44001400, 0, "r,b" }, /* macro: or ra,#,ra */
286 { "bis", 0x44000400, 0, "1,2,3" },
287 { "bis", 0x44001400, 0, "1,b,3" },
288 { "bis", 0x44000400, 0, "r,2" }, /* macro: or ra,rb,ra */
289 { "bis", 0x44001400, 0, "r,b" }, /* macro: or ra,#,ra */
290 { "movi", 0x47E01400, 0, "b,3"}, /* movi lit,rc == bis r31,lit,rc */
291 { "xor", 0x44000800, 0, "1,2,3" },
292 { "xor", 0x44001800, 0, "1,b,3" },
293 { "xor", 0x44000800, 0, "r,2" }, /* macro: ra,rb,ra */
294 { "xor", 0x44001800, 0, "r,b" }, /* macro: ra,#,ra */
295 { "andnot", 0x44000100, 0, "1,2,3" },
296 { "andnot", 0x44001100, 0, "1,b,3" },
297 { "andnot", 0x44000100, 0, "r,2" }, /* macro: ra,#,ra */
298 { "andnot", 0x44001100, 0, "r,b" }, /* macro: ra,#,ra */
299 { "bic", 0x44000100, 0, "1,2,3" },
300 { "bic", 0x44001100, 0, "1,b,3" },
301 { "bic", 0x44000100, 0, "r,2" }, /* macro: ra,#,ra */
302 { "bic", 0x44001100, 0, "r,b" }, /* macro: ra,#,ra */
303 { "ornot", 0x44000500, 0, "1,2,3" },
304 { "ornot", 0x44001500, 0, "1,b,3" },
305 { "ornot", 0x44000500, 0, "r,2" }, /* macro: ra,#,ra */
306 { "ornot", 0x44001500, 0, "r,b" }, /* macro: ra,#,ra */
307 { "not", 0x47e00500, 0, "2,3" }, /* macro: ornot zero,.. */
308 { "not", 0x47e01500, 0, "b,3" },
309 { "xornot", 0x44000900, 0, "1,2,3" },
310 { "xornot", 0x44001900, 0, "1,b,3" },
311 { "xornot", 0x44000900, 0, "r,2" }, /* macro: ra,#,ra */
312 { "xornot", 0x44001900, 0, "r,b" }, /* macro: ra,#,ra */
313 { "eqv", 0x44000900, 0, "1,2,3" },
314 { "eqv", 0x44001900, 0, "1,b,3" },
315 { "eqv", 0x44000900, 0, "r,2" }, /* macro: ra,#,ra */
316 { "eqv", 0x44001900, 0, "r,b" }, /* macro: ra,#,ra */
317
318 { "cmoveq", 0x44000480, 0, "1,2,3" },
319 { "cmoveq", 0x44001480, 0, "1,b,3" },
320 { "cmovne", 0x440004c0, 0, "1,2,3" },
321 { "cmovne", 0x440014c0, 0, "1,b,3" },
322 { "cmovlt", 0x44000880, 0, "1,2,3" },
323 { "cmovlt", 0x44001880, 0, "1,b,3" },
324 { "cmovle", 0x44000c80, 0, "1,2,3" },
325 { "cmovle", 0x44001c80, 0, "1,b,3" },
326 { "cmovgt", 0x44000cc0, 0, "1,2,3" },
327 { "cmovgt", 0x44001cc0, 0, "1,b,3" },
328 { "cmovge", 0x440008c0, 0, "1,2,3" },
329 { "cmovge", 0x440018c0, 0, "1,b,3" },
330 { "cmovlbc", 0x440002c0, 0, "1,2,3" },
331 { "cmovlbc", 0x440012c0, 0, "1,b,3" },
332 { "cmovlbs", 0x44000280, 0, "1,2,3" },
333 { "cmovlbs", 0x44001280, 0, "1,b,3" },
334
335 { "sll", 0x48000720, 0, "1,2,3" },
336 { "sll", 0x48001720, 0, "1,b,3" },
337 { "srl", 0x48000680, 0, "1,2,3" },
338 { "srl", 0x48001680, 0, "1,b,3" },
339 { "sra", 0x48000780, 0, "1,2,3" },
340 { "sra", 0x48001780, 0, "1,b,3" },
341
342 { "extbl", 0x480000c0, 0, "1,2,3" },
343 { "extbl", 0x480010c0, 0, "1,b,3" },
344 { "extwl", 0x480002c0, 0, "1,2,3" },
345 { "extwl", 0x480012c0, 0, "1,b,3" },
346 { "extll", 0x480004c0, 0, "1,2,3" },
347 { "extll", 0x480014c0, 0, "1,b,3" },
348 { "extql", 0x480006c0, 0, "1,2,3" },
349 { "extql", 0x480016c0, 0, "1,b,3" },
350 { "extwh", 0x48000b40, 0, "1,2,3" },
351 { "extwh", 0x48001b40, 0, "1,b,3" },
352 { "extlh", 0x48000d40, 0, "1,2,3" },
353 { "extlh", 0x48001d40, 0, "1,b,3" },
354 { "extqh", 0x48000f40, 0, "1,2,3" },
355 { "extqh", 0x48001f40, 0, "1,b,3" },
356 { "insbl", 0x48000160, 0, "1,2,3" },
357 { "insbl", 0x48001160, 0, "1,b,3" },
358 { "inswl", 0x48000360, 0, "1,2,3" },
359 { "inswl", 0x48001360, 0, "1,b,3" },
360 { "insll", 0x48000560, 0, "1,2,3" },
361 { "insll", 0x48001560, 0, "1,b,3" },
362 { "insql", 0x48000760, 0, "1,2,3" },
363 { "insql", 0x48001760, 0, "1,b,3" },
364 { "inswh", 0x48000ae0, 0, "1,2,3" },
365 { "inswh", 0x48001ae0, 0, "1,b,3" },
366 { "inslh", 0x48000ce0, 0, "1,2,3" },
367 { "inslh", 0x48001ce0, 0, "1,b,3" },
368 { "insqh", 0x48000ee0, 0, "1,2,3" },
369 { "insqh", 0x48001ee0, 0, "1,b,3" },
370 { "mskbl", 0x48000040, 0, "1,2,3" },
371 { "mskbl", 0x48001040, 0, "1,b,3" },
372 { "mskwl", 0x48000240, 0, "1,2,3" },
373 { "mskwl", 0x48001240, 0, "1,b,3" },
374 { "mskll", 0x48000440, 0, "1,2,3" },
375 { "mskll", 0x48001440, 0, "1,b,3" },
376 { "mskql", 0x48000640, 0, "1,2,3" },
377 { "mskql", 0x48001640, 0, "1,b,3" },
378 { "mskwh", 0x48000a40, 0, "1,2,3" },
379 { "mskwh", 0x48001a40, 0, "1,b,3" },
380 { "msklh", 0x48000c40, 0, "1,2,3" },
381 { "msklh", 0x48001c40, 0, "1,b,3" },
382 { "mskqh", 0x48000e40, 0, "1,2,3" },
383 { "mskqh", 0x48001e40, 0, "1,b,3" },
384 { "zap", 0x48000600, 0, "1,2,3" },
385 { "zap", 0x48001600, 0, "1,b,3" },
386 { "zapnot", 0x48000620, 0, "1,2,3" },
387 { "zapnot", 0x48001620, 0, "1,b,3" },
388
389 /*
390 * Floating point instructions
391 */
392 { "ldf", 0x80000000, 1, "e,l(2)" }, /* 6o+5a+5b+16d */
393 { "ldf", 0x80000000, 1, "e,G" }, /* regbase macro */
394 { "ldg", 0x84000000, 1, "e,l(2)" },
395 { "ldg", 0x84000000, 1, "e,G" }, /* regbase macro */
396 { "lds", 0x88000000, 1, "e,l(2)" },
397 { "lds", 0x88000000, 1, "e,G" }, /* regbase macro */
398 { "ldt", 0x8c000000, 1, "e,l(2)" },
399 { "ldt", 0x8c000000, 1, "e,G" }, /* regbase macro */
400 { "stf", 0x90000000, 1, "e,l(2)" },
401 { "stf", 0x90000000, 1, "e,P" }, /* regbase macro */
402 { "stg", 0x94000000, 1, "e,l(2)" },
403 { "stg", 0x94000000, 1, "e,P" }, /* regbase macro */
404 { "sts", 0x98000000, 1, "e,l(2)" },
405 { "sts", 0x98000000, 1, "e,P" }, /* regbase macro */
406 { "stt", 0x9c000000, 1, "e,l(2)" },
407 { "stt", 0x9c000000, 1, "e,P" }, /* regbase macro */
408
409 { "fbeq", 0xc4000000, 1, "e,L" }, /* 6o+5a+21d */
410 { "fbne", 0xd4000000, 1, "e,L" },
411 { "fblt", 0xc8000000, 1, "e,L" },
412 { "fble", 0xcc000000, 1, "e,L" },
413 { "fbgt", 0xdc000000, 1, "e,L" },
414 { "fbge", 0xd8000000, 1, "e,L" },
415
416 /* All subsets (opcode 0x17) */
417 { "cpys", 0x5c000400, 1, "e,f,g" }, /* 6o+5a+5b+11f+5c */
418 { "cpysn", 0x5c000420, 1, "e,f,g" },
419 { "cpyse", 0x5c000440, 1, "e,f,g" },
420
421 { "cvtlq", 0x5fe00200, 1, "f,g" },
422 { "cvtql", 0x5fe00600, 1, "f,g" },
423 { "cvtql/v", 0x5fe02600, 1, "f,g" },
424 { "cvtql/sv", 0x5fe06600, 1, "f,g" },
425
426 { "fcmoveq", 0x5c000540, 1, "e,f,g" },
427 { "fcmovne", 0x5c000560, 1, "e,f,g" },
428 { "fcmovlt", 0x5c000580, 1, "e,f,g" },
429 { "fcmovle", 0x5c0005c0, 1, "e,f,g" },
430 { "fcmovgt", 0x5c0005e0, 1, "e,f,g" },
431 { "fcmovge", 0x5c0005a0, 1, "e,f,g" },
432
433 { "mf_fpcr", 0x5c0004a0, 1, "E" },
434 { "mt_fpcr", 0x5c000480, 1, "E" },
435
436 /* Vax subset (opcode 0x15) */
437 { "addf", 0x54001000, 1, "e,f,g" },
438 { "addf/c", 0x54000000, 1, "e,f,g" },
439 { "addf/u", 0x54003000, 1, "e,f,g" },
440 { "addf/uc", 0x54002000, 1, "e,f,g" },
441 { "addf/s", 0x54009000, 1, "e,f,g" },
442 { "addf/sc", 0x54008000, 1, "e,f,g" },
443 { "addf/su", 0x5400b000, 1, "e,f,g" },
444 { "addf/suc", 0x5400a000, 1, "e,f,g" },
445 { "addg", 0x54001400, 1, "e,f,g" },
446 { "addg/c", 0x54000400, 1, "e,f,g" },
447 { "addg/u", 0x54003400, 1, "e,f,g" },
448 { "addg/uc", 0x54002400, 1, "e,f,g" },
449 { "addg/s", 0x54009400, 1, "e,f,g" },
450 { "addg/sc", 0x54008400, 1, "e,f,g" },
451 { "addg/su", 0x5400b400, 1, "e,f,g" },
452 { "addg/suc", 0x5400a400, 1, "e,f,g" },
453 { "subf", 0x54001020, 1, "e,f,g" },
454 { "subf/c", 0x54000020, 1, "e,f,g" },
455 { "subf/u", 0x54003020, 1, "e,f,g" },
456 { "subf/uc", 0x54002020, 1, "e,f,g" },
457 { "subf/s", 0x54009020, 1, "e,f,g" },
458 { "subf/sc", 0x54008020, 1, "e,f,g" },
459 { "subf/su", 0x5400b020, 1, "e,f,g" },
460 { "subf/suc", 0x5400a020, 1, "e,f,g" },
461 { "subg", 0x54001420, 1, "e,f,g" },
462 { "subg/c", 0x54000420, 1, "e,f,g" },
463 { "subg/u", 0x54003420, 1, "e,f,g" },
464 { "subg/uc", 0x54002420, 1, "e,f,g" },
465 { "subg/s", 0x54009420, 1, "e,f,g" },
466 { "subg/sc", 0x54008420, 1, "e,f,g" },
467 { "subg/su", 0x5400b420, 1, "e,f,g" },
468 { "subg/suc", 0x5400a420, 1, "e,f,g" },
469
470 { "cmpgeq", 0x540014a0, 1, "e,f,g" },
471 { "cmpgeq/s", 0x540094a0, 1, "e,f,g" },
472 { "cmpglt", 0x540014c0, 1, "e,f,g" },
473 { "cmpglt/s", 0x540094c0, 1, "e,f,g" },
474 { "cmpgle", 0x540014e0, 1, "e,f,g" },
475 { "cmpgle/s", 0x540094e0, 1, "e,f,g" },
476
477 { "cvtgq", 0x57e015e0, 1, "f,g" },
478 { "cvtgq/c", 0x57e005e0, 1, "f,g" },
479 { "cvtgq/v", 0x57e035e0, 1, "f,g" },
480 { "cvtgq/vc", 0x57e025e0, 1, "f,g" },
481 { "cvtgq/s", 0x57e095e0, 1, "f,g" },
482 { "cvtgq/sc", 0x57e085e0, 1, "f,g" },
483 { "cvtgq/sv", 0x57e0b5e0, 1, "f,g" },
484 { "cvtgq/svc", 0x57e0a5e0, 1, "f,g" },
485 { "cvtqf", 0x57e01780, 1, "f,g" },
486 { "cvtqf/c", 0x57e00780, 1, "f,g" },
487 { "cvtqf/s", 0x57e09780, 1, "f,g" },
488 { "cvtqf/sc", 0x57e08780, 1, "f,g" },
489 { "cvtqg", 0x57e017c0, 1, "f,g" },
490 { "cvtqg/c", 0x57e007c0, 1, "f,g" },
491 { "cvtqg/s", 0x57e097c0, 1, "f,g" },
492 { "cvtqg/sc", 0x57e087c0, 1, "f,g" },
493 { "cvtdg", 0x57e013c0, 1, "f,g" },
494 { "cvtdg/c", 0x57e003c0, 1, "f,g" },
495 { "cvtdg/u", 0x57e033c0, 1, "f,g" },
496 { "cvtdg/uc", 0x57e023c0, 1, "f,g" },
497 { "cvtdg/s", 0x57e093c0, 1, "f,g" },
498 { "cvtdg/sc", 0x57e083c0, 1, "f,g" },
499 { "cvtdg/su", 0x57e0b3c0, 1, "f,g" },
500 { "cvtdg/suc", 0x57e0a3c0, 1, "f,g" },
501 { "cvtgd", 0x57e015a0, 1, "f,g" },
502 { "cvtgd/c", 0x57e005a0, 1, "f,g" },
503 { "cvtgd/u", 0x57e035a0, 1, "f,g" },
504 { "cvtgd/uc", 0x57e025a0, 1, "f,g" },
505 { "cvtgd/s", 0x57e095a0, 1, "f,g" },
506 { "cvtgd/sc", 0x57e085a0, 1, "f,g" },
507 { "cvtgd/su", 0x57e0b5a0, 1, "f,g" },
508 { "cvtgd/suc", 0x57e0a5a0, 1, "f,g" },
509 { "cvtgf", 0x57e01580, 1, "f,g" },
510 { "cvtgf/c", 0x57e00580, 1, "f,g" },
511 { "cvtgf/u", 0x57e03580, 1, "f,g" },
512 { "cvtgf/uc", 0x57e02580, 1, "f,g" },
513 { "cvtgf/s", 0x57e09580, 1, "f,g" },
514 { "cvtgf/sc", 0x57e08580, 1, "f,g" },
515 { "cvtgf/su", 0x57e0b580, 1, "f,g" },
516 { "cvtgf/suc", 0x57e0a580, 1, "f,g" },
517
518 { "divf", 0x54001060, 1, "e,f,g" },
519 { "divf/c", 0x54000060, 1, "e,f,g" },
520 { "divf/u", 0x54003060, 1, "e,f,g" },
521 { "divf/uc", 0x54002060, 1, "e,f,g" },
522 { "divf/s", 0x54009060, 1, "e,f,g" },
523 { "divf/sc", 0x54008060, 1, "e,f,g" },
524 { "divf/su", 0x5400b060, 1, "e,f,g" },
525 { "divf/suc", 0x5400a060, 1, "e,f,g" },
526 { "divg", 0x54001460, 1, "e,f,g" },
527 { "divg/c", 0x54000460, 1, "e,f,g" },
528 { "divg/u", 0x54003460, 1, "e,f,g" },
529 { "divg/uc", 0x54002460, 1, "e,f,g" },
530 { "divg/s", 0x54009460, 1, "e,f,g" },
531 { "divg/sc", 0x54008460, 1, "e,f,g" },
532 { "divg/su", 0x5400b460, 1, "e,f,g" },
533 { "divg/suc", 0x5400a460, 1, "e,f,g" },
534 { "mulf", 0x54001040, 1, "e,f,g" },
535 { "mulf/c", 0x54000040, 1, "e,f,g" },
536 { "mulf/u", 0x54003040, 1, "e,f,g" },
537 { "mulf/uc", 0x54002040, 1, "e,f,g" },
538 { "mulf/s", 0x54009040, 1, "e,f,g" },
539 { "mulf/sc", 0x54008040, 1, "e,f,g" },
540 { "mulf/su", 0x5400b040, 1, "e,f,g" },
541 { "mulf/suc", 0x5400a040, 1, "e,f,g" },
542 { "mulg", 0x54001440, 1, "e,f,g" },
543 { "mulg/c", 0x54000440, 1, "e,f,g" },
544 { "mulg/u", 0x54003440, 1, "e,f,g" },
545 { "mulg/uc", 0x54002440, 1, "e,f,g" },
546 { "mulg/s", 0x54009440, 1, "e,f,g" },
547 { "mulg/sc", 0x54008440, 1, "e,f,g" },
548 { "mulg/su", 0x5400b440, 1, "e,f,g" },
549 { "mulg/suc", 0x5400a440, 1, "e,f,g" },
550
551 /* IEEE subset (opcode 0x16) */
552 { "adds", 0x58001000, 1, "e,f,g" },
553 { "adds/c", 0x58000000, 1, "e,f,g" },
554 { "adds/m", 0x58000800, 1, "e,f,g" },
555 { "adds/d", 0x58001800, 1, "e,f,g" },
556 { "adds/u", 0x58003000, 1, "e,f,g" },
557 { "adds/uc", 0x58002000, 1, "e,f,g" },
558 { "adds/um", 0x58002800, 1, "e,f,g" },
559 { "adds/ud", 0x58003800, 1, "e,f,g" },
560 { "adds/su", 0x5800b000, 1, "e,f,g" },
561 { "adds/suc", 0x5800a000, 1, "e,f,g" },
562 { "adds/sum", 0x5800a800, 1, "e,f,g" },
563 { "adds/sud", 0x5800b800, 1, "e,f,g" },
564 { "adds/sui", 0x5800f000, 1, "e,f,g" },
565 { "adds/suic", 0x5800e000, 1, "e,f,g" },
566 { "adds/suim", 0x5800e800, 1, "e,f,g" },
567 { "adds/suid", 0x5800f800, 1, "e,f,g" },
568 { "addt", 0x58001400, 1, "e,f,g" },
569 { "addt/c", 0x58000400, 1, "e,f,g" },
570 { "addt/m", 0x58000c00, 1, "e,f,g" },
571 { "addt/d", 0x58001c00, 1, "e,f,g" },
572 { "addt/u", 0x58003400, 1, "e,f,g" },
573 { "addt/uc", 0x58002400, 1, "e,f,g" },
574 { "addt/um", 0x58002c00, 1, "e,f,g" },
575 { "addt/ud", 0x58003c00, 1, "e,f,g" },
576 { "addt/su", 0x5800b400, 1, "e,f,g" },
577 { "addt/suc", 0x5800a400, 1, "e,f,g" },
578 { "addt/sum", 0x5800ac00, 1, "e,f,g" },
579 { "addt/sud", 0x5800bc00, 1, "e,f,g" },
580 { "addt/sui", 0x5800f400, 1, "e,f,g" },
581 { "addt/suic", 0x5800e400, 1, "e,f,g" },
582 { "addt/suim", 0x5800ec00, 1, "e,f,g" },
583 { "addt/suid", 0x5800fc00, 1, "e,f,g" },
584 { "subs", 0x58001020, 1, "e,f,g" },
585 { "subs/c", 0x58000020, 1, "e,f,g" },
586 { "subs/m", 0x58000820, 1, "e,f,g" },
587 { "subs/d", 0x58001820, 1, "e,f,g" },
588 { "subs/u", 0x58003020, 1, "e,f,g" },
589 { "subs/uc", 0x58002020, 1, "e,f,g" },
590 { "subs/um", 0x58002820, 1, "e,f,g" },
591 { "subs/ud", 0x58003820, 1, "e,f,g" },
592 { "subs/su", 0x5800b020, 1, "e,f,g" },
593 { "subs/suc", 0x5800a020, 1, "e,f,g" },
594 { "subs/sum", 0x5800a820, 1, "e,f,g" },
595 { "subs/sud", 0x5800b820, 1, "e,f,g" },
596 { "subs/sui", 0x5800f020, 1, "e,f,g" },
597 { "subs/suic", 0x5800e020, 1, "e,f,g" },
598 { "subs/suim", 0x5800e820, 1, "e,f,g" },
599 { "subs/suid", 0x5800f820, 1, "e,f,g" },
600 { "subt", 0x58001420, 1, "e,f,g" },
601 { "subt/c", 0x58000420, 1, "e,f,g" },
602 { "subt/m", 0x58000c20, 1, "e,f,g" },
603 { "subt/d", 0x58001c20, 1, "e,f,g" },
604 { "subt/u", 0x58003420, 1, "e,f,g" },
605 { "subt/uc", 0x58002420, 1, "e,f,g" },
606 { "subt/um", 0x58002c20, 1, "e,f,g" },
607 { "subt/ud", 0x58003c20, 1, "e,f,g" },
608 { "subt/su", 0x5800b420, 1, "e,f,g" },
609 { "subt/suc", 0x5800a420, 1, "e,f,g" },
610 { "subt/sum", 0x5800ac20, 1, "e,f,g" },
611 { "subt/sud", 0x5800bc20, 1, "e,f,g" },
612 { "subt/sui", 0x5800f420, 1, "e,f,g" },
613 { "subt/suic", 0x5800e420, 1, "e,f,g" },
614 { "subt/suim", 0x5800ec20, 1, "e,f,g" },
615 { "subt/suid", 0x5800fc20, 1, "e,f,g" },
616
617 { "cmpteq", 0x580014a0, 1, "e,f,g" },
618 { "cmpteq/su", 0x5800b4a0, 1, "e,f,g" },
619 { "cmptlt", 0x580014c0, 1, "e,f,g" },
620 { "cmptlt/su", 0x5800b4c0, 1, "e,f,g" },
621 { "cmptle", 0x580014e0, 1, "e,f,g" },
622 { "cmptle/su", 0x5800b4e0, 1, "e,f,g" },
623 { "cmptun", 0x58001480, 1, "e,f,g" },
624 { "cmptun/su", 0x5800b480, 1, "e,f,g" },
625
626 { "cvttq", 0x5be015e0, 1, "f,g" },
627 { "cvttq/c", 0x5be005e0, 1, "f,g" },
628 { "cvttq/v", 0x5be035e0, 1, "f,g" },
629 { "cvttq/vc", 0x5be025e0, 1, "f,g" },
630 { "cvttq/sv", 0x5be0b5e0, 1, "f,g" },
631 { "cvttq/svc", 0x5be0a5e0, 1, "f,g" },
632 { "cvttq/svi", 0x5be0f5e0, 1, "f,g" },
633 { "cvttq/svic", 0x5be0e5e0, 1, "f,g" },
634 { "cvtqs", 0x5be01780, 1, "f,g" },
635 { "cvtqs/c", 0x5be00780, 1, "f,g" },
636 { "cvtqs/m", 0x5be00f80, 1, "f,g" },
637 { "cvtqs/d", 0x5be01f80, 1, "f,g" },
638 { "cvtqs/sui", 0x5be0f780, 1, "f,g" },
639 { "cvtqs/suic", 0x5be0e780, 1, "f,g" },
640 { "cvtqs/suim", 0x5be0ef80, 1, "f,g" },
641 { "cvtqs/suid", 0x5be0ff80, 1, "f,g" },
642 { "cvtqt", 0x5be017c0, 1, "f,g" },
643 { "cvtqt/c", 0x5be007c0, 1, "f,g" },
644 { "cvtqt/m", 0x5be00fc0, 1, "f,g" },
645 { "cvtqt/d", 0x5be01fc0, 1, "f,g" },
646 { "cvtqt/sui", 0x5be0f7c0, 1, "f,g" },
647 { "cvtqt/suic", 0x5be0e7c0, 1, "f,g" },
648 { "cvtqt/suim", 0x5be0efc0, 1, "f,g" },
649 { "cvtqt/suid", 0x5be0ffc0, 1, "f,g" },
650 { "cvtts", 0x5be01580, 1, "f,g" },
651 { "cvtts/c", 0x5be00580, 1, "f,g" },
652 { "cvtts/m", 0x5be00d80, 1, "f,g" },
653 { "cvtts/d", 0x5be01d80, 1, "f,g" },
654 { "cvtts/u", 0x5be03580, 1, "f,g" },
655 { "cvtts/uc", 0x5be02580, 1, "f,g" },
656 { "cvtts/um", 0x5be02d80, 1, "f,g" },
657 { "cvtts/ud", 0x5be03d80, 1, "f,g" },
658 { "cvtts/su", 0x5be0b580, 1, "f,g" },
659 { "cvtts/suc", 0x5be0a580, 1, "f,g" },
660 { "cvtts/sum", 0x5be0ad80, 1, "f,g" },
661 { "cvtts/sud", 0x5be0bd80, 1, "f,g" },
662 { "cvtts/sui", 0x5be0f580, 1, "f,g" },
663 { "cvtts/suic", 0x5be0e580, 1, "f,g" },
664 { "cvtts/suim", 0x5be0ed80, 1, "f,g" },
665 { "cvtts/suid", 0x5be0fd80, 1, "f,g" },
666
667 { "divs", 0x58001060, 1, "e,f,g" },
668 { "divs/c", 0x58000060, 1, "e,f,g" },
669 { "divs/m", 0x58000860, 1, "e,f,g" },
670 { "divs/d", 0x58001860, 1, "e,f,g" },
671 { "divs/u", 0x58003060, 1, "e,f,g" },
672 { "divs/uc", 0x58002060, 1, "e,f,g" },
673 { "divs/um", 0x58002860, 1, "e,f,g" },
674 { "divs/ud", 0x58003860, 1, "e,f,g" },
675 { "divs/su", 0x5800b060, 1, "e,f,g" },
676 { "divs/suc", 0x5800a060, 1, "e,f,g" },
677 { "divs/sum", 0x5800a860, 1, "e,f,g" },
678 { "divs/sud", 0x5800b860, 1, "e,f,g" },
679 { "divs/sui", 0x5800f060, 1, "e,f,g" },
680 { "divs/suic", 0x5800e060, 1, "e,f,g" },
681 { "divs/suim", 0x5800e860, 1, "e,f,g" },
682 { "divs/suid", 0x5800f860, 1, "e,f,g" },
683 { "divt", 0x58001460, 1, "e,f,g" },
684 { "divt/c", 0x58000460, 1, "e,f,g" },
685 { "divt/m", 0x58000c60, 1, "e,f,g" },
686 { "divt/d", 0x58001c60, 1, "e,f,g" },
687 { "divt/u", 0x58003460, 1, "e,f,g" },
688 { "divt/uc", 0x58002460, 1, "e,f,g" },
689 { "divt/um", 0x58002c60, 1, "e,f,g" },
690 { "divt/ud", 0x58003c60, 1, "e,f,g" },
691 { "divt/su", 0x5800b460, 1, "e,f,g" },
692 { "divt/suc", 0x5800a460, 1, "e,f,g" },
693 { "divt/sum", 0x5800ac60, 1, "e,f,g" },
694 { "divt/sud", 0x5800bc60, 1, "e,f,g" },
695 { "divt/sui", 0x5800f460, 1, "e,f,g" },
696 { "divt/suic", 0x5800e460, 1, "e,f,g" },
697 { "divt/suim", 0x5800ec60, 1, "e,f,g" },
698 { "divt/suid", 0x5800fc60, 1, "e,f,g" },
699 { "muls", 0x58001040, 1, "e,f,g" },
700 { "muls/c", 0x58000040, 1, "e,f,g" },
701 { "muls/m", 0x58000840, 1, "e,f,g" },
702 { "muls/d", 0x58001840, 1, "e,f,g" },
703 { "muls/u", 0x58003040, 1, "e,f,g" },
704 { "muls/uc", 0x58002040, 1, "e,f,g" },
705 { "muls/um", 0x58002840, 1, "e,f,g" },
706 { "muls/ud", 0x58003840, 1, "e,f,g" },
707 { "muls/su", 0x5800b040, 1, "e,f,g" },
708 { "muls/suc", 0x5800a040, 1, "e,f,g" },
709 { "muls/sum", 0x5800a840, 1, "e,f,g" },
710 { "muls/sud", 0x5800b840, 1, "e,f,g" },
711 { "muls/sui", 0x5800f040, 1, "e,f,g" },
712 { "muls/suic", 0x5800e040, 1, "e,f,g" },
713 { "muls/suim", 0x5800e840, 1, "e,f,g" },
714 { "muls/suid", 0x5800f840, 1, "e,f,g" },
715 { "mult", 0x58001440, 1, "e,f,g" },
716 { "mult/c", 0x58000440, 1, "e,f,g" },
717 { "mult/m", 0x58000c40, 1, "e,f,g" },
718 { "mult/d", 0x58001c40, 1, "e,f,g" },
719 { "mult/u", 0x58003440, 1, "e,f,g" },
720 { "mult/uc", 0x58002440, 1, "e,f,g" },
721 { "mult/um", 0x58002c40, 1, "e,f,g" },
722 { "mult/ud", 0x58003c40, 1, "e,f,g" },
723 { "mult/su", 0x5800b440, 1, "e,f,g" },
724 { "mult/suc", 0x5800a440, 1, "e,f,g" },
725 { "mult/sum", 0x5800ac40, 1, "e,f,g" },
726 { "mult/sud", 0x5800bc40, 1, "e,f,g" },
727 { "mult/sui", 0x5800f440, 1, "e,f,g" },
728 { "mult/suic", 0x5800e440, 1, "e,f,g" },
729 { "mult/suim", 0x5800ec40, 1, "e,f,g" },
730 { "mult/suid", 0x5800fc40, 1, "e,f,g" },
731
732 /*
733 * Miscellaneous
734 */
735 { "pal", 0x00000000, 0, "I" }, /* 6o+26f */
736 { "call_pal", 0x00000000, 0, "I" }, /* alias */
737 { "bpt", 0x00000080, 0, "" },
738 { "chmk", 0x00000083, 0, "" },
739 { "imb", 0x00000086, 0, "" },
740
741 { "draint", 0x60000000, 0, "" }, /* 6o+5a+5b+16d */
742 { "trapb", 0x60000000, 0, "" }, /* 6o+5a+5b+16d */
743 { "fetch", 0x60008000, 0, "0(2)" },
744 { "fetch_m", 0x6000a000, 0, "0(2)" },
745 { "mb", 0x60004000, 0, "" },
746 { "rpcc", 0x6000c000, 0, "1" },
747 { "rc", 0x6000e000, 0, "1" },
748 { "rs", 0x6000f000, 0, "1" },
749
750 /*
751 * PAL instructions
752 */
753 { "hw_ld", 0x6c000000, 0, "1,t(2)" },
754 { "hw_ld/p", 0x6c008000, 0, "1,t(2)" },
755 { "hw_ld/a", 0x6c004000, 0, "1,t(2)" },
756 { "hw_ld/r", 0x6c002000, 0, "1,t(2)" },
757 { "hw_ld/q", 0x6c001000, 0, "1,t(2)" },
758 { "hw_ld/pa", 0x6c00C000, 0, "1,t(2)" },
759 { "hw_ld/pr", 0x6c00A000, 0, "1,t(2)" },
760 { "hw_ld/pq", 0x6c009000, 0, "1,t(2)" },
761 { "hw_ld/ar", 0x6c006000, 0, "1,t(2)" },
762 { "hw_ld/aq", 0x6c005000, 0, "1,t(2)" },
763 { "hw_ld/rq", 0x6c003000, 0, "1,t(2)" },
764 { "hw_ld/par", 0x6c00e000, 0, "1,t(2)" },
765 { "hw_ld/paq", 0x6c00d000, 0, "1,t(2)" },
766 { "hw_ld/prq", 0x6c00b000, 0, "1,t(2)" },
767 { "hw_ld/arq", 0x6c007000, 0, "1,t(2)" },
768 { "hw_ld/parq", 0x6c00f000, 0, "1,t(2)" },
769
770 { "hw_ldq", 0x6c001000, 0, "1,t(2)" }, /* ldq/ldl variants for Eric */
771 { "hw_ldq/p", 0x6c009000, 0, "1,t(2)" },
772 { "hw_ldq/a", 0x6c005000, 0, "1,t(2)" },
773 { "hw_ldq/r", 0x6c003000, 0, "1,t(2)" },
774 { "hw_ldq/pa", 0x6c00d000, 0, "1,t(2)" },
775 { "hw_ldq/pr", 0x6c00b000, 0, "1,t(2)" },
776 { "hw_ldq/ar", 0x6c007000, 0, "1,t(2)" },
777 { "hw_ldq/par", 0x6c00f000, 0, "1,t(2)" },
778 { "hw_ldl", 0x6c000000, 0, "1,t(2)" },
779 { "hw_ldl/p", 0x6c008000, 0, "1,t(2)" },
780 { "hw_ldl/a", 0x6c004000, 0, "1,t(2)" },
781 { "hw_ldl/r", 0x6c002000, 0, "1,t(2)" },
782 { "hw_ldl/pa", 0x6c00C000, 0, "1,t(2)" },
783 { "hw_ldl/pr", 0x6c00A000, 0, "1,t(2)" },
784 { "hw_ldl/ar", 0x6c006000, 0, "1,t(2)" },
785 { "hw_ldl/par", 0x6c00e000, 0, "1,t(2)" },
786
787 { "hw_st/paq", 0x7c00c000, 0, "1,t(2)" },
788 { "hw_st/pa", 0x7c00b000, 0, "1,t(2)" },
789 { "hw_st/pq", 0x7c009000, 0, "1,t(2)" },
790 { "hw_st/aq", 0x7c005000, 0, "1,t(2)" },
791 { "hw_st/p", 0x7c008000, 0, "1,t(2)" },
792 { "hw_st/a", 0x7c004000, 0, "1,t(2)" },
793 { "hw_st/q", 0x7c001000, 0, "1,t(2)" },
794 { "hw_st", 0x7c000000, 0, "1,t(2)" },
795
796 { "hw_stq/pa", 0x7c00c000, 0, "1,t(2)" }, /* stq/stl variants for Eric */
797 { "hw_stq/p", 0x7c009000, 0, "1,t(2)" },
798 { "hw_stq", 0x7c001000, 0, "1,t(2)" },
799 { "hw_stq/a", 0x7c005000, 0, "1,t(2)" },
800 { "hw_stl/pa", 0x7c00b000, 0, "1,t(2)" },
801 { "hw_stl/p", 0x7c008000, 0, "1,t(2)" },
802 { "hw_stl/a", 0x7c004000, 0, "1,t(2)" },
803 { "hw_stl", 0x7c000000, 0, "1,t(2)" },
804
805 { "hw_mfpr/p", 0x64000080, 0, "R,3" },
806 { "hw_mfpr/a", 0x64000040, 0, "R,3" },
807 { "hw_mfpr/i", 0x64000020, 0, "R,3" },
808 { "hw_mfpr/pa", 0x640000c0, 0, "R,3" },
809 { "hw_mfpr/pi", 0x640000a0, 0, "R,3" },
810 { "hw_mfpr/ai", 0x64000060, 0, "R,3" },
811 { "hw_mfpr/pai",0x640000e0, 0, "R,3" },
812 { "hw_mfpr", 0x64000000, 0, "R,8" },
813
814 { "hw_mtpr/p", 0x74000080, 0, "R,3" },
815 { "hw_mtpr/a", 0x74000040, 0, "R,3" },
816 { "hw_mtpr/i", 0x74000020, 0, "R,3" },
817 { "hw_mtpr/pa", 0x740000c0, 0, "R,3" },
818 { "hw_mtpr/pi", 0x740000a0, 0, "R,3" },
819 { "hw_mtpr/ai", 0x74000060, 0, "R,3" },
820 { "hw_mtpr/pai",0x740000e0, 0, "R,3" },
821 { "hw_mtpr", 0x74000000, 0, "R,8" },
822
823 { "hw_rei", 0x7bff8000, 0, "" },
824 /*
825 * More macros
826 */
827 { "nop", 0x47ff041f, 0, "" }, /* or zero,zero,zero */
828 { "mov", 0x47e00400, 0, "2,3" }, /* or zero,r2,r3 */
829 };
830
831 #define NUMOPCODES ((sizeof alpha_opcodes)/(sizeof alpha_opcodes[0]))
This page took 0.0623050000000001 seconds and 5 git commands to generate.