2000-10-31 Philip Blundell <philb@gnu.org>
[binutils.git] / opcodes / ia64-opc-m.c
blob12eb95b7065ad364ab865332bef2f5c63b4aa38a
1 /* ia64-opc-m.c -- IA-64 `M' opcode table.
2 Copyright (C) 1998, 1999 Free Software Foundation, Inc.
3 Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
5 This file is part of GDB, GAS, and the GNU binutils.
7 GDB, GAS, and the GNU binutils are free software; you can redistribute
8 them and/or modify them under the terms of the GNU General Public
9 License as published by the Free Software Foundation; either version
10 2, or (at your option) any later version.
12 GDB, GAS, and the GNU binutils are distributed in the hope that they
13 will be useful, but WITHOUT ANY WARRANTY; without even the implied
14 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
15 the GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this file; see the file COPYING. If not, write to the
19 Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20 02111-1307, USA. */
22 #include "ia64-opc.h"
24 #define M0 IA64_TYPE_M, 0
25 #define M IA64_TYPE_M, 1
26 #define M2 IA64_TYPE_M, 2
28 /* instruction bit fields: */
29 #define bM(x) (((ia64_insn) ((x) & 0x1)) << 36)
30 #define bX(x) (((ia64_insn) ((x) & 0x1)) << 27)
31 #define bX2(x) (((ia64_insn) ((x) & 0x3)) << 31)
32 #define bX3(x) (((ia64_insn) ((x) & 0x7)) << 33)
33 #define bX4(x) (((ia64_insn) ((x) & 0xf)) << 27)
34 #define bX6a(x) (((ia64_insn) ((x) & 0x3f)) << 30)
35 #define bX6b(x) (((ia64_insn) ((x) & 0x3f)) << 27)
36 #define bHint(x) (((ia64_insn) ((x) & 0x3)) << 28)
38 #define mM bM (-1)
39 #define mX bX (-1)
40 #define mX2 bX2 (-1)
41 #define mX3 bX3 (-1)
42 #define mX4 bX4 (-1)
43 #define mX6a bX6a (-1)
44 #define mX6b bX6b (-1)
45 #define mHint bHint (-1)
47 #define OpX3(a,b) (bOp (a) | bX3 (b)), (mOp | mX3)
48 #define OpX3X6b(a,b,c) (bOp (a) | bX3 (b) | bX6b (c)), \
49 (mOp | mX3 | mX6b)
50 #define OpX3X4(a,b,c) (bOp (a) | bX3 (b) | bX4 (c)), \
51 (mOp | mX3 | mX4)
52 #define OpX3X4X2(a,b,c,d) (bOp (a) | bX3 (b) | bX4 (c) | bX2 (d)), \
53 (mOp | mX3 | mX4 | mX2)
54 #define OpX6aHint(a,b,c) (bOp (a) | bX6a (b) | bHint (c)), \
55 (mOp | mX6a | mHint)
56 #define OpXX6aHint(a,b,c,d) (bOp (a) | bX (b) | bX6a (c) | bHint (d)), \
57 (mOp | mX | mX6a | mHint)
58 #define OpMXX6a(a,b,c,d) \
59 (bOp (a) | bM (b) | bX (c) | bX6a (d)), (mOp | mM | mX | mX6a)
60 #define OpMXX6aHint(a,b,c,d,e) \
61 (bOp (a) | bM (b) | bX (c) | bX6a (d) | bHint (e)), \
62 (mOp | mM | mX | mX6a | mHint)
64 struct ia64_opcode ia64_opcodes_m[] =
66 /* M-type instruction encodings (sorted according to major opcode) */
68 {"chk.a.nc", M0, OpX3 (0, 4), {R1, TGT25c}},
69 {"chk.a.clr", M0, OpX3 (0, 5), {R1, TGT25c}},
70 {"chk.a.nc", M0, OpX3 (0, 6), {F1, TGT25c}},
71 {"chk.a.clr", M0, OpX3 (0, 7), {F1, TGT25c}},
73 {"invala", M0, OpX3X4X2 (0, 0, 0, 1)},
74 {"fwb", M0, OpX3X4X2 (0, 0, 0, 2)},
75 {"mf", M0, OpX3X4X2 (0, 0, 2, 2)},
76 {"mf.a", M0, OpX3X4X2 (0, 0, 3, 2)},
77 {"srlz.d", M0, OpX3X4X2 (0, 0, 0, 3)},
78 {"srlz.i", M0, OpX3X4X2 (0, 0, 1, 3)},
79 {"sync.i", M0, OpX3X4X2 (0, 0, 3, 3)},
80 {"flushrs", M0, OpX3X4X2 (0, 0, 0xc, 0), {0, }, FIRST | NO_PRED},
81 {"loadrs", M0, OpX3X4X2 (0, 0, 0xa, 0), {0, }, FIRST | NO_PRED},
82 {"invala.e", M0, OpX3X4X2 (0, 0, 2, 1), {R1}},
83 {"invala.e", M0, OpX3X4X2 (0, 0, 3, 1), {F1}},
84 {"mov.m", M, OpX3X4X2 (0, 0, 8, 2), {AR3, IMM8}},
86 {"break.m", M0, OpX3X4X2 (0, 0, 0, 0), {IMMU21}},
87 {"nop.m", M0, OpX3X4X2 (0, 0, 1, 0), {IMMU21}},
89 {"sum", M0, OpX3X4 (0, 0, 4), {IMMU24}},
90 {"rum", M0, OpX3X4 (0, 0, 5), {IMMU24}},
91 {"ssm", M0, OpX3X4 (0, 0, 6), {IMMU24}, PRIV},
92 {"rsm", M0, OpX3X4 (0, 0, 7), {IMMU24}, PRIV},
94 {"mov.m", M, OpX3X6b (1, 0, 0x2a), {AR3, R2}},
95 {"mov.m", M, OpX3X6b (1, 0, 0x22), {R1, AR3}},
96 {"mov", M, OpX3X6b (1, 0, 0x2c), {CR3, R2}, PRIV},
97 {"mov", M, OpX3X6b (1, 0, 0x24), {R1, CR3}, PRIV},
99 {"alloc", M, OpX3 (1, 6), {R1, AR_PFS, SOF, SOL, SOR}, FIRST|NO_PRED|MOD_RRBS},
101 {"mov", M, OpX3X6b (1, 0, 0x2d), {PSR_L, R2}, PRIV},
102 {"mov", M, OpX3X6b (1, 0, 0x29), {PSR_UM, R2}},
103 {"mov", M, OpX3X6b (1, 0, 0x25), {R1, PSR}, PRIV},
104 {"mov", M, OpX3X6b (1, 0, 0x21), {R1, PSR_UM}},
105 {"probe.r", M, OpX3X6b (1, 0, 0x38), {R1, R3, R2}},
106 {"probe.w", M, OpX3X6b (1, 0, 0x39), {R1, R3, R2}},
107 {"probe.r", M, OpX3X6b (1, 0, 0x18), {R1, R3, IMMU2}},
108 {"probe.w", M, OpX3X6b (1, 0, 0x19), {R1, R3, IMMU2}},
109 {"probe.rw.fault", M0, OpX3X6b (1, 0, 0x31), {R3, IMMU2}},
110 {"probe.r.fault", M0, OpX3X6b (1, 0, 0x32), {R3, IMMU2}},
111 {"probe.w.fault", M0, OpX3X6b (1, 0, 0x33), {R3, IMMU2}},
112 {"itc.d", M0, OpX3X6b (1, 0, 0x2e), {R2}, LAST | PRIV},
113 {"itc.i", M0, OpX3X6b (1, 0, 0x2f), {R2}, LAST | PRIV},
115 {"mov", M, OpX3X6b (1, 0, 0x00), {RR_R3, R2}, PRIV},
116 {"mov", M, OpX3X6b (1, 0, 0x01), {DBR_R3, R2}, PRIV},
117 {"mov", M, OpX3X6b (1, 0, 0x02), {IBR_R3, R2}, PRIV},
118 {"mov", M, OpX3X6b (1, 0, 0x03), {PKR_R3, R2}, PRIV},
119 {"mov", M, OpX3X6b (1, 0, 0x04), {PMC_R3, R2}, PRIV},
120 {"mov", M, OpX3X6b (1, 0, 0x05), {PMD_R3, R2}, PRIV},
121 {"mov", M, OpX3X6b (1, 0, 0x06), {MSR_R3, R2}, PRIV},
122 {"itr.d", M, OpX3X6b (1, 0, 0x0e), {DTR_R3, R2}, PRIV},
123 {"itr.i", M, OpX3X6b (1, 0, 0x0f), {ITR_R3, R2}, PRIV},
125 {"mov", M, OpX3X6b (1, 0, 0x10), {R1, RR_R3}, PRIV},
126 {"mov", M, OpX3X6b (1, 0, 0x11), {R1, DBR_R3}, PRIV},
127 {"mov", M, OpX3X6b (1, 0, 0x12), {R1, IBR_R3}, PRIV},
128 {"mov", M, OpX3X6b (1, 0, 0x13), {R1, PKR_R3}, PRIV},
129 {"mov", M, OpX3X6b (1, 0, 0x14), {R1, PMC_R3}, PRIV},
130 {"mov", M, OpX3X6b (1, 0, 0x15), {R1, PMD_R3}},
131 {"mov", M, OpX3X6b (1, 0, 0x16), {R1, MSR_R3}, PRIV},
132 {"mov", M, OpX3X6b (1, 0, 0x17), {R1, CPUID_R3}},
134 {"ptc.l", M0, OpX3X6b (1, 0, 0x09), {R3, R2}, PRIV},
135 {"ptc.g", M0, OpX3X6b (1, 0, 0x0a), {R3, R2}, LAST | PRIV},
136 {"ptc.ga", M0, OpX3X6b (1, 0, 0x0b), {R3, R2}, LAST | PRIV},
137 {"ptr.d", M0, OpX3X6b (1, 0, 0x0c), {R3, R2}, PRIV},
138 {"ptr.i", M0, OpX3X6b (1, 0, 0x0d), {R3, R2}, PRIV},
140 {"thash", M, OpX3X6b (1, 0, 0x1a), {R1, R3}},
141 {"ttag", M, OpX3X6b (1, 0, 0x1b), {R1, R3}},
142 {"tpa", M, OpX3X6b (1, 0, 0x1e), {R1, R3}, PRIV},
143 {"tak", M, OpX3X6b (1, 0, 0x1f), {R1, R3}, PRIV},
145 {"chk.s.m", M0, OpX3 (1, 1), {R2, TGT25b}},
146 {"chk.s", M0, OpX3 (1, 3), {F2, TGT25b}},
148 {"fc", M0, OpX3X6b (1, 0, 0x30), {R3}},
149 {"ptc.e", M0, OpX3X6b (1, 0, 0x34), {R3}, PRIV},
151 /* integer load */
152 {"ld1", M, OpMXX6aHint (4, 0, 0, 0x00, 0), {R1, MR3}},
153 {"ld1.nt1", M, OpMXX6aHint (4, 0, 0, 0x00, 1), {R1, MR3}},
154 {"ld1.nta", M, OpMXX6aHint (4, 0, 0, 0x00, 3), {R1, MR3}},
155 {"ld2", M, OpMXX6aHint (4, 0, 0, 0x01, 0), {R1, MR3}},
156 {"ld2.nt1", M, OpMXX6aHint (4, 0, 0, 0x01, 1), {R1, MR3}},
157 {"ld2.nta", M, OpMXX6aHint (4, 0, 0, 0x01, 3), {R1, MR3}},
158 {"ld4", M, OpMXX6aHint (4, 0, 0, 0x02, 0), {R1, MR3}},
159 {"ld4.nt1", M, OpMXX6aHint (4, 0, 0, 0x02, 1), {R1, MR3}},
160 {"ld4.nta", M, OpMXX6aHint (4, 0, 0, 0x02, 3), {R1, MR3}},
161 {"ld8", M, OpMXX6aHint (4, 0, 0, 0x03, 0), {R1, MR3}},
162 {"ld8.nt1", M, OpMXX6aHint (4, 0, 0, 0x03, 1), {R1, MR3}},
163 {"ld8.nta", M, OpMXX6aHint (4, 0, 0, 0x03, 3), {R1, MR3}},
164 {"ld1.s", M, OpMXX6aHint (4, 0, 0, 0x04, 0), {R1, MR3}},
165 {"ld1.s.nt1", M, OpMXX6aHint (4, 0, 0, 0x04, 1), {R1, MR3}},
166 {"ld1.s.nta", M, OpMXX6aHint (4, 0, 0, 0x04, 3), {R1, MR3}},
167 {"ld2.s", M, OpMXX6aHint (4, 0, 0, 0x05, 0), {R1, MR3}},
168 {"ld2.s.nt1", M, OpMXX6aHint (4, 0, 0, 0x05, 1), {R1, MR3}},
169 {"ld2.s.nta", M, OpMXX6aHint (4, 0, 0, 0x05, 3), {R1, MR3}},
170 {"ld4.s", M, OpMXX6aHint (4, 0, 0, 0x06, 0), {R1, MR3}},
171 {"ld4.s.nt1", M, OpMXX6aHint (4, 0, 0, 0x06, 1), {R1, MR3}},
172 {"ld4.s.nta", M, OpMXX6aHint (4, 0, 0, 0x06, 3), {R1, MR3}},
173 {"ld8.s", M, OpMXX6aHint (4, 0, 0, 0x07, 0), {R1, MR3}},
174 {"ld8.s.nt1", M, OpMXX6aHint (4, 0, 0, 0x07, 1), {R1, MR3}},
175 {"ld8.s.nta", M, OpMXX6aHint (4, 0, 0, 0x07, 3), {R1, MR3}},
176 {"ld1.a", M, OpMXX6aHint (4, 0, 0, 0x08, 0), {R1, MR3}},
177 {"ld1.a.nt1", M, OpMXX6aHint (4, 0, 0, 0x08, 1), {R1, MR3}},
178 {"ld1.a.nta", M, OpMXX6aHint (4, 0, 0, 0x08, 3), {R1, MR3}},
179 {"ld2.a", M, OpMXX6aHint (4, 0, 0, 0x09, 0), {R1, MR3}},
180 {"ld2.a.nt1", M, OpMXX6aHint (4, 0, 0, 0x09, 1), {R1, MR3}},
181 {"ld2.a.nta", M, OpMXX6aHint (4, 0, 0, 0x09, 3), {R1, MR3}},
182 {"ld4.a", M, OpMXX6aHint (4, 0, 0, 0x0a, 0), {R1, MR3}},
183 {"ld4.a.nt1", M, OpMXX6aHint (4, 0, 0, 0x0a, 1), {R1, MR3}},
184 {"ld4.a.nta", M, OpMXX6aHint (4, 0, 0, 0x0a, 3), {R1, MR3}},
185 {"ld8.a", M, OpMXX6aHint (4, 0, 0, 0x0b, 0), {R1, MR3}},
186 {"ld8.a.nt1", M, OpMXX6aHint (4, 0, 0, 0x0b, 1), {R1, MR3}},
187 {"ld8.a.nta", M, OpMXX6aHint (4, 0, 0, 0x0b, 3), {R1, MR3}},
188 {"ld1.sa", M, OpMXX6aHint (4, 0, 0, 0x0c, 0), {R1, MR3}},
189 {"ld1.sa.nt1", M, OpMXX6aHint (4, 0, 0, 0x0c, 1), {R1, MR3}},
190 {"ld1.sa.nta", M, OpMXX6aHint (4, 0, 0, 0x0c, 3), {R1, MR3}},
191 {"ld2.sa", M, OpMXX6aHint (4, 0, 0, 0x0d, 0), {R1, MR3}},
192 {"ld2.sa.nt1", M, OpMXX6aHint (4, 0, 0, 0x0d, 1), {R1, MR3}},
193 {"ld2.sa.nta", M, OpMXX6aHint (4, 0, 0, 0x0d, 3), {R1, MR3}},
194 {"ld4.sa", M, OpMXX6aHint (4, 0, 0, 0x0e, 0), {R1, MR3}},
195 {"ld4.sa.nt1", M, OpMXX6aHint (4, 0, 0, 0x0e, 1), {R1, MR3}},
196 {"ld4.sa.nta", M, OpMXX6aHint (4, 0, 0, 0x0e, 3), {R1, MR3}},
197 {"ld8.sa", M, OpMXX6aHint (4, 0, 0, 0x0f, 0), {R1, MR3}},
198 {"ld8.sa.nt1", M, OpMXX6aHint (4, 0, 0, 0x0f, 1), {R1, MR3}},
199 {"ld8.sa.nta", M, OpMXX6aHint (4, 0, 0, 0x0f, 3), {R1, MR3}},
200 {"ld1.bias", M, OpMXX6aHint (4, 0, 0, 0x10, 0), {R1, MR3}},
201 {"ld1.bias.nt1", M, OpMXX6aHint (4, 0, 0, 0x10, 1), {R1, MR3}},
202 {"ld1.bias.nta", M, OpMXX6aHint (4, 0, 0, 0x10, 3), {R1, MR3}},
203 {"ld2.bias", M, OpMXX6aHint (4, 0, 0, 0x11, 0), {R1, MR3}},
204 {"ld2.bias.nt1", M, OpMXX6aHint (4, 0, 0, 0x11, 1), {R1, MR3}},
205 {"ld2.bias.nta", M, OpMXX6aHint (4, 0, 0, 0x11, 3), {R1, MR3}},
206 {"ld4.bias", M, OpMXX6aHint (4, 0, 0, 0x12, 0), {R1, MR3}},
207 {"ld4.bias.nt1", M, OpMXX6aHint (4, 0, 0, 0x12, 1), {R1, MR3}},
208 {"ld4.bias.nta", M, OpMXX6aHint (4, 0, 0, 0x12, 3), {R1, MR3}},
209 {"ld8.bias", M, OpMXX6aHint (4, 0, 0, 0x13, 0), {R1, MR3}},
210 {"ld8.bias.nt1", M, OpMXX6aHint (4, 0, 0, 0x13, 1), {R1, MR3}},
211 {"ld8.bias.nta", M, OpMXX6aHint (4, 0, 0, 0x13, 3), {R1, MR3}},
212 {"ld1.acq", M, OpMXX6aHint (4, 0, 0, 0x14, 0), {R1, MR3}},
213 {"ld1.acq.nt1", M, OpMXX6aHint (4, 0, 0, 0x14, 1), {R1, MR3}},
214 {"ld1.acq.nta", M, OpMXX6aHint (4, 0, 0, 0x14, 3), {R1, MR3}},
215 {"ld2.acq", M, OpMXX6aHint (4, 0, 0, 0x15, 0), {R1, MR3}},
216 {"ld2.acq.nt1", M, OpMXX6aHint (4, 0, 0, 0x15, 1), {R1, MR3}},
217 {"ld2.acq.nta", M, OpMXX6aHint (4, 0, 0, 0x15, 3), {R1, MR3}},
218 {"ld4.acq", M, OpMXX6aHint (4, 0, 0, 0x16, 0), {R1, MR3}},
219 {"ld4.acq.nt1", M, OpMXX6aHint (4, 0, 0, 0x16, 1), {R1, MR3}},
220 {"ld4.acq.nta", M, OpMXX6aHint (4, 0, 0, 0x16, 3), {R1, MR3}},
221 {"ld8.acq", M, OpMXX6aHint (4, 0, 0, 0x17, 0), {R1, MR3}},
222 {"ld8.acq.nt1", M, OpMXX6aHint (4, 0, 0, 0x17, 1), {R1, MR3}},
223 {"ld8.acq.nta", M, OpMXX6aHint (4, 0, 0, 0x17, 3), {R1, MR3}},
224 {"ld8.fill", M, OpMXX6aHint (4, 0, 0, 0x1b, 0), {R1, MR3}},
225 {"ld8.fill.nt1", M, OpMXX6aHint (4, 0, 0, 0x1b, 1), {R1, MR3}},
226 {"ld8.fill.nta", M, OpMXX6aHint (4, 0, 0, 0x1b, 3), {R1, MR3}},
227 {"ld1.c.clr", M, OpMXX6aHint (4, 0, 0, 0x20, 0), {R1, MR3}},
228 {"ld1.c.clr.nt1", M, OpMXX6aHint (4, 0, 0, 0x20, 1), {R1, MR3}},
229 {"ld1.c.clr.nta", M, OpMXX6aHint (4, 0, 0, 0x20, 3), {R1, MR3}},
230 {"ld2.c.clr", M, OpMXX6aHint (4, 0, 0, 0x21, 0), {R1, MR3}},
231 {"ld2.c.clr.nt1", M, OpMXX6aHint (4, 0, 0, 0x21, 1), {R1, MR3}},
232 {"ld2.c.clr.nta", M, OpMXX6aHint (4, 0, 0, 0x21, 3), {R1, MR3}},
233 {"ld4.c.clr", M, OpMXX6aHint (4, 0, 0, 0x22, 0), {R1, MR3}},
234 {"ld4.c.clr.nt1", M, OpMXX6aHint (4, 0, 0, 0x22, 1), {R1, MR3}},
235 {"ld4.c.clr.nta", M, OpMXX6aHint (4, 0, 0, 0x22, 3), {R1, MR3}},
236 {"ld8.c.clr", M, OpMXX6aHint (4, 0, 0, 0x23, 0), {R1, MR3}},
237 {"ld8.c.clr.nt1", M, OpMXX6aHint (4, 0, 0, 0x23, 1), {R1, MR3}},
238 {"ld8.c.clr.nta", M, OpMXX6aHint (4, 0, 0, 0x23, 3), {R1, MR3}},
239 {"ld1.c.nc", M, OpMXX6aHint (4, 0, 0, 0x24, 0), {R1, MR3}},
240 {"ld1.c.nc.nt1", M, OpMXX6aHint (4, 0, 0, 0x24, 1), {R1, MR3}},
241 {"ld1.c.nc.nta", M, OpMXX6aHint (4, 0, 0, 0x24, 3), {R1, MR3}},
242 {"ld2.c.nc", M, OpMXX6aHint (4, 0, 0, 0x25, 0), {R1, MR3}},
243 {"ld2.c.nc.nt1", M, OpMXX6aHint (4, 0, 0, 0x25, 1), {R1, MR3}},
244 {"ld2.c.nc.nta", M, OpMXX6aHint (4, 0, 0, 0x25, 3), {R1, MR3}},
245 {"ld4.c.nc", M, OpMXX6aHint (4, 0, 0, 0x26, 0), {R1, MR3}},
246 {"ld4.c.nc.nt1", M, OpMXX6aHint (4, 0, 0, 0x26, 1), {R1, MR3}},
247 {"ld4.c.nc.nta", M, OpMXX6aHint (4, 0, 0, 0x26, 3), {R1, MR3}},
248 {"ld8.c.nc", M, OpMXX6aHint (4, 0, 0, 0x27, 0), {R1, MR3}},
249 {"ld8.c.nc.nt1", M, OpMXX6aHint (4, 0, 0, 0x27, 1), {R1, MR3}},
250 {"ld8.c.nc.nta", M, OpMXX6aHint (4, 0, 0, 0x27, 3), {R1, MR3}},
251 {"ld1.c.clr.acq", M, OpMXX6aHint (4, 0, 0, 0x28, 0), {R1, MR3}},
252 {"ld1.c.clr.acq.nt1", M, OpMXX6aHint (4, 0, 0, 0x28, 1), {R1, MR3}},
253 {"ld1.c.clr.acq.nta", M, OpMXX6aHint (4, 0, 0, 0x28, 3), {R1, MR3}},
254 {"ld2.c.clr.acq", M, OpMXX6aHint (4, 0, 0, 0x29, 0), {R1, MR3}},
255 {"ld2.c.clr.acq.nt1", M, OpMXX6aHint (4, 0, 0, 0x29, 1), {R1, MR3}},
256 {"ld2.c.clr.acq.nta", M, OpMXX6aHint (4, 0, 0, 0x29, 3), {R1, MR3}},
257 {"ld4.c.clr.acq", M, OpMXX6aHint (4, 0, 0, 0x2a, 0), {R1, MR3}},
258 {"ld4.c.clr.acq.nt1", M, OpMXX6aHint (4, 0, 0, 0x2a, 1), {R1, MR3}},
259 {"ld4.c.clr.acq.nta", M, OpMXX6aHint (4, 0, 0, 0x2a, 3), {R1, MR3}},
260 {"ld8.c.clr.acq", M, OpMXX6aHint (4, 0, 0, 0x2b, 0), {R1, MR3}},
261 {"ld8.c.clr.acq.nt1", M, OpMXX6aHint (4, 0, 0, 0x2b, 1), {R1, MR3}},
262 {"ld8.c.clr.acq.nta", M, OpMXX6aHint (4, 0, 0, 0x2b, 3), {R1, MR3}},
264 /* integer load w/increment by register */
265 #define LDINCREG(c,h) M, OpMXX6aHint (4, 1, 0, c, h), {R1, MR3, R2}, POSTINC,
266 {"ld1", LDINCREG (0x00, 0)},
267 {"ld1.nt1", LDINCREG (0x00, 1)},
268 {"ld1.nta", LDINCREG (0x00, 3)},
269 {"ld2", LDINCREG (0x01, 0)},
270 {"ld2.nt1", LDINCREG (0x01, 1)},
271 {"ld2.nta", LDINCREG (0x01, 3)},
272 {"ld4", LDINCREG (0x02, 0)},
273 {"ld4.nt1", LDINCREG (0x02, 1)},
274 {"ld4.nta", LDINCREG (0x02, 3)},
275 {"ld8", LDINCREG (0x03, 0)},
276 {"ld8.nt1", LDINCREG (0x03, 1)},
277 {"ld8.nta", LDINCREG (0x03, 3)},
278 {"ld1.s", LDINCREG (0x04, 0)},
279 {"ld1.s.nt1", LDINCREG (0x04, 1)},
280 {"ld1.s.nta", LDINCREG (0x04, 3)},
281 {"ld2.s", LDINCREG (0x05, 0)},
282 {"ld2.s.nt1", LDINCREG (0x05, 1)},
283 {"ld2.s.nta", LDINCREG (0x05, 3)},
284 {"ld4.s", LDINCREG (0x06, 0)},
285 {"ld4.s.nt1", LDINCREG (0x06, 1)},
286 {"ld4.s.nta", LDINCREG (0x06, 3)},
287 {"ld8.s", LDINCREG (0x07, 0)},
288 {"ld8.s.nt1", LDINCREG (0x07, 1)},
289 {"ld8.s.nta", LDINCREG (0x07, 3)},
290 {"ld1.a", LDINCREG (0x08, 0)},
291 {"ld1.a.nt1", LDINCREG (0x08, 1)},
292 {"ld1.a.nta", LDINCREG (0x08, 3)},
293 {"ld2.a", LDINCREG (0x09, 0)},
294 {"ld2.a.nt1", LDINCREG (0x09, 1)},
295 {"ld2.a.nta", LDINCREG (0x09, 3)},
296 {"ld4.a", LDINCREG (0x0a, 0)},
297 {"ld4.a.nt1", LDINCREG (0x0a, 1)},
298 {"ld4.a.nta", LDINCREG (0x0a, 3)},
299 {"ld8.a", LDINCREG (0x0b, 0)},
300 {"ld8.a.nt1", LDINCREG (0x0b, 1)},
301 {"ld8.a.nta", LDINCREG (0x0b, 3)},
302 {"ld1.sa", LDINCREG (0x0c, 0)},
303 {"ld1.sa.nt1", LDINCREG (0x0c, 1)},
304 {"ld1.sa.nta", LDINCREG (0x0c, 3)},
305 {"ld2.sa", LDINCREG (0x0d, 0)},
306 {"ld2.sa.nt1", LDINCREG (0x0d, 1)},
307 {"ld2.sa.nta", LDINCREG (0x0d, 3)},
308 {"ld4.sa", LDINCREG (0x0e, 0)},
309 {"ld4.sa.nt1", LDINCREG (0x0e, 1)},
310 {"ld4.sa.nta", LDINCREG (0x0e, 3)},
311 {"ld8.sa", LDINCREG (0x0f, 0)},
312 {"ld8.sa.nt1", LDINCREG (0x0f, 1)},
313 {"ld8.sa.nta", LDINCREG (0x0f, 3)},
314 {"ld1.bias", LDINCREG (0x10, 0)},
315 {"ld1.bias.nt1", LDINCREG (0x10, 1)},
316 {"ld1.bias.nta", LDINCREG (0x10, 3)},
317 {"ld2.bias", LDINCREG (0x11, 0)},
318 {"ld2.bias.nt1", LDINCREG (0x11, 1)},
319 {"ld2.bias.nta", LDINCREG (0x11, 3)},
320 {"ld4.bias", LDINCREG (0x12, 0)},
321 {"ld4.bias.nt1", LDINCREG (0x12, 1)},
322 {"ld4.bias.nta", LDINCREG (0x12, 3)},
323 {"ld8.bias", LDINCREG (0x13, 0)},
324 {"ld8.bias.nt1", LDINCREG (0x13, 1)},
325 {"ld8.bias.nta", LDINCREG (0x13, 3)},
326 {"ld1.acq", LDINCREG (0x14, 0)},
327 {"ld1.acq.nt1", LDINCREG (0x14, 1)},
328 {"ld1.acq.nta", LDINCREG (0x14, 3)},
329 {"ld2.acq", LDINCREG (0x15, 0)},
330 {"ld2.acq.nt1", LDINCREG (0x15, 1)},
331 {"ld2.acq.nta", LDINCREG (0x15, 3)},
332 {"ld4.acq", LDINCREG (0x16, 0)},
333 {"ld4.acq.nt1", LDINCREG (0x16, 1)},
334 {"ld4.acq.nta", LDINCREG (0x16, 3)},
335 {"ld8.acq", LDINCREG (0x17, 0)},
336 {"ld8.acq.nt1", LDINCREG (0x17, 1)},
337 {"ld8.acq.nta", LDINCREG (0x17, 3)},
338 {"ld8.fill", LDINCREG (0x1b, 0)},
339 {"ld8.fill.nt1", LDINCREG (0x1b, 1)},
340 {"ld8.fill.nta", LDINCREG (0x1b, 3)},
341 {"ld1.c.clr", LDINCREG (0x20, 0)},
342 {"ld1.c.clr.nt1", LDINCREG (0x20, 1)},
343 {"ld1.c.clr.nta", LDINCREG (0x20, 3)},
344 {"ld2.c.clr", LDINCREG (0x21, 0)},
345 {"ld2.c.clr.nt1", LDINCREG (0x21, 1)},
346 {"ld2.c.clr.nta", LDINCREG (0x21, 3)},
347 {"ld4.c.clr", LDINCREG (0x22, 0)},
348 {"ld4.c.clr.nt1", LDINCREG (0x22, 1)},
349 {"ld4.c.clr.nta", LDINCREG (0x22, 3)},
350 {"ld8.c.clr", LDINCREG (0x23, 0)},
351 {"ld8.c.clr.nt1", LDINCREG (0x23, 1)},
352 {"ld8.c.clr.nta", LDINCREG (0x23, 3)},
353 {"ld1.c.nc", LDINCREG (0x24, 0)},
354 {"ld1.c.nc.nt1", LDINCREG (0x24, 1)},
355 {"ld1.c.nc.nta", LDINCREG (0x24, 3)},
356 {"ld2.c.nc", LDINCREG (0x25, 0)},
357 {"ld2.c.nc.nt1", LDINCREG (0x25, 1)},
358 {"ld2.c.nc.nta", LDINCREG (0x25, 3)},
359 {"ld4.c.nc", LDINCREG (0x26, 0)},
360 {"ld4.c.nc.nt1", LDINCREG (0x26, 1)},
361 {"ld4.c.nc.nta", LDINCREG (0x26, 3)},
362 {"ld8.c.nc", LDINCREG (0x27, 0)},
363 {"ld8.c.nc.nt1", LDINCREG (0x27, 1)},
364 {"ld8.c.nc.nta", LDINCREG (0x27, 3)},
365 {"ld1.c.clr.acq", LDINCREG (0x28, 0)},
366 {"ld1.c.clr.acq.nt1", LDINCREG (0x28, 1)},
367 {"ld1.c.clr.acq.nta", LDINCREG (0x28, 3)},
368 {"ld2.c.clr.acq", LDINCREG (0x29, 0)},
369 {"ld2.c.clr.acq.nt1", LDINCREG (0x29, 1)},
370 {"ld2.c.clr.acq.nta", LDINCREG (0x29, 3)},
371 {"ld4.c.clr.acq", LDINCREG (0x2a, 0)},
372 {"ld4.c.clr.acq.nt1", LDINCREG (0x2a, 1)},
373 {"ld4.c.clr.acq.nta", LDINCREG (0x2a, 3)},
374 {"ld8.c.clr.acq", LDINCREG (0x2b, 0)},
375 {"ld8.c.clr.acq.nt1", LDINCREG (0x2b, 1)},
376 {"ld8.c.clr.acq.nta", LDINCREG (0x2b, 3)},
377 #undef LDINCREG
379 {"st1", M, OpMXX6aHint (4, 0, 0, 0x30, 0), {MR3, R2}},
380 {"st1.nta", M, OpMXX6aHint (4, 0, 0, 0x30, 3), {MR3, R2}},
381 {"st2", M, OpMXX6aHint (4, 0, 0, 0x31, 0), {MR3, R2}},
382 {"st2.nta", M, OpMXX6aHint (4, 0, 0, 0x31, 3), {MR3, R2}},
383 {"st4", M, OpMXX6aHint (4, 0, 0, 0x32, 0), {MR3, R2}},
384 {"st4.nta", M, OpMXX6aHint (4, 0, 0, 0x32, 3), {MR3, R2}},
385 {"st8", M, OpMXX6aHint (4, 0, 0, 0x33, 0), {MR3, R2}},
386 {"st8.nta", M, OpMXX6aHint (4, 0, 0, 0x33, 3), {MR3, R2}},
387 {"st1.rel", M, OpMXX6aHint (4, 0, 0, 0x34, 0), {MR3, R2}},
388 {"st1.rel.nta", M, OpMXX6aHint (4, 0, 0, 0x34, 3), {MR3, R2}},
389 {"st2.rel", M, OpMXX6aHint (4, 0, 0, 0x35, 0), {MR3, R2}},
390 {"st2.rel.nta", M, OpMXX6aHint (4, 0, 0, 0x35, 3), {MR3, R2}},
391 {"st4.rel", M, OpMXX6aHint (4, 0, 0, 0x36, 0), {MR3, R2}},
392 {"st4.rel.nta", M, OpMXX6aHint (4, 0, 0, 0x36, 3), {MR3, R2}},
393 {"st8.rel", M, OpMXX6aHint (4, 0, 0, 0x37, 0), {MR3, R2}},
394 {"st8.rel.nta", M, OpMXX6aHint (4, 0, 0, 0x37, 3), {MR3, R2}},
395 {"st8.spill", M, OpMXX6aHint (4, 0, 0, 0x3b, 0), {MR3, R2}},
396 {"st8.spill.nta", M, OpMXX6aHint (4, 0, 0, 0x3b, 3), {MR3, R2}},
398 #define CMPXCHG(c,h) M, OpMXX6aHint (4, 0, 1, c, h), {R1, MR3, R2, AR_CCV}
399 {"cmpxchg1.acq", CMPXCHG (0x00, 0)},
400 {"cmpxchg1.acq.nt1", CMPXCHG (0x00, 1)},
401 {"cmpxchg1.acq.nta", CMPXCHG (0x00, 3)},
402 {"cmpxchg2.acq", CMPXCHG (0x01, 0)},
403 {"cmpxchg2.acq.nt1", CMPXCHG (0x01, 1)},
404 {"cmpxchg2.acq.nta", CMPXCHG (0x01, 3)},
405 {"cmpxchg4.acq", CMPXCHG (0x02, 0)},
406 {"cmpxchg4.acq.nt1", CMPXCHG (0x02, 1)},
407 {"cmpxchg4.acq.nta", CMPXCHG (0x02, 3)},
408 {"cmpxchg8.acq", CMPXCHG (0x03, 0)},
409 {"cmpxchg8.acq.nt1", CMPXCHG (0x03, 1)},
410 {"cmpxchg8.acq.nta", CMPXCHG (0x03, 3)},
411 {"cmpxchg1.rel", CMPXCHG (0x04, 0)},
412 {"cmpxchg1.rel.nt1", CMPXCHG (0x04, 1)},
413 {"cmpxchg1.rel.nta", CMPXCHG (0x04, 3)},
414 {"cmpxchg2.rel", CMPXCHG (0x05, 0)},
415 {"cmpxchg2.rel.nt1", CMPXCHG (0x05, 1)},
416 {"cmpxchg2.rel.nta", CMPXCHG (0x05, 3)},
417 {"cmpxchg4.rel", CMPXCHG (0x06, 0)},
418 {"cmpxchg4.rel.nt1", CMPXCHG (0x06, 1)},
419 {"cmpxchg4.rel.nta", CMPXCHG (0x06, 3)},
420 {"cmpxchg8.rel", CMPXCHG (0x07, 0)},
421 {"cmpxchg8.rel.nt1", CMPXCHG (0x07, 1)},
422 {"cmpxchg8.rel.nta", CMPXCHG (0x07, 3)},
423 #undef CMPXCHG
424 {"xchg1", M, OpMXX6aHint (4, 0, 1, 0x08, 0), {R1, MR3, R2}},
425 {"xchg1.nt1", M, OpMXX6aHint (4, 0, 1, 0x08, 1), {R1, MR3, R2}},
426 {"xchg1.nta", M, OpMXX6aHint (4, 0, 1, 0x08, 3), {R1, MR3, R2}},
427 {"xchg2", M, OpMXX6aHint (4, 0, 1, 0x09, 0), {R1, MR3, R2}},
428 {"xchg2.nt1", M, OpMXX6aHint (4, 0, 1, 0x09, 1), {R1, MR3, R2}},
429 {"xchg2.nta", M, OpMXX6aHint (4, 0, 1, 0x09, 3), {R1, MR3, R2}},
430 {"xchg4", M, OpMXX6aHint (4, 0, 1, 0x0a, 0), {R1, MR3, R2}},
431 {"xchg4.nt1", M, OpMXX6aHint (4, 0, 1, 0x0a, 1), {R1, MR3, R2}},
432 {"xchg4.nta", M, OpMXX6aHint (4, 0, 1, 0x0a, 3), {R1, MR3, R2}},
433 {"xchg8", M, OpMXX6aHint (4, 0, 1, 0x0b, 0), {R1, MR3, R2}},
434 {"xchg8.nt1", M, OpMXX6aHint (4, 0, 1, 0x0b, 1), {R1, MR3, R2}},
435 {"xchg8.nta", M, OpMXX6aHint (4, 0, 1, 0x0b, 3), {R1, MR3, R2}},
437 {"fetchadd4.acq", M, OpMXX6aHint (4, 0, 1, 0x12, 0), {R1, MR3, INC3}},
438 {"fetchadd4.acq.nt1", M, OpMXX6aHint (4, 0, 1, 0x12, 1), {R1, MR3, INC3}},
439 {"fetchadd4.acq.nta", M, OpMXX6aHint (4, 0, 1, 0x12, 3), {R1, MR3, INC3}},
440 {"fetchadd8.acq", M, OpMXX6aHint (4, 0, 1, 0x13, 0), {R1, MR3, INC3}},
441 {"fetchadd8.acq.nt1", M, OpMXX6aHint (4, 0, 1, 0x13, 1), {R1, MR3, INC3}},
442 {"fetchadd8.acq.nta", M, OpMXX6aHint (4, 0, 1, 0x13, 3), {R1, MR3, INC3}},
443 {"fetchadd4.rel", M, OpMXX6aHint (4, 0, 1, 0x16, 0), {R1, MR3, INC3}},
444 {"fetchadd4.rel.nt1", M, OpMXX6aHint (4, 0, 1, 0x16, 1), {R1, MR3, INC3}},
445 {"fetchadd4.rel.nta", M, OpMXX6aHint (4, 0, 1, 0x16, 3), {R1, MR3, INC3}},
446 {"fetchadd8.rel", M, OpMXX6aHint (4, 0, 1, 0x17, 0), {R1, MR3, INC3}},
447 {"fetchadd8.rel.nt1", M, OpMXX6aHint (4, 0, 1, 0x17, 1), {R1, MR3, INC3}},
448 {"fetchadd8.rel.nta", M, OpMXX6aHint (4, 0, 1, 0x17, 3), {R1, MR3, INC3}},
450 {"getf.sig", M, OpMXX6a (4, 0, 1, 0x1c), {R1, F2}},
451 {"getf.exp", M, OpMXX6a (4, 0, 1, 0x1d), {R1, F2}},
452 {"getf.s", M, OpMXX6a (4, 0, 1, 0x1e), {R1, F2}},
453 {"getf.d", M, OpMXX6a (4, 0, 1, 0x1f), {R1, F2}},
455 /* integer load w/increment by immediate */
456 #define LDINCIMMED(c,h) M, OpX6aHint (5, c, h), {R1, MR3, IMM9b}, POSTINC
457 {"ld1", LDINCIMMED (0x00, 0)},
458 {"ld1.nt1", LDINCIMMED (0x00, 1)},
459 {"ld1.nta", LDINCIMMED (0x00, 3)},
460 {"ld2", LDINCIMMED (0x01, 0)},
461 {"ld2.nt1", LDINCIMMED (0x01, 1)},
462 {"ld2.nta", LDINCIMMED (0x01, 3)},
463 {"ld4", LDINCIMMED (0x02, 0)},
464 {"ld4.nt1", LDINCIMMED (0x02, 1)},
465 {"ld4.nta", LDINCIMMED (0x02, 3)},
466 {"ld8", LDINCIMMED (0x03, 0)},
467 {"ld8.nt1", LDINCIMMED (0x03, 1)},
468 {"ld8.nta", LDINCIMMED (0x03, 3)},
469 {"ld1.s", LDINCIMMED (0x04, 0)},
470 {"ld1.s.nt1", LDINCIMMED (0x04, 1)},
471 {"ld1.s.nta", LDINCIMMED (0x04, 3)},
472 {"ld2.s", LDINCIMMED (0x05, 0)},
473 {"ld2.s.nt1", LDINCIMMED (0x05, 1)},
474 {"ld2.s.nta", LDINCIMMED (0x05, 3)},
475 {"ld4.s", LDINCIMMED (0x06, 0)},
476 {"ld4.s.nt1", LDINCIMMED (0x06, 1)},
477 {"ld4.s.nta", LDINCIMMED (0x06, 3)},
478 {"ld8.s", LDINCIMMED (0x07, 0)},
479 {"ld8.s.nt1", LDINCIMMED (0x07, 1)},
480 {"ld8.s.nta", LDINCIMMED (0x07, 3)},
481 {"ld1.a", LDINCIMMED (0x08, 0)},
482 {"ld1.a.nt1", LDINCIMMED (0x08, 1)},
483 {"ld1.a.nta", LDINCIMMED (0x08, 3)},
484 {"ld2.a", LDINCIMMED (0x09, 0)},
485 {"ld2.a.nt1", LDINCIMMED (0x09, 1)},
486 {"ld2.a.nta", LDINCIMMED (0x09, 3)},
487 {"ld4.a", LDINCIMMED (0x0a, 0)},
488 {"ld4.a.nt1", LDINCIMMED (0x0a, 1)},
489 {"ld4.a.nta", LDINCIMMED (0x0a, 3)},
490 {"ld8.a", LDINCIMMED (0x0b, 0)},
491 {"ld8.a.nt1", LDINCIMMED (0x0b, 1)},
492 {"ld8.a.nta", LDINCIMMED (0x0b, 3)},
493 {"ld1.sa", LDINCIMMED (0x0c, 0)},
494 {"ld1.sa.nt1", LDINCIMMED (0x0c, 1)},
495 {"ld1.sa.nta", LDINCIMMED (0x0c, 3)},
496 {"ld2.sa", LDINCIMMED (0x0d, 0)},
497 {"ld2.sa.nt1", LDINCIMMED (0x0d, 1)},
498 {"ld2.sa.nta", LDINCIMMED (0x0d, 3)},
499 {"ld4.sa", LDINCIMMED (0x0e, 0)},
500 {"ld4.sa.nt1", LDINCIMMED (0x0e, 1)},
501 {"ld4.sa.nta", LDINCIMMED (0x0e, 3)},
502 {"ld8.sa", LDINCIMMED (0x0f, 0)},
503 {"ld8.sa.nt1", LDINCIMMED (0x0f, 1)},
504 {"ld8.sa.nta", LDINCIMMED (0x0f, 3)},
505 {"ld1.bias", LDINCIMMED (0x10, 0)},
506 {"ld1.bias.nt1", LDINCIMMED (0x10, 1)},
507 {"ld1.bias.nta", LDINCIMMED (0x10, 3)},
508 {"ld2.bias", LDINCIMMED (0x11, 0)},
509 {"ld2.bias.nt1", LDINCIMMED (0x11, 1)},
510 {"ld2.bias.nta", LDINCIMMED (0x11, 3)},
511 {"ld4.bias", LDINCIMMED (0x12, 0)},
512 {"ld4.bias.nt1", LDINCIMMED (0x12, 1)},
513 {"ld4.bias.nta", LDINCIMMED (0x12, 3)},
514 {"ld8.bias", LDINCIMMED (0x13, 0)},
515 {"ld8.bias.nt1", LDINCIMMED (0x13, 1)},
516 {"ld8.bias.nta", LDINCIMMED (0x13, 3)},
517 {"ld1.acq", LDINCIMMED (0x14, 0)},
518 {"ld1.acq.nt1", LDINCIMMED (0x14, 1)},
519 {"ld1.acq.nta", LDINCIMMED (0x14, 3)},
520 {"ld2.acq", LDINCIMMED (0x15, 0)},
521 {"ld2.acq.nt1", LDINCIMMED (0x15, 1)},
522 {"ld2.acq.nta", LDINCIMMED (0x15, 3)},
523 {"ld4.acq", LDINCIMMED (0x16, 0)},
524 {"ld4.acq.nt1", LDINCIMMED (0x16, 1)},
525 {"ld4.acq.nta", LDINCIMMED (0x16, 3)},
526 {"ld8.acq", LDINCIMMED (0x17, 0)},
527 {"ld8.acq.nt1", LDINCIMMED (0x17, 1)},
528 {"ld8.acq.nta", LDINCIMMED (0x17, 3)},
529 {"ld8.fill", LDINCIMMED (0x1b, 0)},
530 {"ld8.fill.nt1", LDINCIMMED (0x1b, 1)},
531 {"ld8.fill.nta", LDINCIMMED (0x1b, 3)},
532 {"ld1.c.clr", LDINCIMMED (0x20, 0)},
533 {"ld1.c.clr.nt1", LDINCIMMED (0x20, 1)},
534 {"ld1.c.clr.nta", LDINCIMMED (0x20, 3)},
535 {"ld2.c.clr", LDINCIMMED (0x21, 0)},
536 {"ld2.c.clr.nt1", LDINCIMMED (0x21, 1)},
537 {"ld2.c.clr.nta", LDINCIMMED (0x21, 3)},
538 {"ld4.c.clr", LDINCIMMED (0x22, 0)},
539 {"ld4.c.clr.nt1", LDINCIMMED (0x22, 1)},
540 {"ld4.c.clr.nta", LDINCIMMED (0x22, 3)},
541 {"ld8.c.clr", LDINCIMMED (0x23, 0)},
542 {"ld8.c.clr.nt1", LDINCIMMED (0x23, 1)},
543 {"ld8.c.clr.nta", LDINCIMMED (0x23, 3)},
544 {"ld1.c.nc", LDINCIMMED (0x24, 0)},
545 {"ld1.c.nc.nt1", LDINCIMMED (0x24, 1)},
546 {"ld1.c.nc.nta", LDINCIMMED (0x24, 3)},
547 {"ld2.c.nc", LDINCIMMED (0x25, 0)},
548 {"ld2.c.nc.nt1", LDINCIMMED (0x25, 1)},
549 {"ld2.c.nc.nta", LDINCIMMED (0x25, 3)},
550 {"ld4.c.nc", LDINCIMMED (0x26, 0)},
551 {"ld4.c.nc.nt1", LDINCIMMED (0x26, 1)},
552 {"ld4.c.nc.nta", LDINCIMMED (0x26, 3)},
553 {"ld8.c.nc", LDINCIMMED (0x27, 0)},
554 {"ld8.c.nc.nt1", LDINCIMMED (0x27, 1)},
555 {"ld8.c.nc.nta", LDINCIMMED (0x27, 3)},
556 {"ld1.c.clr.acq", LDINCIMMED (0x28, 0)},
557 {"ld1.c.clr.acq.nt1", LDINCIMMED (0x28, 1)},
558 {"ld1.c.clr.acq.nta", LDINCIMMED (0x28, 3)},
559 {"ld2.c.clr.acq", LDINCIMMED (0x29, 0)},
560 {"ld2.c.clr.acq.nt1", LDINCIMMED (0x29, 1)},
561 {"ld2.c.clr.acq.nta", LDINCIMMED (0x29, 3)},
562 {"ld4.c.clr.acq", LDINCIMMED (0x2a, 0)},
563 {"ld4.c.clr.acq.nt1", LDINCIMMED (0x2a, 1)},
564 {"ld4.c.clr.acq.nta", LDINCIMMED (0x2a, 3)},
565 {"ld8.c.clr.acq", LDINCIMMED (0x2b, 0)},
566 {"ld8.c.clr.acq.nt1", LDINCIMMED (0x2b, 1)},
567 {"ld8.c.clr.acq.nta", LDINCIMMED (0x2b, 3)},
568 #undef LDINCIMMED
570 /* store w/increment by immediate */
571 #define STINCIMMED(c,h) M, OpX6aHint (5, c, h), {MR3, R2, IMM9a}, POSTINC
572 {"st1", STINCIMMED (0x30, 0)},
573 {"st1.nta", STINCIMMED (0x30, 3)},
574 {"st2", STINCIMMED (0x31, 0)},
575 {"st2.nta", STINCIMMED (0x31, 3)},
576 {"st4", STINCIMMED (0x32, 0)},
577 {"st4.nta", STINCIMMED (0x32, 3)},
578 {"st8", STINCIMMED (0x33, 0)},
579 {"st8.nta", STINCIMMED (0x33, 3)},
580 {"st1.rel", STINCIMMED (0x34, 0)},
581 {"st1.rel.nta", STINCIMMED (0x34, 3)},
582 {"st2.rel", STINCIMMED (0x35, 0)},
583 {"st2.rel.nta", STINCIMMED (0x35, 3)},
584 {"st4.rel", STINCIMMED (0x36, 0)},
585 {"st4.rel.nta", STINCIMMED (0x36, 3)},
586 {"st8.rel", STINCIMMED (0x37, 0)},
587 {"st8.rel.nta", STINCIMMED (0x37, 3)},
588 {"st8.spill", STINCIMMED (0x3b, 0)},
589 {"st8.spill.nta", STINCIMMED (0x3b, 3)},
590 #undef STINCIMMED
592 /* floating-point load */
593 {"ldfs", M, OpMXX6aHint (6, 0, 0, 0x02, 0), {F1, MR3}},
594 {"ldfs.nt1", M, OpMXX6aHint (6, 0, 0, 0x02, 1), {F1, MR3}},
595 {"ldfs.nta", M, OpMXX6aHint (6, 0, 0, 0x02, 3), {F1, MR3}},
596 {"ldfd", M, OpMXX6aHint (6, 0, 0, 0x03, 0), {F1, MR3}},
597 {"ldfd.nt1", M, OpMXX6aHint (6, 0, 0, 0x03, 1), {F1, MR3}},
598 {"ldfd.nta", M, OpMXX6aHint (6, 0, 0, 0x03, 3), {F1, MR3}},
599 {"ldf8", M, OpMXX6aHint (6, 0, 0, 0x01, 0), {F1, MR3}},
600 {"ldf8.nt1", M, OpMXX6aHint (6, 0, 0, 0x01, 1), {F1, MR3}},
601 {"ldf8.nta", M, OpMXX6aHint (6, 0, 0, 0x01, 3), {F1, MR3}},
602 {"ldfe", M, OpMXX6aHint (6, 0, 0, 0x00, 0), {F1, MR3}},
603 {"ldfe.nt1", M, OpMXX6aHint (6, 0, 0, 0x00, 1), {F1, MR3}},
604 {"ldfe.nta", M, OpMXX6aHint (6, 0, 0, 0x00, 3), {F1, MR3}},
605 {"ldfs.s", M, OpMXX6aHint (6, 0, 0, 0x06, 0), {F1, MR3}},
606 {"ldfs.s.nt1", M, OpMXX6aHint (6, 0, 0, 0x06, 1), {F1, MR3}},
607 {"ldfs.s.nta", M, OpMXX6aHint (6, 0, 0, 0x06, 3), {F1, MR3}},
608 {"ldfd.s", M, OpMXX6aHint (6, 0, 0, 0x07, 0), {F1, MR3}},
609 {"ldfd.s.nt1", M, OpMXX6aHint (6, 0, 0, 0x07, 1), {F1, MR3}},
610 {"ldfd.s.nta", M, OpMXX6aHint (6, 0, 0, 0x07, 3), {F1, MR3}},
611 {"ldf8.s", M, OpMXX6aHint (6, 0, 0, 0x05, 0), {F1, MR3}},
612 {"ldf8.s.nt1", M, OpMXX6aHint (6, 0, 0, 0x05, 1), {F1, MR3}},
613 {"ldf8.s.nta", M, OpMXX6aHint (6, 0, 0, 0x05, 3), {F1, MR3}},
614 {"ldfe.s", M, OpMXX6aHint (6, 0, 0, 0x04, 0), {F1, MR3}},
615 {"ldfe.s.nt1", M, OpMXX6aHint (6, 0, 0, 0x04, 1), {F1, MR3}},
616 {"ldfe.s.nta", M, OpMXX6aHint (6, 0, 0, 0x04, 3), {F1, MR3}},
617 {"ldfs.a", M, OpMXX6aHint (6, 0, 0, 0x0a, 0), {F1, MR3}},
618 {"ldfs.a.nt1", M, OpMXX6aHint (6, 0, 0, 0x0a, 1), {F1, MR3}},
619 {"ldfs.a.nta", M, OpMXX6aHint (6, 0, 0, 0x0a, 3), {F1, MR3}},
620 {"ldfd.a", M, OpMXX6aHint (6, 0, 0, 0x0b, 0), {F1, MR3}},
621 {"ldfd.a.nt1", M, OpMXX6aHint (6, 0, 0, 0x0b, 1), {F1, MR3}},
622 {"ldfd.a.nta", M, OpMXX6aHint (6, 0, 0, 0x0b, 3), {F1, MR3}},
623 {"ldf8.a", M, OpMXX6aHint (6, 0, 0, 0x09, 0), {F1, MR3}},
624 {"ldf8.a.nt1", M, OpMXX6aHint (6, 0, 0, 0x09, 1), {F1, MR3}},
625 {"ldf8.a.nta", M, OpMXX6aHint (6, 0, 0, 0x09, 3), {F1, MR3}},
626 {"ldfe.a", M, OpMXX6aHint (6, 0, 0, 0x08, 0), {F1, MR3}},
627 {"ldfe.a.nt1", M, OpMXX6aHint (6, 0, 0, 0x08, 1), {F1, MR3}},
628 {"ldfe.a.nta", M, OpMXX6aHint (6, 0, 0, 0x08, 3), {F1, MR3}},
629 {"ldfs.sa", M, OpMXX6aHint (6, 0, 0, 0x0e, 0), {F1, MR3}},
630 {"ldfs.sa.nt1", M, OpMXX6aHint (6, 0, 0, 0x0e, 1), {F1, MR3}},
631 {"ldfs.sa.nta", M, OpMXX6aHint (6, 0, 0, 0x0e, 3), {F1, MR3}},
632 {"ldfd.sa", M, OpMXX6aHint (6, 0, 0, 0x0f, 0), {F1, MR3}},
633 {"ldfd.sa.nt1", M, OpMXX6aHint (6, 0, 0, 0x0f, 1), {F1, MR3}},
634 {"ldfd.sa.nta", M, OpMXX6aHint (6, 0, 0, 0x0f, 3), {F1, MR3}},
635 {"ldf8.sa", M, OpMXX6aHint (6, 0, 0, 0x0d, 0), {F1, MR3}},
636 {"ldf8.sa.nt1", M, OpMXX6aHint (6, 0, 0, 0x0d, 1), {F1, MR3}},
637 {"ldf8.sa.nta", M, OpMXX6aHint (6, 0, 0, 0x0d, 3), {F1, MR3}},
638 {"ldfe.sa", M, OpMXX6aHint (6, 0, 0, 0x0c, 0), {F1, MR3}},
639 {"ldfe.sa.nt1", M, OpMXX6aHint (6, 0, 0, 0x0c, 1), {F1, MR3}},
640 {"ldfe.sa.nta", M, OpMXX6aHint (6, 0, 0, 0x0c, 3), {F1, MR3}},
641 {"ldf.fill", M, OpMXX6aHint (6, 0, 0, 0x1b, 0), {F1, MR3}},
642 {"ldf.fill.nt1", M, OpMXX6aHint (6, 0, 0, 0x1b, 1), {F1, MR3}},
643 {"ldf.fill.nta", M, OpMXX6aHint (6, 0, 0, 0x1b, 3), {F1, MR3}},
644 {"ldfs.c.clr", M, OpMXX6aHint (6, 0, 0, 0x22, 0), {F1, MR3}},
645 {"ldfs.c.clr.nt1", M, OpMXX6aHint (6, 0, 0, 0x22, 1), {F1, MR3}},
646 {"ldfs.c.clr.nta", M, OpMXX6aHint (6, 0, 0, 0x22, 3), {F1, MR3}},
647 {"ldfd.c.clr", M, OpMXX6aHint (6, 0, 0, 0x23, 0), {F1, MR3}},
648 {"ldfd.c.clr.nt1", M, OpMXX6aHint (6, 0, 0, 0x23, 1), {F1, MR3}},
649 {"ldfd.c.clr.nta", M, OpMXX6aHint (6, 0, 0, 0x23, 3), {F1, MR3}},
650 {"ldf8.c.clr", M, OpMXX6aHint (6, 0, 0, 0x21, 0), {F1, MR3}},
651 {"ldf8.c.clr.nt1", M, OpMXX6aHint (6, 0, 0, 0x21, 1), {F1, MR3}},
652 {"ldf8.c.clr.nta", M, OpMXX6aHint (6, 0, 0, 0x21, 3), {F1, MR3}},
653 {"ldfe.c.clr", M, OpMXX6aHint (6, 0, 0, 0x20, 0), {F1, MR3}},
654 {"ldfe.c.clr.nt1", M, OpMXX6aHint (6, 0, 0, 0x20, 1), {F1, MR3}},
655 {"ldfe.c.clr.nta", M, OpMXX6aHint (6, 0, 0, 0x20, 3), {F1, MR3}},
656 {"ldfs.c.nc", M, OpMXX6aHint (6, 0, 0, 0x26, 0), {F1, MR3}},
657 {"ldfs.c.nc.nt1", M, OpMXX6aHint (6, 0, 0, 0x26, 1), {F1, MR3}},
658 {"ldfs.c.nc.nta", M, OpMXX6aHint (6, 0, 0, 0x26, 3), {F1, MR3}},
659 {"ldfd.c.nc", M, OpMXX6aHint (6, 0, 0, 0x27, 0), {F1, MR3}},
660 {"ldfd.c.nc.nt1", M, OpMXX6aHint (6, 0, 0, 0x27, 1), {F1, MR3}},
661 {"ldfd.c.nc.nta", M, OpMXX6aHint (6, 0, 0, 0x27, 3), {F1, MR3}},
662 {"ldf8.c.nc", M, OpMXX6aHint (6, 0, 0, 0x25, 0), {F1, MR3}},
663 {"ldf8.c.nc.nt1", M, OpMXX6aHint (6, 0, 0, 0x25, 1), {F1, MR3}},
664 {"ldf8.c.nc.nta", M, OpMXX6aHint (6, 0, 0, 0x25, 3), {F1, MR3}},
665 {"ldfe.c.nc", M, OpMXX6aHint (6, 0, 0, 0x24, 0), {F1, MR3}},
666 {"ldfe.c.nc.nt1", M, OpMXX6aHint (6, 0, 0, 0x24, 1), {F1, MR3}},
667 {"ldfe.c.nc.nta", M, OpMXX6aHint (6, 0, 0, 0x24, 3), {F1, MR3}},
669 /* floating-point load w/increment by register */
670 #define FLDINCREG(c,h) M, OpMXX6aHint (6, 1, 0, c, h), {F1, MR3, R2}, POSTINC
671 {"ldfs", FLDINCREG (0x02, 0)},
672 {"ldfs.nt1", FLDINCREG (0x02, 1)},
673 {"ldfs.nta", FLDINCREG (0x02, 3)},
674 {"ldfd", FLDINCREG (0x03, 0)},
675 {"ldfd.nt1", FLDINCREG (0x03, 1)},
676 {"ldfd.nta", FLDINCREG (0x03, 3)},
677 {"ldf8", FLDINCREG (0x01, 0)},
678 {"ldf8.nt1", FLDINCREG (0x01, 1)},
679 {"ldf8.nta", FLDINCREG (0x01, 3)},
680 {"ldfe", FLDINCREG (0x00, 0)},
681 {"ldfe.nt1", FLDINCREG (0x00, 1)},
682 {"ldfe.nta", FLDINCREG (0x00, 3)},
683 {"ldfs.s", FLDINCREG (0x06, 0)},
684 {"ldfs.s.nt1", FLDINCREG (0x06, 1)},
685 {"ldfs.s.nta", FLDINCREG (0x06, 3)},
686 {"ldfd.s", FLDINCREG (0x07, 0)},
687 {"ldfd.s.nt1", FLDINCREG (0x07, 1)},
688 {"ldfd.s.nta", FLDINCREG (0x07, 3)},
689 {"ldf8.s", FLDINCREG (0x05, 0)},
690 {"ldf8.s.nt1", FLDINCREG (0x05, 1)},
691 {"ldf8.s.nta", FLDINCREG (0x05, 3)},
692 {"ldfe.s", FLDINCREG (0x04, 0)},
693 {"ldfe.s.nt1", FLDINCREG (0x04, 1)},
694 {"ldfe.s.nta", FLDINCREG (0x04, 3)},
695 {"ldfs.a", FLDINCREG (0x0a, 0)},
696 {"ldfs.a.nt1", FLDINCREG (0x0a, 1)},
697 {"ldfs.a.nta", FLDINCREG (0x0a, 3)},
698 {"ldfd.a", FLDINCREG (0x0b, 0)},
699 {"ldfd.a.nt1", FLDINCREG (0x0b, 1)},
700 {"ldfd.a.nta", FLDINCREG (0x0b, 3)},
701 {"ldf8.a", FLDINCREG (0x09, 0)},
702 {"ldf8.a.nt1", FLDINCREG (0x09, 1)},
703 {"ldf8.a.nta", FLDINCREG (0x09, 3)},
704 {"ldfe.a", FLDINCREG (0x08, 0)},
705 {"ldfe.a.nt1", FLDINCREG (0x08, 1)},
706 {"ldfe.a.nta", FLDINCREG (0x08, 3)},
707 {"ldfs.sa", FLDINCREG (0x0e, 0)},
708 {"ldfs.sa.nt1", FLDINCREG (0x0e, 1)},
709 {"ldfs.sa.nta", FLDINCREG (0x0e, 3)},
710 {"ldfd.sa", FLDINCREG (0x0f, 0)},
711 {"ldfd.sa.nt1", FLDINCREG (0x0f, 1)},
712 {"ldfd.sa.nta", FLDINCREG (0x0f, 3)},
713 {"ldf8.sa", FLDINCREG (0x0d, 0)},
714 {"ldf8.sa.nt1", FLDINCREG (0x0d, 1)},
715 {"ldf8.sa.nta", FLDINCREG (0x0d, 3)},
716 {"ldfe.sa", FLDINCREG (0x0c, 0)},
717 {"ldfe.sa.nt1", FLDINCREG (0x0c, 1)},
718 {"ldfe.sa.nta", FLDINCREG (0x0c, 3)},
719 {"ldf.fill", FLDINCREG (0x1b, 0)},
720 {"ldf.fill.nt1", FLDINCREG (0x1b, 1)},
721 {"ldf.fill.nta", FLDINCREG (0x1b, 3)},
722 {"ldfs.c.clr", FLDINCREG (0x22, 0)},
723 {"ldfs.c.clr.nt1", FLDINCREG (0x22, 1)},
724 {"ldfs.c.clr.nta", FLDINCREG (0x22, 3)},
725 {"ldfd.c.clr", FLDINCREG (0x23, 0)},
726 {"ldfd.c.clr.nt1", FLDINCREG (0x23, 1)},
727 {"ldfd.c.clr.nta", FLDINCREG (0x23, 3)},
728 {"ldf8.c.clr", FLDINCREG (0x21, 0)},
729 {"ldf8.c.clr.nt1", FLDINCREG (0x21, 1)},
730 {"ldf8.c.clr.nta", FLDINCREG (0x21, 3)},
731 {"ldfe.c.clr", FLDINCREG (0x20, 0)},
732 {"ldfe.c.clr.nt1", FLDINCREG (0x20, 1)},
733 {"ldfe.c.clr.nta", FLDINCREG (0x20, 3)},
734 {"ldfs.c.nc", FLDINCREG (0x26, 0)},
735 {"ldfs.c.nc.nt1", FLDINCREG (0x26, 1)},
736 {"ldfs.c.nc.nta", FLDINCREG (0x26, 3)},
737 {"ldfd.c.nc", FLDINCREG (0x27, 0)},
738 {"ldfd.c.nc.nt1", FLDINCREG (0x27, 1)},
739 {"ldfd.c.nc.nta", FLDINCREG (0x27, 3)},
740 {"ldf8.c.nc", FLDINCREG (0x25, 0)},
741 {"ldf8.c.nc.nt1", FLDINCREG (0x25, 1)},
742 {"ldf8.c.nc.nta", FLDINCREG (0x25, 3)},
743 {"ldfe.c.nc", FLDINCREG (0x24, 0)},
744 {"ldfe.c.nc.nt1", FLDINCREG (0x24, 1)},
745 {"ldfe.c.nc.nta", FLDINCREG (0x24, 3)},
746 #undef FLDINCREG
748 /* floating-point store */
749 {"stfs", M, OpMXX6aHint (6, 0, 0, 0x32, 0), {MR3, F2}},
750 {"stfs.nta", M, OpMXX6aHint (6, 0, 0, 0x32, 3), {MR3, F2}},
751 {"stfd", M, OpMXX6aHint (6, 0, 0, 0x33, 0), {MR3, F2}},
752 {"stfd.nta", M, OpMXX6aHint (6, 0, 0, 0x33, 3), {MR3, F2}},
753 {"stf8", M, OpMXX6aHint (6, 0, 0, 0x31, 0), {MR3, F2}},
754 {"stf8.nta", M, OpMXX6aHint (6, 0, 0, 0x31, 3), {MR3, F2}},
755 {"stfe", M, OpMXX6aHint (6, 0, 0, 0x30, 0), {MR3, F2}},
756 {"stfe.nta", M, OpMXX6aHint (6, 0, 0, 0x30, 3), {MR3, F2}},
757 {"stf.spill", M, OpMXX6aHint (6, 0, 0, 0x3b, 0), {MR3, F2}},
758 {"stf.spill.nta", M, OpMXX6aHint (6, 0, 0, 0x3b, 3), {MR3, F2}},
760 /* floating-point load pair */
761 {"ldfps", M2, OpMXX6aHint (6, 0, 1, 0x02, 0), {F1, F2, MR3}},
762 {"ldfps.nt1", M2, OpMXX6aHint (6, 0, 1, 0x02, 1), {F1, F2, MR3}},
763 {"ldfps.nta", M2, OpMXX6aHint (6, 0, 1, 0x02, 3), {F1, F2, MR3}},
764 {"ldfpd", M2, OpMXX6aHint (6, 0, 1, 0x03, 0), {F1, F2, MR3}},
765 {"ldfpd.nt1", M2, OpMXX6aHint (6, 0, 1, 0x03, 1), {F1, F2, MR3}},
766 {"ldfpd.nta", M2, OpMXX6aHint (6, 0, 1, 0x03, 3), {F1, F2, MR3}},
767 {"ldfp8", M2, OpMXX6aHint (6, 0, 1, 0x01, 0), {F1, F2, MR3}},
768 {"ldfp8.nt1", M2, OpMXX6aHint (6, 0, 1, 0x01, 1), {F1, F2, MR3}},
769 {"ldfp8.nta", M2, OpMXX6aHint (6, 0, 1, 0x01, 3), {F1, F2, MR3}},
770 {"ldfps.s", M2, OpMXX6aHint (6, 0, 1, 0x06, 0), {F1, F2, MR3}},
771 {"ldfps.s.nt1", M2, OpMXX6aHint (6, 0, 1, 0x06, 1), {F1, F2, MR3}},
772 {"ldfps.s.nta", M2, OpMXX6aHint (6, 0, 1, 0x06, 3), {F1, F2, MR3}},
773 {"ldfpd.s", M2, OpMXX6aHint (6, 0, 1, 0x07, 0), {F1, F2, MR3}},
774 {"ldfpd.s.nt1", M2, OpMXX6aHint (6, 0, 1, 0x07, 1), {F1, F2, MR3}},
775 {"ldfpd.s.nta", M2, OpMXX6aHint (6, 0, 1, 0x07, 3), {F1, F2, MR3}},
776 {"ldfp8.s", M2, OpMXX6aHint (6, 0, 1, 0x05, 0), {F1, F2, MR3}},
777 {"ldfp8.s.nt1", M2, OpMXX6aHint (6, 0, 1, 0x05, 1), {F1, F2, MR3}},
778 {"ldfp8.s.nta", M2, OpMXX6aHint (6, 0, 1, 0x05, 3), {F1, F2, MR3}},
779 {"ldfps.a", M2, OpMXX6aHint (6, 0, 1, 0x0a, 0), {F1, F2, MR3}},
780 {"ldfps.a.nt1", M2, OpMXX6aHint (6, 0, 1, 0x0a, 1), {F1, F2, MR3}},
781 {"ldfps.a.nta", M2, OpMXX6aHint (6, 0, 1, 0x0a, 3), {F1, F2, MR3}},
782 {"ldfpd.a", M2, OpMXX6aHint (6, 0, 1, 0x0b, 0), {F1, F2, MR3}},
783 {"ldfpd.a.nt1", M2, OpMXX6aHint (6, 0, 1, 0x0b, 1), {F1, F2, MR3}},
784 {"ldfpd.a.nta", M2, OpMXX6aHint (6, 0, 1, 0x0b, 3), {F1, F2, MR3}},
785 {"ldfp8.a", M2, OpMXX6aHint (6, 0, 1, 0x09, 0), {F1, F2, MR3}},
786 {"ldfp8.a.nt1", M2, OpMXX6aHint (6, 0, 1, 0x09, 1), {F1, F2, MR3}},
787 {"ldfp8.a.nta", M2, OpMXX6aHint (6, 0, 1, 0x09, 3), {F1, F2, MR3}},
788 {"ldfps.sa", M2, OpMXX6aHint (6, 0, 1, 0x0e, 0), {F1, F2, MR3}},
789 {"ldfps.sa.nt1", M2, OpMXX6aHint (6, 0, 1, 0x0e, 1), {F1, F2, MR3}},
790 {"ldfps.sa.nta", M2, OpMXX6aHint (6, 0, 1, 0x0e, 3), {F1, F2, MR3}},
791 {"ldfpd.sa", M2, OpMXX6aHint (6, 0, 1, 0x0f, 0), {F1, F2, MR3}},
792 {"ldfpd.sa.nt1", M2, OpMXX6aHint (6, 0, 1, 0x0f, 1), {F1, F2, MR3}},
793 {"ldfpd.sa.nta", M2, OpMXX6aHint (6, 0, 1, 0x0f, 3), {F1, F2, MR3}},
794 {"ldfp8.sa", M2, OpMXX6aHint (6, 0, 1, 0x0d, 0), {F1, F2, MR3}},
795 {"ldfp8.sa.nt1", M2, OpMXX6aHint (6, 0, 1, 0x0d, 1), {F1, F2, MR3}},
796 {"ldfp8.sa.nta", M2, OpMXX6aHint (6, 0, 1, 0x0d, 3), {F1, F2, MR3}},
797 {"ldfps.c.clr", M2, OpMXX6aHint (6, 0, 1, 0x22, 0), {F1, F2, MR3}},
798 {"ldfps.c.clr.nt1", M2, OpMXX6aHint (6, 0, 1, 0x22, 1), {F1, F2, MR3}},
799 {"ldfps.c.clr.nta", M2, OpMXX6aHint (6, 0, 1, 0x22, 3), {F1, F2, MR3}},
800 {"ldfpd.c.clr", M2, OpMXX6aHint (6, 0, 1, 0x23, 0), {F1, F2, MR3}},
801 {"ldfpd.c.clr.nt1", M2, OpMXX6aHint (6, 0, 1, 0x23, 1), {F1, F2, MR3}},
802 {"ldfpd.c.clr.nta", M2, OpMXX6aHint (6, 0, 1, 0x23, 3), {F1, F2, MR3}},
803 {"ldfp8.c.clr", M2, OpMXX6aHint (6, 0, 1, 0x21, 0), {F1, F2, MR3}},
804 {"ldfp8.c.clr.nt1", M2, OpMXX6aHint (6, 0, 1, 0x21, 1), {F1, F2, MR3}},
805 {"ldfp8.c.clr.nta", M2, OpMXX6aHint (6, 0, 1, 0x21, 3), {F1, F2, MR3}},
806 {"ldfps.c.nc", M2, OpMXX6aHint (6, 0, 1, 0x26, 0), {F1, F2, MR3}},
807 {"ldfps.c.nc.nt1", M2, OpMXX6aHint (6, 0, 1, 0x26, 1), {F1, F2, MR3}},
808 {"ldfps.c.nc.nta", M2, OpMXX6aHint (6, 0, 1, 0x26, 3), {F1, F2, MR3}},
809 {"ldfpd.c.nc", M2, OpMXX6aHint (6, 0, 1, 0x27, 0), {F1, F2, MR3}},
810 {"ldfpd.c.nc.nt1", M2, OpMXX6aHint (6, 0, 1, 0x27, 1), {F1, F2, MR3}},
811 {"ldfpd.c.nc.nta", M2, OpMXX6aHint (6, 0, 1, 0x27, 3), {F1, F2, MR3}},
812 {"ldfp8.c.nc", M2, OpMXX6aHint (6, 0, 1, 0x25, 0), {F1, F2, MR3}},
813 {"ldfp8.c.nc.nt1", M2, OpMXX6aHint (6, 0, 1, 0x25, 1), {F1, F2, MR3}},
814 {"ldfp8.c.nc.nta", M2, OpMXX6aHint (6, 0, 1, 0x25, 3), {F1, F2, MR3}},
816 /* floating-point load pair w/increment by immediate */
817 #define LD(a,b,c) M2, OpMXX6aHint (6, 1, 1, a, b), {F1, F2, MR3, c}, POSTINC
818 {"ldfps", LD (0x02, 0, C8)},
819 {"ldfps.nt1", LD (0x02, 1, C8)},
820 {"ldfps.nta", LD (0x02, 3, C8)},
821 {"ldfpd", LD (0x03, 0, C16)},
822 {"ldfpd.nt1", LD (0x03, 1, C16)},
823 {"ldfpd.nta", LD (0x03, 3, C16)},
824 {"ldfp8", LD (0x01, 0, C16)},
825 {"ldfp8.nt1", LD (0x01, 1, C16)},
826 {"ldfp8.nta", LD (0x01, 3, C16)},
827 {"ldfps.s", LD (0x06, 0, C8)},
828 {"ldfps.s.nt1", LD (0x06, 1, C8)},
829 {"ldfps.s.nta", LD (0x06, 3, C8)},
830 {"ldfpd.s", LD (0x07, 0, C16)},
831 {"ldfpd.s.nt1", LD (0x07, 1, C16)},
832 {"ldfpd.s.nta", LD (0x07, 3, C16)},
833 {"ldfp8.s", LD (0x05, 0, C16)},
834 {"ldfp8.s.nt1", LD (0x05, 1, C16)},
835 {"ldfp8.s.nta", LD (0x05, 3, C16)},
836 {"ldfps.a", LD (0x0a, 0, C8)},
837 {"ldfps.a.nt1", LD (0x0a, 1, C8)},
838 {"ldfps.a.nta", LD (0x0a, 3, C8)},
839 {"ldfpd.a", LD (0x0b, 0, C16)},
840 {"ldfpd.a.nt1", LD (0x0b, 1, C16)},
841 {"ldfpd.a.nta", LD (0x0b, 3, C16)},
842 {"ldfp8.a", LD (0x09, 0, C16)},
843 {"ldfp8.a.nt1", LD (0x09, 1, C16)},
844 {"ldfp8.a.nta", LD (0x09, 3, C16)},
845 {"ldfps.sa", LD (0x0e, 0, C8)},
846 {"ldfps.sa.nt1", LD (0x0e, 1, C8)},
847 {"ldfps.sa.nta", LD (0x0e, 3, C8)},
848 {"ldfpd.sa", LD (0x0f, 0, C16)},
849 {"ldfpd.sa.nt1", LD (0x0f, 1, C16)},
850 {"ldfpd.sa.nta", LD (0x0f, 3, C16)},
851 {"ldfp8.sa", LD (0x0d, 0, C16)},
852 {"ldfp8.sa.nt1", LD (0x0d, 1, C16)},
853 {"ldfp8.sa.nta", LD (0x0d, 3, C16)},
854 {"ldfps.c.clr", LD (0x22, 0, C8)},
855 {"ldfps.c.clr.nt1", LD (0x22, 1, C8)},
856 {"ldfps.c.clr.nta", LD (0x22, 3, C8)},
857 {"ldfpd.c.clr", LD (0x23, 0, C16)},
858 {"ldfpd.c.clr.nt1", LD (0x23, 1, C16)},
859 {"ldfpd.c.clr.nta", LD (0x23, 3, C16)},
860 {"ldfp8.c.clr", LD (0x21, 0, C16)},
861 {"ldfp8.c.clr.nt1", LD (0x21, 1, C16)},
862 {"ldfp8.c.clr.nta", LD (0x21, 3, C16)},
863 {"ldfps.c.nc", LD (0x26, 0, C8)},
864 {"ldfps.c.nc.nt1", LD (0x26, 1, C8)},
865 {"ldfps.c.nc.nta", LD (0x26, 3, C8)},
866 {"ldfpd.c.nc", LD (0x27, 0, C16)},
867 {"ldfpd.c.nc.nt1", LD (0x27, 1, C16)},
868 {"ldfpd.c.nc.nta", LD (0x27, 3, C16)},
869 {"ldfp8.c.nc", LD (0x25, 0, C16)},
870 {"ldfp8.c.nc.nt1", LD (0x25, 1, C16)},
871 {"ldfp8.c.nc.nta", LD (0x25, 3, C16)},
872 #undef LD
874 /* line prefetch */
875 {"lfetch", M0, OpMXX6aHint (6, 0, 0, 0x2c, 0), {MR3}},
876 {"lfetch.nt1", M0, OpMXX6aHint (6, 0, 0, 0x2c, 1), {MR3}},
877 {"lfetch.nt2", M0, OpMXX6aHint (6, 0, 0, 0x2c, 2), {MR3}},
878 {"lfetch.nta", M0, OpMXX6aHint (6, 0, 0, 0x2c, 3), {MR3}},
879 {"lfetch.excl", M0, OpMXX6aHint (6, 0, 0, 0x2d, 0), {MR3}},
880 {"lfetch.excl.nt1", M0, OpMXX6aHint (6, 0, 0, 0x2d, 1), {MR3}},
881 {"lfetch.excl.nt2", M0, OpMXX6aHint (6, 0, 0, 0x2d, 2), {MR3}},
882 {"lfetch.excl.nta", M0, OpMXX6aHint (6, 0, 0, 0x2d, 3), {MR3}},
883 {"lfetch.fault", M0, OpMXX6aHint (6, 0, 0, 0x2e, 0), {MR3}},
884 {"lfetch.fault.nt1", M0, OpMXX6aHint (6, 0, 0, 0x2e, 1), {MR3}},
885 {"lfetch.fault.nt2", M0, OpMXX6aHint (6, 0, 0, 0x2e, 2), {MR3}},
886 {"lfetch.fault.nta", M0, OpMXX6aHint (6, 0, 0, 0x2e, 3), {MR3}},
887 {"lfetch.fault.excl", M0, OpMXX6aHint (6, 0, 0, 0x2f, 0), {MR3}},
888 {"lfetch.fault.excl.nt1", M0, OpMXX6aHint (6, 0, 0, 0x2f, 1), {MR3}},
889 {"lfetch.fault.excl.nt2", M0, OpMXX6aHint (6, 0, 0, 0x2f, 2), {MR3}},
890 {"lfetch.fault.excl.nta", M0, OpMXX6aHint (6, 0, 0, 0x2f, 3), {MR3}},
892 /* line prefetch w/increment by register */
893 #define LFETCHINCREG(c,h) M0, OpMXX6aHint (6, 1, 0, c, h), {MR3, R2}, POSTINC
894 {"lfetch", LFETCHINCREG (0x2c, 0)},
895 {"lfetch.nt1", LFETCHINCREG (0x2c, 1)},
896 {"lfetch.nt2", LFETCHINCREG (0x2c, 2)},
897 {"lfetch.nta", LFETCHINCREG (0x2c, 3)},
898 {"lfetch.excl", LFETCHINCREG (0x2d, 0)},
899 {"lfetch.excl.nt1", LFETCHINCREG (0x2d, 1)},
900 {"lfetch.excl.nt2", LFETCHINCREG (0x2d, 2)},
901 {"lfetch.excl.nta", LFETCHINCREG (0x2d, 3)},
902 {"lfetch.fault", LFETCHINCREG (0x2e, 0)},
903 {"lfetch.fault.nt1", LFETCHINCREG (0x2e, 1)},
904 {"lfetch.fault.nt2", LFETCHINCREG (0x2e, 2)},
905 {"lfetch.fault.nta", LFETCHINCREG (0x2e, 3)},
906 {"lfetch.fault.excl", LFETCHINCREG (0x2f, 0)},
907 {"lfetch.fault.excl.nt1", LFETCHINCREG (0x2f, 1)},
908 {"lfetch.fault.excl.nt2", LFETCHINCREG (0x2f, 2)},
909 {"lfetch.fault.excl.nta", LFETCHINCREG (0x2f, 3)},
910 #undef LFETCHINCREG
912 /* semaphore operations */
913 {"setf.sig", M, OpMXX6a (6, 0, 1, 0x1c), {F1, R2}},
914 {"setf.exp", M, OpMXX6a (6, 0, 1, 0x1d), {F1, R2}},
915 {"setf.s", M, OpMXX6a (6, 0, 1, 0x1e), {F1, R2}},
916 {"setf.d", M, OpMXX6a (6, 0, 1, 0x1f), {F1, R2}},
918 /* floating-point load w/increment by immediate */
919 #define FLDINCIMMED(c,h) M, OpX6aHint (7, c, h), {F1, MR3, IMM9b}, POSTINC
920 {"ldfs", FLDINCIMMED (0x02, 0)},
921 {"ldfs.nt1", FLDINCIMMED (0x02, 1)},
922 {"ldfs.nta", FLDINCIMMED (0x02, 3)},
923 {"ldfd", FLDINCIMMED (0x03, 0)},
924 {"ldfd.nt1", FLDINCIMMED (0x03, 1)},
925 {"ldfd.nta", FLDINCIMMED (0x03, 3)},
926 {"ldf8", FLDINCIMMED (0x01, 0)},
927 {"ldf8.nt1", FLDINCIMMED (0x01, 1)},
928 {"ldf8.nta", FLDINCIMMED (0x01, 3)},
929 {"ldfe", FLDINCIMMED (0x00, 0)},
930 {"ldfe.nt1", FLDINCIMMED (0x00, 1)},
931 {"ldfe.nta", FLDINCIMMED (0x00, 3)},
932 {"ldfs.s", FLDINCIMMED (0x06, 0)},
933 {"ldfs.s.nt1", FLDINCIMMED (0x06, 1)},
934 {"ldfs.s.nta", FLDINCIMMED (0x06, 3)},
935 {"ldfd.s", FLDINCIMMED (0x07, 0)},
936 {"ldfd.s.nt1", FLDINCIMMED (0x07, 1)},
937 {"ldfd.s.nta", FLDINCIMMED (0x07, 3)},
938 {"ldf8.s", FLDINCIMMED (0x05, 0)},
939 {"ldf8.s.nt1", FLDINCIMMED (0x05, 1)},
940 {"ldf8.s.nta", FLDINCIMMED (0x05, 3)},
941 {"ldfe.s", FLDINCIMMED (0x04, 0)},
942 {"ldfe.s.nt1", FLDINCIMMED (0x04, 1)},
943 {"ldfe.s.nta", FLDINCIMMED (0x04, 3)},
944 {"ldfs.a", FLDINCIMMED (0x0a, 0)},
945 {"ldfs.a.nt1", FLDINCIMMED (0x0a, 1)},
946 {"ldfs.a.nta", FLDINCIMMED (0x0a, 3)},
947 {"ldfd.a", FLDINCIMMED (0x0b, 0)},
948 {"ldfd.a.nt1", FLDINCIMMED (0x0b, 1)},
949 {"ldfd.a.nta", FLDINCIMMED (0x0b, 3)},
950 {"ldf8.a", FLDINCIMMED (0x09, 0)},
951 {"ldf8.a.nt1", FLDINCIMMED (0x09, 1)},
952 {"ldf8.a.nta", FLDINCIMMED (0x09, 3)},
953 {"ldfe.a", FLDINCIMMED (0x08, 0)},
954 {"ldfe.a.nt1", FLDINCIMMED (0x08, 1)},
955 {"ldfe.a.nta", FLDINCIMMED (0x08, 3)},
956 {"ldfs.sa", FLDINCIMMED (0x0e, 0)},
957 {"ldfs.sa.nt1", FLDINCIMMED (0x0e, 1)},
958 {"ldfs.sa.nta", FLDINCIMMED (0x0e, 3)},
959 {"ldfd.sa", FLDINCIMMED (0x0f, 0)},
960 {"ldfd.sa.nt1", FLDINCIMMED (0x0f, 1)},
961 {"ldfd.sa.nta", FLDINCIMMED (0x0f, 3)},
962 {"ldf8.sa", FLDINCIMMED (0x0d, 0)},
963 {"ldf8.sa.nt1", FLDINCIMMED (0x0d, 1)},
964 {"ldf8.sa.nta", FLDINCIMMED (0x0d, 3)},
965 {"ldfe.sa", FLDINCIMMED (0x0c, 0)},
966 {"ldfe.sa.nt1", FLDINCIMMED (0x0c, 1)},
967 {"ldfe.sa.nta", FLDINCIMMED (0x0c, 3)},
968 {"ldf.fill", FLDINCIMMED (0x1b, 0)},
969 {"ldf.fill.nt1", FLDINCIMMED (0x1b, 1)},
970 {"ldf.fill.nta", FLDINCIMMED (0x1b, 3)},
971 {"ldfs.c.clr", FLDINCIMMED (0x22, 0)},
972 {"ldfs.c.clr.nt1", FLDINCIMMED (0x22, 1)},
973 {"ldfs.c.clr.nta", FLDINCIMMED (0x22, 3)},
974 {"ldfd.c.clr", FLDINCIMMED (0x23, 0)},
975 {"ldfd.c.clr.nt1", FLDINCIMMED (0x23, 1)},
976 {"ldfd.c.clr.nta", FLDINCIMMED (0x23, 3)},
977 {"ldf8.c.clr", FLDINCIMMED (0x21, 0)},
978 {"ldf8.c.clr.nt1", FLDINCIMMED (0x21, 1)},
979 {"ldf8.c.clr.nta", FLDINCIMMED (0x21, 3)},
980 {"ldfe.c.clr", FLDINCIMMED (0x20, 0)},
981 {"ldfe.c.clr.nt1", FLDINCIMMED (0x20, 1)},
982 {"ldfe.c.clr.nta", FLDINCIMMED (0x20, 3)},
983 {"ldfs.c.nc", FLDINCIMMED (0x26, 0)},
984 {"ldfs.c.nc.nt1", FLDINCIMMED (0x26, 1)},
985 {"ldfs.c.nc.nta", FLDINCIMMED (0x26, 3)},
986 {"ldfd.c.nc", FLDINCIMMED (0x27, 0)},
987 {"ldfd.c.nc.nt1", FLDINCIMMED (0x27, 1)},
988 {"ldfd.c.nc.nta", FLDINCIMMED (0x27, 3)},
989 {"ldf8.c.nc", FLDINCIMMED (0x25, 0)},
990 {"ldf8.c.nc.nt1", FLDINCIMMED (0x25, 1)},
991 {"ldf8.c.nc.nta", FLDINCIMMED (0x25, 3)},
992 {"ldfe.c.nc", FLDINCIMMED (0x24, 0)},
993 {"ldfe.c.nc.nt1", FLDINCIMMED (0x24, 1)},
994 {"ldfe.c.nc.nta", FLDINCIMMED (0x24, 3)},
995 #undef FLDINCIMMED
997 /* floating-point store w/increment by immediate */
998 #define FSTINCIMMED(c,h) M, OpX6aHint (7, c, h), {MR3, F2, IMM9a}, POSTINC
999 {"stfs", FSTINCIMMED (0x32, 0)},
1000 {"stfs.nta", FSTINCIMMED (0x32, 3)},
1001 {"stfd", FSTINCIMMED (0x33, 0)},
1002 {"stfd.nta", FSTINCIMMED (0x33, 3)},
1003 {"stf8", FSTINCIMMED (0x31, 0)},
1004 {"stf8.nta", FSTINCIMMED (0x31, 3)},
1005 {"stfe", FSTINCIMMED (0x30, 0)},
1006 {"stfe.nta", FSTINCIMMED (0x30, 3)},
1007 {"stf.spill", FSTINCIMMED (0x3b, 0)},
1008 {"stf.spill.nta", FSTINCIMMED (0x3b, 3)},
1009 #undef FSTINCIMMED
1011 /* line prefetch w/increment by immediate */
1012 #define LFETCHINCIMMED(c,h) M0, OpX6aHint (7, c, h), {MR3, IMM9b}, POSTINC
1013 {"lfetch", LFETCHINCIMMED (0x2c, 0)},
1014 {"lfetch.nt1", LFETCHINCIMMED (0x2c, 1)},
1015 {"lfetch.nt2", LFETCHINCIMMED (0x2c, 2)},
1016 {"lfetch.nta", LFETCHINCIMMED (0x2c, 3)},
1017 {"lfetch.excl", LFETCHINCIMMED (0x2d, 0)},
1018 {"lfetch.excl.nt1", LFETCHINCIMMED (0x2d, 1)},
1019 {"lfetch.excl.nt2", LFETCHINCIMMED (0x2d, 2)},
1020 {"lfetch.excl.nta", LFETCHINCIMMED (0x2d, 3)},
1021 {"lfetch.fault", LFETCHINCIMMED (0x2e, 0)},
1022 {"lfetch.fault.nt1", LFETCHINCIMMED (0x2e, 1)},
1023 {"lfetch.fault.nt2", LFETCHINCIMMED (0x2e, 2)},
1024 {"lfetch.fault.nta", LFETCHINCIMMED (0x2e, 3)},
1025 {"lfetch.fault.excl", LFETCHINCIMMED (0x2f, 0)},
1026 {"lfetch.fault.excl.nt1", LFETCHINCIMMED (0x2f, 1)},
1027 {"lfetch.fault.excl.nt2", LFETCHINCIMMED (0x2f, 2)},
1028 {"lfetch.fault.excl.nta", LFETCHINCIMMED (0x2f, 3)},
1029 #undef LFETCHINCIMMED
1034 #undef M0
1035 #undef M
1036 #undef M2
1037 #undef bM
1038 #undef bX
1039 #undef bX2
1040 #undef bX3
1041 #undef bX4
1042 #undef bX6a
1043 #undef bX6b
1044 #undef bHint
1045 #undef mM
1046 #undef mX
1047 #undef mX2
1048 #undef mX3
1049 #undef mX4
1050 #undef mX6a
1051 #undef mX6b
1052 #undef mHint
1053 #undef OpX3
1054 #undef OpX3X6b
1055 #undef OpX3X4
1056 #undef OpX3X4X2
1057 #undef OpX6aHint
1058 #undef OpXX6aHint
1059 #undef OpMXX6a
1060 #undef OpMXX6aHint