This commit was generated by cvs2svn to track changes on a CVS vendor
[platform/upstream/binutils.git] / opcodes / ia64-opc-m.c
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>
4
5    This file is part of GDB, GAS, and the GNU binutils.
6
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.
11
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.
16
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.  */
21
22 #include "ia64-opc.h"
23
24 #define M0      IA64_TYPE_M, 0
25 #define M       IA64_TYPE_M, 1
26 #define M2      IA64_TYPE_M, 2
27
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)
37
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)
46
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)
63
64 struct ia64_opcode ia64_opcodes_m[] =
65   {
66     /* M-type instruction encodings (sorted according to major opcode) */
67
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}},
72
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}},
85
86     {"break.m",         M0, OpX3X4X2 (0, 0, 0, 0), {IMMU21}},
87     {"nop.m",           M0, OpX3X4X2 (0, 0, 1, 0), {IMMU21}},
88
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},
93
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},
98
99     {"alloc",   M, OpX3 (1, 6), {R1, AR_PFS, SOF, SOL, SOR}, FIRST|NO_PRED|MOD_RRBS},
100
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},
114
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},
124
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}},
133
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},
139
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},
144
145     {"chk.s.m", M0, OpX3 (1, 1), {R2, TGT25b}},
146     {"chk.s",   M0, OpX3 (1, 3), {F2, TGT25b}},
147
148     {"fc",      M0, OpX3X6b (1, 0, 0x30), {R3}},
149     {"ptc.e",   M0, OpX3X6b (1, 0, 0x34), {R3}, PRIV},
150
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}},
263
264     /* integer load w/increment by register */
265     {"ld1",             M, OpMXX6aHint (4, 1, 0, 0x00, 0), {R1, MR3, R2}},
266     {"ld1.nt1",         M, OpMXX6aHint (4, 1, 0, 0x00, 1), {R1, MR3, R2}},
267     {"ld1.nta",         M, OpMXX6aHint (4, 1, 0, 0x00, 3), {R1, MR3, R2}},
268     {"ld2",             M, OpMXX6aHint (4, 1, 0, 0x01, 0), {R1, MR3, R2}},
269     {"ld2.nt1",         M, OpMXX6aHint (4, 1, 0, 0x01, 1), {R1, MR3, R2}},
270     {"ld2.nta",         M, OpMXX6aHint (4, 1, 0, 0x01, 3), {R1, MR3, R2}},
271     {"ld4",             M, OpMXX6aHint (4, 1, 0, 0x02, 0), {R1, MR3, R2}},
272     {"ld4.nt1",         M, OpMXX6aHint (4, 1, 0, 0x02, 1), {R1, MR3, R2}},
273     {"ld4.nta",         M, OpMXX6aHint (4, 1, 0, 0x02, 3), {R1, MR3, R2}},
274     {"ld8",             M, OpMXX6aHint (4, 1, 0, 0x03, 0), {R1, MR3, R2}},
275     {"ld8.nt1",         M, OpMXX6aHint (4, 1, 0, 0x03, 1), {R1, MR3, R2}},
276     {"ld8.nta",         M, OpMXX6aHint (4, 1, 0, 0x03, 3), {R1, MR3, R2}},
277     {"ld1.s",           M, OpMXX6aHint (4, 1, 0, 0x04, 0), {R1, MR3, R2}},
278     {"ld1.s.nt1",       M, OpMXX6aHint (4, 1, 0, 0x04, 1), {R1, MR3, R2}},
279     {"ld1.s.nta",       M, OpMXX6aHint (4, 1, 0, 0x04, 3), {R1, MR3, R2}},
280     {"ld2.s",           M, OpMXX6aHint (4, 1, 0, 0x05, 0), {R1, MR3, R2}},
281     {"ld2.s.nt1",       M, OpMXX6aHint (4, 1, 0, 0x05, 1), {R1, MR3, R2}},
282     {"ld2.s.nta",       M, OpMXX6aHint (4, 1, 0, 0x05, 3), {R1, MR3, R2}},
283     {"ld4.s",           M, OpMXX6aHint (4, 1, 0, 0x06, 0), {R1, MR3, R2}},
284     {"ld4.s.nt1",       M, OpMXX6aHint (4, 1, 0, 0x06, 1), {R1, MR3, R2}},
285     {"ld4.s.nta",       M, OpMXX6aHint (4, 1, 0, 0x06, 3), {R1, MR3, R2}},
286     {"ld8.s",           M, OpMXX6aHint (4, 1, 0, 0x07, 0), {R1, MR3, R2}},
287     {"ld8.s.nt1",       M, OpMXX6aHint (4, 1, 0, 0x07, 1), {R1, MR3, R2}},
288     {"ld8.s.nta",       M, OpMXX6aHint (4, 1, 0, 0x07, 3), {R1, MR3, R2}},
289     {"ld1.a",           M, OpMXX6aHint (4, 1, 0, 0x08, 0), {R1, MR3, R2}},
290     {"ld1.a.nt1",       M, OpMXX6aHint (4, 1, 0, 0x08, 1), {R1, MR3, R2}},
291     {"ld1.a.nta",       M, OpMXX6aHint (4, 1, 0, 0x08, 3), {R1, MR3, R2}},
292     {"ld2.a",           M, OpMXX6aHint (4, 1, 0, 0x09, 0), {R1, MR3, R2}},
293     {"ld2.a.nt1",       M, OpMXX6aHint (4, 1, 0, 0x09, 1), {R1, MR3, R2}},
294     {"ld2.a.nta",       M, OpMXX6aHint (4, 1, 0, 0x09, 3), {R1, MR3, R2}},
295     {"ld4.a",           M, OpMXX6aHint (4, 1, 0, 0x0a, 0), {R1, MR3, R2}},
296     {"ld4.a.nt1",       M, OpMXX6aHint (4, 1, 0, 0x0a, 1), {R1, MR3, R2}},
297     {"ld4.a.nta",       M, OpMXX6aHint (4, 1, 0, 0x0a, 3), {R1, MR3, R2}},
298     {"ld8.a",           M, OpMXX6aHint (4, 1, 0, 0x0b, 0), {R1, MR3, R2}},
299     {"ld8.a.nt1",       M, OpMXX6aHint (4, 1, 0, 0x0b, 1), {R1, MR3, R2}},
300     {"ld8.a.nta",       M, OpMXX6aHint (4, 1, 0, 0x0b, 3), {R1, MR3, R2}},
301     {"ld1.sa",          M, OpMXX6aHint (4, 1, 0, 0x0c, 0), {R1, MR3, R2}},
302     {"ld1.sa.nt1",      M, OpMXX6aHint (4, 1, 0, 0x0c, 1), {R1, MR3, R2}},
303     {"ld1.sa.nta",      M, OpMXX6aHint (4, 1, 0, 0x0c, 3), {R1, MR3, R2}},
304     {"ld2.sa",          M, OpMXX6aHint (4, 1, 0, 0x0d, 0), {R1, MR3, R2}},
305     {"ld2.sa.nt1",      M, OpMXX6aHint (4, 1, 0, 0x0d, 1), {R1, MR3, R2}},
306     {"ld2.sa.nta",      M, OpMXX6aHint (4, 1, 0, 0x0d, 3), {R1, MR3, R2}},
307     {"ld4.sa",          M, OpMXX6aHint (4, 1, 0, 0x0e, 0), {R1, MR3, R2}},
308     {"ld4.sa.nt1",      M, OpMXX6aHint (4, 1, 0, 0x0e, 1), {R1, MR3, R2}},
309     {"ld4.sa.nta",      M, OpMXX6aHint (4, 1, 0, 0x0e, 3), {R1, MR3, R2}},
310     {"ld8.sa",          M, OpMXX6aHint (4, 1, 0, 0x0f, 0), {R1, MR3, R2}},
311     {"ld8.sa.nt1",      M, OpMXX6aHint (4, 1, 0, 0x0f, 1), {R1, MR3, R2}},
312     {"ld8.sa.nta",      M, OpMXX6aHint (4, 1, 0, 0x0f, 3), {R1, MR3, R2}},
313     {"ld1.bias",        M, OpMXX6aHint (4, 1, 0, 0x10, 0), {R1, MR3, R2}},
314     {"ld1.bias.nt1",    M, OpMXX6aHint (4, 1, 0, 0x10, 1), {R1, MR3, R2}},
315     {"ld1.bias.nta",    M, OpMXX6aHint (4, 1, 0, 0x10, 3), {R1, MR3, R2}},
316     {"ld2.bias",        M, OpMXX6aHint (4, 1, 0, 0x11, 0), {R1, MR3, R2}},
317     {"ld2.bias.nt1",    M, OpMXX6aHint (4, 1, 0, 0x11, 1), {R1, MR3, R2}},
318     {"ld2.bias.nta",    M, OpMXX6aHint (4, 1, 0, 0x11, 3), {R1, MR3, R2}},
319     {"ld4.bias",        M, OpMXX6aHint (4, 1, 0, 0x12, 0), {R1, MR3, R2}},
320     {"ld4.bias.nt1",    M, OpMXX6aHint (4, 1, 0, 0x12, 1), {R1, MR3, R2}},
321     {"ld4.bias.nta",    M, OpMXX6aHint (4, 1, 0, 0x12, 3), {R1, MR3, R2}},
322     {"ld8.bias",        M, OpMXX6aHint (4, 1, 0, 0x13, 0), {R1, MR3, R2}},
323     {"ld8.bias.nt1",    M, OpMXX6aHint (4, 1, 0, 0x13, 1), {R1, MR3, R2}},
324     {"ld8.bias.nta",    M, OpMXX6aHint (4, 1, 0, 0x13, 3), {R1, MR3, R2}},
325     {"ld1.acq",         M, OpMXX6aHint (4, 1, 0, 0x14, 0), {R1, MR3, R2}},
326     {"ld1.acq.nt1",     M, OpMXX6aHint (4, 1, 0, 0x14, 1), {R1, MR3, R2}},
327     {"ld1.acq.nta",     M, OpMXX6aHint (4, 1, 0, 0x14, 3), {R1, MR3, R2}},
328     {"ld2.acq",         M, OpMXX6aHint (4, 1, 0, 0x15, 0), {R1, MR3, R2}},
329     {"ld2.acq.nt1",     M, OpMXX6aHint (4, 1, 0, 0x15, 1), {R1, MR3, R2}},
330     {"ld2.acq.nta",     M, OpMXX6aHint (4, 1, 0, 0x15, 3), {R1, MR3, R2}},
331     {"ld4.acq",         M, OpMXX6aHint (4, 1, 0, 0x16, 0), {R1, MR3, R2}},
332     {"ld4.acq.nt1",     M, OpMXX6aHint (4, 1, 0, 0x16, 1), {R1, MR3, R2}},
333     {"ld4.acq.nta",     M, OpMXX6aHint (4, 1, 0, 0x16, 3), {R1, MR3, R2}},
334     {"ld8.acq",         M, OpMXX6aHint (4, 1, 0, 0x17, 0), {R1, MR3, R2}},
335     {"ld8.acq.nt1",     M, OpMXX6aHint (4, 1, 0, 0x17, 1), {R1, MR3, R2}},
336     {"ld8.acq.nta",     M, OpMXX6aHint (4, 1, 0, 0x17, 3), {R1, MR3, R2}},
337     {"ld8.fill",        M, OpMXX6aHint (4, 1, 0, 0x1b, 0), {R1, MR3, R2}},
338     {"ld8.fill.nt1",    M, OpMXX6aHint (4, 1, 0, 0x1b, 1), {R1, MR3, R2}},
339     {"ld8.fill.nta",    M, OpMXX6aHint (4, 1, 0, 0x1b, 3), {R1, MR3, R2}},
340     {"ld1.c.clr",       M, OpMXX6aHint (4, 1, 0, 0x20, 0), {R1, MR3, R2}},
341     {"ld1.c.clr.nt1",   M, OpMXX6aHint (4, 1, 0, 0x20, 1), {R1, MR3, R2}},
342     {"ld1.c.clr.nta",   M, OpMXX6aHint (4, 1, 0, 0x20, 3), {R1, MR3, R2}},
343     {"ld2.c.clr",       M, OpMXX6aHint (4, 1, 0, 0x21, 0), {R1, MR3, R2}},
344     {"ld2.c.clr.nt1",   M, OpMXX6aHint (4, 1, 0, 0x21, 1), {R1, MR3, R2}},
345     {"ld2.c.clr.nta",   M, OpMXX6aHint (4, 1, 0, 0x21, 3), {R1, MR3, R2}},
346     {"ld4.c.clr",       M, OpMXX6aHint (4, 1, 0, 0x22, 0), {R1, MR3, R2}},
347     {"ld4.c.clr.nt1",   M, OpMXX6aHint (4, 1, 0, 0x22, 1), {R1, MR3, R2}},
348     {"ld4.c.clr.nta",   M, OpMXX6aHint (4, 1, 0, 0x22, 3), {R1, MR3, R2}},
349     {"ld8.c.clr",       M, OpMXX6aHint (4, 1, 0, 0x23, 0), {R1, MR3, R2}},
350     {"ld8.c.clr.nt1",   M, OpMXX6aHint (4, 1, 0, 0x23, 1), {R1, MR3, R2}},
351     {"ld8.c.clr.nta",   M, OpMXX6aHint (4, 1, 0, 0x23, 3), {R1, MR3, R2}},
352     {"ld1.c.nc",        M, OpMXX6aHint (4, 1, 0, 0x24, 0), {R1, MR3, R2}},
353     {"ld1.c.nc.nt1",    M, OpMXX6aHint (4, 1, 0, 0x24, 1), {R1, MR3, R2}},
354     {"ld1.c.nc.nta",    M, OpMXX6aHint (4, 1, 0, 0x24, 3), {R1, MR3, R2}},
355     {"ld2.c.nc",        M, OpMXX6aHint (4, 1, 0, 0x25, 0), {R1, MR3, R2}},
356     {"ld2.c.nc.nt1",    M, OpMXX6aHint (4, 1, 0, 0x25, 1), {R1, MR3, R2}},
357     {"ld2.c.nc.nta",    M, OpMXX6aHint (4, 1, 0, 0x25, 3), {R1, MR3, R2}},
358     {"ld4.c.nc",        M, OpMXX6aHint (4, 1, 0, 0x26, 0), {R1, MR3, R2}},
359     {"ld4.c.nc.nt1",    M, OpMXX6aHint (4, 1, 0, 0x26, 1), {R1, MR3, R2}},
360     {"ld4.c.nc.nta",    M, OpMXX6aHint (4, 1, 0, 0x26, 3), {R1, MR3, R2}},
361     {"ld8.c.nc",        M, OpMXX6aHint (4, 1, 0, 0x27, 0), {R1, MR3, R2}},
362     {"ld8.c.nc.nt1",    M, OpMXX6aHint (4, 1, 0, 0x27, 1), {R1, MR3, R2}},
363     {"ld8.c.nc.nta",    M, OpMXX6aHint (4, 1, 0, 0x27, 3), {R1, MR3, R2}},
364     {"ld1.c.clr.acq",     M, OpMXX6aHint (4, 1, 0, 0x28, 0), {R1, MR3, R2}},
365     {"ld1.c.clr.acq.nt1", M, OpMXX6aHint (4, 1, 0, 0x28, 1), {R1, MR3, R2}},
366     {"ld1.c.clr.acq.nta", M, OpMXX6aHint (4, 1, 0, 0x28, 3), {R1, MR3, R2}},
367     {"ld2.c.clr.acq",     M, OpMXX6aHint (4, 1, 0, 0x29, 0), {R1, MR3, R2}},
368     {"ld2.c.clr.acq.nt1", M, OpMXX6aHint (4, 1, 0, 0x29, 1), {R1, MR3, R2}},
369     {"ld2.c.clr.acq.nta", M, OpMXX6aHint (4, 1, 0, 0x29, 3), {R1, MR3, R2}},
370     {"ld4.c.clr.acq",     M, OpMXX6aHint (4, 1, 0, 0x2a, 0), {R1, MR3, R2}},
371     {"ld4.c.clr.acq.nt1", M, OpMXX6aHint (4, 1, 0, 0x2a, 1), {R1, MR3, R2}},
372     {"ld4.c.clr.acq.nta", M, OpMXX6aHint (4, 1, 0, 0x2a, 3), {R1, MR3, R2}},
373     {"ld8.c.clr.acq",     M, OpMXX6aHint (4, 1, 0, 0x2b, 0), {R1, MR3, R2}},
374     {"ld8.c.clr.acq.nt1", M, OpMXX6aHint (4, 1, 0, 0x2b, 1), {R1, MR3, R2}},
375     {"ld8.c.clr.acq.nta", M, OpMXX6aHint (4, 1, 0, 0x2b, 3), {R1, MR3, R2}},
376
377     {"st1",             M, OpMXX6aHint (4, 0, 0, 0x30, 0), {MR3, R2}},
378     {"st1.nta",         M, OpMXX6aHint (4, 0, 0, 0x30, 3), {MR3, R2}},
379     {"st2",             M, OpMXX6aHint (4, 0, 0, 0x31, 0), {MR3, R2}},
380     {"st2.nta",         M, OpMXX6aHint (4, 0, 0, 0x31, 3), {MR3, R2}},
381     {"st4",             M, OpMXX6aHint (4, 0, 0, 0x32, 0), {MR3, R2}},
382     {"st4.nta",         M, OpMXX6aHint (4, 0, 0, 0x32, 3), {MR3, R2}},
383     {"st8",             M, OpMXX6aHint (4, 0, 0, 0x33, 0), {MR3, R2}},
384     {"st8.nta",         M, OpMXX6aHint (4, 0, 0, 0x33, 3), {MR3, R2}},
385     {"st1.rel",         M, OpMXX6aHint (4, 0, 0, 0x34, 0), {MR3, R2}},
386     {"st1.rel.nta",     M, OpMXX6aHint (4, 0, 0, 0x34, 3), {MR3, R2}},
387     {"st2.rel",         M, OpMXX6aHint (4, 0, 0, 0x35, 0), {MR3, R2}},
388     {"st2.rel.nta",     M, OpMXX6aHint (4, 0, 0, 0x35, 3), {MR3, R2}},
389     {"st4.rel",         M, OpMXX6aHint (4, 0, 0, 0x36, 0), {MR3, R2}},
390     {"st4.rel.nta",     M, OpMXX6aHint (4, 0, 0, 0x36, 3), {MR3, R2}},
391     {"st8.rel",         M, OpMXX6aHint (4, 0, 0, 0x37, 0), {MR3, R2}},
392     {"st8.rel.nta",     M, OpMXX6aHint (4, 0, 0, 0x37, 3), {MR3, R2}},
393     {"st8.spill",       M, OpMXX6aHint (4, 0, 0, 0x3b, 0), {MR3, R2}},
394     {"st8.spill.nta",   M, OpMXX6aHint (4, 0, 0, 0x3b, 3), {MR3, R2}},
395
396 #define CMPXCHG(c,h)    M, OpMXX6aHint (4, 0, 1, c, h), {R1, MR3, R2, AR_CCV}
397     {"cmpxchg1.acq",            CMPXCHG (0x00, 0)},
398     {"cmpxchg1.acq.nt1",        CMPXCHG (0x00, 1)},
399     {"cmpxchg1.acq.nta",        CMPXCHG (0x00, 3)},
400     {"cmpxchg2.acq",            CMPXCHG (0x01, 0)},
401     {"cmpxchg2.acq.nt1",        CMPXCHG (0x01, 1)},
402     {"cmpxchg2.acq.nta",        CMPXCHG (0x01, 3)},
403     {"cmpxchg4.acq",            CMPXCHG (0x02, 0)},
404     {"cmpxchg4.acq.nt1",        CMPXCHG (0x02, 1)},
405     {"cmpxchg4.acq.nta",        CMPXCHG (0x02, 3)},
406     {"cmpxchg8.acq",            CMPXCHG (0x03, 0)},
407     {"cmpxchg8.acq.nt1",        CMPXCHG (0x03, 1)},
408     {"cmpxchg8.acq.nta",        CMPXCHG (0x03, 3)},
409     {"cmpxchg1.rel",            CMPXCHG (0x04, 0)},
410     {"cmpxchg1.rel.nt1",        CMPXCHG (0x04, 1)},
411     {"cmpxchg1.rel.nta",        CMPXCHG (0x04, 3)},
412     {"cmpxchg2.rel",            CMPXCHG (0x05, 0)},
413     {"cmpxchg2.rel.nt1",        CMPXCHG (0x05, 1)},
414     {"cmpxchg2.rel.nta",        CMPXCHG (0x05, 3)},
415     {"cmpxchg4.rel",            CMPXCHG (0x06, 0)},
416     {"cmpxchg4.rel.nt1",        CMPXCHG (0x06, 1)},
417     {"cmpxchg4.rel.nta",        CMPXCHG (0x06, 3)},
418     {"cmpxchg8.rel",            CMPXCHG (0x07, 0)},
419     {"cmpxchg8.rel.nt1",        CMPXCHG (0x07, 1)},
420     {"cmpxchg8.rel.nta",        CMPXCHG (0x07, 3)},
421 #undef CMPXCHG
422     {"xchg1",             M, OpMXX6aHint (4, 0, 1, 0x08, 0), {R1, MR3, R2}},
423     {"xchg1.nt1",         M, OpMXX6aHint (4, 0, 1, 0x08, 1), {R1, MR3, R2}},
424     {"xchg1.nta",         M, OpMXX6aHint (4, 0, 1, 0x08, 3), {R1, MR3, R2}},
425     {"xchg2",             M, OpMXX6aHint (4, 0, 1, 0x09, 0), {R1, MR3, R2}},
426     {"xchg2.nt1",         M, OpMXX6aHint (4, 0, 1, 0x09, 1), {R1, MR3, R2}},
427     {"xchg2.nta",         M, OpMXX6aHint (4, 0, 1, 0x09, 3), {R1, MR3, R2}},
428     {"xchg4",             M, OpMXX6aHint (4, 0, 1, 0x0a, 0), {R1, MR3, R2}},
429     {"xchg4.nt1",         M, OpMXX6aHint (4, 0, 1, 0x0a, 1), {R1, MR3, R2}},
430     {"xchg4.nta",         M, OpMXX6aHint (4, 0, 1, 0x0a, 3), {R1, MR3, R2}},
431     {"xchg8",             M, OpMXX6aHint (4, 0, 1, 0x0b, 0), {R1, MR3, R2}},
432     {"xchg8.nt1",         M, OpMXX6aHint (4, 0, 1, 0x0b, 1), {R1, MR3, R2}},
433     {"xchg8.nta",         M, OpMXX6aHint (4, 0, 1, 0x0b, 3), {R1, MR3, R2}},
434
435     {"fetchadd4.acq",     M, OpMXX6aHint (4, 0, 1, 0x12, 0), {R1, MR3, INC3}},
436     {"fetchadd4.acq.nt1", M, OpMXX6aHint (4, 0, 1, 0x12, 1), {R1, MR3, INC3}},
437     {"fetchadd4.acq.nta", M, OpMXX6aHint (4, 0, 1, 0x12, 3), {R1, MR3, INC3}},
438     {"fetchadd8.acq",     M, OpMXX6aHint (4, 0, 1, 0x13, 0), {R1, MR3, INC3}},
439     {"fetchadd8.acq.nt1", M, OpMXX6aHint (4, 0, 1, 0x13, 1), {R1, MR3, INC3}},
440     {"fetchadd8.acq.nta", M, OpMXX6aHint (4, 0, 1, 0x13, 3), {R1, MR3, INC3}},
441     {"fetchadd4.rel",     M, OpMXX6aHint (4, 0, 1, 0x16, 0), {R1, MR3, INC3}},
442     {"fetchadd4.rel.nt1", M, OpMXX6aHint (4, 0, 1, 0x16, 1), {R1, MR3, INC3}},
443     {"fetchadd4.rel.nta", M, OpMXX6aHint (4, 0, 1, 0x16, 3), {R1, MR3, INC3}},
444     {"fetchadd8.rel",     M, OpMXX6aHint (4, 0, 1, 0x17, 0), {R1, MR3, INC3}},
445     {"fetchadd8.rel.nt1", M, OpMXX6aHint (4, 0, 1, 0x17, 1), {R1, MR3, INC3}},
446     {"fetchadd8.rel.nta", M, OpMXX6aHint (4, 0, 1, 0x17, 3), {R1, MR3, INC3}},
447
448     {"getf.sig",          M, OpMXX6a (4, 0, 1, 0x1c), {R1, F2}},
449     {"getf.exp",          M, OpMXX6a (4, 0, 1, 0x1d), {R1, F2}},
450     {"getf.s",            M, OpMXX6a (4, 0, 1, 0x1e), {R1, F2}},
451     {"getf.d",            M, OpMXX6a (4, 0, 1, 0x1f), {R1, F2}},
452
453     /* integer load w/increment by immediate */
454     {"ld1",             M, OpX6aHint (5, 0x00, 0), {R1, MR3, IMM9b}},
455     {"ld1.nt1",         M, OpX6aHint (5, 0x00, 1), {R1, MR3, IMM9b}},
456     {"ld1.nta",         M, OpX6aHint (5, 0x00, 3), {R1, MR3, IMM9b}},
457     {"ld2",             M, OpX6aHint (5, 0x01, 0), {R1, MR3, IMM9b}},
458     {"ld2.nt1",         M, OpX6aHint (5, 0x01, 1), {R1, MR3, IMM9b}},
459     {"ld2.nta",         M, OpX6aHint (5, 0x01, 3), {R1, MR3, IMM9b}},
460     {"ld4",             M, OpX6aHint (5, 0x02, 0), {R1, MR3, IMM9b}},
461     {"ld4.nt1",         M, OpX6aHint (5, 0x02, 1), {R1, MR3, IMM9b}},
462     {"ld4.nta",         M, OpX6aHint (5, 0x02, 3), {R1, MR3, IMM9b}},
463     {"ld8",             M, OpX6aHint (5, 0x03, 0), {R1, MR3, IMM9b}},
464     {"ld8.nt1",         M, OpX6aHint (5, 0x03, 1), {R1, MR3, IMM9b}},
465     {"ld8.nta",         M, OpX6aHint (5, 0x03, 3), {R1, MR3, IMM9b}},
466     {"ld1.s",           M, OpX6aHint (5, 0x04, 0), {R1, MR3, IMM9b}},
467     {"ld1.s.nt1",       M, OpX6aHint (5, 0x04, 1), {R1, MR3, IMM9b}},
468     {"ld1.s.nta",       M, OpX6aHint (5, 0x04, 3), {R1, MR3, IMM9b}},
469     {"ld2.s",           M, OpX6aHint (5, 0x05, 0), {R1, MR3, IMM9b}},
470     {"ld2.s.nt1",       M, OpX6aHint (5, 0x05, 1), {R1, MR3, IMM9b}},
471     {"ld2.s.nta",       M, OpX6aHint (5, 0x05, 3), {R1, MR3, IMM9b}},
472     {"ld4.s",           M, OpX6aHint (5, 0x06, 0), {R1, MR3, IMM9b}},
473     {"ld4.s.nt1",       M, OpX6aHint (5, 0x06, 1), {R1, MR3, IMM9b}},
474     {"ld4.s.nta",       M, OpX6aHint (5, 0x06, 3), {R1, MR3, IMM9b}},
475     {"ld8.s",           M, OpX6aHint (5, 0x07, 0), {R1, MR3, IMM9b}},
476     {"ld8.s.nt1",       M, OpX6aHint (5, 0x07, 1), {R1, MR3, IMM9b}},
477     {"ld8.s.nta",       M, OpX6aHint (5, 0x07, 3), {R1, MR3, IMM9b}},
478     {"ld1.a",           M, OpX6aHint (5, 0x08, 0), {R1, MR3, IMM9b}},
479     {"ld1.a.nt1",       M, OpX6aHint (5, 0x08, 1), {R1, MR3, IMM9b}},
480     {"ld1.a.nta",       M, OpX6aHint (5, 0x08, 3), {R1, MR3, IMM9b}},
481     {"ld2.a",           M, OpX6aHint (5, 0x09, 0), {R1, MR3, IMM9b}},
482     {"ld2.a.nt1",       M, OpX6aHint (5, 0x09, 1), {R1, MR3, IMM9b}},
483     {"ld2.a.nta",       M, OpX6aHint (5, 0x09, 3), {R1, MR3, IMM9b}},
484     {"ld4.a",           M, OpX6aHint (5, 0x0a, 0), {R1, MR3, IMM9b}},
485     {"ld4.a.nt1",       M, OpX6aHint (5, 0x0a, 1), {R1, MR3, IMM9b}},
486     {"ld4.a.nta",       M, OpX6aHint (5, 0x0a, 3), {R1, MR3, IMM9b}},
487     {"ld8.a",           M, OpX6aHint (5, 0x0b, 0), {R1, MR3, IMM9b}},
488     {"ld8.a.nt1",       M, OpX6aHint (5, 0x0b, 1), {R1, MR3, IMM9b}},
489     {"ld8.a.nta",       M, OpX6aHint (5, 0x0b, 3), {R1, MR3, IMM9b}},
490     {"ld1.sa",          M, OpX6aHint (5, 0x0c, 0), {R1, MR3, IMM9b}},
491     {"ld1.sa.nt1",      M, OpX6aHint (5, 0x0c, 1), {R1, MR3, IMM9b}},
492     {"ld1.sa.nta",      M, OpX6aHint (5, 0x0c, 3), {R1, MR3, IMM9b}},
493     {"ld2.sa",          M, OpX6aHint (5, 0x0d, 0), {R1, MR3, IMM9b}},
494     {"ld2.sa.nt1",      M, OpX6aHint (5, 0x0d, 1), {R1, MR3, IMM9b}},
495     {"ld2.sa.nta",      M, OpX6aHint (5, 0x0d, 3), {R1, MR3, IMM9b}},
496     {"ld4.sa",          M, OpX6aHint (5, 0x0e, 0), {R1, MR3, IMM9b}},
497     {"ld4.sa.nt1",      M, OpX6aHint (5, 0x0e, 1), {R1, MR3, IMM9b}},
498     {"ld4.sa.nta",      M, OpX6aHint (5, 0x0e, 3), {R1, MR3, IMM9b}},
499     {"ld8.sa",          M, OpX6aHint (5, 0x0f, 0), {R1, MR3, IMM9b}},
500     {"ld8.sa.nt1",      M, OpX6aHint (5, 0x0f, 1), {R1, MR3, IMM9b}},
501     {"ld8.sa.nta",      M, OpX6aHint (5, 0x0f, 3), {R1, MR3, IMM9b}},
502     {"ld1.bias",        M, OpX6aHint (5, 0x10, 0), {R1, MR3, IMM9b}},
503     {"ld1.bias.nt1",    M, OpX6aHint (5, 0x10, 1), {R1, MR3, IMM9b}},
504     {"ld1.bias.nta",    M, OpX6aHint (5, 0x10, 3), {R1, MR3, IMM9b}},
505     {"ld2.bias",        M, OpX6aHint (5, 0x11, 0), {R1, MR3, IMM9b}},
506     {"ld2.bias.nt1",    M, OpX6aHint (5, 0x11, 1), {R1, MR3, IMM9b}},
507     {"ld2.bias.nta",    M, OpX6aHint (5, 0x11, 3), {R1, MR3, IMM9b}},
508     {"ld4.bias",        M, OpX6aHint (5, 0x12, 0), {R1, MR3, IMM9b}},
509     {"ld4.bias.nt1",    M, OpX6aHint (5, 0x12, 1), {R1, MR3, IMM9b}},
510     {"ld4.bias.nta",    M, OpX6aHint (5, 0x12, 3), {R1, MR3, IMM9b}},
511     {"ld8.bias",        M, OpX6aHint (5, 0x13, 0), {R1, MR3, IMM9b}},
512     {"ld8.bias.nt1",    M, OpX6aHint (5, 0x13, 1), {R1, MR3, IMM9b}},
513     {"ld8.bias.nta",    M, OpX6aHint (5, 0x13, 3), {R1, MR3, IMM9b}},
514     {"ld1.acq",         M, OpX6aHint (5, 0x14, 0), {R1, MR3, IMM9b}},
515     {"ld1.acq.nt1",     M, OpX6aHint (5, 0x14, 1), {R1, MR3, IMM9b}},
516     {"ld1.acq.nta",     M, OpX6aHint (5, 0x14, 3), {R1, MR3, IMM9b}},
517     {"ld2.acq",         M, OpX6aHint (5, 0x15, 0), {R1, MR3, IMM9b}},
518     {"ld2.acq.nt1",     M, OpX6aHint (5, 0x15, 1), {R1, MR3, IMM9b}},
519     {"ld2.acq.nta",     M, OpX6aHint (5, 0x15, 3), {R1, MR3, IMM9b}},
520     {"ld4.acq",         M, OpX6aHint (5, 0x16, 0), {R1, MR3, IMM9b}},
521     {"ld4.acq.nt1",     M, OpX6aHint (5, 0x16, 1), {R1, MR3, IMM9b}},
522     {"ld4.acq.nta",     M, OpX6aHint (5, 0x16, 3), {R1, MR3, IMM9b}},
523     {"ld8.acq",         M, OpX6aHint (5, 0x17, 0), {R1, MR3, IMM9b}},
524     {"ld8.acq.nt1",     M, OpX6aHint (5, 0x17, 1), {R1, MR3, IMM9b}},
525     {"ld8.acq.nta",     M, OpX6aHint (5, 0x17, 3), {R1, MR3, IMM9b}},
526     {"ld8.fill",        M, OpX6aHint (5, 0x1b, 0), {R1, MR3, IMM9b}},
527     {"ld8.fill.nt1",    M, OpX6aHint (5, 0x1b, 1), {R1, MR3, IMM9b}},
528     {"ld8.fill.nta",    M, OpX6aHint (5, 0x1b, 3), {R1, MR3, IMM9b}},
529     {"ld1.c.clr",       M, OpX6aHint (5, 0x20, 0), {R1, MR3, IMM9b}},
530     {"ld1.c.clr.nt1",   M, OpX6aHint (5, 0x20, 1), {R1, MR3, IMM9b}},
531     {"ld1.c.clr.nta",   M, OpX6aHint (5, 0x20, 3), {R1, MR3, IMM9b}},
532     {"ld2.c.clr",       M, OpX6aHint (5, 0x21, 0), {R1, MR3, IMM9b}},
533     {"ld2.c.clr.nt1",   M, OpX6aHint (5, 0x21, 1), {R1, MR3, IMM9b}},
534     {"ld2.c.clr.nta",   M, OpX6aHint (5, 0x21, 3), {R1, MR3, IMM9b}},
535     {"ld4.c.clr",       M, OpX6aHint (5, 0x22, 0), {R1, MR3, IMM9b}},
536     {"ld4.c.clr.nt1",   M, OpX6aHint (5, 0x22, 1), {R1, MR3, IMM9b}},
537     {"ld4.c.clr.nta",   M, OpX6aHint (5, 0x22, 3), {R1, MR3, IMM9b}},
538     {"ld8.c.clr",       M, OpX6aHint (5, 0x23, 0), {R1, MR3, IMM9b}},
539     {"ld8.c.clr.nt1",   M, OpX6aHint (5, 0x23, 1), {R1, MR3, IMM9b}},
540     {"ld8.c.clr.nta",   M, OpX6aHint (5, 0x23, 3), {R1, MR3, IMM9b}},
541     {"ld1.c.nc",        M, OpX6aHint (5, 0x24, 0), {R1, MR3, IMM9b}},
542     {"ld1.c.nc.nt1",    M, OpX6aHint (5, 0x24, 1), {R1, MR3, IMM9b}},
543     {"ld1.c.nc.nta",    M, OpX6aHint (5, 0x24, 3), {R1, MR3, IMM9b}},
544     {"ld2.c.nc",        M, OpX6aHint (5, 0x25, 0), {R1, MR3, IMM9b}},
545     {"ld2.c.nc.nt1",    M, OpX6aHint (5, 0x25, 1), {R1, MR3, IMM9b}},
546     {"ld2.c.nc.nta",    M, OpX6aHint (5, 0x25, 3), {R1, MR3, IMM9b}},
547     {"ld4.c.nc",        M, OpX6aHint (5, 0x26, 0), {R1, MR3, IMM9b}},
548     {"ld4.c.nc.nt1",    M, OpX6aHint (5, 0x26, 1), {R1, MR3, IMM9b}},
549     {"ld4.c.nc.nta",    M, OpX6aHint (5, 0x26, 3), {R1, MR3, IMM9b}},
550     {"ld8.c.nc",        M, OpX6aHint (5, 0x27, 0), {R1, MR3, IMM9b}},
551     {"ld8.c.nc.nt1",    M, OpX6aHint (5, 0x27, 1), {R1, MR3, IMM9b}},
552     {"ld8.c.nc.nta",    M, OpX6aHint (5, 0x27, 3), {R1, MR3, IMM9b}},
553     {"ld1.c.clr.acq",     M, OpX6aHint (5, 0x28, 0), {R1, MR3, IMM9b}},
554     {"ld1.c.clr.acq.nt1", M, OpX6aHint (5, 0x28, 1), {R1, MR3, IMM9b}},
555     {"ld1.c.clr.acq.nta", M, OpX6aHint (5, 0x28, 3), {R1, MR3, IMM9b}},
556     {"ld2.c.clr.acq",     M, OpX6aHint (5, 0x29, 0), {R1, MR3, IMM9b}},
557     {"ld2.c.clr.acq.nt1", M, OpX6aHint (5, 0x29, 1), {R1, MR3, IMM9b}},
558     {"ld2.c.clr.acq.nta", M, OpX6aHint (5, 0x29, 3), {R1, MR3, IMM9b}},
559     {"ld4.c.clr.acq",     M, OpX6aHint (5, 0x2a, 0), {R1, MR3, IMM9b}},
560     {"ld4.c.clr.acq.nt1", M, OpX6aHint (5, 0x2a, 1), {R1, MR3, IMM9b}},
561     {"ld4.c.clr.acq.nta", M, OpX6aHint (5, 0x2a, 3), {R1, MR3, IMM9b}},
562     {"ld8.c.clr.acq",     M, OpX6aHint (5, 0x2b, 0), {R1, MR3, IMM9b}},
563     {"ld8.c.clr.acq.nt1", M, OpX6aHint (5, 0x2b, 1), {R1, MR3, IMM9b}},
564     {"ld8.c.clr.acq.nta", M, OpX6aHint (5, 0x2b, 3), {R1, MR3, IMM9b}},
565
566     /* store w/increment by immediate */
567     {"st1",             M, OpX6aHint (5, 0x30, 0), {MR3, R2, IMM9a}},
568     {"st1.nta",         M, OpX6aHint (5, 0x30, 3), {MR3, R2, IMM9a}},
569     {"st2",             M, OpX6aHint (5, 0x31, 0), {MR3, R2, IMM9a}},
570     {"st2.nta",         M, OpX6aHint (5, 0x31, 3), {MR3, R2, IMM9a}},
571     {"st4",             M, OpX6aHint (5, 0x32, 0), {MR3, R2, IMM9a}},
572     {"st4.nta",         M, OpX6aHint (5, 0x32, 3), {MR3, R2, IMM9a}},
573     {"st8",             M, OpX6aHint (5, 0x33, 0), {MR3, R2, IMM9a}},
574     {"st8.nta",         M, OpX6aHint (5, 0x33, 3), {MR3, R2, IMM9a}},
575     {"st1.rel",         M, OpX6aHint (5, 0x34, 0), {MR3, R2, IMM9a}},
576     {"st1.rel.nta",     M, OpX6aHint (5, 0x34, 3), {MR3, R2, IMM9a}},
577     {"st2.rel",         M, OpX6aHint (5, 0x35, 0), {MR3, R2, IMM9a}},
578     {"st2.rel.nta",     M, OpX6aHint (5, 0x35, 3), {MR3, R2, IMM9a}},
579     {"st4.rel",         M, OpX6aHint (5, 0x36, 0), {MR3, R2, IMM9a}},
580     {"st4.rel.nta",     M, OpX6aHint (5, 0x36, 3), {MR3, R2, IMM9a}},
581     {"st8.rel",         M, OpX6aHint (5, 0x37, 0), {MR3, R2, IMM9a}},
582     {"st8.rel.nta",     M, OpX6aHint (5, 0x37, 3), {MR3, R2, IMM9a}},
583     {"st8.spill",       M, OpX6aHint (5, 0x3b, 0), {MR3, R2, IMM9a}},
584     {"st8.spill.nta",   M, OpX6aHint (5, 0x3b, 3), {MR3, R2, IMM9a}},
585
586     /* floating-point load */
587     {"ldfs",            M, OpMXX6aHint (6, 0, 0, 0x02, 0), {F1, MR3}},
588     {"ldfs.nt1",        M, OpMXX6aHint (6, 0, 0, 0x02, 1), {F1, MR3}},
589     {"ldfs.nta",        M, OpMXX6aHint (6, 0, 0, 0x02, 3), {F1, MR3}},
590     {"ldfd",            M, OpMXX6aHint (6, 0, 0, 0x03, 0), {F1, MR3}},
591     {"ldfd.nt1",        M, OpMXX6aHint (6, 0, 0, 0x03, 1), {F1, MR3}},
592     {"ldfd.nta",        M, OpMXX6aHint (6, 0, 0, 0x03, 3), {F1, MR3}},
593     {"ldf8",            M, OpMXX6aHint (6, 0, 0, 0x01, 0), {F1, MR3}},
594     {"ldf8.nt1",        M, OpMXX6aHint (6, 0, 0, 0x01, 1), {F1, MR3}},
595     {"ldf8.nta",        M, OpMXX6aHint (6, 0, 0, 0x01, 3), {F1, MR3}},
596     {"ldfe",            M, OpMXX6aHint (6, 0, 0, 0x00, 0), {F1, MR3}},
597     {"ldfe.nt1",        M, OpMXX6aHint (6, 0, 0, 0x00, 1), {F1, MR3}},
598     {"ldfe.nta",        M, OpMXX6aHint (6, 0, 0, 0x00, 3), {F1, MR3}},
599     {"ldfs.s",          M, OpMXX6aHint (6, 0, 0, 0x06, 0), {F1, MR3}},
600     {"ldfs.s.nt1",      M, OpMXX6aHint (6, 0, 0, 0x06, 1), {F1, MR3}},
601     {"ldfs.s.nta",      M, OpMXX6aHint (6, 0, 0, 0x06, 3), {F1, MR3}},
602     {"ldfd.s",          M, OpMXX6aHint (6, 0, 0, 0x07, 0), {F1, MR3}},
603     {"ldfd.s.nt1",      M, OpMXX6aHint (6, 0, 0, 0x07, 1), {F1, MR3}},
604     {"ldfd.s.nta",      M, OpMXX6aHint (6, 0, 0, 0x07, 3), {F1, MR3}},
605     {"ldf8.s",          M, OpMXX6aHint (6, 0, 0, 0x05, 0), {F1, MR3}},
606     {"ldf8.s.nt1",      M, OpMXX6aHint (6, 0, 0, 0x05, 1), {F1, MR3}},
607     {"ldf8.s.nta",      M, OpMXX6aHint (6, 0, 0, 0x05, 3), {F1, MR3}},
608     {"ldfe.s",          M, OpMXX6aHint (6, 0, 0, 0x04, 0), {F1, MR3}},
609     {"ldfe.s.nt1",      M, OpMXX6aHint (6, 0, 0, 0x04, 1), {F1, MR3}},
610     {"ldfe.s.nta",      M, OpMXX6aHint (6, 0, 0, 0x04, 3), {F1, MR3}},
611     {"ldfs.a",          M, OpMXX6aHint (6, 0, 0, 0x0a, 0), {F1, MR3}},
612     {"ldfs.a.nt1",      M, OpMXX6aHint (6, 0, 0, 0x0a, 1), {F1, MR3}},
613     {"ldfs.a.nta",      M, OpMXX6aHint (6, 0, 0, 0x0a, 3), {F1, MR3}},
614     {"ldfd.a",          M, OpMXX6aHint (6, 0, 0, 0x0b, 0), {F1, MR3}},
615     {"ldfd.a.nt1",      M, OpMXX6aHint (6, 0, 0, 0x0b, 1), {F1, MR3}},
616     {"ldfd.a.nta",      M, OpMXX6aHint (6, 0, 0, 0x0b, 3), {F1, MR3}},
617     {"ldf8.a",          M, OpMXX6aHint (6, 0, 0, 0x09, 0), {F1, MR3}},
618     {"ldf8.a.nt1",      M, OpMXX6aHint (6, 0, 0, 0x09, 1), {F1, MR3}},
619     {"ldf8.a.nta",      M, OpMXX6aHint (6, 0, 0, 0x09, 3), {F1, MR3}},
620     {"ldfe.a",          M, OpMXX6aHint (6, 0, 0, 0x08, 0), {F1, MR3}},
621     {"ldfe.a.nt1",      M, OpMXX6aHint (6, 0, 0, 0x08, 1), {F1, MR3}},
622     {"ldfe.a.nta",      M, OpMXX6aHint (6, 0, 0, 0x08, 3), {F1, MR3}},
623     {"ldfs.sa",         M, OpMXX6aHint (6, 0, 0, 0x0e, 0), {F1, MR3}},
624     {"ldfs.sa.nt1",     M, OpMXX6aHint (6, 0, 0, 0x0e, 1), {F1, MR3}},
625     {"ldfs.sa.nta",     M, OpMXX6aHint (6, 0, 0, 0x0e, 3), {F1, MR3}},
626     {"ldfd.sa",         M, OpMXX6aHint (6, 0, 0, 0x0f, 0), {F1, MR3}},
627     {"ldfd.sa.nt1",     M, OpMXX6aHint (6, 0, 0, 0x0f, 1), {F1, MR3}},
628     {"ldfd.sa.nta",     M, OpMXX6aHint (6, 0, 0, 0x0f, 3), {F1, MR3}},
629     {"ldf8.sa",         M, OpMXX6aHint (6, 0, 0, 0x0d, 0), {F1, MR3}},
630     {"ldf8.sa.nt1",     M, OpMXX6aHint (6, 0, 0, 0x0d, 1), {F1, MR3}},
631     {"ldf8.sa.nta",     M, OpMXX6aHint (6, 0, 0, 0x0d, 3), {F1, MR3}},
632     {"ldfe.sa",         M, OpMXX6aHint (6, 0, 0, 0x0c, 0), {F1, MR3}},
633     {"ldfe.sa.nt1",     M, OpMXX6aHint (6, 0, 0, 0x0c, 1), {F1, MR3}},
634     {"ldfe.sa.nta",     M, OpMXX6aHint (6, 0, 0, 0x0c, 3), {F1, MR3}},
635     {"ldf.fill",        M, OpMXX6aHint (6, 0, 0, 0x1b, 0), {F1, MR3}},
636     {"ldf.fill.nt1",    M, OpMXX6aHint (6, 0, 0, 0x1b, 1), {F1, MR3}},
637     {"ldf.fill.nta",    M, OpMXX6aHint (6, 0, 0, 0x1b, 3), {F1, MR3}},
638     {"ldfs.c.clr",      M, OpMXX6aHint (6, 0, 0, 0x22, 0), {F1, MR3}},
639     {"ldfs.c.clr.nt1",  M, OpMXX6aHint (6, 0, 0, 0x22, 1), {F1, MR3}},
640     {"ldfs.c.clr.nta",  M, OpMXX6aHint (6, 0, 0, 0x22, 3), {F1, MR3}},
641     {"ldfd.c.clr",      M, OpMXX6aHint (6, 0, 0, 0x23, 0), {F1, MR3}},
642     {"ldfd.c.clr.nt1",  M, OpMXX6aHint (6, 0, 0, 0x23, 1), {F1, MR3}},
643     {"ldfd.c.clr.nta",  M, OpMXX6aHint (6, 0, 0, 0x23, 3), {F1, MR3}},
644     {"ldf8.c.clr",      M, OpMXX6aHint (6, 0, 0, 0x21, 0), {F1, MR3}},
645     {"ldf8.c.clr.nt1",  M, OpMXX6aHint (6, 0, 0, 0x21, 1), {F1, MR3}},
646     {"ldf8.c.clr.nta",  M, OpMXX6aHint (6, 0, 0, 0x21, 3), {F1, MR3}},
647     {"ldfe.c.clr",      M, OpMXX6aHint (6, 0, 0, 0x20, 0), {F1, MR3}},
648     {"ldfe.c.clr.nt1",  M, OpMXX6aHint (6, 0, 0, 0x20, 1), {F1, MR3}},
649     {"ldfe.c.clr.nta",  M, OpMXX6aHint (6, 0, 0, 0x20, 3), {F1, MR3}},
650     {"ldfs.c.nc",       M, OpMXX6aHint (6, 0, 0, 0x26, 0), {F1, MR3}},
651     {"ldfs.c.nc.nt1",   M, OpMXX6aHint (6, 0, 0, 0x26, 1), {F1, MR3}},
652     {"ldfs.c.nc.nta",   M, OpMXX6aHint (6, 0, 0, 0x26, 3), {F1, MR3}},
653     {"ldfd.c.nc",       M, OpMXX6aHint (6, 0, 0, 0x27, 0), {F1, MR3}},
654     {"ldfd.c.nc.nt1",   M, OpMXX6aHint (6, 0, 0, 0x27, 1), {F1, MR3}},
655     {"ldfd.c.nc.nta",   M, OpMXX6aHint (6, 0, 0, 0x27, 3), {F1, MR3}},
656     {"ldf8.c.nc",       M, OpMXX6aHint (6, 0, 0, 0x25, 0), {F1, MR3}},
657     {"ldf8.c.nc.nt1",   M, OpMXX6aHint (6, 0, 0, 0x25, 1), {F1, MR3}},
658     {"ldf8.c.nc.nta",   M, OpMXX6aHint (6, 0, 0, 0x25, 3), {F1, MR3}},
659     {"ldfe.c.nc",       M, OpMXX6aHint (6, 0, 0, 0x24, 0), {F1, MR3}},
660     {"ldfe.c.nc.nt1",   M, OpMXX6aHint (6, 0, 0, 0x24, 1), {F1, MR3}},
661     {"ldfe.c.nc.nta",   M, OpMXX6aHint (6, 0, 0, 0x24, 3), {F1, MR3}},
662
663     {"ldfs",            M, OpMXX6aHint (6, 1, 0, 0x02, 0), {F1, MR3, R2}},
664     {"ldfs.nt1",        M, OpMXX6aHint (6, 1, 0, 0x02, 1), {F1, MR3, R2}},
665     {"ldfs.nta",        M, OpMXX6aHint (6, 1, 0, 0x02, 3), {F1, MR3, R2}},
666     {"ldfd",            M, OpMXX6aHint (6, 1, 0, 0x03, 0), {F1, MR3, R2}},
667     {"ldfd.nt1",        M, OpMXX6aHint (6, 1, 0, 0x03, 1), {F1, MR3, R2}},
668     {"ldfd.nta",        M, OpMXX6aHint (6, 1, 0, 0x03, 3), {F1, MR3, R2}},
669     {"ldf8",            M, OpMXX6aHint (6, 1, 0, 0x01, 0), {F1, MR3, R2}},
670     {"ldf8.nt1",        M, OpMXX6aHint (6, 1, 0, 0x01, 1), {F1, MR3, R2}},
671     {"ldf8.nta",        M, OpMXX6aHint (6, 1, 0, 0x01, 3), {F1, MR3, R2}},
672     {"ldfe",            M, OpMXX6aHint (6, 1, 0, 0x00, 0), {F1, MR3, R2}},
673     {"ldfe.nt1",        M, OpMXX6aHint (6, 1, 0, 0x00, 1), {F1, MR3, R2}},
674     {"ldfe.nta",        M, OpMXX6aHint (6, 1, 0, 0x00, 3), {F1, MR3, R2}},
675     {"ldfs.s",          M, OpMXX6aHint (6, 1, 0, 0x06, 0), {F1, MR3, R2}},
676     {"ldfs.s.nt1",      M, OpMXX6aHint (6, 1, 0, 0x06, 1), {F1, MR3, R2}},
677     {"ldfs.s.nta",      M, OpMXX6aHint (6, 1, 0, 0x06, 3), {F1, MR3, R2}},
678     {"ldfd.s",          M, OpMXX6aHint (6, 1, 0, 0x07, 0), {F1, MR3, R2}},
679     {"ldfd.s.nt1",      M, OpMXX6aHint (6, 1, 0, 0x07, 1), {F1, MR3, R2}},
680     {"ldfd.s.nta",      M, OpMXX6aHint (6, 1, 0, 0x07, 3), {F1, MR3, R2}},
681     {"ldf8.s",          M, OpMXX6aHint (6, 1, 0, 0x05, 0), {F1, MR3, R2}},
682     {"ldf8.s.nt1",      M, OpMXX6aHint (6, 1, 0, 0x05, 1), {F1, MR3, R2}},
683     {"ldf8.s.nta",      M, OpMXX6aHint (6, 1, 0, 0x05, 3), {F1, MR3, R2}},
684     {"ldfe.s",          M, OpMXX6aHint (6, 1, 0, 0x04, 0), {F1, MR3, R2}},
685     {"ldfe.s.nt1",      M, OpMXX6aHint (6, 1, 0, 0x04, 1), {F1, MR3, R2}},
686     {"ldfe.s.nta",      M, OpMXX6aHint (6, 1, 0, 0x04, 3), {F1, MR3, R2}},
687     {"ldfs.a",          M, OpMXX6aHint (6, 1, 0, 0x0a, 0), {F1, MR3, R2}},
688     {"ldfs.a.nt1",      M, OpMXX6aHint (6, 1, 0, 0x0a, 1), {F1, MR3, R2}},
689     {"ldfs.a.nta",      M, OpMXX6aHint (6, 1, 0, 0x0a, 3), {F1, MR3, R2}},
690     {"ldfd.a",          M, OpMXX6aHint (6, 1, 0, 0x0b, 0), {F1, MR3, R2}},
691     {"ldfd.a.nt1",      M, OpMXX6aHint (6, 1, 0, 0x0b, 1), {F1, MR3, R2}},
692     {"ldfd.a.nta",      M, OpMXX6aHint (6, 1, 0, 0x0b, 3), {F1, MR3, R2}},
693     {"ldf8.a",          M, OpMXX6aHint (6, 1, 0, 0x09, 0), {F1, MR3, R2}},
694     {"ldf8.a.nt1",      M, OpMXX6aHint (6, 1, 0, 0x09, 1), {F1, MR3, R2}},
695     {"ldf8.a.nta",      M, OpMXX6aHint (6, 1, 0, 0x09, 3), {F1, MR3, R2}},
696     {"ldfe.a",          M, OpMXX6aHint (6, 1, 0, 0x08, 0), {F1, MR3, R2}},
697     {"ldfe.a.nt1",      M, OpMXX6aHint (6, 1, 0, 0x08, 1), {F1, MR3, R2}},
698     {"ldfe.a.nta",      M, OpMXX6aHint (6, 1, 0, 0x08, 3), {F1, MR3, R2}},
699     {"ldfs.sa",         M, OpMXX6aHint (6, 1, 0, 0x0e, 0), {F1, MR3, R2}},
700     {"ldfs.sa.nt1",     M, OpMXX6aHint (6, 1, 0, 0x0e, 1), {F1, MR3, R2}},
701     {"ldfs.sa.nta",     M, OpMXX6aHint (6, 1, 0, 0x0e, 3), {F1, MR3, R2}},
702     {"ldfd.sa",         M, OpMXX6aHint (6, 1, 0, 0x0f, 0), {F1, MR3, R2}},
703     {"ldfd.sa.nt1",     M, OpMXX6aHint (6, 1, 0, 0x0f, 1), {F1, MR3, R2}},
704     {"ldfd.sa.nta",     M, OpMXX6aHint (6, 1, 0, 0x0f, 3), {F1, MR3, R2}},
705     {"ldf8.sa",         M, OpMXX6aHint (6, 1, 0, 0x0d, 0), {F1, MR3, R2}},
706     {"ldf8.sa.nt1",     M, OpMXX6aHint (6, 1, 0, 0x0d, 1), {F1, MR3, R2}},
707     {"ldf8.sa.nta",     M, OpMXX6aHint (6, 1, 0, 0x0d, 3), {F1, MR3, R2}},
708     {"ldfe.sa",         M, OpMXX6aHint (6, 1, 0, 0x0c, 0), {F1, MR3, R2}},
709     {"ldfe.sa.nt1",     M, OpMXX6aHint (6, 1, 0, 0x0c, 1), {F1, MR3, R2}},
710     {"ldfe.sa.nta",     M, OpMXX6aHint (6, 1, 0, 0x0c, 3), {F1, MR3, R2}},
711     {"ldf.fill",        M, OpMXX6aHint (6, 1, 0, 0x1b, 0), {F1, MR3, R2}},
712     {"ldf.fill.nt1",    M, OpMXX6aHint (6, 1, 0, 0x1b, 1), {F1, MR3, R2}},
713     {"ldf.fill.nta",    M, OpMXX6aHint (6, 1, 0, 0x1b, 3), {F1, MR3, R2}},
714     {"ldfs.c.clr",      M, OpMXX6aHint (6, 1, 0, 0x22, 0), {F1, MR3, R2}},
715     {"ldfs.c.clr.nt1",  M, OpMXX6aHint (6, 1, 0, 0x22, 1), {F1, MR3, R2}},
716     {"ldfs.c.clr.nta",  M, OpMXX6aHint (6, 1, 0, 0x22, 3), {F1, MR3, R2}},
717     {"ldfd.c.clr",      M, OpMXX6aHint (6, 1, 0, 0x23, 0), {F1, MR3, R2}},
718     {"ldfd.c.clr.nt1",  M, OpMXX6aHint (6, 1, 0, 0x23, 1), {F1, MR3, R2}},
719     {"ldfd.c.clr.nta",  M, OpMXX6aHint (6, 1, 0, 0x23, 3), {F1, MR3, R2}},
720     {"ldf8.c.clr",      M, OpMXX6aHint (6, 1, 0, 0x21, 0), {F1, MR3, R2}},
721     {"ldf8.c.clr.nt1",  M, OpMXX6aHint (6, 1, 0, 0x21, 1), {F1, MR3, R2}},
722     {"ldf8.c.clr.nta",  M, OpMXX6aHint (6, 1, 0, 0x21, 3), {F1, MR3, R2}},
723     {"ldfe.c.clr",      M, OpMXX6aHint (6, 1, 0, 0x20, 0), {F1, MR3, R2}},
724     {"ldfe.c.clr.nt1",  M, OpMXX6aHint (6, 1, 0, 0x20, 1), {F1, MR3, R2}},
725     {"ldfe.c.clr.nta",  M, OpMXX6aHint (6, 1, 0, 0x20, 3), {F1, MR3, R2}},
726     {"ldfs.c.nc",       M, OpMXX6aHint (6, 1, 0, 0x26, 0), {F1, MR3, R2}},
727     {"ldfs.c.nc.nt1",   M, OpMXX6aHint (6, 1, 0, 0x26, 1), {F1, MR3, R2}},
728     {"ldfs.c.nc.nta",   M, OpMXX6aHint (6, 1, 0, 0x26, 3), {F1, MR3, R2}},
729     {"ldfd.c.nc",       M, OpMXX6aHint (6, 1, 0, 0x27, 0), {F1, MR3, R2}},
730     {"ldfd.c.nc.nt1",   M, OpMXX6aHint (6, 1, 0, 0x27, 1), {F1, MR3, R2}},
731     {"ldfd.c.nc.nta",   M, OpMXX6aHint (6, 1, 0, 0x27, 3), {F1, MR3, R2}},
732     {"ldf8.c.nc",       M, OpMXX6aHint (6, 1, 0, 0x25, 0), {F1, MR3, R2}},
733     {"ldf8.c.nc.nt1",   M, OpMXX6aHint (6, 1, 0, 0x25, 1), {F1, MR3, R2}},
734     {"ldf8.c.nc.nta",   M, OpMXX6aHint (6, 1, 0, 0x25, 3), {F1, MR3, R2}},
735     {"ldfe.c.nc",       M, OpMXX6aHint (6, 1, 0, 0x24, 0), {F1, MR3, R2}},
736     {"ldfe.c.nc.nt1",   M, OpMXX6aHint (6, 1, 0, 0x24, 1), {F1, MR3, R2}},
737     {"ldfe.c.nc.nta",   M, OpMXX6aHint (6, 1, 0, 0x24, 3), {F1, MR3, R2}},
738
739     /* floating-point store */
740     {"stfs",            M, OpMXX6aHint (6, 0, 0, 0x32, 0), {MR3, F2}},
741     {"stfs.nta",        M, OpMXX6aHint (6, 0, 0, 0x32, 3), {MR3, F2}},
742     {"stfd",            M, OpMXX6aHint (6, 0, 0, 0x33, 0), {MR3, F2}},
743     {"stfd.nta",        M, OpMXX6aHint (6, 0, 0, 0x33, 3), {MR3, F2}},
744     {"stf8",            M, OpMXX6aHint (6, 0, 0, 0x31, 0), {MR3, F2}},
745     {"stf8.nta",        M, OpMXX6aHint (6, 0, 0, 0x31, 3), {MR3, F2}},
746     {"stfe",            M, OpMXX6aHint (6, 0, 0, 0x30, 0), {MR3, F2}},
747     {"stfe.nta",        M, OpMXX6aHint (6, 0, 0, 0x30, 3), {MR3, F2}},
748     {"stf.spill",       M, OpMXX6aHint (6, 0, 0, 0x3b, 0), {MR3, F2}},
749     {"stf.spill.nta",   M, OpMXX6aHint (6, 0, 0, 0x3b, 3), {MR3, F2}},
750
751     /* floating-point load pair */
752     {"ldfps",           M2, OpMXX6aHint (6, 0, 1, 0x02, 0), {F1, F2, MR3}},
753     {"ldfps.nt1",       M2, OpMXX6aHint (6, 0, 1, 0x02, 1), {F1, F2, MR3}},
754     {"ldfps.nta",       M2, OpMXX6aHint (6, 0, 1, 0x02, 3), {F1, F2, MR3}},
755     {"ldfpd",           M2, OpMXX6aHint (6, 0, 1, 0x03, 0), {F1, F2, MR3}},
756     {"ldfpd.nt1",       M2, OpMXX6aHint (6, 0, 1, 0x03, 1), {F1, F2, MR3}},
757     {"ldfpd.nta",       M2, OpMXX6aHint (6, 0, 1, 0x03, 3), {F1, F2, MR3}},
758     {"ldfp8",           M2, OpMXX6aHint (6, 0, 1, 0x01, 0), {F1, F2, MR3}},
759     {"ldfp8.nt1",       M2, OpMXX6aHint (6, 0, 1, 0x01, 1), {F1, F2, MR3}},
760     {"ldfp8.nta",       M2, OpMXX6aHint (6, 0, 1, 0x01, 3), {F1, F2, MR3}},
761     {"ldfps.s",         M2, OpMXX6aHint (6, 0, 1, 0x06, 0), {F1, F2, MR3}},
762     {"ldfps.s.nt1",     M2, OpMXX6aHint (6, 0, 1, 0x06, 1), {F1, F2, MR3}},
763     {"ldfps.s.nta",     M2, OpMXX6aHint (6, 0, 1, 0x06, 3), {F1, F2, MR3}},
764     {"ldfpd.s",         M2, OpMXX6aHint (6, 0, 1, 0x07, 0), {F1, F2, MR3}},
765     {"ldfpd.s.nt1",     M2, OpMXX6aHint (6, 0, 1, 0x07, 1), {F1, F2, MR3}},
766     {"ldfpd.s.nta",     M2, OpMXX6aHint (6, 0, 1, 0x07, 3), {F1, F2, MR3}},
767     {"ldfp8.s",         M2, OpMXX6aHint (6, 0, 1, 0x05, 0), {F1, F2, MR3}},
768     {"ldfp8.s.nt1",     M2, OpMXX6aHint (6, 0, 1, 0x05, 1), {F1, F2, MR3}},
769     {"ldfp8.s.nta",     M2, OpMXX6aHint (6, 0, 1, 0x05, 3), {F1, F2, MR3}},
770     {"ldfps.a",         M2, OpMXX6aHint (6, 0, 1, 0x0a, 0), {F1, F2, MR3}},
771     {"ldfps.a.nt1",     M2, OpMXX6aHint (6, 0, 1, 0x0a, 1), {F1, F2, MR3}},
772     {"ldfps.a.nta",     M2, OpMXX6aHint (6, 0, 1, 0x0a, 3), {F1, F2, MR3}},
773     {"ldfpd.a",         M2, OpMXX6aHint (6, 0, 1, 0x0b, 0), {F1, F2, MR3}},
774     {"ldfpd.a.nt1",     M2, OpMXX6aHint (6, 0, 1, 0x0b, 1), {F1, F2, MR3}},
775     {"ldfpd.a.nta",     M2, OpMXX6aHint (6, 0, 1, 0x0b, 3), {F1, F2, MR3}},
776     {"ldfp8.a",         M2, OpMXX6aHint (6, 0, 1, 0x09, 0), {F1, F2, MR3}},
777     {"ldfp8.a.nt1",     M2, OpMXX6aHint (6, 0, 1, 0x09, 1), {F1, F2, MR3}},
778     {"ldfp8.a.nta",     M2, OpMXX6aHint (6, 0, 1, 0x09, 3), {F1, F2, MR3}},
779     {"ldfps.sa",        M2, OpMXX6aHint (6, 0, 1, 0x0e, 0), {F1, F2, MR3}},
780     {"ldfps.sa.nt1",    M2, OpMXX6aHint (6, 0, 1, 0x0e, 1), {F1, F2, MR3}},
781     {"ldfps.sa.nta",    M2, OpMXX6aHint (6, 0, 1, 0x0e, 3), {F1, F2, MR3}},
782     {"ldfpd.sa",        M2, OpMXX6aHint (6, 0, 1, 0x0f, 0), {F1, F2, MR3}},
783     {"ldfpd.sa.nt1",    M2, OpMXX6aHint (6, 0, 1, 0x0f, 1), {F1, F2, MR3}},
784     {"ldfpd.sa.nta",    M2, OpMXX6aHint (6, 0, 1, 0x0f, 3), {F1, F2, MR3}},
785     {"ldfp8.sa",        M2, OpMXX6aHint (6, 0, 1, 0x0d, 0), {F1, F2, MR3}},
786     {"ldfp8.sa.nt1",    M2, OpMXX6aHint (6, 0, 1, 0x0d, 1), {F1, F2, MR3}},
787     {"ldfp8.sa.nta",    M2, OpMXX6aHint (6, 0, 1, 0x0d, 3), {F1, F2, MR3}},
788     {"ldfps.c.clr",     M2, OpMXX6aHint (6, 0, 1, 0x22, 0), {F1, F2, MR3}},
789     {"ldfps.c.clr.nt1", M2, OpMXX6aHint (6, 0, 1, 0x22, 1), {F1, F2, MR3}},
790     {"ldfps.c.clr.nta", M2, OpMXX6aHint (6, 0, 1, 0x22, 3), {F1, F2, MR3}},
791     {"ldfpd.c.clr",     M2, OpMXX6aHint (6, 0, 1, 0x23, 0), {F1, F2, MR3}},
792     {"ldfpd.c.clr.nt1", M2, OpMXX6aHint (6, 0, 1, 0x23, 1), {F1, F2, MR3}},
793     {"ldfpd.c.clr.nta", M2, OpMXX6aHint (6, 0, 1, 0x23, 3), {F1, F2, MR3}},
794     {"ldfp8.c.clr",     M2, OpMXX6aHint (6, 0, 1, 0x21, 0), {F1, F2, MR3}},
795     {"ldfp8.c.clr.nt1", M2, OpMXX6aHint (6, 0, 1, 0x21, 1), {F1, F2, MR3}},
796     {"ldfp8.c.clr.nta", M2, OpMXX6aHint (6, 0, 1, 0x21, 3), {F1, F2, MR3}},
797     {"ldfps.c.nc",      M2, OpMXX6aHint (6, 0, 1, 0x26, 0), {F1, F2, MR3}},
798     {"ldfps.c.nc.nt1",  M2, OpMXX6aHint (6, 0, 1, 0x26, 1), {F1, F2, MR3}},
799     {"ldfps.c.nc.nta",  M2, OpMXX6aHint (6, 0, 1, 0x26, 3), {F1, F2, MR3}},
800     {"ldfpd.c.nc",      M2, OpMXX6aHint (6, 0, 1, 0x27, 0), {F1, F2, MR3}},
801     {"ldfpd.c.nc.nt1",  M2, OpMXX6aHint (6, 0, 1, 0x27, 1), {F1, F2, MR3}},
802     {"ldfpd.c.nc.nta",  M2, OpMXX6aHint (6, 0, 1, 0x27, 3), {F1, F2, MR3}},
803     {"ldfp8.c.nc",      M2, OpMXX6aHint (6, 0, 1, 0x25, 0), {F1, F2, MR3}},
804     {"ldfp8.c.nc.nt1",  M2, OpMXX6aHint (6, 0, 1, 0x25, 1), {F1, F2, MR3}},
805     {"ldfp8.c.nc.nta",  M2, OpMXX6aHint (6, 0, 1, 0x25, 3), {F1, F2, MR3}},
806
807     /* floating-point load pair w/increment by immediate */
808 #define LD(a,b,c)       M2, OpMXX6aHint (6, 1, 1, a, b), {F1, F2, MR3, c}
809     {"ldfps",           LD (0x02, 0, C8)},
810     {"ldfps.nt1",       LD (0x02, 1, C8)},
811     {"ldfps.nta",       LD (0x02, 3, C8)},
812     {"ldfpd",           LD (0x03, 0, C16)},
813     {"ldfpd.nt1",       LD (0x03, 1, C16)},
814     {"ldfpd.nta",       LD (0x03, 3, C16)},
815     {"ldfp8",           LD (0x01, 0, C16)},
816     {"ldfp8.nt1",       LD (0x01, 1, C16)},
817     {"ldfp8.nta",       LD (0x01, 3, C16)},
818     {"ldfps.s",         LD (0x06, 0, C8)},
819     {"ldfps.s.nt1",     LD (0x06, 1, C8)},
820     {"ldfps.s.nta",     LD (0x06, 3, C8)},
821     {"ldfpd.s",         LD (0x07, 0, C16)},
822     {"ldfpd.s.nt1",     LD (0x07, 1, C16)},
823     {"ldfpd.s.nta",     LD (0x07, 3, C16)},
824     {"ldfp8.s",         LD (0x05, 0, C16)},
825     {"ldfp8.s.nt1",     LD (0x05, 1, C16)},
826     {"ldfp8.s.nta",     LD (0x05, 3, C16)},
827     {"ldfps.a",         LD (0x0a, 0, C8)},
828     {"ldfps.a.nt1",     LD (0x0a, 1, C8)},
829     {"ldfps.a.nta",     LD (0x0a, 3, C8)},
830     {"ldfpd.a",         LD (0x0b, 0, C16)},
831     {"ldfpd.a.nt1",     LD (0x0b, 1, C16)},
832     {"ldfpd.a.nta",     LD (0x0b, 3, C16)},
833     {"ldfp8.a",         LD (0x09, 0, C16)},
834     {"ldfp8.a.nt1",     LD (0x09, 1, C16)},
835     {"ldfp8.a.nta",     LD (0x09, 3, C16)},
836     {"ldfps.sa",        LD (0x0e, 0, C8)},
837     {"ldfps.sa.nt1",    LD (0x0e, 1, C8)},
838     {"ldfps.sa.nta",    LD (0x0e, 3, C8)},
839     {"ldfpd.sa",        LD (0x0f, 0, C16)},
840     {"ldfpd.sa.nt1",    LD (0x0f, 1, C16)},
841     {"ldfpd.sa.nta",    LD (0x0f, 3, C16)},
842     {"ldfp8.sa",        LD (0x0d, 0, C16)},
843     {"ldfp8.sa.nt1",    LD (0x0d, 1, C16)},
844     {"ldfp8.sa.nta",    LD (0x0d, 3, C16)},
845     {"ldfps.c.clr",     LD (0x22, 0, C8)},
846     {"ldfps.c.clr.nt1", LD (0x22, 1, C8)},
847     {"ldfps.c.clr.nta", LD (0x22, 3, C8)},
848     {"ldfpd.c.clr",     LD (0x23, 0, C16)},
849     {"ldfpd.c.clr.nt1", LD (0x23, 1, C16)},
850     {"ldfpd.c.clr.nta", LD (0x23, 3, C16)},
851     {"ldfp8.c.clr",     LD (0x21, 0, C16)},
852     {"ldfp8.c.clr.nt1", LD (0x21, 1, C16)},
853     {"ldfp8.c.clr.nta", LD (0x21, 3, C16)},
854     {"ldfps.c.nc",      LD (0x26, 0, C8)},
855     {"ldfps.c.nc.nt1",  LD (0x26, 1, C8)},
856     {"ldfps.c.nc.nta",  LD (0x26, 3, C8)},
857     {"ldfpd.c.nc",      LD (0x27, 0, C16)},
858     {"ldfpd.c.nc.nt1",  LD (0x27, 1, C16)},
859     {"ldfpd.c.nc.nta",  LD (0x27, 3, C16)},
860     {"ldfp8.c.nc",      LD (0x25, 0, C16)},
861     {"ldfp8.c.nc.nt1",  LD (0x25, 1, C16)},
862     {"ldfp8.c.nc.nta",  LD (0x25, 3, C16)},
863 #undef LD
864
865     /* line prefetch */
866     {"lfetch",                  M0, OpMXX6aHint (6, 0, 0, 0x2c, 0), {MR3}},
867     {"lfetch.nt1",              M0, OpMXX6aHint (6, 0, 0, 0x2c, 1), {MR3}},
868     {"lfetch.nt2",              M0, OpMXX6aHint (6, 0, 0, 0x2c, 2), {MR3}},
869     {"lfetch.nta",              M0, OpMXX6aHint (6, 0, 0, 0x2c, 3), {MR3}},
870     {"lfetch.excl",             M0, OpMXX6aHint (6, 0, 0, 0x2d, 0), {MR3}},
871     {"lfetch.excl.nt1",         M0, OpMXX6aHint (6, 0, 0, 0x2d, 1), {MR3}},
872     {"lfetch.excl.nt2",         M0, OpMXX6aHint (6, 0, 0, 0x2d, 2), {MR3}},
873     {"lfetch.excl.nta",         M0, OpMXX6aHint (6, 0, 0, 0x2d, 3), {MR3}},
874     {"lfetch.fault",            M0, OpMXX6aHint (6, 0, 0, 0x2e, 0), {MR3}},
875     {"lfetch.fault.nt1",        M0, OpMXX6aHint (6, 0, 0, 0x2e, 1), {MR3}},
876     {"lfetch.fault.nt2",        M0, OpMXX6aHint (6, 0, 0, 0x2e, 2), {MR3}},
877     {"lfetch.fault.nta",        M0, OpMXX6aHint (6, 0, 0, 0x2e, 3), {MR3}},
878     {"lfetch.fault.excl",       M0, OpMXX6aHint (6, 0, 0, 0x2f, 0), {MR3}},
879     {"lfetch.fault.excl.nt1",   M0, OpMXX6aHint (6, 0, 0, 0x2f, 1), {MR3}},
880     {"lfetch.fault.excl.nt2",   M0, OpMXX6aHint (6, 0, 0, 0x2f, 2), {MR3}},
881     {"lfetch.fault.excl.nta",   M0, OpMXX6aHint (6, 0, 0, 0x2f, 3), {MR3}},
882
883     /* line prefetch w/increment by register */
884     {"lfetch",                  M0, OpMXX6aHint (6, 1, 0, 0x2c, 0), {MR3, R2}},
885     {"lfetch.nt1",              M0, OpMXX6aHint (6, 1, 0, 0x2c, 1), {MR3, R2}},
886     {"lfetch.nt2",              M0, OpMXX6aHint (6, 1, 0, 0x2c, 2), {MR3, R2}},
887     {"lfetch.nta",              M0, OpMXX6aHint (6, 1, 0, 0x2c, 3), {MR3, R2}},
888     {"lfetch.excl",             M0, OpMXX6aHint (6, 1, 0, 0x2d, 0), {MR3, R2}},
889     {"lfetch.excl.nt1",         M0, OpMXX6aHint (6, 1, 0, 0x2d, 1), {MR3, R2}},
890     {"lfetch.excl.nt2",         M0, OpMXX6aHint (6, 1, 0, 0x2d, 2), {MR3, R2}},
891     {"lfetch.excl.nta",         M0, OpMXX6aHint (6, 1, 0, 0x2d, 3), {MR3, R2}},
892     {"lfetch.fault",            M0, OpMXX6aHint (6, 1, 0, 0x2e, 0), {MR3, R2}},
893     {"lfetch.fault.nt1",        M0, OpMXX6aHint (6, 1, 0, 0x2e, 1), {MR3, R2}},
894     {"lfetch.fault.nt2",        M0, OpMXX6aHint (6, 1, 0, 0x2e, 2), {MR3, R2}},
895     {"lfetch.fault.nta",        M0, OpMXX6aHint (6, 1, 0, 0x2e, 3), {MR3, R2}},
896     {"lfetch.fault.excl",       M0, OpMXX6aHint (6, 1, 0, 0x2f, 0), {MR3, R2}},
897     {"lfetch.fault.excl.nt1",   M0, OpMXX6aHint (6, 1, 0, 0x2f, 1), {MR3, R2}},
898     {"lfetch.fault.excl.nt2",   M0, OpMXX6aHint (6, 1, 0, 0x2f, 2), {MR3, R2}},
899     {"lfetch.fault.excl.nta",   M0, OpMXX6aHint (6, 1, 0, 0x2f, 3), {MR3, R2}},
900
901     /* semaphore operations */
902     {"setf.sig",        M, OpMXX6a (6, 0, 1, 0x1c), {F1, R2}},
903     {"setf.exp",        M, OpMXX6a (6, 0, 1, 0x1d), {F1, R2}},
904     {"setf.s",          M, OpMXX6a (6, 0, 1, 0x1e), {F1, R2}},
905     {"setf.d",          M, OpMXX6a (6, 0, 1, 0x1f), {F1, R2}},
906
907     {"ldfs",            M, OpX6aHint (7, 0x02, 0), {F1, MR3, IMM9b}},
908     {"ldfs.nt1",        M, OpX6aHint (7, 0x02, 1), {F1, MR3, IMM9b}},
909     {"ldfs.nta",        M, OpX6aHint (7, 0x02, 3), {F1, MR3, IMM9b}},
910     {"ldfd",            M, OpX6aHint (7, 0x03, 0), {F1, MR3, IMM9b}},
911     {"ldfd.nt1",        M, OpX6aHint (7, 0x03, 1), {F1, MR3, IMM9b}},
912     {"ldfd.nta",        M, OpX6aHint (7, 0x03, 3), {F1, MR3, IMM9b}},
913     {"ldf8",            M, OpX6aHint (7, 0x01, 0), {F1, MR3, IMM9b}},
914     {"ldf8.nt1",        M, OpX6aHint (7, 0x01, 1), {F1, MR3, IMM9b}},
915     {"ldf8.nta",        M, OpX6aHint (7, 0x01, 3), {F1, MR3, IMM9b}},
916     {"ldfe",            M, OpX6aHint (7, 0x00, 0), {F1, MR3, IMM9b}},
917     {"ldfe.nt1",        M, OpX6aHint (7, 0x00, 1), {F1, MR3, IMM9b}},
918     {"ldfe.nta",        M, OpX6aHint (7, 0x00, 3), {F1, MR3, IMM9b}},
919     {"ldfs.s",          M, OpX6aHint (7, 0x06, 0), {F1, MR3, IMM9b}},
920     {"ldfs.s.nt1",      M, OpX6aHint (7, 0x06, 1), {F1, MR3, IMM9b}},
921     {"ldfs.s.nta",      M, OpX6aHint (7, 0x06, 3), {F1, MR3, IMM9b}},
922     {"ldfd.s",          M, OpX6aHint (7, 0x07, 0), {F1, MR3, IMM9b}},
923     {"ldfd.s.nt1",      M, OpX6aHint (7, 0x07, 1), {F1, MR3, IMM9b}},
924     {"ldfd.s.nta",      M, OpX6aHint (7, 0x07, 3), {F1, MR3, IMM9b}},
925     {"ldf8.s",          M, OpX6aHint (7, 0x05, 0), {F1, MR3, IMM9b}},
926     {"ldf8.s.nt1",      M, OpX6aHint (7, 0x05, 1), {F1, MR3, IMM9b}},
927     {"ldf8.s.nta",      M, OpX6aHint (7, 0x05, 3), {F1, MR3, IMM9b}},
928     {"ldfe.s",          M, OpX6aHint (7, 0x04, 0), {F1, MR3, IMM9b}},
929     {"ldfe.s.nt1",      M, OpX6aHint (7, 0x04, 1), {F1, MR3, IMM9b}},
930     {"ldfe.s.nta",      M, OpX6aHint (7, 0x04, 3), {F1, MR3, IMM9b}},
931     {"ldfs.a",          M, OpX6aHint (7, 0x0a, 0), {F1, MR3, IMM9b}},
932     {"ldfs.a.nt1",      M, OpX6aHint (7, 0x0a, 1), {F1, MR3, IMM9b}},
933     {"ldfs.a.nta",      M, OpX6aHint (7, 0x0a, 3), {F1, MR3, IMM9b}},
934     {"ldfd.a",          M, OpX6aHint (7, 0x0b, 0), {F1, MR3, IMM9b}},
935     {"ldfd.a.nt1",      M, OpX6aHint (7, 0x0b, 1), {F1, MR3, IMM9b}},
936     {"ldfd.a.nta",      M, OpX6aHint (7, 0x0b, 3), {F1, MR3, IMM9b}},
937     {"ldf8.a",          M, OpX6aHint (7, 0x09, 0), {F1, MR3, IMM9b}},
938     {"ldf8.a.nt1",      M, OpX6aHint (7, 0x09, 1), {F1, MR3, IMM9b}},
939     {"ldf8.a.nta",      M, OpX6aHint (7, 0x09, 3), {F1, MR3, IMM9b}},
940     {"ldfe.a",          M, OpX6aHint (7, 0x08, 0), {F1, MR3, IMM9b}},
941     {"ldfe.a.nt1",      M, OpX6aHint (7, 0x08, 1), {F1, MR3, IMM9b}},
942     {"ldfe.a.nta",      M, OpX6aHint (7, 0x08, 3), {F1, MR3, IMM9b}},
943     {"ldfs.sa",         M, OpX6aHint (7, 0x0e, 0), {F1, MR3, IMM9b}},
944     {"ldfs.sa.nt1",     M, OpX6aHint (7, 0x0e, 1), {F1, MR3, IMM9b}},
945     {"ldfs.sa.nta",     M, OpX6aHint (7, 0x0e, 3), {F1, MR3, IMM9b}},
946     {"ldfd.sa",         M, OpX6aHint (7, 0x0f, 0), {F1, MR3, IMM9b}},
947     {"ldfd.sa.nt1",     M, OpX6aHint (7, 0x0f, 1), {F1, MR3, IMM9b}},
948     {"ldfd.sa.nta",     M, OpX6aHint (7, 0x0f, 3), {F1, MR3, IMM9b}},
949     {"ldf8.sa",         M, OpX6aHint (7, 0x0d, 0), {F1, MR3, IMM9b}},
950     {"ldf8.sa.nt1",     M, OpX6aHint (7, 0x0d, 1), {F1, MR3, IMM9b}},
951     {"ldf8.sa.nta",     M, OpX6aHint (7, 0x0d, 3), {F1, MR3, IMM9b}},
952     {"ldfe.sa",         M, OpX6aHint (7, 0x0c, 0), {F1, MR3, IMM9b}},
953     {"ldfe.sa.nt1",     M, OpX6aHint (7, 0x0c, 1), {F1, MR3, IMM9b}},
954     {"ldfe.sa.nta",     M, OpX6aHint (7, 0x0c, 3), {F1, MR3, IMM9b}},
955     {"ldf.fill",        M, OpX6aHint (7, 0x1b, 0), {F1, MR3, IMM9b}},
956     {"ldf.fill.nt1",    M, OpX6aHint (7, 0x1b, 1), {F1, MR3, IMM9b}},
957     {"ldf.fill.nta",    M, OpX6aHint (7, 0x1b, 3), {F1, MR3, IMM9b}},
958     {"ldfs.c.clr",      M, OpX6aHint (7, 0x22, 0), {F1, MR3, IMM9b}},
959     {"ldfs.c.clr.nt1",  M, OpX6aHint (7, 0x22, 1), {F1, MR3, IMM9b}},
960     {"ldfs.c.clr.nta",  M, OpX6aHint (7, 0x22, 3), {F1, MR3, IMM9b}},
961     {"ldfd.c.clr",      M, OpX6aHint (7, 0x23, 0), {F1, MR3, IMM9b}},
962     {"ldfd.c.clr.nt1",  M, OpX6aHint (7, 0x23, 1), {F1, MR3, IMM9b}},
963     {"ldfd.c.clr.nta",  M, OpX6aHint (7, 0x23, 3), {F1, MR3, IMM9b}},
964     {"ldf8.c.clr",      M, OpX6aHint (7, 0x21, 0), {F1, MR3, IMM9b}},
965     {"ldf8.c.clr.nt1",  M, OpX6aHint (7, 0x21, 1), {F1, MR3, IMM9b}},
966     {"ldf8.c.clr.nta",  M, OpX6aHint (7, 0x21, 3), {F1, MR3, IMM9b}},
967     {"ldfe.c.clr",      M, OpX6aHint (7, 0x20, 0), {F1, MR3, IMM9b}},
968     {"ldfe.c.clr.nt1",  M, OpX6aHint (7, 0x20, 1), {F1, MR3, IMM9b}},
969     {"ldfe.c.clr.nta",  M, OpX6aHint (7, 0x20, 3), {F1, MR3, IMM9b}},
970     {"ldfs.c.nc",       M, OpX6aHint (7, 0x26, 0), {F1, MR3, IMM9b}},
971     {"ldfs.c.nc.nt1",   M, OpX6aHint (7, 0x26, 1), {F1, MR3, IMM9b}},
972     {"ldfs.c.nc.nta",   M, OpX6aHint (7, 0x26, 3), {F1, MR3, IMM9b}},
973     {"ldfd.c.nc",       M, OpX6aHint (7, 0x27, 0), {F1, MR3, IMM9b}},
974     {"ldfd.c.nc.nt1",   M, OpX6aHint (7, 0x27, 1), {F1, MR3, IMM9b}},
975     {"ldfd.c.nc.nta",   M, OpX6aHint (7, 0x27, 3), {F1, MR3, IMM9b}},
976     {"ldf8.c.nc",       M, OpX6aHint (7, 0x25, 0), {F1, MR3, IMM9b}},
977     {"ldf8.c.nc.nt1",   M, OpX6aHint (7, 0x25, 1), {F1, MR3, IMM9b}},
978     {"ldf8.c.nc.nta",   M, OpX6aHint (7, 0x25, 3), {F1, MR3, IMM9b}},
979     {"ldfe.c.nc",       M, OpX6aHint (7, 0x24, 0), {F1, MR3, IMM9b}},
980     {"ldfe.c.nc.nt1",   M, OpX6aHint (7, 0x24, 1), {F1, MR3, IMM9b}},
981     {"ldfe.c.nc.nta",   M, OpX6aHint (7, 0x24, 3), {F1, MR3, IMM9b}},
982
983     /* floating-point store w/increment by immediate */
984     {"stfs",            M, OpX6aHint (7, 0x32, 0), {MR3, F2, IMM9a}},
985     {"stfs.nta",        M, OpX6aHint (7, 0x32, 3), {MR3, F2, IMM9a}},
986     {"stfd",            M, OpX6aHint (7, 0x33, 0), {MR3, F2, IMM9a}},
987     {"stfd.nta",        M, OpX6aHint (7, 0x33, 3), {MR3, F2, IMM9a}},
988     {"stf8",            M, OpX6aHint (7, 0x31, 0), {MR3, F2, IMM9a}},
989     {"stf8.nta",        M, OpX6aHint (7, 0x31, 3), {MR3, F2, IMM9a}},
990     {"stfe",            M, OpX6aHint (7, 0x30, 0), {MR3, F2, IMM9a}},
991     {"stfe.nta",        M, OpX6aHint (7, 0x30, 3), {MR3, F2, IMM9a}},
992     {"stf.spill",       M, OpX6aHint (7, 0x3b, 0), {MR3, F2, IMM9a}},
993     {"stf.spill.nta",   M, OpX6aHint (7, 0x3b, 3), {MR3, F2, IMM9a}},
994
995     /* line prefetch w/increment by immediate */
996     {"lfetch",                  M0, OpX6aHint (7, 0x2c, 0), {MR3, IMM9b}},
997     {"lfetch.nt1",              M0, OpX6aHint (7, 0x2c, 1), {MR3, IMM9b}},
998     {"lfetch.nt2",              M0, OpX6aHint (7, 0x2c, 2), {MR3, IMM9b}},
999     {"lfetch.nta",              M0, OpX6aHint (7, 0x2c, 3), {MR3, IMM9b}},
1000     {"lfetch.excl",             M0, OpX6aHint (7, 0x2d, 0), {MR3, IMM9b}},
1001     {"lfetch.excl.nt1",         M0, OpX6aHint (7, 0x2d, 1), {MR3, IMM9b}},
1002     {"lfetch.excl.nt2",         M0, OpX6aHint (7, 0x2d, 2), {MR3, IMM9b}},
1003     {"lfetch.excl.nta",         M0, OpX6aHint (7, 0x2d, 3), {MR3, IMM9b}},
1004     {"lfetch.fault",            M0, OpX6aHint (7, 0x2e, 0), {MR3, IMM9b}},
1005     {"lfetch.fault.nt1",        M0, OpX6aHint (7, 0x2e, 1), {MR3, IMM9b}},
1006     {"lfetch.fault.nt2",        M0, OpX6aHint (7, 0x2e, 2), {MR3, IMM9b}},
1007     {"lfetch.fault.nta",        M0, OpX6aHint (7, 0x2e, 3), {MR3, IMM9b}},
1008     {"lfetch.fault.excl",       M0, OpX6aHint (7, 0x2f, 0), {MR3, IMM9b}},
1009     {"lfetch.fault.excl.nt1",   M0, OpX6aHint (7, 0x2f, 1), {MR3, IMM9b}},
1010     {"lfetch.fault.excl.nt2",   M0, OpX6aHint (7, 0x2f, 2), {MR3, IMM9b}},
1011     {"lfetch.fault.excl.nta",   M0, OpX6aHint (7, 0x2f, 3), {MR3, IMM9b}},
1012
1013     {0}
1014   };
1015
1016 #undef M0
1017 #undef M
1018 #undef M2
1019 #undef bM
1020 #undef bX
1021 #undef bX2
1022 #undef bX3
1023 #undef bX4
1024 #undef bX6a
1025 #undef bX6b
1026 #undef bHint
1027 #undef mM
1028 #undef mX
1029 #undef mX2
1030 #undef mX3
1031 #undef mX4
1032 #undef mX6a
1033 #undef mX6b
1034 #undef mHint
1035 #undef OpX3
1036 #undef OpX3X6b
1037 #undef OpX3X4
1038 #undef OpX3X4X2
1039 #undef OpX6aHint
1040 #undef OpXX6aHint
1041 #undef OpMXX6a
1042 #undef OpMXX6aHint