linux/arch/tile/include/uapi/arch/opcode_tilepro.h
<<
>>
Prefs
   1/* TILEPro opcode information.
   2 *
   3 * Copyright 2011 Tilera Corporation. All Rights Reserved.
   4 *
   5 *   This program is free software; you can redistribute it and/or
   6 *   modify it under the terms of the GNU General Public License
   7 *   as published by the Free Software Foundation, version 2.
   8 *
   9 *   This program is distributed in the hope that it will be useful, but
  10 *   WITHOUT ANY WARRANTY; without even the implied warranty of
  11 *   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
  12 *   NON INFRINGEMENT.  See the GNU General Public License for
  13 *   more details.
  14 *
  15 *
  16 *
  17 *
  18 *
  19 */
  20
  21#ifndef __ARCH_OPCODE_H__
  22#define __ARCH_OPCODE_H__
  23
  24#ifndef __ASSEMBLER__
  25
  26typedef unsigned long long tilepro_bundle_bits;
  27
  28/* This is the bit that determines if a bundle is in the Y encoding. */
  29#define TILEPRO_BUNDLE_Y_ENCODING_MASK ((tilepro_bundle_bits)1 << 63)
  30
  31enum
  32{
  33  /* Maximum number of instructions in a bundle (2 for X, 3 for Y). */
  34  TILEPRO_MAX_INSTRUCTIONS_PER_BUNDLE = 3,
  35
  36  /* How many different pipeline encodings are there? X0, X1, Y0, Y1, Y2. */
  37  TILEPRO_NUM_PIPELINE_ENCODINGS = 5,
  38
  39  /* Log base 2 of TILEPRO_BUNDLE_SIZE_IN_BYTES. */
  40  TILEPRO_LOG2_BUNDLE_SIZE_IN_BYTES = 3,
  41
  42  /* Instructions take this many bytes. */
  43  TILEPRO_BUNDLE_SIZE_IN_BYTES = 1 << TILEPRO_LOG2_BUNDLE_SIZE_IN_BYTES,
  44
  45  /* Log base 2 of TILEPRO_BUNDLE_ALIGNMENT_IN_BYTES. */
  46  TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES = 3,
  47
  48  /* Bundles should be aligned modulo this number of bytes. */
  49  TILEPRO_BUNDLE_ALIGNMENT_IN_BYTES =
  50    (1 << TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES),
  51
  52  /* Log base 2 of TILEPRO_SN_INSTRUCTION_SIZE_IN_BYTES. */
  53  TILEPRO_LOG2_SN_INSTRUCTION_SIZE_IN_BYTES = 1,
  54
  55  /* Static network instructions take this many bytes. */
  56  TILEPRO_SN_INSTRUCTION_SIZE_IN_BYTES =
  57    (1 << TILEPRO_LOG2_SN_INSTRUCTION_SIZE_IN_BYTES),
  58
  59  /* Number of registers (some are magic, such as network I/O). */
  60  TILEPRO_NUM_REGISTERS = 64,
  61
  62  /* Number of static network registers. */
  63  TILEPRO_NUM_SN_REGISTERS = 4
  64};
  65
  66/* Make a few "tile_" variables to simplify common code between
  67   architectures.  */
  68
  69typedef tilepro_bundle_bits tile_bundle_bits;
  70#define TILE_BUNDLE_SIZE_IN_BYTES TILEPRO_BUNDLE_SIZE_IN_BYTES
  71#define TILE_BUNDLE_ALIGNMENT_IN_BYTES TILEPRO_BUNDLE_ALIGNMENT_IN_BYTES
  72#define TILE_LOG2_BUNDLE_ALIGNMENT_IN_BYTES \
  73  TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES
  74#define TILE_BPT_BUNDLE TILEPRO_BPT_BUNDLE
  75
  76/* 64-bit pattern for a { bpt ; nop } bundle. */
  77#define TILEPRO_BPT_BUNDLE 0x400b3cae70166000ULL
  78
  79static __inline unsigned int
  80get_BrOff_SN(tilepro_bundle_bits num)
  81{
  82  const unsigned int n = (unsigned int)num;
  83  return (((n >> 0)) & 0x3ff);
  84}
  85
  86static __inline unsigned int
  87get_BrOff_X1(tilepro_bundle_bits n)
  88{
  89  return (((unsigned int)(n >> 43)) & 0x00007fff) |
  90         (((unsigned int)(n >> 20)) & 0x00018000);
  91}
  92
  93static __inline unsigned int
  94get_BrType_X1(tilepro_bundle_bits n)
  95{
  96  return (((unsigned int)(n >> 31)) & 0xf);
  97}
  98
  99static __inline unsigned int
 100get_Dest_Imm8_X1(tilepro_bundle_bits n)
 101{
 102  return (((unsigned int)(n >> 31)) & 0x0000003f) |
 103         (((unsigned int)(n >> 43)) & 0x000000c0);
 104}
 105
 106static __inline unsigned int
 107get_Dest_SN(tilepro_bundle_bits num)
 108{
 109  const unsigned int n = (unsigned int)num;
 110  return (((n >> 2)) & 0x3);
 111}
 112
 113static __inline unsigned int
 114get_Dest_X0(tilepro_bundle_bits num)
 115{
 116  const unsigned int n = (unsigned int)num;
 117  return (((n >> 0)) & 0x3f);
 118}
 119
 120static __inline unsigned int
 121get_Dest_X1(tilepro_bundle_bits n)
 122{
 123  return (((unsigned int)(n >> 31)) & 0x3f);
 124}
 125
 126static __inline unsigned int
 127get_Dest_Y0(tilepro_bundle_bits num)
 128{
 129  const unsigned int n = (unsigned int)num;
 130  return (((n >> 0)) & 0x3f);
 131}
 132
 133static __inline unsigned int
 134get_Dest_Y1(tilepro_bundle_bits n)
 135{
 136  return (((unsigned int)(n >> 31)) & 0x3f);
 137}
 138
 139static __inline unsigned int
 140get_Imm16_X0(tilepro_bundle_bits num)
 141{
 142  const unsigned int n = (unsigned int)num;
 143  return (((n >> 12)) & 0xffff);
 144}
 145
 146static __inline unsigned int
 147get_Imm16_X1(tilepro_bundle_bits n)
 148{
 149  return (((unsigned int)(n >> 43)) & 0xffff);
 150}
 151
 152static __inline unsigned int
 153get_Imm8_SN(tilepro_bundle_bits num)
 154{
 155  const unsigned int n = (unsigned int)num;
 156  return (((n >> 0)) & 0xff);
 157}
 158
 159static __inline unsigned int
 160get_Imm8_X0(tilepro_bundle_bits num)
 161{
 162  const unsigned int n = (unsigned int)num;
 163  return (((n >> 12)) & 0xff);
 164}
 165
 166static __inline unsigned int
 167get_Imm8_X1(tilepro_bundle_bits n)
 168{
 169  return (((unsigned int)(n >> 43)) & 0xff);
 170}
 171
 172static __inline unsigned int
 173get_Imm8_Y0(tilepro_bundle_bits num)
 174{
 175  const unsigned int n = (unsigned int)num;
 176  return (((n >> 12)) & 0xff);
 177}
 178
 179static __inline unsigned int
 180get_Imm8_Y1(tilepro_bundle_bits n)
 181{
 182  return (((unsigned int)(n >> 43)) & 0xff);
 183}
 184
 185static __inline unsigned int
 186get_ImmOpcodeExtension_X0(tilepro_bundle_bits num)
 187{
 188  const unsigned int n = (unsigned int)num;
 189  return (((n >> 20)) & 0x7f);
 190}
 191
 192static __inline unsigned int
 193get_ImmOpcodeExtension_X1(tilepro_bundle_bits n)
 194{
 195  return (((unsigned int)(n >> 51)) & 0x7f);
 196}
 197
 198static __inline unsigned int
 199get_ImmRROpcodeExtension_SN(tilepro_bundle_bits num)
 200{
 201  const unsigned int n = (unsigned int)num;
 202  return (((n >> 8)) & 0x3);
 203}
 204
 205static __inline unsigned int
 206get_JOffLong_X1(tilepro_bundle_bits n)
 207{
 208  return (((unsigned int)(n >> 43)) & 0x00007fff) |
 209         (((unsigned int)(n >> 20)) & 0x00018000) |
 210         (((unsigned int)(n >> 14)) & 0x001e0000) |
 211         (((unsigned int)(n >> 16)) & 0x07e00000) |
 212         (((unsigned int)(n >> 31)) & 0x18000000);
 213}
 214
 215static __inline unsigned int
 216get_JOff_X1(tilepro_bundle_bits n)
 217{
 218  return (((unsigned int)(n >> 43)) & 0x00007fff) |
 219         (((unsigned int)(n >> 20)) & 0x00018000) |
 220         (((unsigned int)(n >> 14)) & 0x001e0000) |
 221         (((unsigned int)(n >> 16)) & 0x07e00000) |
 222         (((unsigned int)(n >> 31)) & 0x08000000);
 223}
 224
 225static __inline unsigned int
 226get_MF_Imm15_X1(tilepro_bundle_bits n)
 227{
 228  return (((unsigned int)(n >> 37)) & 0x00003fff) |
 229         (((unsigned int)(n >> 44)) & 0x00004000);
 230}
 231
 232static __inline unsigned int
 233get_MMEnd_X0(tilepro_bundle_bits num)
 234{
 235  const unsigned int n = (unsigned int)num;
 236  return (((n >> 18)) & 0x1f);
 237}
 238
 239static __inline unsigned int
 240get_MMEnd_X1(tilepro_bundle_bits n)
 241{
 242  return (((unsigned int)(n >> 49)) & 0x1f);
 243}
 244
 245static __inline unsigned int
 246get_MMStart_X0(tilepro_bundle_bits num)
 247{
 248  const unsigned int n = (unsigned int)num;
 249  return (((n >> 23)) & 0x1f);
 250}
 251
 252static __inline unsigned int
 253get_MMStart_X1(tilepro_bundle_bits n)
 254{
 255  return (((unsigned int)(n >> 54)) & 0x1f);
 256}
 257
 258static __inline unsigned int
 259get_MT_Imm15_X1(tilepro_bundle_bits n)
 260{
 261  return (((unsigned int)(n >> 31)) & 0x0000003f) |
 262         (((unsigned int)(n >> 37)) & 0x00003fc0) |
 263         (((unsigned int)(n >> 44)) & 0x00004000);
 264}
 265
 266static __inline unsigned int
 267get_Mode(tilepro_bundle_bits n)
 268{
 269  return (((unsigned int)(n >> 63)) & 0x1);
 270}
 271
 272static __inline unsigned int
 273get_NoRegOpcodeExtension_SN(tilepro_bundle_bits num)
 274{
 275  const unsigned int n = (unsigned int)num;
 276  return (((n >> 0)) & 0xf);
 277}
 278
 279static __inline unsigned int
 280get_Opcode_SN(tilepro_bundle_bits num)
 281{
 282  const unsigned int n = (unsigned int)num;
 283  return (((n >> 10)) & 0x3f);
 284}
 285
 286static __inline unsigned int
 287get_Opcode_X0(tilepro_bundle_bits num)
 288{
 289  const unsigned int n = (unsigned int)num;
 290  return (((n >> 28)) & 0x7);
 291}
 292
 293static __inline unsigned int
 294get_Opcode_X1(tilepro_bundle_bits n)
 295{
 296  return (((unsigned int)(n >> 59)) & 0xf);
 297}
 298
 299static __inline unsigned int
 300get_Opcode_Y0(tilepro_bundle_bits num)
 301{
 302  const unsigned int n = (unsigned int)num;
 303  return (((n >> 27)) & 0xf);
 304}
 305
 306static __inline unsigned int
 307get_Opcode_Y1(tilepro_bundle_bits n)
 308{
 309  return (((unsigned int)(n >> 59)) & 0xf);
 310}
 311
 312static __inline unsigned int
 313get_Opcode_Y2(tilepro_bundle_bits n)
 314{
 315  return (((unsigned int)(n >> 56)) & 0x7);
 316}
 317
 318static __inline unsigned int
 319get_RROpcodeExtension_SN(tilepro_bundle_bits num)
 320{
 321  const unsigned int n = (unsigned int)num;
 322  return (((n >> 4)) & 0xf);
 323}
 324
 325static __inline unsigned int
 326get_RRROpcodeExtension_X0(tilepro_bundle_bits num)
 327{
 328  const unsigned int n = (unsigned int)num;
 329  return (((n >> 18)) & 0x1ff);
 330}
 331
 332static __inline unsigned int
 333get_RRROpcodeExtension_X1(tilepro_bundle_bits n)
 334{
 335  return (((unsigned int)(n >> 49)) & 0x1ff);
 336}
 337
 338static __inline unsigned int
 339get_RRROpcodeExtension_Y0(tilepro_bundle_bits num)
 340{
 341  const unsigned int n = (unsigned int)num;
 342  return (((n >> 18)) & 0x3);
 343}
 344
 345static __inline unsigned int
 346get_RRROpcodeExtension_Y1(tilepro_bundle_bits n)
 347{
 348  return (((unsigned int)(n >> 49)) & 0x3);
 349}
 350
 351static __inline unsigned int
 352get_RouteOpcodeExtension_SN(tilepro_bundle_bits num)
 353{
 354  const unsigned int n = (unsigned int)num;
 355  return (((n >> 0)) & 0x3ff);
 356}
 357
 358static __inline unsigned int
 359get_S_X0(tilepro_bundle_bits num)
 360{
 361  const unsigned int n = (unsigned int)num;
 362  return (((n >> 27)) & 0x1);
 363}
 364
 365static __inline unsigned int
 366get_S_X1(tilepro_bundle_bits n)
 367{
 368  return (((unsigned int)(n >> 58)) & 0x1);
 369}
 370
 371static __inline unsigned int
 372get_ShAmt_X0(tilepro_bundle_bits num)
 373{
 374  const unsigned int n = (unsigned int)num;
 375  return (((n >> 12)) & 0x1f);
 376}
 377
 378static __inline unsigned int
 379get_ShAmt_X1(tilepro_bundle_bits n)
 380{
 381  return (((unsigned int)(n >> 43)) & 0x1f);
 382}
 383
 384static __inline unsigned int
 385get_ShAmt_Y0(tilepro_bundle_bits num)
 386{
 387  const unsigned int n = (unsigned int)num;
 388  return (((n >> 12)) & 0x1f);
 389}
 390
 391static __inline unsigned int
 392get_ShAmt_Y1(tilepro_bundle_bits n)
 393{
 394  return (((unsigned int)(n >> 43)) & 0x1f);
 395}
 396
 397static __inline unsigned int
 398get_SrcA_X0(tilepro_bundle_bits num)
 399{
 400  const unsigned int n = (unsigned int)num;
 401  return (((n >> 6)) & 0x3f);
 402}
 403
 404static __inline unsigned int
 405get_SrcA_X1(tilepro_bundle_bits n)
 406{
 407  return (((unsigned int)(n >> 37)) & 0x3f);
 408}
 409
 410static __inline unsigned int
 411get_SrcA_Y0(tilepro_bundle_bits num)
 412{
 413  const unsigned int n = (unsigned int)num;
 414  return (((n >> 6)) & 0x3f);
 415}
 416
 417static __inline unsigned int
 418get_SrcA_Y1(tilepro_bundle_bits n)
 419{
 420  return (((unsigned int)(n >> 37)) & 0x3f);
 421}
 422
 423static __inline unsigned int
 424get_SrcA_Y2(tilepro_bundle_bits n)
 425{
 426  return (((n >> 26)) & 0x00000001) |
 427         (((unsigned int)(n >> 50)) & 0x0000003e);
 428}
 429
 430static __inline unsigned int
 431get_SrcBDest_Y2(tilepro_bundle_bits num)
 432{
 433  const unsigned int n = (unsigned int)num;
 434  return (((n >> 20)) & 0x3f);
 435}
 436
 437static __inline unsigned int
 438get_SrcB_X0(tilepro_bundle_bits num)
 439{
 440  const unsigned int n = (unsigned int)num;
 441  return (((n >> 12)) & 0x3f);
 442}
 443
 444static __inline unsigned int
 445get_SrcB_X1(tilepro_bundle_bits n)
 446{
 447  return (((unsigned int)(n >> 43)) & 0x3f);
 448}
 449
 450static __inline unsigned int
 451get_SrcB_Y0(tilepro_bundle_bits num)
 452{
 453  const unsigned int n = (unsigned int)num;
 454  return (((n >> 12)) & 0x3f);
 455}
 456
 457static __inline unsigned int
 458get_SrcB_Y1(tilepro_bundle_bits n)
 459{
 460  return (((unsigned int)(n >> 43)) & 0x3f);
 461}
 462
 463static __inline unsigned int
 464get_Src_SN(tilepro_bundle_bits num)
 465{
 466  const unsigned int n = (unsigned int)num;
 467  return (((n >> 0)) & 0x3);
 468}
 469
 470static __inline unsigned int
 471get_UnOpcodeExtension_X0(tilepro_bundle_bits num)
 472{
 473  const unsigned int n = (unsigned int)num;
 474  return (((n >> 12)) & 0x1f);
 475}
 476
 477static __inline unsigned int
 478get_UnOpcodeExtension_X1(tilepro_bundle_bits n)
 479{
 480  return (((unsigned int)(n >> 43)) & 0x1f);
 481}
 482
 483static __inline unsigned int
 484get_UnOpcodeExtension_Y0(tilepro_bundle_bits num)
 485{
 486  const unsigned int n = (unsigned int)num;
 487  return (((n >> 12)) & 0x1f);
 488}
 489
 490static __inline unsigned int
 491get_UnOpcodeExtension_Y1(tilepro_bundle_bits n)
 492{
 493  return (((unsigned int)(n >> 43)) & 0x1f);
 494}
 495
 496static __inline unsigned int
 497get_UnShOpcodeExtension_X0(tilepro_bundle_bits num)
 498{
 499  const unsigned int n = (unsigned int)num;
 500  return (((n >> 17)) & 0x3ff);
 501}
 502
 503static __inline unsigned int
 504get_UnShOpcodeExtension_X1(tilepro_bundle_bits n)
 505{
 506  return (((unsigned int)(n >> 48)) & 0x3ff);
 507}
 508
 509static __inline unsigned int
 510get_UnShOpcodeExtension_Y0(tilepro_bundle_bits num)
 511{
 512  const unsigned int n = (unsigned int)num;
 513  return (((n >> 17)) & 0x7);
 514}
 515
 516static __inline unsigned int
 517get_UnShOpcodeExtension_Y1(tilepro_bundle_bits n)
 518{
 519  return (((unsigned int)(n >> 48)) & 0x7);
 520}
 521
 522
 523static __inline int
 524sign_extend(int n, int num_bits)
 525{
 526  int shift = (int)(sizeof(int) * 8 - num_bits);
 527  return (n << shift) >> shift;
 528}
 529
 530
 531
 532static __inline tilepro_bundle_bits
 533create_BrOff_SN(int num)
 534{
 535  const unsigned int n = (unsigned int)num;
 536  return ((n & 0x3ff) << 0);
 537}
 538
 539static __inline tilepro_bundle_bits
 540create_BrOff_X1(int num)
 541{
 542  const unsigned int n = (unsigned int)num;
 543  return (((tilepro_bundle_bits)(n & 0x00007fff)) << 43) |
 544         (((tilepro_bundle_bits)(n & 0x00018000)) << 20);
 545}
 546
 547static __inline tilepro_bundle_bits
 548create_BrType_X1(int num)
 549{
 550  const unsigned int n = (unsigned int)num;
 551  return (((tilepro_bundle_bits)(n & 0xf)) << 31);
 552}
 553
 554static __inline tilepro_bundle_bits
 555create_Dest_Imm8_X1(int num)
 556{
 557  const unsigned int n = (unsigned int)num;
 558  return (((tilepro_bundle_bits)(n & 0x0000003f)) << 31) |
 559         (((tilepro_bundle_bits)(n & 0x000000c0)) << 43);
 560}
 561
 562static __inline tilepro_bundle_bits
 563create_Dest_SN(int num)
 564{
 565  const unsigned int n = (unsigned int)num;
 566  return ((n & 0x3) << 2);
 567}
 568
 569static __inline tilepro_bundle_bits
 570create_Dest_X0(int num)
 571{
 572  const unsigned int n = (unsigned int)num;
 573  return ((n & 0x3f) << 0);
 574}
 575
 576static __inline tilepro_bundle_bits
 577create_Dest_X1(int num)
 578{
 579  const unsigned int n = (unsigned int)num;
 580  return (((tilepro_bundle_bits)(n & 0x3f)) << 31);
 581}
 582
 583static __inline tilepro_bundle_bits
 584create_Dest_Y0(int num)
 585{
 586  const unsigned int n = (unsigned int)num;
 587  return ((n & 0x3f) << 0);
 588}
 589
 590static __inline tilepro_bundle_bits
 591create_Dest_Y1(int num)
 592{
 593  const unsigned int n = (unsigned int)num;
 594  return (((tilepro_bundle_bits)(n & 0x3f)) << 31);
 595}
 596
 597static __inline tilepro_bundle_bits
 598create_Imm16_X0(int num)
 599{
 600  const unsigned int n = (unsigned int)num;
 601  return ((n & 0xffff) << 12);
 602}
 603
 604static __inline tilepro_bundle_bits
 605create_Imm16_X1(int num)
 606{
 607  const unsigned int n = (unsigned int)num;
 608  return (((tilepro_bundle_bits)(n & 0xffff)) << 43);
 609}
 610
 611static __inline tilepro_bundle_bits
 612create_Imm8_SN(int num)
 613{
 614  const unsigned int n = (unsigned int)num;
 615  return ((n & 0xff) << 0);
 616}
 617
 618static __inline tilepro_bundle_bits
 619create_Imm8_X0(int num)
 620{
 621  const unsigned int n = (unsigned int)num;
 622  return ((n & 0xff) << 12);
 623}
 624
 625static __inline tilepro_bundle_bits
 626create_Imm8_X1(int num)
 627{
 628  const unsigned int n = (unsigned int)num;
 629  return (((tilepro_bundle_bits)(n & 0xff)) << 43);
 630}
 631
 632static __inline tilepro_bundle_bits
 633create_Imm8_Y0(int num)
 634{
 635  const unsigned int n = (unsigned int)num;
 636  return ((n & 0xff) << 12);
 637}
 638
 639static __inline tilepro_bundle_bits
 640create_Imm8_Y1(int num)
 641{
 642  const unsigned int n = (unsigned int)num;
 643  return (((tilepro_bundle_bits)(n & 0xff)) << 43);
 644}
 645
 646static __inline tilepro_bundle_bits
 647create_ImmOpcodeExtension_X0(int num)
 648{
 649  const unsigned int n = (unsigned int)num;
 650  return ((n & 0x7f) << 20);
 651}
 652
 653static __inline tilepro_bundle_bits
 654create_ImmOpcodeExtension_X1(int num)
 655{
 656  const unsigned int n = (unsigned int)num;
 657  return (((tilepro_bundle_bits)(n & 0x7f)) << 51);
 658}
 659
 660static __inline tilepro_bundle_bits
 661create_ImmRROpcodeExtension_SN(int num)
 662{
 663  const unsigned int n = (unsigned int)num;
 664  return ((n & 0x3) << 8);
 665}
 666
 667static __inline tilepro_bundle_bits
 668create_JOffLong_X1(int num)
 669{
 670  const unsigned int n = (unsigned int)num;
 671  return (((tilepro_bundle_bits)(n & 0x00007fff)) << 43) |
 672         (((tilepro_bundle_bits)(n & 0x00018000)) << 20) |
 673         (((tilepro_bundle_bits)(n & 0x001e0000)) << 14) |
 674         (((tilepro_bundle_bits)(n & 0x07e00000)) << 16) |
 675         (((tilepro_bundle_bits)(n & 0x18000000)) << 31);
 676}
 677
 678static __inline tilepro_bundle_bits
 679create_JOff_X1(int num)
 680{
 681  const unsigned int n = (unsigned int)num;
 682  return (((tilepro_bundle_bits)(n & 0x00007fff)) << 43) |
 683         (((tilepro_bundle_bits)(n & 0x00018000)) << 20) |
 684         (((tilepro_bundle_bits)(n & 0x001e0000)) << 14) |
 685         (((tilepro_bundle_bits)(n & 0x07e00000)) << 16) |
 686         (((tilepro_bundle_bits)(n & 0x08000000)) << 31);
 687}
 688
 689static __inline tilepro_bundle_bits
 690create_MF_Imm15_X1(int num)
 691{
 692  const unsigned int n = (unsigned int)num;
 693  return (((tilepro_bundle_bits)(n & 0x00003fff)) << 37) |
 694         (((tilepro_bundle_bits)(n & 0x00004000)) << 44);
 695}
 696
 697static __inline tilepro_bundle_bits
 698create_MMEnd_X0(int num)
 699{
 700  const unsigned int n = (unsigned int)num;
 701  return ((n & 0x1f) << 18);
 702}
 703
 704static __inline tilepro_bundle_bits
 705create_MMEnd_X1(int num)
 706{
 707  const unsigned int n = (unsigned int)num;
 708  return (((tilepro_bundle_bits)(n & 0x1f)) << 49);
 709}
 710
 711static __inline tilepro_bundle_bits
 712create_MMStart_X0(int num)
 713{
 714  const unsigned int n = (unsigned int)num;
 715  return ((n & 0x1f) << 23);
 716}
 717
 718static __inline tilepro_bundle_bits
 719create_MMStart_X1(int num)
 720{
 721  const unsigned int n = (unsigned int)num;
 722  return (((tilepro_bundle_bits)(n & 0x1f)) << 54);
 723}
 724
 725static __inline tilepro_bundle_bits
 726create_MT_Imm15_X1(int num)
 727{
 728  const unsigned int n = (unsigned int)num;
 729  return (((tilepro_bundle_bits)(n & 0x0000003f)) << 31) |
 730         (((tilepro_bundle_bits)(n & 0x00003fc0)) << 37) |
 731         (((tilepro_bundle_bits)(n & 0x00004000)) << 44);
 732}
 733
 734static __inline tilepro_bundle_bits
 735create_Mode(int num)
 736{
 737  const unsigned int n = (unsigned int)num;
 738  return (((tilepro_bundle_bits)(n & 0x1)) << 63);
 739}
 740
 741static __inline tilepro_bundle_bits
 742create_NoRegOpcodeExtension_SN(int num)
 743{
 744  const unsigned int n = (unsigned int)num;
 745  return ((n & 0xf) << 0);
 746}
 747
 748static __inline tilepro_bundle_bits
 749create_Opcode_SN(int num)
 750{
 751  const unsigned int n = (unsigned int)num;
 752  return ((n & 0x3f) << 10);
 753}
 754
 755static __inline tilepro_bundle_bits
 756create_Opcode_X0(int num)
 757{
 758  const unsigned int n = (unsigned int)num;
 759  return ((n & 0x7) << 28);
 760}
 761
 762static __inline tilepro_bundle_bits
 763create_Opcode_X1(int num)
 764{
 765  const unsigned int n = (unsigned int)num;
 766  return (((tilepro_bundle_bits)(n & 0xf)) << 59);
 767}
 768
 769static __inline tilepro_bundle_bits
 770create_Opcode_Y0(int num)
 771{
 772  const unsigned int n = (unsigned int)num;
 773  return ((n & 0xf) << 27);
 774}
 775
 776static __inline tilepro_bundle_bits
 777create_Opcode_Y1(int num)
 778{
 779  const unsigned int n = (unsigned int)num;
 780  return (((tilepro_bundle_bits)(n & 0xf)) << 59);
 781}
 782
 783static __inline tilepro_bundle_bits
 784create_Opcode_Y2(int num)
 785{
 786  const unsigned int n = (unsigned int)num;
 787  return (((tilepro_bundle_bits)(n & 0x7)) << 56);
 788}
 789
 790static __inline tilepro_bundle_bits
 791create_RROpcodeExtension_SN(int num)
 792{
 793  const unsigned int n = (unsigned int)num;
 794  return ((n & 0xf) << 4);
 795}
 796
 797static __inline tilepro_bundle_bits
 798create_RRROpcodeExtension_X0(int num)
 799{
 800  const unsigned int n = (unsigned int)num;
 801  return ((n & 0x1ff) << 18);
 802}
 803
 804static __inline tilepro_bundle_bits
 805create_RRROpcodeExtension_X1(int num)
 806{
 807  const unsigned int n = (unsigned int)num;
 808  return (((tilepro_bundle_bits)(n & 0x1ff)) << 49);
 809}
 810
 811static __inline tilepro_bundle_bits
 812create_RRROpcodeExtension_Y0(int num)
 813{
 814  const unsigned int n = (unsigned int)num;
 815  return ((n & 0x3) << 18);
 816}
 817
 818static __inline tilepro_bundle_bits
 819create_RRROpcodeExtension_Y1(int num)
 820{
 821  const unsigned int n = (unsigned int)num;
 822  return (((tilepro_bundle_bits)(n & 0x3)) << 49);
 823}
 824
 825static __inline tilepro_bundle_bits
 826create_RouteOpcodeExtension_SN(int num)
 827{
 828  const unsigned int n = (unsigned int)num;
 829  return ((n & 0x3ff) << 0);
 830}
 831
 832static __inline tilepro_bundle_bits
 833create_S_X0(int num)
 834{
 835  const unsigned int n = (unsigned int)num;
 836  return ((n & 0x1) << 27);
 837}
 838
 839static __inline tilepro_bundle_bits
 840create_S_X1(int num)
 841{
 842  const unsigned int n = (unsigned int)num;
 843  return (((tilepro_bundle_bits)(n & 0x1)) << 58);
 844}
 845
 846static __inline tilepro_bundle_bits
 847create_ShAmt_X0(int num)
 848{
 849  const unsigned int n = (unsigned int)num;
 850  return ((n & 0x1f) << 12);
 851}
 852
 853static __inline tilepro_bundle_bits
 854create_ShAmt_X1(int num)
 855{
 856  const unsigned int n = (unsigned int)num;
 857  return (((tilepro_bundle_bits)(n & 0x1f)) << 43);
 858}
 859
 860static __inline tilepro_bundle_bits
 861create_ShAmt_Y0(int num)
 862{
 863  const unsigned int n = (unsigned int)num;
 864  return ((n & 0x1f) << 12);
 865}
 866
 867static __inline tilepro_bundle_bits
 868create_ShAmt_Y1(int num)
 869{
 870  const unsigned int n = (unsigned int)num;
 871  return (((tilepro_bundle_bits)(n & 0x1f)) << 43);
 872}
 873
 874static __inline tilepro_bundle_bits
 875create_SrcA_X0(int num)
 876{
 877  const unsigned int n = (unsigned int)num;
 878  return ((n & 0x3f) << 6);
 879}
 880
 881static __inline tilepro_bundle_bits
 882create_SrcA_X1(int num)
 883{
 884  const unsigned int n = (unsigned int)num;
 885  return (((tilepro_bundle_bits)(n & 0x3f)) << 37);
 886}
 887
 888static __inline tilepro_bundle_bits
 889create_SrcA_Y0(int num)
 890{
 891  const unsigned int n = (unsigned int)num;
 892  return ((n & 0x3f) << 6);
 893}
 894
 895static __inline tilepro_bundle_bits
 896create_SrcA_Y1(int num)
 897{
 898  const unsigned int n = (unsigned int)num;
 899  return (((tilepro_bundle_bits)(n & 0x3f)) << 37);
 900}
 901
 902static __inline tilepro_bundle_bits
 903create_SrcA_Y2(int num)
 904{
 905  const unsigned int n = (unsigned int)num;
 906  return ((n & 0x00000001) << 26) |
 907         (((tilepro_bundle_bits)(n & 0x0000003e)) << 50);
 908}
 909
 910static __inline tilepro_bundle_bits
 911create_SrcBDest_Y2(int num)
 912{
 913  const unsigned int n = (unsigned int)num;
 914  return ((n & 0x3f) << 20);
 915}
 916
 917static __inline tilepro_bundle_bits
 918create_SrcB_X0(int num)
 919{
 920  const unsigned int n = (unsigned int)num;
 921  return ((n & 0x3f) << 12);
 922}
 923
 924static __inline tilepro_bundle_bits
 925create_SrcB_X1(int num)
 926{
 927  const unsigned int n = (unsigned int)num;
 928  return (((tilepro_bundle_bits)(n & 0x3f)) << 43);
 929}
 930
 931static __inline tilepro_bundle_bits
 932create_SrcB_Y0(int num)
 933{
 934  const unsigned int n = (unsigned int)num;
 935  return ((n & 0x3f) << 12);
 936}
 937
 938static __inline tilepro_bundle_bits
 939create_SrcB_Y1(int num)
 940{
 941  const unsigned int n = (unsigned int)num;
 942  return (((tilepro_bundle_bits)(n & 0x3f)) << 43);
 943}
 944
 945static __inline tilepro_bundle_bits
 946create_Src_SN(int num)
 947{
 948  const unsigned int n = (unsigned int)num;
 949  return ((n & 0x3) << 0);
 950}
 951
 952static __inline tilepro_bundle_bits
 953create_UnOpcodeExtension_X0(int num)
 954{
 955  const unsigned int n = (unsigned int)num;
 956  return ((n & 0x1f) << 12);
 957}
 958
 959static __inline tilepro_bundle_bits
 960create_UnOpcodeExtension_X1(int num)
 961{
 962  const unsigned int n = (unsigned int)num;
 963  return (((tilepro_bundle_bits)(n & 0x1f)) << 43);
 964}
 965
 966static __inline tilepro_bundle_bits
 967create_UnOpcodeExtension_Y0(int num)
 968{
 969  const unsigned int n = (unsigned int)num;
 970  return ((n & 0x1f) << 12);
 971}
 972
 973static __inline tilepro_bundle_bits
 974create_UnOpcodeExtension_Y1(int num)
 975{
 976  const unsigned int n = (unsigned int)num;
 977  return (((tilepro_bundle_bits)(n & 0x1f)) << 43);
 978}
 979
 980static __inline tilepro_bundle_bits
 981create_UnShOpcodeExtension_X0(int num)
 982{
 983  const unsigned int n = (unsigned int)num;
 984  return ((n & 0x3ff) << 17);
 985}
 986
 987static __inline tilepro_bundle_bits
 988create_UnShOpcodeExtension_X1(int num)
 989{
 990  const unsigned int n = (unsigned int)num;
 991  return (((tilepro_bundle_bits)(n & 0x3ff)) << 48);
 992}
 993
 994static __inline tilepro_bundle_bits
 995create_UnShOpcodeExtension_Y0(int num)
 996{
 997  const unsigned int n = (unsigned int)num;
 998  return ((n & 0x7) << 17);
 999}
