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