LCOV - code coverage report
Current view: top level - build-llvm/lib/Target/Mips - MipsGenRegisterInfo.inc (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 29 59 49.2 %
Date: 2018-10-20 13:21:21 Functions: 8 15 53.3 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
       2             : |*                                                                            *|
       3             : |* Target Register Enum Values                                                *|
       4             : |*                                                                            *|
       5             : |* Automatically generated file, do not edit!                                 *|
       6             : |*                                                                            *|
       7             : \*===----------------------------------------------------------------------===*/
       8             : 
       9             : 
      10             : #ifdef GET_REGINFO_ENUM
      11             : #undef GET_REGINFO_ENUM
      12             : 
      13             : namespace llvm {
      14             : 
      15             : class MCRegisterClass;
      16             : extern const MCRegisterClass MipsMCRegisterClasses[];
      17             : 
      18             : namespace Mips {
      19             : enum {
      20             :   NoRegister,
      21             :   AT = 1,
      22             :   DSPCCond = 2,
      23             :   DSPCarry = 3,
      24             :   DSPEFI = 4,
      25             :   DSPOutFlag = 5,
      26             :   DSPPos = 6,
      27             :   DSPSCount = 7,
      28             :   FP = 8,
      29             :   GP = 9,
      30             :   MSAAccess = 10,
      31             :   MSACSR = 11,
      32             :   MSAIR = 12,
      33             :   MSAMap = 13,
      34             :   MSAModify = 14,
      35             :   MSARequest = 15,
      36             :   MSASave = 16,
      37             :   MSAUnmap = 17,
      38             :   PC = 18,
      39             :   RA = 19,
      40             :   SP = 20,
      41             :   ZERO = 21,
      42             :   A0 = 22,
      43             :   A1 = 23,
      44             :   A2 = 24,
      45             :   A3 = 25,
      46             :   AC0 = 26,
      47             :   AC1 = 27,
      48             :   AC2 = 28,
      49             :   AC3 = 29,
      50             :   AT_64 = 30,
      51             :   COP00 = 31,
      52             :   COP01 = 32,
      53             :   COP02 = 33,
      54             :   COP03 = 34,
      55             :   COP04 = 35,
      56             :   COP05 = 36,
      57             :   COP06 = 37,
      58             :   COP07 = 38,
      59             :   COP08 = 39,
      60             :   COP09 = 40,
      61             :   COP20 = 41,
      62             :   COP21 = 42,
      63             :   COP22 = 43,
      64             :   COP23 = 44,
      65             :   COP24 = 45,
      66             :   COP25 = 46,
      67             :   COP26 = 47,
      68             :   COP27 = 48,
      69             :   COP28 = 49,
      70             :   COP29 = 50,
      71             :   COP30 = 51,
      72             :   COP31 = 52,
      73             :   COP32 = 53,
      74             :   COP33 = 54,
      75             :   COP34 = 55,
      76             :   COP35 = 56,
      77             :   COP36 = 57,
      78             :   COP37 = 58,
      79             :   COP38 = 59,
      80             :   COP39 = 60,
      81             :   COP010 = 61,
      82             :   COP011 = 62,
      83             :   COP012 = 63,
      84             :   COP013 = 64,
      85             :   COP014 = 65,
      86             :   COP015 = 66,
      87             :   COP016 = 67,
      88             :   COP017 = 68,
      89             :   COP018 = 69,
      90             :   COP019 = 70,
      91             :   COP020 = 71,
      92             :   COP021 = 72,
      93             :   COP022 = 73,
      94             :   COP023 = 74,
      95             :   COP024 = 75,
      96             :   COP025 = 76,
      97             :   COP026 = 77,
      98             :   COP027 = 78,
      99             :   COP028 = 79,
     100             :   COP029 = 80,
     101             :   COP030 = 81,
     102             :   COP031 = 82,
     103             :   COP210 = 83,
     104             :   COP211 = 84,
     105             :   COP212 = 85,
     106             :   COP213 = 86,
     107             :   COP214 = 87,
     108             :   COP215 = 88,
     109             :   COP216 = 89,
     110             :   COP217 = 90,
     111             :   COP218 = 91,
     112             :   COP219 = 92,
     113             :   COP220 = 93,
     114             :   COP221 = 94,
     115             :   COP222 = 95,
     116             :   COP223 = 96,
     117             :   COP224 = 97,
     118             :   COP225 = 98,
     119             :   COP226 = 99,
     120             :   COP227 = 100,
     121             :   COP228 = 101,
     122             :   COP229 = 102,
     123             :   COP230 = 103,
     124             :   COP231 = 104,
     125             :   COP310 = 105,
     126             :   COP311 = 106,
     127             :   COP312 = 107,
     128             :   COP313 = 108,
     129             :   COP314 = 109,
     130             :   COP315 = 110,
     131             :   COP316 = 111,
     132             :   COP317 = 112,
     133             :   COP318 = 113,
     134             :   COP319 = 114,
     135             :   COP320 = 115,
     136             :   COP321 = 116,
     137             :   COP322 = 117,
     138             :   COP323 = 118,
     139             :   COP324 = 119,
     140             :   COP325 = 120,
     141             :   COP326 = 121,
     142             :   COP327 = 122,
     143             :   COP328 = 123,
     144             :   COP329 = 124,
     145             :   COP330 = 125,
     146             :   COP331 = 126,
     147             :   D0 = 127,
     148             :   D1 = 128,
     149             :   D2 = 129,
     150             :   D3 = 130,
     151             :   D4 = 131,
     152             :   D5 = 132,
     153             :   D6 = 133,
     154             :   D7 = 134,
     155             :   D8 = 135,
     156             :   D9 = 136,
     157             :   D10 = 137,
     158             :   D11 = 138,
     159             :   D12 = 139,
     160             :   D13 = 140,
     161             :   D14 = 141,
     162             :   D15 = 142,
     163             :   DSPOutFlag20 = 143,
     164             :   DSPOutFlag21 = 144,
     165             :   DSPOutFlag22 = 145,
     166             :   DSPOutFlag23 = 146,
     167             :   F0 = 147,
     168             :   F1 = 148,
     169             :   F2 = 149,
     170             :   F3 = 150,
     171             :   F4 = 151,
     172             :   F5 = 152,
     173             :   F6 = 153,
     174             :   F7 = 154,
     175             :   F8 = 155,
     176             :   F9 = 156,
     177             :   F10 = 157,
     178             :   F11 = 158,
     179             :   F12 = 159,
     180             :   F13 = 160,
     181             :   F14 = 161,
     182             :   F15 = 162,
     183             :   F16 = 163,
     184             :   F17 = 164,
     185             :   F18 = 165,
     186             :   F19 = 166,
     187             :   F20 = 167,
     188             :   F21 = 168,
     189             :   F22 = 169,
     190             :   F23 = 170,
     191             :   F24 = 171,
     192             :   F25 = 172,
     193             :   F26 = 173,
     194             :   F27 = 174,
     195             :   F28 = 175,
     196             :   F29 = 176,
     197             :   F30 = 177,
     198             :   F31 = 178,
     199             :   FCC0 = 179,
     200             :   FCC1 = 180,
     201             :   FCC2 = 181,
     202             :   FCC3 = 182,
     203             :   FCC4 = 183,
     204             :   FCC5 = 184,
     205             :   FCC6 = 185,
     206             :   FCC7 = 186,
     207             :   FCR0 = 187,
     208             :   FCR1 = 188,
     209             :   FCR2 = 189,
     210             :   FCR3 = 190,
     211             :   FCR4 = 191,
     212             :   FCR5 = 192,
     213             :   FCR6 = 193,
     214             :   FCR7 = 194,
     215             :   FCR8 = 195,
     216             :   FCR9 = 196,
     217             :   FCR10 = 197,
     218             :   FCR11 = 198,
     219             :   FCR12 = 199,
     220             :   FCR13 = 200,
     221             :   FCR14 = 201,
     222             :   FCR15 = 202,
     223             :   FCR16 = 203,
     224             :   FCR17 = 204,
     225             :   FCR18 = 205,
     226             :   FCR19 = 206,
     227             :   FCR20 = 207,
     228             :   FCR21 = 208,
     229             :   FCR22 = 209,
     230             :   FCR23 = 210,
     231             :   FCR24 = 211,
     232             :   FCR25 = 212,
     233             :   FCR26 = 213,
     234             :   FCR27 = 214,
     235             :   FCR28 = 215,
     236             :   FCR29 = 216,
     237             :   FCR30 = 217,
     238             :   FCR31 = 218,
     239             :   FP_64 = 219,
     240             :   F_HI0 = 220,
     241             :   F_HI1 = 221,
     242             :   F_HI2 = 222,
     243             :   F_HI3 = 223,
     244             :   F_HI4 = 224,
     245             :   F_HI5 = 225,
     246             :   F_HI6 = 226,
     247             :   F_HI7 = 227,
     248             :   F_HI8 = 228,
     249             :   F_HI9 = 229,
     250             :   F_HI10 = 230,
     251             :   F_HI11 = 231,
     252             :   F_HI12 = 232,
     253             :   F_HI13 = 233,
     254             :   F_HI14 = 234,
     255             :   F_HI15 = 235,
     256             :   F_HI16 = 236,
     257             :   F_HI17 = 237,
     258             :   F_HI18 = 238,
     259             :   F_HI19 = 239,
     260             :   F_HI20 = 240,
     261             :   F_HI21 = 241,
     262             :   F_HI22 = 242,
     263             :   F_HI23 = 243,
     264             :   F_HI24 = 244,
     265             :   F_HI25 = 245,
     266             :   F_HI26 = 246,
     267             :   F_HI27 = 247,
     268             :   F_HI28 = 248,
     269             :   F_HI29 = 249,
     270             :   F_HI30 = 250,
     271             :   F_HI31 = 251,
     272             :   GP_64 = 252,
     273             :   HI0 = 253,
     274             :   HI1 = 254,
     275             :   HI2 = 255,
     276             :   HI3 = 256,
     277             :   HWR0 = 257,
     278             :   HWR1 = 258,
     279             :   HWR2 = 259,
     280             :   HWR3 = 260,
     281             :   HWR4 = 261,
     282             :   HWR5 = 262,
     283             :   HWR6 = 263,
     284             :   HWR7 = 264,
     285             :   HWR8 = 265,
     286             :   HWR9 = 266,
     287             :   HWR10 = 267,
     288             :   HWR11 = 268,
     289             :   HWR12 = 269,
     290             :   HWR13 = 270,
     291             :   HWR14 = 271,
     292             :   HWR15 = 272,
     293             :   HWR16 = 273,
     294             :   HWR17 = 274,
     295             :   HWR18 = 275,
     296             :   HWR19 = 276,
     297             :   HWR20 = 277,
     298             :   HWR21 = 278,
     299             :   HWR22 = 279,
     300             :   HWR23 = 280,
     301             :   HWR24 = 281,
     302             :   HWR25 = 282,
     303             :   HWR26 = 283,
     304             :   HWR27 = 284,
     305             :   HWR28 = 285,
     306             :   HWR29 = 286,
     307             :   HWR30 = 287,
     308             :   HWR31 = 288,
     309             :   K0 = 289,
     310             :   K1 = 290,
     311             :   LO0 = 291,
     312             :   LO1 = 292,
     313             :   LO2 = 293,
     314             :   LO3 = 294,
     315             :   MPL0 = 295,
     316             :   MPL1 = 296,
     317             :   MPL2 = 297,
     318             :   P0 = 298,
     319             :   P1 = 299,
     320             :   P2 = 300,
     321             :   RA_64 = 301,
     322             :   S0 = 302,
     323             :   S1 = 303,
     324             :   S2 = 304,
     325             :   S3 = 305,
     326             :   S4 = 306,
     327             :   S5 = 307,
     328             :   S6 = 308,
     329             :   S7 = 309,
     330             :   SP_64 = 310,
     331             :   T0 = 311,
     332             :   T1 = 312,
     333             :   T2 = 313,
     334             :   T3 = 314,
     335             :   T4 = 315,
     336             :   T5 = 316,
     337             :   T6 = 317,
     338             :   T7 = 318,
     339             :   T8 = 319,
     340             :   T9 = 320,
     341             :   V0 = 321,
     342             :   V1 = 322,
     343             :   W0 = 323,
     344             :   W1 = 324,
     345             :   W2 = 325,
     346             :   W3 = 326,
     347             :   W4 = 327,
     348             :   W5 = 328,
     349             :   W6 = 329,
     350             :   W7 = 330,
     351             :   W8 = 331,
     352             :   W9 = 332,
     353             :   W10 = 333,
     354             :   W11 = 334,
     355             :   W12 = 335,
     356             :   W13 = 336,
     357             :   W14 = 337,
     358             :   W15 = 338,
     359             :   W16 = 339,
     360             :   W17 = 340,
     361             :   W18 = 341,
     362             :   W19 = 342,
     363             :   W20 = 343,
     364             :   W21 = 344,
     365             :   W22 = 345,
     366             :   W23 = 346,
     367             :   W24 = 347,
     368             :   W25 = 348,
     369             :   W26 = 349,
     370             :   W27 = 350,
     371             :   W28 = 351,
     372             :   W29 = 352,
     373             :   W30 = 353,
     374             :   W31 = 354,
     375             :   ZERO_64 = 355,
     376             :   A0_64 = 356,
     377             :   A1_64 = 357,
     378             :   A2_64 = 358,
     379             :   A3_64 = 359,
     380             :   AC0_64 = 360,
     381             :   D0_64 = 361,
     382             :   D1_64 = 362,
     383             :   D2_64 = 363,
     384             :   D3_64 = 364,
     385             :   D4_64 = 365,
     386             :   D5_64 = 366,
     387             :   D6_64 = 367,
     388             :   D7_64 = 368,
     389             :   D8_64 = 369,
     390             :   D9_64 = 370,
     391             :   D10_64 = 371,
     392             :   D11_64 = 372,
     393             :   D12_64 = 373,
     394             :   D13_64 = 374,
     395             :   D14_64 = 375,
     396             :   D15_64 = 376,
     397             :   D16_64 = 377,
     398             :   D17_64 = 378,
     399             :   D18_64 = 379,
     400             :   D19_64 = 380,
     401             :   D20_64 = 381,
     402             :   D21_64 = 382,
     403             :   D22_64 = 383,
     404             :   D23_64 = 384,
     405             :   D24_64 = 385,
     406             :   D25_64 = 386,
     407             :   D26_64 = 387,
     408             :   D27_64 = 388,
     409             :   D28_64 = 389,
     410             :   D29_64 = 390,
     411             :   D30_64 = 391,
     412             :   D31_64 = 392,
     413             :   DSPOutFlag16_19 = 393,
     414             :   HI0_64 = 394,
     415             :   K0_64 = 395,
     416             :   K1_64 = 396,
     417             :   LO0_64 = 397,
     418             :   S0_64 = 398,
     419             :   S1_64 = 399,
     420             :   S2_64 = 400,
     421             :   S3_64 = 401,
     422             :   S4_64 = 402,
     423             :   S5_64 = 403,
     424             :   S6_64 = 404,
     425             :   S7_64 = 405,
     426             :   T0_64 = 406,
     427             :   T1_64 = 407,
     428             :   T2_64 = 408,
     429             :   T3_64 = 409,
     430             :   T4_64 = 410,
     431             :   T5_64 = 411,
     432             :   T6_64 = 412,
     433             :   T7_64 = 413,
     434             :   T8_64 = 414,
     435             :   T9_64 = 415,
     436             :   V0_64 = 416,
     437             :   V1_64 = 417,
     438             :   NUM_TARGET_REGS       // 418
     439             : };
     440             : } // end namespace Mips
     441             : 
     442             : // Register classes
     443             : 
     444             : namespace Mips {
     445             : enum {
     446             :   MSA128F16RegClassID = 0,
     447             :   MSA128F16_with_sub_64_in_OddSPRegClassID = 1,
     448             :   OddSPRegClassID = 2,
     449             :   CCRRegClassID = 3,
     450             :   COP0RegClassID = 4,
     451             :   COP2RegClassID = 5,
     452             :   COP3RegClassID = 6,
     453             :   DSPRRegClassID = 7,
     454             :   FGR32RegClassID = 8,
     455             :   FGRCCRegClassID = 9,
     456             :   FGRH32RegClassID = 10,
     457             :   GPR32RegClassID = 11,
     458             :   HWRegsRegClassID = 12,
     459             :   GPR32NONZERORegClassID = 13,
     460             :   OddSP_with_sub_hiRegClassID = 14,
     461             :   FGR32_and_OddSPRegClassID = 15,
     462             :   FGRH32_and_OddSPRegClassID = 16,
     463             :   OddSP_with_sub_hi_with_sub_hi_in_FGRH32RegClassID = 17,
     464             :   CPU16RegsPlusSPRegClassID = 18,
     465             :   CPU16RegsRegClassID = 19,
     466             :   FCCRegClassID = 20,
     467             :   GPRMM16RegClassID = 21,
     468             :   GPRMM16MovePRegClassID = 22,
     469             :   GPRMM16ZeroRegClassID = 23,
     470             :   MSACtrlRegClassID = 24,
     471             :   OddSP_with_sub_hi_with_sub_hi_in_FGR32RegClassID = 25,
     472             :   CPU16Regs_and_GPRMM16ZeroRegClassID = 26,
     473             :   GPR32NONZERO_and_GPRMM16MovePRegClassID = 27,
     474             :   GPRMM16MovePPairSecondRegClassID = 28,
     475             :   CPU16Regs_and_GPRMM16MovePRegClassID = 29,
     476             :   GPRMM16MoveP_and_GPRMM16ZeroRegClassID = 30,
     477             :   HI32DSPRegClassID = 31,
     478             :   LO32DSPRegClassID = 32,
     479             :   CPU16Regs_and_GPRMM16MovePPairSecondRegClassID = 33,
     480             :   GPRMM16MovePPairFirstRegClassID = 34,
     481             :   GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClassID = 35,
     482             :   GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClassID = 36,
     483             :   CPURARegRegClassID = 37,
     484             :   CPUSPRegRegClassID = 38,
     485             :   DSPCCRegClassID = 39,
     486             :   GP32RegClassID = 40,
     487             :   GPR32ZERORegClassID = 41,
     488             :   HI32RegClassID = 42,
     489             :   LO32RegClassID = 43,
     490             :   SP32RegClassID = 44,
     491             :   FGR64RegClassID = 45,
     492             :   GPR64RegClassID = 46,
     493             :   GPR64_with_sub_32_in_GPR32NONZERORegClassID = 47,
     494             :   AFGR64RegClassID = 48,
     495             :   FGR64_and_OddSPRegClassID = 49,
     496             :   GPR64_with_sub_32_in_CPU16RegsPlusSPRegClassID = 50,
     497             :   AFGR64_and_OddSPRegClassID = 51,
     498             :   GPR64_with_sub_32_in_CPU16RegsRegClassID = 52,
     499             :   GPR64_with_sub_32_in_GPRMM16MovePRegClassID = 53,
     500             :   GPR64_with_sub_32_in_GPRMM16ZeroRegClassID = 54,
     501             :   GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClassID = 55,
     502             :   GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePRegClassID = 56,
     503             :   GPR64_with_sub_32_in_GPRMM16MovePPairSecondRegClassID = 57,
     504             :   ACC64DSPRegClassID = 58,
     505             :   GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePRegClassID = 59,
     506             :   GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroRegClassID = 60,
     507             :   GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondRegClassID = 61,
     508             :   GPR64_with_sub_32_in_GPRMM16MovePPairFirstRegClassID = 62,
     509             :   GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClassID = 63,
     510             :   OCTEON_MPLRegClassID = 64,
     511             :   OCTEON_PRegClassID = 65,
     512             :   GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClassID = 66,
     513             :   ACC64RegClassID = 67,
     514             :   GP64RegClassID = 68,
     515             :   GPR64_with_sub_32_in_CPURARegRegClassID = 69,
     516             :   GPR64_with_sub_32_in_GPR32ZERORegClassID = 70,
     517             :   HI64RegClassID = 71,
     518             :   LO64RegClassID = 72,
     519             :   SP64RegClassID = 73,
     520             :   MSA128BRegClassID = 74,
     521             :   MSA128DRegClassID = 75,
     522             :   MSA128HRegClassID = 76,
     523             :   MSA128WRegClassID = 77,
     524             :   MSA128B_with_sub_64_in_OddSPRegClassID = 78,
     525             :   MSA128WEvensRegClassID = 79,
     526             :   ACC128RegClassID = 80,
     527             : 
     528             :   };
     529             : } // end namespace Mips
     530             : 
     531             : 
     532             : // Subregister indices
     533             : 
     534             : namespace Mips {
     535             : enum {
     536             :   NoSubRegister,
     537             :   sub_32,       // 1
     538             :   sub_64,       // 2
     539             :   sub_dsp16_19, // 3
     540             :   sub_dsp20,    // 4
     541             :   sub_dsp21,    // 5
     542             :   sub_dsp22,    // 6
     543             :   sub_dsp23,    // 7
     544             :   sub_hi,       // 8
     545             :   sub_lo,       // 9
     546             :   sub_hi_then_sub_32,   // 10
     547             :   sub_32_sub_hi_then_sub_32,    // 11
     548             :   NUM_TARGET_SUBREGS
     549             : };
     550             : } // end namespace Mips
     551             : 
     552             : } // end namespace llvm
     553             : 
     554             : #endif // GET_REGINFO_ENUM
     555             : 
     556             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
     557             : |*                                                                            *|
     558             : |* MC Register Information                                                    *|
     559             : |*                                                                            *|
     560             : |* Automatically generated file, do not edit!                                 *|
     561             : |*                                                                            *|
     562             : \*===----------------------------------------------------------------------===*/
     563             : 
     564             : 
     565             : #ifdef GET_REGINFO_MC_DESC
     566             : #undef GET_REGINFO_MC_DESC
     567             : 
     568             : namespace llvm {
     569             : 
     570             : extern const MCPhysReg MipsRegDiffLists[] = {
     571             :   /* 0 */ 0, 0,
     572             :   /* 2 */ 4, 1, 1, 1, 1, 0,
     573             :   /* 8 */ 388, 65286, 1, 1, 1, 0,
     574             :   /* 14 */ 20, 1, 0,
     575             :   /* 17 */ 21, 1, 0,
     576             :   /* 20 */ 22, 1, 0,
     577             :   /* 23 */ 23, 1, 0,
     578             :   /* 26 */ 24, 1, 0,
     579             :   /* 29 */ 25, 1, 0,
     580             :   /* 32 */ 26, 1, 0,
     581             :   /* 35 */ 27, 1, 0,
     582             :   /* 38 */ 28, 1, 0,
     583             :   /* 41 */ 29, 1, 0,
     584             :   /* 44 */ 30, 1, 0,
     585             :   /* 47 */ 31, 1, 0,
     586             :   /* 50 */ 32, 1, 0,
     587             :   /* 53 */ 33, 1, 0,
     588             :   /* 56 */ 34, 1, 0,
     589             :   /* 59 */ 35, 1, 0,
     590             :   /* 62 */ 65415, 1, 0,
     591             :   /* 65 */ 65513, 1, 0,
     592             :   /* 68 */ 3, 0,
     593             :   /* 70 */ 4, 0,
     594             :   /* 72 */ 6, 0,
     595             :   /* 74 */ 11, 0,
     596             :   /* 76 */ 12, 0,
     597             :   /* 78 */ 22, 0,
     598             :   /* 80 */ 23, 0,
     599             :   /* 82 */ 29, 0,
     600             :   /* 84 */ 30, 0,
     601             :   /* 86 */ 65308, 72, 0,
     602             :   /* 89 */ 65346, 72, 0,
     603             :   /* 92 */ 38, 65322, 73, 0,
     604             :   /* 96 */ 95, 0,
     605             :   /* 98 */ 96, 0,
     606             :   /* 100 */ 106, 0,
     607             :   /* 102 */ 211, 0,
     608             :   /* 104 */ 243, 0,
     609             :   /* 106 */ 282, 0,
     610             :   /* 108 */ 290, 0,
     611             :   /* 110 */ 334, 0,
     612             :   /* 112 */ 64983, 0,
     613             :   /* 114 */ 65060, 0,
     614             :   /* 116 */ 65148, 0,
     615             :   /* 118 */ 65202, 0,
     616             :   /* 120 */ 65205, 0,
     617             :   /* 122 */ 65246, 0,
     618             :   /* 124 */ 65254, 0,
     619             :   /* 126 */ 65271, 0,
     620             :   /* 128 */ 65293, 0,
     621             :   /* 130 */ 37, 65430, 103, 65395, 65309, 0,
     622             :   /* 136 */ 65325, 0,
     623             :   /* 138 */ 65395, 0,
     624             :   /* 140 */ 65396, 0,
     625             :   /* 142 */ 65397, 0,
     626             :   /* 144 */ 65398, 0,
     627             :   /* 146 */ 65410, 0,
     628             :   /* 148 */ 65415, 0,
     629             :   /* 150 */ 65430, 0,
     630             :   /* 152 */ 65440, 0,
     631             :   /* 154 */ 65441, 0,
     632             :   /* 156 */ 141, 65498, 0,
     633             :   /* 159 */ 65516, 234, 65498, 0,
     634             :   /* 163 */ 65515, 235, 65498, 0,
     635             :   /* 167 */ 65514, 236, 65498, 0,
     636             :   /* 171 */ 65513, 237, 65498, 0,
     637             :   /* 175 */ 65512, 238, 65498, 0,
     638             :   /* 179 */ 65511, 239, 65498, 0,
     639             :   /* 183 */ 65510, 240, 65498, 0,
     640             :   /* 187 */ 65509, 241, 65498, 0,
     641             :   /* 191 */ 65508, 242, 65498, 0,
     642             :   /* 195 */ 65507, 243, 65498, 0,
     643             :   /* 199 */ 65506, 244, 65498, 0,
     644             :   /* 203 */ 65505, 245, 65498, 0,
     645             :   /* 207 */ 65504, 246, 65498, 0,
     646             :   /* 211 */ 65503, 247, 65498, 0,
     647             :   /* 215 */ 65502, 248, 65498, 0,
     648             :   /* 219 */ 65501, 249, 65498, 0,
     649             :   /* 223 */ 65500, 250, 65498, 0,
     650             :   /* 227 */ 265, 65498, 0,
     651             :   /* 230 */ 65271, 371, 65499, 0,
     652             :   /* 234 */ 65309, 368, 65502, 0,
     653             :   /* 238 */ 65507, 0,
     654             :   /* 240 */ 65510, 0,
     655             :   /* 242 */ 65511, 0,
     656             :   /* 244 */ 65512, 0,
     657             :   /* 246 */ 65516, 0,
     658             :   /* 248 */ 65521, 0,
     659             :   /* 250 */ 65522, 0,
     660             :   /* 252 */ 65535, 0,
     661             : };
     662             : 
     663             : extern const LaneBitmask MipsLaneMaskLists[] = {
     664             :   /* 0 */ LaneBitmask(0x00000000), LaneBitmask::getAll(),
     665             :   /* 2 */ LaneBitmask(0x00000001), LaneBitmask::getAll(),
     666             :   /* 4 */ LaneBitmask(0x00000002), LaneBitmask(0x00000004), LaneBitmask(0x00000008), LaneBitmask(0x00000010), LaneBitmask(0x00000020), LaneBitmask::getAll(),
     667             :   /* 10 */ LaneBitmask(0x00000001), LaneBitmask(0x00000040), LaneBitmask::getAll(),
     668             : };
     669             : 
     670             : extern const uint16_t MipsSubRegIdxLists[] = {
     671             :   /* 0 */ 1, 0,
     672             :   /* 2 */ 3, 4, 5, 6, 7, 0,
     673             :   /* 8 */ 2, 9, 8, 0,
     674             :   /* 12 */ 9, 1, 8, 10, 11, 0,
     675             : };
     676             : 
     677             : extern const MCRegisterInfo::SubRegCoveredBits MipsSubRegIdxRanges[] = {
     678             :   { 65535, 65535 },
     679             :   { 0, 32 },    // sub_32
     680             :   { 0, 64 },    // sub_64
     681             :   { 16, 4 },    // sub_dsp16_19
     682             :   { 20, 1 },    // sub_dsp20
     683             :   { 21, 1 },    // sub_dsp21
     684             :   { 22, 1 },    // sub_dsp22
     685             :   { 23, 1 },    // sub_dsp23
     686             :   { 32, 32 },   // sub_hi
     687             :   { 0, 32 },    // sub_lo
     688             :   { 32, 32 },   // sub_hi_then_sub_32
     689             :   { 0, 64 },    // sub_32_sub_hi_then_sub_32
     690             : };
     691             : 
     692             : extern const char MipsRegStrings[] = {
     693             :   /* 0 */ 'C', 'O', 'P', '0', '0', 0,
     694             :   /* 6 */ 'C', 'O', 'P', '0', '1', '0', 0,
     695             :   /* 13 */ 'C', 'O', 'P', '2', '1', '0', 0,
     696             :   /* 20 */ 'C', 'O', 'P', '3', '1', '0', 0,
     697             :   /* 27 */ 'D', '1', '0', 0,
     698             :   /* 31 */ 'F', '1', '0', 0,
     699             :   /* 35 */ 'F', '_', 'H', 'I', '1', '0', 0,
     700             :   /* 42 */ 'F', 'C', 'R', '1', '0', 0,
     701             :   /* 48 */ 'H', 'W', 'R', '1', '0', 0,
     702             :   /* 54 */ 'W', '1', '0', 0,
     703             :   /* 58 */ 'C', 'O', 'P', '0', '2', '0', 0,
     704             :   /* 65 */ 'C', 'O', 'P', '2', '2', '0', 0,
     705             :   /* 72 */ 'C', 'O', 'P', '3', '2', '0', 0,
     706             :   /* 79 */ 'F', '2', '0', 0,
     707             :   /* 83 */ 'F', '_', 'H', 'I', '2', '0', 0,
     708             :   /* 90 */ 'C', 'O', 'P', '2', '0', 0,
     709             :   /* 96 */ 'F', 'C', 'R', '2', '0', 0,
     710             :   /* 102 */ 'H', 'W', 'R', '2', '0', 0,
     711             :   /* 108 */ 'W', '2', '0', 0,
     712             :   /* 112 */ 'D', 'S', 'P', 'O', 'u', 't', 'F', 'l', 'a', 'g', '2', '0', 0,
     713             :   /* 125 */ 'C', 'O', 'P', '0', '3', '0', 0,
     714             :   /* 132 */ 'C', 'O', 'P', '2', '3', '0', 0,
     715             :   /* 139 */ 'C', 'O', 'P', '3', '3', '0', 0,
     716             :   /* 146 */ 'F', '3', '0', 0,
     717             :   /* 150 */ 'F', '_', 'H', 'I', '3', '0', 0,
     718             :   /* 157 */ 'C', 'O', 'P', '3', '0', 0,
     719             :   /* 163 */ 'F', 'C', 'R', '3', '0', 0,
     720             :   /* 169 */ 'H', 'W', 'R', '3', '0', 0,
     721             :   /* 175 */ 'W', '3', '0', 0,
     722             :   /* 179 */ 'A', '0', 0,
     723             :   /* 182 */ 'A', 'C', '0', 0,
     724             :   /* 186 */ 'F', 'C', 'C', '0', 0,
     725             :   /* 191 */ 'D', '0', 0,
     726             :   /* 194 */ 'F', '0', 0,
     727             :   /* 197 */ 'F', '_', 'H', 'I', '0', 0,
     728             :   /* 203 */ 'K', '0', 0,
     729             :   /* 206 */ 'M', 'P', 'L', '0', 0,
     730             :   /* 211 */ 'L', 'O', '0', 0,
     731             :   /* 215 */ 'P', '0', 0,
     732             :   /* 218 */ 'F', 'C', 'R', '0', 0,
     733             :   /* 223 */ 'H', 'W', 'R', '0', 0,
     734             :   /* 228 */ 'S', '0', 0,
     735             :   /* 231 */ 'T', '0', 0,
     736             :   /* 234 */ 'V', '0', 0,
     737             :   /* 237 */ 'W', '0', 0,
     738             :   /* 240 */ 'C', 'O', 'P', '0', '1', 0,
     739             :   /* 246 */ 'C', 'O', 'P', '0', '1', '1', 0,
     740             :   /* 253 */ 'C', 'O', 'P', '2', '1', '1', 0,
     741             :   /* 260 */ 'C', 'O', 'P', '3', '1', '1', 0,
     742             :   /* 267 */ 'D', '1', '1', 0,
     743             :   /* 271 */ 'F', '1', '1', 0,
     744             :   /* 275 */ 'F', '_', 'H', 'I', '1', '1', 0,
     745             :   /* 282 */ 'F', 'C', 'R', '1', '1', 0,
     746             :   /* 288 */ 'H', 'W', 'R', '1', '1', 0,
     747             :   /* 294 */ 'W', '1', '1', 0,
     748             :   /* 298 */ 'C', 'O', 'P', '0', '2', '1', 0,
     749             :   /* 305 */ 'C', 'O', 'P', '2', '2', '1', 0,
     750             :   /* 312 */ 'C', 'O', 'P', '3', '2', '1', 0,
     751             :   /* 319 */ 'F', '2', '1', 0,
     752             :   /* 323 */ 'F', '_', 'H', 'I', '2', '1', 0,
     753             :   /* 330 */ 'C', 'O', 'P', '2', '1', 0,
     754             :   /* 336 */ 'F', 'C', 'R', '2', '1', 0,
     755             :   /* 342 */ 'H', 'W', 'R', '2', '1', 0,
     756             :   /* 348 */ 'W', '2', '1', 0,
     757             :   /* 352 */ 'D', 'S', 'P', 'O', 'u', 't', 'F', 'l', 'a', 'g', '2', '1', 0,
     758             :   /* 365 */ 'C', 'O', 'P', '0', '3', '1', 0,
     759             :   /* 372 */ 'C', 'O', 'P', '2', '3', '1', 0,
     760             :   /* 379 */ 'C', 'O', 'P', '3', '3', '1', 0,
     761             :   /* 386 */ 'F', '3', '1', 0,
     762             :   /* 390 */ 'F', '_', 'H', 'I', '3', '1', 0,
     763             :   /* 397 */ 'C', 'O', 'P', '3', '1', 0,
     764             :   /* 403 */ 'F', 'C', 'R', '3', '1', 0,
     765             :   /* 409 */ 'H', 'W', 'R', '3', '1', 0,
     766             :   /* 415 */ 'W', '3', '1', 0,
     767             :   /* 419 */ 'A', '1', 0,
     768             :   /* 422 */ 'A', 'C', '1', 0,
     769             :   /* 426 */ 'F', 'C', 'C', '1', 0,
     770             :   /* 431 */ 'D', '1', 0,
     771             :   /* 434 */ 'F', '1', 0,
     772             :   /* 437 */ 'F', '_', 'H', 'I', '1', 0,
     773             :   /* 443 */ 'K', '1', 0,
     774             :   /* 446 */ 'M', 'P', 'L', '1', 0,
     775             :   /* 451 */ 'L', 'O', '1', 0,
     776             :   /* 455 */ 'P', '1', 0,
     777             :   /* 458 */ 'F', 'C', 'R', '1', 0,
     778             :   /* 463 */ 'H', 'W', 'R', '1', 0,
     779             :   /* 468 */ 'S', '1', 0,
     780             :   /* 471 */ 'T', '1', 0,
     781             :   /* 474 */ 'V', '1', 0,
     782             :   /* 477 */ 'W', '1', 0,
     783             :   /* 480 */ 'C', 'O', 'P', '0', '2', 0,
     784             :   /* 486 */ 'C', 'O', 'P', '0', '1', '2', 0,
     785             :   /* 493 */ 'C', 'O', 'P', '2', '1', '2', 0,
     786             :   /* 500 */ 'C', 'O', 'P', '3', '1', '2', 0,
     787             :   /* 507 */ 'D', '1', '2', 0,
     788             :   /* 511 */ 'F', '1', '2', 0,
     789             :   /* 515 */ 'F', '_', 'H', 'I', '1', '2', 0,
     790             :   /* 522 */ 'F', 'C', 'R', '1', '2', 0,
     791             :   /* 528 */ 'H', 'W', 'R', '1', '2', 0,
     792             :   /* 534 */ 'W', '1', '2', 0,
     793             :   /* 538 */ 'C', 'O', 'P', '0', '2', '2', 0,
     794             :   /* 545 */ 'C', 'O', 'P', '2', '2', '2', 0,
     795             :   /* 552 */ 'C', 'O', 'P', '3', '2', '2', 0,
     796             :   /* 559 */ 'F', '2', '2', 0,
     797             :   /* 563 */ 'F', '_', 'H', 'I', '2', '2', 0,
     798             :   /* 570 */ 'C', 'O', 'P', '2', '2', 0,
     799             :   /* 576 */ 'F', 'C', 'R', '2', '2', 0,
     800             :   /* 582 */ 'H', 'W', 'R', '2', '2', 0,
     801             :   /* 588 */ 'W', '2', '2', 0,
     802             :   /* 592 */ 'D', 'S', 'P', 'O', 'u', 't', 'F', 'l', 'a', 'g', '2', '2', 0,
     803             :   /* 605 */ 'C', 'O', 'P', '3', '2', 0,
     804             :   /* 611 */ 'A', '2', 0,
     805             :   /* 614 */ 'A', 'C', '2', 0,
     806             :   /* 618 */ 'F', 'C', 'C', '2', 0,
     807             :   /* 623 */ 'D', '2', 0,
     808             :   /* 626 */ 'F', '2', 0,
     809             :   /* 629 */ 'F', '_', 'H', 'I', '2', 0,
     810             :   /* 635 */ 'M', 'P', 'L', '2', 0,
     811             :   /* 640 */ 'L', 'O', '2', 0,
     812             :   /* 644 */ 'P', '2', 0,
     813             :   /* 647 */ 'F', 'C', 'R', '2', 0,
     814             :   /* 652 */ 'H', 'W', 'R', '2', 0,
     815             :   /* 657 */ 'S', '2', 0,
     816             :   /* 660 */ 'T', '2', 0,
     817             :   /* 663 */ 'W', '2', 0,
     818             :   /* 666 */ 'C', 'O', 'P', '0', '3', 0,
     819             :   /* 672 */ 'C', 'O', 'P', '0', '1', '3', 0,
     820             :   /* 679 */ 'C', 'O', 'P', '2', '1', '3', 0,
     821             :   /* 686 */ 'C', 'O', 'P', '3', '1', '3', 0,
     822             :   /* 693 */ 'D', '1', '3', 0,
     823             :   /* 697 */ 'F', '1', '3', 0,
     824             :   /* 701 */ 'F', '_', 'H', 'I', '1', '3', 0,
     825             :   /* 708 */ 'F', 'C', 'R', '1', '3', 0,
     826             :   /* 714 */ 'H', 'W', 'R', '1', '3', 0,
     827             :   /* 720 */ 'W', '1', '3', 0,
     828             :   /* 724 */ 'C', 'O', 'P', '0', '2', '3', 0,
     829             :   /* 731 */ 'C', 'O', 'P', '2', '2', '3', 0,
     830             :   /* 738 */ 'C', 'O', 'P', '3', '2', '3', 0,
     831             :   /* 745 */ 'F', '2', '3', 0,
     832             :   /* 749 */ 'F', '_', 'H', 'I', '2', '3', 0,
     833             :   /* 756 */ 'C', 'O', 'P', '2', '3', 0,
     834             :   /* 762 */ 'F', 'C', 'R', '2', '3', 0,
     835             :   /* 768 */ 'H', 'W', 'R', '2', '3', 0,
     836             :   /* 774 */ 'W', '2', '3', 0,
     837             :   /* 778 */ 'D', 'S', 'P', 'O', 'u', 't', 'F', 'l', 'a', 'g', '2', '3', 0,
     838             :   /* 791 */ 'C', 'O', 'P', '3', '3', 0,
     839             :   /* 797 */ 'A', '3', 0,
     840             :   /* 800 */ 'A', 'C', '3', 0,
     841             :   /* 804 */ 'F', 'C', 'C', '3', 0,
     842             :   /* 809 */ 'D', '3', 0,
     843             :   /* 812 */ 'F', '3', 0,
     844             :   /* 815 */ 'F', '_', 'H', 'I', '3', 0,
     845             :   /* 821 */ 'L', 'O', '3', 0,
     846             :   /* 825 */ 'F', 'C', 'R', '3', 0,
     847             :   /* 830 */ 'H', 'W', 'R', '3', 0,
     848             :   /* 835 */ 'S', '3', 0,
     849             :   /* 838 */ 'T', '3', 0,
     850             :   /* 841 */ 'W', '3', 0,
     851             :   /* 844 */ 'C', 'O', 'P', '0', '4', 0,
     852             :   /* 850 */ 'C', 'O', 'P', '0', '1', '4', 0,
     853             :   /* 857 */ 'C', 'O', 'P', '2', '1', '4', 0,
     854             :   /* 864 */ 'C', 'O', 'P', '3', '1', '4', 0,
     855             :   /* 871 */ 'D', '1', '4', 0,
     856             :   /* 875 */ 'F', '1', '4', 0,
     857             :   /* 879 */ 'F', '_', 'H', 'I', '1', '4', 0,
     858             :   /* 886 */ 'F', 'C', 'R', '1', '4', 0,
     859             :   /* 892 */ 'H', 'W', 'R', '1', '4', 0,
     860             :   /* 898 */ 'W', '1', '4', 0,
     861             :   /* 902 */ 'C', 'O', 'P', '0', '2', '4', 0,
     862             :   /* 909 */ 'C', 'O', 'P', '2', '2', '4', 0,
     863             :   /* 916 */ 'C', 'O', 'P', '3', '2', '4', 0,
     864             :   /* 923 */ 'F', '2', '4', 0,
     865             :   /* 927 */ 'F', '_', 'H', 'I', '2', '4', 0,
     866             :   /* 934 */ 'C', 'O', 'P', '2', '4', 0,
     867             :   /* 940 */ 'F', 'C', 'R', '2', '4', 0,
     868             :   /* 946 */ 'H', 'W', 'R', '2', '4', 0,
     869             :   /* 952 */ 'W', '2', '4', 0,
     870             :   /* 956 */ 'C', 'O', 'P', '3', '4', 0,
     871             :   /* 962 */ 'D', '1', '0', '_', '6', '4', 0,
     872             :   /* 969 */ 'D', '2', '0', '_', '6', '4', 0,
     873             :   /* 976 */ 'D', '3', '0', '_', '6', '4', 0,
     874             :   /* 983 */ 'A', '0', '_', '6', '4', 0,
     875             :   /* 989 */ 'A', 'C', '0', '_', '6', '4', 0,
     876             :   /* 996 */ 'D', '0', '_', '6', '4', 0,
     877             :   /* 1002 */ 'H', 'I', '0', '_', '6', '4', 0,
     878             :   /* 1009 */ 'K', '0', '_', '6', '4', 0,
     879             :   /* 1015 */ 'L', 'O', '0', '_', '6', '4', 0,
     880             :   /* 1022 */ 'S', '0', '_', '6', '4', 0,
     881             :   /* 1028 */ 'T', '0', '_', '6', '4', 0,
     882             :   /* 1034 */ 'V', '0', '_', '6', '4', 0,
     883             :   /* 1040 */ 'D', '1', '1', '_', '6', '4', 0,
     884             :   /* 1047 */ 'D', '2', '1', '_', '6', '4', 0,
     885             :   /* 1054 */ 'D', '3', '1', '_', '6', '4', 0,
     886             :   /* 1061 */ 'A', '1', '_', '6', '4', 0,
     887             :   /* 1067 */ 'D', '1', '_', '6', '4', 0,
     888             :   /* 1073 */ 'K', '1', '_', '6', '4', 0,
     889             :   /* 1079 */ 'S', '1', '_', '6', '4', 0,
     890             :   /* 1085 */ 'T', '1', '_', '6', '4', 0,
     891             :   /* 1091 */ 'V', '1', '_', '6', '4', 0,
     892             :   /* 1097 */ 'D', '1', '2', '_', '6', '4', 0,
     893             :   /* 1104 */ 'D', '2', '2', '_', '6', '4', 0,
     894             :   /* 1111 */ 'A', '2', '_', '6', '4', 0,
     895             :   /* 1117 */ 'D', '2', '_', '6', '4', 0,
     896             :   /* 1123 */ 'S', '2', '_', '6', '4', 0,
     897             :   /* 1129 */ 'T', '2', '_', '6', '4', 0,
     898             :   /* 1135 */ 'D', '1', '3', '_', '6', '4', 0,
     899             :   /* 1142 */ 'D', '2', '3', '_', '6', '4', 0,
     900             :   /* 1149 */ 'A', '3', '_', '6', '4', 0,
     901             :   /* 1155 */ 'D', '3', '_', '6', '4', 0,
     902             :   /* 1161 */ 'S', '3', '_', '6', '4', 0,
     903             :   /* 1167 */ 'T', '3', '_', '6', '4', 0,
     904             :   /* 1173 */ 'D', '1', '4', '_', '6', '4', 0,
     905             :   /* 1180 */ 'D', '2', '4', '_', '6', '4', 0,
     906             :   /* 1187 */ 'D', '4', '_', '6', '4', 0,
     907             :   /* 1193 */ 'S', '4', '_', '6', '4', 0,
     908             :   /* 1199 */ 'T', '4', '_', '6', '4', 0,
     909             :   /* 1205 */ 'D', '1', '5', '_', '6', '4', 0,
     910             :   /* 1212 */ 'D', '2', '5', '_', '6', '4', 0,
     911             :   /* 1219 */ 'D', '5', '_', '6', '4', 0,
     912             :   /* 1225 */ 'S', '5', '_', '6', '4', 0,
     913             :   /* 1231 */ 'T', '5', '_', '6', '4', 0,
     914             :   /* 1237 */ 'D', '1', '6', '_', '6', '4', 0,
     915             :   /* 1244 */ 'D', '2', '6', '_', '6', '4', 0,
     916             :   /* 1251 */ 'D', '6', '_', '6', '4', 0,
     917             :   /* 1257 */ 'S', '6', '_', '6', '4', 0,
     918             :   /* 1263 */ 'T', '6', '_', '6', '4', 0,
     919             :   /* 1269 */ 'D', '1', '7', '_', '6', '4', 0,
     920             :   /* 1276 */ 'D', '2', '7', '_', '6', '4', 0,
     921             :   /* 1283 */ 'D', '7', '_', '6', '4', 0,
     922             :   /* 1289 */ 'S', '7', '_', '6', '4', 0,
     923             :   /* 1295 */ 'T', '7', '_', '6', '4', 0,
     924             :   /* 1301 */ 'D', '1', '8', '_', '6', '4', 0,
     925             :   /* 1308 */ 'D', '2', '8', '_', '6', '4', 0,
     926             :   /* 1315 */ 'D', '8', '_', '6', '4', 0,
     927             :   /* 1321 */ 'T', '8', '_', '6', '4', 0,
     928             :   /* 1327 */ 'D', '1', '9', '_', '6', '4', 0,
     929             :   /* 1334 */ 'D', '2', '9', '_', '6', '4', 0,
     930             :   /* 1341 */ 'D', '9', '_', '6', '4', 0,
     931             :   /* 1347 */ 'T', '9', '_', '6', '4', 0,
     932             :   /* 1353 */ 'R', 'A', '_', '6', '4', 0,
     933             :   /* 1359 */ 'Z', 'E', 'R', 'O', '_', '6', '4', 0,
     934             :   /* 1367 */ 'F', 'P', '_', '6', '4', 0,
     935             :   /* 1373 */ 'G', 'P', '_', '6', '4', 0,
     936             :   /* 1379 */ 'S', 'P', '_', '6', '4', 0,
     937             :   /* 1385 */ 'A', 'T', '_', '6', '4', 0,
     938             :   /* 1391 */ 'F', 'C', 'C', '4', 0,
     939             :   /* 1396 */ 'D', '4', 0,
     940             :   /* 1399 */ 'F', '4', 0,
     941             :   /* 1402 */ 'F', '_', 'H', 'I', '4', 0,
     942             :   /* 1408 */ 'F', 'C', 'R', '4', 0,
     943             :   /* 1413 */ 'H', 'W', 'R', '4', 0,
     944             :   /* 1418 */ 'S', '4', 0,
     945             :   /* 1421 */ 'T', '4', 0,
     946             :   /* 1424 */ 'W', '4', 0,
     947             :   /* 1427 */ 'C', 'O', 'P', '0', '5', 0,
     948             :   /* 1433 */ 'C', 'O', 'P', '0', '1', '5', 0,
     949             :   /* 1440 */ 'C', 'O', 'P', '2', '1', '5', 0,
     950             :   /* 1447 */ 'C', 'O', 'P', '3', '1', '5', 0,
     951             :   /* 1454 */ 'D', '1', '5', 0,
     952             :   /* 1458 */ 'F', '1', '5', 0,
     953             :   /* 1462 */ 'F', '_', 'H', 'I', '1', '5', 0,
     954             :   /* 1469 */ 'F', 'C', 'R', '1', '5', 0,
     955             :   /* 1475 */ 'H', 'W', 'R', '1', '5', 0,
     956             :   /* 1481 */ 'W', '1', '5', 0,
     957             :   /* 1485 */ 'C', 'O', 'P', '0', '2', '5', 0,
     958             :   /* 1492 */ 'C', 'O', 'P', '2', '2', '5', 0,
     959             :   /* 1499 */ 'C', 'O', 'P', '3', '2', '5', 0,
     960             :   /* 1506 */ 'F', '2', '5', 0,
     961             :   /* 1510 */ 'F', '_', 'H', 'I', '2', '5', 0,
     962             :   /* 1517 */ 'C', 'O', 'P', '2', '5', 0,
     963             :   /* 1523 */ 'F', 'C', 'R', '2', '5', 0,
     964             :   /* 1529 */ 'H', 'W', 'R', '2', '5', 0,
     965             :   /* 1535 */ 'W', '2', '5', 0,
     966             :   /* 1539 */ 'C', 'O', 'P', '3', '5', 0,
     967             :   /* 1545 */ 'F', 'C', 'C', '5', 0,
     968             :   /* 1550 */ 'D', '5', 0,
     969             :   /* 1553 */ 'F', '5', 0,
     970             :   /* 1556 */ 'F', '_', 'H', 'I', '5', 0,
     971             :   /* 1562 */ 'F', 'C', 'R', '5', 0,
     972             :   /* 1567 */ 'H', 'W', 'R', '5', 0,
     973             :   /* 1572 */ 'S', '5', 0,
     974             :   /* 1575 */ 'T', '5', 0,
     975             :   /* 1578 */ 'W', '5', 0,
     976             :   /* 1581 */ 'C', 'O', 'P', '0', '6', 0,
     977             :   /* 1587 */ 'C', 'O', 'P', '0', '1', '6', 0,
     978             :   /* 1594 */ 'C', 'O', 'P', '2', '1', '6', 0,
     979             :   /* 1601 */ 'C', 'O', 'P', '3', '1', '6', 0,
     980             :   /* 1608 */ 'F', '1', '6', 0,
     981             :   /* 1612 */ 'F', '_', 'H', 'I', '1', '6', 0,
     982             :   /* 1619 */ 'F', 'C', 'R', '1', '6', 0,
     983             :   /* 1625 */ 'H', 'W', 'R', '1', '6', 0,
     984             :   /* 1631 */ 'W', '1', '6', 0,
     985             :   /* 1635 */ 'C', 'O', 'P', '0', '2', '6', 0,
     986             :   /* 1642 */ 'C', 'O', 'P', '2', '2', '6', 0,
     987             :   /* 1649 */ 'C', 'O', 'P', '3', '2', '6', 0,
     988             :   /* 1656 */ 'F', '2', '6', 0,
     989             :   /* 1660 */ 'F', '_', 'H', 'I', '2', '6', 0,
     990             :   /* 1667 */ 'C', 'O', 'P', '2', '6', 0,
     991             :   /* 1673 */ 'F', 'C', 'R', '2', '6', 0,
     992             :   /* 1679 */ 'H', 'W', 'R', '2', '6', 0,
     993             :   /* 1685 */ 'W', '2', '6', 0,
     994             :   /* 1689 */ 'C', 'O', 'P', '3', '6', 0,
     995             :   /* 1695 */ 'F', 'C', 'C', '6', 0,
     996             :   /* 1700 */ 'D', '6', 0,
     997             :   /* 1703 */ 'F', '6', 0,
     998             :   /* 1706 */ 'F', '_', 'H', 'I', '6', 0,
     999             :   /* 1712 */ 'F', 'C', 'R', '6', 0,
    1000             :   /* 1717 */ 'H', 'W', 'R', '6', 0,
    1001             :   /* 1722 */ 'S', '6', 0,
    1002             :   /* 1725 */ 'T', '6', 0,
    1003             :   /* 1728 */ 'W', '6', 0,
    1004             :   /* 1731 */ 'C', 'O', 'P', '0', '7', 0,
    1005             :   /* 1737 */ 'C', 'O', 'P', '0', '1', '7', 0,
    1006             :   /* 1744 */ 'C', 'O', 'P', '2', '1', '7', 0,
    1007             :   /* 1751 */ 'C', 'O', 'P', '3', '1', '7', 0,
    1008             :   /* 1758 */ 'F', '1', '7', 0,
    1009             :   /* 1762 */ 'F', '_', 'H', 'I', '1', '7', 0,
    1010             :   /* 1769 */ 'F', 'C', 'R', '1', '7', 0,
    1011             :   /* 1775 */ 'H', 'W', 'R', '1', '7', 0,
    1012             :   /* 1781 */ 'W', '1', '7', 0,
    1013             :   /* 1785 */ 'C', 'O', 'P', '0', '2', '7', 0,
    1014             :   /* 1792 */ 'C', 'O', 'P', '2', '2', '7', 0,
    1015             :   /* 1799 */ 'C', 'O', 'P', '3', '2', '7', 0,
    1016             :   /* 1806 */ 'F', '2', '7', 0,
    1017             :   /* 1810 */ 'F', '_', 'H', 'I', '2', '7', 0,
    1018             :   /* 1817 */ 'C', 'O', 'P', '2', '7', 0,
    1019             :   /* 1823 */ 'F', 'C', 'R', '2', '7', 0,
    1020             :   /* 1829 */ 'H', 'W', 'R', '2', '7', 0,
    1021             :   /* 1835 */ 'W', '2', '7', 0,
    1022             :   /* 1839 */ 'C', 'O', 'P', '3', '7', 0,
    1023             :   /* 1845 */ 'F', 'C', 'C', '7', 0,
    1024             :   /* 1850 */ 'D', '7', 0,
    1025             :   /* 1853 */ 'F', '7', 0,
    1026             :   /* 1856 */ 'F', '_', 'H', 'I', '7', 0,
    1027             :   /* 1862 */ 'F', 'C', 'R', '7', 0,
    1028             :   /* 1867 */ 'H', 'W', 'R', '7', 0,
    1029             :   /* 1872 */ 'S', '7', 0,
    1030             :   /* 1875 */ 'T', '7', 0,
    1031             :   /* 1878 */ 'W', '7', 0,
    1032             :   /* 1881 */ 'C', 'O', 'P', '0', '8', 0,
    1033             :   /* 1887 */ 'C', 'O', 'P', '0', '1', '8', 0,
    1034             :   /* 1894 */ 'C', 'O', 'P', '2', '1', '8', 0,
    1035             :   /* 1901 */ 'C', 'O', 'P', '3', '1', '8', 0,
    1036             :   /* 1908 */ 'F', '1', '8', 0,
    1037             :   /* 1912 */ 'F', '_', 'H', 'I', '1', '8', 0,
    1038             :   /* 1919 */ 'F', 'C', 'R', '1', '8', 0,
    1039             :   /* 1925 */ 'H', 'W', 'R', '1', '8', 0,
    1040             :   /* 1931 */ 'W', '1', '8', 0,
    1041             :   /* 1935 */ 'C', 'O', 'P', '0', '2', '8', 0,
    1042             :   /* 1942 */ 'C', 'O', 'P', '2', '2', '8', 0,
    1043             :   /* 1949 */ 'C', 'O', 'P', '3', '2', '8', 0,
    1044             :   /* 1956 */ 'F', '2', '8', 0,
    1045             :   /* 1960 */ 'F', '_', 'H', 'I', '2', '8', 0,
    1046             :   /* 1967 */ 'C', 'O', 'P', '2', '8', 0,
    1047             :   /* 1973 */ 'F', 'C', 'R', '2', '8', 0,
    1048             :   /* 1979 */ 'H', 'W', 'R', '2', '8', 0,
    1049             :   /* 1985 */ 'W', '2', '8', 0,
    1050             :   /* 1989 */ 'C', 'O', 'P', '3', '8', 0,
    1051             :   /* 1995 */ 'D', '8', 0,
    1052             :   /* 1998 */ 'F', '8', 0,
    1053             :   /* 2001 */ 'F', '_', 'H', 'I', '8', 0,
    1054             :   /* 2007 */ 'F', 'C', 'R', '8', 0,
    1055             :   /* 2012 */ 'H', 'W', 'R', '8', 0,
    1056             :   /* 2017 */ 'T', '8', 0,
    1057             :   /* 2020 */ 'W', '8', 0,
    1058             :   /* 2023 */ 'C', 'O', 'P', '0', '9', 0,
    1059             :   /* 2029 */ 'C', 'O', 'P', '0', '1', '9', 0,
    1060             :   /* 2036 */ 'C', 'O', 'P', '2', '1', '9', 0,
    1061             :   /* 2043 */ 'C', 'O', 'P', '3', '1', '9', 0,
    1062             :   /* 2050 */ 'F', '1', '9', 0,
    1063             :   /* 2054 */ 'F', '_', 'H', 'I', '1', '9', 0,
    1064             :   /* 2061 */ 'F', 'C', 'R', '1', '9', 0,
    1065             :   /* 2067 */ 'H', 'W', 'R', '1', '9', 0,
    1066             :   /* 2073 */ 'W', '1', '9', 0,
    1067             :   /* 2077 */ 'D', 'S', 'P', 'O', 'u', 't', 'F', 'l', 'a', 'g', '1', '6', '_', '1', '9', 0,
    1068             :   /* 2093 */ 'C', 'O', 'P', '0', '2', '9', 0,
    1069             :   /* 2100 */ 'C', 'O', 'P', '2', '2', '9', 0,
    1070             :   /* 2107 */ 'C', 'O', 'P', '3', '2', '9', 0,
    1071             :   /* 2114 */ 'F', '2', '9', 0,
    1072             :   /* 2118 */ 'F', '_', 'H', 'I', '2', '9', 0,
    1073             :   /* 2125 */ 'C', 'O', 'P', '2', '9', 0,
    1074             :   /* 2131 */ 'F', 'C', 'R', '2', '9', 0,
    1075             :   /* 2137 */ 'H', 'W', 'R', '2', '9', 0,
    1076             :   /* 2143 */ 'W', '2', '9', 0,
    1077             :   /* 2147 */ 'C', 'O', 'P', '3', '9', 0,
    1078             :   /* 2153 */ 'D', '9', 0,
    1079             :   /* 2156 */ 'F', '9', 0,
    1080             :   /* 2159 */ 'F', '_', 'H', 'I', '9', 0,
    1081             :   /* 2165 */ 'F', 'C', 'R', '9', 0,
    1082             :   /* 2170 */ 'H', 'W', 'R', '9', 0,
    1083             :   /* 2175 */ 'T', '9', 0,
    1084             :   /* 2178 */ 'W', '9', 0,
    1085             :   /* 2181 */ 'R', 'A', 0,
    1086             :   /* 2184 */ 'P', 'C', 0,
    1087             :   /* 2187 */ 'D', 'S', 'P', 'E', 'F', 'I', 0,
    1088             :   /* 2194 */ 'Z', 'E', 'R', 'O', 0,
    1089             :   /* 2199 */ 'F', 'P', 0,
    1090             :   /* 2202 */ 'G', 'P', 0,
    1091             :   /* 2205 */ 'S', 'P', 0,
    1092             :   /* 2208 */ 'M', 'S', 'A', 'I', 'R', 0,
    1093             :   /* 2214 */ 'M', 'S', 'A', 'C', 'S', 'R', 0,
    1094             :   /* 2221 */ 'A', 'T', 0,
    1095             :   /* 2224 */ 'D', 'S', 'P', 'C', 'C', 'o', 'n', 'd', 0,
    1096             :   /* 2233 */ 'M', 'S', 'A', 'S', 'a', 'v', 'e', 0,
    1097             :   /* 2241 */ 'D', 'S', 'P', 'O', 'u', 't', 'F', 'l', 'a', 'g', 0,
    1098             :   /* 2252 */ 'M', 'S', 'A', 'M', 'a', 'p', 0,
    1099             :   /* 2259 */ 'M', 'S', 'A', 'U', 'n', 'm', 'a', 'p', 0,
    1100             :   /* 2268 */ 'D', 'S', 'P', 'P', 'o', 's', 0,
    1101             :   /* 2275 */ 'M', 'S', 'A', 'A', 'c', 'c', 'e', 's', 's', 0,
    1102             :   /* 2285 */ 'D', 'S', 'P', 'S', 'C', 'o', 'u', 'n', 't', 0,
    1103             :   /* 2295 */ 'M', 'S', 'A', 'R', 'e', 'q', 'u', 'e', 's', 't', 0,
    1104             :   /* 2306 */ 'M', 'S', 'A', 'M', 'o', 'd', 'i', 'f', 'y', 0,
    1105             :   /* 2316 */ 'D', 'S', 'P', 'C', 'a', 'r', 'r', 'y', 0,
    1106             : };
    1107             : 
    1108             : extern const MCRegisterDesc MipsRegDesc[] = { // Descriptors
    1109             :   { 5, 0, 0, 0, 0, 0 },
    1110             :   { 2221, 1, 82, 1, 4033, 0 },
    1111             :   { 2224, 1, 1, 1, 4033, 0 },
    1112             :   { 2316, 1, 1, 1, 4033, 0 },
    1113             :   { 2187, 1, 1, 1, 4033, 0 },
    1114             :   { 2241, 8, 1, 2, 32, 4 },
    1115             :   { 2268, 1, 1, 1, 1089, 0 },
    1116             :   { 2285, 1, 1, 1, 1089, 0 },
    1117             :   { 2199, 1, 102, 1, 1089, 0 },
    1118             :   { 2202, 1, 104, 1, 1089, 0 },
    1119             :   { 2275, 1, 1, 1, 1089, 0 },
    1120             :   { 2214, 1, 1, 1, 1089, 0 },
    1121             :   { 2208, 1, 1, 1, 1089, 0 },
    1122             :   { 2252, 1, 1, 1, 1089, 0 },
    1123             :   { 2306, 1, 1, 1, 1089, 0 },
    1124             :   { 2295, 1, 1, 1, 1089, 0 },
    1125             :   { 2233, 1, 1, 1, 1089, 0 },
    1126             :   { 2259, 1, 1, 1, 1089, 0 },
    1127             :   { 2184, 1, 1, 1, 1089, 0 },
    1128             :   { 2181, 1, 106, 1, 1089, 0 },
    1129             :   { 2205, 1, 108, 1, 1089, 0 },
    1130             :   { 2194, 1, 110, 1, 1089, 0 },
    1131             :   { 179, 1, 110, 1, 1089, 0 },
    1132             :   { 419, 1, 110, 1, 1089, 0 },
    1133             :   { 611, 1, 110, 1, 1089, 0 },
    1134             :   { 797, 1, 110, 1, 1089, 0 },
    1135             :   { 182, 227, 110, 9, 1042, 10 },
    1136             :   { 422, 227, 1, 9, 1042, 10 },
    1137             :   { 614, 227, 1, 9, 1042, 10 },
    1138             :   { 800, 227, 1, 9, 1042, 10 },
    1139             :   { 1385, 238, 1, 0, 0, 2 },
    1140             :   { 0, 1, 1, 1, 1153, 0 },
    1141             :   { 240, 1, 1, 1, 1153, 0 },
    1142             :   { 480, 1, 1, 1, 1153, 0 },
    1143             :   { 666, 1, 1, 1, 1153, 0 },
    1144             :   { 844, 1, 1, 1, 1153, 0 },
    1145             :   { 1427, 1, 1, 1, 1153, 0 },
    1146             :   { 1581, 1, 1, 1, 1153, 0 },
    1147             :   { 1731, 1, 1, 1, 1153, 0 },
    1148             :   { 1881, 1, 1, 1, 1153, 0 },
    1149             :   { 2023, 1, 1, 1, 1153, 0 },
    1150             :   { 90, 1, 1, 1, 1153, 0 },
    1151             :   { 330, 1, 1, 1, 1153, 0 },
    1152             :   { 570, 1, 1, 1, 1153, 0 },
    1153             :   { 756, 1, 1, 1, 1153, 0 },
    1154             :   { 934, 1, 1, 1, 1153, 0 },
    1155             :   { 1517, 1, 1, 1, 1153, 0 },
    1156             :   { 1667, 1, 1, 1, 1153, 0 },
    1157             :   { 1817, 1, 1, 1, 1153, 0 },
    1158             :   { 1967, 1, 1, 1, 1153, 0 },
    1159             :   { 2125, 1, 1, 1, 1153, 0 },
    1160             :   { 157, 1, 1, 1, 1153, 0 },
    1161             :   { 397, 1, 1, 1, 1153, 0 },
    1162             :   { 605, 1, 1, 1, 1153, 0 },
    1163             :   { 791, 1, 1, 1, 1153, 0 },
    1164             :   { 956, 1, 1, 1, 1153, 0 },
    1165             :   { 1539, 1, 1, 1, 1153, 0 },
    1166             :   { 1689, 1, 1, 1, 1153, 0 },
    1167             :   { 1839, 1, 1, 1, 1153, 0 },
    1168             :   { 1989, 1, 1, 1, 1153, 0 },
    1169             :   { 2147, 1, 1, 1, 1153, 0 },
    1170             :   { 6, 1, 1, 1, 1153, 0 },
    1171             :   { 246, 1, 1, 1, 1153, 0 },
    1172             :   { 486, 1, 1, 1, 1153, 0 },
    1173             :   { 672, 1, 1, 1, 1153, 0 },
    1174             :   { 850, 1, 1, 1, 1153, 0 },
    1175             :   { 1433, 1, 1, 1, 1153, 0 },
    1176             :   { 1587, 1, 1, 1, 1153, 0 },
    1177             :   { 1737, 1, 1, 1, 1153, 0 },
    1178             :   { 1887, 1, 1, 1, 1153, 0 },
    1179             :   { 2029, 1, 1, 1, 1153, 0 },
    1180             :   { 58, 1, 1, 1, 1153, 0 },
    1181             :   { 298, 1, 1, 1, 1153, 0 },
    1182             :   { 538, 1, 1, 1, 1153, 0 },
    1183             :   { 724, 1, 1, 1, 1153, 0 },
    1184             :   { 902, 1, 1, 1, 1153, 0 },
    1185             :   { 1485, 1, 1, 1, 1153, 0 },
    1186             :   { 1635, 1, 1, 1, 1153, 0 },
    1187             :   { 1785, 1, 1, 1, 1153, 0 },
    1188             :   { 1935, 1, 1, 1, 1153, 0 },
    1189             :   { 2093, 1, 1, 1, 1153, 0 },
    1190             :   { 125, 1, 1, 1, 1153, 0 },
    1191             :   { 365, 1, 1, 1, 1153, 0 },
    1192             :   { 13, 1, 1, 1, 1153, 0 },
    1193             :   { 253, 1, 1, 1, 1153, 0 },
    1194             :   { 493, 1, 1, 1, 1153, 0 },
    1195             :   { 679, 1, 1, 1, 1153, 0 },
    1196             :   { 857, 1, 1, 1, 1153, 0 },
    1197             :   { 1440, 1, 1, 1, 1153, 0 },
    1198             :   { 1594, 1, 1, 1, 1153, 0 },
    1199             :   { 1744, 1, 1, 1, 1153, 0 },
    1200             :   { 1894, 1, 1, 1, 1153, 0 },
    1201             :   { 2036, 1, 1, 1, 1153, 0 },
    1202             :   { 65, 1, 1, 1, 1153, 0 },
    1203             :   { 305, 1, 1, 1, 1153, 0 },
    1204             :   { 545, 1, 1, 1, 1153, 0 },
    1205             :   { 731, 1, 1, 1, 1153, 0 },
    1206             :   { 909, 1, 1, 1, 1153, 0 },
    1207             :   { 1492, 1, 1, 1, 1153, 0 },
    1208             :   { 1642, 1, 1, 1, 1153, 0 },
    1209             :   { 1792, 1, 1, 1, 1153, 0 },
    1210             :   { 1942, 1, 1, 1, 1153, 0 },
    1211             :   { 2100, 1, 1, 1, 1153, 0 },
    1212             :   { 132, 1, 1, 1, 1153, 0 },
    1213             :   { 372, 1, 1, 1, 1153, 0 },
    1214             :   { 20, 1, 1, 1, 1153, 0 },
    1215             :   { 260, 1, 1, 1, 1153, 0 },
    1216             :   { 500, 1, 1, 1, 1153, 0 },
    1217             :   { 686, 1, 1, 1, 1153, 0 },
    1218             :   { 864, 1, 1, 1, 1153, 0 },
    1219             :   { 1447, 1, 1, 1, 1153, 0 },
    1220             :   { 1601, 1, 1, 1, 1153, 0 },
    1221             :   { 1751, 1, 1, 1, 1153, 0 },
    1222             :   { 1901, 1, 1, 1, 1153, 0 },
    1223             :   { 2043, 1, 1, 1, 1153, 0 },
    1224             :   { 72, 1, 1, 1, 1153, 0 },
    1225             :   { 312, 1, 1, 1, 1153, 0 },
    1226             :   { 552, 1, 1, 1, 1153, 0 },
    1227             :   { 738, 1, 1, 1, 1153, 0 },
    1228             :   { 916, 1, 1, 1, 1153, 0 },
    1229             :   { 1499, 1, 1, 1, 1153, 0 },
    1230             :   { 1649, 1, 1, 1, 1153, 0 },
    1231             :   { 1799, 1, 1, 1, 1153, 0 },
    1232             :   { 1949, 1, 1, 1, 1153, 0 },
    1233             :   { 2107, 1, 1, 1, 1153, 0 },
    1234             :   { 139, 1, 1, 1, 1153, 0 },
    1235             :   { 379, 1, 1, 1, 1153, 0 },
    1236             :   { 191, 14, 1, 9, 994, 10 },
    1237             :   { 431, 17, 1, 9, 994, 10 },
    1238             :   { 623, 20, 1, 9, 994, 10 },
    1239             :   { 809, 23, 1, 9, 994, 10 },
    1240             :   { 1396, 26, 1, 9, 994, 10 },
    1241             :   { 1550, 29, 1, 9, 994, 10 },
    1242             :   { 1700, 32, 1, 9, 994, 10 },
    1243             :   { 1850, 35, 1, 9, 994, 10 },
    1244             :   { 1995, 38, 1, 9, 994, 10 },
    1245             :   { 2153, 41, 1, 9, 994, 10 },
    1246             :   { 27, 44, 1, 9, 994, 10 },
    1247             :   { 267, 47, 1, 9, 994, 10 },
    1248             :   { 507, 50, 1, 9, 994, 10 },
    1249             :   { 693, 53, 1, 9, 994, 10 },
    1250             :   { 871, 56, 1, 9, 994, 10 },
    1251             :   { 1454, 59, 1, 9, 994, 10 },
    1252             :   { 112, 1, 144, 1, 2305, 0 },
    1253             :   { 352, 1, 142, 1, 2305, 0 },
    1254             :   { 592, 1, 140, 1, 2305, 0 },
    1255             :   { 778, 1, 138, 1, 2305, 0 },
    1256             :   { 194, 1, 159, 1, 4001, 0 },
    1257             :   { 434, 1, 163, 1, 4001, 0 },
    1258             :   { 626, 1, 163, 1, 4001, 0 },
    1259             :   { 812, 1, 167, 1, 4001, 0 },
    1260             :   { 1399, 1, 167, 1, 4001, 0 },
    1261             :   { 1553, 1, 171, 1, 4001, 0 },
    1262             :   { 1703, 1, 171, 1, 4001, 0 },
    1263             :   { 1853, 1, 175, 1, 4001, 0 },
    1264             :   { 1998, 1, 175, 1, 4001, 0 },
    1265             :   { 2156, 1, 179, 1, 4001, 0 },
    1266             :   { 31, 1, 179, 1, 4001, 0 },
    1267             :   { 271, 1, 183, 1, 4001, 0 },
    1268             :   { 511, 1, 183, 1, 4001, 0 },
    1269             :   { 697, 1, 187, 1, 4001, 0 },
    1270             :   { 875, 1, 187, 1, 4001, 0 },
    1271             :   { 1458, 1, 191, 1, 4001, 0 },
    1272             :   { 1608, 1, 191, 1, 4001, 0 },
    1273             :   { 1758, 1, 195, 1, 4001, 0 },
    1274             :   { 1908, 1, 195, 1, 4001, 0 },
    1275             :   { 2050, 1, 199, 1, 4001, 0 },
    1276             :   { 79, 1, 199, 1, 4001, 0 },
    1277             :   { 319, 1, 203, 1, 4001, 0 },
    1278             :   { 559, 1, 203, 1, 4001, 0 },
    1279             :   { 745, 1, 207, 1, 4001, 0 },
    1280             :   { 923, 1, 207, 1, 4001, 0 },
    1281             :   { 1506, 1, 211, 1, 4001, 0 },
    1282             :   { 1656, 1, 211, 1, 4001, 0 },
    1283             :   { 1806, 1, 215, 1, 4001, 0 },
    1284             :   { 1956, 1, 215, 1, 4001, 0 },
    1285             :   { 2114, 1, 219, 1, 4001, 0 },
    1286             :   { 146, 1, 219, 1, 4001, 0 },
    1287             :   { 386, 1, 223, 1, 4001, 0 },
    1288             :   { 186, 1, 1, 1, 4001, 0 },
    1289             :   { 426, 1, 1, 1, 4001, 0 },
    1290             :   { 618, 1, 1, 1, 4001, 0 },
    1291             :   { 804, 1, 1, 1, 4001, 0 },
    1292             :   { 1391, 1, 1, 1, 4001, 0 },
    1293             :   { 1545, 1, 1, 1, 4001, 0 },
    1294             :   { 1695, 1, 1, 1, 4001, 0 },
    1295             :   { 1845, 1, 1, 1, 4001, 0 },
    1296             :   { 218, 1, 1, 1, 4001, 0 },
    1297             :   { 458, 1, 1, 1, 4001, 0 },
    1298             :   { 647, 1, 1, 1, 4001, 0 },
    1299             :   { 825, 1, 1, 1, 4001, 0 },
    1300             :   { 1408, 1, 1, 1, 4001, 0 },
    1301             :   { 1562, 1, 1, 1, 4001, 0 },
    1302             :   { 1712, 1, 1, 1, 4001, 0 },
    1303             :   { 1862, 1, 1, 1, 4001, 0 },
    1304             :   { 2007, 1, 1, 1, 4001, 0 },
    1305             :   { 2165, 1, 1, 1, 4001, 0 },
    1306             :   { 42, 1, 1, 1, 4001, 0 },
    1307             :   { 282, 1, 1, 1, 4001, 0 },
    1308             :   { 522, 1, 1, 1, 4001, 0 },
    1309             :   { 708, 1, 1, 1, 4001, 0 },
    1310             :   { 886, 1, 1, 1, 4001, 0 },
    1311             :   { 1469, 1, 1, 1, 4001, 0 },
    1312             :   { 1619, 1, 1, 1, 4001, 0 },
    1313             :   { 1769, 1, 1, 1, 4001, 0 },
    1314             :   { 1919, 1, 1, 1, 4001, 0 },
    1315             :   { 2061, 1, 1, 1, 4001, 0 },
    1316             :   { 96, 1, 1, 1, 4001, 0 },
    1317             :   { 336, 1, 1, 1, 4001, 0 },
    1318             :   { 576, 1, 1, 1, 4001, 0 },
    1319             :   { 762, 1, 1, 1, 4001, 0 },
    1320             :   { 940, 1, 1, 1, 4001, 0 },
    1321             :   { 1523, 1, 1, 1, 4001, 0 },
    1322             :   { 1673, 1, 1, 1, 4001, 0 },
    1323             :   { 1823, 1, 1, 1, 4001, 0 },
    1324             :   { 1973, 1, 1, 1, 4001, 0 },
    1325             :   { 2131, 1, 1, 1, 4001, 0 },
    1326             :   { 163, 1, 1, 1, 4001, 0 },
    1327             :   { 403, 1, 1, 1, 4001, 0 },
    1328             :   { 1367, 136, 1, 0, 1184, 2 },
    1329             :   { 197, 1, 156, 1, 3969, 0 },
    1330             :   { 437, 1, 156, 1, 3969, 0 },
    1331             :   { 629, 1, 156, 1, 3969, 0 },
    1332             :   { 815, 1, 156, 1, 3969, 0 },
    1333             :   { 1402, 1, 156, 1, 3969, 0 },
    1334             :   { 1556, 1, 156, 1, 3969, 0 },
    1335             :   { 1706, 1, 156, 1, 3969, 0 },
    1336             :   { 1856, 1, 156, 1, 3969, 0 },
    1337             :   { 2001, 1, 156, 1, 3969, 0 },
    1338             :   { 2159, 1, 156, 1, 3969, 0 },
    1339             :   { 35, 1, 156, 1, 3969, 0 },
    1340             :   { 275, 1, 156, 1, 3969, 0 },
    1341             :   { 515, 1, 156, 1, 3969, 0 },
    1342             :   { 701, 1, 156, 1, 3969, 0 },
    1343             :   { 879, 1, 156, 1, 3969, 0 },
    1344             :   { 1462, 1, 156, 1, 3969, 0 },
    1345             :   { 1612, 1, 156, 1, 3969, 0 },
    1346             :   { 1762, 1, 156, 1, 3969, 0 },
    1347             :   { 1912, 1, 156, 1, 3969, 0 },
    1348             :   { 2054, 1, 156, 1, 3969, 0 },
    1349             :   { 83, 1, 156, 1, 3969, 0 },
    1350             :   { 323, 1, 156, 1, 3969, 0 },
    1351             :   { 563, 1, 156, 1, 3969, 0 },
    1352             :   { 749, 1, 156, 1, 3969, 0 },
    1353             :   { 927, 1, 156, 1, 3969, 0 },
    1354             :   { 1510, 1, 156, 1, 3969, 0 },
    1355             :   { 1660, 1, 156, 1, 3969, 0 },
    1356             :   { 1810, 1, 156, 1, 3969, 0 },
    1357             :   { 1960, 1, 156, 1, 3969, 0 },
    1358             :   { 2118, 1, 156, 1, 3969, 0 },
    1359             :   { 150, 1, 156, 1, 3969, 0 },
    1360             :   { 390, 1, 156, 1, 3969, 0 },
    1361             :   { 1373, 128, 1, 0, 1216, 2 },
    1362             :   { 199, 1, 234, 1, 1826, 0 },
    1363             :   { 439, 1, 134, 1, 1826, 0 },
    1364             :   { 631, 1, 134, 1, 1826, 0 },
    1365             :   { 817, 1, 134, 1, 1826, 0 },
    1366             :   { 223, 1, 1, 1, 3937, 0 },
    1367             :   { 463, 1, 1, 1, 3937, 0 },
    1368             :   { 652, 1, 1, 1, 3937, 0 },
    1369             :   { 830, 1, 1, 1, 3937, 0 },
    1370             :   { 1413, 1, 1, 1, 3937, 0 },
    1371             :   { 1567, 1, 1, 1, 3937, 0 },
    1372             :   { 1717, 1, 1, 1, 3937, 0 },
    1373             :   { 1867, 1, 1, 1, 3937, 0 },
    1374             :   { 2012, 1, 1, 1, 3937, 0 },
    1375             :   { 2170, 1, 1, 1, 3937, 0 },
    1376             :   { 48, 1, 1, 1, 3937, 0 },
    1377             :   { 288, 1, 1, 1, 3937, 0 },
    1378             :   { 528, 1, 1, 1, 3937, 0 },
    1379             :   { 714, 1, 1, 1, 3937, 0 },
    1380             :   { 892, 1, 1, 1, 3937, 0 },
    1381             :   { 1475, 1, 1, 1, 3937, 0 },
    1382             :   { 1625, 1, 1, 1, 3937, 0 },
    1383             :   { 1775, 1, 1, 1, 3937, 0 },
    1384             :   { 1925, 1, 1, 1, 3937, 0 },
    1385             :   { 2067, 1, 1, 1, 3937, 0 },
    1386             :   { 102, 1, 1, 1, 3937, 0 },
    1387             :   { 342, 1, 1, 1, 3937, 0 },
    1388             :   { 582, 1, 1, 1, 3937, 0 },
    1389             :   { 768, 1, 1, 1, 3937, 0 },
    1390             :   { 946, 1, 1, 1, 3937, 0 },
    1391             :   { 1529, 1, 1, 1, 3937, 0 },
    1392             :   { 1679, 1, 1, 1, 3937, 0 },
    1393             :   { 1829, 1, 1, 1, 3937, 0 },
    1394             :   { 1979, 1, 1, 1, 3937, 0 },
    1395             :   { 2137, 1, 1, 1, 3937, 0 },
    1396             :   { 169, 1, 1, 1, 3937, 0 },
    1397             :   { 409, 1, 1, 1, 3937, 0 },
    1398             :   { 203, 1, 100, 1, 3937, 0 },
    1399             :   { 443, 1, 100, 1, 3937, 0 },
    1400             :   { 211, 1, 230, 1, 1794, 0 },
    1401             :   { 451, 1, 126, 1, 1794, 0 },
    1402             :   { 640, 1, 126, 1, 1794, 0 },
    1403             :   { 821, 1, 126, 1, 1794, 0 },
    1404             :   { 206, 1, 1, 1, 3905, 0 },
    1405             :   { 446, 1, 1, 1, 3905, 0 },
    1406             :   { 635, 1, 1, 1, 3905, 0 },
    1407             :   { 215, 1, 1, 1, 3905, 0 },
    1408             :   { 455, 1, 1, 1, 3905, 0 },
    1409             :   { 644, 1, 1, 1, 3905, 0 },
    1410             :   { 1353, 124, 1, 0, 1248, 2 },
    1411             :   { 228, 1, 98, 1, 3873, 0 },
    1412             :   { 468, 1, 98, 1, 3873, 0 },
    1413             :   { 657, 1, 98, 1, 3873, 0 },
    1414             :   { 835, 1, 98, 1, 3873, 0 },
    1415             :   { 1418, 1, 98, 1, 3873, 0 },
    1416             :   { 1572, 1, 98, 1, 3873, 0 },
    1417             :   { 1722, 1, 98, 1, 3873, 0 },
    1418             :   { 1872, 1, 98, 1, 3873, 0 },
    1419             :   { 1379, 122, 1, 0, 1280, 2 },
    1420             :   { 231, 1, 96, 1, 3841, 0 },
    1421             :   { 471, 1, 96, 1, 3841, 0 },
    1422             :   { 660, 1, 96, 1, 3841, 0 },
    1423             :   { 838, 1, 96, 1, 3841, 0 },
    1424             :   { 1421, 1, 96, 1, 3841, 0 },
    1425             :   { 1575, 1, 96, 1, 3841, 0 },
    1426             :   { 1725, 1, 96, 1, 3841, 0 },
    1427             :   { 1875, 1, 96, 1, 3841, 0 },
    1428             :   { 2017, 1, 96, 1, 3841, 0 },
    1429             :   { 2175, 1, 96, 1, 3841, 0 },
    1430             :   { 234, 1, 96, 1, 3841, 0 },
    1431             :   { 474, 1, 96, 1, 3841, 0 },
    1432             :   { 237, 92, 1, 8, 1425, 10 },
    1433             :   { 477, 92, 1, 8, 1425, 10 },
    1434             :   { 663, 92, 1, 8, 1425, 10 },
    1435             :   { 841, 92, 1, 8, 1425, 10 },
    1436             :   { 1424, 92, 1, 8, 1425, 10 },
    1437             :   { 1578, 92, 1, 8, 1425, 10 },
    1438             :   { 1728, 92, 1, 8, 1425, 10 },
    1439             :   { 1878, 92, 1, 8, 1425, 10 },
    1440             :   { 2020, 92, 1, 8, 1425, 10 },
    1441             :   { 2178, 92, 1, 8, 1425, 10 },
    1442             :   { 54, 92, 1, 8, 1425, 10 },
    1443             :   { 294, 92, 1, 8, 1425, 10 },
    1444             :   { 534, 92, 1, 8, 1425, 10 },
    1445             :   { 720, 92, 1, 8, 1425, 10 },
    1446             :   { 898, 92, 1, 8, 1425, 10 },
    1447             :   { 1481, 92, 1, 8, 1425, 10 },
    1448             :   { 1631, 92, 1, 8, 1425, 10 },
    1449             :   { 1781, 92, 1, 8, 1425, 10 },
    1450             :   { 1931, 92, 1, 8, 1425, 10 },
    1451             :   { 2073, 92, 1, 8, 1425, 10 },
    1452             :   { 108, 92, 1, 8, 1425, 10 },
    1453             :   { 348, 92, 1, 8, 1425, 10 },
    1454             :   { 588, 92, 1, 8, 1425, 10 },
    1455             :   { 774, 92, 1, 8, 1425, 10 },
    1456             :   { 952, 92, 1, 8, 1425, 10 },
    1457             :   { 1535, 92, 1, 8, 1425, 10 },
    1458             :   { 1685, 92, 1, 8, 1425, 10 },
    1459             :   { 1835, 92, 1, 8, 1425, 10 },
    1460             :   { 1985, 92, 1, 8, 1425, 10 },
    1461             :   { 2143, 92, 1, 8, 1425, 10 },
    1462             :   { 175, 92, 1, 8, 1425, 10 },
    1463             :   { 415, 92, 1, 8, 1425, 10 },
    1464             :   { 1359, 118, 1, 0, 1921, 2 },
    1465             :   { 983, 118, 1, 0, 1921, 2 },
    1466             :   { 1061, 118, 1, 0, 1921, 2 },
    1467             :   { 1111, 118, 1, 0, 1921, 2 },
    1468             :   { 1149, 118, 1, 0, 1921, 2 },
    1469             :   { 989, 130, 1, 12, 656, 10 },
    1470             :   { 996, 93, 157, 9, 1377, 10 },
    1471             :   { 1067, 93, 157, 9, 1377, 10 },
    1472             :   { 1117, 93, 157, 9, 1377, 10 },
    1473             :   { 1155, 93, 157, 9, 1377, 10 },
    1474             :   { 1187, 93, 157, 9, 1377, 10 },
    1475             :   { 1219, 93, 157, 9, 1377, 10 },
    1476             :   { 1251, 93, 157, 9, 1377, 10 },
    1477             :   { 1283, 93, 157, 9, 1377, 10 },
    1478             :   { 1315, 93, 157, 9, 1377, 10 },
    1479             :   { 1341, 93, 157, 9, 1377, 10 },
    1480             :   { 962, 93, 157, 9, 1377, 10 },
    1481             :   { 1040, 93, 157, 9, 1377, 10 },
    1482             :   { 1097, 93, 157, 9, 1377, 10 },
    1483             :   { 1135, 93, 157, 9, 1377, 10 },
    1484             :   { 1173, 93, 157, 9, 1377, 10 },
    1485             :   { 1205, 93, 157, 9, 1377, 10 },
    1486             :   { 1237, 93, 157, 9, 1377, 10 },
    1487             :   { 1269, 93, 157, 9, 1377, 10 },
    1488             :   { 1301, 93, 157, 9, 1377, 10 },
    1489             :   { 1327, 93, 157, 9, 1377, 10 },
    1490             :   { 969, 93, 157, 9, 1377, 10 },
    1491             :   { 1047, 93, 157, 9, 1377, 10 },
    1492             :   { 1104, 93, 157, 9, 1377, 10 },
    1493             :   { 1142, 93, 157, 9, 1377, 10 },
    1494             :   { 1180, 93, 157, 9, 1377, 10 },
    1495             :   { 1212, 93, 157, 9, 1377, 10 },
    1496             :   { 1244, 93, 157, 9, 1377, 10 },
    1497             :   { 1276, 93, 157, 9, 1377, 10 },
    1498             :   { 1308, 93, 157, 9, 1377, 10 },
    1499             :   { 1334, 93, 157, 9, 1377, 10 },
    1500             :   { 976, 93, 157, 9, 1377, 10 },
    1501             :   { 1054, 93, 157, 9, 1377, 10 },
    1502             :   { 2077, 1, 116, 1, 1120, 0 },
    1503             :   { 1002, 138, 236, 0, 1344, 2 },
    1504             :   { 1009, 150, 1, 0, 2337, 2 },
    1505             :   { 1073, 150, 1, 0, 2337, 2 },
    1506             :   { 1015, 150, 232, 0, 1312, 2 },
    1507             :   { 1022, 152, 1, 0, 2369, 2 },
    1508             :   { 1079, 152, 1, 0, 2369, 2 },
    1509             :   { 1123, 152, 1, 0, 2369, 2 },
    1510             :   { 1161, 152, 1, 0, 2369, 2 },
    1511             :   { 1193, 152, 1, 0, 2369, 2 },
    1512             :   { 1225, 152, 1, 0, 2369, 2 },
    1513             :   { 1257, 152, 1, 0, 2369, 2 },
    1514             :   { 1289, 152, 1, 0, 2369, 2 },
    1515             :   { 1028, 154, 1, 0, 2369, 2 },
    1516             :   { 1085, 154, 1, 0, 2369, 2 },
    1517             :   { 1129, 154, 1, 0, 2369, 2 },
    1518             :   { 1167, 154, 1, 0, 2369, 2 },
    1519             :   { 1199, 154, 1, 0, 2369, 2 },
    1520             :   { 1231, 154, 1, 0, 2369, 2 },
    1521             :   { 1263, 154, 1, 0, 2369, 2 },
    1522             :   { 1295, 154, 1, 0, 2369, 2 },
    1523             :   { 1321, 154, 1, 0, 2369, 2 },
    1524             :   { 1347, 154, 1, 0, 2369, 2 },
    1525             :   { 1034, 154, 1, 0, 2369, 2 },
    1526             :   { 1091, 154, 1, 0, 2369, 2 },
    1527             : };
    1528             : 
    1529             : extern const MCPhysReg MipsRegUnitRoots[][2] = {
    1530             :   { Mips::AT },
    1531             :   { Mips::DSPCCond },
    1532             :   { Mips::DSPCarry },
    1533             :   { Mips::DSPEFI },
    1534             :   { Mips::DSPOutFlag16_19 },
    1535             :   { Mips::DSPOutFlag20 },
    1536             :   { Mips::DSPOutFlag21 },
    1537             :   { Mips::DSPOutFlag22 },
    1538             :   { Mips::DSPOutFlag23 },
    1539             :   { Mips::DSPPos },
    1540             :   { Mips::DSPSCount },
    1541             :   { Mips::FP },
    1542             :   { Mips::GP },
    1543             :   { Mips::MSAAccess },
    1544             :   { Mips::MSACSR },
    1545             :   { Mips::MSAIR },
    1546             :   { Mips::MSAMap },
    1547             :   { Mips::MSAModify },
    1548             :   { Mips::MSARequest },
    1549             :   { Mips::MSASave },
    1550             :   { Mips::MSAUnmap },
    1551             :   { Mips::PC },
    1552             :   { Mips::RA },
    1553             :   { Mips::SP },
    1554             :   { Mips::ZERO },
    1555             :   { Mips::A0 },
    1556             :   { Mips::A1 },
    1557             :   { Mips::A2 },
    1558             :   { Mips::A3 },
    1559             :   { Mips::LO0 },
    1560             :   { Mips::HI0 },
    1561             :   { Mips::LO1 },
    1562             :   { Mips::HI1 },
    1563             :   { Mips::LO2 },
    1564             :   { Mips::HI2 },
    1565             :   { Mips::LO3 },
    1566             :   { Mips::HI3 },
    1567             :   { Mips::COP00 },
    1568             :   { Mips::COP01 },
    1569             :   { Mips::COP02 },
    1570             :   { Mips::COP03 },
    1571             :   { Mips::COP04 },
    1572             :   { Mips::COP05 },
    1573             :   { Mips::COP06 },
    1574             :   { Mips::COP07 },
    1575             :   { Mips::COP08 },
    1576             :   { Mips::COP09 },
    1577             :   { Mips::COP20 },
    1578             :   { Mips::COP21 },
    1579             :   { Mips::COP22 },
    1580             :   { Mips::COP23 },
    1581             :   { Mips::COP24 },
    1582             :   { Mips::COP25 },
    1583             :   { Mips::COP26 },
    1584             :   { Mips::COP27 },
    1585             :   { Mips::COP28 },
    1586             :   { Mips::COP29 },
    1587             :   { Mips::COP30 },
    1588             :   { Mips::COP31 },
    1589             :   { Mips::COP32 },
    1590             :   { Mips::COP33 },
    1591             :   { Mips::COP34 },
    1592             :   { Mips::COP35 },
    1593             :   { Mips::COP36 },
    1594             :   { Mips::COP37 },
    1595             :   { Mips::COP38 },
    1596             :   { Mips::COP39 },
    1597             :   { Mips::COP010 },
    1598             :   { Mips::COP011 },
    1599             :   { Mips::COP012 },
    1600             :   { Mips::COP013 },
    1601             :   { Mips::COP014 },
    1602             :   { Mips::COP015 },
    1603             :   { Mips::COP016 },
    1604             :   { Mips::COP017 },
    1605             :   { Mips::COP018 },
    1606             :   { Mips::COP019 },
    1607             :   { Mips::COP020 },
    1608             :   { Mips::COP021 },
    1609             :   { Mips::COP022 },
    1610             :   { Mips::COP023 },
    1611             :   { Mips::COP024 },
    1612             :   { Mips::COP025 },
    1613             :   { Mips::COP026 },
    1614             :   { Mips::COP027 },
    1615             :   { Mips::COP028 },
    1616             :   { Mips::COP029 },
    1617             :   { Mips::COP030 },
    1618             :   { Mips::COP031 },
    1619             :   { Mips::COP210 },
    1620             :   { Mips::COP211 },
    1621             :   { Mips::COP212 },
    1622             :   { Mips::COP213 },
    1623             :   { Mips::COP214 },
    1624             :   { Mips::COP215 },
    1625             :   { Mips::COP216 },
    1626             :   { Mips::COP217 },
    1627             :   { Mips::COP218 },
    1628             :   { Mips::COP219 },
    1629             :   { Mips::COP220 },
    1630             :   { Mips::COP221 },
    1631             :   { Mips::COP222 },
    1632             :   { Mips::COP223 },
    1633             :   { Mips::COP224 },
    1634             :   { Mips::COP225 },
    1635             :   { Mips::COP226 },
    1636             :   { Mips::COP227 },
    1637             :   { Mips::COP228 },
    1638             :   { Mips::COP229 },
    1639             :   { Mips::COP230 },
    1640             :   { Mips::COP231 },
    1641             :   { Mips::COP310 },
    1642             :   { Mips::COP311 },
    1643             :   { Mips::COP312 },
    1644             :   { Mips::COP313 },
    1645             :   { Mips::COP314 },
    1646             :   { Mips::COP315 },
    1647             :   { Mips::COP316 },
    1648             :   { Mips::COP317 },
    1649             :   { Mips::COP318 },
    1650             :   { Mips::COP319 },
    1651             :   { Mips::COP320 },
    1652             :   { Mips::COP321 },
    1653             :   { Mips::COP322 },
    1654             :   { Mips::COP323 },
    1655             :   { Mips::COP324 },
    1656             :   { Mips::COP325 },
    1657             :   { Mips::COP326 },
    1658             :   { Mips::COP327 },
    1659             :   { Mips::COP328 },
    1660             :   { Mips::COP329 },
    1661             :   { Mips::COP330 },
    1662             :   { Mips::COP331 },
    1663             :   { Mips::F0 },
    1664             :   { Mips::F1 },
    1665             :   { Mips::F2 },
    1666             :   { Mips::F3 },
    1667             :   { Mips::F4 },
    1668             :   { Mips::F5 },
    1669             :   { Mips::F6 },
    1670             :   { Mips::F7 },
    1671             :   { Mips::F8 },
    1672             :   { Mips::F9 },
    1673             :   { Mips::F10 },
    1674             :   { Mips::F11 },
    1675             :   { Mips::F12 },
    1676             :   { Mips::F13 },
    1677             :   { Mips::F14 },
    1678             :   { Mips::F15 },
    1679             :   { Mips::F16 },
    1680             :   { Mips::F17 },
    1681             :   { Mips::F18 },
    1682             :   { Mips::F19 },
    1683             :   { Mips::F20 },
    1684             :   { Mips::F21 },
    1685             :   { Mips::F22 },
    1686             :   { Mips::F23 },
    1687             :   { Mips::F24 },
    1688             :   { Mips::F25 },
    1689             :   { Mips::F26 },
    1690             :   { Mips::F27 },
    1691             :   { Mips::F28 },
    1692             :   { Mips::F29 },
    1693             :   { Mips::F30 },
    1694             :   { Mips::F31 },
    1695             :   { Mips::FCC0 },
    1696             :   { Mips::FCC1 },
    1697             :   { Mips::FCC2 },
    1698             :   { Mips::FCC3 },
    1699             :   { Mips::FCC4 },
    1700             :   { Mips::FCC5 },
    1701             :   { Mips::FCC6 },
    1702             :   { Mips::FCC7 },
    1703             :   { Mips::FCR0 },
    1704             :   { Mips::FCR1 },
    1705             :   { Mips::FCR2 },
    1706             :   { Mips::FCR3 },
    1707             :   { Mips::FCR4 },
    1708             :   { Mips::FCR5 },
    1709             :   { Mips::FCR6 },
    1710             :   { Mips::FCR7 },
    1711             :   { Mips::FCR8 },
    1712             :   { Mips::FCR9 },
    1713             :   { Mips::FCR10 },
    1714             :   { Mips::FCR11 },
    1715             :   { Mips::FCR12 },
    1716             :   { Mips::FCR13 },
    1717             :   { Mips::FCR14 },
    1718             :   { Mips::FCR15 },
    1719             :   { Mips::FCR16 },
    1720             :   { Mips::FCR17 },
    1721             :   { Mips::FCR18 },
    1722             :   { Mips::FCR19 },
    1723             :   { Mips::FCR20 },
    1724             :   { Mips::FCR21 },
    1725             :   { Mips::FCR22 },
    1726             :   { Mips::FCR23 },
    1727             :   { Mips::FCR24 },
    1728             :   { Mips::FCR25 },
    1729             :   { Mips::FCR26 },
    1730             :   { Mips::FCR27 },
    1731             :   { Mips::FCR28 },
    1732             :   { Mips::FCR29 },
    1733             :   { Mips::FCR30 },
    1734             :   { Mips::FCR31 },
    1735             :   { Mips::F_HI0 },
    1736             :   { Mips::F_HI1 },
    1737             :   { Mips::F_HI2 },
    1738             :   { Mips::F_HI3 },
    1739             :   { Mips::F_HI4 },
    1740             :   { Mips::F_HI5 },
    1741             :   { Mips::F_HI6 },
    1742             :   { Mips::F_HI7 },
    1743             :   { Mips::F_HI8 },
    1744             :   { Mips::F_HI9 },
    1745             :   { Mips::F_HI10 },
    1746             :   { Mips::F_HI11 },
    1747             :   { Mips::F_HI12 },
    1748             :   { Mips::F_HI13 },
    1749             :   { Mips::F_HI14 },
    1750             :   { Mips::F_HI15 },
    1751             :   { Mips::F_HI16 },
    1752             :   { Mips::F_HI17 },
    1753             :   { Mips::F_HI18 },
    1754             :   { Mips::F_HI19 },
    1755             :   { Mips::F_HI20 },
    1756             :   { Mips::F_HI21 },
    1757             :   { Mips::F_HI22 },
    1758             :   { Mips::F_HI23 },
    1759             :   { Mips::F_HI24 },
    1760             :   { Mips::F_HI25 },
    1761             :   { Mips::F_HI26 },
    1762             :   { Mips::F_HI27 },
    1763             :   { Mips::F_HI28 },
    1764             :   { Mips::F_HI29 },
    1765             :   { Mips::F_HI30 },
    1766             :   { Mips::F_HI31 },
    1767             :   { Mips::HWR0 },
    1768             :   { Mips::HWR1 },
    1769             :   { Mips::HWR2 },
    1770             :   { Mips::HWR3 },
    1771             :   { Mips::HWR4 },
    1772             :   { Mips::HWR5 },
    1773             :   { Mips::HWR6 },
    1774             :   { Mips::HWR7 },
    1775             :   { Mips::HWR8 },
    1776             :   { Mips::HWR9 },
    1777             :   { Mips::HWR10 },
    1778             :   { Mips::HWR11 },
    1779             :   { Mips::HWR12 },
    1780             :   { Mips::HWR13 },
    1781             :   { Mips::HWR14 },
    1782             :   { Mips::HWR15 },
    1783             :   { Mips::HWR16 },
    1784             :   { Mips::HWR17 },
    1785             :   { Mips::HWR18 },
    1786             :   { Mips::HWR19 },
    1787             :   { Mips::HWR20 },
    1788             :   { Mips::HWR21 },
    1789             :   { Mips::HWR22 },
    1790             :   { Mips::HWR23 },
    1791             :   { Mips::HWR24 },
    1792             :   { Mips::HWR25 },
    1793             :   { Mips::HWR26 },
    1794             :   { Mips::HWR27 },
    1795             :   { Mips::HWR28 },
    1796             :   { Mips::HWR29 },
    1797             :   { Mips::HWR30 },
    1798             :   { Mips::HWR31 },
    1799             :   { Mips::K0 },
    1800             :   { Mips::K1 },
    1801             :   { Mips::MPL0 },
    1802             :   { Mips::MPL1 },
    1803             :   { Mips::MPL2 },
    1804             :   { Mips::P0 },
    1805             :   { Mips::P1 },
    1806             :   { Mips::P2 },
    1807             :   { Mips::S0 },
    1808             :   { Mips::S1 },
    1809             :   { Mips::S2 },
    1810             :   { Mips::S3 },
    1811             :   { Mips::S4 },
    1812             :   { Mips::S5 },
    1813             :   { Mips::S6 },
    1814             :   { Mips::S7 },
    1815             :   { Mips::T0 },
    1816             :   { Mips::T1 },
    1817             :   { Mips::T2 },
    1818             :   { Mips::T3 },
    1819             :   { Mips::T4 },
    1820             :   { Mips::T5 },
    1821             :   { Mips::T6 },
    1822             :   { Mips::T7 },
    1823             :   { Mips::T8 },
    1824             :   { Mips::T9 },
    1825             :   { Mips::V0 },
    1826             :   { Mips::V1 },
    1827             : };
    1828             : 
    1829             : namespace {     // Register classes...
    1830             :   // MSA128F16 Register Class...
    1831             :   const MCPhysReg MSA128F16[] = {
    1832             :     Mips::W0, Mips::W1, Mips::W2, Mips::W3, Mips::W4, Mips::W5, Mips::W6, Mips::W7, Mips::W8, Mips::W9, Mips::W10, Mips::W11, Mips::W12, Mips::W13, Mips::W14, Mips::W15, Mips::W16, Mips::W17, Mips::W18, Mips::W19, Mips::W20, Mips::W21, Mips::W22, Mips::W23, Mips::W24, Mips::W25, Mips::W26, Mips::W27, Mips::W28, Mips::W29, Mips::W30, Mips::W31, 
    1833             :   };
    1834             : 
    1835             :   // MSA128F16 Bit set.
    1836             :   const uint8_t MSA128F16Bits[] = {
    1837             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 
    1838             :   };
    1839             : 
    1840             :   // MSA128F16_with_sub_64_in_OddSP Register Class...
    1841             :   const MCPhysReg MSA128F16_with_sub_64_in_OddSP[] = {
    1842             :     Mips::W1, Mips::W3, Mips::W5, Mips::W7, Mips::W9, Mips::W11, Mips::W13, Mips::W15, Mips::W17, Mips::W19, Mips::W21, Mips::W23, Mips::W25, Mips::W27, Mips::W29, Mips::W31, 
    1843             :   };
    1844             : 
    1845             :   // MSA128F16_with_sub_64_in_OddSP Bit set.
    1846             :   const uint8_t MSA128F16_with_sub_64_in_OddSPBits[] = {
    1847             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x55, 0x55, 0x55, 0x05, 
    1848             :   };
    1849             : 
    1850             :   // OddSP Register Class...
    1851             :   const MCPhysReg OddSP[] = {
    1852             :     Mips::F1, Mips::F3, Mips::F5, Mips::F7, Mips::F9, Mips::F11, Mips::F13, Mips::F15, Mips::F17, Mips::F19, Mips::F21, Mips::F23, Mips::F25, Mips::F27, Mips::F29, Mips::F31, Mips::F_HI1, Mips::F_HI3, Mips::F_HI5, Mips::F_HI7, Mips::F_HI9, Mips::F_HI11, Mips::F_HI13, Mips::F_HI15, Mips::F_HI17, Mips::F_HI19, Mips::F_HI21, Mips::F_HI23, Mips::F_HI25, Mips::F_HI27, Mips::F_HI29, Mips::F_HI31, Mips::D1, Mips::D3, Mips::D5, Mips::D7, Mips::D9, Mips::D11, Mips::D13, Mips::D15, Mips::D1_64, Mips::D3_64, Mips::D5_64, Mips::D7_64, Mips::D9_64, Mips::D11_64, Mips::D13_64, Mips::D15_64, Mips::D17_64, Mips::D19_64, Mips::D21_64, Mips::D23_64, Mips::D25_64, Mips::D27_64, Mips::D29_64, Mips::D31_64, 
    1853             :   };
    1854             : 
    1855             :   // OddSP Bit set.
    1856             :   const uint8_t OddSPBits[] = {
    1857             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x50, 0x55, 0x55, 0x55, 0x05, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xaa, 0xaa, 0xaa, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0x55, 0x55, 0x01, 
    1858             :   };
    1859             : 
    1860             :   // CCR Register Class...
    1861             :   const MCPhysReg CCR[] = {
    1862             :     Mips::FCR0, Mips::FCR1, Mips::FCR2, Mips::FCR3, Mips::FCR4, Mips::FCR5, Mips::FCR6, Mips::FCR7, Mips::FCR8, Mips::FCR9, Mips::FCR10, Mips::FCR11, Mips::FCR12, Mips::FCR13, Mips::FCR14, Mips::FCR15, Mips::FCR16, Mips::FCR17, Mips::FCR18, Mips::FCR19, Mips::FCR20, Mips::FCR21, Mips::FCR22, Mips::FCR23, Mips::FCR24, Mips::FCR25, Mips::FCR26, Mips::FCR27, Mips::FCR28, Mips::FCR29, Mips::FCR30, Mips::FCR31, 
    1863             :   };
    1864             : 
    1865             :   // CCR Bit set.
    1866             :   const uint8_t CCRBits[] = {
    1867             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 
    1868             :   };
    1869             : 
    1870             :   // COP0 Register Class...
    1871             :   const MCPhysReg COP0[] = {
    1872             :     Mips::COP00, Mips::COP01, Mips::COP02, Mips::COP03, Mips::COP04, Mips::COP05, Mips::COP06, Mips::COP07, Mips::COP08, Mips::COP09, Mips::COP010, Mips::COP011, Mips::COP012, Mips::COP013, Mips::COP014, Mips::COP015, Mips::COP016, Mips::COP017, Mips::COP018, Mips::COP019, Mips::COP020, Mips::COP021, Mips::COP022, Mips::COP023, Mips::COP024, Mips::COP025, Mips::COP026, Mips::COP027, Mips::COP028, Mips::COP029, Mips::COP030, Mips::COP031, 
    1873             :   };
    1874             : 
    1875             :   // COP0 Bit set.
    1876             :   const uint8_t COP0Bits[] = {
    1877             :     0x00, 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, 0xe0, 0xff, 0xff, 0x07, 
    1878             :   };
    1879             : 
    1880             :   // COP2 Register Class...
    1881             :   const MCPhysReg COP2[] = {
    1882             :     Mips::COP20, Mips::COP21, Mips::COP22, Mips::COP23, Mips::COP24, Mips::COP25, Mips::COP26, Mips::COP27, Mips::COP28, Mips::COP29, Mips::COP210, Mips::COP211, Mips::COP212, Mips::COP213, Mips::COP214, Mips::COP215, Mips::COP216, Mips::COP217, Mips::COP218, Mips::COP219, Mips::COP220, Mips::COP221, Mips::COP222, Mips::COP223, Mips::COP224, Mips::COP225, Mips::COP226, Mips::COP227, Mips::COP228, Mips::COP229, Mips::COP230, Mips::COP231, 
    1883             :   };
    1884             : 
    1885             :   // COP2 Bit set.
    1886             :   const uint8_t COP2Bits[] = {
    1887             :     0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x01, 
    1888             :   };
    1889             : 
    1890             :   // COP3 Register Class...
    1891             :   const MCPhysReg COP3[] = {
    1892             :     Mips::COP30, Mips::COP31, Mips::COP32, Mips::COP33, Mips::COP34, Mips::COP35, Mips::COP36, Mips::COP37, Mips::COP38, Mips::COP39, Mips::COP310, Mips::COP311, Mips::COP312, Mips::COP313, Mips::COP314, Mips::COP315, Mips::COP316, Mips::COP317, Mips::COP318, Mips::COP319, Mips::COP320, Mips::COP321, Mips::COP322, Mips::COP323, Mips::COP324, Mips::COP325, Mips::COP326, Mips::COP327, Mips::COP328, Mips::COP329, Mips::COP330, Mips::COP331, 
    1893             :   };
    1894             : 
    1895             :   // COP3 Bit set.
    1896             :   const uint8_t COP3Bits[] = {
    1897             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x7f, 
    1898             :   };
    1899             : 
    1900             :   // DSPR Register Class...
    1901             :   const MCPhysReg DSPR[] = {
    1902             :     Mips::ZERO, Mips::AT, Mips::V0, Mips::V1, Mips::A0, Mips::A1, Mips::A2, Mips::A3, Mips::T0, Mips::T1, Mips::T2, Mips::T3, Mips::T4, Mips::T5, Mips::T6, Mips::T7, Mips::S0, Mips::S1, Mips::S2, Mips::S3, Mips::S4, Mips::S5, Mips::S6, Mips::S7, Mips::T8, Mips::T9, Mips::K0, Mips::K1, Mips::GP, Mips::SP, Mips::FP, Mips::RA, 
    1903             :   };
    1904             : 
    1905             :   // DSPR Bit set.
    1906             :   const uint8_t DSPRBits[] = {
    1907             :     0x02, 0x03, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xc0, 0xbf, 0xff, 0x07, 
    1908             :   };
    1909             : 
    1910             :   // FGR32 Register Class...
    1911             :   const MCPhysReg FGR32[] = {
    1912             :     Mips::F0, Mips::F1, Mips::F2, Mips::F3, Mips::F4, Mips::F5, Mips::F6, Mips::F7, Mips::F8, Mips::F9, Mips::F10, Mips::F11, Mips::F12, Mips::F13, Mips::F14, Mips::F15, Mips::F16, Mips::F17, Mips::F18, Mips::F19, Mips::F20, Mips::F21, Mips::F22, Mips::F23, Mips::F24, Mips::F25, Mips::F26, Mips::F27, Mips::F28, Mips::F29, Mips::F30, Mips::F31, 
    1913             :   };
    1914             : 
    1915             :   // FGR32 Bit set.
    1916             :   const uint8_t FGR32Bits[] = {
    1917             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 
    1918             :   };
    1919             : 
    1920             :   // FGRCC Register Class...
    1921             :   const MCPhysReg FGRCC[] = {
    1922             :     Mips::F0, Mips::F1, Mips::F2, Mips::F3, Mips::F4, Mips::F5, Mips::F6, Mips::F7, Mips::F8, Mips::F9, Mips::F10, Mips::F11, Mips::F12, Mips::F13, Mips::F14, Mips::F15, Mips::F16, Mips::F17, Mips::F18, Mips::F19, Mips::F20, Mips::F21, Mips::F22, Mips::F23, Mips::F24, Mips::F25, Mips::F26, Mips::F27, Mips::F28, Mips::F29, Mips::F30, Mips::F31, 
    1923             :   };
    1924             : 
    1925             :   // FGRCC Bit set.
    1926             :   const uint8_t FGRCCBits[] = {
    1927             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 
    1928             :   };
    1929             : 
    1930             :   // FGRH32 Register Class...
    1931             :   const MCPhysReg FGRH32[] = {
    1932             :     Mips::F_HI0, Mips::F_HI1, Mips::F_HI2, Mips::F_HI3, Mips::F_HI4, Mips::F_HI5, Mips::F_HI6, Mips::F_HI7, Mips::F_HI8, Mips::F_HI9, Mips::F_HI10, Mips::F_HI11, Mips::F_HI12, Mips::F_HI13, Mips::F_HI14, Mips::F_HI15, Mips::F_HI16, Mips::F_HI17, Mips::F_HI18, Mips::F_HI19, Mips::F_HI20, Mips::F_HI21, Mips::F_HI22, Mips::F_HI23, Mips::F_HI24, Mips::F_HI25, Mips::F_HI26, Mips::F_HI27, Mips::F_HI28, Mips::F_HI29, Mips::F_HI30, Mips::F_HI31, 
    1933             :   };
    1934             : 
    1935             :   // FGRH32 Bit set.
    1936             :   const uint8_t FGRH32Bits[] = {
    1937             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, 
    1938             :   };
    1939             : 
    1940             :   // GPR32 Register Class...
    1941             :   const MCPhysReg GPR32[] = {
    1942             :     Mips::ZERO, Mips::AT, Mips::V0, Mips::V1, Mips::A0, Mips::A1, Mips::A2, Mips::A3, Mips::T0, Mips::T1, Mips::T2, Mips::T3, Mips::T4, Mips::T5, Mips::T6, Mips::T7, Mips::S0, Mips::S1, Mips::S2, Mips::S3, Mips::S4, Mips::S5, Mips::S6, Mips::S7, Mips::T8, Mips::T9, Mips::K0, Mips::K1, Mips::GP, Mips::SP, Mips::FP, Mips::RA, 
    1943             :   };
    1944             : 
    1945             :   // GPR32 Bit set.
    1946             :   const uint8_t GPR32Bits[] = {
    1947             :     0x02, 0x03, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xc0, 0xbf, 0xff, 0x07, 
    1948             :   };
    1949             : 
    1950             :   // HWRegs Register Class...
    1951             :   const MCPhysReg HWRegs[] = {
    1952             :     Mips::HWR0, Mips::HWR1, Mips::HWR2, Mips::HWR3, Mips::HWR4, Mips::HWR5, Mips::HWR6, Mips::HWR7, Mips::HWR8, Mips::HWR9, Mips::HWR10, Mips::HWR11, Mips::HWR12, Mips::HWR13, Mips::HWR14, Mips::HWR15, Mips::HWR16, Mips::HWR17, Mips::HWR18, Mips::HWR19, Mips::HWR20, Mips::HWR21, Mips::HWR22, Mips::HWR23, Mips::HWR24, Mips::HWR25, Mips::HWR26, Mips::HWR27, Mips::HWR28, Mips::HWR29, Mips::HWR30, Mips::HWR31, 
    1953             :   };
    1954             : 
    1955             :   // HWRegs Bit set.
    1956             :   const uint8_t HWRegsBits[] = {
    1957             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x01, 
    1958             :   };
    1959             : 
    1960             :   // GPR32NONZERO Register Class...
    1961             :   const MCPhysReg GPR32NONZERO[] = {
    1962             :     Mips::AT, Mips::V0, Mips::V1, Mips::A0, Mips::A1, Mips::A2, Mips::A3, Mips::T0, Mips::T1, Mips::T2, Mips::T3, Mips::T4, Mips::T5, Mips::T6, Mips::T7, Mips::S0, Mips::S1, Mips::S2, Mips::S3, Mips::S4, Mips::S5, Mips::S6, Mips::S7, Mips::T8, Mips::T9, Mips::K0, Mips::K1, Mips::GP, Mips::SP, Mips::FP, Mips::RA, 
    1963             :   };
    1964             : 
    1965             :   // GPR32NONZERO Bit set.
    1966             :   const uint8_t GPR32NONZEROBits[] = {
    1967             :     0x02, 0x03, 0xd8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xc0, 0xbf, 0xff, 0x07, 
    1968             :   };
    1969             : 
    1970             :   // OddSP_with_sub_hi Register Class...
    1971             :   const MCPhysReg OddSP_with_sub_hi[] = {
    1972             :     Mips::D1, Mips::D3, Mips::D5, Mips::D7, Mips::D9, Mips::D11, Mips::D13, Mips::D15, Mips::D1_64, Mips::D3_64, Mips::D5_64, Mips::D7_64, Mips::D9_64, Mips::D11_64, Mips::D13_64, Mips::D15_64, Mips::D17_64, Mips::D19_64, Mips::D21_64, Mips::D23_64, Mips::D25_64, Mips::D27_64, Mips::D29_64, Mips::D31_64, 
    1973             :   };
    1974             : 
    1975             :   // OddSP_with_sub_hi Bit set.
    1976             :   const uint8_t OddSP_with_sub_hiBits[] = {
    1977             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0x55, 0x55, 0x01, 
    1978             :   };
    1979             : 
    1980             :   // FGR32_and_OddSP Register Class...
    1981             :   const MCPhysReg FGR32_and_OddSP[] = {
    1982             :     Mips::F1, Mips::F3, Mips::F5, Mips::F7, Mips::F9, Mips::F11, Mips::F13, Mips::F15, Mips::F17, Mips::F19, Mips::F21, Mips::F23, Mips::F25, Mips::F27, Mips::F29, Mips::F31, 
    1983             :   };
    1984             : 
    1985             :   // FGR32_and_OddSP Bit set.
    1986             :   const uint8_t FGR32_and_OddSPBits[] = {
    1987             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x55, 0x55, 0x55, 0x05, 
    1988             :   };
    1989             : 
    1990             :   // FGRH32_and_OddSP Register Class...
    1991             :   const MCPhysReg FGRH32_and_OddSP[] = {
    1992             :     Mips::F_HI1, Mips::F_HI3, Mips::F_HI5, Mips::F_HI7, Mips::F_HI9, Mips::F_HI11, Mips::F_HI13, Mips::F_HI15, Mips::F_HI17, Mips::F_HI19, Mips::F_HI21, Mips::F_HI23, Mips::F_HI25, Mips::F_HI27, Mips::F_HI29, Mips::F_HI31, 
    1993             :   };
    1994             : 
    1995             :   // FGRH32_and_OddSP Bit set.
    1996             :   const uint8_t FGRH32_and_OddSPBits[] = {
    1997             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xaa, 0xaa, 0xaa, 0x0a, 
    1998             :   };
    1999             : 
    2000             :   // OddSP_with_sub_hi_with_sub_hi_in_FGRH32 Register Class...
    2001             :   const MCPhysReg OddSP_with_sub_hi_with_sub_hi_in_FGRH32[] = {
    2002             :     Mips::D1_64, Mips::D3_64, Mips::D5_64, Mips::D7_64, Mips::D9_64, Mips::D11_64, Mips::D13_64, Mips::D15_64, Mips::D17_64, Mips::D19_64, Mips::D21_64, Mips::D23_64, Mips::D25_64, Mips::D27_64, Mips::D29_64, Mips::D31_64, 
    2003             :   };
    2004             : 
    2005             :   // OddSP_with_sub_hi_with_sub_hi_in_FGRH32 Bit set.
    2006             :   const uint8_t OddSP_with_sub_hi_with_sub_hi_in_FGRH32Bits[] = {
    2007             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0x55, 0x55, 0x01, 
    2008             :   };
    2009             : 
    2010             :   // CPU16RegsPlusSP Register Class...
    2011             :   const MCPhysReg CPU16RegsPlusSP[] = {
    2012             :     Mips::V0, Mips::V1, Mips::A0, Mips::A1, Mips::A2, Mips::A3, Mips::S0, Mips::S1, Mips::SP, 
    2013             :   };
    2014             : 
    2015             :   // CPU16RegsPlusSP Bit set.
    2016             :   const uint8_t CPU16RegsPlusSPBits[] = {
    2017             :     0x00, 0x00, 0xd0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x06, 
    2018             :   };
    2019             : 
    2020             :   // CPU16Regs Register Class...
    2021             :   const MCPhysReg CPU16Regs[] = {
    2022             :     Mips::V0, Mips::V1, Mips::A0, Mips::A1, Mips::A2, Mips::A3, Mips::S0, Mips::S1, 
    2023             :   };
    2024             : 
    2025             :   // CPU16Regs Bit set.
    2026             :   const uint8_t CPU16RegsBits[] = {
    2027             :     0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x06, 
    2028             :   };
    2029             : 
    2030             :   // FCC Register Class...
    2031             :   const MCPhysReg FCC[] = {
    2032             :     Mips::FCC0, Mips::FCC1, Mips::FCC2, Mips::FCC3, Mips::FCC4, Mips::FCC5, Mips::FCC6, Mips::FCC7, 
    2033             :   };
    2034             : 
    2035             :   // FCC Bit set.
    2036             :   const uint8_t FCCBits[] = {
    2037             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 
    2038             :   };
    2039             : 
    2040             :   // GPRMM16 Register Class...
    2041             :   const MCPhysReg GPRMM16[] = {
    2042             :     Mips::S0, Mips::S1, Mips::V0, Mips::V1, Mips::A0, Mips::A1, Mips::A2, Mips::A3, 
    2043             :   };
    2044             : 
    2045             :   // GPRMM16 Bit set.
    2046             :   const uint8_t GPRMM16Bits[] = {
    2047             :     0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x06, 
    2048             :   };
    2049             : 
    2050             :   // GPRMM16MoveP Register Class...
    2051             :   const MCPhysReg GPRMM16MoveP[] = {
    2052             :     Mips::ZERO, Mips::S1, Mips::V0, Mips::V1, Mips::S0, Mips::S2, Mips::S3, Mips::S4, 
    2053             :   };
    2054             : 
    2055             :   // GPRMM16MoveP Bit set.
    2056             :   const uint8_t GPRMM16MovePBits[] = {
    2057             :     0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x06, 
    2058             :   };
    2059             : 
    2060             :   // GPRMM16Zero Register Class...
    2061             :   const MCPhysReg GPRMM16Zero[] = {
    2062             :     Mips::ZERO, Mips::S1, Mips::V0, Mips::V1, Mips::A0, Mips::A1, Mips::A2, Mips::A3, 
    2063             :   };
    2064             : 
    2065             :   // GPRMM16Zero Bit set.
    2066             :   const uint8_t GPRMM16ZeroBits[] = {
    2067             :     0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x06, 
    2068             :   };
    2069             : 
    2070             :   // MSACtrl Register Class...
    2071             :   const MCPhysReg MSACtrl[] = {
    2072             :     Mips::MSAIR, Mips::MSACSR, Mips::MSAAccess, Mips::MSASave, Mips::MSAModify, Mips::MSARequest, Mips::MSAMap, Mips::MSAUnmap, 
    2073             :   };
    2074             : 
    2075             :   // MSACtrl Bit set.
    2076             :   const uint8_t MSACtrlBits[] = {
    2077             :     0x00, 0xfc, 0x03, 
    2078             :   };
    2079             : 
    2080             :   // OddSP_with_sub_hi_with_sub_hi_in_FGR32 Register Class...
    2081             :   const MCPhysReg OddSP_with_sub_hi_with_sub_hi_in_FGR32[] = {
    2082             :     Mips::D1, Mips::D3, Mips::D5, Mips::D7, Mips::D9, Mips::D11, Mips::D13, Mips::D15, 
    2083             :   };
    2084             : 
    2085             :   // OddSP_with_sub_hi_with_sub_hi_in_FGR32 Bit set.
    2086             :   const uint8_t OddSP_with_sub_hi_with_sub_hi_in_FGR32Bits[] = {
    2087             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 
    2088             :   };
    2089             : 
    2090             :   // CPU16Regs_and_GPRMM16Zero Register Class...
    2091             :   const MCPhysReg CPU16Regs_and_GPRMM16Zero[] = {
    2092             :     Mips::S1, Mips::V0, Mips::V1, Mips::A0, Mips::A1, Mips::A2, Mips::A3, 
    2093             :   };
    2094             : 
    2095             :   // CPU16Regs_and_GPRMM16Zero Bit set.
    2096             :   const uint8_t CPU16Regs_and_GPRMM16ZeroBits[] = {
    2097             :     0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x06, 
    2098             :   };
    2099             : 
    2100             :   // GPR32NONZERO_and_GPRMM16MoveP Register Class...
    2101             :   const MCPhysReg GPR32NONZERO_and_GPRMM16MoveP[] = {
    2102             :     Mips::S1, Mips::V0, Mips::V1, Mips::S0, Mips::S2, Mips::S3, Mips::S4, 
    2103             :   };
    2104             : 
    2105             :   // GPR32NONZERO_and_GPRMM16MoveP Bit set.
    2106             :   const uint8_t GPR32NONZERO_and_GPRMM16MovePBits[] = {
    2107             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x06, 
    2108             :   };
    2109             : 
    2110             :   // GPRMM16MovePPairSecond Register Class...
    2111             :   const MCPhysReg GPRMM16MovePPairSecond[] = {
    2112             :     Mips::A1, Mips::A2, Mips::A3, Mips::S5, Mips::S6, 
    2113             :   };
    2114             : 
    2115             :   // GPRMM16MovePPairSecond Bit set.
    2116             :   const uint8_t GPRMM16MovePPairSecondBits[] = {
    2117             :     0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 
    2118             :   };
    2119             : 
    2120             :   // CPU16Regs_and_GPRMM16MoveP Register Class...
    2121             :   const MCPhysReg CPU16Regs_and_GPRMM16MoveP[] = {
    2122             :     Mips::S1, Mips::V0, Mips::V1, Mips::S0, 
    2123             :   };
    2124             : 
    2125             :   // CPU16Regs_and_GPRMM16MoveP Bit set.
    2126             :   const uint8_t CPU16Regs_and_GPRMM16MovePBits[] = {
    2127             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x06, 
    2128             :   };
    2129             : 
    2130             :   // GPRMM16MoveP_and_GPRMM16Zero Register Class...
    2131             :   const MCPhysReg GPRMM16MoveP_and_GPRMM16Zero[] = {
    2132             :     Mips::ZERO, Mips::S1, Mips::V0, Mips::V1, 
    2133             :   };
    2134             : 
    2135             :   // GPRMM16MoveP_and_GPRMM16Zero Bit set.
    2136             :   const uint8_t GPRMM16MoveP_and_GPRMM16ZeroBits[] = {
    2137             :     0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x06, 
    2138             :   };
    2139             : 
    2140             :   // HI32DSP Register Class...
    2141             :   const MCPhysReg HI32DSP[] = {
    2142             :     Mips::HI0, Mips::HI1, Mips::HI2, Mips::HI3, 
    2143             :   };
    2144             : 
    2145             :   // HI32DSP Bit set.
    2146             :   const uint8_t HI32DSPBits[] = {
    2147             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 
    2148             :   };
    2149             : 
    2150             :   // LO32DSP Register Class...
    2151             :   const MCPhysReg LO32DSP[] = {
    2152             :     Mips::LO0, Mips::LO1, Mips::LO2, Mips::LO3, 
    2153             :   };
    2154             : 
    2155             :   // LO32DSP Bit set.
    2156             :   const uint8_t LO32DSPBits[] = {
    2157             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 
    2158             :   };
    2159             : 
    2160             :   // CPU16Regs_and_GPRMM16MovePPairSecond Register Class...
    2161             :   const MCPhysReg CPU16Regs_and_GPRMM16MovePPairSecond[] = {
    2162             :     Mips::A1, Mips::A2, Mips::A3, 
    2163             :   };
    2164             : 
    2165             :   // CPU16Regs_and_GPRMM16MovePPairSecond Bit set.
    2166             :   const uint8_t CPU16Regs_and_GPRMM16MovePPairSecondBits[] = {
    2167             :     0x00, 0x00, 0x80, 0x03, 
    2168             :   };
    2169             : 
    2170             :   // GPRMM16MovePPairFirst Register Class...
    2171             :   const MCPhysReg GPRMM16MovePPairFirst[] = {
    2172             :     Mips::A0, Mips::A1, Mips::A2, 
    2173             :   };
    2174             : 
    2175             :   // GPRMM16MovePPairFirst Bit set.
    2176             :   const uint8_t GPRMM16MovePPairFirstBits[] = {
    2177             :     0x00, 0x00, 0xc0, 0x01, 
    2178             :   };
    2179             : 
    2180             :   // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero Register Class...
    2181             :   const MCPhysReg GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero[] = {
    2182             :     Mips::S1, Mips::V0, Mips::V1, 
    2183             :   };
    2184             : 
    2185             :   // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero Bit set.
    2186             :   const uint8_t GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroBits[] = {
    2187             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x06, 
    2188             :   };
    2189             : 
    2190             :   // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond Register Class...
    2191             :   const MCPhysReg GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond[] = {
    2192             :     Mips::A1, Mips::A2, 
    2193             :   };
    2194             : 
    2195             :   // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond Bit set.
    2196             :   const uint8_t GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondBits[] = {
    2197             :     0x00, 0x00, 0x80, 0x01, 
    2198             :   };
    2199             : 
    2200             :   // CPURAReg Register Class...
    2201             :   const MCPhysReg CPURAReg[] = {
    2202             :     Mips::RA, 
    2203             :   };
    2204             : 
    2205             :   // CPURAReg Bit set.
    2206             :   const uint8_t CPURARegBits[] = {
    2207             :     0x00, 0x00, 0x08, 
    2208             :   };
    2209             : 
    2210             :   // CPUSPReg Register Class...
    2211             :   const MCPhysReg CPUSPReg[] = {
    2212             :     Mips::SP, 
    2213             :   };
    2214             : 
    2215             :   // CPUSPReg Bit set.
    2216             :   const uint8_t CPUSPRegBits[] = {
    2217             :     0x00, 0x00, 0x10, 
    2218             :   };
    2219             : 
    2220             :   // DSPCC Register Class...
    2221             :   const MCPhysReg DSPCC[] = {
    2222             :     Mips::DSPCCond, 
    2223             :   };
    2224             : 
    2225             :   // DSPCC Bit set.
    2226             :   const uint8_t DSPCCBits[] = {
    2227             :     0x04, 
    2228             :   };
    2229             : 
    2230             :   // GP32 Register Class...
    2231             :   const MCPhysReg GP32[] = {
    2232             :     Mips::GP, 
    2233             :   };
    2234             : 
    2235             :   // GP32 Bit set.
    2236             :   const uint8_t GP32Bits[] = {
    2237             :     0x00, 0x02, 
    2238             :   };
    2239             : 
    2240             :   // GPR32ZERO Register Class...
    2241             :   const MCPhysReg GPR32ZERO[] = {
    2242             :     Mips::ZERO, 
    2243             :   };
    2244             : 
    2245             :   // GPR32ZERO Bit set.
    2246             :   const uint8_t GPR32ZEROBits[] = {
    2247             :     0x00, 0x00, 0x20, 
    2248             :   };
    2249             : 
    2250             :   // HI32 Register Class...
    2251             :   const MCPhysReg HI32[] = {
    2252             :     Mips::HI0, 
    2253             :   };
    2254             : 
    2255             :   // HI32 Bit set.
    2256             :   const uint8_t HI32Bits[] = {
    2257             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 
    2258             :   };
    2259             : 
    2260             :   // LO32 Register Class...
    2261             :   const MCPhysReg LO32[] = {
    2262             :     Mips::LO0, 
    2263             :   };
    2264             : 
    2265             :   // LO32 Bit set.
    2266             :   const uint8_t LO32Bits[] = {
    2267             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 
    2268             :   };
    2269             : 
    2270             :   // SP32 Register Class...
    2271             :   const MCPhysReg SP32[] = {
    2272             :     Mips::SP, 
    2273             :   };
    2274             : 
    2275             :   // SP32 Bit set.
    2276             :   const uint8_t SP32Bits[] = {
    2277             :     0x00, 0x00, 0x10, 
    2278             :   };
    2279             : 
    2280             :   // FGR64 Register Class...
    2281             :   const MCPhysReg FGR64[] = {
    2282             :     Mips::D0_64, Mips::D1_64, Mips::D2_64, Mips::D3_64, Mips::D4_64, Mips::D5_64, Mips::D6_64, Mips::D7_64, Mips::D8_64, Mips::D9_64, Mips::D10_64, Mips::D11_64, Mips::D12_64, Mips::D13_64, Mips::D14_64, Mips::D15_64, Mips::D16_64, Mips::D17_64, Mips::D18_64, Mips::D19_64, Mips::D20_64, Mips::D21_64, Mips::D22_64, Mips::D23_64, Mips::D24_64, Mips::D25_64, Mips::D26_64, Mips::D27_64, Mips::D28_64, Mips::D29_64, Mips::D30_64, Mips::D31_64, 
    2283             :   };
    2284             : 
    2285             :   // FGR64 Bit set.
    2286             :   const uint8_t FGR64Bits[] = {
    2287             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x01, 
    2288             :   };
    2289             : 
    2290             :   // GPR64 Register Class...
    2291             :   const MCPhysReg GPR64[] = {
    2292             :     Mips::ZERO_64, Mips::AT_64, Mips::V0_64, Mips::V1_64, Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64, Mips::T0_64, Mips::T1_64, Mips::T2_64, Mips::T3_64, Mips::T4_64, Mips::T5_64, Mips::T6_64, Mips::T7_64, Mips::S0_64, Mips::S1_64, Mips::S2_64, Mips::S3_64, Mips::S4_64, Mips::S5_64, Mips::S6_64, Mips::S7_64, Mips::T8_64, Mips::T9_64, Mips::K0_64, Mips::K1_64, Mips::GP_64, Mips::SP_64, Mips::FP_64, Mips::RA_64, 
    2293             :   };
    2294             : 
    2295             :   // GPR64 Bit set.
    2296             :   const uint8_t GPR64Bits[] = {
    2297             :     0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xff, 0xff, 0x03, 
    2298             :   };
    2299             : 
    2300             :   // GPR64_with_sub_32_in_GPR32NONZERO Register Class...
    2301             :   const MCPhysReg GPR64_with_sub_32_in_GPR32NONZERO[] = {
    2302             :     Mips::AT_64, Mips::V0_64, Mips::V1_64, Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64, Mips::T0_64, Mips::T1_64, Mips::T2_64, Mips::T3_64, Mips::T4_64, Mips::T5_64, Mips::T6_64, Mips::T7_64, Mips::S0_64, Mips::S1_64, Mips::S2_64, Mips::S3_64, Mips::S4_64, Mips::S5_64, Mips::S6_64, Mips::S7_64, Mips::T8_64, Mips::T9_64, Mips::K0_64, Mips::K1_64, Mips::GP_64, Mips::SP_64, Mips::FP_64, Mips::RA_64, 
    2303             :   };
    2304             : 
    2305             :   // GPR64_with_sub_32_in_GPR32NONZERO Bit set.
    2306             :   const uint8_t GPR64_with_sub_32_in_GPR32NONZEROBits[] = {
    2307             :     0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xff, 0xff, 0x03, 
    2308             :   };
    2309             : 
    2310             :   // AFGR64 Register Class...
    2311             :   const MCPhysReg AFGR64[] = {
    2312             :     Mips::D0, Mips::D1, Mips::D2, Mips::D3, Mips::D4, Mips::D5, Mips::D6, Mips::D7, Mips::D8, Mips::D9, Mips::D10, Mips::D11, Mips::D12, Mips::D13, Mips::D14, Mips::D15, 
    2313             :   };
    2314             : 
    2315             :   // AFGR64 Bit set.
    2316             :   const uint8_t AFGR64Bits[] = {
    2317             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 
    2318             :   };
    2319             : 
    2320             :   // FGR64_and_OddSP Register Class...
    2321             :   const MCPhysReg FGR64_and_OddSP[] = {
    2322             :     Mips::D1_64, Mips::D3_64, Mips::D5_64, Mips::D7_64, Mips::D9_64, Mips::D11_64, Mips::D13_64, Mips::D15_64, Mips::D17_64, Mips::D19_64, Mips::D21_64, Mips::D23_64, Mips::D25_64, Mips::D27_64, Mips::D29_64, Mips::D31_64, 
    2323             :   };
    2324             : 
    2325             :   // FGR64_and_OddSP Bit set.
    2326             :   const uint8_t FGR64_and_OddSPBits[] = {
    2327             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0x55, 0x55, 0x01, 
    2328             :   };
    2329             : 
    2330             :   // GPR64_with_sub_32_in_CPU16RegsPlusSP Register Class...
    2331             :   const MCPhysReg GPR64_with_sub_32_in_CPU16RegsPlusSP[] = {
    2332             :     Mips::V0_64, Mips::V1_64, Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64, Mips::S0_64, Mips::S1_64, Mips::SP_64, 
    2333             :   };
    2334             : 
    2335             :   // GPR64_with_sub_32_in_CPU16RegsPlusSP Bit set.
    2336             :   const uint8_t GPR64_with_sub_32_in_CPU16RegsPlusSPBits[] = {
    2337             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x03, 
    2338             :   };
    2339             : 
    2340             :   // AFGR64_and_OddSP Register Class...
    2341             :   const MCPhysReg AFGR64_and_OddSP[] = {
    2342             :     Mips::D1, Mips::D3, Mips::D5, Mips::D7, Mips::D9, Mips::D11, Mips::D13, Mips::D15, 
    2343             :   };
    2344             : 
    2345             :   // AFGR64_and_OddSP Bit set.
    2346             :   const uint8_t AFGR64_and_OddSPBits[] = {
    2347             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 
    2348             :   };
    2349             : 
    2350             :   // GPR64_with_sub_32_in_CPU16Regs Register Class...
    2351             :   const MCPhysReg GPR64_with_sub_32_in_CPU16Regs[] = {
    2352             :     Mips::V0_64, Mips::V1_64, Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64, Mips::S0_64, Mips::S1_64, 
    2353             :   };
    2354             : 
    2355             :   // GPR64_with_sub_32_in_CPU16Regs Bit set.
    2356             :   const uint8_t GPR64_with_sub_32_in_CPU16RegsBits[] = {
    2357             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x03, 
    2358             :   };
    2359             : 
    2360             :   // GPR64_with_sub_32_in_GPRMM16MoveP Register Class...
    2361             :   const MCPhysReg GPR64_with_sub_32_in_GPRMM16MoveP[] = {
    2362             :     Mips::ZERO_64, Mips::V0_64, Mips::V1_64, Mips::S0_64, Mips::S1_64, Mips::S2_64, Mips::S3_64, Mips::S4_64, 
    2363             :   };
    2364             : 
    2365             :   // GPR64_with_sub_32_in_GPRMM16MoveP Bit set.
    2366             :   const uint8_t GPR64_with_sub_32_in_GPRMM16MovePBits[] = {
    2367             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x03, 
    2368             :   };
    2369             : 
    2370             :   // GPR64_with_sub_32_in_GPRMM16Zero Register Class...
    2371             :   const MCPhysReg GPR64_with_sub_32_in_GPRMM16Zero[] = {
    2372             :     Mips::ZERO_64, Mips::V0_64, Mips::V1_64, Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64, Mips::S1_64, 
    2373             :   };
    2374             : 
    2375             :   // GPR64_with_sub_32_in_GPRMM16Zero Bit set.
    2376             :   const uint8_t GPR64_with_sub_32_in_GPRMM16ZeroBits[] = {
    2377             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x03, 
    2378             :   };
    2379             : 
    2380             :   // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero Register Class...
    2381             :   const MCPhysReg GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero[] = {
    2382             :     Mips::V0_64, Mips::V1_64, Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64, Mips::S1_64, 
    2383             :   };
    2384             : 
    2385             :   // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero Bit set.
    2386             :   const uint8_t GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroBits[] = {
    2387             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x03, 
    2388             :   };
    2389             : 
    2390             :   // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP Register Class...
    2391             :   const MCPhysReg GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP[] = {
    2392             :     Mips::V0_64, Mips::V1_64, Mips::S0_64, Mips::S1_64, Mips::S2_64, Mips::S3_64, Mips::S4_64, 
    2393             :   };
    2394             : 
    2395             :   // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP Bit set.
    2396             :   const uint8_t GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePBits[] = {
    2397             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x03, 
    2398             :   };
    2399             : 
    2400             :   // GPR64_with_sub_32_in_GPRMM16MovePPairSecond Register Class...
    2401             :   const MCPhysReg GPR64_with_sub_32_in_GPRMM16MovePPairSecond[] = {
    2402             :     Mips::A1_64, Mips::A2_64, Mips::A3_64, Mips::S5_64, Mips::S6_64, 
    2403             :   };
    2404             : 
    2405             :   // GPR64_with_sub_32_in_GPRMM16MovePPairSecond Bit set.
    2406             :   const uint8_t GPR64_with_sub_32_in_GPRMM16MovePPairSecondBits[] = {
    2407             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 
    2408             :   };
    2409             : 
    2410             :   // ACC64DSP Register Class...
    2411             :   const MCPhysReg ACC64DSP[] = {
    2412             :     Mips::AC0, Mips::AC1, Mips::AC2, Mips::AC3, 
    2413             :   };
    2414             : 
    2415             :   // ACC64DSP Bit set.
    2416             :   const uint8_t ACC64DSPBits[] = {
    2417             :     0x00, 0x00, 0x00, 0x3c, 
    2418             :   };
    2419             : 
    2420             :   // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP Register Class...
    2421             :   const MCPhysReg GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP[] = {
    2422             :     Mips::V0_64, Mips::V1_64, Mips::S0_64, Mips::S1_64, 
    2423             :   };
    2424             : 
    2425             :   // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP Bit set.
    2426             :   const uint8_t GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePBits[] = {
    2427             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x03, 
    2428             :   };
    2429             : 
    2430             :   // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero Register Class...
    2431             :   const MCPhysReg GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero[] = {
    2432             :     Mips::ZERO_64, Mips::V0_64, Mips::V1_64, Mips::S1_64, 
    2433             :   };
    2434             : 
    2435             :   // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero Bit set.
    2436             :   const uint8_t GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroBits[] = {
    2437             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x03, 
    2438             :   };
    2439             : 
    2440             :   // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond Register Class...
    2441             :   const MCPhysReg GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond[] = {
    2442             :     Mips::A1_64, Mips::A2_64, Mips::A3_64, 
    2443             :   };
    2444             : 
    2445             :   // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond Bit set.
    2446             :   const uint8_t GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondBits[] = {
    2447             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 
    2448             :   };
    2449             : 
    2450             :   // GPR64_with_sub_32_in_GPRMM16MovePPairFirst Register Class...
    2451             :   const MCPhysReg GPR64_with_sub_32_in_GPRMM16MovePPairFirst[] = {
    2452             :     Mips::A0_64, Mips::A1_64, Mips::A2_64, 
    2453             :   };
    2454             : 
    2455             :   // GPR64_with_sub_32_in_GPRMM16MovePPairFirst Bit set.
    2456             :   const uint8_t GPR64_with_sub_32_in_GPRMM16MovePPairFirstBits[] = {
    2457             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 
    2458             :   };
    2459             : 
    2460             :   // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero Register Class...
    2461             :   const MCPhysReg GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero[] = {
    2462             :     Mips::V0_64, Mips::V1_64, Mips::S1_64, 
    2463             :   };
    2464             : 
    2465             :   // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero Bit set.
    2466             :   const uint8_t GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroBits[] = {
    2467             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x03, 
    2468             :   };
    2469             : 
    2470             :   // OCTEON_MPL Register Class...
    2471             :   const MCPhysReg OCTEON_MPL[] = {
    2472             :     Mips::MPL0, Mips::MPL1, Mips::MPL2, 
    2473             :   };
    2474             : 
    2475             :   // OCTEON_MPL Bit set.
    2476             :   const uint8_t OCTEON_MPLBits[] = {
    2477             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 
    2478             :   };
    2479             : 
    2480             :   // OCTEON_P Register Class...
    2481             :   const MCPhysReg OCTEON_P[] = {
    2482             :     Mips::P0, Mips::P1, Mips::P2, 
    2483             :   };
    2484             : 
    2485             :   // OCTEON_P Bit set.
    2486             :   const uint8_t OCTEON_PBits[] = {
    2487             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 
    2488             :   };
    2489             : 
    2490             :   // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond Register Class...
    2491             :   const MCPhysReg GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond[] = {
    2492             :     Mips::A1_64, Mips::A2_64, 
    2493             :   };
    2494             : 
    2495             :   // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond Bit set.
    2496             :   const uint8_t GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondBits[] = {
    2497             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 
    2498             :   };
    2499             : 
    2500             :   // ACC64 Register Class...
    2501             :   const MCPhysReg ACC64[] = {
    2502             :     Mips::AC0, 
    2503             :   };
    2504             : 
    2505             :   // ACC64 Bit set.
    2506             :   const uint8_t ACC64Bits[] = {
    2507             :     0x00, 0x00, 0x00, 0x04, 
    2508             :   };
    2509             : 
    2510             :   // GP64 Register Class...
    2511             :   const MCPhysReg GP64[] = {
    2512             :     Mips::GP_64, 
    2513             :   };
    2514             : 
    2515             :   // GP64 Bit set.
    2516             :   const uint8_t GP64Bits[] = {
    2517             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 
    2518             :   };
    2519             : 
    2520             :   // GPR64_with_sub_32_in_CPURAReg Register Class...
    2521             :   const MCPhysReg GPR64_with_sub_32_in_CPURAReg[] = {
    2522             :     Mips::RA_64, 
    2523             :   };
    2524             : 
    2525             :   // GPR64_with_sub_32_in_CPURAReg Bit set.
    2526             :   const uint8_t GPR64_with_sub_32_in_CPURARegBits[] = {
    2527             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 
    2528             :   };
    2529             : 
    2530             :   // GPR64_with_sub_32_in_GPR32ZERO Register Class...
    2531             :   const MCPhysReg GPR64_with_sub_32_in_GPR32ZERO[] = {
    2532             :     Mips::ZERO_64, 
    2533             :   };
    2534             : 
    2535             :   // GPR64_with_sub_32_in_GPR32ZERO Bit set.
    2536             :   const uint8_t GPR64_with_sub_32_in_GPR32ZEROBits[] = {
    2537             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 
    2538             :   };
    2539             : 
    2540             :   // HI64 Register Class...
    2541             :   const MCPhysReg HI64[] = {
    2542             :     Mips::HI0_64, 
    2543             :   };
    2544             : 
    2545             :   // HI64 Bit set.
    2546             :   const uint8_t HI64Bits[] = {
    2547             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 
    2548             :   };
    2549             : 
    2550             :   // LO64 Register Class...
    2551             :   const MCPhysReg LO64[] = {
    2552             :     Mips::LO0_64, 
    2553             :   };
    2554             : 
    2555             :   // LO64 Bit set.
    2556             :   const uint8_t LO64Bits[] = {
    2557             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 
    2558             :   };
    2559             : 
    2560             :   // SP64 Register Class...
    2561             :   const MCPhysReg SP64[] = {
    2562             :     Mips::SP_64, 
    2563             :   };
    2564             : 
    2565             :   // SP64 Bit set.
    2566             :   const uint8_t SP64Bits[] = {
    2567             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 
    2568             :   };
    2569             : 
    2570             :   // MSA128B Register Class...
    2571             :   const MCPhysReg MSA128B[] = {
    2572             :     Mips::W0, Mips::W1, Mips::W2, Mips::W3, Mips::W4, Mips::W5, Mips::W6, Mips::W7, Mips::W8, Mips::W9, Mips::W10, Mips::W11, Mips::W12, Mips::W13, Mips::W14, Mips::W15, Mips::W16, Mips::W17, Mips::W18, Mips::W19, Mips::W20, Mips::W21, Mips::W22, Mips::W23, Mips::W24, Mips::W25, Mips::W26, Mips::W27, Mips::W28, Mips::W29, Mips::W30, Mips::W31, 
    2573             :   };
    2574             : 
    2575             :   // MSA128B Bit set.
    2576             :   const uint8_t MSA128BBits[] = {
    2577             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 
    2578             :   };
    2579             : 
    2580             :   // MSA128D Register Class...
    2581             :   const MCPhysReg MSA128D[] = {
    2582             :     Mips::W0, Mips::W1, Mips::W2, Mips::W3, Mips::W4, Mips::W5, Mips::W6, Mips::W7, Mips::W8, Mips::W9, Mips::W10, Mips::W11, Mips::W12, Mips::W13, Mips::W14, Mips::W15, Mips::W16, Mips::W17, Mips::W18, Mips::W19, Mips::W20, Mips::W21, Mips::W22, Mips::W23, Mips::W24, Mips::W25, Mips::W26, Mips::W27, Mips::W28, Mips::W29, Mips::W30, Mips::W31, 
    2583             :   };
    2584             : 
    2585             :   // MSA128D Bit set.
    2586             :   const uint8_t MSA128DBits[] = {
    2587             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 
    2588             :   };
    2589             : 
    2590             :   // MSA128H Register Class...
    2591             :   const MCPhysReg MSA128H[] = {
    2592             :     Mips::W0, Mips::W1, Mips::W2, Mips::W3, Mips::W4, Mips::W5, Mips::W6, Mips::W7, Mips::W8, Mips::W9, Mips::W10, Mips::W11, Mips::W12, Mips::W13, Mips::W14, Mips::W15, Mips::W16, Mips::W17, Mips::W18, Mips::W19, Mips::W20, Mips::W21, Mips::W22, Mips::W23, Mips::W24, Mips::W25, Mips::W26, Mips::W27, Mips::W28, Mips::W29, Mips::W30, Mips::W31, 
    2593             :   };
    2594             : 
    2595             :   // MSA128H Bit set.
    2596             :   const uint8_t MSA128HBits[] = {
    2597             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 
    2598             :   };
    2599             : 
    2600             :   // MSA128W Register Class...
    2601             :   const MCPhysReg MSA128W[] = {
    2602             :     Mips::W0, Mips::W1, Mips::W2, Mips::W3, Mips::W4, Mips::W5, Mips::W6, Mips::W7, Mips::W8, Mips::W9, Mips::W10, Mips::W11, Mips::W12, Mips::W13, Mips::W14, Mips::W15, Mips::W16, Mips::W17, Mips::W18, Mips::W19, Mips::W20, Mips::W21, Mips::W22, Mips::W23, Mips::W24, Mips::W25, Mips::W26, Mips::W27, Mips::W28, Mips::W29, Mips::W30, Mips::W31, 
    2603             :   };
    2604             : 
    2605             :   // MSA128W Bit set.
    2606             :   const uint8_t MSA128WBits[] = {
    2607             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 
    2608             :   };
    2609             : 
    2610             :   // MSA128B_with_sub_64_in_OddSP Register Class...
    2611             :   const MCPhysReg MSA128B_with_sub_64_in_OddSP[] = {
    2612             :     Mips::W1, Mips::W3, Mips::W5, Mips::W7, Mips::W9, Mips::W11, Mips::W13, Mips::W15, Mips::W17, Mips::W19, Mips::W21, Mips::W23, Mips::W25, Mips::W27, Mips::W29, Mips::W31, 
    2613             :   };
    2614             : 
    2615             :   // MSA128B_with_sub_64_in_OddSP Bit set.
    2616             :   const uint8_t MSA128B_with_sub_64_in_OddSPBits[] = {
    2617             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x55, 0x55, 0x55, 0x05, 
    2618             :   };
    2619             : 
    2620             :   // MSA128WEvens Register Class...
    2621             :   const MCPhysReg MSA128WEvens[] = {
    2622             :     Mips::W0, Mips::W2, Mips::W4, Mips::W6, Mips::W8, Mips::W10, Mips::W12, Mips::W14, Mips::W16, Mips::W18, Mips::W20, Mips::W22, Mips::W24, Mips::W26, Mips::W28, Mips::W30, 
    2623             :   };
    2624             : 
    2625             :   // MSA128WEvens Bit set.
    2626             :   const uint8_t MSA128WEvensBits[] = {
    2627             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xaa, 0xaa, 0xaa, 0x02, 
    2628             :   };
    2629             : 
    2630             :   // ACC128 Register Class...
    2631             :   const MCPhysReg ACC128[] = {
    2632             :     Mips::AC0_64, 
    2633             :   };
    2634             : 
    2635             :   // ACC128 Bit set.
    2636             :   const uint8_t ACC128Bits[] = {
    2637             :     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 
    2638             :   };
    2639             : 
    2640             : } // end anonymous namespace
    2641             : 
    2642             : extern const char MipsRegClassStrings[] = {
    2643             :   /* 0 */ 'C', 'O', 'P', '0', 0,
    2644             :   /* 5 */ 'O', 'd', 'd', 'S', 'P', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', 'h', 'i', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', 'h', 'i', '_', 'i', 'n', '_', 'F', 'G', 'R', 'H', '3', '2', 0,
    2645             :   /* 45 */ 'H', 'I', '3', '2', 0,
    2646             :   /* 50 */ 'L', 'O', '3', '2', 0,
    2647             :   /* 55 */ 'G', 'P', '3', '2', 0,
    2648             :   /* 60 */ 'S', 'P', '3', '2', 0,
    2649             :   /* 65 */ 'O', 'd', 'd', 'S', 'P', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', 'h', 'i', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', 'h', 'i', '_', 'i', 'n', '_', 'F', 'G', 'R', '3', '2', 0,
    2650             :   /* 104 */ 'G', 'P', 'R', '3', '2', 0,
    2651             :   /* 110 */ 'C', 'O', 'P', '2', 0,
    2652             :   /* 115 */ 'C', 'O', 'P', '3', 0,
    2653             :   /* 120 */ 'A', 'C', 'C', '6', '4', 0,
    2654             :   /* 126 */ 'H', 'I', '6', '4', 0,
    2655             :   /* 131 */ 'L', 'O', '6', '4', 0,
    2656             :   /* 136 */ 'G', 'P', '6', '4', 0,
    2657             :   /* 141 */ 'S', 'P', '6', '4', 0,
    2658             :   /* 146 */ 'A', 'F', 'G', 'R', '6', '4', 0,
    2659             :   /* 153 */ 'G', 'P', 'R', '6', '4', 0,
    2660             :   /* 159 */ 'M', 'S', 'A', '1', '2', '8', 'F', '1', '6', 0,
    2661             :   /* 169 */ 'G', 'P', 'R', 'M', 'M', '1', '6', 0,
    2662             :   /* 177 */ 'A', 'C', 'C', '1', '2', '8', 0,
    2663             :   /* 184 */ 'M', 'S', 'A', '1', '2', '8', 'B', 0,
    2664             :   /* 192 */ 'F', 'C', 'C', 0,
    2665             :   /* 196 */ 'D', 'S', 'P', 'C', 'C', 0,
    2666             :   /* 202 */ 'F', 'G', 'R', 'C', 'C', 0,
    2667             :   /* 208 */ 'M', 'S', 'A', '1', '2', '8', 'D', 0,
    2668             :   /* 216 */ 'M', 'S', 'A', '1', '2', '8', 'H', 0,
    2669             :   /* 224 */ 'O', 'C', 'T', 'E', 'O', 'N', '_', 'M', 'P', 'L', 0,
    2670             :   /* 235 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', '3', '2', 'Z', 'E', 'R', 'O', 0,
    2671             :   /* 266 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', '3', '2', 'N', 'O', 'N', 'Z', 'E', 'R', 'O', 0,
    2672             :   /* 300 */ 'H', 'I', '3', '2', 'D', 'S', 'P', 0,
    2673             :   /* 308 */ 'L', 'O', '3', '2', 'D', 'S', 'P', 0,
    2674             :   /* 316 */ 'A', 'C', 'C', '6', '4', 'D', 'S', 'P', 0,
    2675             :   /* 325 */ 'F', 'G', 'R', 'H', '3', '2', '_', 'a', 'n', 'd', '_', 'O', 'd', 'd', 'S', 'P', 0,
    2676             :   /* 342 */ 'F', 'G', 'R', '3', '2', '_', 'a', 'n', 'd', '_', 'O', 'd', 'd', 'S', 'P', 0,
    2677             :   /* 358 */ 'A', 'F', 'G', 'R', '6', '4', '_', 'a', 'n', 'd', '_', 'O', 'd', 'd', 'S', 'P', 0,
    2678             :   /* 375 */ 'M', 'S', 'A', '1', '2', '8', 'F', '1', '6', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '6', '4', '_', 'i', 'n', '_', 'O', 'd', 'd', 'S', 'P', 0,
    2679             :   /* 406 */ 'M', 'S', 'A', '1', '2', '8', 'B', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '6', '4', '_', 'i', 'n', '_', 'O', 'd', 'd', 'S', 'P', 0,
    2680             :   /* 435 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'C', 'P', 'U', '1', '6', 'R', 'e', 'g', 's', 'P', 'l', 'u', 's', 'S', 'P', 0,
    2681             :   /* 472 */ 'O', 'C', 'T', 'E', 'O', 'N', '_', 'P', 0,
    2682             :   /* 481 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', '3', '2', 'N', 'O', 'N', 'Z', 'E', 'R', 'O', '_', 'a', 'n', 'd', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'M', 'o', 'v', 'e', 'P', 0,
    2683             :   /* 532 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'C', 'P', 'U', '1', '6', 'R', 'e', 'g', 's', '_', 'a', 'n', 'd', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'M', 'o', 'v', 'e', 'P', 0,
    2684             :   /* 580 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'M', 'o', 'v', 'e', 'P', 0,
    2685             :   /* 614 */ 'C', 'C', 'R', 0,
    2686             :   /* 618 */ 'D', 'S', 'P', 'R', 0,
    2687             :   /* 623 */ 'M', 'S', 'A', '1', '2', '8', 'W', 0,
    2688             :   /* 631 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'C', 'P', 'U', '1', '6', 'R', 'e', 'g', 's', '_', 'a', 'n', 'd', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'M', 'o', 'v', 'e', 'P', 'P', 'a', 'i', 'r', 'S', 'e', 'c', 'o', 'n', 'd', 0,
    2689             :   /* 689 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'M', 'o', 'v', 'e', 'P', 'P', 'a', 'i', 'r', 'F', 'i', 'r', 's', 't', '_', 'a', 'n', 'd', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'M', 'o', 'v', 'e', 'P', 'P', 'a', 'i', 'r', 'S', 'e', 'c', 'o', 'n', 'd', 0,
    2690             :   /* 759 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'M', 'o', 'v', 'e', 'P', 'P', 'a', 'i', 'r', 'S', 'e', 'c', 'o', 'n', 'd', 0,
    2691             :   /* 803 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'C', 'P', 'U', 'R', 'A', 'R', 'e', 'g', 0,
    2692             :   /* 833 */ 'C', 'P', 'U', 'S', 'P', 'R', 'e', 'g', 0,
    2693             :   /* 842 */ 'O', 'd', 'd', 'S', 'P', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', 'h', 'i', 0,
    2694             :   /* 860 */ 'M', 'S', 'A', 'C', 't', 'r', 'l', 0,
    2695             :   /* 868 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'M', 'o', 'v', 'e', 'P', '_', 'a', 'n', 'd', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'Z', 'e', 'r', 'o', 0,
    2696             :   /* 918 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'M', 'o', 'v', 'e', 'P', '_', 'a', 'n', 'd', '_', 'C', 'P', 'U', '1', '6', 'R', 'e', 'g', 's', '_', 'a', 'n', 'd', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'Z', 'e', 'r', 'o', 0,
    2697             :   /* 982 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'C', 'P', 'U', '1', '6', 'R', 'e', 'g', 's', '_', 'a', 'n', 'd', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'Z', 'e', 'r', 'o', 0,
    2698             :   /* 1029 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'Z', 'e', 'r', 'o', 0,
    2699             :   /* 1062 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'C', 'P', 'U', '1', '6', 'R', 'e', 'g', 's', 0,
    2700             :   /* 1093 */ 'H', 'W', 'R', 'e', 'g', 's', 0,
    2701             :   /* 1100 */ 'M', 'S', 'A', '1', '2', '8', 'W', 'E', 'v', 'e', 'n', 's', 0,
    2702             :   /* 1113 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'M', 'o', 'v', 'e', 'P', 'P', 'a', 'i', 'r', 'F', 'i', 'r', 's', 't', 0,
    2703             : };
    2704             : 
    2705             : extern const MCRegisterClass MipsMCRegisterClasses[] = {
    2706             :   { MSA128F16, MSA128F16Bits, 159, 32, sizeof(MSA128F16Bits), Mips::MSA128F16RegClassID, 1, true },
    2707             :   { MSA128F16_with_sub_64_in_OddSP, MSA128F16_with_sub_64_in_OddSPBits, 375, 16, sizeof(MSA128F16_with_sub_64_in_OddSPBits), Mips::MSA128F16_with_sub_64_in_OddSPRegClassID, 1, true },
    2708             :   { OddSP, OddSPBits, 336, 56, sizeof(OddSPBits), Mips::OddSPRegClassID, 1, false },
    2709             :   { CCR, CCRBits, 614, 32, sizeof(CCRBits), Mips::CCRRegClassID, 1, false },
    2710             :   { COP0, COP0Bits, 0, 32, sizeof(COP0Bits), Mips::COP0RegClassID, 1, false },
    2711             :   { COP2, COP2Bits, 110, 32, sizeof(COP2Bits), Mips::COP2RegClassID, 1, false },
    2712             :   { COP3, COP3Bits, 115, 32, sizeof(COP3Bits), Mips::COP3RegClassID, 1, false },
    2713             :   { DSPR, DSPRBits, 618, 32, sizeof(DSPRBits), Mips::DSPRRegClassID, 1, true },
    2714             :   { FGR32, FGR32Bits, 98, 32, sizeof(FGR32Bits), Mips::FGR32RegClassID, 1, true },
    2715             :   { FGRCC, FGRCCBits, 202, 32, sizeof(FGRCCBits), Mips::FGRCCRegClassID, 1, true },
    2716             :   { FGRH32, FGRH32Bits, 38, 32, sizeof(FGRH32Bits), Mips::FGRH32RegClassID, 1, false },
    2717             :   { GPR32, GPR32Bits, 104, 32, sizeof(GPR32Bits), Mips::GPR32RegClassID, 1, true },
    2718             :   { HWRegs, HWRegsBits, 1093, 32, sizeof(HWRegsBits), Mips::HWRegsRegClassID, 1, false },
    2719             :   { GPR32NONZERO, GPR32NONZEROBits, 287, 31, sizeof(GPR32NONZEROBits), Mips::GPR32NONZERORegClassID, 1, true },
    2720             :   { OddSP_with_sub_hi, OddSP_with_sub_hiBits, 842, 24, sizeof(OddSP_with_sub_hiBits), Mips::OddSP_with_sub_hiRegClassID, 1, false },
    2721             :   { FGR32_and_OddSP, FGR32_and_OddSPBits, 342, 16, sizeof(FGR32_and_OddSPBits), Mips::FGR32_and_OddSPRegClassID, 1, true },
    2722             :   { FGRH32_and_OddSP, FGRH32_and_OddSPBits, 325, 16, sizeof(FGRH32_and_OddSPBits), Mips::FGRH32_and_OddSPRegClassID, 1, false },
    2723             :   { OddSP_with_sub_hi_with_sub_hi_in_FGRH32, OddSP_with_sub_hi_with_sub_hi_in_FGRH32Bits, 5, 16, sizeof(OddSP_with_sub_hi_with_sub_hi_in_FGRH32Bits), Mips::OddSP_with_sub_hi_with_sub_hi_in_FGRH32RegClassID, 1, false },
    2724             :   { CPU16RegsPlusSP, CPU16RegsPlusSPBits, 456, 9, sizeof(CPU16RegsPlusSPBits), Mips::CPU16RegsPlusSPRegClassID, 1, true },
    2725             :   { CPU16Regs, CPU16RegsBits, 1083, 8, sizeof(CPU16RegsBits), Mips::CPU16RegsRegClassID, 1, true },
    2726             :   { FCC, FCCBits, 192, 8, sizeof(FCCBits), Mips::FCCRegClassID, 1, false },
    2727             :   { GPRMM16, GPRMM16Bits, 169, 8, sizeof(GPRMM16Bits), Mips::GPRMM16RegClassID, 1, true },
    2728             :   { GPRMM16MoveP, GPRMM16MovePBits, 519, 8, sizeof(GPRMM16MovePBits), Mips::GPRMM16MovePRegClassID, 1, true },
    2729             :   { GPRMM16Zero, GPRMM16ZeroBits, 906, 8, sizeof(GPRMM16ZeroBits), Mips::GPRMM16ZeroRegClassID, 1, true },
    2730             :   { MSACtrl, MSACtrlBits, 860, 8, sizeof(MSACtrlBits), Mips::MSACtrlRegClassID, 1, true },
    2731             :   { OddSP_with_sub_hi_with_sub_hi_in_FGR32, OddSP_with_sub_hi_with_sub_hi_in_FGR32Bits, 65, 8, sizeof(OddSP_with_sub_hi_with_sub_hi_in_FGR32Bits), Mips::OddSP_with_sub_hi_with_sub_hi_in_FGR32RegClassID, 1, false },
    2732             :   { CPU16Regs_and_GPRMM16Zero, CPU16Regs_and_GPRMM16ZeroBits, 956, 7, sizeof(CPU16Regs_and_GPRMM16ZeroBits), Mips::CPU16Regs_and_GPRMM16ZeroRegClassID, 1, true },
    2733             :   { GPR32NONZERO_and_GPRMM16MoveP, GPR32NONZERO_and_GPRMM16MovePBits, 502, 7, sizeof(GPR32NONZERO_and_GPRMM16MovePBits), Mips::GPR32NONZERO_and_GPRMM16MovePRegClassID, 1, true },
    2734             :   { GPRMM16MovePPairSecond, GPRMM16MovePPairSecondBits, 666, 5, sizeof(GPRMM16MovePPairSecondBits), Mips::GPRMM16MovePPairSecondRegClassID, 1, true },
    2735             :   { CPU16Regs_and_GPRMM16MoveP, CPU16Regs_and_GPRMM16MovePBits, 553, 4, sizeof(CPU16Regs_and_GPRMM16MovePBits), Mips::CPU16Regs_and_GPRMM16MovePRegClassID, 1, true },
    2736             :   { GPRMM16MoveP_and_GPRMM16Zero, GPRMM16MoveP_and_GPRMM16ZeroBits, 889, 4, sizeof(GPRMM16MoveP_and_GPRMM16ZeroBits), Mips::GPRMM16MoveP_and_GPRMM16ZeroRegClassID, 1, true },
    2737             :   { HI32DSP, HI32DSPBits, 300, 4, sizeof(HI32DSPBits), Mips::HI32DSPRegClassID, 1, true },
    2738             :   { LO32DSP, LO32DSPBits, 308, 4, sizeof(LO32DSPBits), Mips::LO32DSPRegClassID, 1, true },
    2739             :   { CPU16Regs_and_GPRMM16MovePPairSecond, CPU16Regs_and_GPRMM16MovePPairSecondBits, 652, 3, sizeof(CPU16Regs_and_GPRMM16MovePPairSecondBits), Mips::CPU16Regs_and_GPRMM16MovePPairSecondRegClassID, 1, true },
    2740             :   { GPRMM16MovePPairFirst, GPRMM16MovePPairFirstBits, 1134, 3, sizeof(GPRMM16MovePPairFirstBits), Mips::GPRMM16MovePPairFirstRegClassID, 1, true },
    2741             :   { GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero, GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroBits, 939, 3, sizeof(GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroBits), Mips::GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClassID, 1, true },
    2742             :   { GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond, GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondBits, 710, 2, sizeof(GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondBits), Mips::GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClassID, 1, true },
    2743             :   { CPURAReg, CPURARegBits, 824, 1, sizeof(CPURARegBits), Mips::CPURARegRegClassID, 1, false },
    2744             :   { CPUSPReg, CPUSPRegBits, 833, 1, sizeof(CPUSPRegBits), Mips::CPUSPRegRegClassID, 1, false },
    2745             :   { DSPCC, DSPCCBits, 196, 1, sizeof(DSPCCBits), Mips::DSPCCRegClassID, 1, true },
    2746             :   { GP32, GP32Bits, 55, 1, sizeof(GP32Bits), Mips::GP32RegClassID, 1, false },
    2747             :   { GPR32ZERO, GPR32ZEROBits, 256, 1, sizeof(GPR32ZEROBits), Mips::GPR32ZERORegClassID, 1, true },
    2748             :   { HI32, HI32Bits, 45, 1, sizeof(HI32Bits), Mips::HI32RegClassID, 1, true },
    2749             :   { LO32, LO32Bits, 50, 1, sizeof(LO32Bits), Mips::LO32RegClassID, 1, true },
    2750             :   { SP32, SP32Bits, 60, 1, sizeof(SP32Bits), Mips::SP32RegClassID, 1, false },
    2751             :   { FGR64, FGR64Bits, 147, 32, sizeof(FGR64Bits), Mips::FGR64RegClassID, 1, true },
    2752             :   { GPR64, GPR64Bits, 153, 32, sizeof(GPR64Bits), Mips::GPR64RegClassID, 1, true },
    2753             :   { GPR64_with_sub_32_in_GPR32NONZERO, GPR64_with_sub_32_in_GPR32NONZEROBits, 266, 31, sizeof(GPR64_with_sub_32_in_GPR32NONZEROBits), Mips::GPR64_with_sub_32_in_GPR32NONZERORegClassID, 1, true },
    2754             :   { AFGR64, AFGR64Bits, 146, 16, sizeof(AFGR64Bits), Mips::AFGR64RegClassID, 1, true },
    2755             :   { FGR64_and_OddSP, FGR64_and_OddSPBits, 359, 16, sizeof(FGR64_and_OddSPBits), Mips::FGR64_and_OddSPRegClassID, 1, true },
    2756             :   { GPR64_with_sub_32_in_CPU16RegsPlusSP, GPR64_with_sub_32_in_CPU16RegsPlusSPBits, 435, 9, sizeof(GPR64_with_sub_32_in_CPU16RegsPlusSPBits), Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClassID, 1, true },
    2757             :   { AFGR64_and_OddSP, AFGR64_and_OddSPBits, 358, 8, sizeof(AFGR64_and_OddSPBits), Mips::AFGR64_and_OddSPRegClassID, 1, true },
    2758             :   { GPR64_with_sub_32_in_CPU16Regs, GPR64_with_sub_32_in_CPU16RegsBits, 1062, 8, sizeof(GPR64_with_sub_32_in_CPU16RegsBits), Mips::GPR64_with_sub_32_in_CPU16RegsRegClassID, 1, true },
    2759             :   { GPR64_with_sub_32_in_GPRMM16MoveP, GPR64_with_sub_32_in_GPRMM16MovePBits, 580, 8, sizeof(GPR64_with_sub_32_in_GPRMM16MovePBits), Mips::GPR64_with_sub_32_in_GPRMM16MovePRegClassID, 1, true },
    2760             :   { GPR64_with_sub_32_in_GPRMM16Zero, GPR64_with_sub_32_in_GPRMM16ZeroBits, 1029, 8, sizeof(GPR64_with_sub_32_in_GPRMM16ZeroBits), Mips::GPR64_with_sub_32_in_GPRMM16ZeroRegClassID, 1, true },
    2761             :   { GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero, GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroBits, 982, 7, sizeof(GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroBits), Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClassID, 1, true },
    2762             :   { GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP, GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePBits, 481, 7, sizeof(GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePBits), Mips::GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePRegClassID, 1, true },
    2763             :   { GPR64_with_sub_32_in_GPRMM16MovePPairSecond, GPR64_with_sub_32_in_GPRMM16MovePPairSecondBits, 759, 5, sizeof(GPR64_with_sub_32_in_GPRMM16MovePPairSecondBits), Mips::GPR64_with_sub_32_in_GPRMM16MovePPairSecondRegClassID, 1, true },
    2764             :   { ACC64DSP, ACC64DSPBits, 316, 4, sizeof(ACC64DSPBits), Mips::ACC64DSPRegClassID, 1, true },
    2765             :   { GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP, GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePBits, 532, 4, sizeof(GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePBits), Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePRegClassID, 1, true },
    2766             :   { GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero, GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroBits, 868, 4, sizeof(GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroBits), Mips::GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroRegClassID, 1, true },
    2767             :   { GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond, GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondBits, 631, 3, sizeof(GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondBits), Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondRegClassID, 1, true },
    2768             :   { GPR64_with_sub_32_in_GPRMM16MovePPairFirst, GPR64_with_sub_32_in_GPRMM16MovePPairFirstBits, 1113, 3, sizeof(GPR64_with_sub_32_in_GPRMM16MovePPairFirstBits), Mips::GPR64_with_sub_32_in_GPRMM16MovePPairFirstRegClassID, 1, true },
    2769             :   { GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero, GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroBits, 918, 3, sizeof(GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroBits), Mips::GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClassID, 1, true },
    2770             :   { OCTEON_MPL, OCTEON_MPLBits, 224, 3, sizeof(OCTEON_MPLBits), Mips::OCTEON_MPLRegClassID, 1, false },
    2771             :   { OCTEON_P, OCTEON_PBits, 472, 3, sizeof(OCTEON_PBits), Mips::OCTEON_PRegClassID, 1, false },
    2772             :   { GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond, GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondBits, 689, 2, sizeof(GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondBits), Mips::GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClassID, 1, true },
    2773             :   { ACC64, ACC64Bits, 120, 1, sizeof(ACC64Bits), Mips::ACC64RegClassID, 1, true },
    2774             :   { GP64, GP64Bits, 136, 1, sizeof(GP64Bits), Mips::GP64RegClassID, 1, false },
    2775             :   { GPR64_with_sub_32_in_CPURAReg, GPR64_with_sub_32_in_CPURARegBits, 803, 1, sizeof(GPR64_with_sub_32_in_CPURARegBits), Mips::GPR64_with_sub_32_in_CPURARegRegClassID, 1, true },
    2776             :   { GPR64_with_sub_32_in_GPR32ZERO, GPR64_with_sub_32_in_GPR32ZEROBits, 235, 1, sizeof(GPR64_with_sub_32_in_GPR32ZEROBits), Mips::GPR64_with_sub_32_in_GPR32ZERORegClassID, 1, true },
    2777             :   { HI64, HI64Bits, 126, 1, sizeof(HI64Bits), Mips::HI64RegClassID, 1, true },
    2778             :   { LO64, LO64Bits, 131, 1, sizeof(LO64Bits), Mips::LO64RegClassID, 1, true },
    2779             :   { SP64, SP64Bits, 141, 1, sizeof(SP64Bits), Mips::SP64RegClassID, 1, false },
    2780             :   { MSA128B, MSA128BBits, 184, 32, sizeof(MSA128BBits), Mips::MSA128BRegClassID, 1, true },
    2781             :   { MSA128D, MSA128DBits, 208, 32, sizeof(MSA128DBits), Mips::MSA128DRegClassID, 1, true },
    2782             :   { MSA128H, MSA128HBits, 216, 32, sizeof(MSA128HBits), Mips::MSA128HRegClassID, 1, true },
    2783             :   { MSA128W, MSA128WBits, 623, 32, sizeof(MSA128WBits), Mips::MSA128WRegClassID, 1, true },
    2784             :   { MSA128B_with_sub_64_in_OddSP, MSA128B_with_sub_64_in_OddSPBits, 406, 16, sizeof(MSA128B_with_sub_64_in_OddSPBits), Mips::MSA128B_with_sub_64_in_OddSPRegClassID, 1, true },
    2785             :   { MSA128WEvens, MSA128WEvensBits, 1100, 16, sizeof(MSA128WEvensBits), Mips::MSA128WEvensRegClassID, 1, true },
    2786             :   { ACC128, ACC128Bits, 177, 1, sizeof(ACC128Bits), Mips::ACC128RegClassID, 1, true },
    2787             : };
    2788             : 
    2789             : // Mips Dwarf<->LLVM register mappings.
    2790             : extern const MCRegisterInfo::DwarfLLVMRegPair MipsDwarfFlavour0Dwarf2L[] = {
    2791             :   { 0U, Mips::ZERO_64 },
    2792             :   { 1U, Mips::AT_64 },
    2793             :   { 2U, Mips::V0_64 },
    2794             :   { 3U, Mips::V1_64 },
    2795             :   { 4U, Mips::A0_64 },
    2796             :   { 5U, Mips::A1_64 },
    2797             :   { 6U, Mips::A2_64 },
    2798             :   { 7U, Mips::A3_64 },
    2799             :   { 8U, Mips::T0_64 },
    2800             :   { 9U, Mips::T1_64 },
    2801             :   { 10U, Mips::T2_64 },
    2802             :   { 11U, Mips::T3_64 },
    2803             :   { 12U, Mips::T4_64 },
    2804             :   { 13U, Mips::T5_64 },
    2805             :   { 14U, Mips::T6_64 },
    2806             :   { 15U, Mips::T7_64 },
    2807             :   { 16U, Mips::S0_64 },
    2808             :   { 17U, Mips::S1_64 },
    2809             :   { 18U, Mips::S2_64 },
    2810             :   { 19U, Mips::S3_64 },
    2811             :   { 20U, Mips::S4_64 },
    2812             :   { 21U, Mips::S5_64 },
    2813             :   { 22U, Mips::S6_64 },
    2814             :   { 23U, Mips::S7_64 },
    2815             :   { 24U, Mips::T8_64 },
    2816             :   { 25U, Mips::T9_64 },
    2817             :   { 26U, Mips::K0_64 },
    2818             :   { 27U, Mips::K1_64 },
    2819             :   { 28U, Mips::GP_64 },
    2820             :   { 29U, Mips::SP_64 },
    2821             :   { 30U, Mips::FP_64 },
    2822             :   { 31U, Mips::RA_64 },
    2823             :   { 32U, Mips::D0_64 },
    2824             :   { 33U, Mips::D1_64 },
    2825             :   { 34U, Mips::D2_64 },
    2826             :   { 35U, Mips::D3_64 },
    2827             :   { 36U, Mips::D4_64 },
    2828             :   { 37U, Mips::D5_64 },
    2829             :   { 38U, Mips::D6_64 },
    2830             :   { 39U, Mips::D7_64 },
    2831             :   { 40U, Mips::D8_64 },
    2832             :   { 41U, Mips::D9_64 },
    2833             :   { 42U, Mips::D10_64 },
    2834             :   { 43U, Mips::D11_64 },
    2835             :   { 44U, Mips::D12_64 },
    2836             :   { 45U, Mips::D13_64 },
    2837             :   { 46U, Mips::D14_64 },
    2838             :   { 47U, Mips::D15_64 },
    2839             :   { 48U, Mips::D16_64 },
    2840             :   { 49U, Mips::D17_64 },
    2841             :   { 50U, Mips::D18_64 },
    2842             :   { 51U, Mips::D19_64 },
    2843             :   { 52U, Mips::D20_64 },
    2844             :   { 53U, Mips::D21_64 },
    2845             :   { 54U, Mips::D22_64 },
    2846             :   { 55U, Mips::D23_64 },
    2847             :   { 56U, Mips::D24_64 },
    2848             :   { 57U, Mips::D25_64 },
    2849             :   { 58U, Mips::D26_64 },
    2850             :   { 59U, Mips::D27_64 },
    2851             :   { 60U, Mips::D28_64 },
    2852             :   { 61U, Mips::D29_64 },
    2853             :   { 62U, Mips::D30_64 },
    2854             :   { 63U, Mips::D31_64 },
    2855             :   { 64U, Mips::HI0 },
    2856             :   { 65U, Mips::LO0 },
    2857             :   { 176U, Mips::HI1 },
    2858             :   { 177U, Mips::LO1 },
    2859             :   { 178U, Mips::HI2 },
    2860             :   { 179U, Mips::LO2 },
    2861             :   { 180U, Mips::HI3 },
    2862             :   { 181U, Mips::LO3 },
    2863             : };
    2864             : extern const unsigned MipsDwarfFlavour0Dwarf2LSize = array_lengthof(MipsDwarfFlavour0Dwarf2L);
    2865             : 
    2866             : extern const MCRegisterInfo::DwarfLLVMRegPair MipsEHFlavour0Dwarf2L[] = {
    2867             :   { 0U, Mips::ZERO_64 },
    2868             :   { 1U, Mips::AT_64 },
    2869             :   { 2U, Mips::V0_64 },
    2870             :   { 3U, Mips::V1_64 },
    2871             :   { 4U, Mips::A0_64 },
    2872             :   { 5U, Mips::A1_64 },
    2873             :   { 6U, Mips::A2_64 },
    2874             :   { 7U, Mips::A3_64 },
    2875             :   { 8U, Mips::T0_64 },
    2876             :   { 9U, Mips::T1_64 },
    2877             :   { 10U, Mips::T2_64 },
    2878             :   { 11U, Mips::T3_64 },
    2879             :   { 12U, Mips::T4_64 },
    2880             :   { 13U, Mips::T5_64 },
    2881             :   { 14U, Mips::T6_64 },
    2882             :   { 15U, Mips::T7_64 },
    2883             :   { 16U, Mips::S0_64 },
    2884             :   { 17U, Mips::S1_64 },
    2885             :   { 18U, Mips::S2_64 },
    2886             :   { 19U, Mips::S3_64 },
    2887             :   { 20U, Mips::S4_64 },
    2888             :   { 21U, Mips::S5_64 },
    2889             :   { 22U, Mips::S6_64 },
    2890             :   { 23U, Mips::S7_64 },
    2891             :   { 24U, Mips::T8_64 },
    2892             :   { 25U, Mips::T9_64 },
    2893             :   { 26U, Mips::K0_64 },
    2894             :   { 27U, Mips::K1_64 },
    2895             :   { 28U, Mips::GP_64 },
    2896             :   { 29U, Mips::SP_64 },
    2897             :   { 30U, Mips::FP_64 },
    2898             :   { 31U, Mips::RA_64 },
    2899             :   { 32U, Mips::D0_64 },
    2900             :   { 33U, Mips::D1_64 },
    2901             :   { 34U, Mips::D2_64 },
    2902             :   { 35U, Mips::D3_64 },
    2903             :   { 36U, Mips::D4_64 },
    2904             :   { 37U, Mips::D5_64 },
    2905             :   { 38U, Mips::D6_64 },
    2906             :   { 39U, Mips::D7_64 },
    2907             :   { 40U, Mips::D8_64 },
    2908             :   { 41U, Mips::D9_64 },
    2909             :   { 42U, Mips::D10_64 },
    2910             :   { 43U, Mips::D11_64 },
    2911             :   { 44U, Mips::D12_64 },
    2912             :   { 45U, Mips::D13_64 },
    2913             :   { 46U, Mips::D14_64 },
    2914             :   { 47U, Mips::D15_64 },
    2915             :   { 48U, Mips::D16_64 },
    2916             :   { 49U, Mips::D17_64 },
    2917             :   { 50U, Mips::D18_64 },
    2918             :   { 51U, Mips::D19_64 },
    2919             :   { 52U, Mips::D20_64 },
    2920             :   { 53U, Mips::D21_64 },
    2921             :   { 54U, Mips::D22_64 },
    2922             :   { 55U, Mips::D23_64 },
    2923             :   { 56U, Mips::D24_64 },
    2924             :   { 57U, Mips::D25_64 },
    2925             :   { 58U, Mips::D26_64 },
    2926             :   { 59U, Mips::D27_64 },
    2927             :   { 60U, Mips::D28_64 },
    2928             :   { 61U, Mips::D29_64 },
    2929             :   { 62U, Mips::D30_64 },
    2930             :   { 63U, Mips::D31_64 },
    2931             :   { 64U, Mips::HI0 },
    2932             :   { 65U, Mips::LO0 },
    2933             :   { 176U, Mips::HI1 },
    2934             :   { 177U, Mips::LO1 },
    2935             :   { 178U, Mips::HI2 },
    2936             :   { 179U, Mips::LO2 },
    2937             :   { 180U, Mips::HI3 },
    2938             :   { 181U, Mips::LO3 },
    2939             : };
    2940             : extern const unsigned MipsEHFlavour0Dwarf2LSize = array_lengthof(MipsEHFlavour0Dwarf2L);
    2941             : 
    2942             : extern const MCRegisterInfo::DwarfLLVMRegPair MipsDwarfFlavour0L2Dwarf[] = {
    2943             :   { Mips::AT, 1U },
    2944             :   { Mips::FP, 30U },
    2945             :   { Mips::GP, 28U },
    2946             :   { Mips::RA, 31U },
    2947             :   { Mips::SP, 29U },
    2948             :   { Mips::ZERO, 0U },
    2949             :   { Mips::A0, 4U },
    2950             :   { Mips::A1, 5U },
    2951             :   { Mips::A2, 6U },
    2952             :   { Mips::A3, 7U },
    2953             :   { Mips::AT_64, 1U },
    2954             :   { Mips::F0, 32U },
    2955             :   { Mips::F1, 33U },
    2956             :   { Mips::F2, 34U },
    2957             :   { Mips::F3, 35U },
    2958             :   { Mips::F4, 36U },
    2959             :   { Mips::F5, 37U },
    2960             :   { Mips::F6, 38U },
    2961             :   { Mips::F7, 39U },
    2962             :   { Mips::F8, 40U },
    2963             :   { Mips::F9, 41U },
    2964             :   { Mips::F10, 42U },
    2965             :   { Mips::F11, 43U },
    2966             :   { Mips::F12, 44U },
    2967             :   { Mips::F13, 45U },
    2968             :   { Mips::F14, 46U },
    2969             :   { Mips::F15, 47U },
    2970             :   { Mips::F16, 48U },
    2971             :   { Mips::F17, 49U },
    2972             :   { Mips::F18, 50U },
    2973             :   { Mips::F19, 51U },
    2974             :   { Mips::F20, 52U },
    2975             :   { Mips::F21, 53U },
    2976             :   { Mips::F22, 54U },
    2977             :   { Mips::F23, 55U },
    2978             :   { Mips::F24, 56U },
    2979             :   { Mips::F25, 57U },
    2980             :   { Mips::F26, 58U },
    2981             :   { Mips::F27, 59U },
    2982             :   { Mips::F28, 60U },
    2983             :   { Mips::F29, 61U },
    2984             :   { Mips::F30, 62U },
    2985             :   { Mips::F31, 63U },
    2986             :   { Mips::FP_64, 30U },
    2987             :   { Mips::F_HI0, 32U },
    2988             :   { Mips::F_HI1, 33U },
    2989             :   { Mips::F_HI2, 34U },
    2990             :   { Mips::F_HI3, 35U },
    2991             :   { Mips::F_HI4, 36U },
    2992             :   { Mips::F_HI5, 37U },
    2993             :   { Mips::F_HI6, 38U },
    2994             :   { Mips::F_HI7, 39U },
    2995             :   { Mips::F_HI8, 40U },
    2996             :   { Mips::F_HI9, 41U },
    2997             :   { Mips::F_HI10, 42U },
    2998             :   { Mips::F_HI11, 43U },
    2999             :   { Mips::F_HI12, 44U },
    3000             :   { Mips::F_HI13, 45U },
    3001             :   { Mips::F_HI14, 46U },
    3002             :   { Mips::F_HI15, 47U },
    3003             :   { Mips::F_HI16, 48U },
    3004             :   { Mips::F_HI17, 49U },
    3005             :   { Mips::F_HI18, 50U },
    3006             :   { Mips::F_HI19, 51U },
    3007             :   { Mips::F_HI20, 52U },
    3008             :   { Mips::F_HI21, 53U },
    3009             :   { Mips::F_HI22, 54U },
    3010             :   { Mips::F_HI23, 55U },
    3011             :   { Mips::F_HI24, 56U },
    3012             :   { Mips::F_HI25, 57U },
    3013             :   { Mips::F_HI26, 58U },
    3014             :   { Mips::F_HI27, 59U },
    3015             :   { Mips::F_HI28, 60U },
    3016             :   { Mips::F_HI29, 61U },
    3017             :   { Mips::F_HI30, 62U },
    3018             :   { Mips::F_HI31, 63U },
    3019             :   { Mips::GP_64, 28U },
    3020             :   { Mips::HI0, 64U },
    3021             :   { Mips::HI1, 176U },
    3022             :   { Mips::HI2, 178U },
    3023             :   { Mips::HI3, 180U },
    3024             :   { Mips::K0, 26U },
    3025             :   { Mips::K1, 27U },
    3026             :   { Mips::LO0, 65U },
    3027             :   { Mips::LO1, 177U },
    3028             :   { Mips::LO2, 179U },
    3029             :   { Mips::LO3, 181U },
    3030             :   { Mips::RA_64, 31U },
    3031             :   { Mips::S0, 16U },
    3032             :   { Mips::S1, 17U },
    3033             :   { Mips::S2, 18U },
    3034             :   { Mips::S3, 19U },
    3035             :   { Mips::S4, 20U },
    3036             :   { Mips::S5, 21U },
    3037             :   { Mips::S6, 22U },
    3038             :   { Mips::S7, 23U },
    3039             :   { Mips::SP_64, 29U },
    3040             :   { Mips::T0, 8U },
    3041             :   { Mips::T1, 9U },
    3042             :   { Mips::T2, 10U },
    3043             :   { Mips::T3, 11U },
    3044             :   { Mips::T4, 12U },
    3045             :   { Mips::T5, 13U },
    3046             :   { Mips::T6, 14U },
    3047             :   { Mips::T7, 15U },
    3048             :   { Mips::T8, 24U },
    3049             :   { Mips::T9, 25U },
    3050             :   { Mips::V0, 2U },
    3051             :   { Mips::V1, 3U },
    3052             :   { Mips::W0, 32U },
    3053             :   { Mips::W1, 33U },
    3054             :   { Mips::W2, 34U },
    3055             :   { Mips::W3, 35U },
    3056             :   { Mips::W4, 36U },
    3057             :   { Mips::W5, 37U },
    3058             :   { Mips::W6, 38U },
    3059             :   { Mips::W7, 39U },
    3060             :   { Mips::W8, 40U },
    3061             :   { Mips::W9, 41U },
    3062             :   { Mips::W10, 42U },
    3063             :   { Mips::W11, 43U },
    3064             :   { Mips::W12, 44U },
    3065             :   { Mips::W13, 45U },
    3066             :   { Mips::W14, 46U },
    3067             :   { Mips::W15, 47U },
    3068             :   { Mips::W16, 48U },
    3069             :   { Mips::W17, 49U },
    3070             :   { Mips::W18, 50U },
    3071             :   { Mips::W19, 51U },
    3072             :   { Mips::W20, 52U },
    3073             :   { Mips::W21, 53U },
    3074             :   { Mips::W22, 54U },
    3075             :   { Mips::W23, 55U },
    3076             :   { Mips::W24, 56U },
    3077             :   { Mips::W25, 57U },
    3078             :   { Mips::W26, 58U },
    3079             :   { Mips::W27, 59U },
    3080             :   { Mips::W28, 60U },
    3081             :   { Mips::W29, 61U },
    3082             :   { Mips::W30, 62U },
    3083             :   { Mips::W31, 63U },
    3084             :   { Mips::ZERO_64, 0U },
    3085             :   { Mips::A0_64, 4U },
    3086             :   { Mips::A1_64, 5U },
    3087             :   { Mips::A2_64, 6U },
    3088             :   { Mips::A3_64, 7U },
    3089             :   { Mips::D0_64, 32U },
    3090             :   { Mips::D1_64, 33U },
    3091             :   { Mips::D2_64, 34U },
    3092             :   { Mips::D3_64, 35U },
    3093             :   { Mips::D4_64, 36U },
    3094             :   { Mips::D5_64, 37U },
    3095             :   { Mips::D6_64, 38U },
    3096             :   { Mips::D7_64, 39U },
    3097             :   { Mips::D8_64, 40U },
    3098             :   { Mips::D9_64, 41U },
    3099             :   { Mips::D10_64, 42U },
    3100             :   { Mips::D11_64, 43U },
    3101             :   { Mips::D12_64, 44U },
    3102             :   { Mips::D13_64, 45U },
    3103             :   { Mips::D14_64, 46U },
    3104             :   { Mips::D15_64, 47U },
    3105             :   { Mips::D16_64, 48U },
    3106             :   { Mips::D17_64, 49U },
    3107             :   { Mips::D18_64, 50U },
    3108             :   { Mips::D19_64, 51U },
    3109             :   { Mips::D20_64, 52U },
    3110             :   { Mips::D21_64, 53U },
    3111             :   { Mips::D22_64, 54U },
    3112             :   { Mips::D23_64, 55U },
    3113             :   { Mips::D24_64, 56U },
    3114             :   { Mips::D25_64, 57U },
    3115             :   { Mips::D26_64, 58U },
    3116             :   { Mips::D27_64, 59U },
    3117             :   { Mips::D28_64, 60U },
    3118             :   { Mips::D29_64, 61U },
    3119             :   { Mips::D30_64, 62U },
    3120             :   { Mips::D31_64, 63U },
    3121             :   { Mips::K0_64, 26U },
    3122             :   { Mips::K1_64, 27U },
    3123             :   { Mips::S0_64, 16U },
    3124             :   { Mips::S1_64, 17U },
    3125             :   { Mips::S2_64, 18U },
    3126             :   { Mips::S3_64, 19U },
    3127             :   { Mips::S4_64, 20U },
    3128             :   { Mips::S5_64, 21U },
    3129             :   { Mips::S6_64, 22U },
    3130             :   { Mips::S7_64, 23U },
    3131             :   { Mips::T0_64, 8U },
    3132             :   { Mips::T1_64, 9U },
    3133             :   { Mips::T2_64, 10U },
    3134             :   { Mips::T3_64, 11U },
    3135             :   { Mips::T4_64, 12U },
    3136             :   { Mips::T5_64, 13U },
    3137             :   { Mips::T6_64, 14U },
    3138             :   { Mips::T7_64, 15U },
    3139             :   { Mips::T8_64, 24U },
    3140             :   { Mips::T9_64, 25U },
    3141             :   { Mips::V0_64, 2U },
    3142             :   { Mips::V1_64, 3U },
    3143             : };
    3144             : extern const unsigned MipsDwarfFlavour0L2DwarfSize = array_lengthof(MipsDwarfFlavour0L2Dwarf);
    3145             : 
    3146             : extern const MCRegisterInfo::DwarfLLVMRegPair MipsEHFlavour0L2Dwarf[] = {
    3147             :   { Mips::AT, 1U },
    3148             :   { Mips::FP, 30U },
    3149             :   { Mips::GP, 28U },
    3150             :   { Mips::RA, 31U },
    3151             :   { Mips::SP, 29U },
    3152             :   { Mips::ZERO, 0U },
    3153             :   { Mips::A0, 4U },
    3154             :   { Mips::A1, 5U },
    3155             :   { Mips::A2, 6U },
    3156             :   { Mips::A3, 7U },
    3157             :   { Mips::AT_64, 1U },
    3158             :   { Mips::F0, 32U },
    3159             :   { Mips::F1, 33U },
    3160             :   { Mips::F2, 34U },
    3161             :   { Mips::F3, 35U },
    3162             :   { Mips::F4, 36U },
    3163             :   { Mips::F5, 37U },
    3164             :   { Mips::F6, 38U },
    3165             :   { Mips::F7, 39U },
    3166             :   { Mips::F8, 40U },
    3167             :   { Mips::F9, 41U },
    3168             :   { Mips::F10, 42U },
    3169             :   { Mips::F11, 43U },
    3170             :   { Mips::F12, 44U },
    3171             :   { Mips::F13, 45U },
    3172             :   { Mips::F14, 46U },
    3173             :   { Mips::F15, 47U },
    3174             :   { Mips::F16, 48U },
    3175             :   { Mips::F17, 49U },
    3176             :   { Mips::F18, 50U },
    3177             :   { Mips::F19, 51U },
    3178             :   { Mips::F20, 52U },
    3179             :   { Mips::F21, 53U },
    3180             :   { Mips::F22, 54U },
    3181             :   { Mips::F23, 55U },
    3182             :   { Mips::F24, 56U },
    3183             :   { Mips::F25, 57U },
    3184             :   { Mips::F26, 58U },
    3185             :   { Mips::F27, 59U },
    3186             :   { Mips::F28, 60U },
    3187             :   { Mips::F29, 61U },
    3188             :   { Mips::F30, 62U },
    3189             :   { Mips::F31, 63U },
    3190             :   { Mips::FP_64, 30U },
    3191             :   { Mips::F_HI0, 32U },
    3192             :   { Mips::F_HI1, 33U },
    3193             :   { Mips::F_HI2, 34U },
    3194             :   { Mips::F_HI3, 35U },
    3195             :   { Mips::F_HI4, 36U },
    3196             :   { Mips::F_HI5, 37U },
    3197             :   { Mips::F_HI6, 38U },
    3198             :   { Mips::F_HI7, 39U },
    3199             :   { Mips::F_HI8, 40U },
    3200             :   { Mips::F_HI9, 41U },
    3201             :   { Mips::F_HI10, 42U },
    3202             :   { Mips::F_HI11, 43U },
    3203             :   { Mips::F_HI12, 44U },
    3204             :   { Mips::F_HI13, 45U },
    3205             :   { Mips::F_HI14, 46U },
    3206             :   { Mips::F_HI15, 47U },
    3207             :   { Mips::F_HI16, 48U },
    3208             :   { Mips::F_HI17, 49U },
    3209             :   { Mips::F_HI18, 50U },
    3210             :   { Mips::F_HI19, 51U },
    3211             :   { Mips::F_HI20, 52U },
    3212             :   { Mips::F_HI21, 53U },
    3213             :   { Mips::F_HI22, 54U },
    3214             :   { Mips::F_HI23, 55U },
    3215             :   { Mips::F_HI24, 56U },
    3216             :   { Mips::F_HI25, 57U },
    3217             :   { Mips::F_HI26, 58U },
    3218             :   { Mips::F_HI27, 59U },
    3219             :   { Mips::F_HI28, 60U },
    3220             :   { Mips::F_HI29, 61U },
    3221             :   { Mips::F_HI30, 62U },
    3222             :   { Mips::F_HI31, 63U },
    3223             :   { Mips::GP_64, 28U },
    3224             :   { Mips::HI0, 64U },
    3225             :   { Mips::HI1, 176U },
    3226             :   { Mips::HI2, 178U },
    3227             :   { Mips::HI3, 180U },
    3228             :   { Mips::K0, 26U },
    3229             :   { Mips::K1, 27U },
    3230             :   { Mips::LO0, 65U },
    3231             :   { Mips::LO1, 177U },
    3232             :   { Mips::LO2, 179U },
    3233             :   { Mips::LO3, 181U },
    3234             :   { Mips::RA_64, 31U },
    3235             :   { Mips::S0, 16U },
    3236             :   { Mips::S1, 17U },
    3237             :   { Mips::S2, 18U },
    3238             :   { Mips::S3, 19U },
    3239             :   { Mips::S4, 20U },
    3240             :   { Mips::S5, 21U },
    3241             :   { Mips::S6, 22U },
    3242             :   { Mips::S7, 23U },
    3243             :   { Mips::SP_64, 29U },
    3244             :   { Mips::T0, 8U },
    3245             :   { Mips::T1, 9U },
    3246             :   { Mips::T2, 10U },
    3247             :   { Mips::T3, 11U },
    3248             :   { Mips::T4, 12U },
    3249             :   { Mips::T5, 13U },
    3250             :   { Mips::T6, 14U },
    3251             :   { Mips::T7, 15U },
    3252             :   { Mips::T8, 24U },
    3253             :   { Mips::T9, 25U },
    3254             :   { Mips::V0, 2U },
    3255             :   { Mips::V1, 3U },
    3256             :   { Mips::W0, 32U },
    3257             :   { Mips::W1, 33U },
    3258             :   { Mips::W2, 34U },
    3259             :   { Mips::W3, 35U },
    3260             :   { Mips::W4, 36U },
    3261             :   { Mips::W5, 37U },
    3262             :   { Mips::W6, 38U },
    3263             :   { Mips::W7, 39U },
    3264             :   { Mips::W8, 40U },
    3265             :   { Mips::W9, 41U },
    3266             :   { Mips::W10, 42U },
    3267             :   { Mips::W11, 43U },
    3268             :   { Mips::W12, 44U },
    3269             :   { Mips::W13, 45U },
    3270             :   { Mips::W14, 46U },
    3271             :   { Mips::W15, 47U },
    3272             :   { Mips::W16, 48U },
    3273             :   { Mips::W17, 49U },
    3274             :   { Mips::W18, 50U },
    3275             :   { Mips::W19, 51U },
    3276             :   { Mips::W20, 52U },
    3277             :   { Mips::W21, 53U },
    3278             :   { Mips::W22, 54U },
    3279             :   { Mips::W23, 55U },
    3280             :   { Mips::W24, 56U },
    3281             :   { Mips::W25, 57U },
    3282             :   { Mips::W26, 58U },
    3283             :   { Mips::W27, 59U },
    3284             :   { Mips::W28, 60U },
    3285             :   { Mips::W29, 61U },
    3286             :   { Mips::W30, 62U },
    3287             :   { Mips::W31, 63U },
    3288             :   { Mips::ZERO_64, 0U },
    3289             :   { Mips::A0_64, 4U },
    3290             :   { Mips::A1_64, 5U },
    3291             :   { Mips::A2_64, 6U },
    3292             :   { Mips::A3_64, 7U },
    3293             :   { Mips::D0_64, 32U },
    3294             :   { Mips::D1_64, 33U },
    3295             :   { Mips::D2_64, 34U },
    3296             :   { Mips::D3_64, 35U },
    3297             :   { Mips::D4_64, 36U },
    3298             :   { Mips::D5_64, 37U },
    3299             :   { Mips::D6_64, 38U },
    3300             :   { Mips::D7_64, 39U },
    3301             :   { Mips::D8_64, 40U },
    3302             :   { Mips::D9_64, 41U },
    3303             :   { Mips::D10_64, 42U },
    3304             :   { Mips::D11_64, 43U },
    3305             :   { Mips::D12_64, 44U },
    3306             :   { Mips::D13_64, 45U },
    3307             :   { Mips::D14_64, 46U },
    3308             :   { Mips::D15_64, 47U },
    3309             :   { Mips::D16_64, 48U },
    3310             :   { Mips::D17_64, 49U },
    3311             :   { Mips::D18_64, 50U },
    3312             :   { Mips::D19_64, 51U },
    3313             :   { Mips::D20_64, 52U },
    3314             :   { Mips::D21_64, 53U },
    3315             :   { Mips::D22_64, 54U },
    3316             :   { Mips::D23_64, 55U },
    3317             :   { Mips::D24_64, 56U },
    3318             :   { Mips::D25_64, 57U },
    3319             :   { Mips::D26_64, 58U },
    3320             :   { Mips::D27_64, 59U },
    3321             :   { Mips::D28_64, 60U },
    3322             :   { Mips::D29_64, 61U },
    3323             :   { Mips::D30_64, 62U },
    3324             :   { Mips::D31_64, 63U },
    3325             :   { Mips::K0_64, 26U },
    3326             :   { Mips::K1_64, 27U },
    3327             :   { Mips::S0_64, 16U },
    3328             :   { Mips::S1_64, 17U },
    3329             :   { Mips::S2_64, 18U },
    3330             :   { Mips::S3_64, 19U },
    3331             :   { Mips::S4_64, 20U },
    3332             :   { Mips::S5_64, 21U },
    3333             :   { Mips::S6_64, 22U },
    3334             :   { Mips::S7_64, 23U },
    3335             :   { Mips::T0_64, 8U },
    3336             :   { Mips::T1_64, 9U },
    3337             :   { Mips::T2_64, 10U },
    3338             :   { Mips::T3_64, 11U },
    3339             :   { Mips::T4_64, 12U },
    3340             :   { Mips::T5_64, 13U },
    3341             :   { Mips::T6_64, 14U },
    3342             :   { Mips::T7_64, 15U },
    3343             :   { Mips::T8_64, 24U },
    3344             :   { Mips::T9_64, 25U },
    3345             :   { Mips::V0_64, 2U },
    3346             :   { Mips::V1_64, 3U },
    3347             : };
    3348             : extern const unsigned MipsEHFlavour0L2DwarfSize = array_lengthof(MipsEHFlavour0L2Dwarf);
    3349             : 
    3350             : extern const uint16_t MipsRegEncodingTable[] = {
    3351             :   0,
    3352             :   1,
    3353             :   0,
    3354             :   0,
    3355             :   0,
    3356             :   0,
    3357             :   0,
    3358             :   0,
    3359             :   30,
    3360             :   28,
    3361             :   2,
    3362             :   1,
    3363             :   0,
    3364             :   6,
    3365             :   4,
    3366             :   5,
    3367             :   3,
    3368             :   7,
    3369             :   0,
    3370             :   31,
    3371             :   29,
    3372             :   0,
    3373             :   4,
    3374             :   5,
    3375             :   6,
    3376             :   7,
    3377             :   0,
    3378             :   1,
    3379             :   2,
    3380             :   3,
    3381             :   1,
    3382             :   0,
    3383             :   1,
    3384             :   2,
    3385             :   3,
    3386             :   4,
    3387             :   5,
    3388             :   6,
    3389             :   7,
    3390             :   8,
    3391             :   9,
    3392             :   0,
    3393             :   1,
    3394             :   2,
    3395             :   3,
    3396             :   4,
    3397             :   5,
    3398             :   6,
    3399             :   7,
    3400             :   8,
    3401             :   9,
    3402             :   0,
    3403             :   1,
    3404             :   2,
    3405             :   3,
    3406             :   4,
    3407             :   5,
    3408             :   6,
    3409             :   7,
    3410             :   8,
    3411             :   9,
    3412             :   10,
    3413             :   11,
    3414             :   12,
    3415             :   13,
    3416             :   14,
    3417             :   15,
    3418             :   16,
    3419             :   17,
    3420             :   18,
    3421             :   19,
    3422             :   20,
    3423             :   21,
    3424             :   22,
    3425             :   23,
    3426             :   24,
    3427             :   25,
    3428             :   26,
    3429             :   27,
    3430             :   28,
    3431             :   29,
    3432             :   30,
    3433             :   31,
    3434             :   10,
    3435             :   11,
    3436             :   12,
    3437             :   13,
    3438             :   14,
    3439             :   15,
    3440             :   16,
    3441             :   17,
    3442             :   18,
    3443             :   19,
    3444             :   20,
    3445             :   21,
    3446             :   22,
    3447             :   23,
    3448             :   24,
    3449             :   25,
    3450             :   26,
    3451             :   27,
    3452             :   28,
    3453             :   29,
    3454             :   30,
    3455             :   31,
    3456             :   10,
    3457             :   11,
    3458             :   12,
    3459             :   13,
    3460             :   14,
    3461             :   15,
    3462             :   16,
    3463             :   17,
    3464             :   18,
    3465             :   19,
    3466             :   20,
    3467             :   21,
    3468             :   22,
    3469             :   23,
    3470             :   24,
    3471             :   25,
    3472             :   26,
    3473             :   27,
    3474             :   28,
    3475             :   29,
    3476             :   30,
    3477             :   31,
    3478             :   0,
    3479             :   2,
    3480             :   4,
    3481             :   6,
    3482             :   8,
    3483             :   10,
    3484             :   12,
    3485             :   14,
    3486             :   16,
    3487             :   18,
    3488             :   20,
    3489             :   22,
    3490             :   24,
    3491             :   26,
    3492             :   28,
    3493             :   30,
    3494             :   0,
    3495             :   0,
    3496             :   0,
    3497             :   0,
    3498             :   0,
    3499             :   1,
    3500             :   2,
    3501             :   3,
    3502             :   4,
    3503             :   5,
    3504             :   6,
    3505             :   7,
    3506             :   8,
    3507             :   9,
    3508             :   10,
    3509             :   11,
    3510             :   12,
    3511             :   13,
    3512             :   14,
    3513             :   15,
    3514             :   16,
    3515             :   17,
    3516             :   18,
    3517             :   19,
    3518             :   20,
    3519             :   21,
    3520             :   22,
    3521             :   23,
    3522             :   24,
    3523             :   25,
    3524             :   26,
    3525             :   27,
    3526             :   28,
    3527             :   29,
    3528             :   30,
    3529             :   31,
    3530             :   0,
    3531             :   1,
    3532             :   2,
    3533             :   3,
    3534             :   4,
    3535             :   5,
    3536             :   6,
    3537             :   7,
    3538             :   0,
    3539             :   1,
    3540             :   2,
    3541             :   3,
    3542             :   4,
    3543             :   5,
    3544             :   6,
    3545             :   7,
    3546             :   8,
    3547             :   9,
    3548             :   10,
    3549             :   11,
    3550             :   12,
    3551             :   13,
    3552             :   14,
    3553             :   15,
    3554             :   16,
    3555             :   17,
    3556             :   18,
    3557             :   19,
    3558             :   20,
    3559             :   21,
    3560             :   22,
    3561             :   23,
    3562             :   24,
    3563             :   25,
    3564             :   26,
    3565             :   27,
    3566             :   28,
    3567             :   29,
    3568             :   30,
    3569             :   31,
    3570             :   30,
    3571             :   0,
    3572             :   1,
    3573             :   2,
    3574             :   3,
    3575             :   4,
    3576             :   5,
    3577             :   6,
    3578             :   7,
    3579             :   8,
    3580             :   9,
    3581             :   10,
    3582             :   11,
    3583             :   12,
    3584             :   13,
    3585             :   14,
    3586             :   15,
    3587             :   16,
    3588             :   17,
    3589             :   18,
    3590             :   19,
    3591             :   20,
    3592             :   21,
    3593             :   22,
    3594             :   23,
    3595             :   24,
    3596             :   25,
    3597             :   26,
    3598             :   27,
    3599             :   28,
    3600             :   29,
    3601             :   30,
    3602             :   31,
    3603             :   28,
    3604             :   0,
    3605             :   1,
    3606             :   2,
    3607             :   3,
    3608             :   0,
    3609             :   1,
    3610             :   2,
    3611             :   3,
    3612             :   4,
    3613             :   5,
    3614             :   6,
    3615             :   7,
    3616             :   8,
    3617             :   9,
    3618             :   10,
    3619             :   11,
    3620             :   12,
    3621             :   13,
    3622             :   14,
    3623             :   15,
    3624             :   16,
    3625             :   17,
    3626             :   18,
    3627             :   19,
    3628             :   20,
    3629             :   21,
    3630             :   22,
    3631             :   23,
    3632             :   24,
    3633             :   25,
    3634             :   26,
    3635             :   27,
    3636             :   28,
    3637             :   29,
    3638             :   30,
    3639             :   31,
    3640             :   26,
    3641             :   27,
    3642             :   0,
    3643             :   1,
    3644             :   2,
    3645             :   3,
    3646             :   0,
    3647             :   1,
    3648             :   2,
    3649             :   0,
    3650             :   1,
    3651             :   2,
    3652             :   31,
    3653             :   16,
    3654             :   17,
    3655             :   18,
    3656             :   19,
    3657             :   20,
    3658             :   21,
    3659             :   22,
    3660             :   23,
    3661             :   29,
    3662             :   8,
    3663             :   9,
    3664             :   10,
    3665             :   11,
    3666             :   12,
    3667             :   13,
    3668             :   14,
    3669             :   15,
    3670             :   24,
    3671             :   25,
    3672             :   2,
    3673             :   3,
    3674             :   0,
    3675             :   1,
    3676             :   2,
    3677             :   3,
    3678             :   4,
    3679             :   5,
    3680             :   6,
    3681             :   7,
    3682             :   8,
    3683             :   9,
    3684             :   10,
    3685             :   11,
    3686             :   12,
    3687             :   13,
    3688             :   14,
    3689             :   15,
    3690             :   16,
    3691             :   17,
    3692             :   18,
    3693             :   19,
    3694             :   20,
    3695             :   21,
    3696             :   22,
    3697             :   23,
    3698             :   24,
    3699             :   25,
    3700             :   26,
    3701             :   27,
    3702             :   28,
    3703             :   29,
    3704             :   30,
    3705             :   31,
    3706             :   0,
    3707             :   4,
    3708             :   5,
    3709             :   6,
    3710             :   7,
    3711             :   0,
    3712             :   0,
    3713             :   1,
    3714             :   2,
    3715             :   3,
    3716             :   4,
    3717             :   5,
    3718             :   6,
    3719             :   7,
    3720             :   8,
    3721             :   9,
    3722             :   10,
    3723             :   11,
    3724             :   12,
    3725             :   13,
    3726             :   14,
    3727             :   15,
    3728             :   16,
    3729             :   17,
    3730             :   18,
    3731             :   19,
    3732             :   20,
    3733             :   21,
    3734             :   22,
    3735             :   23,
    3736             :   24,
    3737             :   25,
    3738             :   26,
    3739             :   27,
    3740             :   28,
    3741             :   29,
    3742             :   30,
    3743             :   31,
    3744             :   0,
    3745             :   0,
    3746             :   26,
    3747             :   27,
    3748             :   0,
    3749             :   16,
    3750             :   17,
    3751             :   18,
    3752             :   19,
    3753             :   20,
    3754             :   21,
    3755             :   22,
    3756             :   23,
    3757             :   8,
    3758             :   9,
    3759             :   10,
    3760             :   11,
    3761             :   12,
    3762             :   13,
    3763             :   14,
    3764             :   15,
    3765             :   24,
    3766             :   25,
    3767             :   2,
    3768             :   3,
    3769             : };
    3770             : static inline void InitMipsMCRegisterInfo(MCRegisterInfo *RI, unsigned RA, unsigned DwarfFlavour = 0, unsigned EHFlavour = 0, unsigned PC = 0) {
    3771             :   RI->InitMCRegisterInfo(MipsRegDesc, 418, RA, PC, MipsMCRegisterClasses, 81, MipsRegUnitRoots, 297, MipsRegDiffLists, MipsLaneMaskLists, MipsRegStrings, MipsRegClassStrings, MipsSubRegIdxLists, 12,
    3772             : MipsSubRegIdxRanges, MipsRegEncodingTable);
    3773             : 
    3774             :   switch (DwarfFlavour) {
    3775             :   default:
    3776             :     llvm_unreachable("Unknown DWARF flavour");
    3777             :   case 0:
    3778             :     RI->mapDwarfRegsToLLVMRegs(MipsDwarfFlavour0Dwarf2L, MipsDwarfFlavour0Dwarf2LSize, false);
    3779             :     break;
    3780             :   }
    3781             :   switch (EHFlavour) {
    3782             :   default:
    3783             :     llvm_unreachable("Unknown DWARF flavour");
    3784             :   case 0:
    3785             :     RI->mapDwarfRegsToLLVMRegs(MipsEHFlavour0Dwarf2L, MipsEHFlavour0Dwarf2LSize, true);
    3786             :     break;
    3787             :   }
    3788             :   switch (DwarfFlavour) {
    3789             :   default:
    3790             :     llvm_unreachable("Unknown DWARF flavour");
    3791             :   case 0:
    3792             :     RI->mapLLVMRegsToDwarfRegs(MipsDwarfFlavour0L2Dwarf, MipsDwarfFlavour0L2DwarfSize, false);
    3793             :     break;
    3794             :   }
    3795             :   switch (EHFlavour) {
    3796             :   default:
    3797             :     llvm_unreachable("Unknown DWARF flavour");
    3798             :   case 0:
    3799             :     RI->mapLLVMRegsToDwarfRegs(MipsEHFlavour0L2Dwarf, MipsEHFlavour0L2DwarfSize, true);
    3800             :     break;
    3801             :   }
    3802             : }
    3803             : 
    3804             : } // end namespace llvm
    3805             : 
    3806             : #endif // GET_REGINFO_MC_DESC
    3807             : 
    3808             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
    3809             : |*                                                                            *|
    3810             : |* Register Information Header Fragment                                       *|
    3811             : |*                                                                            *|
    3812             : |* Automatically generated file, do not edit!                                 *|
    3813             : |*                                                                            *|
    3814             : \*===----------------------------------------------------------------------===*/
    3815             : 
    3816             : 
    3817             : #ifdef GET_REGINFO_HEADER
    3818             : #undef GET_REGINFO_HEADER
    3819             : 
    3820             : #include "llvm/CodeGen/TargetRegisterInfo.h"
    3821             : 
    3822             : namespace llvm {
    3823             : 
    3824             : class MipsFrameLowering;
    3825             : 
    3826             : struct MipsGenRegisterInfo : public TargetRegisterInfo {
    3827             :   explicit MipsGenRegisterInfo(unsigned RA, unsigned D = 0, unsigned E = 0,
    3828             :       unsigned PC = 0, unsigned HwMode = 0);
    3829             :   unsigned composeSubRegIndicesImpl(unsigned, unsigned) const override;
    3830             :   LaneBitmask composeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override;
    3831             :   LaneBitmask reverseComposeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override;
    3832             :   const TargetRegisterClass *getSubClassWithSubReg(const TargetRegisterClass*, unsigned) const override;
    3833             :   const RegClassWeight &getRegClassWeight(const TargetRegisterClass *RC) const override;
    3834             :   unsigned getRegUnitWeight(unsigned RegUnit) const override;
    3835             :   unsigned getNumRegPressureSets() const override;
    3836             :   const char *getRegPressureSetName(unsigned Idx) const override;
    3837             :   unsigned getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const override;
    3838             :   const int *getRegClassPressureSets(const TargetRegisterClass *RC) const override;
    3839             :   const int *getRegUnitPressureSets(unsigned RegUnit) const override;
    3840             :   ArrayRef<const char *> getRegMaskNames() const override;
    3841             :   ArrayRef<const uint32_t *> getRegMasks() const override;
    3842             :   /// Devirtualized TargetFrameLowering.
    3843             :   static const MipsFrameLowering *getFrameLowering(
    3844             :       const MachineFunction &MF);
    3845             : };
    3846             : 
    3847             : namespace Mips { // Register classes
    3848             :   extern const TargetRegisterClass MSA128F16RegClass;
    3849             :   extern const TargetRegisterClass MSA128F16_with_sub_64_in_OddSPRegClass;
    3850             :   extern const TargetRegisterClass OddSPRegClass;
    3851             :   extern const TargetRegisterClass CCRRegClass;
    3852             :   extern const TargetRegisterClass COP0RegClass;
    3853             :   extern const TargetRegisterClass COP2RegClass;
    3854             :   extern const TargetRegisterClass COP3RegClass;
    3855             :   extern const TargetRegisterClass DSPRRegClass;
    3856             :   extern const TargetRegisterClass FGR32RegClass;
    3857             :   extern const TargetRegisterClass FGRCCRegClass;
    3858             :   extern const TargetRegisterClass FGRH32RegClass;
    3859             :   extern const TargetRegisterClass GPR32RegClass;
    3860             :   extern const TargetRegisterClass HWRegsRegClass;
    3861             :   extern const TargetRegisterClass GPR32NONZERORegClass;
    3862             :   extern const TargetRegisterClass OddSP_with_sub_hiRegClass;
    3863             :   extern const TargetRegisterClass FGR32_and_OddSPRegClass;
    3864             :   extern const TargetRegisterClass FGRH32_and_OddSPRegClass;
    3865             :   extern const TargetRegisterClass OddSP_with_sub_hi_with_sub_hi_in_FGRH32RegClass;
    3866             :   extern const TargetRegisterClass CPU16RegsPlusSPRegClass;
    3867             :   extern const TargetRegisterClass CPU16RegsRegClass;
    3868             :   extern const TargetRegisterClass FCCRegClass;
    3869             :   extern const TargetRegisterClass GPRMM16RegClass;
    3870             :   extern const TargetRegisterClass GPRMM16MovePRegClass;
    3871             :   extern const TargetRegisterClass GPRMM16ZeroRegClass;
    3872             :   extern const TargetRegisterClass MSACtrlRegClass;
    3873             :   extern const TargetRegisterClass OddSP_with_sub_hi_with_sub_hi_in_FGR32RegClass;
    3874             :   extern const TargetRegisterClass CPU16Regs_and_GPRMM16ZeroRegClass;
    3875             :   extern const TargetRegisterClass GPR32NONZERO_and_GPRMM16MovePRegClass;
    3876             :   extern const TargetRegisterClass GPRMM16MovePPairSecondRegClass;
    3877             :   extern const TargetRegisterClass CPU16Regs_and_GPRMM16MovePRegClass;
    3878             :   extern const TargetRegisterClass GPRMM16MoveP_and_GPRMM16ZeroRegClass;
    3879             :   extern const TargetRegisterClass HI32DSPRegClass;
    3880             :   extern const TargetRegisterClass LO32DSPRegClass;
    3881             :   extern const TargetRegisterClass CPU16Regs_and_GPRMM16MovePPairSecondRegClass;
    3882             :   extern const TargetRegisterClass GPRMM16MovePPairFirstRegClass;
    3883             :   extern const TargetRegisterClass GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClass;
    3884             :   extern const TargetRegisterClass GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClass;
    3885             :   extern const TargetRegisterClass CPURARegRegClass;
    3886             :   extern const TargetRegisterClass CPUSPRegRegClass;
    3887             :   extern const TargetRegisterClass DSPCCRegClass;
    3888             :   extern const TargetRegisterClass GP32RegClass;
    3889             :   extern const TargetRegisterClass GPR32ZERORegClass;
    3890             :   extern const TargetRegisterClass HI32RegClass;
    3891             :   extern const TargetRegisterClass LO32RegClass;
    3892             :   extern const TargetRegisterClass SP32RegClass;
    3893             :   extern const TargetRegisterClass FGR64RegClass;
    3894             :   extern const TargetRegisterClass GPR64RegClass;
    3895             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPR32NONZERORegClass;
    3896             :   extern const TargetRegisterClass AFGR64RegClass;
    3897             :   extern const TargetRegisterClass FGR64_and_OddSPRegClass;
    3898             :   extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass;
    3899             :   extern const TargetRegisterClass AFGR64_and_OddSPRegClass;
    3900             :   extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16RegsRegClass;
    3901             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MovePRegClass;
    3902             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16ZeroRegClass;
    3903             :   extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClass;
    3904             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePRegClass;
    3905             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MovePPairSecondRegClass;
    3906             :   extern const TargetRegisterClass ACC64DSPRegClass;
    3907             :   extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePRegClass;
    3908             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroRegClass;
    3909             :   extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondRegClass;
    3910             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MovePPairFirstRegClass;
    3911             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClass;
    3912             :   extern const TargetRegisterClass OCTEON_MPLRegClass;
    3913             :   extern const TargetRegisterClass OCTEON_PRegClass;
    3914             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClass;
    3915             :   extern const TargetRegisterClass ACC64RegClass;
    3916             :   extern const TargetRegisterClass GP64RegClass;
    3917             :   extern const TargetRegisterClass GPR64_with_sub_32_in_CPURARegRegClass;
    3918             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPR32ZERORegClass;
    3919             :   extern const TargetRegisterClass HI64RegClass;
    3920             :   extern const TargetRegisterClass LO64RegClass;
    3921             :   extern const TargetRegisterClass SP64RegClass;
    3922             :   extern const TargetRegisterClass MSA128BRegClass;
    3923             :   extern const TargetRegisterClass MSA128DRegClass;
    3924             :   extern const TargetRegisterClass MSA128HRegClass;
    3925             :   extern const TargetRegisterClass MSA128WRegClass;
    3926             :   extern const TargetRegisterClass MSA128B_with_sub_64_in_OddSPRegClass;
    3927             :   extern const TargetRegisterClass MSA128WEvensRegClass;
    3928             :   extern const TargetRegisterClass ACC128RegClass;
    3929             : } // end namespace Mips
    3930             : 
    3931             : } // end namespace llvm
    3932             : 
    3933             : #endif // GET_REGINFO_HEADER
    3934             : 
    3935             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
    3936             : |*                                                                            *|
    3937             : |* Target Register and Register Classes Information                           *|
    3938             : |*                                                                            *|
    3939             : |* Automatically generated file, do not edit!                                 *|
    3940             : |*                                                                            *|
    3941             : \*===----------------------------------------------------------------------===*/
    3942             : 
    3943             : 
    3944             : #ifdef GET_REGINFO_TARGET_DESC
    3945             : #undef GET_REGINFO_TARGET_DESC
    3946             : 
    3947             : namespace llvm {
    3948             : 
    3949             : extern const MCRegisterClass MipsMCRegisterClasses[];
    3950             : 
    3951             : static const MVT::SimpleValueType VTLists[] = {
    3952             :   /* 0 */ MVT::i32, MVT::Other,
    3953             :   /* 2 */ MVT::i64, MVT::Other,
    3954             :   /* 4 */ MVT::f16, MVT::Other,
    3955             :   /* 6 */ MVT::f32, MVT::Other,
    3956             :   /* 8 */ MVT::f64, MVT::Other,
    3957             :   /* 10 */ MVT::v16i8, MVT::Other,
    3958             :   /* 12 */ MVT::v4i8, MVT::v2i16, MVT::Other,
    3959             :   /* 15 */ MVT::v8i16, MVT::v8f16, MVT::Other,
    3960             :   /* 18 */ MVT::v4i32, MVT::v4f32, MVT::Other,
    3961             :   /* 21 */ MVT::v2i64, MVT::v2f64, MVT::Other,
    3962             :   /* 24 */ MVT::Untyped, MVT::Other,
    3963             : };
    3964             : 
    3965             : static const char *const SubRegIndexNameTable[] = { "sub_32", "sub_64", "sub_dsp16_19", "sub_dsp20", "sub_dsp21", "sub_dsp22", "sub_dsp23", "sub_hi", "sub_lo", "sub_hi_then_sub_32", "sub_32_sub_hi_then_sub_32", "" };
    3966             : 
    3967             : 
    3968             : static const LaneBitmask SubRegIndexLaneMaskTable[] = {
    3969             :   LaneBitmask::getAll(),
    3970             :   LaneBitmask(0x00000001), // sub_32
    3971             :   LaneBitmask(0x00000041), // sub_64
    3972             :   LaneBitmask(0x00000002), // sub_dsp16_19
    3973             :   LaneBitmask(0x00000004), // sub_dsp20
    3974             :   LaneBitmask(0x00000008), // sub_dsp21
    3975             :   LaneBitmask(0x00000010), // sub_dsp22
    3976             :   LaneBitmask(0x00000020), // sub_dsp23
    3977             :   LaneBitmask(0x00000040), // sub_hi
    3978             :   LaneBitmask(0x00000001), // sub_lo
    3979             :   LaneBitmask(0x00000040), // sub_hi_then_sub_32
    3980             :   LaneBitmask(0x00000041), // sub_32_sub_hi_then_sub_32
    3981             :  };
    3982             : 
    3983             : 
    3984             : 
    3985             : static const TargetRegisterInfo::RegClassInfo RegClassInfos[] = {
    3986             :   // Mode = 0 (Default)
    3987             :   { 16, 16, 128, VTLists+4 },    // MSA128F16
    3988             :   { 16, 16, 128, VTLists+4 },    // MSA128F16_with_sub_64_in_OddSP
    3989             :   { 32, 32, 32, VTLists+6 },    // OddSP
    3990             :   { 32, 32, 32, VTLists+0 },    // CCR
    3991             :   { 32, 32, 32, VTLists+0 },    // COP0
    3992             :   { 32, 32, 32, VTLists+0 },    // COP2
    3993             :   { 32, 32, 32, VTLists+0 },    // COP3
    3994             :   { 32, 32, 32, VTLists+12 },    // DSPR
    3995             :   { 32, 32, 32, VTLists+6 },    // FGR32
    3996             :   { 32, 32, 32, VTLists+0 },    // FGRCC
    3997             :   { 32, 32, 32, VTLists+6 },    // FGRH32
    3998             :   { 32, 32, 32, VTLists+0 },    // GPR32
    3999             :   { 32, 32, 32, VTLists+0 },    // HWRegs
    4000             :   { 32, 32, 32, VTLists+0 },    // GPR32NONZERO
    4001             :   { 32, 32, 32, VTLists+6 },    // OddSP_with_sub_hi
    4002             :   { 32, 32, 32, VTLists+0 },    // FGR32_and_OddSP
    4003             :   { 32, 32, 32, VTLists+6 },    // FGRH32_and_OddSP
    4004             :   { 32, 32, 32, VTLists+6 },    // OddSP_with_sub_hi_with_sub_hi_in_FGRH32
    4005             :   { 32, 32, 32, VTLists+0 },    // CPU16RegsPlusSP
    4006             :   { 32, 32, 32, VTLists+0 },    // CPU16Regs
    4007             :   { 32, 32, 32, VTLists+0 },    // FCC
    4008             :   { 32, 32, 32, VTLists+0 },    // GPRMM16
    4009             :   { 32, 32, 32, VTLists+0 },    // GPRMM16MoveP
    4010             :   { 32, 32, 32, VTLists+0 },    // GPRMM16Zero
    4011             :   { 32, 32, 32, VTLists+0 },    // MSACtrl
    4012             :   { 32, 32, 32, VTLists+6 },    // OddSP_with_sub_hi_with_sub_hi_in_FGR32
    4013             :   { 32, 32, 32, VTLists+0 },    // CPU16Regs_and_GPRMM16Zero
    4014             :   { 32, 32, 32, VTLists+0 },    // GPR32NONZERO_and_GPRMM16MoveP
    4015             :   { 32, 32, 32, VTLists+0 },    // GPRMM16MovePPairSecond
    4016             :   { 32, 32, 32, VTLists+0 },    // CPU16Regs_and_GPRMM16MoveP
    4017             :   { 32, 32, 32, VTLists+0 },    // GPRMM16MoveP_and_GPRMM16Zero
    4018             :   { 32, 32, 32, VTLists+0 },    // HI32DSP
    4019             :   { 32, 32, 32, VTLists+0 },    // LO32DSP
    4020             :   { 32, 32, 32, VTLists+0 },    // CPU16Regs_and_GPRMM16MovePPairSecond
    4021             :   { 32, 32, 32, VTLists+0 },    // GPRMM16MovePPairFirst
    4022             :   { 32, 32, 32, VTLists+0 },    // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero
    4023             :   { 32, 32, 32, VTLists+0 },    // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond
    4024             :   { 32, 32, 32, VTLists+0 },    // CPURAReg
    4025             :   { 32, 32, 32, VTLists+0 },    // CPUSPReg
    4026             :   { 32, 32, 32, VTLists+12 },    // DSPCC
    4027             :   { 32, 32, 32, VTLists+0 },    // GP32
    4028             :   { 32, 32, 32, VTLists+0 },    // GPR32ZERO
    4029             :   { 32, 32, 32, VTLists+0 },    // HI32
    4030             :   { 32, 32, 32, VTLists+0 },    // LO32
    4031             :   { 32, 32, 32, VTLists+0 },    // SP32
    4032             :   { 64, 64, 64, VTLists+8 },    // FGR64
    4033             :   { 64, 64, 64, VTLists+2 },    // GPR64
    4034             :   { 64, 64, 64, VTLists+2 },    // GPR64_with_sub_32_in_GPR32NONZERO
    4035             :   { 64, 64, 64, VTLists+8 },    // AFGR64
    4036             :   { 64, 64, 64, VTLists+8 },    // FGR64_and_OddSP
    4037             :   { 64, 64, 64, VTLists+2 },    // GPR64_with_sub_32_in_CPU16RegsPlusSP
    4038             :   { 64, 64, 64, VTLists+8 },    // AFGR64_and_OddSP
    4039             :   { 64, 64, 64, VTLists+2 },    // GPR64_with_sub_32_in_CPU16Regs
    4040             :   { 64, 64, 64, VTLists+2 },    // GPR64_with_sub_32_in_GPRMM16MoveP
    4041             :   { 64, 64, 64, VTLists+2 },    // GPR64_with_sub_32_in_GPRMM16Zero
    4042             :   { 64, 64, 64, VTLists+2 },    // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero
    4043             :   { 64, 64, 64, VTLists+2 },    // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP
    4044             :   { 64, 64, 64, VTLists+2 },    // GPR64_with_sub_32_in_GPRMM16MovePPairSecond
    4045             :   { 64, 64, 64, VTLists+24 },    // ACC64DSP
    4046             :   { 64, 64, 64, VTLists+2 },    // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP
    4047             :   { 64, 64, 64, VTLists+2 },    // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero
    4048             :   { 64, 64, 64, VTLists+2 },    // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond
    4049             :   { 64, 64, 64, VTLists+2 },    // GPR64_with_sub_32_in_GPRMM16MovePPairFirst
    4050             :   { 64, 64, 64, VTLists+2 },    // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero
    4051             :   { 64, 64, 64, VTLists+2 },    // OCTEON_MPL
    4052             :   { 64, 64, 64, VTLists+2 },    // OCTEON_P
    4053             :   { 64, 64, 64, VTLists+2 },    // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond
    4054             :   { 64, 64, 64, VTLists+24 },    // ACC64
    4055             :   { 64, 64, 64, VTLists+2 },    // GP64
    4056             :   { 64, 64, 64, VTLists+2 },    // GPR64_with_sub_32_in_CPURAReg
    4057             :   { 64, 64, 64, VTLists+2 },    // GPR64_with_sub_32_in_GPR32ZERO
    4058             :   { 64, 64, 64, VTLists+2 },    // HI64
    4059             :   { 64, 64, 64, VTLists+2 },    // LO64
    4060             :   { 64, 64, 64, VTLists+2 },    // SP64
    4061             :   { 128, 128, 128, VTLists+10 },    // MSA128B
    4062             :   { 128, 128, 128, VTLists+21 },    // MSA128D
    4063             :   { 128, 128, 128, VTLists+15 },    // MSA128H
    4064             :   { 128, 128, 128, VTLists+18 },    // MSA128W
    4065             :   { 128, 128, 128, VTLists+18 },    // MSA128B_with_sub_64_in_OddSP
    4066             :   { 128, 128, 128, VTLists+18 },    // MSA128WEvens
    4067             :   { 128, 128, 128, VTLists+24 },    // ACC128
    4068             : };
    4069             : 
    4070             : static const TargetRegisterClass *const NullRegClasses[] = { nullptr };
    4071             : 
    4072             : static const uint32_t MSA128F16SubClassMask[] = {
    4073             :   0x00000003, 0x00000000, 0x0000fc00, 
    4074             : };
    4075             : 
    4076             : static const uint32_t MSA128F16_with_sub_64_in_OddSPSubClassMask[] = {
    4077             :   0x00000002, 0x00000000, 0x00004000, 
    4078             : };
    4079             : 
    4080             : static const uint32_t OddSPSubClassMask[] = {
    4081             :   0x0203c004, 0x000a0000, 0x00000000, 
    4082             :   0x00000002, 0x00000000, 0x00004000, // sub_64
    4083             :   0x02024002, 0x000b0000, 0x00004000, // sub_hi
    4084             :   0x00020002, 0x00020000, 0x00004000, // sub_lo
    4085             : };
    4086             : 
    4087             : static const uint32_t CCRSubClassMask[] = {
    4088             :   0x00000008, 0x00000000, 0x00000000, 
    4089             : };
    4090             : 
    4091             : static const uint32_t COP0SubClassMask[] = {
    4092             :   0x00000010, 0x00000000, 0x00000000, 
    4093             : };
    4094             : 
    4095             : static const uint32_t COP2SubClassMask[] = {
    4096             :   0x00000020, 0x00000000, 0x00000000, 
    4097             : };
    4098             : 
    4099             : static const uint32_t COP3SubClassMask[] = {
    4100             :   0x00000040, 0x00000000, 0x00000000, 
    4101             : };
    4102             : 
    4103             : static const uint32_t DSPRSubClassMask[] = {
    4104             :   0x7cec2880, 0x0000137e, 0x00000000, 
    4105             :   0x00000000, 0xfbf4c000, 0x00000274, // sub_32
    4106             : };
    4107             : 
    4108             : static const uint32_t FGR32SubClassMask[] = {
    4109             :   0x00008300, 0x00000000, 0x00000000, 
    4110             :   0x02000000, 0x00090000, 0x00000000, // sub_hi
    4111             :   0x02024003, 0x000b2000, 0x0000fc00, // sub_lo
    4112             : };
    4113             : 
    4114             : static const uint32_t FGRCCSubClassMask[] = {
    4115             :   0x00008300, 0x00000000, 0x00000000, 
    4116             :   0x02000000, 0x00090000, 0x00000000, // sub_hi
    4117             :   0x02024003, 0x000b2000, 0x0000fc00, // sub_lo
    4118             : };
    4119             : 
    4120             : static const uint32_t FGRH32SubClassMask[] = {
    4121             :   0x00010400, 0x00000000, 0x00000000, 
    4122             :   0x00020003, 0x00022000, 0x0000fc00, // sub_hi
    4123             : };
    4124             : 
    4125             : static const uint32_t GPR32SubClassMask[] = {
    4126             :   0x7cec2800, 0x0000137e, 0x00000000, 
    4127             :   0x00000000, 0xfbf4c000, 0x00000274, // sub_32
    4128             : };
    4129             : 
    4130             : static const uint32_t HWRegsSubClassMask[] = {
    4131             :   0x00001000, 0x00000000, 0x00000000, 
    4132             : };
    4133             : 
    4134             : static const uint32_t GPR32NONZEROSubClassMask[] = {
    4135             :   0x3c2c2000, 0x0000117e, 0x00000000, 
    4136             :   0x00000000, 0xeb948000, 0x00000234, // sub_32
    4137             : };
    4138             : 
    4139             : static const uint32_t OddSP_with_sub_hiSubClassMask[] = {
    4140             :   0x02024000, 0x000a0000, 0x00000000, 
    4141             :   0x00000002, 0x00000000, 0x00004000, // sub_64
    4142             : };
    4143             : 
    4144             : static const uint32_t FGR32_and_OddSPSubClassMask[] = {
    4145             :   0x00008000, 0x00000000, 0x00000000, 
    4146             :   0x02000000, 0x00090000, 0x00000000, // sub_hi
    4147             :   0x00020002, 0x00020000, 0x00004000, // sub_lo
    4148             : };
    4149             : 
    4150             : static const uint32_t FGRH32_and_OddSPSubClassMask[] = {
    4151             :   0x00010000, 0x00000000, 0x00000000, 
    4152             :   0x00020002, 0x00020000, 0x00004000, // sub_hi
    4153             : };
    4154             : 
    4155             : static const uint32_t OddSP_with_sub_hi_with_sub_hi_in_FGRH32SubClassMask[] = {
    4156             :   0x00020000, 0x00020000, 0x00000000, 
    4157             :   0x00000002, 0x00000000, 0x00004000, // sub_64
    4158             : };
    4159             : 
    4160             : static const uint32_t CPU16RegsPlusSPSubClassMask[] = {
    4161             :   0x242c0000, 0x0000105e, 0x00000000, 
    4162             :   0x00000000, 0xe8940000, 0x00000204, // sub_32
    4163             : };
    4164             : 
    4165             : static const uint32_t CPU16RegsSubClassMask[] = {
    4166             :   0x24280000, 0x0000001e, 0x00000000, 
    4167             :   0x00000000, 0xe8900000, 0x00000004, // sub_32
    4168             : };
    4169             : 
    4170             : static const uint32_t FCCSubClassMask[] = {
    4171             :   0x00100000, 0x00000000, 0x00000000, 
    4172             : };
    4173             : 
    4174             : static const uint32_t GPRMM16SubClassMask[] = {
    4175             :   0x24200000, 0x0000001e, 0x00000000, 
    4176             :   0x00000000, 0xe8900000, 0x00000004, // sub_32
    4177             : };
    4178             : 
    4179             : static const uint32_t GPRMM16MovePSubClassMask[] = {
    4180             :   0x68400000, 0x00000208, 0x00000000, 
    4181             :   0x00000000, 0x99200000, 0x00000040, // sub_32
    4182             : };
    4183             : 
    4184             : static const uint32_t GPRMM16ZeroSubClassMask[] = {
    4185             :   0x44800000, 0x0000021e, 0x00000000, 
    4186             :   0x00000000, 0xf0c00000, 0x00000044, // sub_32
    4187             : };
    4188             : 
    4189             : static const uint32_t MSACtrlSubClassMask[] = {
    4190             :   0x01000000, 0x00000000, 0x00000000, 
    4191             : };
    4192             : 
    4193             : static const uint32_t OddSP_with_sub_hi_with_sub_hi_in_FGR32SubClassMask[] = {
    4194             :   0x02000000, 0x00080000, 0x00000000, 
    4195             : };
    4196             : 
    4197             : static const uint32_t CPU16Regs_and_GPRMM16ZeroSubClassMask[] = {
    4198             :   0x04000000, 0x0000001e, 0x00000000, 
    4199             :   0x00000000, 0xe0800000, 0x00000004, // sub_32
    4200             : };
    4201             : 
    4202             : static const uint32_t GPR32NONZERO_and_GPRMM16MovePSubClassMask[] = {
    4203             :   0x28000000, 0x00000008, 0x00000000, 
    4204             :   0x00000000, 0x89000000, 0x00000000, // sub_32
    4205             : };
    4206             : 
    4207             : static const uint32_t GPRMM16MovePPairSecondSubClassMask[] = {
    4208             :   0x10000000, 0x00000012, 0x00000000, 
    4209             :   0x00000000, 0x22000000, 0x00000004, // sub_32
    4210             : };
    4211             : 
    4212             : static const uint32_t CPU16Regs_and_GPRMM16MovePSubClassMask[] = {
    4213             :   0x20000000, 0x00000008, 0x00000000, 
    4214             :   0x00000000, 0x88000000, 0x00000000, // sub_32
    4215             : };
    4216             : 
    4217             : static const uint32_t GPRMM16MoveP_and_GPRMM16ZeroSubClassMask[] = {
    4218             :   0x40000000, 0x00000208, 0x00000000, 
    4219             :   0x00000000, 0x90000000, 0x00000040, // sub_32
    4220             : };
    4221             : 
    4222             : static const uint32_t HI32DSPSubClassMask[] = {
    4223             :   0x80000000, 0x00000400, 0x00000000, 
    4224             :   0x00000000, 0x00000000, 0x00000080, // sub_32
    4225             :   0x00000000, 0x04000000, 0x00000008, // sub_hi
    4226             :   0x00000000, 0x00000000, 0x00010000, // sub_hi_then_sub_32
    4227             : };
    4228             : 
    4229             : static const uint32_t LO32DSPSubClassMask[] = {
    4230             :   0x00000000, 0x00000801, 0x00000000, 
    4231             :   0x00000000, 0x00000000, 0x00010100, // sub_32
    4232             :   0x00000000, 0x04000000, 0x00000008, // sub_lo
    4233             : };
    4234             : 
    4235             : static const uint32_t CPU16Regs_and_GPRMM16MovePPairSecondSubClassMask[] = {
    4236             :   0x00000000, 0x00000012, 0x00000000, 
    4237             :   0x00000000, 0x20000000, 0x00000004, // sub_32
    4238             : };
    4239             : 
    4240             : static const uint32_t GPRMM16MovePPairFirstSubClassMask[] = {
    4241             :   0x00000000, 0x00000014, 0x00000000, 
    4242             :   0x00000000, 0x40000000, 0x00000004, // sub_32
    4243             : };
    4244             : 
    4245             : static const uint32_t GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroSubClassMask[] = {
    4246             :   0x00000000, 0x00000008, 0x00000000, 
    4247             :   0x00000000, 0x80000000, 0x00000000, // sub_32
    4248             : };
    4249             : 
    4250             : static const uint32_t GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondSubClassMask[] = {
    4251             :   0x00000000, 0x00000010, 0x00000000, 
    4252             :   0x00000000, 0x00000000, 0x00000004, // sub_32
    4253             : };
    4254             : 
    4255             : static const uint32_t CPURARegSubClassMask[] = {
    4256             :   0x00000000, 0x00000020, 0x00000000, 
    4257             :   0x00000000, 0x00000000, 0x00000020, // sub_32
    4258             : };
    4259             : 
    4260             : static const uint32_t CPUSPRegSubClassMask[] = {
    4261             :   0x00000000, 0x00001040, 0x00000000, 
    4262             :   0x00000000, 0x00000000, 0x00000200, // sub_32
    4263             : };
    4264             : 
    4265             : static const uint32_t DSPCCSubClassMask[] = {
    4266             :   0x00000000, 0x00000080, 0x00000000, 
    4267             : };
    4268             : 
    4269             : static const uint32_t GP32SubClassMask[] = {
    4270             :   0x00000000, 0x00000100, 0x00000000, 
    4271             :   0x00000000, 0x00000000, 0x00000010, // sub_32
    4272             : };
    4273             : 
    4274             : static const uint32_t GPR32ZEROSubClassMask[] = {
    4275             :   0x00000000, 0x00000200, 0x00000000, 
    4276             :   0x00000000, 0x00000000, 0x00000040, // sub_32
    4277             : };
    4278             : 
    4279             : static const uint32_t HI32SubClassMask[] = {
    4280             :   0x00000000, 0x00000400, 0x00000000, 
    4281             :   0x00000000, 0x00000000, 0x00000080, // sub_32
    4282             :   0x00000000, 0x00000000, 0x00000008, // sub_hi
    4283             :   0x00000000, 0x00000000, 0x00010000, // sub_hi_then_sub_32
    4284             : };
    4285             : 
    4286             : static const uint32_t LO32SubClassMask[] = {
    4287             :   0x00000000, 0x00000800, 0x00000000, 
    4288             :   0x00000000, 0x00000000, 0x00010100, // sub_32
    4289             :   0x00000000, 0x00000000, 0x00000008, // sub_lo
    4290             : };
    4291             : 
    4292             : static const uint32_t SP32SubClassMask[] = {
    4293             :   0x00000000, 0x00001000, 0x00000000, 
    4294             :   0x00000000, 0x00000000, 0x00000200, // sub_32
    4295             : };
    4296             : 
    4297             : static const uint32_t FGR64SubClassMask[] = {
    4298             :   0x00000000, 0x00022000, 0x00000000, 
    4299             :   0x00000003, 0x00000000, 0x0000fc00, // sub_64
    4300             : };
    4301             : 
    4302             : static const uint32_t GPR64SubClassMask[] = {
    4303             :   0x00000000, 0xfbf4c000, 0x00000274, 
    4304             : };
    4305             : 
    4306             : static const uint32_t GPR64_with_sub_32_in_GPR32NONZEROSubClassMask[] = {
    4307             :   0x00000000, 0xeb948000, 0x00000234, 
    4308             : };
    4309             : 
    4310             : static const uint32_t AFGR64SubClassMask[] = {
    4311             :   0x00000000, 0x00090000, 0x00000000, 
    4312             : };
    4313             : 
    4314             : static const uint32_t FGR64_and_OddSPSubClassMask[] = {
    4315             :   0x00000000, 0x00020000, 0x00000000, 
    4316             :   0x00000002, 0x00000000, 0x00004000, // sub_64
    4317             : };
    4318             : 
    4319             : static const uint32_t GPR64_with_sub_32_in_CPU16RegsPlusSPSubClassMask[] = {
    4320             :   0x00000000, 0xe8940000, 0x00000204, 
    4321             : };
    4322             : 
    4323             : static const uint32_t AFGR64_and_OddSPSubClassMask[] = {
    4324             :   0x00000000, 0x00080000, 0x00000000, 
    4325             : };
    4326             : 
    4327             : static const uint32_t GPR64_with_sub_32_in_CPU16RegsSubClassMask[] = {
    4328             :   0x00000000, 0xe8900000, 0x00000004, 
    4329             : };
    4330             : 
    4331             : static const uint32_t GPR64_with_sub_32_in_GPRMM16MovePSubClassMask[] = {
    4332             :   0x00000000, 0x99200000, 0x00000040, 
    4333             : };
    4334             : 
    4335             : static const uint32_t GPR64_with_sub_32_in_GPRMM16ZeroSubClassMask[] = {
    4336             :   0x00000000, 0xf0c00000, 0x00000044, 
    4337             : };
    4338             : 
    4339             : static const uint32_t GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroSubClassMask[] = {
    4340             :   0x00000000, 0xe0800000, 0x00000004, 
    4341             : };
    4342             : 
    4343             : static const uint32_t GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePSubClassMask[] = {
    4344             :   0x00000000, 0x89000000, 0x00000000, 
    4345             : };
    4346             : 
    4347             : static const uint32_t GPR64_with_sub_32_in_GPRMM16MovePPairSecondSubClassMask[] = {
    4348             :   0x00000000, 0x22000000, 0x00000004, 
    4349             : };
    4350             : 
    4351             : static const uint32_t ACC64DSPSubClassMask[] = {
    4352             :   0x00000000, 0x04000000, 0x00000008, 
    4353             :   0x00000000, 0x00000000, 0x00010000, // sub_32_sub_hi_then_sub_32
    4354             : };
    4355             : 
    4356             : static const uint32_t GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePSubClassMask[] = {
    4357             :   0x00000000, 0x88000000, 0x00000000, 
    4358             : };
    4359             : 
    4360             : static const uint32_t GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroSubClassMask[] = {
    4361             :   0x00000000, 0x90000000, 0x00000040, 
    4362             : };
    4363             : 
    4364             : static const uint32_t GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondSubClassMask[] = {
    4365             :   0x00000000, 0x20000000, 0x00000004, 
    4366             : };
    4367             : 
    4368             : static const uint32_t GPR64_with_sub_32_in_GPRMM16MovePPairFirstSubClassMask[] = {
    4369             :   0x00000000, 0x40000000, 0x00000004, 
    4370             : };
    4371             : 
    4372             : static const uint32_t GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroSubClassMask[] = {
    4373             :   0x00000000, 0x80000000, 0x00000000, 
    4374             : };
    4375             : 
    4376             : static const uint32_t OCTEON_MPLSubClassMask[] = {
    4377             :   0x00000000, 0x00000000, 0x00000001, 
    4378             : };
    4379             : 
    4380             : static const uint32_t OCTEON_PSubClassMask[] = {
    4381             :   0x00000000, 0x00000000, 0x00000002, 
    4382             : };
    4383             : 
    4384             : static const uint32_t GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondSubClassMask[] = {
    4385             :   0x00000000, 0x00000000, 0x00000004, 
    4386             : };
    4387             : 
    4388             : static const uint32_t ACC64SubClassMask[] = {
    4389             :   0x00000000, 0x00000000, 0x00000008, 
    4390             :   0x00000000, 0x00000000, 0x00010000, // sub_32_sub_hi_then_sub_32
    4391             : };
    4392             : 
    4393             : static const uint32_t GP64SubClassMask[] = {
    4394             :   0x00000000, 0x00000000, 0x00000010, 
    4395             : };
    4396             : 
    4397             : static const uint32_t GPR64_with_sub_32_in_CPURARegSubClassMask[] = {
    4398             :   0x00000000, 0x00000000, 0x00000020, 
    4399             : };
    4400             : 
    4401             : static const uint32_t GPR64_with_sub_32_in_GPR32ZEROSubClassMask[] = {
    4402             :   0x00000000, 0x00000000, 0x00000040, 
    4403             : };
    4404             : 
    4405             : static const uint32_t HI64SubClassMask[] = {
    4406             :   0x00000000, 0x00000000, 0x00000080, 
    4407             :   0x00000000, 0x00000000, 0x00010000, // sub_hi
    4408             : };
    4409             : 
    4410             : static const uint32_t LO64SubClassMask[] = {
    4411             :   0x00000000, 0x00000000, 0x00000100, 
    4412             :   0x00000000, 0x00000000, 0x00010000, // sub_lo
    4413             : };
    4414             : 
    4415             : static const uint32_t SP64SubClassMask[] = {
    4416             :   0x00000000, 0x00000000, 0x00000200, 
    4417             : };
    4418             : 
    4419             : static const uint32_t MSA128BSubClassMask[] = {
    4420             :   0x00000000, 0x00000000, 0x0000fc00, 
    4421             : };
    4422             : 
    4423             : static const uint32_t MSA128DSubClassMask[] = {
    4424             :   0x00000000, 0x00000000, 0x0000fc00, 
    4425             : };
    4426             : 
    4427             : static const uint32_t MSA128HSubClassMask[] = {
    4428             :   0x00000000, 0x00000000, 0x0000fc00, 
    4429             : };
    4430             : 
    4431             : static const uint32_t MSA128WSubClassMask[] = {
    4432             :   0x00000000, 0x00000000, 0x0000fc00, 
    4433             : };
    4434             : 
    4435             : static const uint32_t MSA128B_with_sub_64_in_OddSPSubClassMask[] = {
    4436             :   0x00000000, 0x00000000, 0x00004000, 
    4437             : };
    4438             : 
    4439             : static const uint32_t MSA128WEvensSubClassMask[] = {
    4440             :   0x00000000, 0x00000000, 0x00008000, 
    4441             : };
    4442             : 
    4443             : static const uint32_t ACC128SubClassMask[] = {
    4444             :   0x00000000, 0x00000000, 0x00010000, 
    4445             : };
    4446             : 
    4447             : static const uint16_t SuperRegIdxSeqs[] = {
    4448             :   /* 0 */ 1, 0,
    4449             :   /* 2 */ 2, 0,
    4450             :   /* 4 */ 8, 0,
    4451             :   /* 6 */ 1, 9, 0,
    4452             :   /* 9 */ 2, 8, 9, 0,
    4453             :   /* 13 */ 1, 8, 10, 0,
    4454             :   /* 17 */ 11, 0,
    4455             : };
    4456             : 
    4457             : static const TargetRegisterClass *const MSA128F16_with_sub_64_in_OddSPSuperclasses[] = {
    4458             :   &Mips::MSA128F16RegClass,
    4459             :   nullptr
    4460             : };
    4461             : 
    4462             : static const TargetRegisterClass *const FGR32Superclasses[] = {
    4463             :   &Mips::FGRCCRegClass,
    4464             :   nullptr
    4465             : };
    4466             : 
    4467             : static const TargetRegisterClass *const FGRCCSuperclasses[] = {
    4468             :   &Mips::FGR32RegClass,
    4469             :   nullptr
    4470             : };
    4471             : 
    4472             : static const TargetRegisterClass *const GPR32Superclasses[] = {
    4473             :   &Mips::DSPRRegClass,
    4474             :   nullptr
    4475             : };
    4476             : 
    4477             : static const TargetRegisterClass *const GPR32NONZEROSuperclasses[] = {
    4478             :   &Mips::DSPRRegClass,
    4479             :   &Mips::GPR32RegClass,
    4480             :   nullptr
    4481             : };
    4482             : 
    4483             : static const TargetRegisterClass *const OddSP_with_sub_hiSuperclasses[] = {
    4484             :   &Mips::OddSPRegClass,
    4485             :   nullptr
    4486             : };
    4487             : 
    4488             : static const TargetRegisterClass *const FGR32_and_OddSPSuperclasses[] = {
    4489             :   &Mips::OddSPRegClass,
    4490             :   &Mips::FGR32RegClass,
    4491             :   &Mips::FGRCCRegClass,
    4492             :   nullptr
    4493             : };
    4494             : 
    4495             : static const TargetRegisterClass *const FGRH32_and_OddSPSuperclasses[] = {
    4496             :   &Mips::OddSPRegClass,
    4497             :   &Mips::FGRH32RegClass,
    4498             :   nullptr
    4499             : };
    4500             : 
    4501             : static const TargetRegisterClass *const OddSP_with_sub_hi_with_sub_hi_in_FGRH32Superclasses[] = {
    4502             :   &Mips::OddSPRegClass,
    4503             :   &Mips::OddSP_with_sub_hiRegClass,
    4504             :   nullptr
    4505             : };
    4506             : 
    4507             : static const TargetRegisterClass *const CPU16RegsPlusSPSuperclasses[] = {
    4508             :   &Mips::DSPRRegClass,
    4509             :   &Mips::GPR32RegClass,
    4510             :   &Mips::GPR32NONZERORegClass,
    4511             :   nullptr
    4512             : };
    4513             : 
    4514             : static const TargetRegisterClass *const CPU16RegsSuperclasses[] = {
    4515             :   &Mips::DSPRRegClass,
    4516             :   &Mips::GPR32RegClass,
    4517             :   &Mips::GPR32NONZERORegClass,
    4518             :   &Mips::CPU16RegsPlusSPRegClass,
    4519             :   nullptr
    4520             : };
    4521             : 
    4522             : static const TargetRegisterClass *const GPRMM16Superclasses[] = {
    4523             :   &Mips::DSPRRegClass,
    4524             :   &Mips::GPR32RegClass,
    4525             :   &Mips::GPR32NONZERORegClass,
    4526             :   &Mips::CPU16RegsPlusSPRegClass,
    4527             :   &Mips::CPU16RegsRegClass,
    4528             :   nullptr
    4529             : };
    4530             : 
    4531             : static const TargetRegisterClass *const GPRMM16MovePSuperclasses[] = {
    4532             :   &Mips::DSPRRegClass,
    4533             :   &Mips::GPR32RegClass,
    4534             :   nullptr
    4535             : };
    4536             : 
    4537             : static const TargetRegisterClass *const GPRMM16ZeroSuperclasses[] = {
    4538             :   &Mips::DSPRRegClass,
    4539             :   &Mips::GPR32RegClass,
    4540             :   nullptr
    4541             : };
    4542             : 
    4543             : static const TargetRegisterClass *const OddSP_with_sub_hi_with_sub_hi_in_FGR32Superclasses[] = {
    4544             :   &Mips::OddSPRegClass,
    4545             :   &Mips::OddSP_with_sub_hiRegClass,
    4546             :   nullptr
    4547             : };
    4548             : 
    4549             : static const TargetRegisterClass *const CPU16Regs_and_GPRMM16ZeroSuperclasses[] = {
    4550             :   &Mips::DSPRRegClass,
    4551             :   &Mips::GPR32RegClass,
    4552             :   &Mips::GPR32NONZERORegClass,
    4553             :   &Mips::CPU16RegsPlusSPRegClass,
    4554             :   &Mips::CPU16RegsRegClass,
    4555             :   &Mips::GPRMM16RegClass,
    4556             :   &Mips::GPRMM16ZeroRegClass,
    4557             :   nullptr
    4558             : };
    4559             : 
    4560             : static const TargetRegisterClass *const GPR32NONZERO_and_GPRMM16MovePSuperclasses[] = {
    4561             :   &Mips::DSPRRegClass,
    4562             :   &Mips::GPR32RegClass,
    4563             :   &Mips::GPR32NONZERORegClass,
    4564             :   &Mips::GPRMM16MovePRegClass,
    4565             :   nullptr
    4566             : };
    4567             : 
    4568             : static const TargetRegisterClass *const GPRMM16MovePPairSecondSuperclasses[] = {
    4569             :   &Mips::DSPRRegClass,
    4570             :   &Mips::GPR32RegClass,
    4571             :   &Mips::GPR32NONZERORegClass,
    4572             :   nullptr
    4573             : };
    4574             : 
    4575             : static const TargetRegisterClass *const CPU16Regs_and_GPRMM16MovePSuperclasses[] = {
    4576             :   &Mips::DSPRRegClass,
    4577             :   &Mips::GPR32RegClass,
    4578             :   &Mips::GPR32NONZERORegClass,
    4579             :   &Mips::CPU16RegsPlusSPRegClass,
    4580             :   &Mips::CPU16RegsRegClass,
    4581             :   &Mips::GPRMM16RegClass,
    4582             :   &Mips::GPRMM16MovePRegClass,
    4583             :   &Mips::GPR32NONZERO_and_GPRMM16MovePRegClass,
    4584             :   nullptr
    4585             : };
    4586             : 
    4587             : static const TargetRegisterClass *const GPRMM16MoveP_and_GPRMM16ZeroSuperclasses[] = {
    4588             :   &Mips::DSPRRegClass,
    4589             :   &Mips::GPR32RegClass,
    4590             :   &Mips::GPRMM16MovePRegClass,
    4591             :   &Mips::GPRMM16ZeroRegClass,
    4592             :   nullptr
    4593             : };
    4594             : 
    4595             : static const TargetRegisterClass *const CPU16Regs_and_GPRMM16MovePPairSecondSuperclasses[] = {
    4596             :   &Mips::DSPRRegClass,
    4597             :   &Mips::GPR32RegClass,
    4598             :   &Mips::GPR32NONZERORegClass,
    4599             :   &Mips::CPU16RegsPlusSPRegClass,
    4600             :   &Mips::CPU16RegsRegClass,
    4601             :   &Mips::GPRMM16RegClass,
    4602             :   &Mips::GPRMM16ZeroRegClass,
    4603             :   &Mips::CPU16Regs_and_GPRMM16ZeroRegClass,
    4604             :   &Mips::GPRMM16MovePPairSecondRegClass,
    4605             :   nullptr
    4606             : };
    4607             : 
    4608             : static const TargetRegisterClass *const GPRMM16MovePPairFirstSuperclasses[] = {
    4609             :   &Mips::DSPRRegClass,
    4610             :   &Mips::GPR32RegClass,
    4611             :   &Mips::GPR32NONZERORegClass,
    4612             :   &Mips::CPU16RegsPlusSPRegClass,
    4613             :   &Mips::CPU16RegsRegClass,
    4614             :   &Mips::GPRMM16RegClass,
    4615             :   &Mips::GPRMM16ZeroRegClass,
    4616             :   &Mips::CPU16Regs_and_GPRMM16ZeroRegClass,
    4617             :   nullptr
    4618             : };
    4619             : 
    4620             : static const TargetRegisterClass *const GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroSuperclasses[] = {
    4621             :   &Mips::DSPRRegClass,
    4622             :   &Mips::GPR32RegClass,
    4623             :   &Mips::GPR32NONZERORegClass,
    4624             :   &Mips::CPU16RegsPlusSPRegClass,
    4625             :   &Mips::CPU16RegsRegClass,
    4626             :   &Mips::GPRMM16RegClass,
    4627             :   &Mips::GPRMM16MovePRegClass,
    4628             :   &Mips::GPRMM16ZeroRegClass,
    4629             :   &Mips::CPU16Regs_and_GPRMM16ZeroRegClass,
    4630             :   &Mips::GPR32NONZERO_and_GPRMM16MovePRegClass,
    4631             :   &Mips::CPU16Regs_and_GPRMM16MovePRegClass,
    4632             :   &Mips::GPRMM16MoveP_and_GPRMM16ZeroRegClass,
    4633             :   nullptr
    4634             : };
    4635             : 
    4636             : static const TargetRegisterClass *const GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondSuperclasses[] = {
    4637             :   &Mips::DSPRRegClass,
    4638             :   &Mips::GPR32RegClass,
    4639             :   &Mips::GPR32NONZERORegClass,
    4640             :   &Mips::CPU16RegsPlusSPRegClass,
    4641             :   &Mips::CPU16RegsRegClass,
    4642             :   &Mips::GPRMM16RegClass,
    4643             :   &Mips::GPRMM16ZeroRegClass,
    4644             :   &Mips::CPU16Regs_and_GPRMM16ZeroRegClass,
    4645             :   &Mips::GPRMM16MovePPairSecondRegClass,
    4646             :   &Mips::CPU16Regs_and_GPRMM16MovePPairSecondRegClass,
    4647             :   &Mips::GPRMM16MovePPairFirstRegClass,
    4648             :   nullptr
    4649             : };
    4650             : 
    4651             : static const TargetRegisterClass *const CPURARegSuperclasses[] = {
    4652             :   &Mips::DSPRRegClass,
    4653             :   &Mips::GPR32RegClass,
    4654             :   &Mips::GPR32NONZERORegClass,
    4655             :   nullptr
    4656             : };
    4657             : 
    4658             : static const TargetRegisterClass *const CPUSPRegSuperclasses[] = {
    4659             :   &Mips::DSPRRegClass,
    4660             :   &Mips::GPR32RegClass,
    4661             :   &Mips::GPR32NONZERORegClass,
    4662             :   &Mips::CPU16RegsPlusSPRegClass,
    4663             :   nullptr
    4664             : };
    4665             : 
    4666             : static const TargetRegisterClass *const GP32Superclasses[] = {
    4667             :   &Mips::DSPRRegClass,
    4668             :   &Mips::GPR32RegClass,
    4669             :   &Mips::GPR32NONZERORegClass,
    4670             :   nullptr
    4671             : };
    4672             : 
    4673             : static const TargetRegisterClass *const GPR32ZEROSuperclasses[] = {
    4674             :   &Mips::DSPRRegClass,
    4675             :   &Mips::GPR32RegClass,
    4676             :   &Mips::GPRMM16MovePRegClass,
    4677             :   &Mips::GPRMM16ZeroRegClass,
    4678             :   &Mips::GPRMM16MoveP_and_GPRMM16ZeroRegClass,
    4679             :   nullptr
    4680             : };
    4681             : 
    4682             : static const TargetRegisterClass *const HI32Superclasses[] = {
    4683             :   &Mips::HI32DSPRegClass,
    4684             :   nullptr
    4685             : };
    4686             : 
    4687             : static const TargetRegisterClass *const LO32Superclasses[] = {
    4688             :   &Mips::LO32DSPRegClass,
    4689             :   nullptr
    4690             : };
    4691             : 
    4692             : static const TargetRegisterClass *const SP32Superclasses[] = {
    4693             :   &Mips::DSPRRegClass,
    4694             :   &Mips::GPR32RegClass,
    4695             :   &Mips::GPR32NONZERORegClass,
    4696             :   &Mips::CPU16RegsPlusSPRegClass,
    4697             :   &Mips::CPUSPRegRegClass,
    4698             :   nullptr
    4699             : };
    4700             : 
    4701             : static const TargetRegisterClass *const GPR64_with_sub_32_in_GPR32NONZEROSuperclasses[] = {
    4702             :   &Mips::GPR64RegClass,
    4703             :   nullptr
    4704             : };
    4705             : 
    4706             : static const TargetRegisterClass *const FGR64_and_OddSPSuperclasses[] = {
    4707             :   &Mips::OddSPRegClass,
    4708             :   &Mips::OddSP_with_sub_hiRegClass,
    4709             :   &Mips::OddSP_with_sub_hi_with_sub_hi_in_FGRH32RegClass,
    4710             :   &Mips::FGR64RegClass,
    4711             :   nullptr
    4712             : };
    4713             : 
    4714             : static const TargetRegisterClass *const GPR64_with_sub_32_in_CPU16RegsPlusSPSuperclasses[] = {
    4715             :   &Mips::GPR64RegClass,
    4716             :   &Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
    4717             :   nullptr
    4718             : };
    4719             : 
    4720             : static const TargetRegisterClass *const AFGR64_and_OddSPSuperclasses[] = {
    4721             :   &Mips::OddSPRegClass,
    4722             :   &Mips::OddSP_with_sub_hiRegClass,
    4723             :   &Mips::OddSP_with_sub_hi_with_sub_hi_in_FGR32RegClass,
    4724             :   &Mips::AFGR64RegClass,
    4725             :   nullptr
    4726             : };
    4727             : 
    4728             : static const TargetRegisterClass *const GPR64_with_sub_32_in_CPU16RegsSuperclasses[] = {
    4729             :   &Mips::GPR64RegClass,
    4730             :   &Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
    4731             :   &Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass,
    4732             :   nullptr
    4733             : };
    4734             : 
    4735             : static const TargetRegisterClass *const GPR64_with_sub_32_in_GPRMM16MovePSuperclasses[] = {
    4736             :   &Mips::GPR64RegClass,
    4737             :   nullptr
    4738             : };
    4739             : 
    4740             : static const TargetRegisterClass *const GPR64_with_sub_32_in_GPRMM16ZeroSuperclasses[] = {
    4741             :   &Mips::GPR64RegClass,
    4742             :   nullptr
    4743             : };
    4744             : 
    4745             : static const TargetRegisterClass *const GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroSuperclasses[] = {
    4746             :   &Mips::GPR64RegClass,
    4747             :   &Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
    4748             :   &Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass,
    4749             :   &Mips::GPR64_with_sub_32_in_CPU16RegsRegClass,
    4750             :   &Mips::GPR64_with_sub_32_in_GPRMM16ZeroRegClass,
    4751             :   nullptr
    4752             : };
    4753             : 
    4754             : static const TargetRegisterClass *const GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePSuperclasses[] = {
    4755             :   &Mips::GPR64RegClass,
    4756             :   &Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
    4757             :   &Mips::GPR64_with_sub_32_in_GPRMM16MovePRegClass,
    4758             :   nullptr
    4759             : };
    4760             : 
    4761             : static const TargetRegisterClass *const GPR64_with_sub_32_in_GPRMM16MovePPairSecondSuperclasses[] = {
    4762             :   &Mips::GPR64RegClass,
    4763             :   &Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
    4764             :   nullptr
    4765             : };
    4766             : 
    4767             : static const TargetRegisterClass *const GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePSuperclasses[] = {
    4768             :   &Mips::GPR64RegClass,
    4769             :   &Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
    4770             :   &Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass,
    4771             :   &Mips::GPR64_with_sub_32_in_CPU16RegsRegClass,
    4772             :   &Mips::GPR64_with_sub_32_in_GPRMM16MovePRegClass,
    4773             :   &Mips::GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePRegClass,
    4774             :   nullptr
    4775             : };
    4776             : 
    4777             : static const TargetRegisterClass *const GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroSuperclasses[] = {
    4778             :   &Mips::GPR64RegClass,
    4779             :   &Mips::GPR64_with_sub_32_in_GPRMM16MovePRegClass,
    4780             :   &Mips::GPR64_with_sub_32_in_GPRMM16ZeroRegClass,
    4781             :   nullptr
    4782             : };
    4783             : 
    4784             : static const TargetRegisterClass *const GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondSuperclasses[] = {
    4785             :   &Mips::GPR64RegClass,
    4786             :   &Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
    4787             :   &Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass,
    4788             :   &Mips::GPR64_with_sub_32_in_CPU16RegsRegClass,
    4789             :   &Mips::GPR64_with_sub_32_in_GPRMM16ZeroRegClass,
    4790             :   &Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClass,
    4791             :   &Mips::GPR64_with_sub_32_in_GPRMM16MovePPairSecondRegClass,
    4792             :   nullptr
    4793             : };
    4794             : 
    4795             : static const TargetRegisterClass *const GPR64_with_sub_32_in_GPRMM16MovePPairFirstSuperclasses[] = {
    4796             :   &Mips::GPR64RegClass,
    4797             :   &Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
    4798             :   &Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass,
    4799             :   &Mips::GPR64_with_sub_32_in_CPU16RegsRegClass,
    4800             :   &Mips::GPR64_with_sub_32_in_GPRMM16ZeroRegClass,
    4801             :   &Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClass,
    4802             :   nullptr
    4803             : };
    4804             : 
    4805             : static const TargetRegisterClass *const GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroSuperclasses[] = {
    4806             :   &Mips::GPR64RegClass,
    4807             :   &Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
    4808             :   &Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass,
    4809             :   &Mips::GPR64_with_sub_32_in_CPU16RegsRegClass,
    4810             :   &Mips::GPR64_with_sub_32_in_GPRMM16MovePRegClass,
    4811             :   &Mips::GPR64_with_sub_32_in_GPRMM16ZeroRegClass,
    4812             :   &Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClass,
    4813             :   &Mips::GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePRegClass,
    4814             :   &Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePRegClass,
    4815             :   &Mips::GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroRegClass,
    4816             :   nullptr
    4817             : };
    4818             : 
    4819             : static const TargetRegisterClass *const GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondSuperclasses[] = {
    4820             :   &Mips::GPR64RegClass,
    4821             :   &Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
    4822             :   &Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass,
    4823             :   &Mips::GPR64_with_sub_32_in_CPU16RegsRegClass,
    4824             :   &Mips::GPR64_with_sub_32_in_GPRMM16ZeroRegClass,
    4825             :   &Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClass,
    4826             :   &Mips::GPR64_with_sub_32_in_GPRMM16MovePPairSecondRegClass,
    4827             :   &Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondRegClass,
    4828             :   &Mips::GPR64_with_sub_32_in_GPRMM16MovePPairFirstRegClass,
    4829             :   nullptr
    4830             : };
    4831             : 
    4832             : static const TargetRegisterClass *const ACC64Superclasses[] = {
    4833             :   &Mips::ACC64DSPRegClass,
    4834             :   nullptr
    4835             : };
    4836             : 
    4837             : static const TargetRegisterClass *const GP64Superclasses[] = {
    4838             :   &Mips::GPR64RegClass,
    4839             :   &Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
    4840             :   nullptr
    4841             : };
    4842             : 
    4843             : static const TargetRegisterClass *const GPR64_with_sub_32_in_CPURARegSuperclasses[] = {
    4844             :   &Mips::GPR64RegClass,
    4845             :   &Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
    4846             :   nullptr
    4847             : };
    4848             : 
    4849             : static const TargetRegisterClass *const GPR64_with_sub_32_in_GPR32ZEROSuperclasses[] = {
    4850             :   &Mips::GPR64RegClass,
    4851             :   &Mips::GPR64_with_sub_32_in_GPRMM16MovePRegClass,
    4852             :   &Mips::GPR64_with_sub_32_in_GPRMM16ZeroRegClass,
    4853             :   &Mips::GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroRegClass,
    4854             :   nullptr
    4855             : };
    4856             : 
    4857             : static const TargetRegisterClass *const SP64Superclasses[] = {
    4858             :   &Mips::GPR64RegClass,
    4859             :   &Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
    4860             :   &Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass,
    4861             :   nullptr
    4862             : };
    4863             : 
    4864             : static const TargetRegisterClass *const MSA128BSuperclasses[] = {
    4865             :   &Mips::MSA128F16RegClass,
    4866             :   &Mips::MSA128DRegClass,
    4867             :   &Mips::MSA128HRegClass,
    4868             :   &Mips::MSA128WRegClass,
    4869             :   nullptr
    4870             : };
    4871             : 
    4872             : static const TargetRegisterClass *const MSA128DSuperclasses[] = {
    4873             :   &Mips::MSA128F16RegClass,
    4874             :   &Mips::MSA128BRegClass,
    4875             :   &Mips::MSA128HRegClass,
    4876             :   &Mips::MSA128WRegClass,
    4877             :   nullptr
    4878             : };
    4879             : 
    4880             : static const TargetRegisterClass *const MSA128HSuperclasses[] = {
    4881             :   &Mips::MSA128F16RegClass,
    4882             :   &Mips::MSA128BRegClass,
    4883             :   &Mips::MSA128DRegClass,
    4884             :   &Mips::MSA128WRegClass,
    4885             :   nullptr
    4886             : };
    4887             : 
    4888             : static const TargetRegisterClass *const MSA128WSuperclasses[] = {
    4889             :   &Mips::MSA128F16RegClass,
    4890             :   &Mips::MSA128BRegClass,
    4891             :   &Mips::MSA128DRegClass,
    4892             :   &Mips::MSA128HRegClass,
    4893             :   nullptr
    4894             : };
    4895             : 
    4896             : static const TargetRegisterClass *const MSA128B_with_sub_64_in_OddSPSuperclasses[] = {
    4897             :   &Mips::MSA128F16RegClass,
    4898             :   &Mips::MSA128F16_with_sub_64_in_OddSPRegClass,
    4899             :   &Mips::MSA128BRegClass,
    4900             :   &Mips::MSA128DRegClass,
    4901             :   &Mips::MSA128HRegClass,
    4902             :   &Mips::MSA128WRegClass,
    4903             :   nullptr
    4904             : };
    4905             : 
    4906             : static const TargetRegisterClass *const MSA128WEvensSuperclasses[] = {
    4907             :   &Mips::MSA128F16RegClass,
    4908             :   &Mips::MSA128BRegClass,
    4909             :   &Mips::MSA128DRegClass,
    4910             :   &Mips::MSA128HRegClass,
    4911             :   &Mips::MSA128WRegClass,
    4912             :   nullptr
    4913             : };
    4914             : 
    4915             : 
    4916             : namespace Mips {   // Register class instances
    4917             :   extern const TargetRegisterClass MSA128F16RegClass = {
    4918             :     &MipsMCRegisterClasses[MSA128F16RegClassID],
    4919             :     MSA128F16SubClassMask,
    4920             :     SuperRegIdxSeqs + 1,
    4921             :     LaneBitmask(0x00000041),
    4922             :     0,
    4923             :     true, /* HasDisjunctSubRegs */
    4924             :     false, /* CoveredBySubRegs */
    4925             :     NullRegClasses,
    4926             :     nullptr
    4927             :   };
    4928             : 
    4929             :   extern const TargetRegisterClass MSA128F16_with_sub_64_in_OddSPRegClass = {
    4930             :     &MipsMCRegisterClasses[MSA128F16_with_sub_64_in_OddSPRegClassID],
    4931             :     MSA128F16_with_sub_64_in_OddSPSubClassMask,
    4932             :     SuperRegIdxSeqs + 1,
    4933             :     LaneBitmask(0x00000041),
    4934             :     0,
    4935             :     true, /* HasDisjunctSubRegs */
    4936             :     false, /* CoveredBySubRegs */
    4937             :     MSA128F16_with_sub_64_in_OddSPSuperclasses,
    4938             :     nullptr
    4939             :   };
    4940             : 
    4941             :   extern const TargetRegisterClass OddSPRegClass = {
    4942             :     &MipsMCRegisterClasses[OddSPRegClassID],
    4943             :     OddSPSubClassMask,
    4944             :     SuperRegIdxSeqs + 9,
    4945             :     LaneBitmask(0x00000041),
    4946             :     0,
    4947             :     true, /* HasDisjunctSubRegs */
    4948             :     false, /* CoveredBySubRegs */
    4949             :     NullRegClasses,
    4950             :     nullptr
    4951             :   };
    4952             : 
    4953             :   extern const TargetRegisterClass CCRRegClass = {
    4954             :     &MipsMCRegisterClasses[CCRRegClassID],
    4955             :     CCRSubClassMask,
    4956             :     SuperRegIdxSeqs + 1,
    4957             :     LaneBitmask(0x00000001),
    4958             :     0,
    4959             :     false, /* HasDisjunctSubRegs */
    4960             :     false, /* CoveredBySubRegs */
    4961             :     NullRegClasses,
    4962             :     nullptr
    4963             :   };
    4964             : 
    4965             :   extern const TargetRegisterClass COP0RegClass = {
    4966             :     &MipsMCRegisterClasses[COP0RegClassID],
    4967             :     COP0SubClassMask,
    4968             :     SuperRegIdxSeqs + 1,
    4969             :     LaneBitmask(0x00000001),
    4970             :     0,
    4971             :     false, /* HasDisjunctSubRegs */
    4972             :     false, /* CoveredBySubRegs */
    4973             :     NullRegClasses,
    4974             :     nullptr
    4975             :   };
    4976             : 
    4977             :   extern const TargetRegisterClass COP2RegClass = {
    4978             :     &MipsMCRegisterClasses[COP2RegClassID],
    4979             :     COP2SubClassMask,
    4980             :     SuperRegIdxSeqs + 1,
    4981             :     LaneBitmask(0x00000001),
    4982             :     0,
    4983             :     false, /* HasDisjunctSubRegs */
    4984             :     false, /* CoveredBySubRegs */
    4985             :     NullRegClasses,
    4986             :     nullptr
    4987             :   };
    4988             : 
    4989             :   extern const TargetRegisterClass COP3RegClass = {
    4990             :     &MipsMCRegisterClasses[COP3RegClassID],
    4991             :     COP3SubClassMask,
    4992             :     SuperRegIdxSeqs + 1,
    4993             :     LaneBitmask(0x00000001),
    4994             :     0,
    4995             :     false, /* HasDisjunctSubRegs */
    4996             :     false, /* CoveredBySubRegs */
    4997             :     NullRegClasses,
    4998             :     nullptr
    4999             :   };
    5000             : 
    5001             :   extern const TargetRegisterClass DSPRRegClass = {
    5002             :     &MipsMCRegisterClasses[DSPRRegClassID],
    5003             :     DSPRSubClassMask,
    5004             :     SuperRegIdxSeqs + 0,
    5005             :     LaneBitmask(0x00000001),
    5006             :     0,
    5007             :     false, /* HasDisjunctSubRegs */
    5008             :     false, /* CoveredBySubRegs */
    5009             :     NullRegClasses,
    5010             :     nullptr
    5011             :   };
    5012             : 
    5013             :   extern const TargetRegisterClass FGR32RegClass = {
    5014             :     &MipsMCRegisterClasses[FGR32RegClassID],
    5015             :     FGR32SubClassMask,
    5016             :     SuperRegIdxSeqs + 10,
    5017             :     LaneBitmask(0x00000001),
    5018             :     0,
    5019             :     false, /* HasDisjunctSubRegs */
    5020             :     false, /* CoveredBySubRegs */
    5021             :     FGR32Superclasses,
    5022             :     nullptr
    5023             :   };
    5024             : 
    5025             :   extern const TargetRegisterClass FGRCCRegClass = {
    5026             :     &MipsMCRegisterClasses[FGRCCRegClassID],
    5027             :     FGRCCSubClassMask,
    5028             :     SuperRegIdxSeqs + 10,
    5029             :     LaneBitmask(0x00000001),
    5030             :     0,
    5031             :     false, /* HasDisjunctSubRegs */
    5032             :     false, /* CoveredBySubRegs */
    5033             :     FGRCCSuperclasses,
    5034             :     nullptr
    5035             :   };
    5036             : 
    5037             :   extern const TargetRegisterClass FGRH32RegClass = {
    5038             :     &MipsMCRegisterClasses[FGRH32RegClassID],
    5039             :     FGRH32SubClassMask,
    5040             :     SuperRegIdxSeqs + 4,
    5041             :     LaneBitmask(0x00000001),
    5042             :     0,
    5043             :     false, /* HasDisjunctSubRegs */
    5044             :     false, /* CoveredBySubRegs */
    5045             :     NullRegClasses,
    5046             :     nullptr
    5047             :   };
    5048             : 
    5049             :   extern const TargetRegisterClass GPR32RegClass = {
    5050             :     &MipsMCRegisterClasses[GPR32RegClassID],
    5051             :     GPR32SubClassMask,
    5052             :     SuperRegIdxSeqs + 0,
    5053             :     LaneBitmask(0x00000001),
    5054             :     0,
    5055             :     false, /* HasDisjunctSubRegs */
    5056             :     false, /* CoveredBySubRegs */
    5057             :     GPR32Superclasses,
    5058             :     nullptr
    5059             :   };
    5060             : 
    5061             :   extern const TargetRegisterClass HWRegsRegClass = {
    5062             :     &MipsMCRegisterClasses[HWRegsRegClassID],
    5063             :     HWRegsSubClassMask,
    5064             :     SuperRegIdxSeqs + 1,
    5065             :     LaneBitmask(0x00000001),
    5066             :     0,
    5067             :     false, /* HasDisjunctSubRegs */
    5068             :     false, /* CoveredBySubRegs */
    5069             :     NullRegClasses,
    5070             :     nullptr
    5071             :   };
    5072             : 
    5073             :   extern const TargetRegisterClass GPR32NONZERORegClass = {
    5074             :     &MipsMCRegisterClasses[GPR32NONZERORegClassID],
    5075             :     GPR32NONZEROSubClassMask,
    5076             :     SuperRegIdxSeqs + 0,
    5077             :     LaneBitmask(0x00000001),
    5078             :     0,
    5079             :     false, /* HasDisjunctSubRegs */
    5080             :     false, /* CoveredBySubRegs */
    5081             :     GPR32NONZEROSuperclasses,
    5082             :     nullptr
    5083             :   };
    5084             : 
    5085             :   extern const TargetRegisterClass OddSP_with_sub_hiRegClass = {
    5086             :     &MipsMCRegisterClasses[OddSP_with_sub_hiRegClassID],
    5087             :     OddSP_with_sub_hiSubClassMask,
    5088             :     SuperRegIdxSeqs + 2,
    5089             :     LaneBitmask(0x00000041),
    5090             :     0,
    5091             :     true, /* HasDisjunctSubRegs */
    5092             :     true, /* CoveredBySubRegs */
    5093             :     OddSP_with_sub_hiSuperclasses,
    5094             :     nullptr
    5095             :   };
    5096             : 
    5097             :   extern const TargetRegisterClass FGR32_and_OddSPRegClass = {
    5098             :     &MipsMCRegisterClasses[FGR32_and_OddSPRegClassID],
    5099             :     FGR32_and_OddSPSubClassMask,
    5100             :     SuperRegIdxSeqs + 10,
    5101             :     LaneBitmask(0x00000001),
    5102             :     0,
    5103             :     false, /* HasDisjunctSubRegs */
    5104             :     false, /* CoveredBySubRegs */
    5105             :     FGR32_and_OddSPSuperclasses,
    5106             :     nullptr
    5107             :   };
    5108             : 
    5109             :   extern const TargetRegisterClass FGRH32_and_OddSPRegClass = {
    5110             :     &MipsMCRegisterClasses[FGRH32_and_OddSPRegClassID],
    5111             :     FGRH32_and_OddSPSubClassMask,
    5112             :     SuperRegIdxSeqs + 4,
    5113             :     LaneBitmask(0x00000001),
    5114             :     0,
    5115             :     false, /* HasDisjunctSubRegs */
    5116             :     false, /* CoveredBySubRegs */
    5117             :     FGRH32_and_OddSPSuperclasses,
    5118             :     nullptr
    5119             :   };
    5120             : 
    5121             :   extern const TargetRegisterClass OddSP_with_sub_hi_with_sub_hi_in_FGRH32RegClass = {
    5122             :     &MipsMCRegisterClasses[OddSP_with_sub_hi_with_sub_hi_in_FGRH32RegClassID],
    5123             :     OddSP_with_sub_hi_with_sub_hi_in_FGRH32SubClassMask,
    5124             :     SuperRegIdxSeqs + 2,
    5125             :     LaneBitmask(0x00000041),
    5126             :     0,
    5127             :     true, /* HasDisjunctSubRegs */
    5128             :     true, /* CoveredBySubRegs */
    5129             :     OddSP_with_sub_hi_with_sub_hi_in_FGRH32Superclasses,
    5130             :     nullptr
    5131             :   };
    5132             : 
    5133             :   extern const TargetRegisterClass CPU16RegsPlusSPRegClass = {
    5134             :     &MipsMCRegisterClasses[CPU16RegsPlusSPRegClassID],
    5135             :     CPU16RegsPlusSPSubClassMask,
    5136             :     SuperRegIdxSeqs + 0,
    5137             :     LaneBitmask(0x00000001),
    5138             :     0,
    5139             :     false, /* HasDisjunctSubRegs */
    5140             :     false, /* CoveredBySubRegs */
    5141             :     CPU16RegsPlusSPSuperclasses,
    5142             :     nullptr
    5143             :   };
    5144             : 
    5145             :   extern const TargetRegisterClass CPU16RegsRegClass = {
    5146             :     &MipsMCRegisterClasses[CPU16RegsRegClassID],
    5147             :     CPU16RegsSubClassMask,
    5148             :     SuperRegIdxSeqs + 0,
    5149             :     LaneBitmask(0x00000001),
    5150             :     0,
    5151             :     false, /* HasDisjunctSubRegs */
    5152             :     false, /* CoveredBySubRegs */
    5153             :     CPU16RegsSuperclasses,
    5154             :     nullptr
    5155             :   };
    5156             : 
    5157             :   extern const TargetRegisterClass FCCRegClass = {
    5158             :     &MipsMCRegisterClasses[FCCRegClassID],
    5159             :     FCCSubClassMask,
    5160             :     SuperRegIdxSeqs + 1,
    5161             :     LaneBitmask(0x00000001),
    5162             :     0,
    5163             :     false, /* HasDisjunctSubRegs */
    5164             :     false, /* CoveredBySubRegs */
    5165             :     NullRegClasses,
    5166             :     nullptr
    5167             :   };
    5168             : 
    5169             :   extern const TargetRegisterClass GPRMM16RegClass = {
    5170             :     &MipsMCRegisterClasses[GPRMM16RegClassID],
    5171             :     GPRMM16SubClassMask,
    5172             :     SuperRegIdxSeqs + 0,
    5173             :     LaneBitmask(0x00000001),
    5174             :     0,
    5175             :     false, /* HasDisjunctSubRegs */
    5176             :     false, /* CoveredBySubRegs */
    5177             :     GPRMM16Superclasses,
    5178             :     nullptr
    5179             :   };
    5180             : 
    5181             :   extern const TargetRegisterClass GPRMM16MovePRegClass = {
    5182             :     &MipsMCRegisterClasses[GPRMM16MovePRegClassID],
    5183             :     GPRMM16MovePSubClassMask,
    5184             :     SuperRegIdxSeqs + 0,
    5185             :     LaneBitmask(0x00000001),
    5186             :     0,
    5187             :     false, /* HasDisjunctSubRegs */
    5188             :     false, /* CoveredBySubRegs */
    5189             :     GPRMM16MovePSuperclasses,
    5190             :     nullptr
    5191             :   };
    5192             : 
    5193             :   extern const TargetRegisterClass GPRMM16ZeroRegClass = {
    5194             :     &MipsMCRegisterClasses[GPRMM16ZeroRegClassID],
    5195             :     GPRMM16ZeroSubClassMask,
    5196             :     SuperRegIdxSeqs + 0,
    5197             :     LaneBitmask(0x00000001),
    5198             :     0,
    5199             :     false, /* HasDisjunctSubRegs */
    5200             :     false, /* CoveredBySubRegs */
    5201             :     GPRMM16ZeroSuperclasses,
    5202             :     nullptr
    5203             :   };
    5204             : 
    5205             :   extern const TargetRegisterClass MSACtrlRegClass = {
    5206             :     &MipsMCRegisterClasses[MSACtrlRegClassID],
    5207             :     MSACtrlSubClassMask,
    5208             :     SuperRegIdxSeqs + 1,
    5209             :     LaneBitmask(0x00000001),
    5210             :     0,
    5211             :     false, /* HasDisjunctSubRegs */
    5212             :     false, /* CoveredBySubRegs */
    5213             :     NullRegClasses,
    5214             :     nullptr
    5215             :   };
    5216             : 
    5217             :   extern const TargetRegisterClass OddSP_with_sub_hi_with_sub_hi_in_FGR32RegClass = {
    5218             :     &MipsMCRegisterClasses[OddSP_with_sub_hi_with_sub_hi_in_FGR32RegClassID],
    5219             :     OddSP_with_sub_hi_with_sub_hi_in_FGR32SubClassMask,
    5220             :     SuperRegIdxSeqs + 1,
    5221             :     LaneBitmask(0x00000041),
    5222             :     0,
    5223             :     true, /* HasDisjunctSubRegs */
    5224             :     true, /* CoveredBySubRegs */
    5225             :     OddSP_with_sub_hi_with_sub_hi_in_FGR32Superclasses,
    5226             :     nullptr
    5227             :   };
    5228             : 
    5229             :   extern const TargetRegisterClass CPU16Regs_and_GPRMM16ZeroRegClass = {
    5230             :     &MipsMCRegisterClasses[CPU16Regs_and_GPRMM16ZeroRegClassID],
    5231             :     CPU16Regs_and_GPRMM16ZeroSubClassMask,
    5232             :     SuperRegIdxSeqs + 0,
    5233             :     LaneBitmask(0x00000001),
    5234             :     0,
    5235             :     false, /* HasDisjunctSubRegs */
    5236             :     false, /* CoveredBySubRegs */
    5237             :     CPU16Regs_and_GPRMM16ZeroSuperclasses,
    5238             :     nullptr
    5239             :   };
    5240             : 
    5241             :   extern const TargetRegisterClass GPR32NONZERO_and_GPRMM16MovePRegClass = {
    5242             :     &MipsMCRegisterClasses[GPR32NONZERO_and_GPRMM16MovePRegClassID],
    5243             :     GPR32NONZERO_and_GPRMM16MovePSubClassMask,
    5244             :     SuperRegIdxSeqs + 0,
    5245             :     LaneBitmask(0x00000001),
    5246             :     0,
    5247             :     false, /* HasDisjunctSubRegs */
    5248             :     false, /* CoveredBySubRegs */
    5249             :     GPR32NONZERO_and_GPRMM16MovePSuperclasses,
    5250             :     nullptr
    5251             :   };
    5252             : 
    5253             :   extern const TargetRegisterClass GPRMM16MovePPairSecondRegClass = {
    5254             :     &MipsMCRegisterClasses[GPRMM16MovePPairSecondRegClassID],
    5255             :     GPRMM16MovePPairSecondSubClassMask,
    5256             :     SuperRegIdxSeqs + 0,
    5257             :     LaneBitmask(0x00000001),
    5258             :     0,
    5259             :     false, /* HasDisjunctSubRegs */
    5260             :     false, /* CoveredBySubRegs */
    5261             :     GPRMM16MovePPairSecondSuperclasses,
    5262             :     nullptr
    5263             :   };
    5264             : 
    5265             :   extern const TargetRegisterClass CPU16Regs_and_GPRMM16MovePRegClass = {
    5266             :     &MipsMCRegisterClasses[CPU16Regs_and_GPRMM16MovePRegClassID],
    5267             :     CPU16Regs_and_GPRMM16MovePSubClassMask,
    5268             :     SuperRegIdxSeqs + 0,
    5269             :     LaneBitmask(0x00000001),
    5270             :     0,
    5271             :     false, /* HasDisjunctSubRegs */
    5272             :     false, /* CoveredBySubRegs */
    5273             :     CPU16Regs_and_GPRMM16MovePSuperclasses,
    5274             :     nullptr
    5275             :   };
    5276             : 
    5277             :   extern const TargetRegisterClass GPRMM16MoveP_and_GPRMM16ZeroRegClass = {
    5278             :     &MipsMCRegisterClasses[GPRMM16MoveP_and_GPRMM16ZeroRegClassID],
    5279             :     GPRMM16MoveP_and_GPRMM16ZeroSubClassMask,
    5280             :     SuperRegIdxSeqs + 0,
    5281             :     LaneBitmask(0x00000001),
    5282             :     0,
    5283             :     false, /* HasDisjunctSubRegs */
    5284             :     false, /* CoveredBySubRegs */
    5285             :     GPRMM16MoveP_and_GPRMM16ZeroSuperclasses,
    5286             :     nullptr
    5287             :   };
    5288             : 
    5289             :   extern const TargetRegisterClass HI32DSPRegClass = {
    5290             :     &MipsMCRegisterClasses[HI32DSPRegClassID],
    5291             :     HI32DSPSubClassMask,
    5292             :     SuperRegIdxSeqs + 13,
    5293             :     LaneBitmask(0x00000001),
    5294             :     0,
    5295             :     false, /* HasDisjunctSubRegs */
    5296             :     false, /* CoveredBySubRegs */
    5297             :     NullRegClasses,
    5298             :     nullptr
    5299             :   };
    5300             : 
    5301             :   extern const TargetRegisterClass LO32DSPRegClass = {
    5302             :     &MipsMCRegisterClasses[LO32DSPRegClassID],
    5303             :     LO32DSPSubClassMask,
    5304             :     SuperRegIdxSeqs + 6,
    5305             :     LaneBitmask(0x00000001),
    5306             :     0,
    5307             :     false, /* HasDisjunctSubRegs */
    5308             :     false, /* CoveredBySubRegs */
    5309             :     NullRegClasses,
    5310             :     nullptr
    5311             :   };
    5312             : 
    5313             :   extern const TargetRegisterClass CPU16Regs_and_GPRMM16MovePPairSecondRegClass = {
    5314             :     &MipsMCRegisterClasses[CPU16Regs_and_GPRMM16MovePPairSecondRegClassID],
    5315             :     CPU16Regs_and_GPRMM16MovePPairSecondSubClassMask,
    5316             :     SuperRegIdxSeqs + 0,
    5317             :     LaneBitmask(0x00000001),
    5318             :     0,
    5319             :     false, /* HasDisjunctSubRegs */
    5320             :     false, /* CoveredBySubRegs */
    5321             :     CPU16Regs_and_GPRMM16MovePPairSecondSuperclasses,
    5322             :     nullptr
    5323             :   };
    5324             : 
    5325             :   extern const TargetRegisterClass GPRMM16MovePPairFirstRegClass = {
    5326             :     &MipsMCRegisterClasses[GPRMM16MovePPairFirstRegClassID],
    5327             :     GPRMM16MovePPairFirstSubClassMask,
    5328             :     SuperRegIdxSeqs + 0,
    5329             :     LaneBitmask(0x00000001),
    5330             :     0,
    5331             :     false, /* HasDisjunctSubRegs */
    5332             :     false, /* CoveredBySubRegs */
    5333             :     GPRMM16MovePPairFirstSuperclasses,
    5334             :     nullptr
    5335             :   };
    5336             : 
    5337             :   extern const TargetRegisterClass GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClass = {
    5338             :     &MipsMCRegisterClasses[GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClassID],
    5339             :     GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroSubClassMask,
    5340             :     SuperRegIdxSeqs + 0,
    5341             :     LaneBitmask(0x00000001),
    5342             :     0,
    5343             :     false, /* HasDisjunctSubRegs */
    5344             :     false, /* CoveredBySubRegs */
    5345             :     GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroSuperclasses,
    5346             :     nullptr
    5347             :   };
    5348             : 
    5349             :   extern const TargetRegisterClass GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClass = {
    5350             :     &MipsMCRegisterClasses[GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClassID],
    5351             :     GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondSubClassMask,
    5352             :     SuperRegIdxSeqs + 0,
    5353             :     LaneBitmask(0x00000001),
    5354             :     0,
    5355             :     false, /* HasDisjunctSubRegs */
    5356             :     false, /* CoveredBySubRegs */
    5357             :     GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondSuperclasses,
    5358             :     nullptr
    5359             :   };
    5360             : 
    5361             :   extern const TargetRegisterClass CPURARegRegClass = {
    5362             :     &MipsMCRegisterClasses[CPURARegRegClassID],
    5363             :     CPURARegSubClassMask,
    5364             :     SuperRegIdxSeqs + 0,
    5365             :     LaneBitmask(0x00000001),
    5366             :     0,
    5367             :     false, /* HasDisjunctSubRegs */
    5368             :     false, /* CoveredBySubRegs */
    5369             :     CPURARegSuperclasses,
    5370             :     nullptr
    5371             :   };
    5372             : 
    5373             :   extern const TargetRegisterClass CPUSPRegRegClass = {
    5374             :     &MipsMCRegisterClasses[CPUSPRegRegClassID],
    5375             :     CPUSPRegSubClassMask,
    5376             :     SuperRegIdxSeqs + 0,
    5377             :     LaneBitmask(0x00000001),
    5378             :     0,
    5379             :     false, /* HasDisjunctSubRegs */
    5380             :     false, /* CoveredBySubRegs */
    5381             :     CPUSPRegSuperclasses,
    5382             :     nullptr
    5383             :   };
    5384             : 
    5385             :   extern const TargetRegisterClass DSPCCRegClass = {
    5386             :     &MipsMCRegisterClasses[DSPCCRegClassID],
    5387             :     DSPCCSubClassMask,
    5388             :     SuperRegIdxSeqs + 1,
    5389             :     LaneBitmask(0x00000001),
    5390             :     0,
    5391             :     false, /* HasDisjunctSubRegs */
    5392             :     false, /* CoveredBySubRegs */
    5393             :     NullRegClasses,
    5394             :     nullptr
    5395             :   };
    5396             : 
    5397             :   extern const TargetRegisterClass GP32RegClass = {
    5398             :     &MipsMCRegisterClasses[GP32RegClassID],
    5399             :     GP32SubClassMask,
    5400             :     SuperRegIdxSeqs + 0,
    5401             :     LaneBitmask(0x00000001),
    5402             :     0,
    5403             :     false, /* HasDisjunctSubRegs */
    5404             :     false, /* CoveredBySubRegs */
    5405             :     GP32Superclasses,
    5406             :     nullptr
    5407             :   };
    5408             : 
    5409             :   extern const TargetRegisterClass GPR32ZERORegClass = {
    5410             :     &MipsMCRegisterClasses[GPR32ZERORegClassID],
    5411             :     GPR32ZEROSubClassMask,
    5412             :     SuperRegIdxSeqs + 0,
    5413             :     LaneBitmask(0x00000001),
    5414             :     0,
    5415             :     false, /* HasDisjunctSubRegs */
    5416             :     false, /* CoveredBySubRegs */
    5417             :     GPR32ZEROSuperclasses,
    5418             :     nullptr
    5419             :   };
    5420             : 
    5421             :   extern const TargetRegisterClass HI32RegClass = {
    5422             :     &MipsMCRegisterClasses[HI32RegClassID],
    5423             :     HI32SubClassMask,
    5424             :     SuperRegIdxSeqs + 13,
    5425             :     LaneBitmask(0x00000001),
    5426             :     0,
    5427             :     false, /* HasDisjunctSubRegs */
    5428             :     false, /* CoveredBySubRegs */
    5429             :     HI32Superclasses,
    5430             :     nullptr
    5431             :   };
    5432             : 
    5433             :   extern const TargetRegisterClass LO32RegClass = {
    5434             :     &MipsMCRegisterClasses[LO32RegClassID],
    5435             :     LO32SubClassMask,
    5436             :     SuperRegIdxSeqs + 6,
    5437             :     LaneBitmask(0x00000001),
    5438             :     0,
    5439             :     false, /* HasDisjunctSubRegs */
    5440             :     false, /* CoveredBySubRegs */
    5441             :     LO32Superclasses,
    5442             :     nullptr
    5443             :   };
    5444             : 
    5445             :   extern const TargetRegisterClass SP32RegClass = {
    5446             :     &MipsMCRegisterClasses[SP32RegClassID],
    5447             :     SP32SubClassMask,
    5448             :     SuperRegIdxSeqs + 0,
    5449             :     LaneBitmask(0x00000001),
    5450             :     0,
    5451             :     false, /* HasDisjunctSubRegs */
    5452             :     false, /* CoveredBySubRegs */
    5453             :     SP32Superclasses,
    5454             :     nullptr
    5455             :   };
    5456             : 
    5457             :   extern const TargetRegisterClass FGR64RegClass = {
    5458             :     &MipsMCRegisterClasses[FGR64RegClassID],
    5459             :     FGR64SubClassMask,
    5460             :     SuperRegIdxSeqs + 2,
    5461             :     LaneBitmask(0x00000041),
    5462             :     0,
    5463             :     true, /* HasDisjunctSubRegs */
    5464             :     true, /* CoveredBySubRegs */
    5465             :     NullRegClasses,
    5466             :     nullptr
    5467             :   };
    5468             : 
    5469             :   extern const TargetRegisterClass GPR64RegClass = {
    5470             :     &MipsMCRegisterClasses[GPR64RegClassID],
    5471             :     GPR64SubClassMask,
    5472             :     SuperRegIdxSeqs + 1,
    5473             :     LaneBitmask(0x00000001),
    5474             :     0,
    5475             :     false, /* HasDisjunctSubRegs */
    5476             :     false, /* CoveredBySubRegs */
    5477             :     NullRegClasses,
    5478             :     nullptr
    5479             :   };
    5480             : 
    5481             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPR32NONZERORegClass = {
    5482             :     &MipsMCRegisterClasses[GPR64_with_sub_32_in_GPR32NONZERORegClassID],
    5483             :     GPR64_with_sub_32_in_GPR32NONZEROSubClassMask,
    5484             :     SuperRegIdxSeqs + 1,
    5485             :     LaneBitmask(0x00000001),
    5486             :     0,
    5487             :     false, /* HasDisjunctSubRegs */
    5488             :     false, /* CoveredBySubRegs */
    5489             :     GPR64_with_sub_32_in_GPR32NONZEROSuperclasses,
    5490             :     nullptr
    5491             :   };
    5492             : 
    5493             :   extern const TargetRegisterClass AFGR64RegClass = {
    5494             :     &MipsMCRegisterClasses[AFGR64RegClassID],
    5495             :     AFGR64SubClassMask,
    5496             :     SuperRegIdxSeqs + 1,
    5497             :     LaneBitmask(0x00000041),
    5498             :     0,
    5499             :     true, /* HasDisjunctSubRegs */
    5500             :     true, /* CoveredBySubRegs */
    5501             :     NullRegClasses,
    5502             :     nullptr
    5503             :   };
    5504             : 
    5505             :   extern const TargetRegisterClass FGR64_and_OddSPRegClass = {
    5506             :     &MipsMCRegisterClasses[FGR64_and_OddSPRegClassID],
    5507             :     FGR64_and_OddSPSubClassMask,
    5508             :     SuperRegIdxSeqs + 2,
    5509             :     LaneBitmask(0x00000041),
    5510             :     0,
    5511             :     true, /* HasDisjunctSubRegs */
    5512             :     true, /* CoveredBySubRegs */
    5513             :     FGR64_and_OddSPSuperclasses,
    5514             :     nullptr
    5515             :   };
    5516             : 
    5517             :   extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass = {
    5518             :     &MipsMCRegisterClasses[GPR64_with_sub_32_in_CPU16RegsPlusSPRegClassID],
    5519             :     GPR64_with_sub_32_in_CPU16RegsPlusSPSubClassMask,
    5520             :     SuperRegIdxSeqs + 1,
    5521             :     LaneBitmask(0x00000001),
    5522             :     0,
    5523             :     false, /* HasDisjunctSubRegs */
    5524             :     false, /* CoveredBySubRegs */
    5525             :     GPR64_with_sub_32_in_CPU16RegsPlusSPSuperclasses,
    5526             :     nullptr
    5527             :   };
    5528             : 
    5529             :   extern const TargetRegisterClass AFGR64_and_OddSPRegClass = {
    5530             :     &MipsMCRegisterClasses[AFGR64_and_OddSPRegClassID],
    5531             :     AFGR64_and_OddSPSubClassMask,
    5532             :     SuperRegIdxSeqs + 1,
    5533             :     LaneBitmask(0x00000041),
    5534             :     0,
    5535             :     true, /* HasDisjunctSubRegs */
    5536             :     true, /* CoveredBySubRegs */
    5537             :     AFGR64_and_OddSPSuperclasses,
    5538             :     nullptr
    5539             :   };
    5540             : 
    5541             :   extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16RegsRegClass = {
    5542             :     &MipsMCRegisterClasses[GPR64_with_sub_32_in_CPU16RegsRegClassID],
    5543             :     GPR64_with_sub_32_in_CPU16RegsSubClassMask,
    5544             :     SuperRegIdxSeqs + 1,
    5545             :     LaneBitmask(0x00000001),
    5546             :     0,
    5547             :     false, /* HasDisjunctSubRegs */
    5548             :     false, /* CoveredBySubRegs */
    5549             :     GPR64_with_sub_32_in_CPU16RegsSuperclasses,
    5550             :     nullptr
    5551             :   };
    5552             : 
    5553             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MovePRegClass = {
    5554             :     &MipsMCRegisterClasses[GPR64_with_sub_32_in_GPRMM16MovePRegClassID],
    5555             :     GPR64_with_sub_32_in_GPRMM16MovePSubClassMask,
    5556             :     SuperRegIdxSeqs + 1,
    5557             :     LaneBitmask(0x00000001),
    5558             :     0,
    5559             :     false, /* HasDisjunctSubRegs */
    5560             :     false, /* CoveredBySubRegs */
    5561             :     GPR64_with_sub_32_in_GPRMM16MovePSuperclasses,
    5562             :     nullptr
    5563             :   };
    5564             : 
    5565             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16ZeroRegClass = {
    5566             :     &MipsMCRegisterClasses[GPR64_with_sub_32_in_GPRMM16ZeroRegClassID],
    5567             :     GPR64_with_sub_32_in_GPRMM16ZeroSubClassMask,
    5568             :     SuperRegIdxSeqs + 1,
    5569             :     LaneBitmask(0x00000001),
    5570             :     0,
    5571             :     false, /* HasDisjunctSubRegs */
    5572             :     false, /* CoveredBySubRegs */
    5573             :     GPR64_with_sub_32_in_GPRMM16ZeroSuperclasses,
    5574             :     nullptr
    5575             :   };
    5576             : 
    5577             :   extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClass = {
    5578             :     &MipsMCRegisterClasses[GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClassID],
    5579             :     GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroSubClassMask,
    5580             :     SuperRegIdxSeqs + 1,
    5581             :     LaneBitmask(0x00000001),
    5582             :     0,
    5583             :     false, /* HasDisjunctSubRegs */
    5584             :     false, /* CoveredBySubRegs */
    5585             :     GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroSuperclasses,
    5586             :     nullptr
    5587             :   };
    5588             : 
    5589             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePRegClass = {
    5590             :     &MipsMCRegisterClasses[GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePRegClassID],
    5591             :     GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePSubClassMask,
    5592             :     SuperRegIdxSeqs + 1,
    5593             :     LaneBitmask(0x00000001),
    5594             :     0,
    5595             :     false, /* HasDisjunctSubRegs */
    5596             :     false, /* CoveredBySubRegs */
    5597             :     GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePSuperclasses,
    5598             :     nullptr
    5599             :   };
    5600             : 
    5601             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MovePPairSecondRegClass = {
    5602             :     &MipsMCRegisterClasses[GPR64_with_sub_32_in_GPRMM16MovePPairSecondRegClassID],
    5603             :     GPR64_with_sub_32_in_GPRMM16MovePPairSecondSubClassMask,
    5604             :     SuperRegIdxSeqs + 1,
    5605             :     LaneBitmask(0x00000001),
    5606             :     0,
    5607             :     false, /* HasDisjunctSubRegs */
    5608             :     false, /* CoveredBySubRegs */
    5609             :     GPR64_with_sub_32_in_GPRMM16MovePPairSecondSuperclasses,
    5610             :     nullptr
    5611             :   };
    5612             : 
    5613             :   extern const TargetRegisterClass ACC64DSPRegClass = {
    5614             :     &MipsMCRegisterClasses[ACC64DSPRegClassID],
    5615             :     ACC64DSPSubClassMask,
    5616             :     SuperRegIdxSeqs + 17,
    5617             :     LaneBitmask(0x00000041),
    5618             :     0,
    5619             :     true, /* HasDisjunctSubRegs */
    5620             :     true, /* CoveredBySubRegs */
    5621             :     NullRegClasses,
    5622             :     nullptr
    5623             :   };
    5624             : 
    5625             :   extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePRegClass = {
    5626             :     &MipsMCRegisterClasses[GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePRegClassID],
    5627             :     GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePSubClassMask,
    5628             :     SuperRegIdxSeqs + 1,
    5629             :     LaneBitmask(0x00000001),
    5630             :     0,
    5631             :     false, /* HasDisjunctSubRegs */
    5632             :     false, /* CoveredBySubRegs */
    5633             :     GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePSuperclasses,
    5634             :     nullptr
    5635             :   };
    5636             : 
    5637             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroRegClass = {
    5638             :     &MipsMCRegisterClasses[GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroRegClassID],
    5639             :     GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroSubClassMask,
    5640             :     SuperRegIdxSeqs + 1,
    5641             :     LaneBitmask(0x00000001),
    5642             :     0,
    5643             :     false, /* HasDisjunctSubRegs */
    5644             :     false, /* CoveredBySubRegs */
    5645             :     GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroSuperclasses,
    5646             :     nullptr
    5647             :   };
    5648             : 
    5649             :   extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondRegClass = {
    5650             :     &MipsMCRegisterClasses[GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondRegClassID],
    5651             :     GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondSubClassMask,
    5652             :     SuperRegIdxSeqs + 1,
    5653             :     LaneBitmask(0x00000001),
    5654             :     0,
    5655             :     false, /* HasDisjunctSubRegs */
    5656             :     false, /* CoveredBySubRegs */
    5657             :     GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondSuperclasses,
    5658             :     nullptr
    5659             :   };
    5660             : 
    5661             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MovePPairFirstRegClass = {
    5662             :     &MipsMCRegisterClasses[GPR64_with_sub_32_in_GPRMM16MovePPairFirstRegClassID],
    5663             :     GPR64_with_sub_32_in_GPRMM16MovePPairFirstSubClassMask,
    5664             :     SuperRegIdxSeqs + 1,
    5665             :     LaneBitmask(0x00000001),
    5666             :     0,
    5667             :     false, /* HasDisjunctSubRegs */
    5668             :     false, /* CoveredBySubRegs */
    5669             :     GPR64_with_sub_32_in_GPRMM16MovePPairFirstSuperclasses,
    5670             :     nullptr
    5671             :   };
    5672             : 
    5673             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClass = {
    5674             :     &MipsMCRegisterClasses[GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClassID],
    5675             :     GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroSubClassMask,
    5676             :     SuperRegIdxSeqs + 1,
    5677             :     LaneBitmask(0x00000001),
    5678             :     0,
    5679             :     false, /* HasDisjunctSubRegs */
    5680             :     false, /* CoveredBySubRegs */
    5681             :     GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroSuperclasses,
    5682             :     nullptr
    5683             :   };
    5684             : 
    5685             :   extern const TargetRegisterClass OCTEON_MPLRegClass = {
    5686             :     &MipsMCRegisterClasses[OCTEON_MPLRegClassID],
    5687             :     OCTEON_MPLSubClassMask,
    5688             :     SuperRegIdxSeqs + 1,
    5689             :     LaneBitmask(0x00000001),
    5690             :     0,
    5691             :     false, /* HasDisjunctSubRegs */
    5692             :     false, /* CoveredBySubRegs */
    5693             :     NullRegClasses,
    5694             :     nullptr
    5695             :   };
    5696             : 
    5697             :   extern const TargetRegisterClass OCTEON_PRegClass = {
    5698             :     &MipsMCRegisterClasses[OCTEON_PRegClassID],
    5699             :     OCTEON_PSubClassMask,
    5700             :     SuperRegIdxSeqs + 1,
    5701             :     LaneBitmask(0x00000001),
    5702             :     0,
    5703             :     false, /* HasDisjunctSubRegs */
    5704             :     false, /* CoveredBySubRegs */
    5705             :     NullRegClasses,
    5706             :     nullptr
    5707             :   };
    5708             : 
    5709             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClass = {
    5710             :     &MipsMCRegisterClasses[GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClassID],
    5711             :     GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondSubClassMask,
    5712             :     SuperRegIdxSeqs + 1,
    5713             :     LaneBitmask(0x00000001),
    5714             :     0,
    5715             :     false, /* HasDisjunctSubRegs */
    5716             :     false, /* CoveredBySubRegs */
    5717             :     GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondSuperclasses,
    5718             :     nullptr
    5719             :   };
    5720             : 
    5721             :   extern const TargetRegisterClass ACC64RegClass = {
    5722             :     &MipsMCRegisterClasses[ACC64RegClassID],
    5723             :     ACC64SubClassMask,
    5724             :     SuperRegIdxSeqs + 17,
    5725             :     LaneBitmask(0x00000041),
    5726             :     0,
    5727             :     true, /* HasDisjunctSubRegs */
    5728             :     true, /* CoveredBySubRegs */
    5729             :     ACC64Superclasses,
    5730             :     nullptr
    5731             :   };
    5732             : 
    5733             :   extern const TargetRegisterClass GP64RegClass = {
    5734             :     &MipsMCRegisterClasses[GP64RegClassID],
    5735             :     GP64SubClassMask,
    5736             :     SuperRegIdxSeqs + 1,
    5737             :     LaneBitmask(0x00000001),
    5738             :     0,
    5739             :     false, /* HasDisjunctSubRegs */
    5740             :     false, /* CoveredBySubRegs */
    5741             :     GP64Superclasses,
    5742             :     nullptr
    5743             :   };
    5744             : 
    5745             :   extern const TargetRegisterClass GPR64_with_sub_32_in_CPURARegRegClass = {
    5746             :     &MipsMCRegisterClasses[GPR64_with_sub_32_in_CPURARegRegClassID],
    5747             :     GPR64_with_sub_32_in_CPURARegSubClassMask,
    5748             :     SuperRegIdxSeqs + 1,
    5749             :     LaneBitmask(0x00000001),
    5750             :     0,
    5751             :     false, /* HasDisjunctSubRegs */
    5752             :     false, /* CoveredBySubRegs */
    5753             :     GPR64_with_sub_32_in_CPURARegSuperclasses,
    5754             :     nullptr
    5755             :   };
    5756             : 
    5757             :   extern const TargetRegisterClass GPR64_with_sub_32_in_GPR32ZERORegClass = {
    5758             :     &MipsMCRegisterClasses[GPR64_with_sub_32_in_GPR32ZERORegClassID],
    5759             :     GPR64_with_sub_32_in_GPR32ZEROSubClassMask,
    5760             :     SuperRegIdxSeqs + 1,
    5761             :     LaneBitmask(0x00000001),
    5762             :     0,
    5763             :     false, /* HasDisjunctSubRegs */
    5764             :     false, /* CoveredBySubRegs */
    5765             :     GPR64_with_sub_32_in_GPR32ZEROSuperclasses,
    5766             :     nullptr
    5767             :   };
    5768             : 
    5769             :   extern const TargetRegisterClass HI64RegClass = {
    5770             :     &MipsMCRegisterClasses[HI64RegClassID],
    5771             :     HI64SubClassMask,
    5772             :     SuperRegIdxSeqs + 4,
    5773             :     LaneBitmask(0x00000001),
    5774             :     0,
    5775             :     false, /* HasDisjunctSubRegs */
    5776             :     false, /* CoveredBySubRegs */
    5777             :     NullRegClasses,
    5778             :     nullptr
    5779             :   };
    5780             : 
    5781             :   extern const TargetRegisterClass LO64RegClass = {
    5782             :     &MipsMCRegisterClasses[LO64RegClassID],
    5783             :     LO64SubClassMask,
    5784             :     SuperRegIdxSeqs + 7,
    5785             :     LaneBitmask(0x00000001),
    5786             :     0,
    5787             :     false, /* HasDisjunctSubRegs */
    5788             :     false, /* CoveredBySubRegs */
    5789             :     NullRegClasses,
    5790             :     nullptr
    5791             :   };
    5792             : 
    5793             :   extern const TargetRegisterClass SP64RegClass = {
    5794             :     &MipsMCRegisterClasses[SP64RegClassID],
    5795             :     SP64SubClassMask,
    5796             :     SuperRegIdxSeqs + 1,
    5797             :     LaneBitmask(0x00000001),
    5798             :     0,
    5799             :     false, /* HasDisjunctSubRegs */
    5800             :     false, /* CoveredBySubRegs */
    5801             :     SP64Superclasses,
    5802             :     nullptr
    5803             :   };
    5804             : 
    5805             :   extern const TargetRegisterClass MSA128BRegClass = {
    5806             :     &MipsMCRegisterClasses[MSA128BRegClassID],
    5807             :     MSA128BSubClassMask,
    5808             :     SuperRegIdxSeqs + 1,
    5809             :     LaneBitmask(0x00000041),
    5810             :     0,
    5811             :     true, /* HasDisjunctSubRegs */
    5812             :     false, /* CoveredBySubRegs */
    5813             :     MSA128BSuperclasses,
    5814             :     nullptr
    5815             :   };
    5816             : 
    5817             :   extern const TargetRegisterClass MSA128DRegClass = {
    5818             :     &MipsMCRegisterClasses[MSA128DRegClassID],
    5819             :     MSA128DSubClassMask,
    5820             :     SuperRegIdxSeqs + 1,
    5821             :     LaneBitmask(0x00000041),
    5822             :     0,
    5823             :     true, /* HasDisjunctSubRegs */
    5824             :     false, /* CoveredBySubRegs */
    5825             :     MSA128DSuperclasses,
    5826             :     nullptr
    5827             :   };
    5828             : 
    5829             :   extern const TargetRegisterClass MSA128HRegClass = {
    5830             :     &MipsMCRegisterClasses[MSA128HRegClassID],
    5831             :     MSA128HSubClassMask,
    5832             :     SuperRegIdxSeqs + 1,
    5833             :     LaneBitmask(0x00000041),
    5834             :     0,
    5835             :     true, /* HasDisjunctSubRegs */
    5836             :     false, /* CoveredBySubRegs */
    5837             :     MSA128HSuperclasses,
    5838             :     nullptr
    5839             :   };
    5840             : 
    5841             :   extern const TargetRegisterClass MSA128WRegClass = {
    5842             :     &MipsMCRegisterClasses[MSA128WRegClassID],
    5843             :     MSA128WSubClassMask,
    5844             :     SuperRegIdxSeqs + 1,
    5845             :     LaneBitmask(0x00000041),
    5846             :     0,
    5847             :     true, /* HasDisjunctSubRegs */
    5848             :     false, /* CoveredBySubRegs */
    5849             :     MSA128WSuperclasses,
    5850             :     nullptr
    5851             :   };
    5852             : 
    5853             :   extern const TargetRegisterClass MSA128B_with_sub_64_in_OddSPRegClass = {
    5854             :     &MipsMCRegisterClasses[MSA128B_with_sub_64_in_OddSPRegClassID],
    5855             :     MSA128B_with_sub_64_in_OddSPSubClassMask,
    5856             :     SuperRegIdxSeqs + 1,
    5857             :     LaneBitmask(0x00000041),
    5858             :     0,
    5859             :     true, /* HasDisjunctSubRegs */
    5860             :     false, /* CoveredBySubRegs */
    5861             :     MSA128B_with_sub_64_in_OddSPSuperclasses,
    5862             :     nullptr
    5863             :   };
    5864             : 
    5865             :   extern const TargetRegisterClass MSA128WEvensRegClass = {
    5866             :     &MipsMCRegisterClasses[MSA128WEvensRegClassID],
    5867             :     MSA128WEvensSubClassMask,
    5868             :     SuperRegIdxSeqs + 1,
    5869             :     LaneBitmask(0x00000041),
    5870             :     0,
    5871             :     true, /* HasDisjunctSubRegs */
    5872             :     false, /* CoveredBySubRegs */
    5873             :     MSA128WEvensSuperclasses,
    5874             :     nullptr
    5875             :   };
    5876             : 
    5877             :   extern const TargetRegisterClass ACC128RegClass = {
    5878             :     &MipsMCRegisterClasses[ACC128RegClassID],
    5879             :     ACC128SubClassMask,
    5880             :     SuperRegIdxSeqs + 1,
    5881             :     LaneBitmask(0x00000041),
    5882             :     0,
    5883             :     true, /* HasDisjunctSubRegs */
    5884             :     true, /* CoveredBySubRegs */
    5885             :     NullRegClasses,
    5886             :     nullptr
    5887             :   };
    5888             : 
    5889             : } // end namespace Mips
    5890             : 
    5891             : namespace {
    5892             :   const TargetRegisterClass* const RegisterClasses[] = {
    5893             :     &Mips::MSA128F16RegClass,
    5894             :     &Mips::MSA128F16_with_sub_64_in_OddSPRegClass,
    5895             :     &Mips::OddSPRegClass,
    5896             :     &Mips::CCRRegClass,
    5897             :     &Mips::COP0RegClass,
    5898             :     &Mips::COP2RegClass,
    5899             :     &Mips::COP3RegClass,
    5900             :     &Mips::DSPRRegClass,
    5901             :     &Mips::FGR32RegClass,
    5902             :     &Mips::FGRCCRegClass,
    5903             :     &Mips::FGRH32RegClass,
    5904             :     &Mips::GPR32RegClass,
    5905             :     &Mips::HWRegsRegClass,
    5906             :     &Mips::GPR32NONZERORegClass,
    5907             :     &Mips::OddSP_with_sub_hiRegClass,
    5908             :     &Mips::FGR32_and_OddSPRegClass,
    5909             :     &Mips::FGRH32_and_OddSPRegClass,
    5910             :     &Mips::OddSP_with_sub_hi_with_sub_hi_in_FGRH32RegClass,
    5911             :     &Mips::CPU16RegsPlusSPRegClass,
    5912             :     &Mips::CPU16RegsRegClass,
    5913             :     &Mips::FCCRegClass,
    5914             :     &Mips::GPRMM16RegClass,
    5915             :     &Mips::GPRMM16MovePRegClass,
    5916             :     &Mips::GPRMM16ZeroRegClass,
    5917             :     &Mips::MSACtrlRegClass,
    5918             :     &Mips::OddSP_with_sub_hi_with_sub_hi_in_FGR32RegClass,
    5919             :     &Mips::CPU16Regs_and_GPRMM16ZeroRegClass,
    5920             :     &Mips::GPR32NONZERO_and_GPRMM16MovePRegClass,
    5921             :     &Mips::GPRMM16MovePPairSecondRegClass,
    5922             :     &Mips::CPU16Regs_and_GPRMM16MovePRegClass,
    5923             :     &Mips::GPRMM16MoveP_and_GPRMM16ZeroRegClass,
    5924             :     &Mips::HI32DSPRegClass,
    5925             :     &Mips::LO32DSPRegClass,
    5926             :     &Mips::CPU16Regs_and_GPRMM16MovePPairSecondRegClass,
    5927             :     &Mips::GPRMM16MovePPairFirstRegClass,
    5928             :     &Mips::GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClass,
    5929             :     &Mips::GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClass,
    5930             :     &Mips::CPURARegRegClass,
    5931             :     &Mips::CPUSPRegRegClass,
    5932             :     &Mips::DSPCCRegClass,
    5933             :     &Mips::GP32RegClass,
    5934             :     &Mips::GPR32ZERORegClass,
    5935             :     &Mips::HI32RegClass,
    5936             :     &Mips::LO32RegClass,
    5937             :     &Mips::SP32RegClass,
    5938             :     &Mips::FGR64RegClass,
    5939             :     &Mips::GPR64RegClass,
    5940             :     &Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
    5941             :     &Mips::AFGR64RegClass,
    5942             :     &Mips::FGR64_and_OddSPRegClass,
    5943             :     &Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass,
    5944             :     &Mips::AFGR64_and_OddSPRegClass,
    5945             :     &Mips::GPR64_with_sub_32_in_CPU16RegsRegClass,
    5946             :     &Mips::GPR64_with_sub_32_in_GPRMM16MovePRegClass,
    5947             :     &Mips::GPR64_with_sub_32_in_GPRMM16ZeroRegClass,
    5948             :     &Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClass,
    5949             :     &Mips::GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePRegClass,
    5950             :     &Mips::GPR64_with_sub_32_in_GPRMM16MovePPairSecondRegClass,
    5951             :     &Mips::ACC64DSPRegClass,
    5952             :     &Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePRegClass,
    5953             :     &Mips::GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroRegClass,
    5954             :     &Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondRegClass,
    5955             :     &Mips::GPR64_with_sub_32_in_GPRMM16MovePPairFirstRegClass,
    5956             :     &Mips::GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClass,
    5957             :     &Mips::OCTEON_MPLRegClass,
    5958             :     &Mips::OCTEON_PRegClass,
    5959             :     &Mips::GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClass,
    5960             :     &Mips::ACC64RegClass,
    5961             :     &Mips::GP64RegClass,
    5962             :     &Mips::GPR64_with_sub_32_in_CPURARegRegClass,
    5963             :     &Mips::GPR64_with_sub_32_in_GPR32ZERORegClass,
    5964             :     &Mips::HI64RegClass,
    5965             :     &Mips::LO64RegClass,
    5966             :     &Mips::SP64RegClass,
    5967             :     &Mips::MSA128BRegClass,
    5968             :     &Mips::MSA128DRegClass,
    5969             :     &Mips::MSA128HRegClass,
    5970             :     &Mips::MSA128WRegClass,
    5971             :     &Mips::MSA128B_with_sub_64_in_OddSPRegClass,
    5972             :     &Mips::MSA128WEvensRegClass,
    5973             :     &Mips::ACC128RegClass,
    5974             :   };
    5975             : } // end anonymous namespace
    5976             : 
    5977             : static const TargetRegisterInfoDesc MipsRegInfoDesc[] = { // Extra Descriptors
    5978             :   { 0, false },
    5979             :   { 0, true },
    5980             :   { 0, true },
    5981             :   { 0, false },
    5982             :   { 0, false },
    5983             :   { 0, false },
    5984             :   { 0, false },
    5985             :   { 0, false },
    5986             :   { 0, true },
    5987             :   { 0, true },
    5988             :   { 0, true },
    5989             :   { 0, true },
    5990             :   { 0, true },
    5991             :   { 0, true },
    5992             :   { 0, true },
    5993             :   { 0, true },
    5994             :   { 0, true },
    5995             :   { 0, true },
    5996             :   { 0, false },
    5997             :   { 0, true },
    5998             :   { 0, true },
    5999             :   { 0, true },
    6000             :   { 0, true },
    6001             :   { 0, true },
    6002             :   { 0, true },
    6003             :   { 0, true },
    6004             :   { 0, true },
    6005             :   { 0, true },
    6006             :   { 0, true },
    6007             :   { 0, true },
    6008             :   { 0, true },
    6009             :   { 0, false },
    6010             :   { 0, false },
    6011             :   { 0, false },
    6012             :   { 0, false },
    6013             :   { 0, false },
    6014             :   { 0, false },
    6015             :   { 0, false },
    6016             :   { 0, false },
    6017             :   { 0, false },
    6018             :   { 0, false },
    6019             :   { 0, false },
    6020             :   { 0, false },
    6021             :   { 0, false },
    6022             :   { 0, false },
    6023             :   { 0, false },
    6024             :   { 0, false },
    6025             :   { 0, false },
    6026             :   { 0, false },
    6027             :   { 0, false },
    6028             :   { 0, false },
    6029             :   { 0, false },
    6030             :   { 0, false },
    6031             :   { 0, false },
    6032             :   { 0, false },
    6033             :   { 0, false },
    6034             :   { 0, false },
    6035             :   { 0, false },
    6036             :   { 0, false },
    6037             :   { 0, false },
    6038             :   { 0, false },
    6039             :   { 0, false },
    6040             :   { 0, false },
    6041             :   { 0, false },
    6042             :   { 0, false },
    6043             :   { 0, false },
    6044             :   { 0, false },
    6045             :   { 0, false },
    6046             :   { 0, false },
    6047             :   { 0, false },
    6048             :   { 0, false },
    6049             :   { 0, false },
    6050             :   { 0, false },
    6051             :   { 0, false },
    6052             :   { 0, false },
    6053             :   { 0, false },
    6054             :   { 0, false },
    6055             :   { 0, false },
    6056             :   { 0, false },
    6057             :   { 0, false },
    6058             :   { 0, false },
    6059             :   { 0, false },
    6060             :   { 0, false },
    6061             :   { 0, false },
    6062             :   { 0, false },
    6063             :   { 0, false },
    6064             :   { 0, false },
    6065             :   { 0, false },
    6066             :   { 0, false },
    6067             :   { 0, false },
    6068             :   { 0, false },
    6069             :   { 0, false },
    6070             :   { 0, false },
    6071             :   { 0, false },
    6072             :   { 0, false },
    6073             :   { 0, false },
    6074             :   { 0, false },
    6075             :   { 0, false },
    6076             :   { 0, false },
    6077             :   { 0, false },
    6078             :   { 0, false },
    6079             :   { 0, false },
    6080             :   { 0, false },
    6081             :   { 0, false },
    6082             :   { 0, false },
    6083             :   { 0, false },
    6084             :   { 0, false },
    6085             :   { 0, false },
    6086             :   { 0, false },
    6087             :   { 0, false },
    6088             :   { 0, false },
    6089             :   { 0, false },
    6090             :   { 0, false },
    6091             :   { 0, false },
    6092             :   { 0, false },
    6093             :   { 0, false },
    6094             :   { 0, false },
    6095             :   { 0, false },
    6096             :   { 0, false },
    6097             :   { 0, false },
    6098             :   { 0, false },
    6099             :   { 0, false },
    6100             :   { 0, false },
    6101             :   { 0, false },
    6102             :   { 0, false },
    6103             :   { 0, false },
    6104             :   { 0, false },
    6105             :   { 0, true },
    6106             :   { 0, true },
    6107             :   { 0, true },
    6108             :   { 0, true },
    6109             :   { 0, true },
    6110             :   { 0, true },
    6111             :   { 0, true },
    6112             :   { 0, true },
    6113             :   { 0, true },
    6114             :   { 0, true },
    6115             :   { 0, true },
    6116             :   { 0, true },
    6117             :   { 0, true },
    6118             :   { 0, true },
    6119             :   { 0, true },
    6120             :   { 0, true },
    6121             :   { 0, false },
    6122             :   { 0, false },
    6123             :   { 0, false },
    6124             :   { 0, false },
    6125             :   { 0, true },
    6126             :   { 0, true },
    6127             :   { 0, true },
    6128             :   { 0, true },
    6129             :   { 0, true },
    6130             :   { 0, true },
    6131             :   { 0, true },
    6132             :   { 0, true },
    6133             :   { 0, true },
    6134             :   { 0, true },
    6135             :   { 0, true },
    6136             :   { 0, true },
    6137             :   { 0, true },
    6138             :   { 0, true },
    6139             :   { 0, true },
    6140             :   { 0, true },
    6141             :   { 0, true },
    6142             :   { 0, true },
    6143             :   { 0, true },
    6144             :   { 0, true },
    6145             :   { 0, true },
    6146             :   { 0, true },
    6147             :   { 0, true },
    6148             :   { 0, true },
    6149             :   { 0, true },
    6150             :   { 0, true },
    6151             :   { 0, true },
    6152             :   { 0, true },
    6153             :   { 0, true },
    6154             :   { 0, true },
    6155             :   { 0, true },
    6156             :   { 0, true },
    6157             :   { 0, false },
    6158             :   { 0, false },
    6159             :   { 0, false },
    6160             :   { 0, false },
    6161             :   { 0, false },
    6162             :   { 0, false },
    6163             :   { 0, false },
    6164             :   { 0, false },
    6165             :   { 0, false },
    6166             :   { 0, false },
    6167             :   { 0, false },
    6168             :   { 0, false },
    6169             :   { 0, false },
    6170             :   { 0, false },
    6171             :   { 0, false },
    6172             :   { 0, false },
    6173             :   { 0, false },
    6174             :   { 0, false },
    6175             :   { 0, false },
    6176             :   { 0, false },
    6177             :   { 0, false },
    6178             :   { 0, false },
    6179             :   { 0, false },
    6180             :   { 0, false },
    6181             :   { 0, false },
    6182             :   { 0, false },
    6183             :   { 0, false },
    6184             :   { 0, false },
    6185             :   { 0, false },
    6186             :   { 0, false },
    6187             :   { 0, false },
    6188             :   { 0, false },
    6189             :   { 0, false },
    6190             :   { 0, false },
    6191             :   { 0, false },
    6192             :   { 0, false },
    6193             :   { 0, false },
    6194             :   { 0, false },
    6195             :   { 0, false },
    6196             :   { 0, false },
    6197             :   { 0, true },
    6198             :   { 0, false },
    6199             :   { 0, false },
    6200             :   { 0, false },
    6201             :   { 0, false },
    6202             :   { 0, false },
    6203             :   { 0, false },
    6204             :   { 0, false },
    6205             :   { 0, false },
    6206             :   { 0, false },
    6207             :   { 0, false },
    6208             :   { 0, false },
    6209             :   { 0, false },
    6210             :   { 0, false },
    6211             :   { 0, false },
    6212             :   { 0, false },
    6213             :   { 0, false },
    6214             :   { 0, false },
    6215             :   { 0, false },
    6216             :   { 0, false },
    6217             :   { 0, false },
    6218             :   { 0, false },
    6219             :   { 0, false },
    6220             :   { 0, false },
    6221             :   { 0, false },
    6222             :   { 0, false },
    6223             :   { 0, false },
    6224             :   { 0, false },
    6225             :   { 0, false },
    6226             :   { 0, false },
    6227             :   { 0, false },
    6228             :   { 0, false },
    6229             :   { 0, false },
    6230             :   { 0, true },
    6231             :   { 0, true },
    6232             :   { 0, true },
    6233             :   { 0, true },
    6234             :   { 0, true },
    6235             :   { 0, false },
    6236             :   { 0, false },
    6237             :   { 0, false },
    6238             :   { 0, false },
    6239             :   { 0, false },
    6240             :   { 0, false },
    6241             :   { 0, false },
    6242             :   { 0, false },
    6243             :   { 0, false },
    6244             :   { 0, false },
    6245             :   { 0, false },
    6246             :   { 0, false },
    6247             :   { 0, false },
    6248             :   { 0, false },
    6249             :   { 0, false },
    6250             :   { 0, false },
    6251             :   { 0, false },
    6252             :   { 0, false },
    6253             :   { 0, false },
    6254             :   { 0, false },
    6255             :   { 0, false },
    6256             :   { 0, false },
    6257             :   { 0, false },
    6258             :   { 0, false },
    6259             :   { 0, false },
    6260             :   { 0, false },
    6261             :   { 0, false },
    6262             :   { 0, false },
    6263             :   { 0, false },
    6264             :   { 0, false },
    6265             :   { 0, false },
    6266             :   { 0, false },
    6267             :   { 0, true },
    6268             :   { 0, true },
    6269             :   { 0, true },
    6270             :   { 0, true },
    6271             :   { 0, true },
    6272             :   { 0, true },
    6273             :   { 0, false },
    6274             :   { 0, false },
    6275             :   { 0, false },
    6276             :   { 0, false },
    6277             :   { 0, false },
    6278             :   { 0, false },
    6279             :   { 0, true },
    6280             :   { 0, true },
    6281             :   { 0, true },
    6282             :   { 0, true },
    6283             :   { 0, true },
    6284             :   { 0, true },
    6285             :   { 0, true },
    6286             :   { 0, true },
    6287             :   { 0, true },
    6288             :   { 0, true },
    6289             :   { 0, true },
    6290             :   { 0, true },
    6291             :   { 0, true },
    6292             :   { 0, true },
    6293             :   { 0, true },
    6294             :   { 0, true },
    6295             :   { 0, true },
    6296             :   { 0, true },
    6297             :   { 0, true },
    6298             :   { 0, true },
    6299             :   { 0, true },
    6300             :   { 0, true },
    6301             :   { 0, true },
    6302             :   { 0, true },
    6303             :   { 0, true },
    6304             :   { 0, true },
    6305             :   { 0, true },
    6306             :   { 0, true },
    6307             :   { 0, true },
    6308             :   { 0, true },
    6309             :   { 0, true },
    6310             :   { 0, true },
    6311             :   { 0, true },
    6312             :   { 0, true },
    6313             :   { 0, true },
    6314             :   { 0, true },
    6315             :   { 0, true },
    6316             :   { 0, true },
    6317             :   { 0, true },
    6318             :   { 0, true },
    6319             :   { 0, true },
    6320             :   { 0, true },
    6321             :   { 0, true },
    6322             :   { 0, true },
    6323             :   { 0, true },
    6324             :   { 0, true },
    6325             :   { 0, true },
    6326             :   { 0, true },
    6327             :   { 0, true },
    6328             :   { 0, true },
    6329             :   { 0, true },
    6330             :   { 0, true },
    6331             :   { 0, true },
    6332             :   { 0, true },
    6333             :   { 0, true },
    6334             :   { 0, true },
    6335             :   { 0, true },
    6336             :   { 0, true },
    6337             :   { 0, true },
    6338             :   { 0, true },
    6339             :   { 0, true },
    6340             :   { 0, true },
    6341             :   { 0, true },
    6342             :   { 0, true },
    6343             :   { 0, true },
    6344             :   { 0, true },
    6345             :   { 0, true },
    6346             :   { 0, true },
    6347             :   { 0, true },
    6348             :   { 0, true },
    6349             :   { 0, true },
    6350             :   { 0, true },
    6351             :   { 0, true },
    6352             :   { 0, true },
    6353             :   { 0, true },
    6354             :   { 0, true },
    6355             :   { 0, true },
    6356             :   { 0, true },
    6357             :   { 0, true },
    6358             :   { 0, true },
    6359             :   { 0, true },
    6360             :   { 0, true },
    6361             :   { 0, true },
    6362             :   { 0, true },
    6363             :   { 0, true },
    6364             :   { 0, true },
    6365             :   { 0, true },
    6366             :   { 0, true },
    6367             :   { 0, true },
    6368             :   { 0, true },
    6369             :   { 0, true },
    6370             :   { 0, true },
    6371             :   { 0, false },
    6372             :   { 0, true },
    6373             :   { 0, true },
    6374             :   { 0, true },
    6375             :   { 0, true },
    6376             :   { 0, true },
    6377             :   { 0, true },
    6378             :   { 0, true },
    6379             :   { 0, true },
    6380             :   { 0, true },
    6381             :   { 0, true },
    6382             :   { 0, true },
    6383             :   { 0, true },
    6384             :   { 0, true },
    6385             :   { 0, true },
    6386             :   { 0, true },
    6387             :   { 0, true },
    6388             :   { 0, true },
    6389             :   { 0, true },
    6390             :   { 0, true },
    6391             :   { 0, true },
    6392             :   { 0, true },
    6393             :   { 0, true },
    6394             :   { 0, true },
    6395             :   { 0, true },
    6396             : };
    6397           0 : unsigned MipsGenRegisterInfo::composeSubRegIndicesImpl(unsigned IdxA, unsigned IdxB) const {
    6398             :   static const uint8_t RowMap[11] = {
    6399             :     0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 
    6400             :   };
    6401             :   static const uint8_t Rows[2][11] = {
    6402             :     { 10, 0, 0, 0, 0, 0, 0, 8, 9, 0, 0, },
    6403             :     { 1, 0, 0, 0, 0, 0, 0, 10, 1, 0, 0, },
    6404             :   };
    6405             : 
    6406           0 :   --IdxA; assert(IdxA < 11);
    6407           0 :   --IdxB; assert(IdxB < 11);
    6408           0 :   return Rows[RowMap[IdxA]][IdxB];
    6409             : }
    6410             : 
    6411             :   struct MaskRolOp {
    6412             :     LaneBitmask Mask;
    6413             :     uint8_t  RotateLeft;
    6414             :   };
    6415             :   static const MaskRolOp LaneMaskComposeSequences[] = {
    6416             :     { LaneBitmask(0xFFFFFFFF),  0 }, { LaneBitmask::getNone(), 0 },   // Sequence 0
    6417             :     { LaneBitmask(0xFFFFFFFF),  1 }, { LaneBitmask::getNone(), 0 },   // Sequence 2
    6418             :     { LaneBitmask(0xFFFFFFFF),  2 }, { LaneBitmask::getNone(), 0 },   // Sequence 4
    6419             :     { LaneBitmask(0xFFFFFFFF),  3 }, { LaneBitmask::getNone(), 0 },   // Sequence 6
    6420             :     { LaneBitmask(0xFFFFFFFF),  4 }, { LaneBitmask::getNone(), 0 },   // Sequence 8
    6421             :     { LaneBitmask(0xFFFFFFFF),  5 }, { LaneBitmask::getNone(), 0 },   // Sequence 10
    6422             :     { LaneBitmask(0xFFFFFFFF),  6 }, { LaneBitmask::getNone(), 0 }  // Sequence 12
    6423             :   };
    6424             :   static const MaskRolOp *const CompositeSequences[] = {
    6425             :     &LaneMaskComposeSequences[0], // to sub_32
    6426             :     &LaneMaskComposeSequences[0], // to sub_64
    6427             :     &LaneMaskComposeSequences[2], // to sub_dsp16_19
    6428             :     &LaneMaskComposeSequences[4], // to sub_dsp20
    6429             :     &LaneMaskComposeSequences[6], // to sub_dsp21
    6430             :     &LaneMaskComposeSequences[8], // to sub_dsp22
    6431             :     &LaneMaskComposeSequences[10], // to sub_dsp23
    6432             :     &LaneMaskComposeSequences[12], // to sub_hi
    6433             :     &LaneMaskComposeSequences[0], // to sub_lo
    6434             :     &LaneMaskComposeSequences[12], // to sub_hi_then_sub_32
    6435             :     &LaneMaskComposeSequences[0] // to sub_32_sub_hi_then_sub_32
    6436             :   };
    6437             : 
    6438           0 : LaneBitmask MipsGenRegisterInfo::composeSubRegIndexLaneMaskImpl(unsigned IdxA, LaneBitmask LaneMask) const {
    6439           0 :   --IdxA; assert(IdxA < 11 && "Subregister index out of bounds");
    6440             :   LaneBitmask Result;
    6441           0 :   for (const MaskRolOp *Ops = CompositeSequences[IdxA]; Ops->Mask.any(); ++Ops) {
    6442           0 :     LaneBitmask::Type M = LaneMask.getAsInteger() & Ops->Mask.getAsInteger();
    6443           0 :     if (unsigned S = Ops->RotateLeft)
    6444           0 :       Result |= LaneBitmask((M << S) | (M >> (LaneBitmask::BitWidth - S)));
    6445             :     else
    6446             :       Result |= LaneBitmask(M);
    6447             :   }
    6448           0 :   return Result;
    6449             : }
    6450             : 
    6451           0 : LaneBitmask MipsGenRegisterInfo::reverseComposeSubRegIndexLaneMaskImpl(unsigned IdxA,  LaneBitmask LaneMask) const {
    6452           0 :   LaneMask &= getSubRegIndexLaneMask(IdxA);
    6453           0 :   --IdxA; assert(IdxA < 11 && "Subregister index out of bounds");
    6454             :   LaneBitmask Result;
    6455           0 :   for (const MaskRolOp *Ops = CompositeSequences[IdxA]; Ops->Mask.any(); ++Ops) {
    6456             :     LaneBitmask::Type M = LaneMask.getAsInteger();
    6457           0 :     if (unsigned S = Ops->RotateLeft)
    6458           0 :       Result |= LaneBitmask((M >> S) | (M << (LaneBitmask::BitWidth - S)));
    6459             :     else
    6460             :       Result |= LaneBitmask(M);
    6461             :   }
    6462           0 :   return Result;
    6463             : }
    6464             : 
    6465        9723 : const TargetRegisterClass *MipsGenRegisterInfo::getSubClassWithSubReg(const TargetRegisterClass *RC, unsigned Idx) const {
    6466             :   static const uint8_t Table[81][11] = {
    6467             :     {   // MSA128F16
    6468             :       0,        // sub_32
    6469             :       1,        // sub_64 -> MSA128F16
    6470             :       0,        // sub_dsp16_19
    6471             :       0,        // sub_dsp20
    6472             :       0,        // sub_dsp21
    6473             :       0,        // sub_dsp22
    6474             :       0,        // sub_dsp23
    6475             :       1,        // sub_hi -> MSA128F16
    6476             :       1,        // sub_lo -> MSA128F16
    6477             :       0,        // sub_hi_then_sub_32
    6478             :       0,        // sub_32_sub_hi_then_sub_32
    6479             :     },
    6480             :     {   // MSA128F16_with_sub_64_in_OddSP
    6481             :       0,        // sub_32
    6482             :       2,        // sub_64 -> MSA128F16_with_sub_64_in_OddSP
    6483             :       0,        // sub_dsp16_19
    6484             :       0,        // sub_dsp20
    6485             :       0,        // sub_dsp21
    6486             :       0,        // sub_dsp22
    6487             :       0,        // sub_dsp23
    6488             :       2,        // sub_hi -> MSA128F16_with_sub_64_in_OddSP
    6489             :       2,        // sub_lo -> MSA128F16_with_sub_64_in_OddSP
    6490             :       0,        // sub_hi_then_sub_32
    6491             :       0,        // sub_32_sub_hi_then_sub_32
    6492             :     },
    6493             :     {   // OddSP
    6494             :       0,        // sub_32
    6495             :       0,        // sub_64
    6496             :       0,        // sub_dsp16_19
    6497             :       0,        // sub_dsp20
    6498             :       0,        // sub_dsp21
    6499             :       0,        // sub_dsp22
    6500             :       0,        // sub_dsp23
    6501             :       15,       // sub_hi -> OddSP_with_sub_hi
    6502             :       15,       // sub_lo -> OddSP_with_sub_hi
    6503             :       0,        // sub_hi_then_sub_32
    6504             :       0,        // sub_32_sub_hi_then_sub_32
    6505             :     },
    6506             :     {   // CCR
    6507             :       0,        // sub_32
    6508             :       0,        // sub_64
    6509             :       0,        // sub_dsp16_19
    6510             :       0,        // sub_dsp20
    6511             :       0,        // sub_dsp21
    6512             :       0,        // sub_dsp22
    6513             :       0,        // sub_dsp23
    6514             :       0,        // sub_hi
    6515             :       0,        // sub_lo
    6516             :       0,        // sub_hi_then_sub_32
    6517             :       0,        // sub_32_sub_hi_then_sub_32
    6518             :     },
    6519             :     {   // COP0
    6520             :       0,        // sub_32
    6521             :       0,        // sub_64
    6522             :       0,        // sub_dsp16_19
    6523             :       0,        // sub_dsp20
    6524             :       0,        // sub_dsp21
    6525             :       0,        // sub_dsp22
    6526             :       0,        // sub_dsp23
    6527             :       0,        // sub_hi
    6528             :       0,        // sub_lo
    6529             :       0,        // sub_hi_then_sub_32
    6530             :       0,        // sub_32_sub_hi_then_sub_32
    6531             :     },
    6532             :     {   // COP2
    6533             :       0,        // sub_32
    6534             :       0,        // sub_64
    6535             :       0,        // sub_dsp16_19
    6536             :       0,        // sub_dsp20
    6537             :       0,        // sub_dsp21
    6538             :       0,        // sub_dsp22
    6539             :       0,        // sub_dsp23
    6540             :       0,        // sub_hi
    6541             :       0,        // sub_lo
    6542             :       0,        // sub_hi_then_sub_32
    6543             :       0,        // sub_32_sub_hi_then_sub_32
    6544             :     },
    6545             :     {   // COP3
    6546             :       0,        // sub_32
    6547             :       0,        // sub_64
    6548             :       0,        // sub_dsp16_19
    6549             :       0,        // sub_dsp20
    6550             :       0,        // sub_dsp21
    6551             :       0,        // sub_dsp22
    6552             :       0,        // sub_dsp23
    6553             :       0,        // sub_hi
    6554             :       0,        // sub_lo
    6555             :       0,        // sub_hi_then_sub_32
    6556             :       0,        // sub_32_sub_hi_then_sub_32
    6557             :     },
    6558             :     {   // DSPR
    6559             :       0,        // sub_32
    6560             :       0,        // sub_64
    6561             :       0,        // sub_dsp16_19
    6562             :       0,        // sub_dsp20
    6563             :       0,        // sub_dsp21
    6564             :       0,        // sub_dsp22
    6565             :       0,        // sub_dsp23
    6566             :       0,        // sub_hi
    6567             :       0,        // sub_lo
    6568             :       0,        // sub_hi_then_sub_32
    6569             :       0,        // sub_32_sub_hi_then_sub_32
    6570             :     },
    6571             :     {   // FGR32
    6572             :       0,        // sub_32
    6573             :       0,        // sub_64
    6574             :       0,        // sub_dsp16_19
    6575             :       0,        // sub_dsp20
    6576             :       0,        // sub_dsp21
    6577             :       0,        // sub_dsp22
    6578             :       0,        // sub_dsp23
    6579             :       0,        // sub_hi
    6580             :       0,        // sub_lo
    6581             :       0,        // sub_hi_then_sub_32
    6582             :       0,        // sub_32_sub_hi_then_sub_32
    6583             :     },
    6584             :     {   // FGRCC
    6585             :       0,        // sub_32
    6586             :       0,        // sub_64
    6587             :       0,        // sub_dsp16_19
    6588             :       0,        // sub_dsp20
    6589             :       0,        // sub_dsp21
    6590             :       0,        // sub_dsp22
    6591             :       0,        // sub_dsp23
    6592             :       0,        // sub_hi
    6593             :       0,        // sub_lo
    6594             :       0,        // sub_hi_then_sub_32
    6595             :       0,        // sub_32_sub_hi_then_sub_32
    6596             :     },
    6597             :     {   // FGRH32
    6598             :       0,        // sub_32
    6599             :       0,        // sub_64
    6600             :       0,        // sub_dsp16_19
    6601             :       0,        // sub_dsp20
    6602             :       0,        // sub_dsp21
    6603             :       0,        // sub_dsp22
    6604             :       0,        // sub_dsp23
    6605             :       0,        // sub_hi
    6606             :       0,        // sub_lo
    6607             :       0,        // sub_hi_then_sub_32
    6608             :       0,        // sub_32_sub_hi_then_sub_32
    6609             :     },
    6610             :     {   // GPR32
    6611             :       0,        // sub_32
    6612             :       0,        // sub_64
    6613             :       0,        // sub_dsp16_19
    6614             :       0,        // sub_dsp20
    6615             :       0,        // sub_dsp21
    6616             :       0,        // sub_dsp22
    6617             :       0,        // sub_dsp23
    6618             :       0,        // sub_hi
    6619             :       0,        // sub_lo
    6620             :       0,        // sub_hi_then_sub_32
    6621             :       0,        // sub_32_sub_hi_then_sub_32
    6622             :     },
    6623             :     {   // HWRegs
    6624             :       0,        // sub_32
    6625             :       0,        // sub_64
    6626             :       0,        // sub_dsp16_19
    6627             :       0,        // sub_dsp20
    6628             :       0,        // sub_dsp21
    6629             :       0,        // sub_dsp22
    6630             :       0,        // sub_dsp23
    6631             :       0,        // sub_hi
    6632             :       0,        // sub_lo
    6633             :       0,        // sub_hi_then_sub_32
    6634             :       0,        // sub_32_sub_hi_then_sub_32
    6635             :     },
    6636             :     {   // GPR32NONZERO
    6637             :       0,        // sub_32
    6638             :       0,        // sub_64
    6639             :       0,        // sub_dsp16_19
    6640             :       0,        // sub_dsp20
    6641             :       0,        // sub_dsp21
    6642             :       0,        // sub_dsp22
    6643             :       0,        // sub_dsp23
    6644             :       0,        // sub_hi
    6645             :       0,        // sub_lo
    6646             :       0,        // sub_hi_then_sub_32
    6647             :       0,        // sub_32_sub_hi_then_sub_32
    6648             :     },
    6649             :     {   // OddSP_with_sub_hi
    6650             :       0,        // sub_32
    6651             :       0,        // sub_64
    6652             :       0,        // sub_dsp16_19
    6653             :       0,        // sub_dsp20
    6654             :       0,        // sub_dsp21
    6655             :       0,        // sub_dsp22
    6656             :       0,        // sub_dsp23
    6657             :       15,       // sub_hi -> OddSP_with_sub_hi
    6658             :       15,       // sub_lo -> OddSP_with_sub_hi
    6659             :       0,        // sub_hi_then_sub_32
    6660             :       0,        // sub_32_sub_hi_then_sub_32
    6661             :     },
    6662             :     {   // FGR32_and_OddSP
    6663             :       0,        // sub_32
    6664             :       0,        // sub_64
    6665             :       0,        // sub_dsp16_19
    6666             :       0,        // sub_dsp20
    6667             :       0,        // sub_dsp21
    6668             :       0,        // sub_dsp22
    6669             :       0,        // sub_dsp23
    6670             :       0,        // sub_hi
    6671             :       0,        // sub_lo
    6672             :       0,        // sub_hi_then_sub_32
    6673             :       0,        // sub_32_sub_hi_then_sub_32
    6674             :     },
    6675             :     {   // FGRH32_and_OddSP
    6676             :       0,        // sub_32
    6677             :       0,        // sub_64
    6678             :       0,        // sub_dsp16_19
    6679             :       0,        // sub_dsp20
    6680             :       0,        // sub_dsp21
    6681             :       0,        // sub_dsp22
    6682             :       0,        // sub_dsp23
    6683             :       0,        // sub_hi
    6684             :       0,        // sub_lo
    6685             :       0,        // sub_hi_then_sub_32
    6686             :       0,        // sub_32_sub_hi_then_sub_32
    6687             :     },
    6688             :     {   // OddSP_with_sub_hi_with_sub_hi_in_FGRH32
    6689             :       0,        // sub_32
    6690             :       0,        // sub_64
    6691             :       0,        // sub_dsp16_19
    6692             :       0,        // sub_dsp20
    6693             :       0,        // sub_dsp21
    6694             :       0,        // sub_dsp22
    6695             :       0,        // sub_dsp23
    6696             :       18,       // sub_hi -> OddSP_with_sub_hi_with_sub_hi_in_FGRH32
    6697             :       18,       // sub_lo -> OddSP_with_sub_hi_with_sub_hi_in_FGRH32
    6698             :       0,        // sub_hi_then_sub_32
    6699             :       0,        // sub_32_sub_hi_then_sub_32
    6700             :     },
    6701             :     {   // CPU16RegsPlusSP
    6702             :       0,        // sub_32
    6703             :       0,        // sub_64
    6704             :       0,        // sub_dsp16_19
    6705             :       0,        // sub_dsp20
    6706             :       0,        // sub_dsp21
    6707             :       0,        // sub_dsp22
    6708             :       0,        // sub_dsp23
    6709             :       0,        // sub_hi
    6710             :       0,        // sub_lo
    6711             :       0,        // sub_hi_then_sub_32
    6712             :       0,        // sub_32_sub_hi_then_sub_32
    6713             :     },
    6714             :     {   // CPU16Regs
    6715             :       0,        // sub_32
    6716             :       0,        // sub_64
    6717             :       0,        // sub_dsp16_19
    6718             :       0,        // sub_dsp20
    6719             :       0,        // sub_dsp21
    6720             :       0,        // sub_dsp22
    6721             :       0,        // sub_dsp23
    6722             :       0,        // sub_hi
    6723             :       0,        // sub_lo
    6724             :       0,        // sub_hi_then_sub_32
    6725             :       0,        // sub_32_sub_hi_then_sub_32
    6726             :     },
    6727             :     {   // FCC
    6728             :       0,        // sub_32
    6729             :       0,        // sub_64
    6730             :       0,        // sub_dsp16_19
    6731             :       0,        // sub_dsp20
    6732             :       0,        // sub_dsp21
    6733             :       0,        // sub_dsp22
    6734             :       0,        // sub_dsp23
    6735             :       0,        // sub_hi
    6736             :       0,        // sub_lo
    6737             :       0,        // sub_hi_then_sub_32
    6738             :       0,        // sub_32_sub_hi_then_sub_32
    6739             :     },
    6740             :     {   // GPRMM16
    6741             :       0,        // sub_32
    6742             :       0,        // sub_64
    6743             :       0,        // sub_dsp16_19
    6744             :       0,        // sub_dsp20
    6745             :       0,        // sub_dsp21
    6746             :       0,        // sub_dsp22
    6747             :       0,        // sub_dsp23
    6748             :       0,        // sub_hi
    6749             :       0,        // sub_lo
    6750             :       0,        // sub_hi_then_sub_32
    6751             :       0,        // sub_32_sub_hi_then_sub_32
    6752             :     },
    6753             :     {   // GPRMM16MoveP
    6754             :       0,        // sub_32
    6755             :       0,        // sub_64
    6756             :       0,        // sub_dsp16_19
    6757             :       0,        // sub_dsp20
    6758             :       0,        // sub_dsp21
    6759             :       0,        // sub_dsp22
    6760             :       0,        // sub_dsp23
    6761             :       0,        // sub_hi
    6762             :       0,        // sub_lo
    6763             :       0,        // sub_hi_then_sub_32
    6764             :       0,        // sub_32_sub_hi_then_sub_32
    6765             :     },
    6766             :     {   // GPRMM16Zero
    6767             :       0,        // sub_32
    6768             :       0,        // sub_64
    6769             :       0,        // sub_dsp16_19
    6770             :       0,        // sub_dsp20
    6771             :       0,        // sub_dsp21
    6772             :       0,        // sub_dsp22
    6773             :       0,        // sub_dsp23
    6774             :       0,        // sub_hi
    6775             :       0,        // sub_lo
    6776             :       0,        // sub_hi_then_sub_32
    6777             :       0,        // sub_32_sub_hi_then_sub_32
    6778             :     },
    6779             :     {   // MSACtrl
    6780             :       0,        // sub_32
    6781             :       0,        // sub_64
    6782             :       0,        // sub_dsp16_19
    6783             :       0,        // sub_dsp20
    6784             :       0,        // sub_dsp21
    6785             :       0,        // sub_dsp22
    6786             :       0,        // sub_dsp23
    6787             :       0,        // sub_hi
    6788             :       0,        // sub_lo
    6789             :       0,        // sub_hi_then_sub_32
    6790             :       0,        // sub_32_sub_hi_then_sub_32
    6791             :     },
    6792             :     {   // OddSP_with_sub_hi_with_sub_hi_in_FGR32
    6793             :       0,        // sub_32
    6794             :       0,        // sub_64
    6795             :       0,        // sub_dsp16_19
    6796             :       0,        // sub_dsp20
    6797             :       0,        // sub_dsp21
    6798             :       0,        // sub_dsp22
    6799             :       0,        // sub_dsp23
    6800             :       26,       // sub_hi -> OddSP_with_sub_hi_with_sub_hi_in_FGR32
    6801             :       26,       // sub_lo -> OddSP_with_sub_hi_with_sub_hi_in_FGR32
    6802             :       0,        // sub_hi_then_sub_32
    6803             :       0,        // sub_32_sub_hi_then_sub_32
    6804             :     },
    6805             :     {   // CPU16Regs_and_GPRMM16Zero
    6806             :       0,        // sub_32
    6807             :       0,        // sub_64
    6808             :       0,        // sub_dsp16_19
    6809             :       0,        // sub_dsp20
    6810             :       0,        // sub_dsp21
    6811             :       0,        // sub_dsp22
    6812             :       0,        // sub_dsp23
    6813             :       0,        // sub_hi
    6814             :       0,        // sub_lo
    6815             :       0,        // sub_hi_then_sub_32
    6816             :       0,        // sub_32_sub_hi_then_sub_32
    6817             :     },
    6818             :     {   // GPR32NONZERO_and_GPRMM16MoveP
    6819             :       0,        // sub_32
    6820             :       0,        // sub_64
    6821             :       0,        // sub_dsp16_19
    6822             :       0,        // sub_dsp20
    6823             :       0,        // sub_dsp21
    6824             :       0,        // sub_dsp22
    6825             :       0,        // sub_dsp23
    6826             :       0,        // sub_hi
    6827             :       0,        // sub_lo
    6828             :       0,        // sub_hi_then_sub_32
    6829             :       0,        // sub_32_sub_hi_then_sub_32
    6830             :     },
    6831             :     {   // GPRMM16MovePPairSecond
    6832             :       0,        // sub_32
    6833             :       0,        // sub_64
    6834             :       0,        // sub_dsp16_19
    6835             :       0,        // sub_dsp20
    6836             :       0,        // sub_dsp21
    6837             :       0,        // sub_dsp22
    6838             :       0,        // sub_dsp23
    6839             :       0,        // sub_hi
    6840             :       0,        // sub_lo
    6841             :       0,        // sub_hi_then_sub_32
    6842             :       0,        // sub_32_sub_hi_then_sub_32
    6843             :     },
    6844             :     {   // CPU16Regs_and_GPRMM16MoveP
    6845             :       0,        // sub_32
    6846             :       0,        // sub_64
    6847             :       0,        // sub_dsp16_19
    6848             :       0,        // sub_dsp20
    6849             :       0,        // sub_dsp21
    6850             :       0,        // sub_dsp22
    6851             :       0,        // sub_dsp23
    6852             :       0,        // sub_hi
    6853             :       0,        // sub_lo
    6854             :       0,        // sub_hi_then_sub_32
    6855             :       0,        // sub_32_sub_hi_then_sub_32
    6856             :     },
    6857             :     {   // GPRMM16MoveP_and_GPRMM16Zero
    6858             :       0,        // sub_32
    6859             :       0,        // sub_64
    6860             :       0,        // sub_dsp16_19
    6861             :       0,        // sub_dsp20
    6862             :       0,        // sub_dsp21
    6863             :       0,        // sub_dsp22
    6864             :       0,        // sub_dsp23
    6865             :       0,        // sub_hi
    6866             :       0,        // sub_lo
    6867             :       0,        // sub_hi_then_sub_32
    6868             :       0,        // sub_32_sub_hi_then_sub_32
    6869             :     },
    6870             :     {   // HI32DSP
    6871             :       0,        // sub_32
    6872             :       0,        // sub_64
    6873             :       0,        // sub_dsp16_19
    6874             :       0,        // sub_dsp20
    6875             :       0,        // sub_dsp21
    6876             :       0,        // sub_dsp22
    6877             :       0,        // sub_dsp23
    6878             :       0,        // sub_hi
    6879             :       0,        // sub_lo
    6880             :       0,        // sub_hi_then_sub_32
    6881             :       0,        // sub_32_sub_hi_then_sub_32
    6882             :     },
    6883             :     {   // LO32DSP
    6884             :       0,        // sub_32
    6885             :       0,        // sub_64
    6886             :       0,        // sub_dsp16_19
    6887             :       0,        // sub_dsp20
    6888             :       0,        // sub_dsp21
    6889             :       0,        // sub_dsp22
    6890             :       0,        // sub_dsp23
    6891             :       0,        // sub_hi
    6892             :       0,        // sub_lo
    6893             :       0,        // sub_hi_then_sub_32
    6894             :       0,        // sub_32_sub_hi_then_sub_32
    6895             :     },
    6896             :     {   // CPU16Regs_and_GPRMM16MovePPairSecond
    6897             :       0,        // sub_32
    6898             :       0,        // sub_64
    6899             :       0,        // sub_dsp16_19
    6900             :       0,        // sub_dsp20
    6901             :       0,        // sub_dsp21
    6902             :       0,        // sub_dsp22
    6903             :       0,        // sub_dsp23
    6904             :       0,        // sub_hi
    6905             :       0,        // sub_lo
    6906             :       0,        // sub_hi_then_sub_32
    6907             :       0,        // sub_32_sub_hi_then_sub_32
    6908             :     },
    6909             :     {   // GPRMM16MovePPairFirst
    6910             :       0,        // sub_32
    6911             :       0,        // sub_64
    6912             :       0,        // sub_dsp16_19
    6913             :       0,        // sub_dsp20
    6914             :       0,        // sub_dsp21
    6915             :       0,        // sub_dsp22
    6916             :       0,        // sub_dsp23
    6917             :       0,        // sub_hi
    6918             :       0,        // sub_lo
    6919             :       0,        // sub_hi_then_sub_32
    6920             :       0,        // sub_32_sub_hi_then_sub_32
    6921             :     },
    6922             :     {   // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero
    6923             :       0,        // sub_32
    6924             :       0,        // sub_64
    6925             :       0,        // sub_dsp16_19
    6926             :       0,        // sub_dsp20
    6927             :       0,        // sub_dsp21
    6928             :       0,        // sub_dsp22
    6929             :       0,        // sub_dsp23
    6930             :       0,        // sub_hi
    6931             :       0,        // sub_lo
    6932             :       0,        // sub_hi_then_sub_32
    6933             :       0,        // sub_32_sub_hi_then_sub_32
    6934             :     },
    6935             :     {   // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond
    6936             :       0,        // sub_32
    6937             :       0,        // sub_64
    6938             :       0,        // sub_dsp16_19
    6939             :       0,        // sub_dsp20
    6940             :       0,        // sub_dsp21
    6941             :       0,        // sub_dsp22
    6942             :       0,        // sub_dsp23
    6943             :       0,        // sub_hi
    6944             :       0,        // sub_lo
    6945             :       0,        // sub_hi_then_sub_32
    6946             :       0,        // sub_32_sub_hi_then_sub_32
    6947             :     },
    6948             :     {   // CPURAReg
    6949             :       0,        // sub_32
    6950             :       0,        // sub_64
    6951             :       0,        // sub_dsp16_19
    6952             :       0,        // sub_dsp20
    6953             :       0,        // sub_dsp21
    6954             :       0,        // sub_dsp22
    6955             :       0,        // sub_dsp23
    6956             :       0,        // sub_hi
    6957             :       0,        // sub_lo
    6958             :       0,        // sub_hi_then_sub_32
    6959             :       0,        // sub_32_sub_hi_then_sub_32
    6960             :     },
    6961             :     {   // CPUSPReg
    6962             :       0,        // sub_32
    6963             :       0,        // sub_64
    6964             :       0,        // sub_dsp16_19
    6965             :       0,        // sub_dsp20
    6966             :       0,        // sub_dsp21
    6967             :       0,        // sub_dsp22
    6968             :       0,        // sub_dsp23
    6969             :       0,        // sub_hi
    6970             :       0,        // sub_lo
    6971             :       0,        // sub_hi_then_sub_32
    6972             :       0,        // sub_32_sub_hi_then_sub_32
    6973             :     },
    6974             :     {   // DSPCC
    6975             :       0,        // sub_32
    6976             :       0,        // sub_64
    6977             :       0,        // sub_dsp16_19
    6978             :       0,        // sub_dsp20
    6979             :       0,        // sub_dsp21
    6980             :       0,        // sub_dsp22
    6981             :       0,        // sub_dsp23
    6982             :       0,        // sub_hi
    6983             :       0,        // sub_lo
    6984             :       0,        // sub_hi_then_sub_32
    6985             :       0,        // sub_32_sub_hi_then_sub_32
    6986             :     },
    6987             :     {   // GP32
    6988             :       0,        // sub_32
    6989             :       0,        // sub_64
    6990             :       0,        // sub_dsp16_19
    6991             :       0,        // sub_dsp20
    6992             :       0,        // sub_dsp21
    6993             :       0,        // sub_dsp22
    6994             :       0,        // sub_dsp23
    6995             :       0,        // sub_hi
    6996             :       0,        // sub_lo
    6997             :       0,        // sub_hi_then_sub_32
    6998             :       0,        // sub_32_sub_hi_then_sub_32
    6999             :     },
    7000             :     {   // GPR32ZERO
    7001             :       0,        // sub_32
    7002             :       0,        // sub_64
    7003             :       0,        // sub_dsp16_19
    7004             :       0,        // sub_dsp20
    7005             :       0,        // sub_dsp21
    7006             :       0,        // sub_dsp22
    7007             :       0,        // sub_dsp23
    7008             :       0,        // sub_hi
    7009             :       0,        // sub_lo
    7010             :       0,        // sub_hi_then_sub_32
    7011             :       0,        // sub_32_sub_hi_then_sub_32
    7012             :     },
    7013             :     {   // HI32
    7014             :       0,        // sub_32
    7015             :       0,        // sub_64
    7016             :       0,        // sub_dsp16_19
    7017             :       0,        // sub_dsp20
    7018             :       0,        // sub_dsp21
    7019             :       0,        // sub_dsp22
    7020             :       0,        // sub_dsp23
    7021             :       0,        // sub_hi
    7022             :       0,        // sub_lo
    7023             :       0,        // sub_hi_then_sub_32
    7024             :       0,        // sub_32_sub_hi_then_sub_32
    7025             :     },
    7026             :     {   // LO32
    7027             :       0,        // sub_32
    7028             :       0,        // sub_64
    7029             :       0,        // sub_dsp16_19
    7030             :       0,        // sub_dsp20
    7031             :       0,        // sub_dsp21
    7032             :       0,        // sub_dsp22
    7033             :       0,        // sub_dsp23
    7034             :       0,        // sub_hi
    7035             :       0,        // sub_lo
    7036             :       0,        // sub_hi_then_sub_32
    7037             :       0,        // sub_32_sub_hi_then_sub_32
    7038             :     },
    7039             :     {   // SP32
    7040             :       0,        // sub_32
    7041             :       0,        // sub_64
    7042             :       0,        // sub_dsp16_19
    7043             :       0,        // sub_dsp20
    7044             :       0,        // sub_dsp21
    7045             :       0,        // sub_dsp22
    7046             :       0,        // sub_dsp23
    7047             :       0,        // sub_hi
    7048             :       0,        // sub_lo
    7049             :       0,        // sub_hi_then_sub_32
    7050             :       0,        // sub_32_sub_hi_then_sub_32
    7051             :     },
    7052             :     {   // FGR64
    7053             :       0,        // sub_32
    7054             :       0,        // sub_64
    7055             :       0,        // sub_dsp16_19
    7056             :       0,        // sub_dsp20
    7057             :       0,        // sub_dsp21
    7058             :       0,        // sub_dsp22
    7059             :       0,        // sub_dsp23
    7060             :       46,       // sub_hi -> FGR64
    7061             :       46,       // sub_lo -> FGR64
    7062             :       0,        // sub_hi_then_sub_32
    7063             :       0,        // sub_32_sub_hi_then_sub_32
    7064             :     },
    7065             :     {   // GPR64
    7066             :       47,       // sub_32 -> GPR64
    7067             :       0,        // sub_64
    7068             :       0,        // sub_dsp16_19
    7069             :       0,        // sub_dsp20
    7070             :       0,        // sub_dsp21
    7071             :       0,        // sub_dsp22
    7072             :       0,        // sub_dsp23
    7073             :       0,        // sub_hi
    7074             :       0,        // sub_lo
    7075             :       0,        // sub_hi_then_sub_32
    7076             :       0,        // sub_32_sub_hi_then_sub_32
    7077             :     },
    7078             :     {   // GPR64_with_sub_32_in_GPR32NONZERO
    7079             :       48,       // sub_32 -> GPR64_with_sub_32_in_GPR32NONZERO
    7080             :       0,        // sub_64
    7081             :       0,        // sub_dsp16_19
    7082             :       0,        // sub_dsp20
    7083             :       0,        // sub_dsp21
    7084             :       0,        // sub_dsp22
    7085             :       0,        // sub_dsp23
    7086             :       0,        // sub_hi
    7087             :       0,        // sub_lo
    7088             :       0,        // sub_hi_then_sub_32
    7089             :       0,        // sub_32_sub_hi_then_sub_32
    7090             :     },
    7091             :     {   // AFGR64
    7092             :       0,        // sub_32
    7093             :       0,        // sub_64
    7094             :       0,        // sub_dsp16_19
    7095             :       0,        // sub_dsp20
    7096             :       0,        // sub_dsp21
    7097             :       0,        // sub_dsp22
    7098             :       0,        // sub_dsp23
    7099             :       49,       // sub_hi -> AFGR64
    7100             :       49,       // sub_lo -> AFGR64
    7101             :       0,        // sub_hi_then_sub_32
    7102             :       0,        // sub_32_sub_hi_then_sub_32
    7103             :     },
    7104             :     {   // FGR64_and_OddSP
    7105             :       0,        // sub_32
    7106             :       0,        // sub_64
    7107             :       0,        // sub_dsp16_19
    7108             :       0,        // sub_dsp20
    7109             :       0,        // sub_dsp21
    7110             :       0,        // sub_dsp22
    7111             :       0,        // sub_dsp23
    7112             :       50,       // sub_hi -> FGR64_and_OddSP
    7113             :       50,       // sub_lo -> FGR64_and_OddSP
    7114             :       0,        // sub_hi_then_sub_32
    7115             :       0,        // sub_32_sub_hi_then_sub_32
    7116             :     },
    7117             :     {   // GPR64_with_sub_32_in_CPU16RegsPlusSP
    7118             :       51,       // sub_32 -> GPR64_with_sub_32_in_CPU16RegsPlusSP
    7119             :       0,        // sub_64
    7120             :       0,        // sub_dsp16_19
    7121             :       0,        // sub_dsp20
    7122             :       0,        // sub_dsp21
    7123             :       0,        // sub_dsp22
    7124             :       0,        // sub_dsp23
    7125             :       0,        // sub_hi
    7126             :       0,        // sub_lo
    7127             :       0,        // sub_hi_then_sub_32
    7128             :       0,        // sub_32_sub_hi_then_sub_32
    7129             :     },
    7130             :     {   // AFGR64_and_OddSP
    7131             :       0,        // sub_32
    7132             :       0,        // sub_64
    7133             :       0,        // sub_dsp16_19
    7134             :       0,        // sub_dsp20
    7135             :       0,        // sub_dsp21
    7136             :       0,        // sub_dsp22
    7137             :       0,        // sub_dsp23
    7138             :       52,       // sub_hi -> AFGR64_and_OddSP
    7139             :       52,       // sub_lo -> AFGR64_and_OddSP
    7140             :       0,        // sub_hi_then_sub_32
    7141             :       0,        // sub_32_sub_hi_then_sub_32
    7142             :     },
    7143             :     {   // GPR64_with_sub_32_in_CPU16Regs
    7144             :       53,       // sub_32 -> GPR64_with_sub_32_in_CPU16Regs
    7145             :       0,        // sub_64
    7146             :       0,        // sub_dsp16_19
    7147             :       0,        // sub_dsp20
    7148             :       0,        // sub_dsp21
    7149             :       0,        // sub_dsp22
    7150             :       0,        // sub_dsp23
    7151             :       0,        // sub_hi
    7152             :       0,        // sub_lo
    7153             :       0,        // sub_hi_then_sub_32
    7154             :       0,        // sub_32_sub_hi_then_sub_32
    7155             :     },
    7156             :     {   // GPR64_with_sub_32_in_GPRMM16MoveP
    7157             :       54,       // sub_32 -> GPR64_with_sub_32_in_GPRMM16MoveP
    7158             :       0,        // sub_64
    7159             :       0,        // sub_dsp16_19
    7160             :       0,        // sub_dsp20
    7161             :       0,        // sub_dsp21
    7162             :       0,        // sub_dsp22
    7163             :       0,        // sub_dsp23
    7164             :       0,        // sub_hi
    7165             :       0,        // sub_lo
    7166             :       0,        // sub_hi_then_sub_32
    7167             :       0,        // sub_32_sub_hi_then_sub_32
    7168             :     },
    7169             :     {   // GPR64_with_sub_32_in_GPRMM16Zero
    7170             :       55,       // sub_32 -> GPR64_with_sub_32_in_GPRMM16Zero
    7171             :       0,        // sub_64
    7172             :       0,        // sub_dsp16_19
    7173             :       0,        // sub_dsp20
    7174             :       0,        // sub_dsp21
    7175             :       0,        // sub_dsp22
    7176             :       0,        // sub_dsp23
    7177             :       0,        // sub_hi
    7178             :       0,        // sub_lo
    7179             :       0,        // sub_hi_then_sub_32
    7180             :       0,        // sub_32_sub_hi_then_sub_32
    7181             :     },
    7182             :     {   // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero
    7183             :       56,       // sub_32 -> GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero
    7184             :       0,        // sub_64
    7185             :       0,        // sub_dsp16_19
    7186             :       0,        // sub_dsp20
    7187             :       0,        // sub_dsp21
    7188             :       0,        // sub_dsp22
    7189             :       0,        // sub_dsp23
    7190             :       0,        // sub_hi
    7191             :       0,        // sub_lo
    7192             :       0,        // sub_hi_then_sub_32
    7193             :       0,        // sub_32_sub_hi_then_sub_32
    7194             :     },
    7195             :     {   // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP
    7196             :       57,       // sub_32 -> GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP
    7197             :       0,        // sub_64
    7198             :       0,        // sub_dsp16_19
    7199             :       0,        // sub_dsp20
    7200             :       0,        // sub_dsp21
    7201             :       0,        // sub_dsp22
    7202             :       0,        // sub_dsp23
    7203             :       0,        // sub_hi
    7204             :       0,        // sub_lo
    7205             :       0,        // sub_hi_then_sub_32
    7206             :       0,        // sub_32_sub_hi_then_sub_32
    7207             :     },
    7208             :     {   // GPR64_with_sub_32_in_GPRMM16MovePPairSecond
    7209             :       58,       // sub_32 -> GPR64_with_sub_32_in_GPRMM16MovePPairSecond
    7210             :       0,        // sub_64
    7211             :       0,        // sub_dsp16_19
    7212             :       0,        // sub_dsp20
    7213             :       0,        // sub_dsp21
    7214             :       0,        // sub_dsp22
    7215             :       0,        // sub_dsp23
    7216             :       0,        // sub_hi
    7217             :       0,        // sub_lo
    7218             :       0,        // sub_hi_then_sub_32
    7219             :       0,        // sub_32_sub_hi_then_sub_32
    7220             :     },
    7221             :     {   // ACC64DSP
    7222             :       0,        // sub_32
    7223             :       0,        // sub_64
    7224             :       0,        // sub_dsp16_19
    7225             :       0,        // sub_dsp20
    7226             :       0,        // sub_dsp21
    7227             :       0,        // sub_dsp22
    7228             :       0,        // sub_dsp23
    7229             :       59,       // sub_hi -> ACC64DSP
    7230             :       59,       // sub_lo -> ACC64DSP
    7231             :       0,        // sub_hi_then_sub_32
    7232             :       0,        // sub_32_sub_hi_then_sub_32
    7233             :     },
    7234             :     {   // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP
    7235             :       60,       // sub_32 -> GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP
    7236             :       0,        // sub_64
    7237             :       0,        // sub_dsp16_19
    7238             :       0,        // sub_dsp20
    7239             :       0,        // sub_dsp21
    7240             :       0,        // sub_dsp22
    7241             :       0,        // sub_dsp23
    7242             :       0,        // sub_hi
    7243             :       0,        // sub_lo
    7244             :       0,        // sub_hi_then_sub_32
    7245             :       0,        // sub_32_sub_hi_then_sub_32
    7246             :     },
    7247             :     {   // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero
    7248             :       61,       // sub_32 -> GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero
    7249             :       0,        // sub_64
    7250             :       0,        // sub_dsp16_19
    7251             :       0,        // sub_dsp20
    7252             :       0,        // sub_dsp21
    7253             :       0,        // sub_dsp22
    7254             :       0,        // sub_dsp23
    7255             :       0,        // sub_hi
    7256             :       0,        // sub_lo
    7257             :       0,        // sub_hi_then_sub_32
    7258             :       0,        // sub_32_sub_hi_then_sub_32
    7259             :     },
    7260             :     {   // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond
    7261             :       62,       // sub_32 -> GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond
    7262             :       0,        // sub_64
    7263             :       0,        // sub_dsp16_19
    7264             :       0,        // sub_dsp20
    7265             :       0,        // sub_dsp21
    7266             :       0,        // sub_dsp22
    7267             :       0,        // sub_dsp23
    7268             :       0,        // sub_hi
    7269             :       0,        // sub_lo
    7270             :       0,        // sub_hi_then_sub_32
    7271             :       0,        // sub_32_sub_hi_then_sub_32
    7272             :     },
    7273             :     {   // GPR64_with_sub_32_in_GPRMM16MovePPairFirst
    7274             :       63,       // sub_32 -> GPR64_with_sub_32_in_GPRMM16MovePPairFirst
    7275             :       0,        // sub_64
    7276             :       0,        // sub_dsp16_19
    7277             :       0,        // sub_dsp20
    7278             :       0,        // sub_dsp21
    7279             :       0,        // sub_dsp22
    7280             :       0,        // sub_dsp23
    7281             :       0,        // sub_hi
    7282             :       0,        // sub_lo
    7283             :       0,        // sub_hi_then_sub_32
    7284             :       0,        // sub_32_sub_hi_then_sub_32
    7285             :     },
    7286             :     {   // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero
    7287             :       64,       // sub_32 -> GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero
    7288             :       0,        // sub_64
    7289             :       0,        // sub_dsp16_19
    7290             :       0,        // sub_dsp20
    7291             :       0,        // sub_dsp21
    7292             :       0,        // sub_dsp22
    7293             :       0,        // sub_dsp23
    7294             :       0,        // sub_hi
    7295             :       0,        // sub_lo
    7296             :       0,        // sub_hi_then_sub_32
    7297             :       0,        // sub_32_sub_hi_then_sub_32
    7298             :     },
    7299             :     {   // OCTEON_MPL
    7300             :       0,        // sub_32
    7301             :       0,        // sub_64
    7302             :       0,        // sub_dsp16_19
    7303             :       0,        // sub_dsp20
    7304             :       0,        // sub_dsp21
    7305             :       0,        // sub_dsp22
    7306             :       0,        // sub_dsp23
    7307             :       0,        // sub_hi
    7308             :       0,        // sub_lo
    7309             :       0,        // sub_hi_then_sub_32
    7310             :       0,        // sub_32_sub_hi_then_sub_32
    7311             :     },
    7312             :     {   // OCTEON_P
    7313             :       0,        // sub_32
    7314             :       0,        // sub_64
    7315             :       0,        // sub_dsp16_19
    7316             :       0,        // sub_dsp20
    7317             :       0,        // sub_dsp21
    7318             :       0,        // sub_dsp22
    7319             :       0,        // sub_dsp23
    7320             :       0,        // sub_hi
    7321             :       0,        // sub_lo
    7322             :       0,        // sub_hi_then_sub_32
    7323             :       0,        // sub_32_sub_hi_then_sub_32
    7324             :     },
    7325             :     {   // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond
    7326             :       67,       // sub_32 -> GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond
    7327             :       0,        // sub_64
    7328             :       0,        // sub_dsp16_19
    7329             :       0,        // sub_dsp20
    7330             :       0,        // sub_dsp21
    7331             :       0,        // sub_dsp22
    7332             :       0,        // sub_dsp23
    7333             :       0,        // sub_hi
    7334             :       0,        // sub_lo
    7335             :       0,        // sub_hi_then_sub_32
    7336             :       0,        // sub_32_sub_hi_then_sub_32
    7337             :     },
    7338             :     {   // ACC64
    7339             :       0,        // sub_32
    7340             :       0,        // sub_64
    7341             :       0,        // sub_dsp16_19
    7342             :       0,        // sub_dsp20
    7343             :       0,        // sub_dsp21
    7344             :       0,        // sub_dsp22
    7345             :       0,        // sub_dsp23
    7346             :       68,       // sub_hi -> ACC64
    7347             :       68,       // sub_lo -> ACC64
    7348             :       0,        // sub_hi_then_sub_32
    7349             :       0,        // sub_32_sub_hi_then_sub_32
    7350             :     },
    7351             :     {   // GP64
    7352             :       69,       // sub_32 -> GP64
    7353             :       0,        // sub_64
    7354             :       0,        // sub_dsp16_19
    7355             :       0,        // sub_dsp20
    7356             :       0,        // sub_dsp21
    7357             :       0,        // sub_dsp22
    7358             :       0,        // sub_dsp23
    7359             :       0,        // sub_hi
    7360             :       0,        // sub_lo
    7361             :       0,        // sub_hi_then_sub_32
    7362             :       0,        // sub_32_sub_hi_then_sub_32
    7363             :     },
    7364             :     {   // GPR64_with_sub_32_in_CPURAReg
    7365             :       70,       // sub_32 -> GPR64_with_sub_32_in_CPURAReg
    7366             :       0,        // sub_64
    7367             :       0,        // sub_dsp16_19
    7368             :       0,        // sub_dsp20
    7369             :       0,        // sub_dsp21
    7370             :       0,        // sub_dsp22
    7371             :       0,        // sub_dsp23
    7372             :       0,        // sub_hi
    7373             :       0,        // sub_lo
    7374             :       0,        // sub_hi_then_sub_32
    7375             :       0,        // sub_32_sub_hi_then_sub_32
    7376             :     },
    7377             :     {   // GPR64_with_sub_32_in_GPR32ZERO
    7378             :       71,       // sub_32 -> GPR64_with_sub_32_in_GPR32ZERO
    7379             :       0,        // sub_64
    7380             :       0,        // sub_dsp16_19
    7381             :       0,        // sub_dsp20
    7382             :       0,        // sub_dsp21
    7383             :       0,        // sub_dsp22
    7384             :       0,        // sub_dsp23
    7385             :       0,        // sub_hi
    7386             :       0,        // sub_lo
    7387             :       0,        // sub_hi_then_sub_32
    7388             :       0,        // sub_32_sub_hi_then_sub_32
    7389             :     },
    7390             :     {   // HI64
    7391             :       72,       // sub_32 -> HI64
    7392             :       0,        // sub_64
    7393             :       0,        // sub_dsp16_19
    7394             :       0,        // sub_dsp20
    7395             :       0,        // sub_dsp21
    7396             :       0,        // sub_dsp22
    7397             :       0,        // sub_dsp23
    7398             :       0,        // sub_hi
    7399             :       0,        // sub_lo
    7400             :       0,        // sub_hi_then_sub_32
    7401             :       0,        // sub_32_sub_hi_then_sub_32
    7402             :     },
    7403             :     {   // LO64
    7404             :       73,       // sub_32 -> LO64
    7405             :       0,        // sub_64
    7406             :       0,        // sub_dsp16_19
    7407             :       0,        // sub_dsp20
    7408             :       0,        // sub_dsp21
    7409             :       0,        // sub_dsp22
    7410             :       0,        // sub_dsp23
    7411             :       0,        // sub_hi
    7412             :       0,        // sub_lo
    7413             :       0,        // sub_hi_then_sub_32
    7414             :       0,        // sub_32_sub_hi_then_sub_32
    7415             :     },
    7416             :     {   // SP64
    7417             :       74,       // sub_32 -> SP64
    7418             :       0,        // sub_64
    7419             :       0,        // sub_dsp16_19
    7420             :       0,        // sub_dsp20
    7421             :       0,        // sub_dsp21
    7422             :       0,        // sub_dsp22
    7423             :       0,        // sub_dsp23
    7424             :       0,        // sub_hi
    7425             :       0,        // sub_lo
    7426             :       0,        // sub_hi_then_sub_32
    7427             :       0,        // sub_32_sub_hi_then_sub_32
    7428             :     },
    7429             :     {   // MSA128B
    7430             :       0,        // sub_32
    7431             :       75,       // sub_64 -> MSA128B
    7432             :       0,        // sub_dsp16_19
    7433             :       0,        // sub_dsp20
    7434             :       0,        // sub_dsp21
    7435             :       0,        // sub_dsp22
    7436             :       0,        // sub_dsp23
    7437             :       75,       // sub_hi -> MSA128B
    7438             :       75,       // sub_lo -> MSA128B
    7439             :       0,        // sub_hi_then_sub_32
    7440             :       0,        // sub_32_sub_hi_then_sub_32
    7441             :     },
    7442             :     {   // MSA128D
    7443             :       0,        // sub_32
    7444             :       76,       // sub_64 -> MSA128D
    7445             :       0,        // sub_dsp16_19
    7446             :       0,        // sub_dsp20
    7447             :       0,        // sub_dsp21
    7448             :       0,        // sub_dsp22
    7449             :       0,        // sub_dsp23
    7450             :       76,       // sub_hi -> MSA128D
    7451             :       76,       // sub_lo -> MSA128D
    7452             :       0,        // sub_hi_then_sub_32
    7453             :       0,        // sub_32_sub_hi_then_sub_32
    7454             :     },
    7455             :     {   // MSA128H
    7456             :       0,        // sub_32
    7457             :       77,       // sub_64 -> MSA128H
    7458             :       0,        // sub_dsp16_19
    7459             :       0,        // sub_dsp20
    7460             :       0,        // sub_dsp21
    7461             :       0,        // sub_dsp22
    7462             :       0,        // sub_dsp23
    7463             :       77,       // sub_hi -> MSA128H
    7464             :       77,       // sub_lo -> MSA128H
    7465             :       0,        // sub_hi_then_sub_32
    7466             :       0,        // sub_32_sub_hi_then_sub_32
    7467             :     },
    7468             :     {   // MSA128W
    7469             :       0,        // sub_32
    7470             :       78,       // sub_64 -> MSA128W
    7471             :       0,        // sub_dsp16_19
    7472             :       0,        // sub_dsp20
    7473             :       0,        // sub_dsp21
    7474             :       0,        // sub_dsp22
    7475             :       0,        // sub_dsp23
    7476             :       78,       // sub_hi -> MSA128W
    7477             :       78,       // sub_lo -> MSA128W
    7478             :       0,        // sub_hi_then_sub_32
    7479             :       0,        // sub_32_sub_hi_then_sub_32
    7480             :     },
    7481             :     {   // MSA128B_with_sub_64_in_OddSP
    7482             :       0,        // sub_32
    7483             :       79,       // sub_64 -> MSA128B_with_sub_64_in_OddSP
    7484             :       0,        // sub_dsp16_19
    7485             :       0,        // sub_dsp20
    7486             :       0,        // sub_dsp21
    7487             :       0,        // sub_dsp22
    7488             :       0,        // sub_dsp23
    7489             :       79,       // sub_hi -> MSA128B_with_sub_64_in_OddSP
    7490             :       79,       // sub_lo -> MSA128B_with_sub_64_in_OddSP
    7491             :       0,        // sub_hi_then_sub_32
    7492             :       0,        // sub_32_sub_hi_then_sub_32
    7493             :     },
    7494             :     {   // MSA128WEvens
    7495             :       0,        // sub_32
    7496             :       80,       // sub_64 -> MSA128WEvens
    7497             :       0,        // sub_dsp16_19
    7498             :       0,        // sub_dsp20
    7499             :       0,        // sub_dsp21
    7500             :       0,        // sub_dsp22
    7501             :       0,        // sub_dsp23
    7502             :       80,       // sub_hi -> MSA128WEvens
    7503             :       80,       // sub_lo -> MSA128WEvens
    7504             :       0,        // sub_hi_then_sub_32
    7505             :       0,        // sub_32_sub_hi_then_sub_32
    7506             :     },
    7507             :     {   // ACC128
    7508             :       81,       // sub_32 -> ACC128
    7509             :       0,        // sub_64
    7510             :       0,        // sub_dsp16_19
    7511             :       0,        // sub_dsp20
    7512             :       0,        // sub_dsp21
    7513             :       0,        // sub_dsp22
    7514             :       0,        // sub_dsp23
    7515             :       81,       // sub_hi -> ACC128
    7516             :       81,       // sub_lo -> ACC128
    7517             :       81,       // sub_hi_then_sub_32 -> ACC128
    7518             :       81,       // sub_32_sub_hi_then_sub_32 -> ACC128
    7519             :     },
    7520             :   };
    7521             :   assert(RC && "Missing regclass");
    7522        9723 :   if (!Idx) return RC;
    7523        9723 :   --Idx;
    7524             :   assert(Idx < 11 && "Bad subreg");
    7525        9723 :   unsigned TV = Table[RC->getID()][Idx];
    7526        9723 :   return TV ? getRegClass(TV - 1) : nullptr;
    7527             : }
    7528             : 
    7529             : /// Get the weight in units of pressure for this register class.
    7530        4373 : const RegClassWeight &MipsGenRegisterInfo::
    7531             : getRegClassWeight(const TargetRegisterClass *RC) const {
    7532             :   static const RegClassWeight RCWeightTable[] = {
    7533             :     {2, 64},    // MSA128F16
    7534             :     {2, 32},    // MSA128F16_with_sub_64_in_OddSP
    7535             :     {2, 40},    // OddSP
    7536             :     {0, 0},     // CCR
    7537             :     {0, 0},     // COP0
    7538             :     {0, 0},     // COP2
    7539             :     {0, 0},     // COP3
    7540             :     {1, 32},    // DSPR
    7541             :     {1, 32},    // FGR32
    7542             :     {1, 32},    // FGRCC
    7543             :     {1, 32},    // FGRH32
    7544             :     {1, 32},    // GPR32
    7545             :     {0, 0},     // HWRegs
    7546             :     {1, 31},    // GPR32NONZERO
    7547             :     {2, 40},    // OddSP_with_sub_hi
    7548             :     {1, 16},    // FGR32_and_OddSP
    7549             :     {1, 16},    // FGRH32_and_OddSP
    7550             :     {2, 32},    // OddSP_with_sub_hi_with_sub_hi_in_FGRH32
    7551             :     {1, 9},     // CPU16RegsPlusSP
    7552             :     {1, 8},     // CPU16Regs
    7553             :     {0, 0},     // FCC
    7554             :     {1, 8},     // GPRMM16
    7555             :     {1, 8},     // GPRMM16MoveP
    7556             :     {1, 8},     // GPRMM16Zero
    7557             :     {1, 8},     // MSACtrl
    7558             :     {2, 16},    // OddSP_with_sub_hi_with_sub_hi_in_FGR32
    7559             :     {1, 7},     // CPU16Regs_and_GPRMM16Zero
    7560             :     {1, 7},     // GPR32NONZERO_and_GPRMM16MoveP
    7561             :     {1, 5},     // GPRMM16MovePPairSecond
    7562             :     {1, 4},     // CPU16Regs_and_GPRMM16MoveP
    7563             :     {1, 4},     // GPRMM16MoveP_and_GPRMM16Zero
    7564             :     {1, 4},     // HI32DSP
    7565             :     {1, 4},     // LO32DSP
    7566             :     {1, 3},     // CPU16Regs_and_GPRMM16MovePPairSecond
    7567             :     {1, 3},     // GPRMM16MovePPairFirst
    7568             :     {1, 3},     // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero
    7569             :     {1, 2},     // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond
    7570             :     {1, 1},     // CPURAReg
    7571             :     {1, 1},     // CPUSPReg
    7572             :     {1, 1},     // DSPCC
    7573             :     {1, 1},     // GP32
    7574             :     {1, 1},     // GPR32ZERO
    7575             :     {1, 1},     // HI32
    7576             :     {1, 1},     // LO32
    7577             :     {1, 1},     // SP32
    7578             :     {2, 64},    // FGR64
    7579             :     {1, 32},    // GPR64
    7580             :     {1, 31},    // GPR64_with_sub_32_in_GPR32NONZERO
    7581             :     {2, 32},    // AFGR64
    7582             :     {2, 32},    // FGR64_and_OddSP
    7583             :     {1, 9},     // GPR64_with_sub_32_in_CPU16RegsPlusSP
    7584             :     {2, 16},    // AFGR64_and_OddSP
    7585             :     {1, 8},     // GPR64_with_sub_32_in_CPU16Regs
    7586             :     {1, 8},     // GPR64_with_sub_32_in_GPRMM16MoveP
    7587             :     {1, 8},     // GPR64_with_sub_32_in_GPRMM16Zero
    7588             :     {1, 7},     // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero
    7589             :     {1, 7},     // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP
    7590             :     {1, 5},     // GPR64_with_sub_32_in_GPRMM16MovePPairSecond
    7591             :     {2, 8},     // ACC64DSP
    7592             :     {1, 4},     // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP
    7593             :     {1, 4},     // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero
    7594             :     {1, 3},     // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond
    7595             :     {1, 3},     // GPR64_with_sub_32_in_GPRMM16MovePPairFirst
    7596             :     {1, 3},     // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero
    7597             :     {0, 0},     // OCTEON_MPL
    7598             :     {0, 0},     // OCTEON_P
    7599             :     {1, 2},     // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond
    7600             :     {2, 2},     // ACC64
    7601             :     {1, 1},     // GP64
    7602             :     {1, 1},     // GPR64_with_sub_32_in_CPURAReg
    7603             :     {1, 1},     // GPR64_with_sub_32_in_GPR32ZERO
    7604             :     {1, 1},     // HI64
    7605             :     {1, 1},     // LO64
    7606             :     {1, 1},     // SP64
    7607             :     {2, 64},    // MSA128B
    7608             :     {2, 64},    // MSA128D
    7609             :     {2, 64},    // MSA128H
    7610             :     {2, 64},    // MSA128W
    7611             :     {2, 32},    // MSA128B_with_sub_64_in_OddSP
    7612             :     {2, 32},    // MSA128WEvens
    7613             :     {2, 2},     // ACC128
    7614             :   };
    7615        8746 :   return RCWeightTable[RC->getID()];
    7616             : }
    7617             : 
    7618             : /// Get the weight in units of pressure for this register unit.
    7619           0 : unsigned MipsGenRegisterInfo::
    7620             : getRegUnitWeight(unsigned RegUnit) const {
    7621             :   assert(RegUnit < 297 && "invalid register unit");
    7622             :   // All register units have unit weight.
    7623           0 :   return 1;
    7624             : }
    7625             : 
    7626             : 
    7627             : // Get the number of dimensions of register pressure.
    7628       21189 : unsigned MipsGenRegisterInfo::getNumRegPressureSets() const {
    7629       21189 :   return 28;
    7630             : }
    7631             : 
    7632             : // Get the name of this register unit pressure set.
    7633           0 : const char *MipsGenRegisterInfo::
    7634             : getRegPressureSetName(unsigned Idx) const {
    7635             :   static const char *const PressureNameTable[] = {
    7636             :     "DSPCC",
    7637             :     "GPR32ZERO",
    7638             :     "GPR64_with_sub_32_in_CPURAReg",
    7639             :     "HI32",
    7640             :     "GPRMM16MovePPairFirst",
    7641             :     "CPU16Regs_and_GPRMM16MoveP",
    7642             :     "HI32DSP",
    7643             :     "LO32DSP",
    7644             :     "GPRMM16MovePPairSecond",
    7645             :     "GPRMM16MoveP",
    7646             :     "MSACtrl",
    7647             :     "ACC64DSP",
    7648             :     "CPU16Regs",
    7649             :     "GPRMM16Zero+GPRMM16MovePPairSecond",
    7650             :     "CPU16Regs+GPRMM16MovePPairSecond",
    7651             :     "CPU16Regs+GPRMM16MoveP",
    7652             :     "FGR32_and_OddSP",
    7653             :     "AFGR64_and_OddSP",
    7654             :     "FGR32_and_OddSP+AFGR64_and_OddSP",
    7655             :     "MSA128F16_with_sub_64_in_OddSP",
    7656             :     "DSPR",
    7657             :     "FGR32",
    7658             :     "MSA128WEvens",
    7659             :     "MSA128F16_with_sub_64_in_OddSP+AFGR64_and_OddSP",
    7660             :     "AFGR64_and_OddSP+MSA128WEvens",
    7661             :     "MSA128F16_with_sub_64_in_OddSP+FGR32",
    7662             :     "FGR32+MSA128WEvens",
    7663             :     "MSA128F16",
    7664             :   };
    7665           0 :   return PressureNameTable[Idx];
    7666             : }
    7667             : 
    7668             : // Get the register unit pressure limit for this dimension.
    7669             : // This limit must be adjusted dynamically for reserved registers.
    7670      333172 : unsigned MipsGenRegisterInfo::
    7671             : getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const {
    7672             :   static const uint8_t PressureLimitTable[] = {
    7673             :     1,          // 0: DSPCC
    7674             :     1,          // 1: GPR32ZERO
    7675             :     1,          // 2: GPR64_with_sub_32_in_CPURAReg
    7676             :     2,          // 3: HI32
    7677             :     3,          // 4: GPRMM16MovePPairFirst
    7678             :     5,          // 5: CPU16Regs_and_GPRMM16MoveP
    7679             :     5,          // 6: HI32DSP
    7680             :     5,          // 7: LO32DSP
    7681             :     6,          // 8: GPRMM16MovePPairSecond
    7682             :     8,          // 9: GPRMM16MoveP
    7683             :     8,          // 10: MSACtrl
    7684             :     8,          // 11: ACC64DSP
    7685             :     10,         // 12: CPU16Regs
    7686             :     10,         // 13: GPRMM16Zero+GPRMM16MovePPairSecond
    7687             :     11,         // 14: CPU16Regs+GPRMM16MovePPairSecond
    7688             :     13,         // 15: CPU16Regs+GPRMM16MoveP
    7689             :     16,         // 16: FGR32_and_OddSP
    7690             :     16,         // 17: AFGR64_and_OddSP
    7691             :     24,         // 18: FGR32_and_OddSP+AFGR64_and_OddSP
    7692             :     32,         // 19: MSA128F16_with_sub_64_in_OddSP
    7693             :     32,         // 20: DSPR
    7694             :     32,         // 21: FGR32
    7695             :     32,         // 22: MSA128WEvens
    7696             :     40,         // 23: MSA128F16_with_sub_64_in_OddSP+AFGR64_and_OddSP
    7697             :     40,         // 24: AFGR64_and_OddSP+MSA128WEvens
    7698             :     48,         // 25: MSA128F16_with_sub_64_in_OddSP+FGR32
    7699             :     48,         // 26: FGR32+MSA128WEvens
    7700             :     64,         // 27: MSA128F16
    7701             :   };
    7702      333172 :   return PressureLimitTable[Idx];
    7703             : }
    7704             : 
    7705             : /// Table of pressure sets per register class or unit.
    7706             : static const int RCSetsTable[] = {
    7707             :   /* 0 */ 0, -1,
    7708             :   /* 2 */ 10, -1,
    7709             :   /* 4 */ 6, 11, -1,
    7710             :   /* 7 */ 3, 6, 7, 11, -1,
    7711             :   /* 12 */ 2, 20, -1,
    7712             :   /* 15 */ 8, 13, 14, 20, -1,
    7713             :   /* 20 */ 9, 15, 20, -1,
    7714             :   /* 24 */ 1, 5, 9, 12, 13, 15, 20, -1,
    7715             :   /* 32 */ 5, 9, 12, 14, 15, 20, -1,
    7716             :   /* 39 */ 4, 8, 12, 13, 14, 15, 20, -1,
    7717             :   /* 47 */ 5, 9, 12, 13, 14, 15, 20, -1,
    7718             :   /* 55 */ 19, 23, 25, 27, -1,
    7719             :   /* 60 */ 22, 24, 26, 27, -1,
    7720             :   /* 65 */ 21, 25, 26, 27, -1,
    7721             :   /* 70 */ 16, 18, 19, 21, 23, 25, 26, 27, -1,
    7722             :   /* 79 */ 21, 22, 24, 25, 26, 27, -1,
    7723             :   /* 86 */ 17, 18, 21, 23, 24, 25, 26, 27, -1,
    7724             :   /* 95 */ 16, 17, 18, 19, 21, 23, 24, 25, 26, 27, -1,
    7725             :   /* 106 */ 17, 18, 21, 22, 23, 24, 25, 26, 27, -1,
    7726             : };
    7727             : 
    7728             : /// Get the dimensions of register pressure impacted by this register class.
    7729             : /// Returns a -1 terminated array of pressure set IDs
    7730        2995 : const int* MipsGenRegisterInfo::
    7731             : getRegClassPressureSets(const TargetRegisterClass *RC) const {
    7732             :   static const uint8_t RCSetStartTable[] = {
    7733             :     58,55,1,1,1,1,1,13,65,65,1,13,1,13,1,70,1,1,34,34,1,34,20,27,2,1,41,20,15,32,25,4,9,40,39,47,39,1,1,0,1,24,7,7,1,58,13,13,65,55,34,86,34,20,27,41,20,15,5,32,25,40,39,47,1,1,39,7,1,12,24,7,7,1,58,58,58,58,55,60,7,};
    7734        5990 :   return &RCSetsTable[RCSetStartTable[RC->getID()]];
    7735             : }
    7736             : 
    7737             : /// Get the dimensions of register pressure impacted by this register unit.
    7738             : /// Returns a -1 terminated array of pressure set IDs
    7739           0 : const int* MipsGenRegisterInfo::
    7740             : getRegUnitPressureSets(unsigned RegUnit) const {
    7741             :   assert(RegUnit < 297 && "invalid register unit");
    7742             :   static const uint8_t RUSetStartTable[] = {
    7743             :     13,0,1,1,1,1,1,1,1,1,1,13,13,2,2,2,2,2,2,2,2,1,12,34,24,39,39,39,40,7,7,9,4,9,4,9,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,79,70,106,95,79,70,106,95,79,70,106,95,79,70,106,95,79,70,106,95,79,70,106,95,79,70,106,95,79,70,106,95,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,60,55,60,55,60,55,60,55,60,55,60,55,60,55,60,55,60,55,60,55,60,55,60,55,60,55,60,55,60,55,60,55,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,13,13,1,1,1,1,1,1,32,47,20,20,20,15,15,13,13,13,13,13,13,13,13,13,13,13,47,47,};
    7744           0 :   return &RCSetsTable[RUSetStartTable[RegUnit]];
    7745             : }
    7746             : 
    7747             : extern const MCRegisterDesc MipsRegDesc[];
    7748             : extern const MCPhysReg MipsRegDiffLists[];
    7749             : extern const LaneBitmask MipsLaneMaskLists[];
    7750             : extern const char MipsRegStrings[];
    7751             : extern const char MipsRegClassStrings[];
    7752             : extern const MCPhysReg MipsRegUnitRoots[][2];
    7753             : extern const uint16_t MipsSubRegIdxLists[];
    7754             : extern const MCRegisterInfo::SubRegCoveredBits MipsSubRegIdxRanges[];
    7755             : extern const uint16_t MipsRegEncodingTable[];
    7756             : // Mips Dwarf<->LLVM register mappings.
    7757             : extern const MCRegisterInfo::DwarfLLVMRegPair MipsDwarfFlavour0Dwarf2L[];
    7758             : extern const unsigned MipsDwarfFlavour0Dwarf2LSize;
    7759             : 
    7760             : extern const MCRegisterInfo::DwarfLLVMRegPair MipsEHFlavour0Dwarf2L[];
    7761             : extern const unsigned MipsEHFlavour0Dwarf2LSize;
    7762             : 
    7763             : extern const MCRegisterInfo::DwarfLLVMRegPair MipsDwarfFlavour0L2Dwarf[];
    7764             : extern const unsigned MipsDwarfFlavour0L2DwarfSize;
    7765             : 
    7766             : extern const MCRegisterInfo::DwarfLLVMRegPair MipsEHFlavour0L2Dwarf[];
    7767             : extern const unsigned MipsEHFlavour0L2DwarfSize;
    7768             : 
    7769       10318 : MipsGenRegisterInfo::
    7770             : MipsGenRegisterInfo(unsigned RA, unsigned DwarfFlavour, unsigned EHFlavour,
    7771       10318 :       unsigned PC, unsigned HwMode)
    7772             :   : TargetRegisterInfo(MipsRegInfoDesc, RegisterClasses, RegisterClasses+81,
    7773             :              SubRegIndexNameTable, SubRegIndexLaneMaskTable,
    7774       20636 :              LaneBitmask(0xFFFFFF80), RegClassInfos, HwMode) {
    7775             :   InitMCRegisterInfo(MipsRegDesc, 418, RA, PC,
    7776             :                      MipsMCRegisterClasses, 81,
    7777             :                      MipsRegUnitRoots,
    7778             :                      297,
    7779             :                      MipsRegDiffLists,
    7780             :                      MipsLaneMaskLists,
    7781             :                      MipsRegStrings,
    7782             :                      MipsRegClassStrings,
    7783             :                      MipsSubRegIdxLists,
    7784             :                      12,
    7785             :                      MipsSubRegIdxRanges,
    7786             :                      MipsRegEncodingTable);
    7787             : 
    7788       10318 :   switch (DwarfFlavour) {
    7789           0 :   default:
    7790           0 :     llvm_unreachable("Unknown DWARF flavour");
    7791       10318 :   case 0:
    7792       10318 :     mapDwarfRegsToLLVMRegs(MipsDwarfFlavour0Dwarf2L, MipsDwarfFlavour0Dwarf2LSize, false);
    7793             :     break;
    7794             :   }
    7795       10318 :   switch (EHFlavour) {
    7796           0 :   default:
    7797           0 :     llvm_unreachable("Unknown DWARF flavour");
    7798       10318 :   case 0:
    7799       10318 :     mapDwarfRegsToLLVMRegs(MipsEHFlavour0Dwarf2L, MipsEHFlavour0Dwarf2LSize, true);
    7800             :     break;
    7801             :   }
    7802             :   switch (DwarfFlavour) {
    7803             :   default:
    7804             :     llvm_unreachable("Unknown DWARF flavour");
    7805             :   case 0:
    7806       10318 :     mapLLVMRegsToDwarfRegs(MipsDwarfFlavour0L2Dwarf, MipsDwarfFlavour0L2DwarfSize, false);
    7807             :     break;
    7808             :   }
    7809             :   switch (EHFlavour) {
    7810             :   default:
    7811             :     llvm_unreachable("Unknown DWARF flavour");
    7812             :   case 0:
    7813       10318 :     mapLLVMRegsToDwarfRegs(MipsEHFlavour0L2Dwarf, MipsEHFlavour0L2DwarfSize, true);
    7814             :     break;
    7815             :   }
    7816       10318 : }
    7817             : 
    7818             : static const MCPhysReg CSR_Interrupt_32_SaveList[] = { Mips::A3, Mips::A2, Mips::A1, Mips::A0, Mips::S7, Mips::S6, Mips::S5, Mips::S4, Mips::S3, Mips::S2, Mips::S1, Mips::S0, Mips::V1, Mips::V0, Mips::T9, Mips::T8, Mips::T7, Mips::T6, Mips::T5, Mips::T4, Mips::T3, Mips::T2, Mips::T1, Mips::T0, Mips::RA, Mips::FP, Mips::GP, Mips::AT, Mips::LO0, Mips::HI0, 0 };
    7819             : static const uint32_t CSR_Interrupt_32_RegMask[] = { 0x07c80302, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x20000000, 0x00000000, 0xffbfc008, 0x00000007, 0x00000000, 0x00000000, 0x00000000, };
    7820             : static const MCPhysReg CSR_Interrupt_32R6_SaveList[] = { Mips::A3, Mips::A2, Mips::A1, Mips::A0, Mips::S7, Mips::S6, Mips::S5, Mips::S4, Mips::S3, Mips::S2, Mips::S1, Mips::S0, Mips::V1, Mips::V0, Mips::T9, Mips::T8, Mips::T7, Mips::T6, Mips::T5, Mips::T4, Mips::T3, Mips::T2, Mips::T1, Mips::T0, Mips::RA, Mips::FP, Mips::GP, Mips::AT, 0 };
    7821             : static const uint32_t CSR_Interrupt_32R6_RegMask[] = { 0x03c80302, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffbfc000, 0x00000007, 0x00000000, 0x00000000, 0x00000000, };
    7822             : static const MCPhysReg CSR_Interrupt_64_SaveList[] = { Mips::A3_64, Mips::A2_64, Mips::A1_64, Mips::A0_64, Mips::S7_64, Mips::S6_64, Mips::S5_64, Mips::S4_64, Mips::S3_64, Mips::S2_64, Mips::S1_64, Mips::S0_64, Mips::T9_64, Mips::T8_64, Mips::T7_64, Mips::T6_64, Mips::T5_64, Mips::T4_64, Mips::T3_64, Mips::T2_64, Mips::T1_64, Mips::T0_64, Mips::V1_64, Mips::V0_64, Mips::RA_64, Mips::FP_64, Mips::GP_64, Mips::AT_64, Mips::LO0_64, Mips::HI0_64, 0 };
    7823             : static const uint32_t CSR_Interrupt_64_RegMask[] = { 0x47c80302, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x08000000, 0x30000000, 0x00000000, 0xffbfe008, 0x00000007, 0x000001f0, 0xffffe400, 0x00000003, };
    7824             : static const MCPhysReg CSR_Interrupt_64R6_SaveList[] = { Mips::A3_64, Mips::A2_64, Mips::A1_64, Mips::A0_64, Mips::V1_64, Mips::V0_64, Mips::S7_64, Mips::S6_64, Mips::S5_64, Mips::S4_64, Mips::S3_64, Mips::S2_64, Mips::S1_64, Mips::S0_64, Mips::T9_64, Mips::T8_64, Mips::T7_64, Mips::T6_64, Mips::T5_64, Mips::T4_64, Mips::T3_64, Mips::T2_64, Mips::T1_64, Mips::T0_64, Mips::RA_64, Mips::FP_64, Mips::GP_64, Mips::AT_64, 0 };
    7825             : static const uint32_t CSR_Interrupt_64R6_RegMask[] = { 0x43c80302, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x08000000, 0x10000000, 0x00000000, 0xffbfe000, 0x00000007, 0x000000f0, 0xffffc000, 0x00000003, };
    7826             : static const MCPhysReg CSR_Mips16RetHelper_SaveList[] = { Mips::V0, Mips::V1, Mips::FP, Mips::A3, Mips::A2, Mips::A1, Mips::A0, Mips::S7, Mips::S6, Mips::S5, Mips::S4, Mips::S3, Mips::S2, Mips::S1, Mips::S0, Mips::D15, Mips::D14, Mips::D13, Mips::D12, Mips::D11, Mips::D10, 0 };
    7827             : static const uint32_t CSR_Mips16RetHelper_RegMask[] = { 0x03c00100, 0x00000000, 0x00000000, 0x00000000, 0x00007e00, 0x0007ff80, 0x00000000, 0x00000000, 0x00000000, 0x003fc000, 0x00000006, 0x00000000, 0x00000000, 0x00000000, };
    7828             : static const MCPhysReg CSR_N32_SaveList[] = { Mips::D20_64, Mips::D22_64, Mips::D24_64, Mips::D26_64, Mips::D28_64, Mips::D30_64, Mips::RA_64, Mips::FP_64, Mips::GP_64, Mips::S7_64, Mips::S6_64, Mips::S5_64, Mips::S4_64, Mips::S3_64, Mips::S2_64, Mips::S1_64, Mips::S0_64, 0 };
    7829             : static const uint32_t CSR_N32_RegMask[] = { 0x00080300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0002aa80, 0x08000000, 0x15550000, 0x00000000, 0x003fe000, 0x00000000, 0xa0000000, 0x003fc0aa, 0x00000000, };
    7830             : static const MCPhysReg CSR_N64_SaveList[] = { Mips::D31_64, Mips::D30_64, Mips::D29_64, Mips::D28_64, Mips::D27_64, Mips::D26_64, Mips::D25_64, Mips::D24_64, Mips::RA_64, Mips::FP_64, Mips::GP_64, Mips::S7_64, Mips::S6_64, Mips::S5_64, Mips::S4_64, Mips::S3_64, Mips::S2_64, Mips::S1_64, Mips::S0_64, 0 };
    7831             : static const uint32_t CSR_N64_RegMask[] = { 0x00080300, 0x00000000, 0x00000000, 0x00000000, 0x00007800, 0x0007f800, 0x08000000, 0x1ff00000, 0x00000000, 0x003fe000, 0x00000000, 0x00000000, 0x003fc1fe, 0x00000000, };
    7832             : static const MCPhysReg CSR_O32_SaveList[] = { Mips::D15, Mips::D14, Mips::D13, Mips::D12, Mips::D11, Mips::D10, Mips::RA, Mips::FP, Mips::S7, Mips::S6, Mips::S5, Mips::S4, Mips::S3, Mips::S2, Mips::S1, Mips::S0, 0 };
    7833             : static const uint32_t CSR_O32_RegMask[] = { 0x00080100, 0x00000000, 0x00000000, 0x00000000, 0x00007e00, 0x0007ff80, 0x00000000, 0x00000000, 0x00000000, 0x003fc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
    7834             : static const MCPhysReg CSR_O32_FP64_SaveList[] = { Mips::D30_64, Mips::D28_64, Mips::D26_64, Mips::D24_64, Mips::D22_64, Mips::D20_64, Mips::RA, Mips::FP, Mips::S7, Mips::S6, Mips::S5, Mips::S4, Mips::S3, Mips::S2, Mips::S1, Mips::S0, 0 };
    7835             : static const uint32_t CSR_O32_FP64_RegMask[] = { 0x00080100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0002aa80, 0x00000000, 0x05550000, 0x00000000, 0x003fc000, 0x00000000, 0xa0000000, 0x000000aa, 0x00000000, };
    7836             : static const MCPhysReg CSR_O32_FPXX_SaveList[] = { Mips::D15, Mips::D14, Mips::D13, Mips::D12, Mips::D11, Mips::D10, Mips::RA, Mips::FP, Mips::S7, Mips::S6, Mips::S5, Mips::S4, Mips::S3, Mips::S2, Mips::S1, Mips::S0, 0 };
    7837             : static const uint32_t CSR_O32_FPXX_RegMask[] = { 0x00080100, 0x00000000, 0x00000000, 0x00000000, 0x00007e00, 0x0007ff80, 0x00000000, 0x00000000, 0x00000000, 0x003fc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
    7838             : static const MCPhysReg CSR_SingleFloatOnly_SaveList[] = { Mips::F31, Mips::F30, Mips::F29, Mips::F28, Mips::F27, Mips::F26, Mips::F25, Mips::F24, Mips::F23, Mips::F22, Mips::F21, Mips::F20, Mips::RA, Mips::FP, Mips::S7, Mips::S6, Mips::S5, Mips::S4, Mips::S3, Mips::S2, Mips::S1, Mips::S0, 0 };
    7839             : static const uint32_t CSR_SingleFloatOnly_RegMask[] = { 0x00080100, 0x00000000, 0x00000000, 0x00000000, 0x00007e00, 0x0007ff80, 0x00000000, 0x00000000, 0x00000000, 0x003fc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
    7840             : 
    7841             : 
    7842         372 : ArrayRef<const uint32_t *> MipsGenRegisterInfo::getRegMasks() const {
    7843             :   static const uint32_t *const Masks[] = {
    7844             :     CSR_Interrupt_32_RegMask,
    7845             :     CSR_Interrupt_32R6_RegMask,
    7846             :     CSR_Interrupt_64_RegMask,
    7847             :     CSR_Interrupt_64R6_RegMask,
    7848             :     CSR_Mips16RetHelper_RegMask,
    7849             :     CSR_N32_RegMask,
    7850             :     CSR_N64_RegMask,
    7851             :     CSR_O32_RegMask,
    7852             :     CSR_O32_FP64_RegMask,
    7853             :     CSR_O32_FPXX_RegMask,
    7854             :     CSR_SingleFloatOnly_RegMask,
    7855             :   };
    7856         372 :   return makeArrayRef(Masks);
    7857             : }
    7858             : 
    7859         117 : ArrayRef<const char *> MipsGenRegisterInfo::getRegMaskNames() const {
    7860             :   static const char *const Names[] = {
    7861             :     "CSR_Interrupt_32",
    7862             :     "CSR_Interrupt_32R6",
    7863             :     "CSR_Interrupt_64",
    7864             :     "CSR_Interrupt_64R6",
    7865             :     "CSR_Mips16RetHelper",
    7866             :     "CSR_N32",
    7867             :     "CSR_N64",
    7868             :     "CSR_O32",
    7869             :     "CSR_O32_FP64",
    7870             :     "CSR_O32_FPXX",
    7871             :     "CSR_SingleFloatOnly",
    7872             :   };
    7873         117 :   return makeArrayRef(Names);
    7874             : }
    7875             : 
    7876             : const MipsFrameLowering *
    7877           0 : MipsGenRegisterInfo::getFrameLowering(const MachineFunction &MF) {
    7878             :   return static_cast<const MipsFrameLowering *>(
    7879           0 :       MF.getSubtarget().getFrameLowering());
    7880             : }
    7881             : 
    7882             : } // end namespace llvm
    7883             : 
    7884             : #endif // GET_REGINFO_TARGET_DESC
    7885             : 

Generated by: LCOV version 1.13