1000
1001static __inline tilepro_bundle_bits
1002create_UnShOpcodeExtension_Y1(int num)
1003{
1004  const unsigned int n = (unsigned int)num;
1005  return (((tilepro_bundle_bits)(n & 0x7)) << 48);
1006}
1007
1008
1009enum
1010{
1011  ADDBS_U_SPECIAL_0_OPCODE_X0 = 98,
1012  ADDBS_U_SPECIAL_0_OPCODE_X1 = 68,
1013  ADDB_SPECIAL_0_OPCODE_X0 = 1,
1014  ADDB_SPECIAL_0_OPCODE_X1 = 1,
1015  ADDHS_SPECIAL_0_OPCODE_X0 = 99,
1016  ADDHS_SPECIAL_0_OPCODE_X1 = 69,
1017  ADDH_SPECIAL_0_OPCODE_X0 = 2,
1018  ADDH_SPECIAL_0_OPCODE_X1 = 2,
1019  ADDIB_IMM_0_OPCODE_X0 = 1,
1020  ADDIB_IMM_0_OPCODE_X1 = 1,
1021  ADDIH_IMM_0_OPCODE_X0 = 2,
1022  ADDIH_IMM_0_OPCODE_X1 = 2,
1023  ADDI_IMM_0_OPCODE_X0 = 3,
1024  ADDI_IMM_0_OPCODE_X1 = 3,
1025  ADDI_IMM_1_OPCODE_SN = 1,
1026  ADDI_OPCODE_Y0 = 9,
1027  ADDI_OPCODE_Y1 = 7,
1028  ADDLIS_OPCODE_X0 = 1,
1029  ADDLIS_OPCODE_X1 = 2,
1030  ADDLI_OPCODE_X0 = 2,
1031  ADDLI_OPCODE_X1 = 3,
1032  ADDS_SPECIAL_0_OPCODE_X0 = 96,
1033  ADDS_SPECIAL_0_OPCODE_X1 = 66,
1034  ADD_SPECIAL_0_OPCODE_X0 = 3,
1035  ADD_SPECIAL_0_OPCODE_X1 = 3,
1036  ADD_SPECIAL_0_OPCODE_Y0 = 0,
1037  ADD_SPECIAL_0_OPCODE_Y1 = 0,
1038  ADIFFB_U_SPECIAL_0_OPCODE_X0 = 4,
1039  ADIFFH_SPECIAL_0_OPCODE_X0 = 5,
1040  ANDI_IMM_0_OPCODE_X0 = 1,
1041  ANDI_IMM_0_OPCODE_X1 = 4,
1042  ANDI_OPCODE_Y0 = 10,
1043  ANDI_OPCODE_Y1 = 8,
1044  AND_SPECIAL_0_OPCODE_X0 = 6,
1045  AND_SPECIAL_0_OPCODE_X1 = 4,
1046  AND_SPECIAL_2_OPCODE_Y0 = 0,
1047  AND_SPECIAL_2_OPCODE_Y1 = 0,
1048  AULI_OPCODE_X0 = 3,
1049  AULI_OPCODE_X1 = 4,
1050  AVGB_U_SPECIAL_0_OPCODE_X0 = 7,
1051  AVGH_SPECIAL_0_OPCODE_X0 = 8,
1052  BBNST_BRANCH_OPCODE_X1 = 15,
1053  BBNS_BRANCH_OPCODE_X1 = 14,
1054  BBNS_OPCODE_SN = 63,
1055  BBST_BRANCH_OPCODE_X1 = 13,
1056  BBS_BRANCH_OPCODE_X1 = 12,
1057  BBS_OPCODE_SN = 62,
1058  BGEZT_BRANCH_OPCODE_X1 = 7,
1059  BGEZ_BRANCH_OPCODE_X1 = 6,
1060  BGEZ_OPCODE_SN = 61,
1061  BGZT_BRANCH_OPCODE_X1 = 5,
1062  BGZ_BRANCH_OPCODE_X1 = 4,
1063  BGZ_OPCODE_SN = 58,
1064  BITX_UN_0_SHUN_0_OPCODE_X0 = 1,
1065  BITX_UN_0_SHUN_0_OPCODE_Y0 = 1,
1066  BLEZT_BRANCH_OPCODE_X1 = 11,
1067  BLEZ_BRANCH_OPCODE_X1 = 10,
1068  BLEZ_OPCODE_SN = 59,
1069  BLZT_BRANCH_OPCODE_X1 = 9,
1070  BLZ_BRANCH_OPCODE_X1 = 8,
1071  BLZ_OPCODE_SN = 60,
1072  BNZT_BRANCH_OPCODE_X1 = 3,
1073  BNZ_BRANCH_OPCODE_X1 = 2,
1074  BNZ_OPCODE_SN = 57,
1075  BPT_NOREG_RR_IMM_0_OPCODE_SN = 1,
1076  BRANCH_OPCODE_X1 = 5,
1077  BYTEX_UN_0_SHUN_0_OPCODE_X0 = 2,
1078  BYTEX_UN_0_SHUN_0_OPCODE_Y0 = 2,
1079  BZT_BRANCH_OPCODE_X1 = 1,
1080  BZ_BRANCH_OPCODE_X1 = 0,
1081  BZ_OPCODE_SN = 56,
1082  CLZ_UN_0_SHUN_0_OPCODE_X0 = 3,
1083  CLZ_UN_0_SHUN_0_OPCODE_Y0 = 3,
1084  CRC32_32_SPECIAL_0_OPCODE_X0 = 9,
1085  CRC32_8_SPECIAL_0_OPCODE_X0 = 10,
1086  CTZ_UN_0_SHUN_0_OPCODE_X0 = 4,
1087  CTZ_UN_0_SHUN_0_OPCODE_Y0 = 4,
1088  DRAIN_UN_0_SHUN_0_OPCODE_X1 = 1,
1089  DTLBPR_UN_0_SHUN_0_OPCODE_X1 = 2,
1090  DWORD_ALIGN_SPECIAL_0_OPCODE_X0 = 95,
1091  FINV_UN_0_SHUN_0_OPCODE_X1 = 3,
1092  FLUSH_UN_0_SHUN_0_OPCODE_X1 = 4,
1093  FNOP_NOREG_RR_IMM_0_OPCODE_SN = 3,
1094  FNOP_UN_0_SHUN_0_OPCODE_X0 = 5,
1095  FNOP_UN_0_SHUN_0_OPCODE_X1 = 5,
1096  FNOP_UN_0_SHUN_0_OPCODE_Y0 = 5,
1097  FNOP_UN_0_SHUN_0_OPCODE_Y1 = 1,
1098  HALT_NOREG_RR_IMM_0_OPCODE_SN = 0,
1099  ICOH_UN_0_SHUN_0_OPCODE_X1 = 6,
1100  ILL_UN_0_SHUN_0_OPCODE_X1 = 7,
1101  ILL_UN_0_SHUN_0_OPCODE_Y1 = 2,
1102  IMM_0_OPCODE_SN = 0,
1103  IMM_0_OPCODE_X0 = 4,
1104  IMM_0_OPCODE_X1 = 6,
1105  IMM_1_OPCODE_SN = 1,
1106  IMM_OPCODE_0_X0 = 5,
1107  INTHB_SPECIAL_0_OPCODE_X0 = 11,
1108  INTHB_SPECIAL_0_OPCODE_X1 = 5,
1109  INTHH_SPECIAL_0_OPCODE_X0 = 12,
1110  INTHH_SPECIAL_0_OPCODE_X1 = 6,
1111  INTLB_SPECIAL_0_OPCODE_X0 = 13,
1112  INTLB_SPECIAL_0_OPCODE_X1 = 7,
1113  INTLH_SPECIAL_0_OPCODE_X0 = 14,
1114  INTLH_SPECIAL_0_OPCODE_X1 = 8,
1115  INV_UN_0_SHUN_0_OPCODE_X1 = 8,
1116  IRET_UN_0_SHUN_0_OPCODE_X1 = 9,
1117  JALB_OPCODE_X1 = 13,
1118  JALF_OPCODE_X1 = 12,
1119  JALRP_SPECIAL_0_OPCODE_X1 = 9,
1120  JALRR_IMM_1_OPCODE_SN = 3,
1121  JALR_RR_IMM_0_OPCODE_SN = 5,
1122  JALR_SPECIAL_0_OPCODE_X1 = 10,
1123  JB_OPCODE_X1 = 11,
1124  JF_OPCODE_X1 = 10,
1125  JRP_SPECIAL_0_OPCODE_X1 = 11,
1126  JRR_IMM_1_OPCODE_SN = 2,
1127  JR_RR_IMM_0_OPCODE_SN = 4,
1128  JR_SPECIAL_0_OPCODE_X1 = 12,
1129  LBADD_IMM_0_OPCODE_X1 = 22,
1130  LBADD_U_IMM_0_OPCODE_X1 = 23,
1131  LB_OPCODE_Y2 = 0,
1132  LB_UN_0_SHUN_0_OPCODE_X1 = 10,
1133  LB_U_OPCODE_Y2 = 1,
1134  LB_U_UN_0_SHUN_0_OPCODE_X1 = 11,
1135  LHADD_IMM_0_OPCODE_X1 = 24,
1136  LHADD_U_IMM_0_OPCODE_X1 = 25,
1137  LH_OPCODE_Y2 = 2,
1138  LH_UN_0_SHUN_0_OPCODE_X1 = 12,
1139  LH_U_OPCODE_Y2 = 3,
1140  LH_U_UN_0_SHUN_0_OPCODE_X1 = 13,
1141  LNK_SPECIAL_0_OPCODE_X1 = 13,
1142  LWADD_IMM_0_OPCODE_X1 = 26,
1143  LWADD_NA_IMM_0_OPCODE_X1 = 27,
1144  LW_NA_UN_0_SHUN_0_OPCODE_X1 = 24,
1145  LW_OPCODE_Y2 = 4,
1146  LW_UN_0_SHUN_0_OPCODE_X1 = 14,
1147  MAXB_U_SPECIAL_0_OPCODE_X0 = 15,
1148  MAXB_U_SPECIAL_0_OPCODE_X1 = 14,
1149  MAXH_SPECIAL_0_OPCODE_X0 = 16,
1150  MAXH_SPECIAL_0_OPCODE_X1 = 15,
1151  MAXIB_U_IMM_0_OPCODE_X0 = 4,
1152  MAXIB_U_IMM_0_OPCODE_X1 = 5,
1153  MAXIH_IMM_0_OPCODE_X0 = 5,
1154  MAXIH_IMM_0_OPCODE_X1 = 6,
1155  MFSPR_IMM_0_OPCODE_X1 = 7,
1156  MF_UN_0_SHUN_0_OPCODE_X1 = 15,
1157  MINB_U_SPECIAL_0_OPCODE_X0 = 17,
1158  MINB_U_SPECIAL_0_OPCODE_X1 = 16,
1159  MINH_SPECIAL_0_OPCODE_X0 = 18,
1160  MINH_SPECIAL_0_OPCODE_X1 = 17,
1161  MINIB_U_IMM_0_OPCODE_X0 = 6,
1162  MINIB_U_IMM_0_OPCODE_X1 = 8,
1163  MINIH_IMM_0_OPCODE_X0 = 7,
1164  MINIH_IMM_0_OPCODE_X1 = 9,
1165  MM_OPCODE_X0 = 6,
1166  MM_OPCODE_X1 = 7,
1167  MNZB_SPECIAL_0_OPCODE_X0 = 19,
1168  MNZB_SPECIAL_0_OPCODE_X1 = 18,
1169  MNZH_SPECIAL_0_OPCODE_X0 = 20,
1170  MNZH_SPECIAL_0_OPCODE_X1 = 19,
1171  MNZ_SPECIAL_0_OPCODE_X0 = 21,
1172  MNZ_SPECIAL_0_OPCODE_X1 = 20,
1173  MNZ_SPECIAL_1_OPCODE_Y0 = 0,
1174  MNZ_SPECIAL_1_OPCODE_Y1 = 1,
1175  MOVEI_IMM_1_OPCODE_SN = 0,
1176  MOVE_RR_IMM_0_OPCODE_SN = 8,
1177  MTSPR_IMM_0_OPCODE_X1 = 10,
1178  MULHHA_SS_SPECIAL_0_OPCODE_X0 = 22,
1179  MULHHA_SS_SPECIAL_7_OPCODE_Y0 = 0,
1180  MULHHA_SU_SPECIAL_0_OPCODE_X0 = 23,
1181  MULHHA_UU_SPECIAL_0_OPCODE_X0 = 24,
1182  MULHHA_UU_SPECIAL_7_OPCODE_Y0 = 1,
1183  MULHHSA_UU_SPECIAL_0_OPCODE_X0 = 25,
1184  MULHH_SS_SPECIAL_0_OPCODE_X0 = 26,
1185  MULHH_SS_SPECIAL_6_OPCODE_Y0 = 0,
1186  MULHH_SU_SPECIAL_0_OPCODE_X0 = 27,
1187  MULHH_UU_SPECIAL_0_OPCODE_X0 = 28,
1188  MULHH_UU_SPECIAL_6_OPCODE_Y0 = 1,
1189  MULHLA_SS_SPECIAL_0_OPCODE_X0 = 29,
1190  MULHLA_SU_SPECIAL_0_OPCODE_X0 = 30,
1191  MULHLA_US_SPECIAL_0_OPCODE_X0 = 31,
1192  MULHLA_UU_SPECIAL_0_OPCODE_X0 = 32,
1193  MULHLSA_UU_SPECIAL_0_OPCODE_X0 = 33,
1194  MULHLSA_UU_SPECIAL_5_OPCODE_Y0 = 0,
1195  MULHL_SS_SPECIAL_0_OPCODE_X0 = 34,
1196  MULHL_SU_SPECIAL_0_OPCODE_X0 = 35,
1197  MULHL_US_SPECIAL_0_OPCODE_X0 = 36,
1198  MULHL_UU_SPECIAL_0_OPCODE_X0 = 37,
1199  MULLLA_SS_SPECIAL_0_OPCODE_X0 = 38,
1200  MULLLA_SS_SPECIAL_7_OPCODE_Y0 = 2,
1201  MULLLA_SU_SPECIAL_0_OPCODE_X0 = 39,
1202  MULLLA_UU_SPECIAL_0_OPCODE_X0 = 40,
1203  MULLLA_UU_SPECIAL_7_OPCODE_Y0 = 3,
1204  MULLLSA_UU_SPECIAL_0_OPCODE_X0 = 41,
1205  MULLL_SS_SPECIAL_0_OPCODE_X0 = 42,
1206  MULLL_SS_SPECIAL_6_OPCODE_Y0 = 2,
1207  MULLL_SU_SPECIAL_0_OPCODE_X0 = 43,
1208  MULLL_UU_SPECIAL_0_OPCODE_X0 = 44,
1209  MULLL_UU_SPECIAL_6_OPCODE_Y0 = 3,
1210  MVNZ_SPECIAL_0_OPCODE_X0 = 45,
1211  MVNZ_SPECIAL_1_OPCODE_Y0 = 1,
1212  MVZ_SPECIAL_0_OPCODE_X0 = 46,
1213  MVZ_SPECIAL_1_OPCODE_Y0 = 2,
1214  MZB_SPECIAL_0_OPCODE_X0 = 47,
1215  MZB_SPECIAL_0_OPCODE_X1 = 21,
1216  MZH_SPECIAL_0_OPCODE_X0 = 48,
1217  MZH_SPECIAL_0_OPCODE_X1 = 22,
1218  MZ_SPECIAL_0_OPCODE_X0 = 49,
1219  MZ_SPECIAL_0_OPCODE_X1 = 23,
1220  MZ_SPECIAL_1_OPCODE_Y0 = 3,
1221  MZ_SPECIAL_1_OPCODE_Y1 = 2,
1222  NAP_UN_0_SHUN_0_OPCODE_X1 = 16,
1223  NOP_NOREG_RR_IMM_0_OPCODE_SN = 2,
1224  NOP_UN_0_SHUN_0_OPCODE_X0 = 6,
1225  NOP_UN_0_SHUN_0_OPCODE_X1 = 17,
1226  NOP_UN_0_SHUN_0_OPCODE_Y0 = 6,
1227  NOP_UN_0_SHUN_0_OPCODE_Y1 = 3,
1228  NOREG_RR_IMM_0_OPCODE_SN = 0,
1229  NOR_SPECIAL_0_OPCODE_X0 = 50,
1230  NOR_SPECIAL_0_OPCODE_X1 = 24,
1231  NOR_SPECIAL_2_OPCODE_Y0 = 1,
1232  NOR_SPECIAL_2_OPCODE_Y1 = 1,
1233  ORI_IMM_0_OPCODE_X0 = 8,
1234  ORI_IMM_0_OPCODE_X1 = 11,
1235  ORI_OPCODE_Y0 = 11,
1236  ORI_OPCODE_Y1 = 9,
1237  OR_SPECIAL_0_OPCODE_X0 = 51,
1238  OR_SPECIAL_0_OPCODE_X1 = 25,
1239  OR_SPECIAL_2_OPCODE_Y0 = 2,
1240  OR_SPECIAL_2_OPCODE_Y1 = 2,
1241  PACKBS_U_SPECIAL_0_OPCODE_X0 = 103,
1242  PACKBS_U_SPECIAL_0_OPCODE_X1 = 73,
1243  PACKHB_SPECIAL_0_OPCODE_X0 = 52,
1244  PACKHB_SPECIAL_0_OPCODE_X1 = 26,
1245  PACKHS_SPECIAL_0_OPCODE_X0 = 102,
1246  PACKHS_SPECIAL_0_OPCODE_X1 = 72,
1247  PACKLB_SPECIAL_0_OPCODE_X0 = 53,
1248  PACKLB_SPECIAL_0_OPCODE_X1 = 27,
1249  PCNT_UN_0_SHUN_0_OPCODE_X0 = 7,
1250  PCNT_UN_0_SHUN_0_OPCODE_Y0 = 7,
1251  RLI_SHUN_0_OPCODE_X0 = 1,
1252  RLI_SHUN_0_OPCODE_X1 = 1,
1253  RLI_SHUN_0_OPCODE_Y0 = 1,
1254  RLI_SHUN_0_OPCODE_Y1 = 1,
1255  RL_SPECIAL_0_OPCODE_X0 = 54,
1256  RL_SPECIAL_0_OPCODE_X1 = 28,
1257  RL_SPECIAL_3_OPCODE_Y0 = 0,
1258  RL_SPECIAL_3_OPCODE_Y1 = 0,
1259  RR_IMM_0_OPCODE_SN = 0,
1260  S1A_SPECIAL_0_OPCODE_X0 = 55,
1261  S1A_SPECIAL_0_OPCODE_X1 = 29,
1262  S1A_SPECIAL_0_OPCODE_Y0 = 1,
1263  S1A_SPECIAL_0_OPCODE_Y1 = 1,
1264  S2A_SPECIAL_0_OPCODE_X0 = 56,
1265  S2A_SPECIAL_0_OPCODE_X1 = 30,
1266  S2A_SPECIAL_0_OPCODE_Y0 = 2,
1267  S2A_SPECIAL_0_OPCODE_Y1 = 2,
1268  S3A_SPECIAL_0_OPCODE_X0 = 57,
1269  S3A_SPECIAL_0_OPCODE_X1 = 31,
1270  S3A_SPECIAL_5_OPCODE_Y0 = 1,
1271  S3A_SPECIAL_5_OPCODE_Y1 = 1,
1272  SADAB_U_SPECIAL_0_OPCODE_X0 = 58,
1273  SADAH_SPECIAL_0_OPCODE_X0 = 59,
1274  SADAH_U_SPECIAL_0_OPCODE_X0 = 60,
1275  SADB_U_SPECIAL_0_OPCODE_X0 = 61,
1276  SADH_SPECIAL_0_OPCODE_X0 = 62,
1277  SADH_U_SPECIAL_0_OPCODE_X0 = 63,
1278  SBADD_IMM_0_OPCODE_X1 = 28,
1279  SB_OPCODE_Y2 = 5,
1280  SB_SPECIAL_0_OPCODE_X1 = 32,
1281  SEQB_SPECIAL_0_OPCODE_X0 = 64,
1282  SEQB_SPECIAL_0_OPCODE_X1 = 33,
1283  SEQH_SPECIAL_0_OPCODE_X0 = 65,
1284  SEQH_SPECIAL_0_OPCODE_X1 = 34,
1285  SEQIB_IMM_0_OPCODE_X0 = 9,
1286  SEQIB_IMM_0_OPCODE_X1 = 12,
1287  SEQIH_IMM_0_OPCODE_X0 = 10,
1288  SEQIH_IMM_0_OPCODE_X1 = 13,
1289  SEQI_IMM_0_OPCODE_X0 = 11,
1290  SEQI_IMM_0_OPCODE_X1 = 14,
1291  SEQI_OPCODE_Y0 = 12,
1292  SEQI_OPCODE_Y1 = 10,
1293  SEQ_SPECIAL_0_OPCODE_X0 = 66,
1294  SEQ_SPECIAL_0_OPCODE_X1 = 35,
1295  SEQ_SPECIAL_5_OPCODE_Y0 = 2,
1296  SEQ_SPECIAL_5_OPCODE_Y1 = 2,
1297  SHADD_IMM_0_OPCODE_X1 = 29,
1298  SHL8II_IMM_0_OPCODE_SN = 3,
1299  SHLB_SPECIAL_0_OPCODE_X0 = 67,
1300  SHLB_SPECIAL_0_OPCODE_X1 = 36,
1301  SHLH_SPECIAL_0_OPCODE_X0 = 68,
1302  SHLH_SPECIAL_0_OPCODE_X1 = 37,
1303  SHLIB_SHUN_0_OPCODE_X0 = 2,
1304  SHLIB_SHUN_0_OPCODE_X1 = 2,
1305  SHLIH_SHUN_0_OPCODE_X0 = 3,
1306  SHLIH_SHUN_0_OPCODE_X1 = 3,
1307  SHLI_SHUN_0_OPCODE_X0 = 4,
1308  SHLI_SHUN_0_OPCODE_X1 = 4,
1309  SHLI_SHUN_0_OPCODE_Y0 = 2,
1310  SHLI_SHUN_0_OPCODE_Y1 = 2,
1311  SHL_SPECIAL_0_OPCODE_X0 = 69,
1312  SHL_SPECIAL_0_OPCODE_X1 = 38,
1313  SHL_SPECIAL_3_OPCODE_Y0 = 1,
1314  SHL_SPECIAL_3_OPCODE_Y1 = 1,
1315  SHR1_RR_IMM_0_OPCODE_SN = 9,
1316  SHRB_SPECIAL_0_OPCODE_X0 = 70,
1317  SHRB_SPECIAL_0_OPCODE_X1 = 39,
1318  SHRH_SPECIAL_0_OPCODE_X0 = 71,
1319  SHRH_SPECIAL_0_OPCODE_X1 = 40,
1320  SHRIB_SHUN_0_OPCODE_X0 = 5,
1321  SHRIB_SHUN_0_OPCODE_X1 = 5,
1322  SHRIH_SHUN_0_OPCODE_X0 = 6,
1323  SHRIH_SHUN_0_OPCODE_X1 = 6,
1324  SHRI_SHUN_0_OPCODE_X0 = 7,
1325  SHRI_SHUN_0_OPCODE_X1 = 7,
1326  SHRI_SHUN_0_OPCODE_Y0 = 3,
1327  SHRI_SHUN_0_OPCODE_Y1 = 3,
1328  SHR_SPECIAL_0_OPCODE_X0 = 72,
1329  SHR_SPECIAL_0_OPCODE_X1 = 41,
1330  SHR_SPECIAL_3_OPCODE_Y0 = 2,
1331  SHR_SPECIAL_3_OPCODE_Y1 = 2,
1332  SHUN_0_OPCODE_X0 = 7,
1333  SHUN_0_OPCODE_X1 = 8,
1334  SHUN_0_OPCODE_Y0 = 13,
1335  SHUN_0_OPCODE_Y1 = 11,
1336  SH_OPCODE_Y2 = 6,
1337  SH_SPECIAL_0_OPCODE_X1 = 42,
1338  SLTB_SPECIAL_0_OPCODE_X0 = 73,
1339  SLTB_SPECIAL_0_OPCODE_X1 = 43,
1340  SLTB_U_SPECIAL_0_OPCODE_X0 = 74,
1341  SLTB_U_SPECIAL_0_OPCODE_X1 = 44,
1342  SLTEB_SPECIAL_0_OPCODE_X0 = 75,
1343  SLTEB_SPECIAL_0_OPCODE_X1 = 45,
1344  SLTEB_U_SPECIAL_0_OPCODE_X0 = 76,
1345  SLTEB_U_SPECIAL_0_OPCODE_X1 = 46,
1346  SLTEH_SPECIAL_0_OPCODE_X0 = 77,
1347  SLTEH_SPECIAL_0_OPCODE_X1 = 47,
1348  SLTEH_U_SPECIAL_0_OPCODE_X0 = 78,
1349  SLTEH_U_SPECIAL_0_OPCODE_X1 = 48,
1350  SLTE_SPECIAL_0_OPCODE_X0 = 79,
1351  SLTE_SPECIAL_0_OPCODE_X1 = 49,
1352  SLTE_SPECIAL_4_OPCODE_Y0 = 0,
1353  SLTE_SPECIAL_4_OPCODE_Y1 = 0,
1354  SLTE_U_SPECIAL_0_OPCODE_X0 = 80,
1355  SLTE_U_SPECIAL_0_OPCODE_X1 = 50,
1356  SLTE_U_SPECIAL_4_OPCODE_Y0 = 1,
1357  SLTE_U_SPECIAL_4_OPCODE_Y1 = 1,
1358  SLTH_SPECIAL_0_OPCODE_X0 = 81,
1359  SLTH_SPECIAL_0_OPCODE_X1 = 51,
1360  SLTH_U_SPECIAL_0_OPCODE_X0 = 82,
1361  SLTH_U_SPECIAL_0_OPCODE_X1 = 52,
1362  SLTIB_IMM_0_OPCODE_X0 = 12,
1363  SLTIB_IMM_0_OPCODE_X1 = 15,
1364  SLTIB_U_IMM_0_OPCODE_X0 = 13,
1365  SLTIB_U_IMM_0_OPCODE_X1 = 16,
1366  SLTIH_IMM_0_OPCODE_X0 = 14,
1367  SLTIH_IMM_0_OPCODE_X1 = 17,
1368  SLTIH_U_IMM_0_OPCODE_X0 = 15,
1369  SLTIH_U_IMM_0_OPCODE_X1 = 18,
1370  SLTI_IMM_0_OPCODE_X0 = 16,
1371  SLTI_IMM_0_OPCODE_X1 = 19,
1372  SLTI_OPCODE_Y0 = 14,
1373  SLTI_OPCODE_Y1 = 12,
1374  SLTI_U_IMM_0_OPCODE_X0 = 17,
1375  SLTI_U_IMM_0_OPCODE_X1 = 20,
1376  SLTI_U_OPCODE_Y0 = 15,
1377  SLTI_U_OPCODE_Y1 = 13,
1378  SLT_SPECIAL_0_OPCODE_X0 = 83,
1379  SLT_SPECIAL_0_OPCODE_X1 = 53,
1380  SLT_SPECIAL_4_OPCODE_Y0 = 2,
1381  SLT_SPECIAL_4_OPCODE_Y1 = 2,
1382  SLT_U_SPECIAL_0_OPCODE_X0 = 84,
1383  SLT_U_SPECIAL_0_OPCODE_X1 = 54,
1384  SLT_U_SPECIAL_4_OPCODE_Y0 = 3,
1385  SLT_U_SPECIAL_4_OPCODE_Y1 = 3,
1386  SNEB_SPECIAL_0_OPCODE_X0 = 85,
1387  SNEB_SPECIAL_0_OPCODE_X1 = 55,
1388  SNEH_SPECIAL_0_OPCODE_X0 = 86,
1389  SNEH_SPECIAL_0_OPCODE_X1 = 56,
1390  SNE_SPECIAL_0_OPCODE_X0 = 87,
1391  SNE_SPECIAL_0_OPCODE_X1 = 57,
1392  SNE_SPECIAL_5_OPCODE_Y0 = 3,
1393  SNE_SPECIAL_5_OPCODE_Y1 = 3,
1394  SPECIAL_0_OPCODE_X0 = 0,
1395  SPECIAL_0_OPCODE_X1 = 1,
1396  SPECIAL_0_OPCODE_Y0 = 1,
1397  SPECIAL_0_OPCODE_Y1 = 1,
1398  SPECIAL_1_OPCODE_Y0 = 2,
1399  SPECIAL_1_OPCODE_Y1 = 2,
1400  SPECIAL_2_OPCODE_Y0 = 3,
1401  SPECIAL_2_OPCODE_Y1 = 3,
1402  SPECIAL_3_OPCODE_Y0 = 4,
1403  SPECIAL_3_OPCODE_Y1 = 4,
1404  SPECIAL_4_OPCODE_Y0 = 5,
1405  SPECIAL_4_OPCODE_Y1 = 5,
1406  SPECIAL_5_OPCODE_Y0 = 6,
1407  SPECIAL_5_OPCODE_Y1 = 6,
1408  SPECIAL_6_OPCODE_Y0 = 7,
1409  SPECIAL_7_OPCODE_Y0 = 8,
1410  SRAB_SPECIAL_0_OPCODE_X0 = 88,
1411  SRAB_SPECIAL_0_OPCODE_X1 = 58,
1412  SRAH_SPECIAL_0_OPCODE_X0 = 89,
1413  SRAH_SPECIAL_0_OPCODE_X1 = 59,
1414  SRAIB_SHUN_0_OPCODE_X0 = 8,
1415  SRAIB_SHUN_0_OPCODE_X1 = 8,
1416  SRAIH_SHUN_0_OPCODE_X0 = 9,
1417  SRAIH_SHUN_0_OPCODE_X1 = 9,
1418  SRAI_SHUN_0_OPCODE_X0 = 10,
1419  SRAI_SHUN_0_OPCODE_X1 = 10,
1420  SRAI_SHUN_0_OPCODE_Y0 = 4,
1421  SRAI_SHUN_0_OPCODE_Y1 = 4,
1422  SRA_SPECIAL_0_OPCODE_X0 = 90,
1423  SRA_SPECIAL_0_OPCODE_X1 = 60,
1424  SRA_SPECIAL_3_OPCODE_Y0 = 3,
1425  SRA_SPECIAL_3_OPCODE_Y1 = 3,
1426  SUBBS_U_SPECIAL_0_OPCODE_X0 = 100,
1427  SUBBS_U_SPECIAL_0_OPCODE_X1 = 70,
1428  SUBB_SPECIAL_0_OPCODE_X0 = 91,
1429  SUBB_SPECIAL_0_OPCODE_X1 = 61,
1430  SUBHS_SPECIAL_0_OPCODE_X0 = 101,
1431  SUBHS_SPECIAL_0_OPCODE_X1 = 71,
1432  SUBH_SPECIAL_0_OPCODE_X0 = 92,
1433  SUBH_SPECIAL_0_OPCODE_X1 = 62,
1434  SUBS_SPECIAL_0_OPCODE_X0 = 97,
1435  SUBS_SPECIAL_0_OPCODE_X1 = 67,
1436  SUB_SPECIAL_0_OPCODE_X0 = 93,
1437  SUB_SPECIAL_0_OPCODE_X1 = 63,
1438  SUB_SPECIAL_0_OPCODE_Y0 = 3,
1439  SUB_SPECIAL_0_OPCODE_Y1 = 3,
1440  SWADD_IMM_0_OPCODE_X1 = 30,
1441  SWINT0_UN_0_SHUN_0_OPCODE_X1 = 18,
1442  SWINT1_UN_0_SHUN_0_OPCODE_X1 = 19,
1443  SWINT2_UN_0_SHUN_0_OPCODE_X1 = 20,
1444  SWINT3_UN_0_SHUN_0_OPCODE_X1 = 21,
1445  SW_OPCODE_Y2 = 7,
1446  SW_SPECIAL_0_OPCODE_X1 = 64,
1447  TBLIDXB0_UN_0_SHUN_0_OPCODE_X0 = 8,
1448  TBLIDXB0_UN_0_SHUN_0_OPCODE_Y0 = 8,
1449  TBLIDXB1_UN_0_SHUN_0_OPCODE_X0 = 9,
1450  TBLIDXB1_UN_0_SHUN_0_OPCODE_Y0 = 9,
1451  TBLIDXB2_UN_0_SHUN_0_OPCODE_X0 = 10,
1452  TBLIDXB2_UN_0_SHUN_0_OPCODE_Y0 = 10,
1453  TBLIDXB3_UN_0_SHUN_0_OPCODE_X0 = 11,
1454  TBLIDXB3_UN_0_SHUN_0_OPCODE_Y0 = 11,
1455  TNS_UN_0_SHUN_0_OPCODE_X1 = 22,
1456  UN_0_SHUN_0_OPCODE_X0 = 11,
1457  UN_0_SHUN_0_OPCODE_X1 = 11,
1458  UN_0_SHUN_0_OPCODE_Y0 = 5,
1459  UN_0_SHUN_0_OPCODE_Y1 = 5,
1460  WH64_UN_0_SHUN_0_OPCODE_X1 = 23,
1461  XORI_IMM_0_OPCODE_X0 = 2,
1462  XORI_IMM_0_OPCODE_X1 = 21,
1463  XOR_SPECIAL_0_OPCODE_X0 = 94,
1464  XOR_SPECIAL_0_OPCODE_X1 = 65,
1465  XOR_SPECIAL_2_OPCODE_Y0 = 3,
1466  XOR_SPECIAL_2_OPCODE_Y1 = 3
1467};
1468
1469
1470#endif /* __ASSEMBLER__ */
1471
1472#endif /* __ARCH_OPCODE_H__ */
1473