1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ 2|* *| 3|*Assembly Writer Source Fragment *| 4|* *| 5|* Automatically generated file, do not edit! *| 6|* *| 7\*===----------------------------------------------------------------------===*/ 8 9#include <stdio.h> 10 11/// printInstruction - This method is automatically generated by tablegen 12/// from the instruction set description. 13static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI) { 14 static const uint32_t OpInfo[] = { 15 0U, // PHI 16 0U, // INLINEASM 17 0U, // CFI_INSTRUCTION 18 0U, // EH_LABEL 19 0U, // GC_LABEL 20 0U, // KILL 21 0U, // EXTRACT_SUBREG 22 0U, // INSERT_SUBREG 23 0U, // IMPLICIT_DEF 24 0U, // SUBREG_TO_REG 25 0U, // COPY_TO_REGCLASS 26 882U, // DBG_VALUE 27 0U, // REG_SEQUENCE 28 0U, // COPY 29 875U, // BUNDLE 30 904U, // LIFETIME_START 31 862U, // LIFETIME_END 32 0U, // STACKMAP 33 0U, // PATCHPOINT 34 0U, // LOAD_STACK_GUARD 35 0U, // STATEPOINT 36 0U, // FRAME_ALLOC 37 1126U, // ABS2_l2_rr 38 10847U, // ABS_l1_pp 39 1631U, // ABS_l1_rr 40 85006U, // ADD2_d2_rrr 41 85006U, // ADD2_l1_rrr_x2 42 85006U, // ADD2_s1_rrr 43 85171U, // ADD4_l1_rrr_x2 44 91479U, // ADDAB_d1_rir 45 91479U, // ADDAB_d1_rrr 46 91541U, // ADDAD_d1_rir 47 91541U, // ADDAD_d1_rrr 48 91577U, // ADDAH_d1_rir 49 91577U, // ADDAH_d1_rrr 50 91937U, // ADDAW_d1_rir 51 91937U, // ADDAW_d1_rrr 52 132488U, // ADDKPC_s3_iir 53 1518U, // ADDK_s2_ir 54 233140U, // ADDU_l1_rpp 55 216756U, // ADDU_l1_rrp_x2 56 91555U, // ADD_d1_rir 57 91555U, // ADD_d1_rrr 58 91555U, // ADD_d2_rir 59 85411U, // ADD_d2_rrr 60 232867U, // ADD_l1_ipp 61 85411U, // ADD_l1_irr 62 232867U, // ADD_l1_rpp 63 216483U, // ADD_l1_rrp_x2 64 85411U, // ADD_l1_rrr_x2 65 85411U, // ADD_s1_irr 66 85411U, // ADD_s1_rrr 67 85542U, // ANDN_d2_rrr 68 85542U, // ANDN_l1_rrr_x2 69 85542U, // ANDN_s4_rrr 70 85416U, // AND_d2_rir 71 85416U, // AND_d2_rrr 72 85416U, // AND_l1_irr 73 85416U, // AND_l1_rrr_x2 74 85416U, // AND_s1_irr 75 85416U, // AND_s1_rrr 76 85019U, // AVG2_m1_rrr 77 85232U, // AVGU4_m1_rrr 78 1410U, // BDEC_s8_ir 79 1196U, // BITC4_m2_rr 80 307756U, // BNOP_s10_ri 81 307756U, // BNOP_s9_ii 82 1654U, // BPOS_s8_ir 83 53588U, // B_s5_i 84 53588U, // B_s6_r 85 892U, // B_s7_irp 86 898U, // B_s7_nrp 87 353870U, // CLR_s15_riir 88 91726U, // CLR_s1_rrr 89 85080U, // CMPEQ2_s1_rrr 90 85207U, // CMPEQ4_s1_rrr 91 101938U, // CMPEQ_l1_ipr 92 85554U, // CMPEQ_l1_irr 93 101938U, // CMPEQ_l1_rpr 94 85554U, // CMPEQ_l1_rrr_x2 95 85109U, // CMPGT2_s1_rrr 96 85298U, // CMPGTU4_s1_rrr 97 102037U, // CMPGT_l1_ipr 98 85653U, // CMPGT_l1_irr 99 102037U, // CMPGT_l1_rpr 100 85653U, // CMPGT_l1_rrr_x2 101 102150U, // CMPLTU_l1_ipr 102 85766U, // CMPLTU_l1_irr 103 102150U, // CMPLTU_l1_rpr 104 85766U, // CMPLTU_l1_rrr_x2 105 102044U, // CMPLT_l1_ipr 106 85660U, // CMPLT_l1_irr 107 102044U, // CMPLT_l1_rpr 108 85660U, // CMPLT_l1_rrr_x2 109 1529U, // DEAL_m2_rr 110 216145U, // DOTP2_m1_rrp 111 85073U, // DOTP2_m1_rrr 112 85065U, // DOTPN2_m1_rrr 113 85124U, // DOTPNRSU2_m1_rrr 114 85135U, // DOTPRSU2_m1_rrr 115 85281U, // DOTPSU4_m1_rrr 116 85273U, // DOTPU4_m1_rrr 117 354062U, // EXTU_s15_riir 118 91918U, // EXTU_s1_rrr 119 353955U, // EXT_s15_riir 120 91811U, // EXT_s1_rrr 121 102142U, // GMPGTU_l1_ipr 122 85758U, // GMPGTU_l1_irr 123 102142U, // GMPGTU_l1_rpr 124 85758U, // GMPGTU_l1_rrr_x2 125 85321U, // GMPY4_m1_rrr 126 5800U, // LDBU_d5_mr 127 6824U, // LDBU_d6_mr 128 5470U, // LDB_d5_mr 129 6494U, // LDB_d6_mr 130 14120U, // LDDW_d7_mp 131 5818U, // LDHU_d5_mr 132 6842U, // LDHU_d6_mr 133 5568U, // LDH_d5_mr 134 6592U, // LDH_d6_mr 135 14131U, // LDNDW_d8_mp 136 5959U, // LDNW_d5_mr 137 5934U, // LDW_d5_mr 138 6958U, // LDW_d6_mr 139 85404U, // LMBD_l1_irr 140 85404U, // LMBD_l1_rrr_x2 141 85145U, // MAX2_l1_rrr_x2 142 85307U, // MAXU4_l1_rrr_x2 143 85059U, // MIN2_l1_rrr_x2 144 85266U, // MINU4_l1_rrr_x2 145 216224U, // MPY2_m1_rrp 146 85566U, // MPYHIR_m1_rrr 147 216544U, // MPYHI_m1_rrp 148 85720U, // MPYHLU_m4_rrr 149 85516U, // MPYHL_m4_rrr 150 85728U, // MPYHSLU_m4_rrr 151 85743U, // MPYHSU_m4_rrr 152 85613U, // MPYHULS_m4_rrr 153 85628U, // MPYHUS_m4_rrr 154 85713U, // MPYHU_m4_rrr 155 85466U, // MPYH_m4_rrr 156 85696U, // MPYLHU_m4_rrr 157 85453U, // MPYLH_m4_rrr 158 85574U, // MPYLIR_m1_rrr 159 216551U, // MPYLI_m1_rrp 160 85704U, // MPYLSHU_m4_rrr 161 85604U, // MPYLUHS_m4_rrr 162 216362U, // MPYSU4_m1_rrp 163 85751U, // MPYSU_m4_irr 164 85751U, // MPYSU_m4_rrr 165 216386U, // MPYU4_m1_rrp 166 85636U, // MPYUS_m4_rrr 167 85780U, // MPYU_m4_rrr 168 85849U, // MPY_m4_irr 169 85849U, // MPY_m4_rrr 170 1424U, // MVC_s1_rr 171 1424U, // MVC_s1_rr2 172 1453U, // MVD_m2_rr 173 1477U, // MVKLH_s12_ir 174 1524U, // MVKL_s12_ir 175 1524U, // MVK_d1_rr 176 1524U, // MVK_l2_ir 177 53249U, // NOP_n 178 2592U, // NORM_l1_pr 179 1568U, // NORM_l1_rr 180 85588U, // OR_d2_rir 181 85588U, // OR_d2_rrr 182 85588U, // OR_l1_irr 183 85588U, // OR_l1_rrr_x2 184 85588U, // OR_s1_irr 185 85588U, // OR_s1_rrr 186 85043U, // PACK2_l1_rrr_x2 187 85043U, // PACK2_s4_rrr 188 85025U, // PACKH2_l1_rrr_x2 189 85025U, // PACKH2_s1_rrr 190 85184U, // PACKH4_l1_rrr_x2 191 85050U, // PACKHL2_l1_rrr_x2 192 85050U, // PACKHL2_s1_rrr 193 85192U, // PACKL4_l1_rrr_x2 194 85033U, // PACKLH2_l1_rrr_x2 195 85033U, // PACKLH2_s1_rrr 196 91667U, // ROTL_m1_rir 197 91667U, // ROTL_m1_rrr 198 85005U, // SADD2_s4_rrr 199 85224U, // SADDU4_s4_rrr 200 85100U, // SADDUS2_s4_rrr 201 232866U, // SADD_l1_ipp 202 85410U, // SADD_l1_irr 203 232866U, // SADD_l1_rpp 204 85410U, // SADD_l1_rrr_x2 205 85410U, // SADD_s1_rrr 206 2699U, // SAT_l1_pr 207 353936U, // SET_s15_riir 208 91792U, // SET_s1_rrr 209 1535U, // SHFL_m2_rr 210 85347U, // SHLMB_l1_rrr_x2 211 85347U, // SHLMB_s4_rrr 212 223750U, // SHL_s1_pip 213 223750U, // SHL_s1_prp 214 222726U, // SHL_s1_rip 215 91654U, // SHL_s1_rir 216 222726U, // SHL_s1_rrp 217 91654U, // SHL_s1_rrr 218 91232U, // SHR2_s1_rir 219 91232U, // SHR2_s4_rrr 220 85354U, // SHRMB_l1_rrr_x2 221 85354U, // SHRMB_s4_rrr 222 91261U, // SHRU2_s1_rir 223 91261U, // SHRU2_s4_rrr 224 223977U, // SHRU_s1_pip 225 223977U, // SHRU_s1_prp 226 91881U, // SHRU_s1_rir 227 91881U, // SHRU_s1_rrr 228 223801U, // SHR_s1_pip 229 223801U, // SHR_s1_prp 230 91705U, // SHR_s1_rir 231 91705U, // SHR_s1_rrr 232 216223U, // SMPY2_m1_rrp 233 85515U, // SMPYHL_m4_rrr 234 85465U, // SMPYH_m4_rrr 235 85452U, // SMPYLH_m4_rrr 236 85848U, // SMPY_m4_rrr 237 85042U, // SPACK2_s4_rrr 238 85248U, // SPACKU4_s4_rrr 239 91653U, // SSHL_s1_rir 240 91653U, // SSHL_s1_rrr 241 85529U, // SSHVL_m1_rrr 242 85592U, // SSHVR_m1_rrr 243 232822U, // SSUB_l1_ipp 244 85366U, // SSUB_l1_irr 245 85366U, // SSUB_l1_rrr_x1 246 85366U, // SSUB_l1_rrr_x2 247 438641U, // STB_d5_rm 248 504177U, // STB_d6_rm 249 8001U, // STDW_d7_pm 250 438740U, // STH_d5_rm 251 504276U, // STH_d6_rm 252 7994U, // STNDW_d8_pm 253 439117U, // STNW_d5_rm 254 439123U, // STW_d5_rm 255 504659U, // STW_d6_rm 256 84999U, // SUB2_d2_rrr 257 84999U, // SUB2_l1_rrr_x2 258 84999U, // SUB2_s1_rrr 259 85158U, // SUB4_l1_rrr_x2 260 85215U, // SUBABS4_l1_rrr_x2 261 91472U, // SUBAB_d1_rir 262 91472U, // SUBAB_d1_rrr 263 91472U, // SUBAH_d1_rir 264 91570U, // SUBAH_d1_rrr 265 91472U, // SUBAW_d1_rir 266 91930U, // SUBAW_d1_rrr 267 85372U, // SUBC_l1_rrr_x2 268 216750U, // SUBU_l1_rrp_x1 269 216750U, // SUBU_l1_rrp_x2 270 91511U, // SUB_d1_rir 271 91511U, // SUB_d1_rrr 272 85367U, // SUB_d2_rrr 273 232823U, // SUB_l1_ipp 274 85367U, // SUB_l1_irr 275 216439U, // SUB_l1_rrp_x1 276 216439U, // SUB_l1_rrp_x2 277 85367U, // SUB_l1_rrr_x1 278 85367U, // SUB_l1_rrr_x2 279 85367U, // SUB_s1_irr 280 85367U, // SUB_s1_rrr 281 91511U, // SUB_s4_rrr 282 1232U, // SWAP4_l2_rr 283 1271U, // UNPKHU4_l2_rr 284 1271U, // UNPKHU4_s14_rr 285 1289U, // UNPKLU4_l2_rr 286 1289U, // UNPKLU4_s14_rr 287 85587U, // XOR_d2_rir 288 85587U, // XOR_d2_rrr 289 85587U, // XOR_l1_irr 290 85587U, // XOR_l1_rrr_x2 291 85587U, // XOR_s1_irr 292 85587U, // XOR_s1_rrr 293 1044U, // XPND2_m2_rr 294 1209U, // XPND4_m2_rr 295 0U 296 }; 297 298 static char AsmStrs[] = { 299 /* 0 */ 'n', 'o', 'p', 9, 9, 0, 300 /* 6 */ 's', 'u', 'b', '2', 9, 0, 301 /* 12 */ 's', 'a', 'd', 'd', '2', 9, 0, 302 /* 19 */ 'x', 'p', 'n', 'd', '2', 9, 0, 303 /* 26 */ 'a', 'v', 'g', '2', 9, 0, 304 /* 32 */ 'p', 'a', 'c', 'k', 'h', '2', 9, 0, 305 /* 40 */ 'p', 'a', 'c', 'k', 'l', 'h', '2', 9, 0, 306 /* 49 */ 's', 'p', 'a', 'c', 'k', '2', 9, 0, 307 /* 57 */ 'p', 'a', 'c', 'k', 'h', 'l', '2', 9, 0, 308 /* 66 */ 'm', 'i', 'n', '2', 9, 0, 309 /* 72 */ 'd', 'o', 't', 'p', 'n', '2', 9, 0, 310 /* 80 */ 'd', 'o', 't', 'p', '2', 9, 0, 311 /* 87 */ 'c', 'm', 'p', 'e', 'q', '2', 9, 0, 312 /* 95 */ 's', 'h', 'r', '2', 9, 0, 313 /* 101 */ 'a', 'b', 's', '2', 9, 0, 314 /* 107 */ 's', 'a', 'd', 'd', 'u', 's', '2', 9, 0, 315 /* 116 */ 'c', 'm', 'p', 'g', 't', '2', 9, 0, 316 /* 124 */ 's', 'h', 'r', 'u', '2', 9, 0, 317 /* 131 */ 'd', 'o', 't', 'p', 'n', 'r', 's', 'u', '2', 9, 0, 318 /* 142 */ 'd', 'o', 't', 'p', 'r', 's', 'u', '2', 9, 0, 319 /* 152 */ 'm', 'a', 'x', '2', 9, 0, 320 /* 158 */ 's', 'm', 'p', 'y', '2', 9, 0, 321 /* 165 */ 's', 'u', 'b', '4', 9, 0, 322 /* 171 */ 'b', 'i', 't', 'c', '4', 9, 0, 323 /* 178 */ 'a', 'd', 'd', '4', 9, 0, 324 /* 184 */ 'x', 'p', 'n', 'd', '4', 9, 0, 325 /* 191 */ 'p', 'a', 'c', 'k', 'h', '4', 9, 0, 326 /* 199 */ 'p', 'a', 'c', 'k', 'l', '4', 9, 0, 327 /* 207 */ 's', 'w', 'a', 'p', '4', 9, 0, 328 /* 214 */ 'c', 'm', 'p', 'e', 'q', '4', 9, 0, 329 /* 222 */ 's', 'u', 'b', 'a', 'b', 's', '4', 9, 0, 330 /* 231 */ 's', 'a', 'd', 'd', 'u', '4', 9, 0, 331 /* 239 */ 'a', 'v', 'g', 'u', '4', 9, 0, 332 /* 246 */ 'u', 'n', 'p', 'k', 'h', 'u', '4', 9, 0, 333 /* 255 */ 's', 'p', 'a', 'c', 'k', 'u', '4', 9, 0, 334 /* 264 */ 'u', 'n', 'p', 'k', 'l', 'u', '4', 9, 0, 335 /* 273 */ 'm', 'i', 'n', 'u', '4', 9, 0, 336 /* 280 */ 'd', 'o', 't', 'p', 'u', '4', 9, 0, 337 /* 288 */ 'd', 'o', 't', 'p', 's', 'u', '4', 9, 0, 338 /* 297 */ 'm', 'p', 'y', 's', 'u', '4', 9, 0, 339 /* 305 */ 'c', 'm', 'p', 'g', 't', 'u', '4', 9, 0, 340 /* 314 */ 'm', 'a', 'x', 'u', '4', 9, 0, 341 /* 321 */ 'm', 'p', 'y', 'u', '4', 9, 0, 342 /* 328 */ 'g', 'm', 'p', 'y', '4', 9, 0, 343 /* 335 */ 's', 'u', 'b', 'a', 'b', 9, 0, 344 /* 342 */ 'a', 'd', 'd', 'a', 'b', 9, 0, 345 /* 349 */ 'l', 'd', 'b', 9, 0, 346 /* 354 */ 's', 'h', 'l', 'm', 'b', 9, 0, 347 /* 361 */ 's', 'h', 'r', 'm', 'b', 9, 0, 348 /* 368 */ 's', 't', 'b', 9, 0, 349 /* 373 */ 's', 's', 'u', 'b', 9, 0, 350 /* 379 */ 's', 'u', 'b', 'c', 9, 0, 351 /* 385 */ 'b', 'd', 'e', 'c', 9, 0, 352 /* 391 */ 'a', 'd', 'd', 'k', 'p', 'c', 9, 0, 353 /* 399 */ 'm', 'v', 'c', 9, 0, 354 /* 404 */ 'a', 'd', 'd', 'a', 'd', 9, 0, 355 /* 411 */ 'l', 'm', 'b', 'd', 9, 0, 356 /* 417 */ 's', 'a', 'd', 'd', 9, 0, 357 /* 423 */ 'a', 'n', 'd', 9, 0, 358 /* 428 */ 'm', 'v', 'd', 9, 0, 359 /* 433 */ 's', 'u', 'b', 'a', 'h', 9, 0, 360 /* 440 */ 'a', 'd', 'd', 'a', 'h', 9, 0, 361 /* 447 */ 'l', 'd', 'h', 9, 0, 362 /* 452 */ 'm', 'v', 'k', 'l', 'h', 9, 0, 363 /* 459 */ 's', 'm', 'p', 'y', 'l', 'h', 9, 0, 364 /* 467 */ 's', 't', 'h', 9, 0, 365 /* 472 */ 's', 'm', 'p', 'y', 'h', 9, 0, 366 /* 479 */ 'm', 'p', 'y', 'h', 'i', 9, 0, 367 /* 486 */ 'm', 'p', 'y', 'l', 'i', 9, 0, 368 /* 493 */ 'a', 'd', 'd', 'k', 9, 0, 369 /* 499 */ 'm', 'v', 'k', 9, 0, 370 /* 504 */ 'd', 'e', 'a', 'l', 9, 0, 371 /* 510 */ 's', 'h', 'f', 'l', 9, 0, 372 /* 516 */ 's', 's', 'h', 'l', 9, 0, 373 /* 522 */ 's', 'm', 'p', 'y', 'h', 'l', 9, 0, 374 /* 530 */ 'r', 'o', 't', 'l', 9, 0, 375 /* 536 */ 's', 's', 'h', 'v', 'l', 9, 0, 376 /* 543 */ 'n', 'o', 'r', 'm', 9, 0, 377 /* 549 */ 'a', 'n', 'd', 'n', 9, 0, 378 /* 555 */ 'b', 'n', 'o', 'p', 9, 0, 379 /* 561 */ 'c', 'm', 'p', 'e', 'q', 9, 0, 380 /* 568 */ 's', 'h', 'r', 9, 0, 381 /* 573 */ 'm', 'p', 'y', 'h', 'i', 'r', 9, 0, 382 /* 581 */ 'm', 'p', 'y', 'l', 'i', 'r', 9, 0, 383 /* 589 */ 'c', 'l', 'r', 9, 0, 384 /* 594 */ 'x', 'o', 'r', 9, 0, 385 /* 599 */ 's', 's', 'h', 'v', 'r', 9, 0, 386 /* 606 */ 'a', 'b', 's', 9, 0, 387 /* 611 */ 'm', 'p', 'y', 'l', 'u', 'h', 's', 9, 0, 388 /* 620 */ 'm', 'p', 'y', 'h', 'u', 'l', 's', 9, 0, 389 /* 629 */ 'b', 'p', 'o', 's', 9, 0, 390 /* 635 */ 'm', 'p', 'y', 'h', 'u', 's', 9, 0, 391 /* 643 */ 'm', 'p', 'y', 'u', 's', 9, 0, 392 /* 650 */ 's', 'a', 't', 9, 0, 393 /* 655 */ 's', 'e', 't', 9, 0, 394 /* 660 */ 'c', 'm', 'p', 'g', 't', 9, 0, 395 /* 667 */ 'c', 'm', 'p', 'l', 't', 9, 0, 396 /* 674 */ 'e', 'x', 't', 9, 0, 397 /* 679 */ 'l', 'd', 'b', 'u', 9, 0, 398 /* 685 */ 's', 'u', 'b', 'u', 9, 0, 399 /* 691 */ 'a', 'd', 'd', 'u', 9, 0, 400 /* 697 */ 'l', 'd', 'h', 'u', 9, 0, 401 /* 703 */ 'm', 'p', 'y', 'l', 'h', 'u', 9, 0, 402 /* 711 */ 'm', 'p', 'y', 'l', 's', 'h', 'u', 9, 0, 403 /* 720 */ 'm', 'p', 'y', 'h', 'u', 9, 0, 404 /* 727 */ 'm', 'p', 'y', 'h', 'l', 'u', 9, 0, 405 /* 735 */ 'm', 'p', 'y', 'h', 's', 'l', 'u', 9, 0, 406 /* 744 */ 's', 'h', 'r', 'u', 9, 0, 407 /* 750 */ 'm', 'p', 'y', 'h', 's', 'u', 9, 0, 408 /* 758 */ 'm', 'p', 'y', 's', 'u', 9, 0, 409 /* 765 */ 'c', 'm', 'p', 'g', 't', 'u', 9, 0, 410 /* 773 */ 'c', 'm', 'p', 'l', 't', 'u', 9, 0, 411 /* 781 */ 'e', 'x', 't', 'u', 9, 0, 412 /* 787 */ 'm', 'p', 'y', 'u', 9, 0, 413 /* 793 */ 's', 'u', 'b', 'a', 'w', 9, 0, 414 /* 800 */ 'a', 'd', 'd', 'a', 'w', 9, 0, 415 /* 807 */ 'l', 'd', 'd', 'w', 9, 0, 416 /* 813 */ 'l', 'd', 'w', 9, 0, 417 /* 818 */ 'l', 'd', 'n', 'd', 'w', 9, 0, 418 /* 825 */ 's', 't', 'n', 'd', 'w', 9, 0, 419 /* 832 */ 's', 't', 'd', 'w', 9, 0, 420 /* 838 */ 'l', 'd', 'n', 'w', 9, 0, 421 /* 844 */ 's', 't', 'n', 'w', 9, 0, 422 /* 850 */ 's', 't', 'w', 9, 0, 423 /* 855 */ 's', 'm', 'p', 'y', 9, 0, 424 /* 861 */ 'l', 'i', 'f', 'e', 't', 'i', 'm', 'e', '_', 'e', 'n', 'd', 0, 425 /* 874 */ 'b', 'u', 'n', 'd', 'l', 'e', 0, 426 /* 881 */ 'd', 'b', 'g', '_', 'v', 'a', 'l', 'u', 'e', 0, 427 /* 891 */ 'b', 9, 'i', 'r', 'p', 0, 428 /* 897 */ 'b', 9, 'n', 'r', 'p', 0, 429 /* 903 */ 'l', 'i', 'f', 'e', 't', 'i', 'm', 'e', '_', 's', 't', 'a', 'r', 't', 0, 430 }; 431 432 // Emit the opcode for the instruction. 433 uint32_t Bits = OpInfo[MCInst_getOpcode(MI)]; 434 // assert(Bits != 0 && "Cannot print this instruction."); 435#ifndef CAPSTONE_DIET 436 SStream_concat0(O, AsmStrs+(Bits & 1023)-1); 437#endif 438 439 440 // Fragment 0 encoded into 3 bits for 8 unique commands. 441 switch ((Bits >> 10) & 7) { 442 default: 443 case 0: 444 // DBG_VALUE, BUNDLE, LIFETIME_START, LIFETIME_END, B_s7_irp, B_s7_nrp 445 return; 446 break; 447 case 1: 448 // ABS2_l2_rr, ABS_l1_rr, ADDAB_d1_rir, ADDAB_d1_rrr, ADDAD_d1_rir, ADDAD... 449 printOperand(MI, 1, O); 450 SStream_concat0(O, ", "); 451 break; 452 case 2: 453 // ABS_l1_pp, NORM_l1_pr, SAT_l1_pr, SHL_s1_pip, SHL_s1_prp, SHRU_s1_pip,... 454 printRegPair(MI, 1, O); 455 SStream_concat0(O, ", "); 456 break; 457 case 3: 458 // ADD2_d2_rrr, ADD2_l1_rrr_x2, ADD2_s1_rrr, ADD4_l1_rrr_x2, ADDU_l1_rpp,... 459 printOperand(MI, 2, O); 460 SStream_concat0(O, ", "); 461 break; 462 case 4: 463 // BNOP_s10_ri, BNOP_s9_ii, B_s5_i, B_s6_r, NOP_n, STB_d5_rm, STB_d6_rm, ... 464 printOperand(MI, 0, O); 465 break; 466 case 5: 467 // LDBU_d5_mr, LDB_d5_mr, LDDW_d7_mp, LDHU_d5_mr, LDH_d5_mr, LDNDW_d8_mp,... 468 printMemOperand(MI, 1, O); 469 SStream_concat0(O, ", "); 470 break; 471 case 6: 472 // LDBU_d6_mr, LDB_d6_mr, LDHU_d6_mr, LDH_d6_mr, LDW_d6_mr 473 printMemOperand2(MI, 1, O); 474 SStream_concat0(O, ", "); 475 printOperand(MI, 0, O); 476 return; 477 break; 478 case 7: 479 // STDW_d7_pm, STNDW_d8_pm 480 printRegPair(MI, 0, O); 481 SStream_concat0(O, ", "); 482 printMemOperand(MI, 1, O); 483 return; 484 break; 485 } 486 487 488 // Fragment 1 encoded into 3 bits for 7 unique commands. 489 switch ((Bits >> 13) & 7) { 490 default: 491 case 0: 492 // ABS2_l2_rr, ABS_l1_rr, ADDKPC_s3_iir, ADDK_s2_ir, BDEC_s8_ir, BITC4_m2... 493 printOperand(MI, 0, O); 494 break; 495 case 1: 496 // ABS_l1_pp, LDDW_d7_mp, LDNDW_d8_mp 497 printRegPair(MI, 0, O); 498 return; 499 break; 500 case 2: 501 // ADD2_d2_rrr, ADD2_l1_rrr_x2, ADD2_s1_rrr, ADD4_l1_rrr_x2, ADDU_l1_rrp_... 502 printOperand(MI, 1, O); 503 SStream_concat0(O, ", "); 504 break; 505 case 3: 506 // ADDAB_d1_rir, ADDAB_d1_rrr, ADDAD_d1_rir, ADDAD_d1_rrr, ADDAH_d1_rir, ... 507 printOperand(MI, 2, O); 508 SStream_concat0(O, ", "); 509 break; 510 case 4: 511 // ADDU_l1_rpp, ADD_l1_ipp, ADD_l1_rpp, CMPEQ_l1_ipr, CMPEQ_l1_rpr, CMPGT... 512 printRegPair(MI, 1, O); 513 SStream_concat0(O, ", "); 514 break; 515 case 5: 516 // BNOP_s10_ri, BNOP_s9_ii, STB_d5_rm, STB_d6_rm, STH_d5_rm, STH_d6_rm, S... 517 SStream_concat0(O, ", "); 518 break; 519 case 6: 520 // B_s5_i, B_s6_r, NOP_n 521 return; 522 break; 523 } 524 525 526 // Fragment 2 encoded into 3 bits for 8 unique commands. 527 switch ((Bits >> 16) & 7) { 528 default: 529 case 0: 530 // ABS2_l2_rr, ABS_l1_rr, ADDK_s2_ir, BDEC_s8_ir, BITC4_m2_rr, BPOS_s8_ir... 531 return; 532 break; 533 case 1: 534 // ADD2_d2_rrr, ADD2_l1_rrr_x2, ADD2_s1_rrr, ADD4_l1_rrr_x2, ADDAB_d1_rir... 535 printOperand(MI, 0, O); 536 return; 537 break; 538 case 2: 539 // ADDKPC_s3_iir 540 SStream_concat0(O, ", "); 541 printOperand(MI, 2, O); 542 return; 543 break; 544 case 3: 545 // ADDU_l1_rpp, ADDU_l1_rrp_x2, ADD_l1_ipp, ADD_l1_rpp, ADD_l1_rrp_x2, DO... 546 printRegPair(MI, 0, O); 547 return; 548 break; 549 case 4: 550 // BNOP_s10_ri, BNOP_s9_ii 551 printOperand(MI, 1, O); 552 return; 553 break; 554 case 5: 555 // CLR_s15_riir, EXTU_s15_riir, EXT_s15_riir, SET_s15_riir 556 printOperand(MI, 3, O); 557 SStream_concat0(O, ", "); 558 printOperand(MI, 0, O); 559 return; 560 break; 561 case 6: 562 // STB_d5_rm, STH_d5_rm, STNW_d5_rm, STW_d5_rm 563 printMemOperand(MI, 1, O); 564 return; 565 break; 566 case 7: 567 // STB_d6_rm, STH_d6_rm, STW_d6_rm 568 printMemOperand2(MI, 1, O); 569 return; 570 break; 571 } 572 573} 574 575 576/// getRegisterName - This method is automatically generated by tblgen 577/// from the register set description. This returns the assembler name 578/// for the specified register. 579static char *getRegisterName(unsigned RegNo) { 580#ifndef CAPSTONE_DIET 581 static char AsmStrs[] = { 582 /* 0 */ 'a', '1', '0', 0, 583 /* 4 */ 'b', '1', '0', 0, 584 /* 8 */ 'a', '2', '0', 0, 585 /* 12 */ 'b', '2', '0', 0, 586 /* 16 */ 'a', '3', '0', 0, 587 /* 20 */ 'b', '3', '0', 0, 588 /* 24 */ 'a', '0', 0, 589 /* 27 */ 'b', '0', 0, 590 /* 30 */ 'a', '1', '1', 0, 591 /* 34 */ 'b', '1', '1', 0, 592 /* 38 */ 'a', '2', '1', 0, 593 /* 42 */ 'b', '2', '1', 0, 594 /* 46 */ 'a', '3', '1', 0, 595 /* 50 */ 'b', '3', '1', 0, 596 /* 54 */ 'a', '1', 0, 597 /* 57 */ 'b', '1', 0, 598 /* 60 */ 'p', 'c', 'e', '1', 0, 599 /* 65 */ 'a', '1', '2', 0, 600 /* 69 */ 'b', '1', '2', 0, 601 /* 73 */ 'a', '2', '2', 0, 602 /* 77 */ 'b', '2', '2', 0, 603 /* 81 */ 'a', '2', 0, 604 /* 84 */ 'b', '2', 0, 605 /* 87 */ 'a', '1', '3', 0, 606 /* 91 */ 'b', '1', '3', 0, 607 /* 95 */ 'a', '2', '3', 0, 608 /* 99 */ 'b', '2', '3', 0, 609 /* 103 */ 'a', '3', 0, 610 /* 106 */ 'b', '3', 0, 611 /* 109 */ 'a', '1', '4', 0, 612 /* 113 */ 'b', '1', '4', 0, 613 /* 117 */ 'a', '2', '4', 0, 614 /* 121 */ 'b', '2', '4', 0, 615 /* 125 */ 'a', '4', 0, 616 /* 128 */ 'b', '4', 0, 617 /* 131 */ 'a', '1', '5', 0, 618 /* 135 */ 'b', '1', '5', 0, 619 /* 139 */ 'a', '2', '5', 0, 620 /* 143 */ 'b', '2', '5', 0, 621 /* 147 */ 'a', '5', 0, 622 /* 150 */ 'b', '5', 0, 623 /* 153 */ 'a', '1', '6', 0, 624 /* 157 */ 'b', '1', '6', 0, 625 /* 161 */ 'a', '2', '6', 0, 626 /* 165 */ 'b', '2', '6', 0, 627 /* 169 */ 'a', '6', 0, 628 /* 172 */ 'b', '6', 0, 629 /* 175 */ 'a', '1', '7', 0, 630 /* 179 */ 'b', '1', '7', 0, 631 /* 183 */ 'a', '2', '7', 0, 632 /* 187 */ 'b', '2', '7', 0, 633 /* 191 */ 'a', '7', 0, 634 /* 194 */ 'b', '7', 0, 635 /* 197 */ 'a', '1', '8', 0, 636 /* 201 */ 'b', '1', '8', 0, 637 /* 205 */ 'a', '2', '8', 0, 638 /* 209 */ 'b', '2', '8', 0, 639 /* 213 */ 'a', '8', 0, 640 /* 216 */ 'b', '8', 0, 641 /* 219 */ 'a', '1', '9', 0, 642 /* 223 */ 'b', '1', '9', 0, 643 /* 227 */ 'a', '2', '9', 0, 644 /* 231 */ 'b', '2', '9', 0, 645 /* 235 */ 'a', '9', 0, 646 /* 238 */ 'b', '9', 0, 647 /* 241 */ 'g', 'p', 'l', 'y', 'a', 0, 648 /* 247 */ 'g', 'p', 'l', 'y', 'b', 0, 649 /* 253 */ 'r', 'i', 'l', 'c', 0, 650 /* 258 */ 't', 's', 'c', 'h', 0, 651 /* 263 */ 't', 's', 'c', 'l', 0, 652 /* 268 */ 'd', 'n', 'u', 'm', 0, 653 /* 273 */ 'r', 'e', 'p', 0, 654 /* 277 */ 'i', 'r', 'p', 0, 655 /* 281 */ 'n', 'r', 'p', 0, 656 /* 285 */ 'i', 's', 't', 'p', 0, 657 /* 290 */ 'e', 'c', 'r', 0, 658 /* 294 */ 'i', 'c', 'r', 0, 659 /* 298 */ 'd', 'i', 'e', 'r', 0, 660 /* 303 */ 'g', 'f', 'p', 'g', 'f', 'r', 0, 661 /* 310 */ 'a', 'm', 'r', 0, 662 /* 314 */ 'i', 'e', 'r', 'r', 0, 663 /* 319 */ 'c', 's', 'r', 0, 664 /* 323 */ 'i', 's', 'r', 0, 665 /* 327 */ 's', 's', 'r', 0, 666 /* 331 */ 'i', 't', 's', 'r', 0, 667 /* 336 */ 'n', 't', 's', 'r', 0, 668 }; 669 670 static const uint16_t RegAsmOffset[] = { 671 310, 319, 298, 268, 290, 303, 241, 247, 294, 299, 314, 254, 277, 323, 672 285, 331, 281, 336, 273, 253, 327, 258, 263, 332, 24, 54, 81, 103, 673 125, 147, 169, 191, 213, 235, 0, 30, 65, 87, 109, 131, 153, 175, 674 197, 219, 8, 38, 73, 95, 117, 139, 161, 183, 205, 227, 16, 46, 675 27, 57, 84, 106, 128, 150, 172, 194, 216, 238, 4, 34, 69, 91, 676 113, 135, 157, 179, 201, 223, 12, 42, 77, 99, 121, 143, 165, 187, 677 209, 231, 20, 50, 60, 678 }; 679 680 return AsmStrs+RegAsmOffset[RegNo-1]; 681#else 682 return NULL; 683#endif 684} 685