1 1.1 christos /* ia64-opc-i.c -- IA-64 `I' opcode table. 2 1.10 christos Copyright (C) 1998-2025 Free Software Foundation, Inc. 3 1.1 christos Contributed by David Mosberger-Tang <davidm (at) hpl.hp.com> 4 1.1 christos 5 1.1 christos This file is part of the GNU opcodes library. 6 1.1 christos 7 1.1 christos This library is free software; you can redistribute it and/or modify 8 1.1 christos it under the terms of the GNU General Public License as published by 9 1.1 christos the Free Software Foundation; either version 3, or (at your option) 10 1.1 christos any later version. 11 1.1 christos 12 1.1 christos It is distributed in the hope that it will be useful, but WITHOUT 13 1.1 christos ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 14 1.1 christos or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 15 1.1 christos License for more details. 16 1.1 christos 17 1.1 christos You should have received a copy of the GNU General Public License 18 1.1 christos along with this file; see the file COPYING. If not, write to the 19 1.1 christos Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, 20 1.1 christos MA 02110-1301, USA. */ 21 1.1 christos 22 1.1 christos #include "ia64-opc.h" 23 1.1 christos 24 1.1 christos #define I0 IA64_TYPE_I, 0 25 1.1 christos #define I IA64_TYPE_I, 1 26 1.1 christos #define I2 IA64_TYPE_I, 2 27 1.1 christos 28 1.1 christos /* instruction bit fields: */ 29 1.1 christos #define bC(x) (((ia64_insn) ((x) & 0x1)) << 12) 30 1.1 christos #define bIh(x) (((ia64_insn) ((x) & 0x1)) << 23) 31 1.1 christos #define bTa(x) (((ia64_insn) ((x) & 0x1)) << 33) 32 1.1 christos #define bTag13(x) (((ia64_insn) ((x) & 0x1)) << 33) 33 1.1 christos #define bTb(x) (((ia64_insn) ((x) & 0x1)) << 36) 34 1.1 christos #define bVc(x) (((ia64_insn) ((x) & 0x1)) << 20) 35 1.1 christos #define bVe(x) (((ia64_insn) ((x) & 0x1)) << 32) 36 1.1 christos #define bWh(x) (((ia64_insn) ((x) & 0x3)) << 20) 37 1.1 christos #define bX(x) (((ia64_insn) ((x) & 0x1)) << 33) 38 1.1 christos #define bXb(x) (((ia64_insn) ((x) & 0x1)) << 22) 39 1.1 christos #define bXc(x) (((ia64_insn) ((x) & 0x1)) << 19) 40 1.1 christos #define bX2(x) (((ia64_insn) ((x) & 0x3)) << 34) 41 1.1 christos #define bX2a(x) (((ia64_insn) ((x) & 0x3)) << 34) 42 1.1 christos #define bX2b(x) (((ia64_insn) ((x) & 0x3)) << 28) 43 1.1 christos #define bX2c(x) (((ia64_insn) ((x) & 0x3)) << 30) 44 1.1 christos #define bX3(x) (((ia64_insn) ((x) & 0x7)) << 33) 45 1.1 christos #define bX6(x) (((ia64_insn) ((x) & 0x3f)) << 27) 46 1.1 christos #define bYa(x) (((ia64_insn) ((x) & 0x1)) << 13) 47 1.1 christos #define bYb(x) (((ia64_insn) ((x) & 0x1)) << 26) 48 1.1 christos #define bZa(x) (((ia64_insn) ((x) & 0x1)) << 36) 49 1.1 christos #define bZb(x) (((ia64_insn) ((x) & 0x1)) << 33) 50 1.1 christos 51 1.1 christos /* instruction bit masks: */ 52 1.1 christos #define mC bC (-1) 53 1.1 christos #define mIh bIh (-1) 54 1.1 christos #define mTa bTa (-1) 55 1.1 christos #define mTag13 bTag13 (-1) 56 1.1 christos #define mTb bTb (-1) 57 1.1 christos #define mVc bVc (-1) 58 1.1 christos #define mVe bVe (-1) 59 1.1 christos #define mWh bWh (-1) 60 1.1 christos #define mX bX (-1) 61 1.1 christos #define mXb bXb (-1) 62 1.1 christos #define mXc bXc (-1) 63 1.1 christos #define mX2 bX2 (-1) 64 1.1 christos #define mX2a bX2a (-1) 65 1.1 christos #define mX2b bX2b (-1) 66 1.1 christos #define mX2c bX2c (-1) 67 1.1 christos #define mX3 bX3 (-1) 68 1.1 christos #define mX6 bX6 (-1) 69 1.1 christos #define mYa bYa (-1) 70 1.1 christos #define mYb bYb (-1) 71 1.1 christos #define mZa bZa (-1) 72 1.1 christos #define mZb bZb (-1) 73 1.1 christos 74 1.1 christos #define OpZaZbVeX2aX2b(a,b,c,d,e,f) \ 75 1.1 christos (bOp (a) | bZa (b) | bZb (c) | bVe (d) | bX2a (e) | bX2b (f)), \ 76 1.1 christos (mOp | mZa | mZb | mVe | mX2a | mX2b) 77 1.1 christos #define OpZaZbVeX2aX2bX2c(a,b,c,d,e,f,g) \ 78 1.1 christos (bOp (a) | bZa (b) | bZb (c) | bVe (d) | bX2a (e) | bX2b (f) | bX2c (g)), \ 79 1.1 christos (mOp | mZa | mZb | mVe | mX2a | mX2b | mX2c) 80 1.1 christos #define OpX2X(a,b,c) (bOp (a) | bX2 (b) | bX (c)), (mOp | mX2 | mX) 81 1.1 christos #define OpX2XYa(a,b,c,d) (bOp (a) | bX2 (b) | bX (c) | bYa (d)), \ 82 1.1 christos (mOp | mX2 | mX | mYa) 83 1.1 christos #define OpX2XYb(a,b,c,d) (bOp (a) | bX2 (b) | bX (c) | bYb (d)), \ 84 1.1 christos (mOp | mX2 | mX | mYb) 85 1.1 christos #define OpX2TaTbYaC(a,b,c,d,e,f) \ 86 1.1 christos (bOp (a) | bX2 (b) | bTa (c) | bTb (d) | bYa (e) | bC (f)), \ 87 1.1 christos (mOp | mX2 | mTa | mTb | mYa | mC) 88 1.1 christos #define OpX2TaTbYaXcC(a,b,c,d,e,f,g) \ 89 1.1 christos (bOp (a) | bX2 (b) | bTa (c) | bTb (d) | bYa (e) | bXc (f) | bC (g)), \ 90 1.1 christos (mOp | mX2 | mTa | mTb | mYa | mXc | mC) 91 1.1 christos #define OpX3(a,b) (bOp (a) | bX3 (b)), (mOp | mX3) 92 1.1 christos #define OpX3X6(a,b,c) (bOp (a) | bX3 (b) | bX6(c)), \ 93 1.1 christos (mOp | mX3 | mX6) 94 1.1 christos #define OpX3X6Yb(a,b,c,d) (bOp (a) | bX3 (b) | bX6(c) | bYb(d)), \ 95 1.1 christos (mOp | mX3 | mX6 | mYb) 96 1.1 christos #define OpX3XbIhWh(a,b,c,d,e) \ 97 1.1 christos (bOp (a) | bX3 (b) | bXb (c) | bIh (d) | bWh (e)), \ 98 1.1 christos (mOp | mX3 | mXb | mIh | mWh) 99 1.1 christos #define OpX3XbIhWhTag13(a,b,c,d,e,f) \ 100 1.1 christos (bOp (a) | bX3 (b) | bXb (c) | bIh (d) | bWh (e) | bTag13 (f)), \ 101 1.1 christos (mOp | mX3 | mXb | mIh | mWh | mTag13) 102 1.1 christos 103 1.1 christos #define FULL17 ((ia64_insn)0x10ff001fc0LL) 104 1.1 christos 105 1.1 christos /* Used to initialise unused fields in ia64_opcode struct, 106 1.1 christos in order to stop gcc from complaining. */ 107 1.1 christos #define EMPTY 0,0,NULL 108 1.1 christos 109 1.1 christos struct ia64_opcode ia64_opcodes_i[] = 110 1.1 christos { 111 1.1 christos /* I-type instruction encodings (sorted according to major opcode). */ 112 1.1 christos 113 1.1 christos {"break.i", I0, OpX3X6 (0, 0, 0x00), {IMMU21}, X_IN_MLX, 0, NULL}, 114 1.1 christos {"nop.i", I0, OpX3X6Yb (0, 0, 0x01, 0), {IMMU21}, X_IN_MLX, 0, NULL}, 115 1.1 christos {"hint.i", I0, OpX3X6Yb (0, 0, 0x01, 1), {IMMU21}, X_IN_MLX, 0, NULL}, 116 1.1 christos {"chk.s.i", I0, OpX3 (0, 1), {R2, TGT25b}, EMPTY}, 117 1.1 christos 118 1.1 christos {"mov", I, OpX3XbIhWhTag13 (0, 7, 0, 0, 1, 0), {B1, R2}, PSEUDO, 0, NULL}, 119 1.1 christos #define MOV(a,b,c,d) \ 120 1.1 christos I, OpX3XbIhWh (0, a, b, c, d), {B1, R2, TAG13b}, EMPTY 121 1.1 christos {"mov.sptk", MOV (7, 0, 0, 0)}, 122 1.1 christos {"mov.sptk.imp", MOV (7, 0, 1, 0)}, 123 1.1 christos {"mov", MOV (7, 0, 0, 1)}, 124 1.1 christos {"mov.imp", MOV (7, 0, 1, 1)}, 125 1.1 christos {"mov.dptk", MOV (7, 0, 0, 2)}, 126 1.1 christos {"mov.dptk.imp", MOV (7, 0, 1, 2)}, 127 1.1 christos {"mov.ret.sptk", MOV (7, 1, 0, 0)}, 128 1.1 christos {"mov.ret.sptk.imp", MOV (7, 1, 1, 0)}, 129 1.1 christos {"mov.ret", MOV (7, 1, 0, 1)}, 130 1.1 christos {"mov.ret.imp", MOV (7, 1, 1, 1)}, 131 1.1 christos {"mov.ret.dptk", MOV (7, 1, 0, 2)}, 132 1.1 christos {"mov.ret.dptk.imp", MOV (7, 1, 1, 2)}, 133 1.1 christos #undef MOV 134 1.1 christos {"mov", I, OpX3X6 (0, 0, 0x31), {R1, B2}, EMPTY}, 135 1.1 christos {"mov", I, OpX3 (0, 3), {PR, R2, IMM17}, EMPTY}, 136 1.1 christos /* Don't remove one of the seemingly redundant FULL17-s. */ 137 1.1 christos {"mov", I, FULL17 | OpX3 (0, 3) | FULL17, {PR, R2}, PSEUDO, 0, NULL}, 138 1.1 christos {"mov", I, OpX3 (0, 2), {PR_ROT, IMM44}, EMPTY}, 139 1.1 christos {"mov", I, OpX3X6 (0, 0, 0x30), {R1, IP}, EMPTY}, 140 1.1 christos {"mov", I, OpX3X6 (0, 0, 0x33), {R1, PR}, EMPTY}, 141 1.1 christos {"mov.i", I, OpX3X6 (0, 0, 0x2a), {AR3, R2}, EMPTY}, 142 1.1 christos {"mov.i", I, OpX3X6 (0, 0, 0x0a), {AR3, IMM8}, EMPTY}, 143 1.1 christos {"mov.i", I, OpX3X6 (0, 0, 0x32), {R1, AR3}, EMPTY}, 144 1.1 christos {"zxt1", I, OpX3X6 (0, 0, 0x10), {R1, R3}, EMPTY}, 145 1.1 christos {"zxt2", I, OpX3X6 (0, 0, 0x11), {R1, R3}, EMPTY}, 146 1.1 christos {"zxt4", I, OpX3X6 (0, 0, 0x12), {R1, R3}, EMPTY}, 147 1.1 christos {"sxt1", I, OpX3X6 (0, 0, 0x14), {R1, R3}, EMPTY}, 148 1.1 christos {"sxt2", I, OpX3X6 (0, 0, 0x15), {R1, R3}, EMPTY}, 149 1.1 christos {"sxt4", I, OpX3X6 (0, 0, 0x16), {R1, R3}, EMPTY}, 150 1.1 christos {"czx1.l", I, OpX3X6 (0, 0, 0x18), {R1, R3}, EMPTY}, 151 1.1 christos {"czx2.l", I, OpX3X6 (0, 0, 0x19), {R1, R3}, EMPTY}, 152 1.1 christos {"czx1.r", I, OpX3X6 (0, 0, 0x1c), {R1, R3}, EMPTY}, 153 1.1 christos {"czx2.r", I, OpX3X6 (0, 0, 0x1d), {R1, R3}, EMPTY}, 154 1.1 christos 155 1.1 christos {"dep", I, Op (4), {R1, R2, R3, CPOS6c, LEN4}, EMPTY}, 156 1.1 christos 157 1.1 christos {"shrp", I, OpX2X (5, 3, 0), {R1, R2, R3, CNT6}, EMPTY}, 158 1.1 christos 159 1.1 christos {"shr.u", I, OpX2XYa (5, 1, 0, 0), {R1, R3, POS6}, 160 1.1 christos PSEUDO | LEN_EQ_64MCNT, 0, NULL}, 161 1.1 christos {"extr.u", I, OpX2XYa (5, 1, 0, 0), {R1, R3, POS6, LEN6}, EMPTY}, 162 1.1 christos 163 1.1 christos {"shr", I, OpX2XYa (5, 1, 0, 1), {R1, R3, POS6}, 164 1.1 christos PSEUDO | LEN_EQ_64MCNT, 0, NULL}, 165 1.1 christos {"extr", I, OpX2XYa (5, 1, 0, 1), {R1, R3, POS6, LEN6}, EMPTY}, 166 1.1 christos 167 1.1 christos {"shl", I, OpX2XYb (5, 1, 1, 0), {R1, R2, CPOS6a}, 168 1.1 christos PSEUDO | LEN_EQ_64MCNT, 0, NULL}, 169 1.1 christos {"dep.z", I, OpX2XYb (5, 1, 1, 0), {R1, R2, CPOS6a, LEN6}, EMPTY}, 170 1.1 christos {"dep.z", I, OpX2XYb (5, 1, 1, 1), {R1, IMM8, CPOS6a, LEN6}, EMPTY}, 171 1.1 christos {"dep", I, OpX2X (5, 3, 1), {R1, IMM1, R3, CPOS6b, LEN6}, EMPTY}, 172 1.1 christos #define TF(a,b,c) \ 173 1.1 christos I2, OpX2TaTbYaXcC (5, 0, a, b, 1, 1, c), {P1, P2, IMMU5b}, EMPTY 174 1.1 christos #define TFCM(a,b,c) \ 175 1.1 christos I2, OpX2TaTbYaXcC (5, 0, a, b, 1, 1, c), {P2, P1, IMMU5b}, PSEUDO, 0, NULL 176 1.1 christos {"tf.z", TF (0, 0, 0)}, 177 1.1 christos {"tf.nz", TFCM (0, 0, 0)}, 178 1.1 christos {"tf.z.unc", TF (0, 0, 1)}, 179 1.1 christos {"tf.nz.unc", TFCM (0, 0, 1)}, 180 1.1 christos {"tf.z.and", TF (0, 1, 0)}, 181 1.1 christos {"tf.nz.andcm", TFCM (0, 1, 0)}, 182 1.1 christos {"tf.nz.and", TF (0, 1, 1)}, 183 1.1 christos {"tf.z.andcm", TFCM (0, 1, 1)}, 184 1.1 christos {"tf.z.or", TF (1, 0, 0)}, 185 1.1 christos {"tf.nz.orcm", TFCM (1, 0, 0)}, 186 1.1 christos {"tf.nz.or", TF (1, 0, 1)}, 187 1.1 christos {"tf.z.orcm", TFCM (1, 0, 1)}, 188 1.1 christos {"tf.z.or.andcm", TF (1, 1, 0)}, 189 1.1 christos {"tf.nz.and.orcm", TFCM (1, 1, 0)}, 190 1.1 christos {"tf.nz.or.andcm", TF (1, 1, 1)}, 191 1.1 christos {"tf.z.and.orcm", TFCM (1, 1, 1)}, 192 1.1 christos #undef TF 193 1.1 christos #undef TFCM 194 1.1 christos #define TBIT(a,b,c,d) \ 195 1.1 christos I2, OpX2TaTbYaC (5, 0, a, b, c, d), {P1, P2, R3, POS6}, EMPTY 196 1.1 christos #define TBITCM(a,b,c,d) \ 197 1.1 christos I2, OpX2TaTbYaC (5, 0, a, b, c, d), {P2, P1, R3, POS6}, PSEUDO, 0, NULL 198 1.1 christos {"tbit.z", TBIT (0, 0, 0, 0)}, 199 1.1 christos {"tbit.nz", TBITCM (0, 0, 0, 0)}, 200 1.1 christos {"tbit.z.unc", TBIT (0, 0, 0, 1)}, 201 1.1 christos {"tbit.nz.unc", TBITCM (0, 0, 0, 1)}, 202 1.1 christos {"tbit.z.and", TBIT (0, 1, 0, 0)}, 203 1.1 christos {"tbit.nz.andcm", TBITCM (0, 1, 0, 0)}, 204 1.1 christos {"tbit.nz.and", TBIT (0, 1, 0, 1)}, 205 1.1 christos {"tbit.z.andcm", TBITCM (0, 1, 0, 1)}, 206 1.1 christos {"tbit.z.or", TBIT (1, 0, 0, 0)}, 207 1.1 christos {"tbit.nz.orcm", TBITCM (1, 0, 0, 0)}, 208 1.1 christos {"tbit.nz.or", TBIT (1, 0, 0, 1)}, 209 1.1 christos {"tbit.z.orcm", TBITCM (1, 0, 0, 1)}, 210 1.1 christos {"tbit.z.or.andcm", TBIT (1, 1, 0, 0)}, 211 1.1 christos {"tbit.nz.and.orcm", TBITCM (1, 1, 0, 0)}, 212 1.1 christos {"tbit.nz.or.andcm", TBIT (1, 1, 0, 1)}, 213 1.1 christos {"tbit.z.and.orcm", TBITCM (1, 1, 0, 1)}, 214 1.1 christos #undef TBIT 215 1.1 christos #undef TBITCM 216 1.1 christos #define TNAT(a,b,c,d) \ 217 1.1 christos I2, OpX2TaTbYaC (5, 0, a, b, c, d), {P1, P2, R3}, EMPTY 218 1.1 christos #define TNATCM(a,b,c,d) \ 219 1.1 christos I2, OpX2TaTbYaC (5, 0, a, b, c, d), {P2, P1, R3}, PSEUDO, 0, NULL 220 1.1 christos {"tnat.z", TNAT (0, 0, 1, 0)}, 221 1.1 christos {"tnat.nz", TNATCM (0, 0, 1, 0)}, 222 1.1 christos {"tnat.z.unc", TNAT (0, 0, 1, 1)}, 223 1.1 christos {"tnat.nz.unc", TNATCM (0, 0, 1, 1)}, 224 1.1 christos {"tnat.z.and", TNAT (0, 1, 1, 0)}, 225 1.1 christos {"tnat.nz.andcm", TNATCM (0, 1, 1, 0)}, 226 1.1 christos {"tnat.nz.and", TNAT (0, 1, 1, 1)}, 227 1.1 christos {"tnat.z.andcm", TNATCM (0, 1, 1, 1)}, 228 1.1 christos {"tnat.z.or", TNAT (1, 0, 1, 0)}, 229 1.1 christos {"tnat.nz.orcm", TNATCM (1, 0, 1, 0)}, 230 1.1 christos {"tnat.nz.or", TNAT (1, 0, 1, 1)}, 231 1.1 christos {"tnat.z.orcm", TNATCM (1, 0, 1, 1)}, 232 1.1 christos {"tnat.z.or.andcm", TNAT (1, 1, 1, 0)}, 233 1.1 christos {"tnat.nz.and.orcm", TNATCM (1, 1, 1, 0)}, 234 1.1 christos {"tnat.nz.or.andcm", TNAT (1, 1, 1, 1)}, 235 1.1 christos {"tnat.z.and.orcm", TNATCM (1, 1, 1, 1)}, 236 1.1 christos #undef TNAT 237 1.1 christos #undef TNATCM 238 1.1 christos 239 1.1 christos {"pmpyshr2", I, OpZaZbVeX2aX2b (7, 0, 1, 0, 0, 3), {R1, R2, R3, CNT2c}, EMPTY}, 240 1.1 christos {"pmpyshr2.u", I, OpZaZbVeX2aX2b (7, 0, 1, 0, 0, 1), {R1, R2, R3, CNT2c}, EMPTY}, 241 1.1 christos {"pmpy2.r", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 2, 1, 3), {R1, R2, R3}, EMPTY}, 242 1.1 christos {"pmpy2.l", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 2, 3, 3), {R1, R2, R3}, EMPTY}, 243 1.1 christos {"mix1.r", I, OpZaZbVeX2aX2bX2c (7, 0, 0, 0, 2, 0, 2), {R1, R2, R3}, EMPTY}, 244 1.1 christos {"mix2.r", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 2, 0, 2), {R1, R2, R3}, EMPTY}, 245 1.1 christos {"mix4.r", I, OpZaZbVeX2aX2bX2c (7, 1, 0, 0, 2, 0, 2), {R1, R2, R3}, EMPTY}, 246 1.1 christos {"mix1.l", I, OpZaZbVeX2aX2bX2c (7, 0, 0, 0, 2, 2, 2), {R1, R2, R3}, EMPTY}, 247 1.1 christos {"mix2.l", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 2, 2, 2), {R1, R2, R3}, EMPTY}, 248 1.1 christos {"mix4.l", I, OpZaZbVeX2aX2bX2c (7, 1, 0, 0, 2, 2, 2), {R1, R2, R3}, EMPTY}, 249 1.1 christos {"pack2.uss", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 2, 0, 0), {R1, R2, R3}, EMPTY}, 250 1.1 christos {"pack2.sss", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 2, 2, 0), {R1, R2, R3}, EMPTY}, 251 1.1 christos {"pack4.sss", I, OpZaZbVeX2aX2bX2c (7, 1, 0, 0, 2, 2, 0), {R1, R2, R3}, EMPTY}, 252 1.1 christos {"unpack1.h", I, OpZaZbVeX2aX2bX2c (7, 0, 0, 0, 2, 0, 1), {R1, R2, R3}, EMPTY}, 253 1.1 christos {"unpack2.h", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 2, 0, 1), {R1, R2, R3}, EMPTY}, 254 1.1 christos {"unpack4.h", I, OpZaZbVeX2aX2bX2c (7, 1, 0, 0, 2, 0, 1), {R1, R2, R3}, EMPTY}, 255 1.1 christos {"unpack1.l", I, OpZaZbVeX2aX2bX2c (7, 0, 0, 0, 2, 2, 1), {R1, R2, R3}, EMPTY}, 256 1.1 christos {"unpack2.l", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 2, 2, 1), {R1, R2, R3}, EMPTY}, 257 1.1 christos {"unpack4.l", I, OpZaZbVeX2aX2bX2c (7, 1, 0, 0, 2, 2, 1), {R1, R2, R3}, EMPTY}, 258 1.1 christos {"pmin1.u", I, OpZaZbVeX2aX2bX2c (7, 0, 0, 0, 2, 1, 0), {R1, R2, R3}, EMPTY}, 259 1.1 christos {"pmax1.u", I, OpZaZbVeX2aX2bX2c (7, 0, 0, 0, 2, 1, 1), {R1, R2, R3}, EMPTY}, 260 1.1 christos {"pmin2", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 2, 3, 0), {R1, R2, R3}, EMPTY}, 261 1.1 christos {"pmax2", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 2, 3, 1), {R1, R2, R3}, EMPTY}, 262 1.1 christos {"psad1", I, OpZaZbVeX2aX2bX2c (7, 0, 0, 0, 2, 3, 2), {R1, R2, R3}, EMPTY}, 263 1.1 christos {"mux1", I, OpZaZbVeX2aX2bX2c (7, 0, 0, 0, 3, 2, 2), {R1, R2, MBTYPE4}, EMPTY}, 264 1.1 christos {"mux2", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 3, 2, 2), {R1, R2, MHTYPE8}, EMPTY}, 265 1.1 christos {"pshr2", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 0, 2, 0), {R1, R3, R2}, EMPTY}, 266 1.1 christos {"pshr4", I, OpZaZbVeX2aX2bX2c (7, 1, 0, 0, 0, 2, 0), {R1, R3, R2}, EMPTY}, 267 1.1 christos {"shr", I, OpZaZbVeX2aX2bX2c (7, 1, 1, 0, 0, 2, 0), {R1, R3, R2}, EMPTY}, 268 1.1 christos {"pshr2.u", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 0, 0, 0), {R1, R3, R2}, EMPTY}, 269 1.1 christos {"pshr4.u", I, OpZaZbVeX2aX2bX2c (7, 1, 0, 0, 0, 0, 0), {R1, R3, R2}, EMPTY}, 270 1.1 christos {"shr.u", I, OpZaZbVeX2aX2bX2c (7, 1, 1, 0, 0, 0, 0), {R1, R3, R2}, EMPTY}, 271 1.1 christos {"pshr2", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 1, 3, 0), {R1, R3, CNT5}, EMPTY}, 272 1.1 christos {"pshr4", I, OpZaZbVeX2aX2bX2c (7, 1, 0, 0, 1, 3, 0), {R1, R3, CNT5}, EMPTY}, 273 1.1 christos {"pshr2.u", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 1, 1, 0), {R1, R3, CNT5}, EMPTY}, 274 1.1 christos {"pshr4.u", I, OpZaZbVeX2aX2bX2c (7, 1, 0, 0, 1, 1, 0), {R1, R3, CNT5}, EMPTY}, 275 1.1 christos {"pshl2", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 0, 0, 1), {R1, R2, R3}, EMPTY}, 276 1.1 christos {"pshl4", I, OpZaZbVeX2aX2bX2c (7, 1, 0, 0, 0, 0, 1), {R1, R2, R3}, EMPTY}, 277 1.1 christos {"shl", I, OpZaZbVeX2aX2bX2c (7, 1, 1, 0, 0, 0, 1), {R1, R2, R3}, EMPTY}, 278 1.1 christos {"mpy4", I, OpZaZbVeX2aX2bX2c (7, 1, 0, 0, 0, 1, 3), {R1, R2, R3}, EMPTY}, 279 1.1 christos {"mpyshl4", I, OpZaZbVeX2aX2bX2c (7, 1, 0, 0, 0, 3, 3), {R1, R2, R3}, EMPTY}, 280 1.1 christos {"pshl2", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 3, 1, 1), {R1, R2, CCNT5}, EMPTY}, 281 1.1 christos {"pshl4", I, OpZaZbVeX2aX2bX2c (7, 1, 0, 0, 3, 1, 1), {R1, R2, CCNT5}, EMPTY}, 282 1.1 christos {"popcnt", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 1, 1, 2), {R1, R3}, EMPTY}, 283 1.1 christos {"clz", I, OpZaZbVeX2aX2bX2c (7, 0, 1, 0, 1, 1, 3), {R1, R3}, EMPTY}, 284 1.1 christos 285 1.1 christos {NULL, 0, 0, 0, 0, {0}, 0, 0, NULL} 286 1.1 christos }; 287 1.1 christos 288 1.1 christos #undef I0 289 1.1 christos #undef I 290 1.1 christos #undef I2 291 1.1 christos #undef L 292 1.1 christos #undef bC 293 1.1 christos #undef bIh 294 1.1 christos #undef bTa 295 1.1 christos #undef bTag13 296 1.1 christos #undef bTb 297 1.1 christos #undef bVc 298 1.1 christos #undef bVe 299 1.1 christos #undef bWh 300 1.1 christos #undef bX 301 1.1 christos #undef bXb 302 1.1 christos #undef bX2 303 1.1 christos #undef bX2a 304 1.1 christos #undef bX2b 305 1.1 christos #undef bX2c 306 1.1 christos #undef bX3 307 1.1 christos #undef bX6 308 1.1 christos #undef bY 309 1.1 christos #undef bZa 310 1.1 christos #undef bZb 311 1.1 christos #undef mC 312 1.1 christos #undef mIh 313 1.1 christos #undef mTa 314 1.1 christos #undef mTag13 315 1.1 christos #undef mTb 316 1.1 christos #undef mVc 317 1.1 christos #undef mVe 318 1.1 christos #undef mWh 319 1.1 christos #undef mX 320 1.1 christos #undef mXb 321 1.1 christos #undef mX2 322 1.1 christos #undef mX2a 323 1.1 christos #undef mX2b 324 1.1 christos #undef mX2c 325 1.1 christos #undef mX3 326 1.1 christos #undef mX6 327 1.1 christos #undef mY 328 1.1 christos #undef mZa 329 1.1 christos #undef mZb 330 1.1 christos #undef OpZaZbVeX2aX2b 331 1.1 christos #undef OpZaZbVeX2aX2bX2c 332 1.1 christos #undef OpX2X 333 1.1 christos #undef OpX2XYa 334 1.1 christos #undef OpX2XYb 335 1.1 christos #undef OpX2TaTbYaC 336 1.1 christos #undef OpX3 337 1.1 christos #undef OpX3X6 338 1.1 christos #undef OpX3XbIhWh 339 1.1 christos #undef OpX3XbIhWhTag13 340 1.1 christos #undef EMPTY 341