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

Generated by: LCOV version 1.13