1 /* ia64-opc-m.c -- IA-64 `M' opcode table. 2 Copyright 1998, 1999, 2000 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 #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 378 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}}, 397 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}}, 436 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}}, 449 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}}, 454 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 569 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 591 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}}, 668 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 747 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}}, 759 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}}, 815 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 873 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}}, 891 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 911 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}}, 917 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 996 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 1010 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 1030 1031 {0} 1032 }; 1033 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 1061