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