blob: 506287348554ac17793166f52908bc118a80a833 [file] [log] [blame]
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|* *|
|* Target Register Enum Values *|
|* *|
|* Automatically generated file, do not edit! *|
|* *|
\*===----------------------------------------------------------------------===*/
#ifdef GET_REGINFO_ENUM
#undef GET_REGINFO_ENUM
namespace llvm {
class MCRegisterClass;
extern const MCRegisterClass MipsMCRegisterClasses[];
namespace Mips {
enum {
NoRegister,
AT = 1,
DSPCCond = 2,
DSPCarry = 3,
DSPEFI = 4,
DSPOutFlag = 5,
DSPPos = 6,
DSPSCount = 7,
FP = 8,
GP = 9,
MSAAccess = 10,
MSACSR = 11,
MSAIR = 12,
MSAMap = 13,
MSAModify = 14,
MSARequest = 15,
MSASave = 16,
MSAUnmap = 17,
PC = 18,
RA = 19,
SP = 20,
ZERO = 21,
A0 = 22,
A1 = 23,
A2 = 24,
A3 = 25,
AC0 = 26,
AC1 = 27,
AC2 = 28,
AC3 = 29,
AT_64 = 30,
COP00 = 31,
COP01 = 32,
COP02 = 33,
COP03 = 34,
COP04 = 35,
COP05 = 36,
COP06 = 37,
COP07 = 38,
COP08 = 39,
COP09 = 40,
COP20 = 41,
COP21 = 42,
COP22 = 43,
COP23 = 44,
COP24 = 45,
COP25 = 46,
COP26 = 47,
COP27 = 48,
COP28 = 49,
COP29 = 50,
COP30 = 51,
COP31 = 52,
COP32 = 53,
COP33 = 54,
COP34 = 55,
COP35 = 56,
COP36 = 57,
COP37 = 58,
COP38 = 59,
COP39 = 60,
COP010 = 61,
COP011 = 62,
COP012 = 63,
COP013 = 64,
COP014 = 65,
COP015 = 66,
COP016 = 67,
COP017 = 68,
COP018 = 69,
COP019 = 70,
COP020 = 71,
COP021 = 72,
COP022 = 73,
COP023 = 74,
COP024 = 75,
COP025 = 76,
COP026 = 77,
COP027 = 78,
COP028 = 79,
COP029 = 80,
COP030 = 81,
COP031 = 82,
COP210 = 83,
COP211 = 84,
COP212 = 85,
COP213 = 86,
COP214 = 87,
COP215 = 88,
COP216 = 89,
COP217 = 90,
COP218 = 91,
COP219 = 92,
COP220 = 93,
COP221 = 94,
COP222 = 95,
COP223 = 96,
COP224 = 97,
COP225 = 98,
COP226 = 99,
COP227 = 100,
COP228 = 101,
COP229 = 102,
COP230 = 103,
COP231 = 104,
COP310 = 105,
COP311 = 106,
COP312 = 107,
COP313 = 108,
COP314 = 109,
COP315 = 110,
COP316 = 111,
COP317 = 112,
COP318 = 113,
COP319 = 114,
COP320 = 115,
COP321 = 116,
COP322 = 117,
COP323 = 118,
COP324 = 119,
COP325 = 120,
COP326 = 121,
COP327 = 122,
COP328 = 123,
COP329 = 124,
COP330 = 125,
COP331 = 126,
D0 = 127,
D1 = 128,
D2 = 129,
D3 = 130,
D4 = 131,
D5 = 132,
D6 = 133,
D7 = 134,
D8 = 135,
D9 = 136,
D10 = 137,
D11 = 138,
D12 = 139,
D13 = 140,
D14 = 141,
D15 = 142,
DSPOutFlag20 = 143,
DSPOutFlag21 = 144,
DSPOutFlag22 = 145,
DSPOutFlag23 = 146,
F0 = 147,
F1 = 148,
F2 = 149,
F3 = 150,
F4 = 151,
F5 = 152,
F6 = 153,
F7 = 154,
F8 = 155,
F9 = 156,
F10 = 157,
F11 = 158,
F12 = 159,
F13 = 160,
F14 = 161,
F15 = 162,
F16 = 163,
F17 = 164,
F18 = 165,
F19 = 166,
F20 = 167,
F21 = 168,
F22 = 169,
F23 = 170,
F24 = 171,
F25 = 172,
F26 = 173,
F27 = 174,
F28 = 175,
F29 = 176,
F30 = 177,
F31 = 178,
FCC0 = 179,
FCC1 = 180,
FCC2 = 181,
FCC3 = 182,
FCC4 = 183,
FCC5 = 184,
FCC6 = 185,
FCC7 = 186,
FCR0 = 187,
FCR1 = 188,
FCR2 = 189,
FCR3 = 190,
FCR4 = 191,
FCR5 = 192,
FCR6 = 193,
FCR7 = 194,
FCR8 = 195,
FCR9 = 196,
FCR10 = 197,
FCR11 = 198,
FCR12 = 199,
FCR13 = 200,
FCR14 = 201,
FCR15 = 202,
FCR16 = 203,
FCR17 = 204,
FCR18 = 205,
FCR19 = 206,
FCR20 = 207,
FCR21 = 208,
FCR22 = 209,
FCR23 = 210,
FCR24 = 211,
FCR25 = 212,
FCR26 = 213,
FCR27 = 214,
FCR28 = 215,
FCR29 = 216,
FCR30 = 217,
FCR31 = 218,
FP_64 = 219,
F_HI0 = 220,
F_HI1 = 221,
F_HI2 = 222,
F_HI3 = 223,
F_HI4 = 224,
F_HI5 = 225,
F_HI6 = 226,
F_HI7 = 227,
F_HI8 = 228,
F_HI9 = 229,
F_HI10 = 230,
F_HI11 = 231,
F_HI12 = 232,
F_HI13 = 233,
F_HI14 = 234,
F_HI15 = 235,
F_HI16 = 236,
F_HI17 = 237,
F_HI18 = 238,
F_HI19 = 239,
F_HI20 = 240,
F_HI21 = 241,
F_HI22 = 242,
F_HI23 = 243,
F_HI24 = 244,
F_HI25 = 245,
F_HI26 = 246,
F_HI27 = 247,
F_HI28 = 248,
F_HI29 = 249,
F_HI30 = 250,
F_HI31 = 251,
GP_64 = 252,
HI0 = 253,
HI1 = 254,
HI2 = 255,
HI3 = 256,
HWR0 = 257,
HWR1 = 258,
HWR2 = 259,
HWR3 = 260,
HWR4 = 261,
HWR5 = 262,
HWR6 = 263,
HWR7 = 264,
HWR8 = 265,
HWR9 = 266,
HWR10 = 267,
HWR11 = 268,
HWR12 = 269,
HWR13 = 270,
HWR14 = 271,
HWR15 = 272,
HWR16 = 273,
HWR17 = 274,
HWR18 = 275,
HWR19 = 276,
HWR20 = 277,
HWR21 = 278,
HWR22 = 279,
HWR23 = 280,
HWR24 = 281,
HWR25 = 282,
HWR26 = 283,
HWR27 = 284,
HWR28 = 285,
HWR29 = 286,
HWR30 = 287,
HWR31 = 288,
K0 = 289,
K1 = 290,
LO0 = 291,
LO1 = 292,
LO2 = 293,
LO3 = 294,
MPL0 = 295,
MPL1 = 296,
MPL2 = 297,
MSA8 = 298,
MSA9 = 299,
MSA10 = 300,
MSA11 = 301,
MSA12 = 302,
MSA13 = 303,
MSA14 = 304,
MSA15 = 305,
MSA16 = 306,
MSA17 = 307,
MSA18 = 308,
MSA19 = 309,
MSA20 = 310,
MSA21 = 311,
MSA22 = 312,
MSA23 = 313,
MSA24 = 314,
MSA25 = 315,
MSA26 = 316,
MSA27 = 317,
MSA28 = 318,
MSA29 = 319,
MSA30 = 320,
MSA31 = 321,
P0 = 322,
P1 = 323,
P2 = 324,
RA_64 = 325,
S0 = 326,
S1 = 327,
S2 = 328,
S3 = 329,
S4 = 330,
S5 = 331,
S6 = 332,
S7 = 333,
SP_64 = 334,
T0 = 335,
T1 = 336,
T2 = 337,
T3 = 338,
T4 = 339,
T5 = 340,
T6 = 341,
T7 = 342,
T8 = 343,
T9 = 344,
V0 = 345,
V1 = 346,
W0 = 347,
W1 = 348,
W2 = 349,
W3 = 350,
W4 = 351,
W5 = 352,
W6 = 353,
W7 = 354,
W8 = 355,
W9 = 356,
W10 = 357,
W11 = 358,
W12 = 359,
W13 = 360,
W14 = 361,
W15 = 362,
W16 = 363,
W17 = 364,
W18 = 365,
W19 = 366,
W20 = 367,
W21 = 368,
W22 = 369,
W23 = 370,
W24 = 371,
W25 = 372,
W26 = 373,
W27 = 374,
W28 = 375,
W29 = 376,
W30 = 377,
W31 = 378,
ZERO_64 = 379,
A0_64 = 380,
A1_64 = 381,
A2_64 = 382,
A3_64 = 383,
AC0_64 = 384,
D0_64 = 385,
D1_64 = 386,
D2_64 = 387,
D3_64 = 388,
D4_64 = 389,
D5_64 = 390,
D6_64 = 391,
D7_64 = 392,
D8_64 = 393,
D9_64 = 394,
D10_64 = 395,
D11_64 = 396,
D12_64 = 397,
D13_64 = 398,
D14_64 = 399,
D15_64 = 400,
D16_64 = 401,
D17_64 = 402,
D18_64 = 403,
D19_64 = 404,
D20_64 = 405,
D21_64 = 406,
D22_64 = 407,
D23_64 = 408,
D24_64 = 409,
D25_64 = 410,
D26_64 = 411,
D27_64 = 412,
D28_64 = 413,
D29_64 = 414,
D30_64 = 415,
D31_64 = 416,
DSPOutFlag16_19 = 417,
HI0_64 = 418,
K0_64 = 419,
K1_64 = 420,
LO0_64 = 421,
S0_64 = 422,
S1_64 = 423,
S2_64 = 424,
S3_64 = 425,
S4_64 = 426,
S5_64 = 427,
S6_64 = 428,
S7_64 = 429,
T0_64 = 430,
T1_64 = 431,
T2_64 = 432,
T3_64 = 433,
T4_64 = 434,
T5_64 = 435,
T6_64 = 436,
T7_64 = 437,
T8_64 = 438,
T9_64 = 439,
V0_64 = 440,
V1_64 = 441,
NUM_TARGET_REGS // 442
};
} // end namespace Mips
// Register classes
namespace Mips {
enum {
MSA128F16RegClassID = 0,
CCRRegClassID = 1,
COP0RegClassID = 2,
COP2RegClassID = 3,
COP3RegClassID = 4,
DSPRRegClassID = 5,
FGR32RegClassID = 6,
FGRCCRegClassID = 7,
GPR32RegClassID = 8,
HWRegsRegClassID = 9,
MSACtrlRegClassID = 10,
GPR32NONZERORegClassID = 11,
CPU16RegsPlusSPRegClassID = 12,
CPU16RegsRegClassID = 13,
FCCRegClassID = 14,
GPRMM16RegClassID = 15,
GPRMM16MovePRegClassID = 16,
GPRMM16ZeroRegClassID = 17,
CPU16Regs_and_GPRMM16ZeroRegClassID = 18,
GPR32NONZERO_and_GPRMM16MovePRegClassID = 19,
GPRMM16MovePPairSecondRegClassID = 20,
CPU16Regs_and_GPRMM16MovePRegClassID = 21,
GPRMM16MoveP_and_GPRMM16ZeroRegClassID = 22,
HI32DSPRegClassID = 23,
LO32DSPRegClassID = 24,
CPU16Regs_and_GPRMM16MovePPairSecondRegClassID = 25,
GPRMM16MovePPairFirstRegClassID = 26,
GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClassID = 27,
GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClassID = 28,
CPURARegRegClassID = 29,
CPUSPRegRegClassID = 30,
DSPCCRegClassID = 31,
GP32RegClassID = 32,
GPR32ZERORegClassID = 33,
HI32RegClassID = 34,
LO32RegClassID = 35,
SP32RegClassID = 36,
FGR64RegClassID = 37,
GPR64RegClassID = 38,
GPR64_with_sub_32_in_GPR32NONZERORegClassID = 39,
AFGR64RegClassID = 40,
GPR64_with_sub_32_in_CPU16RegsPlusSPRegClassID = 41,
GPR64_with_sub_32_in_CPU16RegsRegClassID = 42,
GPR64_with_sub_32_in_GPRMM16MovePRegClassID = 43,
GPR64_with_sub_32_in_GPRMM16ZeroRegClassID = 44,
GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClassID = 45,
GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePRegClassID = 46,
GPR64_with_sub_32_in_GPRMM16MovePPairSecondRegClassID = 47,
ACC64DSPRegClassID = 48,
GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePRegClassID = 49,
GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroRegClassID = 50,
GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondRegClassID = 51,
GPR64_with_sub_32_in_GPRMM16MovePPairFirstRegClassID = 52,
GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClassID = 53,
OCTEON_MPLRegClassID = 54,
OCTEON_PRegClassID = 55,
GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClassID = 56,
ACC64RegClassID = 57,
GP64RegClassID = 58,
GPR64_with_sub_32_in_CPURARegRegClassID = 59,
GPR64_with_sub_32_in_GPR32ZERORegClassID = 60,
HI64RegClassID = 61,
LO64RegClassID = 62,
SP64RegClassID = 63,
MSA128BRegClassID = 64,
MSA128DRegClassID = 65,
MSA128HRegClassID = 66,
MSA128WRegClassID = 67,
MSA128WEvensRegClassID = 68,
ACC128RegClassID = 69,
};
} // end namespace Mips
// Subregister indices
namespace Mips {
enum : uint16_t {
NoSubRegister,
sub_32, // 1
sub_64, // 2
sub_dsp16_19, // 3
sub_dsp20, // 4
sub_dsp21, // 5
sub_dsp22, // 6
sub_dsp23, // 7
sub_hi, // 8
sub_lo, // 9
sub_hi_then_sub_32, // 10
sub_32_sub_hi_then_sub_32, // 11
NUM_TARGET_SUBREGS
};
} // end namespace Mips
// Register pressure sets enum.
namespace Mips {
enum RegisterPressureSets {
DSPCC = 0,
GPR32ZERO = 1,
GPR64_with_sub_32_in_CPURAReg = 2,
HI32 = 3,
GPRMM16MovePPairFirst = 4,
CPU16Regs_and_GPRMM16MoveP = 5,
HI32DSP = 6,
LO32DSP = 7,
GPRMM16MovePPairSecond = 8,
GPRMM16MoveP = 9,
ACC64DSP = 10,
CPU16Regs = 11,
GPRMM16Zero_with_GPRMM16MovePPairSecond = 12,
CPU16Regs_with_GPRMM16MovePPairSecond = 13,
CPU16Regs_with_GPRMM16MoveP = 14,
DSPR = 15,
FGR32 = 16,
MSA128WEvens = 17,
FGR32_with_MSA128WEvens = 18,
MSA128F16 = 19,
};
} // end namespace Mips
} // end namespace llvm
#endif // GET_REGINFO_ENUM
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|* *|
|* MC Register Information *|
|* *|
|* Automatically generated file, do not edit! *|
|* *|
\*===----------------------------------------------------------------------===*/
#ifdef GET_REGINFO_MC_DESC
#undef GET_REGINFO_MC_DESC
namespace llvm {
extern const MCPhysReg MipsRegDiffLists[] = {
/* 0 */ 0, 0,
/* 2 */ 4, 1, 1, 1, 1, 0,
/* 8 */ 412, 65262, 1, 1, 1, 0,
/* 14 */ 20, 1, 0,
/* 17 */ 21, 1, 0,
/* 20 */ 22, 1, 0,
/* 23 */ 23, 1, 0,
/* 26 */ 24, 1, 0,
/* 29 */ 25, 1, 0,
/* 32 */ 26, 1, 0,
/* 35 */ 27, 1, 0,
/* 38 */ 28, 1, 0,
/* 41 */ 29, 1, 0,
/* 44 */ 30, 1, 0,
/* 47 */ 31, 1, 0,
/* 50 */ 32, 1, 0,
/* 53 */ 33, 1, 0,
/* 56 */ 34, 1, 0,
/* 59 */ 35, 1, 0,
/* 62 */ 65415, 1, 0,
/* 65 */ 65513, 1, 0,
/* 68 */ 3, 0,
/* 70 */ 4, 0,
/* 72 */ 6, 0,
/* 74 */ 11, 0,
/* 76 */ 12, 0,
/* 78 */ 22, 0,
/* 80 */ 23, 0,
/* 82 */ 29, 0,
/* 84 */ 30, 0,
/* 86 */ 65284, 72, 0,
/* 89 */ 65322, 72, 0,
/* 92 */ 38, 65298, 73, 0,
/* 96 */ 95, 0,
/* 98 */ 96, 0,
/* 100 */ 130, 0,
/* 102 */ 211, 0,
/* 104 */ 243, 0,
/* 106 */ 306, 0,
/* 108 */ 314, 0,
/* 110 */ 358, 0,
/* 112 */ 64983, 0,
/* 114 */ 65060, 0,
/* 116 */ 65124, 0,
/* 118 */ 65178, 0,
/* 120 */ 65181, 0,
/* 122 */ 65222, 0,
/* 124 */ 65230, 0,
/* 126 */ 65271, 0,
/* 128 */ 65293, 0,
/* 130 */ 37, 65406, 127, 65371, 65309, 0,
/* 136 */ 65325, 0,
/* 138 */ 65371, 0,
/* 140 */ 65386, 0,
/* 142 */ 65395, 0,
/* 144 */ 65396, 0,
/* 146 */ 65397, 0,
/* 148 */ 65398, 0,
/* 150 */ 65406, 0,
/* 152 */ 65415, 0,
/* 154 */ 65440, 0,
/* 156 */ 65441, 0,
/* 158 */ 165, 65498, 0,
/* 161 */ 65516, 258, 65498, 0,
/* 165 */ 65515, 259, 65498, 0,
/* 169 */ 65514, 260, 65498, 0,
/* 173 */ 65513, 261, 65498, 0,
/* 177 */ 65512, 262, 65498, 0,
/* 181 */ 65511, 263, 65498, 0,
/* 185 */ 65510, 264, 65498, 0,
/* 189 */ 65509, 265, 65498, 0,
/* 193 */ 65508, 266, 65498, 0,
/* 197 */ 65507, 267, 65498, 0,
/* 201 */ 65506, 268, 65498, 0,
/* 205 */ 65505, 269, 65498, 0,
/* 209 */ 65504, 270, 65498, 0,
/* 213 */ 65503, 271, 65498, 0,
/* 217 */ 65502, 272, 65498, 0,
/* 221 */ 65501, 273, 65498, 0,
/* 225 */ 65500, 274, 65498, 0,
/* 229 */ 65271, 395, 65499, 0,
/* 233 */ 65309, 392, 65502, 0,
/* 237 */ 65507, 0,
/* 239 */ 65510, 0,
/* 241 */ 65511, 0,
/* 243 */ 65512, 0,
/* 245 */ 65516, 0,
/* 247 */ 65521, 0,
/* 249 */ 65522, 0,
/* 251 */ 65535, 0,
};
extern const LaneBitmask MipsLaneMaskLists[] = {
/* 0 */ LaneBitmask(0x0000000000000000), LaneBitmask::getAll(),
/* 2 */ LaneBitmask(0x0000000000000001), LaneBitmask::getAll(),
/* 4 */ LaneBitmask(0x0000000000000002), LaneBitmask(0x0000000000000004), LaneBitmask(0x0000000000000008), LaneBitmask(0x0000000000000010), LaneBitmask(0x0000000000000020), LaneBitmask::getAll(),
/* 10 */ LaneBitmask(0x0000000000000001), LaneBitmask(0x0000000000000040), LaneBitmask::getAll(),
};
extern const uint16_t MipsSubRegIdxLists[] = {
/* 0 */ 1, 0,
/* 2 */ 3, 4, 5, 6, 7, 0,
/* 8 */ 2, 9, 8, 0,
/* 12 */ 9, 1, 8, 10, 11, 0,
};
extern const MCRegisterInfo::SubRegCoveredBits MipsSubRegIdxRanges[] = {
{ 65535, 65535 },
{ 0, 32 }, // sub_32
{ 0, 64 }, // sub_64
{ 16, 4 }, // sub_dsp16_19
{ 20, 1 }, // sub_dsp20
{ 21, 1 }, // sub_dsp21
{ 22, 1 }, // sub_dsp22
{ 23, 1 }, // sub_dsp23
{ 32, 32 }, // sub_hi
{ 0, 32 }, // sub_lo
{ 32, 32 }, // sub_hi_then_sub_32
{ 0, 64 }, // sub_32_sub_hi_then_sub_32
};
extern const char MipsRegStrings[] = {
/* 0 */ 'C', 'O', 'P', '0', '0', 0,
/* 6 */ 'C', 'O', 'P', '0', '1', '0', 0,
/* 13 */ 'C', 'O', 'P', '2', '1', '0', 0,
/* 20 */ 'C', 'O', 'P', '3', '1', '0', 0,
/* 27 */ 'M', 'S', 'A', '1', '0', 0,
/* 33 */ 'D', '1', '0', 0,
/* 37 */ 'F', '1', '0', 0,
/* 41 */ 'F', '_', 'H', 'I', '1', '0', 0,
/* 48 */ 'F', 'C', 'R', '1', '0', 0,
/* 54 */ 'H', 'W', 'R', '1', '0', 0,
/* 60 */ 'W', '1', '0', 0,
/* 64 */ 'C', 'O', 'P', '0', '2', '0', 0,
/* 71 */ 'C', 'O', 'P', '2', '2', '0', 0,
/* 78 */ 'C', 'O', 'P', '3', '2', '0', 0,
/* 85 */ 'M', 'S', 'A', '2', '0', 0,
/* 91 */ 'F', '2', '0', 0,
/* 95 */ 'F', '_', 'H', 'I', '2', '0', 0,
/* 102 */ 'C', 'O', 'P', '2', '0', 0,
/* 108 */ 'F', 'C', 'R', '2', '0', 0,
/* 114 */ 'H', 'W', 'R', '2', '0', 0,
/* 120 */ 'W', '2', '0', 0,
/* 124 */ 'D', 'S', 'P', 'O', 'u', 't', 'F', 'l', 'a', 'g', '2', '0', 0,
/* 137 */ 'C', 'O', 'P', '0', '3', '0', 0,
/* 144 */ 'C', 'O', 'P', '2', '3', '0', 0,
/* 151 */ 'C', 'O', 'P', '3', '3', '0', 0,
/* 158 */ 'M', 'S', 'A', '3', '0', 0,
/* 164 */ 'F', '3', '0', 0,
/* 168 */ 'F', '_', 'H', 'I', '3', '0', 0,
/* 175 */ 'C', 'O', 'P', '3', '0', 0,
/* 181 */ 'F', 'C', 'R', '3', '0', 0,
/* 187 */ 'H', 'W', 'R', '3', '0', 0,
/* 193 */ 'W', '3', '0', 0,
/* 197 */ 'A', '0', 0,
/* 200 */ 'A', 'C', '0', 0,
/* 204 */ 'F', 'C', 'C', '0', 0,
/* 209 */ 'D', '0', 0,
/* 212 */ 'F', '0', 0,
/* 215 */ 'F', '_', 'H', 'I', '0', 0,
/* 221 */ 'K', '0', 0,
/* 224 */ 'M', 'P', 'L', '0', 0,
/* 229 */ 'L', 'O', '0', 0,
/* 233 */ 'P', '0', 0,
/* 236 */ 'F', 'C', 'R', '0', 0,
/* 241 */ 'H', 'W', 'R', '0', 0,
/* 246 */ 'S', '0', 0,
/* 249 */ 'T', '0', 0,
/* 252 */ 'V', '0', 0,
/* 255 */ 'W', '0', 0,
/* 258 */ 'C', 'O', 'P', '0', '1', 0,
/* 264 */ 'C', 'O', 'P', '0', '1', '1', 0,
/* 271 */ 'C', 'O', 'P', '2', '1', '1', 0,
/* 278 */ 'C', 'O', 'P', '3', '1', '1', 0,
/* 285 */ 'M', 'S', 'A', '1', '1', 0,
/* 291 */ 'D', '1', '1', 0,
/* 295 */ 'F', '1', '1', 0,
/* 299 */ 'F', '_', 'H', 'I', '1', '1', 0,
/* 306 */ 'F', 'C', 'R', '1', '1', 0,
/* 312 */ 'H', 'W', 'R', '1', '1', 0,
/* 318 */ 'W', '1', '1', 0,
/* 322 */ 'C', 'O', 'P', '0', '2', '1', 0,
/* 329 */ 'C', 'O', 'P', '2', '2', '1', 0,
/* 336 */ 'C', 'O', 'P', '3', '2', '1', 0,
/* 343 */ 'M', 'S', 'A', '2', '1', 0,
/* 349 */ 'F', '2', '1', 0,
/* 353 */ 'F', '_', 'H', 'I', '2', '1', 0,
/* 360 */ 'C', 'O', 'P', '2', '1', 0,
/* 366 */ 'F', 'C', 'R', '2', '1', 0,
/* 372 */ 'H', 'W', 'R', '2', '1', 0,
/* 378 */ 'W', '2', '1', 0,
/* 382 */ 'D', 'S', 'P', 'O', 'u', 't', 'F', 'l', 'a', 'g', '2', '1', 0,
/* 395 */ 'C', 'O', 'P', '0', '3', '1', 0,
/* 402 */ 'C', 'O', 'P', '2', '3', '1', 0,
/* 409 */ 'C', 'O', 'P', '3', '3', '1', 0,
/* 416 */ 'M', 'S', 'A', '3', '1', 0,
/* 422 */ 'F', '3', '1', 0,
/* 426 */ 'F', '_', 'H', 'I', '3', '1', 0,
/* 433 */ 'C', 'O', 'P', '3', '1', 0,
/* 439 */ 'F', 'C', 'R', '3', '1', 0,
/* 445 */ 'H', 'W', 'R', '3', '1', 0,
/* 451 */ 'W', '3', '1', 0,
/* 455 */ 'A', '1', 0,
/* 458 */ 'A', 'C', '1', 0,
/* 462 */ 'F', 'C', 'C', '1', 0,
/* 467 */ 'D', '1', 0,
/* 470 */ 'F', '1', 0,
/* 473 */ 'F', '_', 'H', 'I', '1', 0,
/* 479 */ 'K', '1', 0,
/* 482 */ 'M', 'P', 'L', '1', 0,
/* 487 */ 'L', 'O', '1', 0,
/* 491 */ 'P', '1', 0,
/* 494 */ 'F', 'C', 'R', '1', 0,
/* 499 */ 'H', 'W', 'R', '1', 0,
/* 504 */ 'S', '1', 0,
/* 507 */ 'T', '1', 0,
/* 510 */ 'V', '1', 0,
/* 513 */ 'W', '1', 0,
/* 516 */ 'C', 'O', 'P', '0', '2', 0,
/* 522 */ 'C', 'O', 'P', '0', '1', '2', 0,
/* 529 */ 'C', 'O', 'P', '2', '1', '2', 0,
/* 536 */ 'C', 'O', 'P', '3', '1', '2', 0,
/* 543 */ 'M', 'S', 'A', '1', '2', 0,
/* 549 */ 'D', '1', '2', 0,
/* 553 */ 'F', '1', '2', 0,
/* 557 */ 'F', '_', 'H', 'I', '1', '2', 0,
/* 564 */ 'F', 'C', 'R', '1', '2', 0,
/* 570 */ 'H', 'W', 'R', '1', '2', 0,
/* 576 */ 'W', '1', '2', 0,
/* 580 */ 'C', 'O', 'P', '0', '2', '2', 0,
/* 587 */ 'C', 'O', 'P', '2', '2', '2', 0,
/* 594 */ 'C', 'O', 'P', '3', '2', '2', 0,
/* 601 */ 'M', 'S', 'A', '2', '2', 0,
/* 607 */ 'F', '2', '2', 0,
/* 611 */ 'F', '_', 'H', 'I', '2', '2', 0,
/* 618 */ 'C', 'O', 'P', '2', '2', 0,
/* 624 */ 'F', 'C', 'R', '2', '2', 0,
/* 630 */ 'H', 'W', 'R', '2', '2', 0,
/* 636 */ 'W', '2', '2', 0,
/* 640 */ 'D', 'S', 'P', 'O', 'u', 't', 'F', 'l', 'a', 'g', '2', '2', 0,
/* 653 */ 'C', 'O', 'P', '3', '2', 0,
/* 659 */ 'A', '2', 0,
/* 662 */ 'A', 'C', '2', 0,
/* 666 */ 'F', 'C', 'C', '2', 0,
/* 671 */ 'D', '2', 0,
/* 674 */ 'F', '2', 0,
/* 677 */ 'F', '_', 'H', 'I', '2', 0,
/* 683 */ 'M', 'P', 'L', '2', 0,
/* 688 */ 'L', 'O', '2', 0,
/* 692 */ 'P', '2', 0,
/* 695 */ 'F', 'C', 'R', '2', 0,
/* 700 */ 'H', 'W', 'R', '2', 0,
/* 705 */ 'S', '2', 0,
/* 708 */ 'T', '2', 0,
/* 711 */ 'W', '2', 0,
/* 714 */ 'C', 'O', 'P', '0', '3', 0,
/* 720 */ 'C', 'O', 'P', '0', '1', '3', 0,
/* 727 */ 'C', 'O', 'P', '2', '1', '3', 0,
/* 734 */ 'C', 'O', 'P', '3', '1', '3', 0,
/* 741 */ 'M', 'S', 'A', '1', '3', 0,
/* 747 */ 'D', '1', '3', 0,
/* 751 */ 'F', '1', '3', 0,
/* 755 */ 'F', '_', 'H', 'I', '1', '3', 0,
/* 762 */ 'F', 'C', 'R', '1', '3', 0,
/* 768 */ 'H', 'W', 'R', '1', '3', 0,
/* 774 */ 'W', '1', '3', 0,
/* 778 */ 'C', 'O', 'P', '0', '2', '3', 0,
/* 785 */ 'C', 'O', 'P', '2', '2', '3', 0,
/* 792 */ 'C', 'O', 'P', '3', '2', '3', 0,
/* 799 */ 'M', 'S', 'A', '2', '3', 0,
/* 805 */ 'F', '2', '3', 0,
/* 809 */ 'F', '_', 'H', 'I', '2', '3', 0,
/* 816 */ 'C', 'O', 'P', '2', '3', 0,
/* 822 */ 'F', 'C', 'R', '2', '3', 0,
/* 828 */ 'H', 'W', 'R', '2', '3', 0,
/* 834 */ 'W', '2', '3', 0,
/* 838 */ 'D', 'S', 'P', 'O', 'u', 't', 'F', 'l', 'a', 'g', '2', '3', 0,
/* 851 */ 'C', 'O', 'P', '3', '3', 0,
/* 857 */ 'A', '3', 0,
/* 860 */ 'A', 'C', '3', 0,
/* 864 */ 'F', 'C', 'C', '3', 0,
/* 869 */ 'D', '3', 0,
/* 872 */ 'F', '3', 0,
/* 875 */ 'F', '_', 'H', 'I', '3', 0,
/* 881 */ 'L', 'O', '3', 0,
/* 885 */ 'F', 'C', 'R', '3', 0,
/* 890 */ 'H', 'W', 'R', '3', 0,
/* 895 */ 'S', '3', 0,
/* 898 */ 'T', '3', 0,
/* 901 */ 'W', '3', 0,
/* 904 */ 'C', 'O', 'P', '0', '4', 0,
/* 910 */ 'C', 'O', 'P', '0', '1', '4', 0,
/* 917 */ 'C', 'O', 'P', '2', '1', '4', 0,
/* 924 */ 'C', 'O', 'P', '3', '1', '4', 0,
/* 931 */ 'M', 'S', 'A', '1', '4', 0,
/* 937 */ 'D', '1', '4', 0,
/* 941 */ 'F', '1', '4', 0,
/* 945 */ 'F', '_', 'H', 'I', '1', '4', 0,
/* 952 */ 'F', 'C', 'R', '1', '4', 0,
/* 958 */ 'H', 'W', 'R', '1', '4', 0,
/* 964 */ 'W', '1', '4', 0,
/* 968 */ 'C', 'O', 'P', '0', '2', '4', 0,
/* 975 */ 'C', 'O', 'P', '2', '2', '4', 0,
/* 982 */ 'C', 'O', 'P', '3', '2', '4', 0,
/* 989 */ 'M', 'S', 'A', '2', '4', 0,
/* 995 */ 'F', '2', '4', 0,
/* 999 */ 'F', '_', 'H', 'I', '2', '4', 0,
/* 1006 */ 'C', 'O', 'P', '2', '4', 0,
/* 1012 */ 'F', 'C', 'R', '2', '4', 0,
/* 1018 */ 'H', 'W', 'R', '2', '4', 0,
/* 1024 */ 'W', '2', '4', 0,
/* 1028 */ 'C', 'O', 'P', '3', '4', 0,
/* 1034 */ 'D', '1', '0', '_', '6', '4', 0,
/* 1041 */ 'D', '2', '0', '_', '6', '4', 0,
/* 1048 */ 'D', '3', '0', '_', '6', '4', 0,
/* 1055 */ 'A', '0', '_', '6', '4', 0,
/* 1061 */ 'A', 'C', '0', '_', '6', '4', 0,
/* 1068 */ 'D', '0', '_', '6', '4', 0,
/* 1074 */ 'H', 'I', '0', '_', '6', '4', 0,
/* 1081 */ 'K', '0', '_', '6', '4', 0,
/* 1087 */ 'L', 'O', '0', '_', '6', '4', 0,
/* 1094 */ 'S', '0', '_', '6', '4', 0,
/* 1100 */ 'T', '0', '_', '6', '4', 0,
/* 1106 */ 'V', '0', '_', '6', '4', 0,
/* 1112 */ 'D', '1', '1', '_', '6', '4', 0,
/* 1119 */ 'D', '2', '1', '_', '6', '4', 0,
/* 1126 */ 'D', '3', '1', '_', '6', '4', 0,
/* 1133 */ 'A', '1', '_', '6', '4', 0,
/* 1139 */ 'D', '1', '_', '6', '4', 0,
/* 1145 */ 'K', '1', '_', '6', '4', 0,
/* 1151 */ 'S', '1', '_', '6', '4', 0,
/* 1157 */ 'T', '1', '_', '6', '4', 0,
/* 1163 */ 'V', '1', '_', '6', '4', 0,
/* 1169 */ 'D', '1', '2', '_', '6', '4', 0,
/* 1176 */ 'D', '2', '2', '_', '6', '4', 0,
/* 1183 */ 'A', '2', '_', '6', '4', 0,
/* 1189 */ 'D', '2', '_', '6', '4', 0,
/* 1195 */ 'S', '2', '_', '6', '4', 0,
/* 1201 */ 'T', '2', '_', '6', '4', 0,
/* 1207 */ 'D', '1', '3', '_', '6', '4', 0,
/* 1214 */ 'D', '2', '3', '_', '6', '4', 0,
/* 1221 */ 'A', '3', '_', '6', '4', 0,
/* 1227 */ 'D', '3', '_', '6', '4', 0,
/* 1233 */ 'S', '3', '_', '6', '4', 0,
/* 1239 */ 'T', '3', '_', '6', '4', 0,
/* 1245 */ 'D', '1', '4', '_', '6', '4', 0,
/* 1252 */ 'D', '2', '4', '_', '6', '4', 0,
/* 1259 */ 'D', '4', '_', '6', '4', 0,
/* 1265 */ 'S', '4', '_', '6', '4', 0,
/* 1271 */ 'T', '4', '_', '6', '4', 0,
/* 1277 */ 'D', '1', '5', '_', '6', '4', 0,
/* 1284 */ 'D', '2', '5', '_', '6', '4', 0,
/* 1291 */ 'D', '5', '_', '6', '4', 0,
/* 1297 */ 'S', '5', '_', '6', '4', 0,
/* 1303 */ 'T', '5', '_', '6', '4', 0,
/* 1309 */ 'D', '1', '6', '_', '6', '4', 0,
/* 1316 */ 'D', '2', '6', '_', '6', '4', 0,
/* 1323 */ 'D', '6', '_', '6', '4', 0,
/* 1329 */ 'S', '6', '_', '6', '4', 0,
/* 1335 */ 'T', '6', '_', '6', '4', 0,
/* 1341 */ 'D', '1', '7', '_', '6', '4', 0,
/* 1348 */ 'D', '2', '7', '_', '6', '4', 0,
/* 1355 */ 'D', '7', '_', '6', '4', 0,
/* 1361 */ 'S', '7', '_', '6', '4', 0,
/* 1367 */ 'T', '7', '_', '6', '4', 0,
/* 1373 */ 'D', '1', '8', '_', '6', '4', 0,
/* 1380 */ 'D', '2', '8', '_', '6', '4', 0,
/* 1387 */ 'D', '8', '_', '6', '4', 0,
/* 1393 */ 'T', '8', '_', '6', '4', 0,
/* 1399 */ 'D', '1', '9', '_', '6', '4', 0,
/* 1406 */ 'D', '2', '9', '_', '6', '4', 0,
/* 1413 */ 'D', '9', '_', '6', '4', 0,
/* 1419 */ 'T', '9', '_', '6', '4', 0,
/* 1425 */ 'R', 'A', '_', '6', '4', 0,
/* 1431 */ 'Z', 'E', 'R', 'O', '_', '6', '4', 0,
/* 1439 */ 'F', 'P', '_', '6', '4', 0,
/* 1445 */ 'G', 'P', '_', '6', '4', 0,
/* 1451 */ 'S', 'P', '_', '6', '4', 0,
/* 1457 */ 'A', 'T', '_', '6', '4', 0,
/* 1463 */ 'F', 'C', 'C', '4', 0,
/* 1468 */ 'D', '4', 0,
/* 1471 */ 'F', '4', 0,
/* 1474 */ 'F', '_', 'H', 'I', '4', 0,
/* 1480 */ 'F', 'C', 'R', '4', 0,
/* 1485 */ 'H', 'W', 'R', '4', 0,
/* 1490 */ 'S', '4', 0,
/* 1493 */ 'T', '4', 0,
/* 1496 */ 'W', '4', 0,
/* 1499 */ 'C', 'O', 'P', '0', '5', 0,
/* 1505 */ 'C', 'O', 'P', '0', '1', '5', 0,
/* 1512 */ 'C', 'O', 'P', '2', '1', '5', 0,
/* 1519 */ 'C', 'O', 'P', '3', '1', '5', 0,
/* 1526 */ 'M', 'S', 'A', '1', '5', 0,
/* 1532 */ 'D', '1', '5', 0,
/* 1536 */ 'F', '1', '5', 0,
/* 1540 */ 'F', '_', 'H', 'I', '1', '5', 0,
/* 1547 */ 'F', 'C', 'R', '1', '5', 0,
/* 1553 */ 'H', 'W', 'R', '1', '5', 0,
/* 1559 */ 'W', '1', '5', 0,
/* 1563 */ 'C', 'O', 'P', '0', '2', '5', 0,
/* 1570 */ 'C', 'O', 'P', '2', '2', '5', 0,
/* 1577 */ 'C', 'O', 'P', '3', '2', '5', 0,
/* 1584 */ 'M', 'S', 'A', '2', '5', 0,
/* 1590 */ 'F', '2', '5', 0,
/* 1594 */ 'F', '_', 'H', 'I', '2', '5', 0,
/* 1601 */ 'C', 'O', 'P', '2', '5', 0,
/* 1607 */ 'F', 'C', 'R', '2', '5', 0,
/* 1613 */ 'H', 'W', 'R', '2', '5', 0,
/* 1619 */ 'W', '2', '5', 0,
/* 1623 */ 'C', 'O', 'P', '3', '5', 0,
/* 1629 */ 'F', 'C', 'C', '5', 0,
/* 1634 */ 'D', '5', 0,
/* 1637 */ 'F', '5', 0,
/* 1640 */ 'F', '_', 'H', 'I', '5', 0,
/* 1646 */ 'F', 'C', 'R', '5', 0,
/* 1651 */ 'H', 'W', 'R', '5', 0,
/* 1656 */ 'S', '5', 0,
/* 1659 */ 'T', '5', 0,
/* 1662 */ 'W', '5', 0,
/* 1665 */ 'C', 'O', 'P', '0', '6', 0,
/* 1671 */ 'C', 'O', 'P', '0', '1', '6', 0,
/* 1678 */ 'C', 'O', 'P', '2', '1', '6', 0,
/* 1685 */ 'C', 'O', 'P', '3', '1', '6', 0,
/* 1692 */ 'M', 'S', 'A', '1', '6', 0,
/* 1698 */ 'F', '1', '6', 0,
/* 1702 */ 'F', '_', 'H', 'I', '1', '6', 0,
/* 1709 */ 'F', 'C', 'R', '1', '6', 0,
/* 1715 */ 'H', 'W', 'R', '1', '6', 0,
/* 1721 */ 'W', '1', '6', 0,
/* 1725 */ 'C', 'O', 'P', '0', '2', '6', 0,
/* 1732 */ 'C', 'O', 'P', '2', '2', '6', 0,
/* 1739 */ 'C', 'O', 'P', '3', '2', '6', 0,
/* 1746 */ 'M', 'S', 'A', '2', '6', 0,
/* 1752 */ 'F', '2', '6', 0,
/* 1756 */ 'F', '_', 'H', 'I', '2', '6', 0,
/* 1763 */ 'C', 'O', 'P', '2', '6', 0,
/* 1769 */ 'F', 'C', 'R', '2', '6', 0,
/* 1775 */ 'H', 'W', 'R', '2', '6', 0,
/* 1781 */ 'W', '2', '6', 0,
/* 1785 */ 'C', 'O', 'P', '3', '6', 0,
/* 1791 */ 'F', 'C', 'C', '6', 0,
/* 1796 */ 'D', '6', 0,
/* 1799 */ 'F', '6', 0,
/* 1802 */ 'F', '_', 'H', 'I', '6', 0,
/* 1808 */ 'F', 'C', 'R', '6', 0,
/* 1813 */ 'H', 'W', 'R', '6', 0,
/* 1818 */ 'S', '6', 0,
/* 1821 */ 'T', '6', 0,
/* 1824 */ 'W', '6', 0,
/* 1827 */ 'C', 'O', 'P', '0', '7', 0,
/* 1833 */ 'C', 'O', 'P', '0', '1', '7', 0,
/* 1840 */ 'C', 'O', 'P', '2', '1', '7', 0,
/* 1847 */ 'C', 'O', 'P', '3', '1', '7', 0,
/* 1854 */ 'M', 'S', 'A', '1', '7', 0,
/* 1860 */ 'F', '1', '7', 0,
/* 1864 */ 'F', '_', 'H', 'I', '1', '7', 0,
/* 1871 */ 'F', 'C', 'R', '1', '7', 0,
/* 1877 */ 'H', 'W', 'R', '1', '7', 0,
/* 1883 */ 'W', '1', '7', 0,
/* 1887 */ 'C', 'O', 'P', '0', '2', '7', 0,
/* 1894 */ 'C', 'O', 'P', '2', '2', '7', 0,
/* 1901 */ 'C', 'O', 'P', '3', '2', '7', 0,
/* 1908 */ 'M', 'S', 'A', '2', '7', 0,
/* 1914 */ 'F', '2', '7', 0,
/* 1918 */ 'F', '_', 'H', 'I', '2', '7', 0,
/* 1925 */ 'C', 'O', 'P', '2', '7', 0,
/* 1931 */ 'F', 'C', 'R', '2', '7', 0,
/* 1937 */ 'H', 'W', 'R', '2', '7', 0,
/* 1943 */ 'W', '2', '7', 0,
/* 1947 */ 'C', 'O', 'P', '3', '7', 0,
/* 1953 */ 'F', 'C', 'C', '7', 0,
/* 1958 */ 'D', '7', 0,
/* 1961 */ 'F', '7', 0,
/* 1964 */ 'F', '_', 'H', 'I', '7', 0,
/* 1970 */ 'F', 'C', 'R', '7', 0,
/* 1975 */ 'H', 'W', 'R', '7', 0,
/* 1980 */ 'S', '7', 0,
/* 1983 */ 'T', '7', 0,
/* 1986 */ 'W', '7', 0,
/* 1989 */ 'C', 'O', 'P', '0', '8', 0,
/* 1995 */ 'C', 'O', 'P', '0', '1', '8', 0,
/* 2002 */ 'C', 'O', 'P', '2', '1', '8', 0,
/* 2009 */ 'C', 'O', 'P', '3', '1', '8', 0,
/* 2016 */ 'M', 'S', 'A', '1', '8', 0,
/* 2022 */ 'F', '1', '8', 0,
/* 2026 */ 'F', '_', 'H', 'I', '1', '8', 0,
/* 2033 */ 'F', 'C', 'R', '1', '8', 0,
/* 2039 */ 'H', 'W', 'R', '1', '8', 0,
/* 2045 */ 'W', '1', '8', 0,
/* 2049 */ 'C', 'O', 'P', '0', '2', '8', 0,
/* 2056 */ 'C', 'O', 'P', '2', '2', '8', 0,
/* 2063 */ 'C', 'O', 'P', '3', '2', '8', 0,
/* 2070 */ 'M', 'S', 'A', '2', '8', 0,
/* 2076 */ 'F', '2', '8', 0,
/* 2080 */ 'F', '_', 'H', 'I', '2', '8', 0,
/* 2087 */ 'C', 'O', 'P', '2', '8', 0,
/* 2093 */ 'F', 'C', 'R', '2', '8', 0,
/* 2099 */ 'H', 'W', 'R', '2', '8', 0,
/* 2105 */ 'W', '2', '8', 0,
/* 2109 */ 'C', 'O', 'P', '3', '8', 0,
/* 2115 */ 'M', 'S', 'A', '8', 0,
/* 2120 */ 'D', '8', 0,
/* 2123 */ 'F', '8', 0,
/* 2126 */ 'F', '_', 'H', 'I', '8', 0,
/* 2132 */ 'F', 'C', 'R', '8', 0,
/* 2137 */ 'H', 'W', 'R', '8', 0,
/* 2142 */ 'T', '8', 0,
/* 2145 */ 'W', '8', 0,
/* 2148 */ 'C', 'O', 'P', '0', '9', 0,
/* 2154 */ 'C', 'O', 'P', '0', '1', '9', 0,
/* 2161 */ 'C', 'O', 'P', '2', '1', '9', 0,
/* 2168 */ 'C', 'O', 'P', '3', '1', '9', 0,
/* 2175 */ 'M', 'S', 'A', '1', '9', 0,
/* 2181 */ 'F', '1', '9', 0,
/* 2185 */ 'F', '_', 'H', 'I', '1', '9', 0,
/* 2192 */ 'F', 'C', 'R', '1', '9', 0,
/* 2198 */ 'H', 'W', 'R', '1', '9', 0,
/* 2204 */ 'W', '1', '9', 0,
/* 2208 */ 'D', 'S', 'P', 'O', 'u', 't', 'F', 'l', 'a', 'g', '1', '6', '_', '1', '9', 0,
/* 2224 */ 'C', 'O', 'P', '0', '2', '9', 0,
/* 2231 */ 'C', 'O', 'P', '2', '2', '9', 0,
/* 2238 */ 'C', 'O', 'P', '3', '2', '9', 0,
/* 2245 */ 'M', 'S', 'A', '2', '9', 0,
/* 2251 */ 'F', '2', '9', 0,
/* 2255 */ 'F', '_', 'H', 'I', '2', '9', 0,
/* 2262 */ 'C', 'O', 'P', '2', '9', 0,
/* 2268 */ 'F', 'C', 'R', '2', '9', 0,
/* 2274 */ 'H', 'W', 'R', '2', '9', 0,
/* 2280 */ 'W', '2', '9', 0,
/* 2284 */ 'C', 'O', 'P', '3', '9', 0,
/* 2290 */ 'M', 'S', 'A', '9', 0,
/* 2295 */ 'D', '9', 0,
/* 2298 */ 'F', '9', 0,
/* 2301 */ 'F', '_', 'H', 'I', '9', 0,
/* 2307 */ 'F', 'C', 'R', '9', 0,
/* 2312 */ 'H', 'W', 'R', '9', 0,
/* 2317 */ 'T', '9', 0,
/* 2320 */ 'W', '9', 0,
/* 2323 */ 'R', 'A', 0,
/* 2326 */ 'P', 'C', 0,
/* 2329 */ 'D', 'S', 'P', 'E', 'F', 'I', 0,
/* 2336 */ 'Z', 'E', 'R', 'O', 0,
/* 2341 */ 'F', 'P', 0,
/* 2344 */ 'G', 'P', 0,
/* 2347 */ 'S', 'P', 0,
/* 2350 */ 'M', 'S', 'A', 'I', 'R', 0,
/* 2356 */ 'M', 'S', 'A', 'C', 'S', 'R', 0,
/* 2363 */ 'A', 'T', 0,
/* 2366 */ 'D', 'S', 'P', 'C', 'C', 'o', 'n', 'd', 0,
/* 2375 */ 'M', 'S', 'A', 'S', 'a', 'v', 'e', 0,
/* 2383 */ 'D', 'S', 'P', 'O', 'u', 't', 'F', 'l', 'a', 'g', 0,
/* 2394 */ 'M', 'S', 'A', 'M', 'a', 'p', 0,
/* 2401 */ 'M', 'S', 'A', 'U', 'n', 'm', 'a', 'p', 0,
/* 2410 */ 'D', 'S', 'P', 'P', 'o', 's', 0,
/* 2417 */ 'M', 'S', 'A', 'A', 'c', 'c', 'e', 's', 's', 0,
/* 2427 */ 'D', 'S', 'P', 'S', 'C', 'o', 'u', 'n', 't', 0,
/* 2437 */ 'M', 'S', 'A', 'R', 'e', 'q', 'u', 'e', 's', 't', 0,
/* 2448 */ 'M', 'S', 'A', 'M', 'o', 'd', 'i', 'f', 'y', 0,
/* 2458 */ 'D', 'S', 'P', 'C', 'a', 'r', 'r', 'y', 0,
0
};
extern const MCRegisterDesc MipsRegDesc[] = { // Descriptors
{ 5, 0, 0, 0, 0, 0 },
{ 2363, 1, 82, 1, 4017, 0 },
{ 2366, 1, 1, 1, 4017, 0 },
{ 2458, 1, 1, 1, 4017, 0 },
{ 2329, 1, 1, 1, 4017, 0 },
{ 2383, 8, 1, 2, 32, 4 },
{ 2410, 1, 1, 1, 1089, 0 },
{ 2427, 1, 1, 1, 1089, 0 },
{ 2341, 1, 102, 1, 1089, 0 },
{ 2344, 1, 104, 1, 1089, 0 },
{ 2417, 1, 1, 1, 1089, 0 },
{ 2356, 1, 1, 1, 1089, 0 },
{ 2350, 1, 1, 1, 1089, 0 },
{ 2394, 1, 1, 1, 1089, 0 },
{ 2448, 1, 1, 1, 1089, 0 },
{ 2437, 1, 1, 1, 1089, 0 },
{ 2375, 1, 1, 1, 1089, 0 },
{ 2401, 1, 1, 1, 1089, 0 },
{ 2326, 1, 1, 1, 1089, 0 },
{ 2323, 1, 106, 1, 1089, 0 },
{ 2347, 1, 108, 1, 1089, 0 },
{ 2336, 1, 110, 1, 1089, 0 },
{ 197, 1, 110, 1, 1089, 0 },
{ 455, 1, 110, 1, 1089, 0 },
{ 659, 1, 110, 1, 1089, 0 },
{ 857, 1, 110, 1, 1089, 0 },
{ 200, 190, 110, 9, 1042, 10 },
{ 458, 190, 1, 9, 1042, 10 },
{ 662, 190, 1, 9, 1042, 10 },
{ 860, 190, 1, 9, 1042, 10 },
{ 1457, 237, 1, 0, 0, 2 },
{ 0, 1, 1, 1, 1153, 0 },
{ 258, 1, 1, 1, 1153, 0 },
{ 516, 1, 1, 1, 1153, 0 },
{ 714, 1, 1, 1, 1153, 0 },
{ 904, 1, 1, 1, 1153, 0 },
{ 1499, 1, 1, 1, 1153, 0 },
{ 1665, 1, 1, 1, 1153, 0 },
{ 1827, 1, 1, 1, 1153, 0 },
{ 1989, 1, 1, 1, 1153, 0 },
{ 2148, 1, 1, 1, 1153, 0 },
{ 102, 1, 1, 1, 1153, 0 },
{ 360, 1, 1, 1, 1153, 0 },
{ 618, 1, 1, 1, 1153, 0 },
{ 816, 1, 1, 1, 1153, 0 },
{ 1006, 1, 1, 1, 1153, 0 },
{ 1601, 1, 1, 1, 1153, 0 },
{ 1763, 1, 1, 1, 1153, 0 },
{ 1925, 1, 1, 1, 1153, 0 },
{ 2087, 1, 1, 1, 1153, 0 },
{ 2262, 1, 1, 1, 1153, 0 },
{ 175, 1, 1, 1, 1153, 0 },
{ 433, 1, 1, 1, 1153, 0 },
{ 653, 1, 1, 1, 1153, 0 },
{ 851, 1, 1, 1, 1153, 0 },
{ 1028, 1, 1, 1, 1153, 0 },
{ 1623, 1, 1, 1, 1153, 0 },
{ 1785, 1, 1, 1, 1153, 0 },
{ 1947, 1, 1, 1, 1153, 0 },
{ 2109, 1, 1, 1, 1153, 0 },
{ 2284, 1, 1, 1, 1153, 0 },
{ 6, 1, 1, 1, 1153, 0 },
{ 264, 1, 1, 1, 1153, 0 },
{ 522, 1, 1, 1, 1153, 0 },
{ 720, 1, 1, 1, 1153, 0 },
{ 910, 1, 1, 1, 1153, 0 },
{ 1505, 1, 1, 1, 1153, 0 },
{ 1671, 1, 1, 1, 1153, 0 },
{ 1833, 1, 1, 1, 1153, 0 },
{ 1995, 1, 1, 1, 1153, 0 },
{ 2154, 1, 1, 1, 1153, 0 },
{ 64, 1, 1, 1, 1153, 0 },
{ 322, 1, 1, 1, 1153, 0 },
{ 580, 1, 1, 1, 1153, 0 },
{ 778, 1, 1, 1, 1153, 0 },
{ 968, 1, 1, 1, 1153, 0 },
{ 1563, 1, 1, 1, 1153, 0 },
{ 1725, 1, 1, 1, 1153, 0 },
{ 1887, 1, 1, 1, 1153, 0 },
{ 2049, 1, 1, 1, 1153, 0 },
{ 2224, 1, 1, 1, 1153, 0 },
{ 137, 1, 1, 1, 1153, 0 },
{ 395, 1, 1, 1, 1153, 0 },
{ 13, 1, 1, 1, 1153, 0 },
{ 271, 1, 1, 1, 1153, 0 },
{ 529, 1, 1, 1, 1153, 0 },
{ 727, 1, 1, 1, 1153, 0 },
{ 917, 1, 1, 1, 1153, 0 },
{ 1512, 1, 1, 1, 1153, 0 },
{ 1678, 1, 1, 1, 1153, 0 },
{ 1840, 1, 1, 1, 1153, 0 },
{ 2002, 1, 1, 1, 1153, 0 },
{ 2161, 1, 1, 1, 1153, 0 },
{ 71, 1, 1, 1, 1153, 0 },
{ 329, 1, 1, 1, 1153, 0 },
{ 587, 1, 1, 1, 1153, 0 },
{ 785, 1, 1, 1, 1153, 0 },
{ 975, 1, 1, 1, 1153, 0 },
{ 1570, 1, 1, 1, 1153, 0 },
{ 1732, 1, 1, 1, 1153, 0 },
{ 1894, 1, 1, 1, 1153, 0 },
{ 2056, 1, 1, 1, 1153, 0 },
{ 2231, 1, 1, 1, 1153, 0 },
{ 144, 1, 1, 1, 1153, 0 },
{ 402, 1, 1, 1, 1153, 0 },
{ 20, 1, 1, 1, 1153, 0 },
{ 278, 1, 1, 1, 1153, 0 },
{ 536, 1, 1, 1, 1153, 0 },
{ 734, 1, 1, 1, 1153, 0 },
{ 924, 1, 1, 1, 1153, 0 },
{ 1519, 1, 1, 1, 1153, 0 },
{ 1685, 1, 1, 1, 1153, 0 },
{ 1847, 1, 1, 1, 1153, 0 },
{ 2009, 1, 1, 1, 1153, 0 },
{ 2168, 1, 1, 1, 1153, 0 },
{ 78, 1, 1, 1, 1153, 0 },
{ 336, 1, 1, 1, 1153, 0 },
{ 594, 1, 1, 1, 1153, 0 },
{ 792, 1, 1, 1, 1153, 0 },
{ 982, 1, 1, 1, 1153, 0 },
{ 1577, 1, 1, 1, 1153, 0 },
{ 1739, 1, 1, 1, 1153, 0 },
{ 1901, 1, 1, 1, 1153, 0 },
{ 2063, 1, 1, 1, 1153, 0 },
{ 2238, 1, 1, 1, 1153, 0 },
{ 151, 1, 1, 1, 1153, 0 },
{ 409, 1, 1, 1, 1153, 0 },
{ 209, 14, 1, 9, 994, 10 },
{ 467, 17, 1, 9, 994, 10 },
{ 671, 20, 1, 9, 994, 10 },
{ 869, 23, 1, 9, 994, 10 },
{ 1468, 26, 1, 9, 994, 10 },
{ 1634, 29, 1, 9, 994, 10 },
{ 1796, 32, 1, 9, 994, 10 },
{ 1958, 35, 1, 9, 994, 10 },
{ 2120, 38, 1, 9, 994, 10 },
{ 2295, 41, 1, 9, 994, 10 },
{ 33, 44, 1, 9, 994, 10 },
{ 291, 47, 1, 9, 994, 10 },
{ 549, 50, 1, 9, 994, 10 },
{ 747, 53, 1, 9, 994, 10 },
{ 937, 56, 1, 9, 994, 10 },
{ 1532, 59, 1, 9, 994, 10 },
{ 124, 1, 148, 1, 2369, 0 },
{ 382, 1, 146, 1, 2369, 0 },
{ 640, 1, 144, 1, 2369, 0 },
{ 838, 1, 142, 1, 2369, 0 },
{ 212, 1, 161, 1, 3985, 0 },
{ 470, 1, 165, 1, 3985, 0 },
{ 674, 1, 165, 1, 3985, 0 },
{ 872, 1, 169, 1, 3985, 0 },
{ 1471, 1, 169, 1, 3985, 0 },
{ 1637, 1, 173, 1, 3985, 0 },
{ 1799, 1, 173, 1, 3985, 0 },
{ 1961, 1, 177, 1, 3985, 0 },
{ 2123, 1, 177, 1, 3985, 0 },
{ 2298, 1, 181, 1, 3985, 0 },
{ 37, 1, 181, 1, 3985, 0 },
{ 295, 1, 185, 1, 3985, 0 },
{ 553, 1, 185, 1, 3985, 0 },
{ 751, 1, 189, 1, 3985, 0 },
{ 941, 1, 189, 1, 3985, 0 },
{ 1536, 1, 193, 1, 3985, 0 },
{ 1698, 1, 193, 1, 3985, 0 },
{ 1860, 1, 197, 1, 3985, 0 },
{ 2022, 1, 197, 1, 3985, 0 },
{ 2181, 1, 201, 1, 3985, 0 },
{ 91, 1, 201, 1, 3985, 0 },
{ 349, 1, 205, 1, 3985, 0 },
{ 607, 1, 205, 1, 3985, 0 },
{ 805, 1, 209, 1, 3985, 0 },
{ 995, 1, 209, 1, 3985, 0 },
{ 1590, 1, 213, 1, 3985, 0 },
{ 1752, 1, 213, 1, 3985, 0 },
{ 1914, 1, 217, 1, 3985, 0 },
{ 2076, 1, 217, 1, 3985, 0 },
{ 2251, 1, 221, 1, 3985, 0 },
{ 164, 1, 221, 1, 3985, 0 },
{ 422, 1, 225, 1, 3985, 0 },
{ 204, 1, 1, 1, 3985, 0 },
{ 462, 1, 1, 1, 3985, 0 },
{ 666, 1, 1, 1, 3985, 0 },
{ 864, 1, 1, 1, 3985, 0 },
{ 1463, 1, 1, 1, 3985, 0 },
{ 1629, 1, 1, 1, 3985, 0 },
{ 1791, 1, 1, 1, 3985, 0 },
{ 1953, 1, 1, 1, 3985, 0 },
{ 236, 1, 1, 1, 3985, 0 },
{ 494, 1, 1, 1, 3985, 0 },
{ 695, 1, 1, 1, 3985, 0 },
{ 885, 1, 1, 1, 3985, 0 },
{ 1480, 1, 1, 1, 3985, 0 },
{ 1646, 1, 1, 1, 3985, 0 },
{ 1808, 1, 1, 1, 3985, 0 },
{ 1970, 1, 1, 1, 3985, 0 },
{ 2132, 1, 1, 1, 3985, 0 },
{ 2307, 1, 1, 1, 3985, 0 },
{ 48, 1, 1, 1, 3985, 0 },
{ 306, 1, 1, 1, 3985, 0 },
{ 564, 1, 1, 1, 3985, 0 },
{ 762, 1, 1, 1, 3985, 0 },
{ 952, 1, 1, 1, 3985, 0 },
{ 1547, 1, 1, 1, 3985, 0 },
{ 1709, 1, 1, 1, 3985, 0 },
{ 1871, 1, 1, 1, 3985, 0 },
{ 2033, 1, 1, 1, 3985, 0 },
{ 2192, 1, 1, 1, 3985, 0 },
{ 108, 1, 1, 1, 3985, 0 },
{ 366, 1, 1, 1, 3985, 0 },
{ 624, 1, 1, 1, 3985, 0 },
{ 822, 1, 1, 1, 3985, 0 },
{ 1012, 1, 1, 1, 3985, 0 },
{ 1607, 1, 1, 1, 3985, 0 },
{ 1769, 1, 1, 1, 3985, 0 },
{ 1931, 1, 1, 1, 3985, 0 },
{ 2093, 1, 1, 1, 3985, 0 },
{ 2268, 1, 1, 1, 3985, 0 },
{ 181, 1, 1, 1, 3985, 0 },
{ 439, 1, 1, 1, 3985, 0 },
{ 1439, 136, 1, 0, 1184, 2 },
{ 215, 1, 158, 1, 3953, 0 },
{ 473, 1, 158, 1, 3953, 0 },
{ 677, 1, 158, 1, 3953, 0 },
{ 875, 1, 158, 1, 3953, 0 },
{ 1474, 1, 158, 1, 3953, 0 },
{ 1640, 1, 158, 1, 3953, 0 },
{ 1802, 1, 158, 1, 3953, 0 },
{ 1964, 1, 158, 1, 3953, 0 },
{ 2126, 1, 158, 1, 3953, 0 },
{ 2301, 1, 158, 1, 3953, 0 },
{ 41, 1, 158, 1, 3953, 0 },
{ 299, 1, 158, 1, 3953, 0 },
{ 557, 1, 158, 1, 3953, 0 },
{ 755, 1, 158, 1, 3953, 0 },
{ 945, 1, 158, 1, 3953, 0 },
{ 1540, 1, 158, 1, 3953, 0 },
{ 1702, 1, 158, 1, 3953, 0 },
{ 1864, 1, 158, 1, 3953, 0 },
{ 2026, 1, 158, 1, 3953, 0 },
{ 2185, 1, 158, 1, 3953, 0 },
{ 95, 1, 158, 1, 3953, 0 },
{ 353, 1, 158, 1, 3953, 0 },
{ 611, 1, 158, 1, 3953, 0 },
{ 809, 1, 158, 1, 3953, 0 },
{ 999, 1, 158, 1, 3953, 0 },
{ 1594, 1, 158, 1, 3953, 0 },
{ 1756, 1, 158, 1, 3953, 0 },
{ 1918, 1, 158, 1, 3953, 0 },
{ 2080, 1, 158, 1, 3953, 0 },
{ 2255, 1, 158, 1, 3953, 0 },
{ 168, 1, 158, 1, 3953, 0 },
{ 426, 1, 158, 1, 3953, 0 },
{ 1445, 128, 1, 0, 1216, 2 },
{ 217, 1, 233, 1, 1826, 0 },
{ 475, 1, 134, 1, 1826, 0 },
{ 679, 1, 134, 1, 1826, 0 },
{ 877, 1, 134, 1, 1826, 0 },
{ 241, 1, 1, 1, 3921, 0 },
{ 499, 1, 1, 1, 3921, 0 },
{ 700, 1, 1, 1, 3921, 0 },
{ 890, 1, 1, 1, 3921, 0 },
{ 1485, 1, 1, 1, 3921, 0 },
{ 1651, 1, 1, 1, 3921, 0 },
{ 1813, 1, 1, 1, 3921, 0 },
{ 1975, 1, 1, 1, 3921, 0 },
{ 2137, 1, 1, 1, 3921, 0 },
{ 2312, 1, 1, 1, 3921, 0 },
{ 54, 1, 1, 1, 3921, 0 },
{ 312, 1, 1, 1, 3921, 0 },
{ 570, 1, 1, 1, 3921, 0 },
{ 768, 1, 1, 1, 3921, 0 },
{ 958, 1, 1, 1, 3921, 0 },
{ 1553, 1, 1, 1, 3921, 0 },
{ 1715, 1, 1, 1, 3921, 0 },
{ 1877, 1, 1, 1, 3921, 0 },
{ 2039, 1, 1, 1, 3921, 0 },
{ 2198, 1, 1, 1, 3921, 0 },
{ 114, 1, 1, 1, 3921, 0 },
{ 372, 1, 1, 1, 3921, 0 },
{ 630, 1, 1, 1, 3921, 0 },
{ 828, 1, 1, 1, 3921, 0 },
{ 1018, 1, 1, 1, 3921, 0 },
{ 1613, 1, 1, 1, 3921, 0 },
{ 1775, 1, 1, 1, 3921, 0 },
{ 1937, 1, 1, 1, 3921, 0 },
{ 2099, 1, 1, 1, 3921, 0 },
{ 2274, 1, 1, 1, 3921, 0 },
{ 187, 1, 1, 1, 3921, 0 },
{ 445, 1, 1, 1, 3921, 0 },
{ 221, 1, 100, 1, 3921, 0 },
{ 479, 1, 100, 1, 3921, 0 },
{ 229, 1, 229, 1, 1794, 0 },
{ 487, 1, 126, 1, 1794, 0 },
{ 688, 1, 126, 1, 1794, 0 },
{ 881, 1, 126, 1, 1794, 0 },
{ 224, 1, 1, 1, 3889, 0 },
{ 482, 1, 1, 1, 3889, 0 },
{ 683, 1, 1, 1, 3889, 0 },
{ 2115, 1, 1, 1, 3889, 0 },
{ 2290, 1, 1, 1, 3889, 0 },
{ 27, 1, 1, 1, 3889, 0 },
{ 285, 1, 1, 1, 3889, 0 },
{ 543, 1, 1, 1, 3889, 0 },
{ 741, 1, 1, 1, 3889, 0 },
{ 931, 1, 1, 1, 3889, 0 },
{ 1526, 1, 1, 1, 3889, 0 },
{ 1692, 1, 1, 1, 3889, 0 },
{ 1854, 1, 1, 1, 3889, 0 },
{ 2016, 1, 1, 1, 3889, 0 },
{ 2175, 1, 1, 1, 3889, 0 },
{ 85, 1, 1, 1, 3889, 0 },
{ 343, 1, 1, 1, 3889, 0 },
{ 601, 1, 1, 1, 3889, 0 },
{ 799, 1, 1, 1, 3889, 0 },
{ 989, 1, 1, 1, 3889, 0 },
{ 1584, 1, 1, 1, 3889, 0 },
{ 1746, 1, 1, 1, 3889, 0 },
{ 1908, 1, 1, 1, 3889, 0 },
{ 2070, 1, 1, 1, 3889, 0 },
{ 2245, 1, 1, 1, 3889, 0 },
{ 158, 1, 1, 1, 3889, 0 },
{ 416, 1, 1, 1, 3889, 0 },
{ 233, 1, 1, 1, 3889, 0 },
{ 491, 1, 1, 1, 3889, 0 },
{ 692, 1, 1, 1, 3889, 0 },
{ 1425, 124, 1, 0, 1248, 2 },
{ 246, 1, 98, 1, 3857, 0 },
{ 504, 1, 98, 1, 3857, 0 },
{ 705, 1, 98, 1, 3857, 0 },
{ 895, 1, 98, 1, 3857, 0 },
{ 1490, 1, 98, 1, 3857, 0 },
{ 1656, 1, 98, 1, 3857, 0 },
{ 1818, 1, 98, 1, 3857, 0 },
{ 1980, 1, 98, 1, 3857, 0 },
{ 1451, 122, 1, 0, 1280, 2 },
{ 249, 1, 96, 1, 3825, 0 },
{ 507, 1, 96, 1, 3825, 0 },
{ 708, 1, 96, 1, 3825, 0 },
{ 898, 1, 96, 1, 3825, 0 },
{ 1493, 1, 96, 1, 3825, 0 },
{ 1659, 1, 96, 1, 3825, 0 },
{ 1821, 1, 96, 1, 3825, 0 },
{ 1983, 1, 96, 1, 3825, 0 },
{ 2142, 1, 96, 1, 3825, 0 },
{ 2317, 1, 96, 1, 3825, 0 },
{ 252, 1, 96, 1, 3825, 0 },
{ 510, 1, 96, 1, 3825, 0 },
{ 255, 92, 1, 8, 1425, 10 },
{ 513, 92, 1, 8, 1425, 10 },
{ 711, 92, 1, 8, 1425, 10 },
{ 901, 92, 1, 8, 1425, 10 },
{ 1496, 92, 1, 8, 1425, 10 },
{ 1662, 92, 1, 8, 1425, 10 },
{ 1824, 92, 1, 8, 1425, 10 },
{ 1986, 92, 1, 8, 1425, 10 },
{ 2145, 92, 1, 8, 1425, 10 },
{ 2320, 92, 1, 8, 1425, 10 },
{ 60, 92, 1, 8, 1425, 10 },
{ 318, 92, 1, 8, 1425, 10 },
{ 576, 92, 1, 8, 1425, 10 },
{ 774, 92, 1, 8, 1425, 10 },
{ 964, 92, 1, 8, 1425, 10 },
{ 1559, 92, 1, 8, 1425, 10 },
{ 1721, 92, 1, 8, 1425, 10 },
{ 1883, 92, 1, 8, 1425, 10 },
{ 2045, 92, 1, 8, 1425, 10 },
{ 2204, 92, 1, 8, 1425, 10 },
{ 120, 92, 1, 8, 1425, 10 },
{ 378, 92, 1, 8, 1425, 10 },
{ 636, 92, 1, 8, 1425, 10 },
{ 834, 92, 1, 8, 1425, 10 },
{ 1024, 92, 1, 8, 1425, 10 },
{ 1619, 92, 1, 8, 1425, 10 },
{ 1781, 92, 1, 8, 1425, 10 },
{ 1943, 92, 1, 8, 1425, 10 },
{ 2105, 92, 1, 8, 1425, 10 },
{ 2280, 92, 1, 8, 1425, 10 },
{ 193, 92, 1, 8, 1425, 10 },
{ 451, 92, 1, 8, 1425, 10 },
{ 1431, 118, 1, 0, 1921, 2 },
{ 1055, 118, 1, 0, 1921, 2 },
{ 1133, 118, 1, 0, 1921, 2 },
{ 1183, 118, 1, 0, 1921, 2 },
{ 1221, 118, 1, 0, 1921, 2 },
{ 1061, 130, 1, 12, 656, 10 },
{ 1068, 93, 159, 9, 1377, 10 },
{ 1139, 93, 159, 9, 1377, 10 },
{ 1189, 93, 159, 9, 1377, 10 },
{ 1227, 93, 159, 9, 1377, 10 },
{ 1259, 93, 159, 9, 1377, 10 },
{ 1291, 93, 159, 9, 1377, 10 },
{ 1323, 93, 159, 9, 1377, 10 },
{ 1355, 93, 159, 9, 1377, 10 },
{ 1387, 93, 159, 9, 1377, 10 },
{ 1413, 93, 159, 9, 1377, 10 },
{ 1034, 93, 159, 9, 1377, 10 },
{ 1112, 93, 159, 9, 1377, 10 },
{ 1169, 93, 159, 9, 1377, 10 },
{ 1207, 93, 159, 9, 1377, 10 },
{ 1245, 93, 159, 9, 1377, 10 },
{ 1277, 93, 159, 9, 1377, 10 },
{ 1309, 93, 159, 9, 1377, 10 },
{ 1341, 93, 159, 9, 1377, 10 },
{ 1373, 93, 159, 9, 1377, 10 },
{ 1399, 93, 159, 9, 1377, 10 },
{ 1041, 93, 159, 9, 1377, 10 },
{ 1119, 93, 159, 9, 1377, 10 },
{ 1176, 93, 159, 9, 1377, 10 },
{ 1214, 93, 159, 9, 1377, 10 },
{ 1252, 93, 159, 9, 1377, 10 },
{ 1284, 93, 159, 9, 1377, 10 },
{ 1316, 93, 159, 9, 1377, 10 },
{ 1348, 93, 159, 9, 1377, 10 },
{ 1380, 93, 159, 9, 1377, 10 },
{ 1406, 93, 159, 9, 1377, 10 },
{ 1048, 93, 159, 9, 1377, 10 },
{ 1126, 93, 159, 9, 1377, 10 },
{ 2208, 1, 116, 1, 1120, 0 },
{ 1074, 138, 235, 0, 1344, 2 },
{ 1081, 150, 1, 0, 2241, 2 },
{ 1145, 150, 1, 0, 2241, 2 },
{ 1087, 150, 231, 0, 1312, 2 },
{ 1094, 154, 1, 0, 2433, 2 },
{ 1151, 154, 1, 0, 2433, 2 },
{ 1195, 154, 1, 0, 2433, 2 },
{ 1233, 154, 1, 0, 2433, 2 },
{ 1265, 154, 1, 0, 2433, 2 },
{ 1297, 154, 1, 0, 2433, 2 },
{ 1329, 154, 1, 0, 2433, 2 },
{ 1361, 154, 1, 0, 2433, 2 },
{ 1100, 156, 1, 0, 2433, 2 },
{ 1157, 156, 1, 0, 2433, 2 },
{ 1201, 156, 1, 0, 2433, 2 },
{ 1239, 156, 1, 0, 2433, 2 },
{ 1271, 156, 1, 0, 2433, 2 },
{ 1303, 156, 1, 0, 2433, 2 },
{ 1335, 156, 1, 0, 2433, 2 },
{ 1367, 156, 1, 0, 2433, 2 },
{ 1393, 156, 1, 0, 2433, 2 },
{ 1419, 156, 1, 0, 2433, 2 },
{ 1106, 156, 1, 0, 2433, 2 },
{ 1163, 156, 1, 0, 2433, 2 },
};
extern const MCPhysReg MipsRegUnitRoots[][2] = {
{ Mips::AT },
{ Mips::DSPCCond },
{ Mips::DSPCarry },
{ Mips::DSPEFI },
{ Mips::DSPOutFlag16_19 },
{ Mips::DSPOutFlag20 },
{ Mips::DSPOutFlag21 },
{ Mips::DSPOutFlag22 },
{ Mips::DSPOutFlag23 },
{ Mips::DSPPos },
{ Mips::DSPSCount },
{ Mips::FP },
{ Mips::GP },
{ Mips::MSAAccess },
{ Mips::MSACSR },
{ Mips::MSAIR },
{ Mips::MSAMap },
{ Mips::MSAModify },
{ Mips::MSARequest },
{ Mips::MSASave },
{ Mips::MSAUnmap },
{ Mips::PC },
{ Mips::RA },
{ Mips::SP },
{ Mips::ZERO },
{ Mips::A0 },
{ Mips::A1 },
{ Mips::A2 },
{ Mips::A3 },
{ Mips::LO0 },
{ Mips::HI0 },
{ Mips::LO1 },
{ Mips::HI1 },
{ Mips::LO2 },
{ Mips::HI2 },
{ Mips::LO3 },
{ Mips::HI3 },
{ Mips::COP00 },
{ Mips::COP01 },
{ Mips::COP02 },
{ Mips::COP03 },
{ Mips::COP04 },
{ Mips::COP05 },
{ Mips::COP06 },
{ Mips::COP07 },
{ Mips::COP08 },
{ Mips::COP09 },
{ Mips::COP20 },
{ Mips::COP21 },
{ Mips::COP22 },
{ Mips::COP23 },
{ Mips::COP24 },
{ Mips::COP25 },
{ Mips::COP26 },
{ Mips::COP27 },
{ Mips::COP28 },
{ Mips::COP29 },
{ Mips::COP30 },
{ Mips::COP31 },
{ Mips::COP32 },
{ Mips::COP33 },
{ Mips::COP34 },
{ Mips::COP35 },
{ Mips::COP36 },
{ Mips::COP37 },
{ Mips::COP38 },
{ Mips::COP39 },
{ 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 },
{ 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 },
{ 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 },
{ 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 },
{ Mips::FCC0 },
{ Mips::FCC1 },
{ Mips::FCC2 },
{ Mips::FCC3 },
{ Mips::FCC4 },
{ Mips::FCC5 },
{ Mips::FCC6 },
{ Mips::FCC7 },
{ 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 },
{ 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 },
{ 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 },
{ Mips::K0 },
{ Mips::K1 },
{ Mips::MPL0 },
{ Mips::MPL1 },
{ Mips::MPL2 },
{ Mips::MSA8 },
{ Mips::MSA9 },
{ Mips::MSA10 },
{ Mips::MSA11 },
{ Mips::MSA12 },
{ Mips::MSA13 },
{ Mips::MSA14 },
{ Mips::MSA15 },
{ Mips::MSA16 },
{ Mips::MSA17 },
{ Mips::MSA18 },
{ Mips::MSA19 },
{ Mips::MSA20 },
{ Mips::MSA21 },
{ Mips::MSA22 },
{ Mips::MSA23 },
{ Mips::MSA24 },
{ Mips::MSA25 },
{ Mips::MSA26 },
{ Mips::MSA27 },
{ Mips::MSA28 },
{ Mips::MSA29 },
{ Mips::MSA30 },
{ Mips::MSA31 },
{ Mips::P0 },
{ Mips::P1 },
{ Mips::P2 },
{ Mips::S0 },
{ Mips::S1 },
{ Mips::S2 },
{ Mips::S3 },
{ Mips::S4 },
{ Mips::S5 },
{ Mips::S6 },
{ Mips::S7 },
{ Mips::T0 },
{ Mips::T1 },
{ Mips::T2 },
{ Mips::T3 },
{ Mips::T4 },
{ Mips::T5 },
{ Mips::T6 },
{ Mips::T7 },
{ Mips::T8 },
{ Mips::T9 },
{ Mips::V0 },
{ Mips::V1 },
};
namespace { // Register classes...
// MSA128F16 Register Class...
const MCPhysReg MSA128F16[] = {
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,
};
// MSA128F16 Bit set.
const uint8_t MSA128F16Bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// CCR Register Class...
const MCPhysReg CCR[] = {
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,
};
// CCR Bit set.
const uint8_t CCRBits[] = {
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,
};
// COP0 Register Class...
const MCPhysReg COP0[] = {
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,
};
// COP0 Bit set.
const uint8_t COP0Bits[] = {
0x00, 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, 0xe0, 0xff, 0xff, 0x07,
};
// COP2 Register Class...
const MCPhysReg COP2[] = {
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,
};
// COP2 Bit set.
const uint8_t COP2Bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x01,
};
// COP3 Register Class...
const MCPhysReg COP3[] = {
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,
};
// COP3 Bit set.
const uint8_t COP3Bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x7f,
};
// DSPR Register Class...
const MCPhysReg DSPR[] = {
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,
};
// DSPR Bit set.
const uint8_t DSPRBits[] = {
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, 0x00, 0x00, 0x00, 0xc0, 0xbf, 0xff, 0x07,
};
// FGR32 Register Class...
const MCPhysReg FGR32[] = {
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,
};
// FGR32 Bit set.
const uint8_t FGR32Bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07,
};
// FGRCC Register Class...
const MCPhysReg FGRCC[] = {
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,
};
// FGRCC Bit set.
const uint8_t FGRCCBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07,
};
// GPR32 Register Class...
const MCPhysReg GPR32[] = {
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,
};
// GPR32 Bit set.
const uint8_t GPR32Bits[] = {
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, 0x00, 0x00, 0x00, 0xc0, 0xbf, 0xff, 0x07,
};
// HWRegs Register Class...
const MCPhysReg HWRegs[] = {
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,
};
// HWRegs Bit set.
const uint8_t HWRegsBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// MSACtrl Register Class...
const MCPhysReg MSACtrl[] = {
Mips::MSAIR, Mips::MSACSR, Mips::MSAAccess, Mips::MSASave, Mips::MSAModify, Mips::MSARequest, Mips::MSAMap, Mips::MSAUnmap, Mips::MSA8, Mips::MSA9, Mips::MSA10, Mips::MSA11, Mips::MSA12, Mips::MSA13, Mips::MSA14, Mips::MSA15, Mips::MSA16, Mips::MSA17, Mips::MSA18, Mips::MSA19, Mips::MSA20, Mips::MSA21, Mips::MSA22, Mips::MSA23, Mips::MSA24, Mips::MSA25, Mips::MSA26, Mips::MSA27, Mips::MSA28, Mips::MSA29, Mips::MSA30, Mips::MSA31,
};
// MSACtrl Bit set.
const uint8_t MSACtrlBits[] = {
0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x03,
};
// GPR32NONZERO Register Class...
const MCPhysReg GPR32NONZERO[] = {
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,
};
// GPR32NONZERO Bit set.
const uint8_t GPR32NONZEROBits[] = {
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, 0x00, 0x00, 0x00, 0xc0, 0xbf, 0xff, 0x07,
};
// CPU16RegsPlusSP Register Class...
const MCPhysReg CPU16RegsPlusSP[] = {
Mips::V0, Mips::V1, Mips::A0, Mips::A1, Mips::A2, Mips::A3, Mips::S0, Mips::S1, Mips::SP,
};
// CPU16RegsPlusSP Bit set.
const uint8_t CPU16RegsPlusSPBits[] = {
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, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x06,
};
// CPU16Regs Register Class...
const MCPhysReg CPU16Regs[] = {
Mips::V0, Mips::V1, Mips::A0, Mips::A1, Mips::A2, Mips::A3, Mips::S0, Mips::S1,
};
// CPU16Regs Bit set.
const uint8_t CPU16RegsBits[] = {
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, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x06,
};
// FCC Register Class...
const MCPhysReg FCC[] = {
Mips::FCC0, Mips::FCC1, Mips::FCC2, Mips::FCC3, Mips::FCC4, Mips::FCC5, Mips::FCC6, Mips::FCC7,
};
// FCC Bit set.
const uint8_t FCCBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07,
};
// GPRMM16 Register Class...
const MCPhysReg GPRMM16[] = {
Mips::S0, Mips::S1, Mips::V0, Mips::V1, Mips::A0, Mips::A1, Mips::A2, Mips::A3,
};
// GPRMM16 Bit set.
const uint8_t GPRMM16Bits[] = {
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, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x06,
};
// GPRMM16MoveP Register Class...
const MCPhysReg GPRMM16MoveP[] = {
Mips::ZERO, Mips::S1, Mips::V0, Mips::V1, Mips::S0, Mips::S2, Mips::S3, Mips::S4,
};
// GPRMM16MoveP Bit set.
const uint8_t GPRMM16MovePBits[] = {
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, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x06,
};
// GPRMM16Zero Register Class...
const MCPhysReg GPRMM16Zero[] = {
Mips::ZERO, Mips::S1, Mips::V0, Mips::V1, Mips::A0, Mips::A1, Mips::A2, Mips::A3,
};
// GPRMM16Zero Bit set.
const uint8_t GPRMM16ZeroBits[] = {
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, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x06,
};
// CPU16Regs_and_GPRMM16Zero Register Class...
const MCPhysReg CPU16Regs_and_GPRMM16Zero[] = {
Mips::S1, Mips::V0, Mips::V1, Mips::A0, Mips::A1, Mips::A2, Mips::A3,
};
// CPU16Regs_and_GPRMM16Zero Bit set.
const uint8_t CPU16Regs_and_GPRMM16ZeroBits[] = {
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, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x06,
};
// GPR32NONZERO_and_GPRMM16MoveP Register Class...
const MCPhysReg GPR32NONZERO_and_GPRMM16MoveP[] = {
Mips::S1, Mips::V0, Mips::V1, Mips::S0, Mips::S2, Mips::S3, Mips::S4,
};
// GPR32NONZERO_and_GPRMM16MoveP Bit set.
const uint8_t GPR32NONZERO_and_GPRMM16MovePBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// GPRMM16MovePPairSecond Register Class...
const MCPhysReg GPRMM16MovePPairSecond[] = {
Mips::A1, Mips::A2, Mips::A3, Mips::S5, Mips::S6,
};
// GPRMM16MovePPairSecond Bit set.
const uint8_t GPRMM16MovePPairSecondBits[] = {
0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18,
};
// CPU16Regs_and_GPRMM16MoveP Register Class...
const MCPhysReg CPU16Regs_and_GPRMM16MoveP[] = {
Mips::S1, Mips::V0, Mips::V1, Mips::S0,
};
// CPU16Regs_and_GPRMM16MoveP Bit set.
const uint8_t CPU16Regs_and_GPRMM16MovePBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// GPRMM16MoveP_and_GPRMM16Zero Register Class...
const MCPhysReg GPRMM16MoveP_and_GPRMM16Zero[] = {
Mips::ZERO, Mips::S1, Mips::V0, Mips::V1,
};
// GPRMM16MoveP_and_GPRMM16Zero Bit set.
const uint8_t GPRMM16MoveP_and_GPRMM16ZeroBits[] = {
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, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x06,
};
// HI32DSP Register Class...
const MCPhysReg HI32DSP[] = {
Mips::HI0, Mips::HI1, Mips::HI2, Mips::HI3,
};
// HI32DSP Bit set.
const uint8_t HI32DSPBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// LO32DSP Register Class...
const MCPhysReg LO32DSP[] = {
Mips::LO0, Mips::LO1, Mips::LO2, Mips::LO3,
};
// LO32DSP Bit set.
const uint8_t LO32DSPBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// CPU16Regs_and_GPRMM16MovePPairSecond Register Class...
const MCPhysReg CPU16Regs_and_GPRMM16MovePPairSecond[] = {
Mips::A1, Mips::A2, Mips::A3,
};
// CPU16Regs_and_GPRMM16MovePPairSecond Bit set.
const uint8_t CPU16Regs_and_GPRMM16MovePPairSecondBits[] = {
0x00, 0x00, 0x80, 0x03,
};
// GPRMM16MovePPairFirst Register Class...
const MCPhysReg GPRMM16MovePPairFirst[] = {
Mips::A0, Mips::A1, Mips::A2,
};
// GPRMM16MovePPairFirst Bit set.
const uint8_t GPRMM16MovePPairFirstBits[] = {
0x00, 0x00, 0xc0, 0x01,
};
// GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero Register Class...
const MCPhysReg GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero[] = {
Mips::S1, Mips::V0, Mips::V1,
};
// GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero Bit set.
const uint8_t GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond Register Class...
const MCPhysReg GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond[] = {
Mips::A1, Mips::A2,
};
// GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond Bit set.
const uint8_t GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondBits[] = {
0x00, 0x00, 0x80, 0x01,
};
// CPURAReg Register Class...
const MCPhysReg CPURAReg[] = {
Mips::RA,
};
// CPURAReg Bit set.
const uint8_t CPURARegBits[] = {
0x00, 0x00, 0x08,
};
// CPUSPReg Register Class...
const MCPhysReg CPUSPReg[] = {
Mips::SP,
};
// CPUSPReg Bit set.
const uint8_t CPUSPRegBits[] = {
0x00, 0x00, 0x10,
};
// DSPCC Register Class...
const MCPhysReg DSPCC[] = {
Mips::DSPCCond,
};
// DSPCC Bit set.
const uint8_t DSPCCBits[] = {
0x04,
};
// GP32 Register Class...
const MCPhysReg GP32[] = {
Mips::GP,
};
// GP32 Bit set.
const uint8_t GP32Bits[] = {
0x00, 0x02,
};
// GPR32ZERO Register Class...
const MCPhysReg GPR32ZERO[] = {
Mips::ZERO,
};
// GPR32ZERO Bit set.
const uint8_t GPR32ZEROBits[] = {
0x00, 0x00, 0x20,
};
// HI32 Register Class...
const MCPhysReg HI32[] = {
Mips::HI0,
};
// HI32 Bit set.
const uint8_t HI32Bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// LO32 Register Class...
const MCPhysReg LO32[] = {
Mips::LO0,
};
// LO32 Bit set.
const uint8_t LO32Bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// SP32 Register Class...
const MCPhysReg SP32[] = {
Mips::SP,
};
// SP32 Bit set.
const uint8_t SP32Bits[] = {
0x00, 0x00, 0x10,
};
// FGR64 Register Class...
const MCPhysReg FGR64[] = {
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,
};
// FGR64 Bit set.
const uint8_t FGR64Bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// GPR64 Register Class...
const MCPhysReg GPR64[] = {
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,
};
// GPR64 Bit set.
const uint8_t GPR64Bits[] = {
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, 0x00, 0x00, 0x00, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xff, 0xff, 0x03,
};
// GPR64_with_sub_32_in_GPR32NONZERO Register Class...
const MCPhysReg GPR64_with_sub_32_in_GPR32NONZERO[] = {
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,
};
// GPR64_with_sub_32_in_GPR32NONZERO Bit set.
const uint8_t GPR64_with_sub_32_in_GPR32NONZEROBits[] = {
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, 0x00, 0x00, 0x00, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xff, 0xff, 0x03,
};
// AFGR64 Register Class...
const MCPhysReg AFGR64[] = {
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,
};
// AFGR64 Bit set.
const uint8_t AFGR64Bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f,
};
// GPR64_with_sub_32_in_CPU16RegsPlusSP Register Class...
const MCPhysReg GPR64_with_sub_32_in_CPU16RegsPlusSP[] = {
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,
};
// GPR64_with_sub_32_in_CPU16RegsPlusSP Bit set.
const uint8_t GPR64_with_sub_32_in_CPU16RegsPlusSPBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// GPR64_with_sub_32_in_CPU16Regs Register Class...
const MCPhysReg GPR64_with_sub_32_in_CPU16Regs[] = {
Mips::V0_64, Mips::V1_64, Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64, Mips::S0_64, Mips::S1_64,
};
// GPR64_with_sub_32_in_CPU16Regs Bit set.
const uint8_t GPR64_with_sub_32_in_CPU16RegsBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// GPR64_with_sub_32_in_GPRMM16MoveP Register Class...
const MCPhysReg GPR64_with_sub_32_in_GPRMM16MoveP[] = {
Mips::ZERO_64, Mips::V0_64, Mips::V1_64, Mips::S0_64, Mips::S1_64, Mips::S2_64, Mips::S3_64, Mips::S4_64,
};
// GPR64_with_sub_32_in_GPRMM16MoveP Bit set.
const uint8_t GPR64_with_sub_32_in_GPRMM16MovePBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// GPR64_with_sub_32_in_GPRMM16Zero Register Class...
const MCPhysReg GPR64_with_sub_32_in_GPRMM16Zero[] = {
Mips::ZERO_64, Mips::V0_64, Mips::V1_64, Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64, Mips::S1_64,
};
// GPR64_with_sub_32_in_GPRMM16Zero Bit set.
const uint8_t GPR64_with_sub_32_in_GPRMM16ZeroBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero Register Class...
const MCPhysReg GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero[] = {
Mips::V0_64, Mips::V1_64, Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64, Mips::S1_64,
};
// GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero Bit set.
const uint8_t GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP Register Class...
const MCPhysReg GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP[] = {
Mips::V0_64, Mips::V1_64, Mips::S0_64, Mips::S1_64, Mips::S2_64, Mips::S3_64, Mips::S4_64,
};
// GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP Bit set.
const uint8_t GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// GPR64_with_sub_32_in_GPRMM16MovePPairSecond Register Class...
const MCPhysReg GPR64_with_sub_32_in_GPRMM16MovePPairSecond[] = {
Mips::A1_64, Mips::A2_64, Mips::A3_64, Mips::S5_64, Mips::S6_64,
};
// GPR64_with_sub_32_in_GPRMM16MovePPairSecond Bit set.
const uint8_t GPR64_with_sub_32_in_GPRMM16MovePPairSecondBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18,
};
// ACC64DSP Register Class...
const MCPhysReg ACC64DSP[] = {
Mips::AC0, Mips::AC1, Mips::AC2, Mips::AC3,
};
// ACC64DSP Bit set.
const uint8_t ACC64DSPBits[] = {
0x00, 0x00, 0x00, 0x3c,
};
// GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP Register Class...
const MCPhysReg GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP[] = {
Mips::V0_64, Mips::V1_64, Mips::S0_64, Mips::S1_64,
};
// GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP Bit set.
const uint8_t GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero Register Class...
const MCPhysReg GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero[] = {
Mips::ZERO_64, Mips::V0_64, Mips::V1_64, Mips::S1_64,
};
// GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero Bit set.
const uint8_t GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond Register Class...
const MCPhysReg GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond[] = {
Mips::A1_64, Mips::A2_64, Mips::A3_64,
};
// GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond Bit set.
const uint8_t GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// GPR64_with_sub_32_in_GPRMM16MovePPairFirst Register Class...
const MCPhysReg GPR64_with_sub_32_in_GPRMM16MovePPairFirst[] = {
Mips::A0_64, Mips::A1_64, Mips::A2_64,
};
// GPR64_with_sub_32_in_GPRMM16MovePPairFirst Bit set.
const uint8_t GPR64_with_sub_32_in_GPRMM16MovePPairFirstBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
};
// GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero Register Class...
const MCPhysReg GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero[] = {
Mips::V0_64, Mips::V1_64, Mips::S1_64,
};
// GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero Bit set.
const uint8_t GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// OCTEON_MPL Register Class...
const MCPhysReg OCTEON_MPL[] = {
Mips::MPL0, Mips::MPL1, Mips::MPL2,
};
// OCTEON_MPL Bit set.
const uint8_t OCTEON_MPLBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// OCTEON_P Register Class...
const MCPhysReg OCTEON_P[] = {
Mips::P0, Mips::P1, Mips::P2,
};
// OCTEON_P Bit set.
const uint8_t OCTEON_PBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond Register Class...
const MCPhysReg GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond[] = {
Mips::A1_64, Mips::A2_64,
};
// GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond Bit set.
const uint8_t GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
};
// ACC64 Register Class...
const MCPhysReg ACC64[] = {
Mips::AC0,
};
// ACC64 Bit set.
const uint8_t ACC64Bits[] = {
0x00, 0x00, 0x00, 0x04,
};
// GP64 Register Class...
const MCPhysReg GP64[] = {
Mips::GP_64,
};
// GP64 Bit set.
const uint8_t GP64Bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// GPR64_with_sub_32_in_CPURAReg Register Class...
const MCPhysReg GPR64_with_sub_32_in_CPURAReg[] = {
Mips::RA_64,
};
// GPR64_with_sub_32_in_CPURAReg Bit set.
const uint8_t GPR64_with_sub_32_in_CPURARegBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// GPR64_with_sub_32_in_GPR32ZERO Register Class...
const MCPhysReg GPR64_with_sub_32_in_GPR32ZERO[] = {
Mips::ZERO_64,
};
// GPR64_with_sub_32_in_GPR32ZERO Bit set.
const uint8_t GPR64_with_sub_32_in_GPR32ZEROBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// HI64 Register Class...
const MCPhysReg HI64[] = {
Mips::HI0_64,
};
// HI64 Bit set.
const uint8_t HI64Bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// LO64 Register Class...
const MCPhysReg LO64[] = {
Mips::LO0_64,
};
// LO64 Bit set.
const uint8_t LO64Bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// SP64 Register Class...
const MCPhysReg SP64[] = {
Mips::SP_64,
};
// SP64 Bit set.
const uint8_t SP64Bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// MSA128B Register Class...
const MCPhysReg MSA128B[] = {
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,
};
// MSA128B Bit set.
const uint8_t MSA128BBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// MSA128D Register Class...
const MCPhysReg MSA128D[] = {
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,
};
// MSA128D Bit set.
const uint8_t MSA128DBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// MSA128H Register Class...
const MCPhysReg MSA128H[] = {
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,
};
// MSA128H Bit set.
const uint8_t MSA128HBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// MSA128W Register Class...
const MCPhysReg MSA128W[] = {
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,
};
// MSA128W Bit set.
const uint8_t MSA128WBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// MSA128WEvens Register Class...
const MCPhysReg MSA128WEvens[] = {
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,
};
// MSA128WEvens Bit set.
const uint8_t MSA128WEvensBits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
// ACC128 Register Class...
const MCPhysReg ACC128[] = {
Mips::AC0_64,
};
// ACC128 Bit set.
const uint8_t ACC128Bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
};
} // end anonymous namespace
extern const char MipsRegClassStrings[] = {
/* 0 */ 'C', 'O', 'P', '0', 0,
/* 5 */ 'H', 'I', '3', '2', 0,
/* 10 */ 'L', 'O', '3', '2', 0,
/* 15 */ 'G', 'P', '3', '2', 0,
/* 20 */ 'S', 'P', '3', '2', 0,
/* 25 */ 'F', 'G', 'R', '3', '2', 0,
/* 31 */ 'G', 'P', 'R', '3', '2', 0,
/* 37 */ 'C', 'O', 'P', '2', 0,
/* 42 */ 'C', 'O', 'P', '3', 0,
/* 47 */ 'A', 'C', 'C', '6', '4', 0,
/* 53 */ 'H', 'I', '6', '4', 0,
/* 58 */ 'L', 'O', '6', '4', 0,
/* 63 */ 'G', 'P', '6', '4', 0,
/* 68 */ 'S', 'P', '6', '4', 0,
/* 73 */ 'A', 'F', 'G', 'R', '6', '4', 0,
/* 80 */ 'G', 'P', 'R', '6', '4', 0,
/* 86 */ 'M', 'S', 'A', '1', '2', '8', 'F', '1', '6', 0,
/* 96 */ 'G', 'P', 'R', 'M', 'M', '1', '6', 0,
/* 104 */ 'A', 'C', 'C', '1', '2', '8', 0,
/* 111 */ 'M', 'S', 'A', '1', '2', '8', 'B', 0,
/* 119 */ 'F', 'C', 'C', 0,
/* 123 */ 'D', 'S', 'P', 'C', 'C', 0,
/* 129 */ 'F', 'G', 'R', 'C', 'C', 0,
/* 135 */ 'M', 'S', 'A', '1', '2', '8', 'D', 0,
/* 143 */ 'M', 'S', 'A', '1', '2', '8', 'H', 0,
/* 151 */ 'O', 'C', 'T', 'E', 'O', 'N', '_', 'M', 'P', 'L', 0,
/* 162 */ '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,
/* 193 */ '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,
/* 227 */ 'H', 'I', '3', '2', 'D', 'S', 'P', 0,
/* 235 */ 'L', 'O', '3', '2', 'D', 'S', 'P', 0,
/* 243 */ 'A', 'C', 'C', '6', '4', 'D', 'S', 'P', 0,
/* 252 */ '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,
/* 289 */ 'O', 'C', 'T', 'E', 'O', 'N', '_', 'P', 0,
/* 298 */ '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,
/* 349 */ '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,
/* 397 */ '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,
/* 431 */ 'C', 'C', 'R', 0,
/* 435 */ 'D', 'S', 'P', 'R', 0,
/* 440 */ 'M', 'S', 'A', '1', '2', '8', 'W', 0,
/* 448 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'C', 'P', 'U', '1', '6', 'R', 'e', 'g', 's', '_', 'a', 'n', 'd', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'M', 'o', 'v', 'e', 'P', 'P', 'a', 'i', 'r', 'S', 'e', 'c', 'o', 'n', 'd', 0,
/* 506 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'M', 'o', 'v', 'e', 'P', 'P', 'a', 'i', 'r', 'F', 'i', 'r', 's', 't', '_', 'a', 'n', 'd', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'M', 'o', 'v', 'e', 'P', 'P', 'a', 'i', 'r', 'S', 'e', 'c', 'o', 'n', 'd', 0,
/* 576 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'M', 'o', 'v', 'e', 'P', 'P', 'a', 'i', 'r', 'S', 'e', 'c', 'o', 'n', 'd', 0,
/* 620 */ '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,
/* 650 */ 'C', 'P', 'U', 'S', 'P', 'R', 'e', 'g', 0,
/* 659 */ 'M', 'S', 'A', 'C', 't', 'r', 'l', 0,
/* 667 */ '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,
/* 717 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'M', 'o', 'v', 'e', 'P', '_', 'a', 'n', 'd', '_', 'C', 'P', 'U', '1', '6', 'R', 'e', 'g', 's', '_', 'a', 'n', 'd', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'Z', 'e', 'r', 'o', 0,
/* 781 */ '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,
/* 828 */ '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,
/* 861 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'C', 'P', 'U', '1', '6', 'R', 'e', 'g', 's', 0,
/* 892 */ 'H', 'W', 'R', 'e', 'g', 's', 0,
/* 899 */ 'M', 'S', 'A', '1', '2', '8', 'W', 'E', 'v', 'e', 'n', 's', 0,
/* 912 */ 'G', 'P', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', 'M', 'M', '1', '6', 'M', 'o', 'v', 'e', 'P', 'P', 'a', 'i', 'r', 'F', 'i', 'r', 's', 't', 0,
0
};
extern const MCRegisterClass MipsMCRegisterClasses[] = {
{ MSA128F16, MSA128F16Bits, 86, 32, sizeof(MSA128F16Bits), Mips::MSA128F16RegClassID, 16, 1, true },
{ CCR, CCRBits, 431, 32, sizeof(CCRBits), Mips::CCRRegClassID, 32, 1, false },
{ COP0, COP0Bits, 0, 32, sizeof(COP0Bits), Mips::COP0RegClassID, 32, 1, false },
{ COP2, COP2Bits, 37, 32, sizeof(COP2Bits), Mips::COP2RegClassID, 32, 1, false },
{ COP3, COP3Bits, 42, 32, sizeof(COP3Bits), Mips::COP3RegClassID, 32, 1, false },
{ DSPR, DSPRBits, 435, 32, sizeof(DSPRBits), Mips::DSPRRegClassID, 32, 1, true },
{ FGR32, FGR32Bits, 25, 32, sizeof(FGR32Bits), Mips::FGR32RegClassID, 32, 1, true },
{ FGRCC, FGRCCBits, 129, 32, sizeof(FGRCCBits), Mips::FGRCCRegClassID, 32, 1, true },
{ GPR32, GPR32Bits, 31, 32, sizeof(GPR32Bits), Mips::GPR32RegClassID, 32, 1, true },
{ HWRegs, HWRegsBits, 892, 32, sizeof(HWRegsBits), Mips::HWRegsRegClassID, 32, 1, false },
{ MSACtrl, MSACtrlBits, 659, 32, sizeof(MSACtrlBits), Mips::MSACtrlRegClassID, 32, 1, false },
{ GPR32NONZERO, GPR32NONZEROBits, 214, 31, sizeof(GPR32NONZEROBits), Mips::GPR32NONZERORegClassID, 32, 1, true },
{ CPU16RegsPlusSP, CPU16RegsPlusSPBits, 273, 9, sizeof(CPU16RegsPlusSPBits), Mips::CPU16RegsPlusSPRegClassID, 32, 1, true },
{ CPU16Regs, CPU16RegsBits, 882, 8, sizeof(CPU16RegsBits), Mips::CPU16RegsRegClassID, 32, 1, true },
{ FCC, FCCBits, 119, 8, sizeof(FCCBits), Mips::FCCRegClassID, 32, 1, false },
{ GPRMM16, GPRMM16Bits, 96, 8, sizeof(GPRMM16Bits), Mips::GPRMM16RegClassID, 32, 1, true },
{ GPRMM16MoveP, GPRMM16MovePBits, 336, 8, sizeof(GPRMM16MovePBits), Mips::GPRMM16MovePRegClassID, 32, 1, true },
{ GPRMM16Zero, GPRMM16ZeroBits, 705, 8, sizeof(GPRMM16ZeroBits), Mips::GPRMM16ZeroRegClassID, 32, 1, true },
{ CPU16Regs_and_GPRMM16Zero, CPU16Regs_and_GPRMM16ZeroBits, 755, 7, sizeof(CPU16Regs_and_GPRMM16ZeroBits), Mips::CPU16Regs_and_GPRMM16ZeroRegClassID, 32, 1, true },
{ GPR32NONZERO_and_GPRMM16MoveP, GPR32NONZERO_and_GPRMM16MovePBits, 319, 7, sizeof(GPR32NONZERO_and_GPRMM16MovePBits), Mips::GPR32NONZERO_and_GPRMM16MovePRegClassID, 32, 1, true },
{ GPRMM16MovePPairSecond, GPRMM16MovePPairSecondBits, 483, 5, sizeof(GPRMM16MovePPairSecondBits), Mips::GPRMM16MovePPairSecondRegClassID, 32, 1, true },
{ CPU16Regs_and_GPRMM16MoveP, CPU16Regs_and_GPRMM16MovePBits, 370, 4, sizeof(CPU16Regs_and_GPRMM16MovePBits), Mips::CPU16Regs_and_GPRMM16MovePRegClassID, 32, 1, true },
{ GPRMM16MoveP_and_GPRMM16Zero, GPRMM16MoveP_and_GPRMM16ZeroBits, 688, 4, sizeof(GPRMM16MoveP_and_GPRMM16ZeroBits), Mips::GPRMM16MoveP_and_GPRMM16ZeroRegClassID, 32, 1, true },
{ HI32DSP, HI32DSPBits, 227, 4, sizeof(HI32DSPBits), Mips::HI32DSPRegClassID, 32, 1, true },
{ LO32DSP, LO32DSPBits, 235, 4, sizeof(LO32DSPBits), Mips::LO32DSPRegClassID, 32, 1, true },
{ CPU16Regs_and_GPRMM16MovePPairSecond, CPU16Regs_and_GPRMM16MovePPairSecondBits, 469, 3, sizeof(CPU16Regs_and_GPRMM16MovePPairSecondBits), Mips::CPU16Regs_and_GPRMM16MovePPairSecondRegClassID, 32, 1, true },
{ GPRMM16MovePPairFirst, GPRMM16MovePPairFirstBits, 933, 3, sizeof(GPRMM16MovePPairFirstBits), Mips::GPRMM16MovePPairFirstRegClassID, 32, 1, true },
{ GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero, GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroBits, 738, 3, sizeof(GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroBits), Mips::GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClassID, 32, 1, true },
{ GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond, GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondBits, 527, 2, sizeof(GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondBits), Mips::GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClassID, 32, 1, true },
{ CPURAReg, CPURARegBits, 641, 1, sizeof(CPURARegBits), Mips::CPURARegRegClassID, 32, 1, false },
{ CPUSPReg, CPUSPRegBits, 650, 1, sizeof(CPUSPRegBits), Mips::CPUSPRegRegClassID, 32, 1, false },
{ DSPCC, DSPCCBits, 123, 1, sizeof(DSPCCBits), Mips::DSPCCRegClassID, 32, 1, true },
{ GP32, GP32Bits, 15, 1, sizeof(GP32Bits), Mips::GP32RegClassID, 32, 1, false },
{ GPR32ZERO, GPR32ZEROBits, 183, 1, sizeof(GPR32ZEROBits), Mips::GPR32ZERORegClassID, 32, 1, true },
{ HI32, HI32Bits, 5, 1, sizeof(HI32Bits), Mips::HI32RegClassID, 32, 1, true },
{ LO32, LO32Bits, 10, 1, sizeof(LO32Bits), Mips::LO32RegClassID, 32, 1, true },
{ SP32, SP32Bits, 20, 1, sizeof(SP32Bits), Mips::SP32RegClassID, 32, 1, false },
{ FGR64, FGR64Bits, 74, 32, sizeof(FGR64Bits), Mips::FGR64RegClassID, 64, 1, true },
{ GPR64, GPR64Bits, 80, 32, sizeof(GPR64Bits), Mips::GPR64RegClassID, 64, 1, true },
{ GPR64_with_sub_32_in_GPR32NONZERO, GPR64_with_sub_32_in_GPR32NONZEROBits, 193, 31, sizeof(GPR64_with_sub_32_in_GPR32NONZEROBits), Mips::GPR64_with_sub_32_in_GPR32NONZERORegClassID, 64, 1, true },
{ AFGR64, AFGR64Bits, 73, 16, sizeof(AFGR64Bits), Mips::AFGR64RegClassID, 64, 1, true },
{ GPR64_with_sub_32_in_CPU16RegsPlusSP, GPR64_with_sub_32_in_CPU16RegsPlusSPBits, 252, 9, sizeof(GPR64_with_sub_32_in_CPU16RegsPlusSPBits), Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClassID, 64, 1, true },
{ GPR64_with_sub_32_in_CPU16Regs, GPR64_with_sub_32_in_CPU16RegsBits, 861, 8, sizeof(GPR64_with_sub_32_in_CPU16RegsBits), Mips::GPR64_with_sub_32_in_CPU16RegsRegClassID, 64, 1, true },
{ GPR64_with_sub_32_in_GPRMM16MoveP, GPR64_with_sub_32_in_GPRMM16MovePBits, 397, 8, sizeof(GPR64_with_sub_32_in_GPRMM16MovePBits), Mips::GPR64_with_sub_32_in_GPRMM16MovePRegClassID, 64, 1, true },
{ GPR64_with_sub_32_in_GPRMM16Zero, GPR64_with_sub_32_in_GPRMM16ZeroBits, 828, 8, sizeof(GPR64_with_sub_32_in_GPRMM16ZeroBits), Mips::GPR64_with_sub_32_in_GPRMM16ZeroRegClassID, 64, 1, true },
{ GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero, GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroBits, 781, 7, sizeof(GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroBits), Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClassID, 64, 1, true },
{ GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP, GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePBits, 298, 7, sizeof(GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePBits), Mips::GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePRegClassID, 64, 1, true },
{ GPR64_with_sub_32_in_GPRMM16MovePPairSecond, GPR64_with_sub_32_in_GPRMM16MovePPairSecondBits, 576, 5, sizeof(GPR64_with_sub_32_in_GPRMM16MovePPairSecondBits), Mips::GPR64_with_sub_32_in_GPRMM16MovePPairSecondRegClassID, 64, 1, true },
{ ACC64DSP, ACC64DSPBits, 243, 4, sizeof(ACC64DSPBits), Mips::ACC64DSPRegClassID, 64, 1, true },
{ GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP, GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePBits, 349, 4, sizeof(GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePBits), Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePRegClassID, 64, 1, true },
{ GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero, GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroBits, 667, 4, sizeof(GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroBits), Mips::GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroRegClassID, 64, 1, true },
{ GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond, GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondBits, 448, 3, sizeof(GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondBits), Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondRegClassID, 64, 1, true },
{ GPR64_with_sub_32_in_GPRMM16MovePPairFirst, GPR64_with_sub_32_in_GPRMM16MovePPairFirstBits, 912, 3, sizeof(GPR64_with_sub_32_in_GPRMM16MovePPairFirstBits), Mips::GPR64_with_sub_32_in_GPRMM16MovePPairFirstRegClassID, 64, 1, true },
{ GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero, GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroBits, 717, 3, sizeof(GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroBits), Mips::GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClassID, 64, 1, true },
{ OCTEON_MPL, OCTEON_MPLBits, 151, 3, sizeof(OCTEON_MPLBits), Mips::OCTEON_MPLRegClassID, 64, 1, false },
{ OCTEON_P, OCTEON_PBits, 289, 3, sizeof(OCTEON_PBits), Mips::OCTEON_PRegClassID, 64, 1, false },
{ GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond, GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondBits, 506, 2, sizeof(GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondBits), Mips::GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClassID, 64, 1, true },
{ ACC64, ACC64Bits, 47, 1, sizeof(ACC64Bits), Mips::ACC64RegClassID, 64, 1, true },
{ GP64, GP64Bits, 63, 1, sizeof(GP64Bits), Mips::GP64RegClassID, 64, 1, false },
{ GPR64_with_sub_32_in_CPURAReg, GPR64_with_sub_32_in_CPURARegBits, 620, 1, sizeof(GPR64_with_sub_32_in_CPURARegBits), Mips::GPR64_with_sub_32_in_CPURARegRegClassID, 64, 1, true },
{ GPR64_with_sub_32_in_GPR32ZERO, GPR64_with_sub_32_in_GPR32ZEROBits, 162, 1, sizeof(GPR64_with_sub_32_in_GPR32ZEROBits), Mips::GPR64_with_sub_32_in_GPR32ZERORegClassID, 64, 1, true },
{ HI64, HI64Bits, 53, 1, sizeof(HI64Bits), Mips::HI64RegClassID, 64, 1, true },
{ LO64, LO64Bits, 58, 1, sizeof(LO64Bits), Mips::LO64RegClassID, 64, 1, true },
{ SP64, SP64Bits, 68, 1, sizeof(SP64Bits), Mips::SP64RegClassID, 64, 1, false },
{ MSA128B, MSA128BBits, 111, 32, sizeof(MSA128BBits), Mips::MSA128BRegClassID, 128, 1, true },
{ MSA128D, MSA128DBits, 135, 32, sizeof(MSA128DBits), Mips::MSA128DRegClassID, 128, 1, true },
{ MSA128H, MSA128HBits, 143, 32, sizeof(MSA128HBits), Mips::MSA128HRegClassID, 128, 1, true },
{ MSA128W, MSA128WBits, 440, 32, sizeof(MSA128WBits), Mips::MSA128WRegClassID, 128, 1, true },
{ MSA128WEvens, MSA128WEvensBits, 899, 16, sizeof(MSA128WEvensBits), Mips::MSA128WEvensRegClassID, 128, 1, true },
{ ACC128, ACC128Bits, 104, 1, sizeof(ACC128Bits), Mips::ACC128RegClassID, 128, 1, true },
};
// Mips Dwarf<->LLVM register mappings.
extern const MCRegisterInfo::DwarfLLVMRegPair MipsDwarfFlavour0Dwarf2L[] = {
{ 0U, Mips::ZERO_64 },
{ 1U, Mips::AT_64 },
{ 2U, Mips::V0_64 },
{ 3U, Mips::V1_64 },
{ 4U, Mips::A0_64 },
{ 5U, Mips::A1_64 },
{ 6U, Mips::A2_64 },
{ 7U, Mips::A3_64 },
{ 8U, Mips::T0_64 },
{ 9U, Mips::T1_64 },
{ 10U, Mips::T2_64 },
{ 11U, Mips::T3_64 },
{ 12U, Mips::T4_64 },
{ 13U, Mips::T5_64 },
{ 14U, Mips::T6_64 },
{ 15U, Mips::T7_64 },
{ 16U, Mips::S0_64 },
{ 17U, Mips::S1_64 },
{ 18U, Mips::S2_64 },
{ 19U, Mips::S3_64 },
{ 20U, Mips::S4_64 },
{ 21U, Mips::S5_64 },
{ 22U, Mips::S6_64 },
{ 23U, Mips::S7_64 },
{ 24U, Mips::T8_64 },
{ 25U, Mips::T9_64 },
{ 26U, Mips::K0_64 },
{ 27U, Mips::K1_64 },
{ 28U, Mips::GP_64 },
{ 29U, Mips::SP_64 },
{ 30U, Mips::FP_64 },
{ 31U, Mips::RA_64 },
{ 32U, Mips::D0_64 },
{ 33U, Mips::D1_64 },
{ 34U, Mips::D2_64 },
{ 35U, Mips::D3_64 },
{ 36U, Mips::D4_64 },
{ 37U, Mips::D5_64 },
{ 38U, Mips::D6_64 },
{ 39U, Mips::D7_64 },
{ 40U, Mips::D8_64 },
{ 41U, Mips::D9_64 },
{ 42U, Mips::D10_64 },
{ 43U, Mips::D11_64 },
{ 44U, Mips::D12_64 },
{ 45U, Mips::D13_64 },
{ 46U, Mips::D14_64 },
{ 47U, Mips::D15_64 },
{ 48U, Mips::D16_64 },
{ 49U, Mips::D17_64 },
{ 50U, Mips::D18_64 },
{ 51U, Mips::D19_64 },
{ 52U, Mips::D20_64 },
{ 53U, Mips::D21_64 },
{ 54U, Mips::D22_64 },
{ 55U, Mips::D23_64 },
{ 56U, Mips::D24_64 },
{ 57U, Mips::D25_64 },
{ 58U, Mips::D26_64 },
{ 59U, Mips::D27_64 },
{ 60U, Mips::D28_64 },
{ 61U, Mips::D29_64 },
{ 62U, Mips::D30_64 },
{ 63U, Mips::D31_64 },
{ 64U, Mips::HI0 },
{ 65U, Mips::LO0 },
{ 176U, Mips::HI1 },
{ 177U, Mips::LO1 },
{ 178U, Mips::HI2 },
{ 179U, Mips::LO2 },
{ 180U, Mips::HI3 },
{ 181U, Mips::LO3 },
};
extern const unsigned MipsDwarfFlavour0Dwarf2LSize = std::size(MipsDwarfFlavour0Dwarf2L);
extern const MCRegisterInfo::DwarfLLVMRegPair MipsEHFlavour0Dwarf2L[] = {
{ 0U, Mips::ZERO_64 },
{ 1U, Mips::AT_64 },
{ 2U, Mips::V0_64 },
{ 3U, Mips::V1_64 },
{ 4U, Mips::A0_64 },
{ 5U, Mips::A1_64 },
{ 6U, Mips::A2_64 },
{ 7U, Mips::A3_64 },
{ 8U, Mips::T0_64 },
{ 9U, Mips::T1_64 },
{ 10U, Mips::T2_64 },
{ 11U, Mips::T3_64 },
{ 12U, Mips::T4_64 },
{ 13U, Mips::T5_64 },
{ 14U, Mips::T6_64 },
{ 15U, Mips::T7_64 },
{ 16U, Mips::S0_64 },
{ 17U, Mips::S1_64 },
{ 18U, Mips::S2_64 },
{ 19U, Mips::S3_64 },
{ 20U, Mips::S4_64 },
{ 21U, Mips::S5_64 },
{ 22U, Mips::S6_64 },
{ 23U, Mips::S7_64 },
{ 24U, Mips::T8_64 },
{ 25U, Mips::T9_64 },
{ 26U, Mips::K0_64 },
{ 27U, Mips::K1_64 },
{ 28U, Mips::GP_64 },
{ 29U, Mips::SP_64 },
{ 30U, Mips::FP_64 },
{ 31U, Mips::RA_64 },
{ 32U, Mips::D0_64 },
{ 33U, Mips::D1_64 },
{ 34U, Mips::D2_64 },
{ 35U, Mips::D3_64 },
{ 36U, Mips::D4_64 },
{ 37U, Mips::D5_64 },
{ 38U, Mips::D6_64 },
{ 39U, Mips::D7_64 },
{ 40U, Mips::D8_64 },
{ 41U, Mips::D9_64 },
{ 42U, Mips::D10_64 },
{ 43U, Mips::D11_64 },
{ 44U, Mips::D12_64 },
{ 45U, Mips::D13_64 },
{ 46U, Mips::D14_64 },
{ 47U, Mips::D15_64 },
{ 48U, Mips::D16_64 },
{ 49U, Mips::D17_64 },
{ 50U, Mips::D18_64 },
{ 51U, Mips::D19_64 },
{ 52U, Mips::D20_64 },
{ 53U, Mips::D21_64 },
{ 54U, Mips::D22_64 },
{ 55U, Mips::D23_64 },
{ 56U, Mips::D24_64 },
{ 57U, Mips::D25_64 },
{ 58U, Mips::D26_64 },
{ 59U, Mips::D27_64 },
{ 60U, Mips::D28_64 },
{ 61U, Mips::D29_64 },
{ 62U, Mips::D30_64 },
{ 63U, Mips::D31_64 },
{ 64U, Mips::HI0 },
{ 65U, Mips::LO0 },
{ 176U, Mips::HI1 },
{ 177U, Mips::LO1 },
{ 178U, Mips::HI2 },
{ 179U, Mips::LO2 },
{ 180U, Mips::HI3 },
{ 181U, Mips::LO3 },
};
extern const unsigned MipsEHFlavour0Dwarf2LSize = std::size(MipsEHFlavour0Dwarf2L);
extern const MCRegisterInfo::DwarfLLVMRegPair MipsDwarfFlavour0L2Dwarf[] = {
{ Mips::AT, 1U },
{ Mips::FP, 30U },
{ Mips::GP, 28U },
{ Mips::RA, 31U },
{ Mips::SP, 29U },
{ Mips::ZERO, 0U },
{ Mips::A0, 4U },
{ Mips::A1, 5U },
{ Mips::A2, 6U },
{ Mips::A3, 7U },
{ Mips::AT_64, 1U },
{ Mips::F0, 32U },
{ Mips::F1, 33U },
{ Mips::F2, 34U },
{ Mips::F3, 35U },
{ Mips::F4, 36U },
{ Mips::F5, 37U },
{ Mips::F6, 38U },
{ Mips::F7, 39U },
{ Mips::F8, 40U },
{ Mips::F9, 41U },
{ Mips::F10, 42U },
{ Mips::F11, 43U },
{ Mips::F12, 44U },
{ Mips::F13, 45U },
{ Mips::F14, 46U },
{ Mips::F15, 47U },
{ Mips::F16, 48U },
{ Mips::F17, 49U },
{ Mips::F18, 50U },
{ Mips::F19, 51U },
{ Mips::F20, 52U },
{ Mips::F21, 53U },
{ Mips::F22, 54U },
{ Mips::F23, 55U },
{ Mips::F24, 56U },
{ Mips::F25, 57U },
{ Mips::F26, 58U },
{ Mips::F27, 59U },
{ Mips::F28, 60U },
{ Mips::F29, 61U },
{ Mips::F30, 62U },
{ Mips::F31, 63U },
{ Mips::FP_64, 30U },
{ Mips::F_HI0, 32U },
{ Mips::F_HI1, 33U },
{ Mips::F_HI2, 34U },
{ Mips::F_HI3, 35U },
{ Mips::F_HI4, 36U },
{ Mips::F_HI5, 37U },
{ Mips::F_HI6, 38U },
{ Mips::F_HI7, 39U },
{ Mips::F_HI8, 40U },
{ Mips::F_HI9, 41U },
{ Mips::F_HI10, 42U },
{ Mips::F_HI11, 43U },
{ Mips::F_HI12, 44U },
{ Mips::F_HI13, 45U },
{ Mips::F_HI14, 46U },
{ Mips::F_HI15, 47U },
{ Mips::F_HI16, 48U },
{ Mips::F_HI17, 49U },
{ Mips::F_HI18, 50U },
{ Mips::F_HI19, 51U },
{ Mips::F_HI20, 52U },
{ Mips::F_HI21, 53U },
{ Mips::F_HI22, 54U },
{ Mips::F_HI23, 55U },
{ Mips::F_HI24, 56U },
{ Mips::F_HI25, 57U },
{ Mips::F_HI26, 58U },
{ Mips::F_HI27, 59U },
{ Mips::F_HI28, 60U },
{ Mips::F_HI29, 61U },
{ Mips::F_HI30, 62U },
{ Mips::F_HI31, 63U },
{ Mips::GP_64, 28U },
{ Mips::HI0, 64U },
{ Mips::HI1, 176U },
{ Mips::HI2, 178U },
{ Mips::HI3, 180U },
{ Mips::K0, 26U },
{ Mips::K1, 27U },
{ Mips::LO0, 65U },
{ Mips::LO1, 177U },
{ Mips::LO2, 179U },
{ Mips::LO3, 181U },
{ Mips::RA_64, 31U },
{ Mips::S0, 16U },
{ Mips::S1, 17U },
{ Mips::S2, 18U },
{ Mips::S3, 19U },
{ Mips::S4, 20U },
{ Mips::S5, 21U },
{ Mips::S6, 22U },
{ Mips::S7, 23U },
{ Mips::SP_64, 29U },
{ Mips::T0, 8U },
{ Mips::T1, 9U },
{ Mips::T2, 10U },
{ Mips::T3, 11U },
{ Mips::T4, 12U },
{ Mips::T5, 13U },
{ Mips::T6, 14U },
{ Mips::T7, 15U },
{ Mips::T8, 24U },
{ Mips::T9, 25U },
{ Mips::V0, 2U },
{ Mips::V1, 3U },
{ Mips::W0, 32U },
{ Mips::W1, 33U },
{ Mips::W2, 34U },
{ Mips::W3, 35U },
{ Mips::W4, 36U },
{ Mips::W5, 37U },
{ Mips::W6, 38U },
{ Mips::W7, 39U },
{ Mips::W8, 40U },
{ Mips::W9, 41U },
{ Mips::W10, 42U },
{ Mips::W11, 43U },
{ Mips::W12, 44U },
{ Mips::W13, 45U },
{ Mips::W14, 46U },
{ Mips::W15, 47U },
{ Mips::W16, 48U },
{ Mips::W17, 49U },
{ Mips::W18, 50U },
{ Mips::W19, 51U },
{ Mips::W20, 52U },
{ Mips::W21, 53U },
{ Mips::W22, 54U },
{ Mips::W23, 55U },
{ Mips::W24, 56U },
{ Mips::W25, 57U },
{ Mips::W26, 58U },
{ Mips::W27, 59U },
{ Mips::W28, 60U },
{ Mips::W29, 61U },
{ Mips::W30, 62U },
{ Mips::W31, 63U },
{ Mips::ZERO_64, 0U },
{ Mips::A0_64, 4U },
{ Mips::A1_64, 5U },
{ Mips::A2_64, 6U },
{ Mips::A3_64, 7U },
{ Mips::D0_64, 32U },
{ Mips::D1_64, 33U },
{ Mips::D2_64, 34U },
{ Mips::D3_64, 35U },
{ Mips::D4_64, 36U },
{ Mips::D5_64, 37U },
{ Mips::D6_64, 38U },
{ Mips::D7_64, 39U },
{ Mips::D8_64, 40U },
{ Mips::D9_64, 41U },
{ Mips::D10_64, 42U },
{ Mips::D11_64, 43U },
{ Mips::D12_64, 44U },
{ Mips::D13_64, 45U },
{ Mips::D14_64, 46U },
{ Mips::D15_64, 47U },
{ Mips::D16_64, 48U },
{ Mips::D17_64, 49U },
{ Mips::D18_64, 50U },
{ Mips::D19_64, 51U },
{ Mips::D20_64, 52U },
{ Mips::D21_64, 53U },
{ Mips::D22_64, 54U },
{ Mips::D23_64, 55U },
{ Mips::D24_64, 56U },
{ Mips::D25_64, 57U },
{ Mips::D26_64, 58U },
{ Mips::D27_64, 59U },
{ Mips::D28_64, 60U },
{ Mips::D29_64, 61U },
{ Mips::D30_64, 62U },
{ Mips::D31_64, 63U },
{ Mips::K0_64, 26U },
{ Mips::K1_64, 27U },
{ Mips::S0_64, 16U },
{ Mips::S1_64, 17U },
{ Mips::S2_64, 18U },
{ Mips::S3_64, 19U },
{ Mips::S4_64, 20U },
{ Mips::S5_64, 21U },
{ Mips::S6_64, 22U },
{ Mips::S7_64, 23U },
{ Mips::T0_64, 8U },
{ Mips::T1_64, 9U },
{ Mips::T2_64, 10U },
{ Mips::T3_64, 11U },
{ Mips::T4_64, 12U },
{ Mips::T5_64, 13U },
{ Mips::T6_64, 14U },
{ Mips::T7_64, 15U },
{ Mips::T8_64, 24U },
{ Mips::T9_64, 25U },
{ Mips::V0_64, 2U },
{ Mips::V1_64, 3U },
};
extern const unsigned MipsDwarfFlavour0L2DwarfSize = std::size(MipsDwarfFlavour0L2Dwarf);
extern const MCRegisterInfo::DwarfLLVMRegPair MipsEHFlavour0L2Dwarf[] = {
{ Mips::AT, 1U },
{ Mips::FP, 30U },
{ Mips::GP, 28U },
{ Mips::RA, 31U },
{ Mips::SP, 29U },
{ Mips::ZERO, 0U },
{ Mips::A0, 4U },
{ Mips::A1, 5U },
{ Mips::A2, 6U },
{ Mips::A3, 7U },
{ Mips::AT_64, 1U },
{ Mips::F0, 32U },
{ Mips::F1, 33U },
{ Mips::F2, 34U },
{ Mips::F3, 35U },
{ Mips::F4, 36U },
{ Mips::F5, 37U },
{ Mips::F6, 38U },
{ Mips::F7, 39U },
{ Mips::F8, 40U },
{ Mips::F9, 41U },
{ Mips::F10, 42U },
{ Mips::F11, 43U },
{ Mips::F12, 44U },
{ Mips::F13, 45U },
{ Mips::F14, 46U },
{ Mips::F15, 47U },
{ Mips::F16, 48U },
{ Mips::F17, 49U },
{ Mips::F18, 50U },
{ Mips::F19, 51U },
{ Mips::F20, 52U },
{ Mips::F21, 53U },
{ Mips::F22, 54U },
{ Mips::F23, 55U },
{ Mips::F24, 56U },
{ Mips::F25, 57U },
{ Mips::F26, 58U },
{ Mips::F27, 59U },
{ Mips::F28, 60U },
{ Mips::F29, 61U },
{ Mips::F30, 62U },
{ Mips::F31, 63U },
{ Mips::FP_64, 30U },
{ Mips::F_HI0, 32U },
{ Mips::F_HI1, 33U },
{ Mips::F_HI2, 34U },
{ Mips::F_HI3, 35U },
{ Mips::F_HI4, 36U },
{ Mips::F_HI5, 37U },
{ Mips::F_HI6, 38U },
{ Mips::F_HI7, 39U },
{ Mips::F_HI8, 40U },
{ Mips::F_HI9, 41U },
{ Mips::F_HI10, 42U },
{ Mips::F_HI11, 43U },
{ Mips::F_HI12, 44U },
{ Mips::F_HI13, 45U },
{ Mips::F_HI14, 46U },
{ Mips::F_HI15, 47U },
{ Mips::F_HI16, 48U },
{ Mips::F_HI17, 49U },
{ Mips::F_HI18, 50U },
{ Mips::F_HI19, 51U },
{ Mips::F_HI20, 52U },
{ Mips::F_HI21, 53U },
{ Mips::F_HI22, 54U },
{ Mips::F_HI23, 55U },
{ Mips::F_HI24, 56U },
{ Mips::F_HI25, 57U },
{ Mips::F_HI26, 58U },
{ Mips::F_HI27, 59U },
{ Mips::F_HI28, 60U },
{ Mips::F_HI29, 61U },
{ Mips::F_HI30, 62U },
{ Mips::F_HI31, 63U },
{ Mips::GP_64, 28U },
{ Mips::HI0, 64U },
{ Mips::HI1, 176U },
{ Mips::HI2, 178U },
{ Mips::HI3, 180U },
{ Mips::K0, 26U },
{ Mips::K1, 27U },
{ Mips::LO0, 65U },
{ Mips::LO1, 177U },
{ Mips::LO2, 179U },
{ Mips::LO3, 181U },
{ Mips::RA_64, 31U },
{ Mips::S0, 16U },
{ Mips::S1, 17U },
{ Mips::S2, 18U },
{ Mips::S3, 19U },
{ Mips::S4, 20U },
{ Mips::S5, 21U },
{ Mips::S6, 22U },
{ Mips::S7, 23U },
{ Mips::SP_64, 29U },
{ Mips::T0, 8U },
{ Mips::T1, 9U },
{ Mips::T2, 10U },
{ Mips::T3, 11U },
{ Mips::T4, 12U },
{ Mips::T5, 13U },
{ Mips::T6, 14U },
{ Mips::T7, 15U },
{ Mips::T8, 24U },
{ Mips::T9, 25U },
{ Mips::V0, 2U },
{ Mips::V1, 3U },
{ Mips::W0, 32U },
{ Mips::W1, 33U },
{ Mips::W2, 34U },
{ Mips::W3, 35U },
{ Mips::W4, 36U },
{ Mips::W5, 37U },
{ Mips::W6, 38U },
{ Mips::W7, 39U },
{ Mips::W8, 40U },
{ Mips::W9, 41U },
{ Mips::W10, 42U },
{ Mips::W11, 43U },
{ Mips::W12, 44U },
{ Mips::W13, 45U },
{ Mips::W14, 46U },
{ Mips::W15, 47U },
{ Mips::W16, 48U },
{ Mips::W17, 49U },
{ Mips::W18, 50U },
{ Mips::W19, 51U },
{ Mips::W20, 52U },
{ Mips::W21, 53U },
{ Mips::W22, 54U },
{ Mips::W23, 55U },
{ Mips::W24, 56U },
{ Mips::W25, 57U },
{ Mips::W26, 58U },
{ Mips::W27, 59U },
{ Mips::W28, 60U },
{ Mips::W29, 61U },
{ Mips::W30, 62U },
{ Mips::W31, 63U },
{ Mips::ZERO_64, 0U },
{ Mips::A0_64, 4U },
{ Mips::A1_64, 5U },
{ Mips::A2_64, 6U },
{ Mips::A3_64, 7U },
{ Mips::D0_64, 32U },
{ Mips::D1_64, 33U },
{ Mips::D2_64, 34U },
{ Mips::D3_64, 35U },
{ Mips::D4_64, 36U },
{ Mips::D5_64, 37U },
{ Mips::D6_64, 38U },
{ Mips::D7_64, 39U },
{ Mips::D8_64, 40U },
{ Mips::D9_64, 41U },
{ Mips::D10_64, 42U },
{ Mips::D11_64, 43U },
{ Mips::D12_64, 44U },
{ Mips::D13_64, 45U },
{ Mips::D14_64, 46U },
{ Mips::D15_64, 47U },
{ Mips::D16_64, 48U },
{ Mips::D17_64, 49U },
{ Mips::D18_64, 50U },
{ Mips::D19_64, 51U },
{ Mips::D20_64, 52U },
{ Mips::D21_64, 53U },
{ Mips::D22_64, 54U },
{ Mips::D23_64, 55U },
{ Mips::D24_64, 56U },
{ Mips::D25_64, 57U },
{ Mips::D26_64, 58U },
{ Mips::D27_64, 59U },
{ Mips::D28_64, 60U },
{ Mips::D29_64, 61U },
{ Mips::D30_64, 62U },
{ Mips::D31_64, 63U },
{ Mips::K0_64, 26U },
{ Mips::K1_64, 27U },
{ Mips::S0_64, 16U },
{ Mips::S1_64, 17U },
{ Mips::S2_64, 18U },
{ Mips::S3_64, 19U },
{ Mips::S4_64, 20U },
{ Mips::S5_64, 21U },
{ Mips::S6_64, 22U },
{ Mips::S7_64, 23U },
{ Mips::T0_64, 8U },
{ Mips::T1_64, 9U },
{ Mips::T2_64, 10U },
{ Mips::T3_64, 11U },
{ Mips::T4_64, 12U },
{ Mips::T5_64, 13U },
{ Mips::T6_64, 14U },
{ Mips::T7_64, 15U },
{ Mips::T8_64, 24U },
{ Mips::T9_64, 25U },
{ Mips::V0_64, 2U },
{ Mips::V1_64, 3U },
};
extern const unsigned MipsEHFlavour0L2DwarfSize = std::size(MipsEHFlavour0L2Dwarf);
extern const uint16_t MipsRegEncodingTable[] = {
0,
1,
0,
0,
0,
0,
0,
0,
30,
28,
2,
1,
0,
6,
4,
5,
3,
7,
0,
31,
29,
0,
4,
5,
6,
7,
0,
1,
2,
3,
1,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
0,
2,
4,
6,
8,
10,
12,
14,
16,
18,
20,
22,
24,
26,
28,
30,
0,
0,
0,
0,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
0,
1,
2,
3,
4,
5,
6,
7,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
30,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
28,
0,
1,
2,
3,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
26,
27,
0,
1,
2,
3,
0,
1,
2,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
0,
1,
2,
31,
16,
17,
18,
19,
20,
21,
22,
23,
29,
8,
9,
10,
11,
12,
13,
14,
15,
24,
25,
2,
3,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
0,
4,
5,
6,
7,
0,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
0,
0,
26,
27,
0,
16,
17,
18,
19,
20,
21,
22,
23,
8,
9,
10,
11,
12,
13,
14,
15,
24,
25,
2,
3,
};
static inline void InitMipsMCRegisterInfo(MCRegisterInfo *RI, unsigned RA, unsigned DwarfFlavour = 0, unsigned EHFlavour = 0, unsigned PC = 0) {
RI->InitMCRegisterInfo(MipsRegDesc, 442, RA, PC, MipsMCRegisterClasses, 70, MipsRegUnitRoots, 321, MipsRegDiffLists, MipsLaneMaskLists, MipsRegStrings, MipsRegClassStrings, MipsSubRegIdxLists, 12,
MipsSubRegIdxRanges, MipsRegEncodingTable);
switch (DwarfFlavour) {
default:
llvm_unreachable("Unknown DWARF flavour");
case 0:
RI->mapDwarfRegsToLLVMRegs(MipsDwarfFlavour0Dwarf2L, MipsDwarfFlavour0Dwarf2LSize, false);
break;
}
switch (EHFlavour) {
default:
llvm_unreachable("Unknown DWARF flavour");
case 0:
RI->mapDwarfRegsToLLVMRegs(MipsEHFlavour0Dwarf2L, MipsEHFlavour0Dwarf2LSize, true);
break;
}
switch (DwarfFlavour) {
default:
llvm_unreachable("Unknown DWARF flavour");
case 0:
RI->mapLLVMRegsToDwarfRegs(MipsDwarfFlavour0L2Dwarf, MipsDwarfFlavour0L2DwarfSize, false);
break;
}
switch (EHFlavour) {
default:
llvm_unreachable("Unknown DWARF flavour");
case 0:
RI->mapLLVMRegsToDwarfRegs(MipsEHFlavour0L2Dwarf, MipsEHFlavour0L2DwarfSize, true);
break;
}
}
} // end namespace llvm
#endif // GET_REGINFO_MC_DESC
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|* *|
|* Register Information Header Fragment *|
|* *|
|* Automatically generated file, do not edit! *|
|* *|
\*===----------------------------------------------------------------------===*/
#ifdef GET_REGINFO_HEADER
#undef GET_REGINFO_HEADER
#include "llvm/CodeGen/TargetRegisterInfo.h"
namespace llvm {
class MipsFrameLowering;
struct MipsGenRegisterInfo : public TargetRegisterInfo {
explicit MipsGenRegisterInfo(unsigned RA, unsigned D = 0, unsigned E = 0,
unsigned PC = 0, unsigned HwMode = 0);
unsigned composeSubRegIndicesImpl(unsigned, unsigned) const override;
LaneBitmask composeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override;
LaneBitmask reverseComposeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override;
const TargetRegisterClass *getSubClassWithSubReg(const TargetRegisterClass *, unsigned) const override;
const TargetRegisterClass *getSubRegisterClass(const TargetRegisterClass *, unsigned) const override;
const RegClassWeight &getRegClassWeight(const TargetRegisterClass *RC) const override;
unsigned getRegUnitWeight(unsigned RegUnit) const override;
unsigned getNumRegPressureSets() const override;
const char *getRegPressureSetName(unsigned Idx) const override;
unsigned getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const override;
const int *getRegClassPressureSets(const TargetRegisterClass *RC) const override;
const int *getRegUnitPressureSets(unsigned RegUnit) const override;
ArrayRef<const char *> getRegMaskNames() const override;
ArrayRef<const uint32_t *> getRegMasks() const override;
bool isGeneralPurposeRegister(const MachineFunction &, MCRegister) const override;
bool isFixedRegister(const MachineFunction &, MCRegister) const override;
bool isArgumentRegister(const MachineFunction &, MCRegister) const override;
bool isConstantPhysReg(MCRegister PhysReg) const override final;
/// Devirtualized TargetFrameLowering.
static const MipsFrameLowering *getFrameLowering(
const MachineFunction &MF);
};
namespace Mips { // Register classes
extern const TargetRegisterClass MSA128F16RegClass;
extern const TargetRegisterClass CCRRegClass;
extern const TargetRegisterClass COP0RegClass;
extern const TargetRegisterClass COP2RegClass;
extern const TargetRegisterClass COP3RegClass;
extern const TargetRegisterClass DSPRRegClass;
extern const TargetRegisterClass FGR32RegClass;
extern const TargetRegisterClass FGRCCRegClass;
extern const TargetRegisterClass GPR32RegClass;
extern const TargetRegisterClass HWRegsRegClass;
extern const TargetRegisterClass MSACtrlRegClass;
extern const TargetRegisterClass GPR32NONZERORegClass;
extern const TargetRegisterClass CPU16RegsPlusSPRegClass;
extern const TargetRegisterClass CPU16RegsRegClass;
extern const TargetRegisterClass FCCRegClass;
extern const TargetRegisterClass GPRMM16RegClass;
extern const TargetRegisterClass GPRMM16MovePRegClass;
extern const TargetRegisterClass GPRMM16ZeroRegClass;
extern const TargetRegisterClass CPU16Regs_and_GPRMM16ZeroRegClass;
extern const TargetRegisterClass GPR32NONZERO_and_GPRMM16MovePRegClass;
extern const TargetRegisterClass GPRMM16MovePPairSecondRegClass;
extern const TargetRegisterClass CPU16Regs_and_GPRMM16MovePRegClass;
extern const TargetRegisterClass GPRMM16MoveP_and_GPRMM16ZeroRegClass;
extern const TargetRegisterClass HI32DSPRegClass;
extern const TargetRegisterClass LO32DSPRegClass;
extern const TargetRegisterClass CPU16Regs_and_GPRMM16MovePPairSecondRegClass;
extern const TargetRegisterClass GPRMM16MovePPairFirstRegClass;
extern const TargetRegisterClass GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClass;
extern const TargetRegisterClass GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClass;
extern const TargetRegisterClass CPURARegRegClass;
extern const TargetRegisterClass CPUSPRegRegClass;
extern const TargetRegisterClass DSPCCRegClass;
extern const TargetRegisterClass GP32RegClass;
extern const TargetRegisterClass GPR32ZERORegClass;
extern const TargetRegisterClass HI32RegClass;
extern const TargetRegisterClass LO32RegClass;
extern const TargetRegisterClass SP32RegClass;
extern const TargetRegisterClass FGR64RegClass;
extern const TargetRegisterClass GPR64RegClass;
extern const TargetRegisterClass GPR64_with_sub_32_in_GPR32NONZERORegClass;
extern const TargetRegisterClass AFGR64RegClass;
extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass;
extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16RegsRegClass;
extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MovePRegClass;
extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16ZeroRegClass;
extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClass;
extern const TargetRegisterClass GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePRegClass;
extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MovePPairSecondRegClass;
extern const TargetRegisterClass ACC64DSPRegClass;
extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePRegClass;
extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroRegClass;
extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondRegClass;
extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MovePPairFirstRegClass;
extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClass;
extern const TargetRegisterClass OCTEON_MPLRegClass;
extern const TargetRegisterClass OCTEON_PRegClass;
extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClass;
extern const TargetRegisterClass ACC64RegClass;
extern const TargetRegisterClass GP64RegClass;
extern const TargetRegisterClass GPR64_with_sub_32_in_CPURARegRegClass;
extern const TargetRegisterClass GPR64_with_sub_32_in_GPR32ZERORegClass;
extern const TargetRegisterClass HI64RegClass;
extern const TargetRegisterClass LO64RegClass;
extern const TargetRegisterClass SP64RegClass;
extern const TargetRegisterClass MSA128BRegClass;
extern const TargetRegisterClass MSA128DRegClass;
extern const TargetRegisterClass MSA128HRegClass;
extern const TargetRegisterClass MSA128WRegClass;
extern const TargetRegisterClass MSA128WEvensRegClass;
extern const TargetRegisterClass ACC128RegClass;
} // end namespace Mips
} // end namespace llvm
#endif // GET_REGINFO_HEADER
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|* *|
|* Target Register and Register Classes Information *|
|* *|
|* Automatically generated file, do not edit! *|
|* *|
\*===----------------------------------------------------------------------===*/
#ifdef GET_REGINFO_TARGET_DESC
#undef GET_REGINFO_TARGET_DESC
namespace llvm {
extern const MCRegisterClass MipsMCRegisterClasses[];
static const MVT::SimpleValueType VTLists[] = {
/* 0 */ MVT::i32, MVT::Other,
/* 2 */ MVT::i64, MVT::Other,
/* 4 */ MVT::f16, MVT::Other,
/* 6 */ MVT::f32, MVT::Other,
/* 8 */ MVT::f64, MVT::Other,
/* 10 */ MVT::v16i8, MVT::Other,
/* 12 */ MVT::v4i8, MVT::v2i16, MVT::Other,
/* 15 */ MVT::v8i16, MVT::v8f16, MVT::Other,
/* 18 */ MVT::v4i32, MVT::v4f32, MVT::Other,
/* 21 */ MVT::v2i64, MVT::v2f64, MVT::Other,
/* 24 */ MVT::Untyped, MVT::Other,
};
static const char *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", "" };
static const LaneBitmask SubRegIndexLaneMaskTable[] = {
LaneBitmask::getAll(),
LaneBitmask(0x0000000000000001), // sub_32
LaneBitmask(0x0000000000000041), // sub_64
LaneBitmask(0x0000000000000002), // sub_dsp16_19
LaneBitmask(0x0000000000000004), // sub_dsp20
LaneBitmask(0x0000000000000008), // sub_dsp21
LaneBitmask(0x0000000000000010), // sub_dsp22
LaneBitmask(0x0000000000000020), // sub_dsp23
LaneBitmask(0x0000000000000040), // sub_hi
LaneBitmask(0x0000000000000001), // sub_lo
LaneBitmask(0x0000000000000040), // sub_hi_then_sub_32
LaneBitmask(0x0000000000000041), // sub_32_sub_hi_then_sub_32
};
static const TargetRegisterInfo::RegClassInfo RegClassInfos[] = {
// Mode = 0 (Default)
{ 16, 16, 128, VTLists+4 }, // MSA128F16
{ 32, 32, 32, VTLists+0 }, // CCR
{ 32, 32, 32, VTLists+0 }, // COP0
{ 32, 32, 32, VTLists+0 }, // COP2
{ 32, 32, 32, VTLists+0 }, // COP3
{ 32, 32, 32, VTLists+12 }, // DSPR
{ 32, 32, 32, VTLists+6 }, // FGR32
{ 32, 32, 32, VTLists+0 }, // FGRCC
{ 32, 32, 32, VTLists+0 }, // GPR32
{ 32, 32, 32, VTLists+0 }, // HWRegs
{ 32, 32, 32, VTLists+0 }, // MSACtrl
{ 32, 32, 32, VTLists+0 }, // GPR32NONZERO
{ 32, 32, 32, VTLists+0 }, // CPU16RegsPlusSP
{ 32, 32, 32, VTLists+0 }, // CPU16Regs
{ 32, 32, 32, VTLists+0 }, // FCC
{ 32, 32, 32, VTLists+0 }, // GPRMM16
{ 32, 32, 32, VTLists+0 }, // GPRMM16MoveP
{ 32, 32, 32, VTLists+0 }, // GPRMM16Zero
{ 32, 32, 32, VTLists+0 }, // CPU16Regs_and_GPRMM16Zero
{ 32, 32, 32, VTLists+0 }, // GPR32NONZERO_and_GPRMM16MoveP
{ 32, 32, 32, VTLists+0 }, // GPRMM16MovePPairSecond
{ 32, 32, 32, VTLists+0 }, // CPU16Regs_and_GPRMM16MoveP
{ 32, 32, 32, VTLists+0 }, // GPRMM16MoveP_and_GPRMM16Zero
{ 32, 32, 32, VTLists+0 }, // HI32DSP
{ 32, 32, 32, VTLists+0 }, // LO32DSP
{ 32, 32, 32, VTLists+0 }, // CPU16Regs_and_GPRMM16MovePPairSecond
{ 32, 32, 32, VTLists+0 }, // GPRMM16MovePPairFirst
{ 32, 32, 32, VTLists+0 }, // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero
{ 32, 32, 32, VTLists+0 }, // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond
{ 32, 32, 32, VTLists+0 }, // CPURAReg
{ 32, 32, 32, VTLists+0 }, // CPUSPReg
{ 32, 32, 32, VTLists+12 }, // DSPCC
{ 32, 32, 32, VTLists+0 }, // GP32
{ 32, 32, 32, VTLists+0 }, // GPR32ZERO
{ 32, 32, 32, VTLists+0 }, // HI32
{ 32, 32, 32, VTLists+0 }, // LO32
{ 32, 32, 32, VTLists+0 }, // SP32
{ 64, 64, 64, VTLists+8 }, // FGR64
{ 64, 64, 64, VTLists+2 }, // GPR64
{ 64, 64, 64, VTLists+2 }, // GPR64_with_sub_32_in_GPR32NONZERO
{ 64, 64, 64, VTLists+8 }, // AFGR64
{ 64, 64, 64, VTLists+2 }, // GPR64_with_sub_32_in_CPU16RegsPlusSP
{ 64, 64, 64, VTLists+2 }, // GPR64_with_sub_32_in_CPU16Regs
{ 64, 64, 64, VTLists+2 }, // GPR64_with_sub_32_in_GPRMM16MoveP
{ 64, 64, 64, VTLists+2 }, // GPR64_with_sub_32_in_GPRMM16Zero
{ 64, 64, 64, VTLists+2 }, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero
{ 64, 64, 64, VTLists+2 }, // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP
{ 64, 64, 64, VTLists+2 }, // GPR64_with_sub_32_in_GPRMM16MovePPairSecond
{ 64, 64, 64, VTLists+24 }, // ACC64DSP
{ 64, 64, 64, VTLists+2 }, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP
{ 64, 64, 64, VTLists+2 }, // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero
{ 64, 64, 64, VTLists+2 }, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond
{ 64, 64, 64, VTLists+2 }, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst
{ 64, 64, 64, VTLists+2 }, // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero
{ 64, 64, 64, VTLists+2 }, // OCTEON_MPL
{ 64, 64, 64, VTLists+2 }, // OCTEON_P
{ 64, 64, 64, VTLists+2 }, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond
{ 64, 64, 64, VTLists+24 }, // ACC64
{ 64, 64, 64, VTLists+2 }, // GP64
{ 64, 64, 64, VTLists+2 }, // GPR64_with_sub_32_in_CPURAReg
{ 64, 64, 64, VTLists+2 }, // GPR64_with_sub_32_in_GPR32ZERO
{ 64, 64, 64, VTLists+2 }, // HI64
{ 64, 64, 64, VTLists+2 }, // LO64
{ 64, 64, 64, VTLists+2 }, // SP64
{ 128, 128, 128, VTLists+10 }, // MSA128B
{ 128, 128, 128, VTLists+21 }, // MSA128D
{ 128, 128, 128, VTLists+15 }, // MSA128H
{ 128, 128, 128, VTLists+18 }, // MSA128W
{ 128, 128, 128, VTLists+18 }, // MSA128WEvens
{ 128, 128, 128, VTLists+24 }, // ACC128
};
static const TargetRegisterClass *const NullRegClasses[] = { nullptr };
static const uint32_t MSA128F16SubClassMask[] = {
0x00000001, 0x00000000, 0x0000001f,
};
static const uint32_t CCRSubClassMask[] = {
0x00000002, 0x00000000, 0x00000000,
};
static const uint32_t COP0SubClassMask[] = {
0x00000004, 0x00000000, 0x00000000,
};
static const uint32_t COP2SubClassMask[] = {
0x00000008, 0x00000000, 0x00000000,
};
static const uint32_t COP3SubClassMask[] = {
0x00000010, 0x00000000, 0x00000000,
};
static const uint32_t DSPRSubClassMask[] = {
0x7e7fb920, 0x00000013, 0x00000000,
0x00000000, 0x9d3efec0, 0x00000000, // sub_32
};
static const uint32_t FGR32SubClassMask[] = {
0x000000c0, 0x00000000, 0x00000000,
0x00000000, 0x00000100, 0x00000000, // sub_hi
0x00000001, 0x00000120, 0x0000001f, // sub_lo
};
static const uint32_t FGRCCSubClassMask[] = {
0x000000c0, 0x00000000, 0x00000000,
0x00000000, 0x00000100, 0x00000000, // sub_hi
0x00000001, 0x00000120, 0x0000001f, // sub_lo
};
static const uint32_t GPR32SubClassMask[] = {
0x7e7fb900, 0x00000013, 0x00000000,
0x00000000, 0x9d3efec0, 0x00000000, // sub_32
};
static const uint32_t HWRegsSubClassMask[] = {
0x00000200, 0x00000000, 0x00000000,
};
static const uint32_t MSACtrlSubClassMask[] = {
0x00000400, 0x00000000, 0x00000000,
};
static const uint32_t GPR32NONZEROSubClassMask[] = {
0x7e3cb800, 0x00000011, 0x00000000,
0x00000000, 0x8d3ae680, 0x00000000, // sub_32
};
static const uint32_t CPU16RegsPlusSPSubClassMask[] = {
0x5e24b000, 0x00000010, 0x00000000,
0x00000000, 0x813a2600, 0x00000000, // sub_32
};
static const uint32_t CPU16RegsSubClassMask[] = {
0x1e24a000, 0x00000000, 0x00000000,
0x00000000, 0x013a2400, 0x00000000, // sub_32
};
static const uint32_t FCCSubClassMask[] = {
0x00004000, 0x00000000, 0x00000000,
};
static const uint32_t GPRMM16SubClassMask[] = {
0x1e248000, 0x00000000, 0x00000000,
0x00000000, 0x013a2400, 0x00000000, // sub_32
};
static const uint32_t GPRMM16MovePSubClassMask[] = {
0x08690000, 0x00000002, 0x00000000,
0x00000000, 0x10264800, 0x00000000, // sub_32
};
static const uint32_t GPRMM16ZeroSubClassMask[] = {
0x1e460000, 0x00000002, 0x00000000,
0x00000000, 0x113c3000, 0x00000000, // sub_32
};
static const uint32_t CPU16Regs_and_GPRMM16ZeroSubClassMask[] = {
0x1e040000, 0x00000000, 0x00000000,
0x00000000, 0x01382000, 0x00000000, // sub_32
};
static const uint32_t GPR32NONZERO_and_GPRMM16MovePSubClassMask[] = {
0x08280000, 0x00000000, 0x00000000,
0x00000000, 0x00224000, 0x00000000, // sub_32
};
static const uint32_t GPRMM16MovePPairSecondSubClassMask[] = {
0x12100000, 0x00000000, 0x00000000,
0x00000000, 0x01088000, 0x00000000, // sub_32
};
static const uint32_t CPU16Regs_and_GPRMM16MovePSubClassMask[] = {
0x08200000, 0x00000000, 0x00000000,
0x00000000, 0x00220000, 0x00000000, // sub_32
};
static const uint32_t GPRMM16MoveP_and_GPRMM16ZeroSubClassMask[] = {
0x08400000, 0x00000002, 0x00000000,
0x00000000, 0x10240000, 0x00000000, // sub_32
};
static const uint32_t HI32DSPSubClassMask[] = {
0x00800000, 0x00000004, 0x00000000,
0x00000000, 0x20000000, 0x00000000, // sub_32
0x00000000, 0x02010000, 0x00000000, // sub_hi
0x00000000, 0x00000000, 0x00000020, // sub_hi_then_sub_32
};
static const uint32_t LO32DSPSubClassMask[] = {
0x01000000, 0x00000008, 0x00000000,
0x00000000, 0x40000000, 0x00000020, // sub_32
0x00000000, 0x02010000, 0x00000000, // sub_lo
};
static const uint32_t CPU16Regs_and_GPRMM16MovePPairSecondSubClassMask[] = {
0x12000000, 0x00000000, 0x00000000,
0x00000000, 0x01080000, 0x00000000, // sub_32
};
static const uint32_t GPRMM16MovePPairFirstSubClassMask[] = {
0x14000000, 0x00000000, 0x00000000,
0x00000000, 0x01100000, 0x00000000, // sub_32
};
static const uint32_t GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroSubClassMask[] = {
0x08000000, 0x00000000, 0x00000000,
0x00000000, 0x00200000, 0x00000000, // sub_32
};
static const uint32_t GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondSubClassMask[] = {
0x10000000, 0x00000000, 0x00000000,
0x00000000, 0x01000000, 0x00000000, // sub_32
};
static const uint32_t CPURARegSubClassMask[] = {
0x20000000, 0x00000000, 0x00000000,
0x00000000, 0x08000000, 0x00000000, // sub_32
};
static const uint32_t CPUSPRegSubClassMask[] = {
0x40000000, 0x00000010, 0x00000000,
0x00000000, 0x80000000, 0x00000000, // sub_32
};
static const uint32_t DSPCCSubClassMask[] = {
0x80000000, 0x00000000, 0x00000000,
};
static const uint32_t GP32SubClassMask[] = {
0x00000000, 0x00000001, 0x00000000,
0x00000000, 0x04000000, 0x00000000, // sub_32
};
static const uint32_t GPR32ZEROSubClassMask[] = {
0x00000000, 0x00000002, 0x00000000,
0x00000000, 0x10000000, 0x00000000, // sub_32
};
static const uint32_t HI32SubClassMask[] = {
0x00000000, 0x00000004, 0x00000000,
0x00000000, 0x20000000, 0x00000000, // sub_32
0x00000000, 0x02000000, 0x00000000, // sub_hi
0x00000000, 0x00000000, 0x00000020, // sub_hi_then_sub_32
};
static const uint32_t LO32SubClassMask[] = {
0x00000000, 0x00000008, 0x00000000,
0x00000000, 0x40000000, 0x00000020, // sub_32
0x00000000, 0x02000000, 0x00000000, // sub_lo
};
static const uint32_t SP32SubClassMask[] = {
0x00000000, 0x00000010, 0x00000000,
0x00000000, 0x80000000, 0x00000000, // sub_32
};
static const uint32_t FGR64SubClassMask[] = {
0x00000000, 0x00000020, 0x00000000,
0x00000001, 0x00000000, 0x0000001f, // sub_64
};
static const uint32_t GPR64SubClassMask[] = {
0x00000000, 0x9d3efec0, 0x00000000,
};
static const uint32_t GPR64_with_sub_32_in_GPR32NONZEROSubClassMask[] = {
0x00000000, 0x8d3ae680, 0x00000000,
};
static const uint32_t AFGR64SubClassMask[] = {
0x00000000, 0x00000100, 0x00000000,
};
static const uint32_t GPR64_with_sub_32_in_CPU16RegsPlusSPSubClassMask[] = {
0x00000000, 0x813a2600, 0x00000000,
};
static const uint32_t GPR64_with_sub_32_in_CPU16RegsSubClassMask[] = {
0x00000000, 0x013a2400, 0x00000000,
};
static const uint32_t GPR64_with_sub_32_in_GPRMM16MovePSubClassMask[] = {
0x00000000, 0x10264800, 0x00000000,
};
static const uint32_t GPR64_with_sub_32_in_GPRMM16ZeroSubClassMask[] = {
0x00000000, 0x113c3000, 0x00000000,
};
static const uint32_t GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroSubClassMask[] = {
0x00000000, 0x01382000, 0x00000000,
};
static const uint32_t GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePSubClassMask[] = {
0x00000000, 0x00224000, 0x00000000,
};
static const uint32_t GPR64_with_sub_32_in_GPRMM16MovePPairSecondSubClassMask[] = {
0x00000000, 0x01088000, 0x00000000,
};
static const uint32_t ACC64DSPSubClassMask[] = {
0x00000000, 0x02010000, 0x00000000,
0x00000000, 0x00000000, 0x00000020, // sub_32_sub_hi_then_sub_32
};
static const uint32_t GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePSubClassMask[] = {
0x00000000, 0x00220000, 0x00000000,
};
static const uint32_t GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroSubClassMask[] = {
0x00000000, 0x10240000, 0x00000000,
};
static const uint32_t GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondSubClassMask[] = {
0x00000000, 0x01080000, 0x00000000,
};
static const uint32_t GPR64_with_sub_32_in_GPRMM16MovePPairFirstSubClassMask[] = {
0x00000000, 0x01100000, 0x00000000,
};
static const uint32_t GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroSubClassMask[] = {
0x00000000, 0x00200000, 0x00000000,
};
static const uint32_t OCTEON_MPLSubClassMask[] = {
0x00000000, 0x00400000, 0x00000000,
};
static const uint32_t OCTEON_PSubClassMask[] = {
0x00000000, 0x00800000, 0x00000000,
};
static const uint32_t GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondSubClassMask[] = {
0x00000000, 0x01000000, 0x00000000,
};
static const uint32_t ACC64SubClassMask[] = {
0x00000000, 0x02000000, 0x00000000,
0x00000000, 0x00000000, 0x00000020, // sub_32_sub_hi_then_sub_32
};
static const uint32_t GP64SubClassMask[] = {
0x00000000, 0x04000000, 0x00000000,
};
static const uint32_t GPR64_with_sub_32_in_CPURARegSubClassMask[] = {
0x00000000, 0x08000000, 0x00000000,
};
static const uint32_t GPR64_with_sub_32_in_GPR32ZEROSubClassMask[] = {
0x00000000, 0x10000000, 0x00000000,
};
static const uint32_t HI64SubClassMask[] = {
0x00000000, 0x20000000, 0x00000000,
0x00000000, 0x00000000, 0x00000020, // sub_hi
};
static const uint32_t LO64SubClassMask[] = {
0x00000000, 0x40000000, 0x00000000,
0x00000000, 0x00000000, 0x00000020, // sub_lo
};
static const uint32_t SP64SubClassMask[] = {
0x00000000, 0x80000000, 0x00000000,
};
static const uint32_t MSA128BSubClassMask[] = {
0x00000000, 0x00000000, 0x0000001f,
};
static const uint32_t MSA128DSubClassMask[] = {
0x00000000, 0x00000000, 0x0000001f,
};
static const uint32_t MSA128HSubClassMask[] = {
0x00000000, 0x00000000, 0x0000001f,
};
static const uint32_t MSA128WSubClassMask[] = {
0x00000000, 0x00000000, 0x0000001f,
};
static const uint32_t MSA128WEvensSubClassMask[] = {
0x00000000, 0x00000000, 0x00000010,
};
static const uint32_t ACC128SubClassMask[] = {
0x00000000, 0x00000000, 0x00000020,
};
static const uint16_t SuperRegIdxSeqs[] = {
/* 0 */ 1, 0,
/* 2 */ 2, 0,
/* 4 */ 8, 0,
/* 6 */ 1, 9, 0,
/* 9 */ 8, 9, 0,
/* 12 */ 1, 8, 10, 0,
/* 16 */ 11, 0,
};
static const TargetRegisterClass *const FGR32Superclasses[] = {
&Mips::FGRCCRegClass,
nullptr
};
static const TargetRegisterClass *const FGRCCSuperclasses[] = {
&Mips::FGR32RegClass,
nullptr
};
static const TargetRegisterClass *const GPR32Superclasses[] = {
&Mips::DSPRRegClass,
nullptr
};
static const TargetRegisterClass *const GPR32NONZEROSuperclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
nullptr
};
static const TargetRegisterClass *const CPU16RegsPlusSPSuperclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
&Mips::GPR32NONZERORegClass,
nullptr
};
static const TargetRegisterClass *const CPU16RegsSuperclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
&Mips::GPR32NONZERORegClass,
&Mips::CPU16RegsPlusSPRegClass,
nullptr
};
static const TargetRegisterClass *const GPRMM16Superclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
&Mips::GPR32NONZERORegClass,
&Mips::CPU16RegsPlusSPRegClass,
&Mips::CPU16RegsRegClass,
nullptr
};
static const TargetRegisterClass *const GPRMM16MovePSuperclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
nullptr
};
static const TargetRegisterClass *const GPRMM16ZeroSuperclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
nullptr
};
static const TargetRegisterClass *const CPU16Regs_and_GPRMM16ZeroSuperclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
&Mips::GPR32NONZERORegClass,
&Mips::CPU16RegsPlusSPRegClass,
&Mips::CPU16RegsRegClass,
&Mips::GPRMM16RegClass,
&Mips::GPRMM16ZeroRegClass,
nullptr
};
static const TargetRegisterClass *const GPR32NONZERO_and_GPRMM16MovePSuperclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
&Mips::GPR32NONZERORegClass,
&Mips::GPRMM16MovePRegClass,
nullptr
};
static const TargetRegisterClass *const GPRMM16MovePPairSecondSuperclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
&Mips::GPR32NONZERORegClass,
nullptr
};
static const TargetRegisterClass *const CPU16Regs_and_GPRMM16MovePSuperclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
&Mips::GPR32NONZERORegClass,
&Mips::CPU16RegsPlusSPRegClass,
&Mips::CPU16RegsRegClass,
&Mips::GPRMM16RegClass,
&Mips::GPRMM16MovePRegClass,
&Mips::GPR32NONZERO_and_GPRMM16MovePRegClass,
nullptr
};
static const TargetRegisterClass *const GPRMM16MoveP_and_GPRMM16ZeroSuperclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
&Mips::GPRMM16MovePRegClass,
&Mips::GPRMM16ZeroRegClass,
nullptr
};
static const TargetRegisterClass *const CPU16Regs_and_GPRMM16MovePPairSecondSuperclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
&Mips::GPR32NONZERORegClass,
&Mips::CPU16RegsPlusSPRegClass,
&Mips::CPU16RegsRegClass,
&Mips::GPRMM16RegClass,
&Mips::GPRMM16ZeroRegClass,
&Mips::CPU16Regs_and_GPRMM16ZeroRegClass,
&Mips::GPRMM16MovePPairSecondRegClass,
nullptr
};
static const TargetRegisterClass *const GPRMM16MovePPairFirstSuperclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
&Mips::GPR32NONZERORegClass,
&Mips::CPU16RegsPlusSPRegClass,
&Mips::CPU16RegsRegClass,
&Mips::GPRMM16RegClass,
&Mips::GPRMM16ZeroRegClass,
&Mips::CPU16Regs_and_GPRMM16ZeroRegClass,
nullptr
};
static const TargetRegisterClass *const GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroSuperclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
&Mips::GPR32NONZERORegClass,
&Mips::CPU16RegsPlusSPRegClass,
&Mips::CPU16RegsRegClass,
&Mips::GPRMM16RegClass,
&Mips::GPRMM16MovePRegClass,
&Mips::GPRMM16ZeroRegClass,
&Mips::CPU16Regs_and_GPRMM16ZeroRegClass,
&Mips::GPR32NONZERO_and_GPRMM16MovePRegClass,
&Mips::CPU16Regs_and_GPRMM16MovePRegClass,
&Mips::GPRMM16MoveP_and_GPRMM16ZeroRegClass,
nullptr
};
static const TargetRegisterClass *const GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondSuperclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
&Mips::GPR32NONZERORegClass,
&Mips::CPU16RegsPlusSPRegClass,
&Mips::CPU16RegsRegClass,
&Mips::GPRMM16RegClass,
&Mips::GPRMM16ZeroRegClass,
&Mips::CPU16Regs_and_GPRMM16ZeroRegClass,
&Mips::GPRMM16MovePPairSecondRegClass,
&Mips::CPU16Regs_and_GPRMM16MovePPairSecondRegClass,
&Mips::GPRMM16MovePPairFirstRegClass,
nullptr
};
static const TargetRegisterClass *const CPURARegSuperclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
&Mips::GPR32NONZERORegClass,
nullptr
};
static const TargetRegisterClass *const CPUSPRegSuperclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
&Mips::GPR32NONZERORegClass,
&Mips::CPU16RegsPlusSPRegClass,
nullptr
};
static const TargetRegisterClass *const GP32Superclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
&Mips::GPR32NONZERORegClass,
nullptr
};
static const TargetRegisterClass *const GPR32ZEROSuperclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
&Mips::GPRMM16MovePRegClass,
&Mips::GPRMM16ZeroRegClass,
&Mips::GPRMM16MoveP_and_GPRMM16ZeroRegClass,
nullptr
};
static const TargetRegisterClass *const HI32Superclasses[] = {
&Mips::HI32DSPRegClass,
nullptr
};
static const TargetRegisterClass *const LO32Superclasses[] = {
&Mips::LO32DSPRegClass,
nullptr
};
static const TargetRegisterClass *const SP32Superclasses[] = {
&Mips::DSPRRegClass,
&Mips::GPR32RegClass,
&Mips::GPR32NONZERORegClass,
&Mips::CPU16RegsPlusSPRegClass,
&Mips::CPUSPRegRegClass,
nullptr
};
static const TargetRegisterClass *const GPR64_with_sub_32_in_GPR32NONZEROSuperclasses[] = {
&Mips::GPR64RegClass,
nullptr
};
static const TargetRegisterClass *const GPR64_with_sub_32_in_CPU16RegsPlusSPSuperclasses[] = {
&Mips::GPR64RegClass,
&Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
nullptr
};
static const TargetRegisterClass *const GPR64_with_sub_32_in_CPU16RegsSuperclasses[] = {
&Mips::GPR64RegClass,
&Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
&Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass,
nullptr
};
static const TargetRegisterClass *const GPR64_with_sub_32_in_GPRMM16MovePSuperclasses[] = {
&Mips::GPR64RegClass,
nullptr
};
static const TargetRegisterClass *const GPR64_with_sub_32_in_GPRMM16ZeroSuperclasses[] = {
&Mips::GPR64RegClass,
nullptr
};
static const TargetRegisterClass *const GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroSuperclasses[] = {
&Mips::GPR64RegClass,
&Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
&Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass,
&Mips::GPR64_with_sub_32_in_CPU16RegsRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16ZeroRegClass,
nullptr
};
static const TargetRegisterClass *const GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePSuperclasses[] = {
&Mips::GPR64RegClass,
&Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16MovePRegClass,
nullptr
};
static const TargetRegisterClass *const GPR64_with_sub_32_in_GPRMM16MovePPairSecondSuperclasses[] = {
&Mips::GPR64RegClass,
&Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
nullptr
};
static const TargetRegisterClass *const GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePSuperclasses[] = {
&Mips::GPR64RegClass,
&Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
&Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass,
&Mips::GPR64_with_sub_32_in_CPU16RegsRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16MovePRegClass,
&Mips::GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePRegClass,
nullptr
};
static const TargetRegisterClass *const GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroSuperclasses[] = {
&Mips::GPR64RegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16MovePRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16ZeroRegClass,
nullptr
};
static const TargetRegisterClass *const GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondSuperclasses[] = {
&Mips::GPR64RegClass,
&Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
&Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass,
&Mips::GPR64_with_sub_32_in_CPU16RegsRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16ZeroRegClass,
&Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16MovePPairSecondRegClass,
nullptr
};
static const TargetRegisterClass *const GPR64_with_sub_32_in_GPRMM16MovePPairFirstSuperclasses[] = {
&Mips::GPR64RegClass,
&Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
&Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass,
&Mips::GPR64_with_sub_32_in_CPU16RegsRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16ZeroRegClass,
&Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClass,
nullptr
};
static const TargetRegisterClass *const GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroSuperclasses[] = {
&Mips::GPR64RegClass,
&Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
&Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass,
&Mips::GPR64_with_sub_32_in_CPU16RegsRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16MovePRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16ZeroRegClass,
&Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClass,
&Mips::GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePRegClass,
&Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroRegClass,
nullptr
};
static const TargetRegisterClass *const GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondSuperclasses[] = {
&Mips::GPR64RegClass,
&Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
&Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass,
&Mips::GPR64_with_sub_32_in_CPU16RegsRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16ZeroRegClass,
&Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16MovePPairSecondRegClass,
&Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16MovePPairFirstRegClass,
nullptr
};
static const TargetRegisterClass *const ACC64Superclasses[] = {
&Mips::ACC64DSPRegClass,
nullptr
};
static const TargetRegisterClass *const GP64Superclasses[] = {
&Mips::GPR64RegClass,
&Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
nullptr
};
static const TargetRegisterClass *const GPR64_with_sub_32_in_CPURARegSuperclasses[] = {
&Mips::GPR64RegClass,
&Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
nullptr
};
static const TargetRegisterClass *const GPR64_with_sub_32_in_GPR32ZEROSuperclasses[] = {
&Mips::GPR64RegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16MovePRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16ZeroRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroRegClass,
nullptr
};
static const TargetRegisterClass *const SP64Superclasses[] = {
&Mips::GPR64RegClass,
&Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
&Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass,
nullptr
};
static const TargetRegisterClass *const MSA128BSuperclasses[] = {
&Mips::MSA128F16RegClass,
&Mips::MSA128DRegClass,
&Mips::MSA128HRegClass,
&Mips::MSA128WRegClass,
nullptr
};
static const TargetRegisterClass *const MSA128DSuperclasses[] = {
&Mips::MSA128F16RegClass,
&Mips::MSA128BRegClass,
&Mips::MSA128HRegClass,
&Mips::MSA128WRegClass,
nullptr
};
static const TargetRegisterClass *const MSA128HSuperclasses[] = {
&Mips::MSA128F16RegClass,
&Mips::MSA128BRegClass,
&Mips::MSA128DRegClass,
&Mips::MSA128WRegClass,
nullptr
};
static const TargetRegisterClass *const MSA128WSuperclasses[] = {
&Mips::MSA128F16RegClass,
&Mips::MSA128BRegClass,
&Mips::MSA128DRegClass,
&Mips::MSA128HRegClass,
nullptr
};
static const TargetRegisterClass *const MSA128WEvensSuperclasses[] = {
&Mips::MSA128F16RegClass,
&Mips::MSA128BRegClass,
&Mips::MSA128DRegClass,
&Mips::MSA128HRegClass,
&Mips::MSA128WRegClass,
nullptr
};
static inline unsigned FGR32AltOrderSelect(const MachineFunction &MF) {
const auto & S = MF.getSubtarget<MipsSubtarget>();
return S.isABI_O32() && !S.useOddSPReg();
}
static ArrayRef<MCPhysReg> FGR32GetRawAllocationOrder(const MachineFunction &MF) {
static const MCPhysReg AltOrder1[] = { Mips::F0, Mips::F2, Mips::F4, Mips::F6, Mips::F8, Mips::F10, Mips::F12, Mips::F14, Mips::F16, Mips::F18, Mips::F20, Mips::F22, Mips::F24, Mips::F26, Mips::F28, Mips::F30 };
const MCRegisterClass &MCR = MipsMCRegisterClasses[Mips::FGR32RegClassID];
const ArrayRef<MCPhysReg> Order[] = {
ArrayRef(MCR.begin(), MCR.getNumRegs()),
ArrayRef(AltOrder1)
};
const unsigned Select = FGR32AltOrderSelect(MF);
assert(Select < 2);
return Order[Select];
}
static inline unsigned FGR64AltOrderSelect(const MachineFunction &MF) {
const auto & S = MF.getSubtarget<MipsSubtarget>();
return S.isABI_O32() && !S.useOddSPReg();
}
static ArrayRef<MCPhysReg> FGR64GetRawAllocationOrder(const MachineFunction &MF) {
static const MCPhysReg AltOrder1[] = { Mips::D0_64, Mips::D2_64, Mips::D4_64, Mips::D6_64, Mips::D8_64, Mips::D10_64, Mips::D12_64, Mips::D14_64, Mips::D16_64, Mips::D18_64, Mips::D20_64, Mips::D22_64, Mips::D24_64, Mips::D26_64, Mips::D28_64, Mips::D30_64 };
const MCRegisterClass &MCR = MipsMCRegisterClasses[Mips::FGR64RegClassID];
const ArrayRef<MCPhysReg> Order[] = {
ArrayRef(MCR.begin(), MCR.getNumRegs()),
ArrayRef(AltOrder1)
};
const unsigned Select = FGR64AltOrderSelect(MF);
assert(Select < 2);
return Order[Select];
}
namespace Mips { // Register class instances
extern const TargetRegisterClass MSA128F16RegClass = {
&MipsMCRegisterClasses[MSA128F16RegClassID],
MSA128F16SubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000041),
0,
false,
0x00, /* TSFlags */
true, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass CCRRegClass = {
&MipsMCRegisterClasses[CCRRegClassID],
CCRSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass COP0RegClass = {
&MipsMCRegisterClasses[COP0RegClassID],
COP0SubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass COP2RegClass = {
&MipsMCRegisterClasses[COP2RegClassID],
COP2SubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass COP3RegClass = {
&MipsMCRegisterClasses[COP3RegClassID],
COP3SubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass DSPRRegClass = {
&MipsMCRegisterClasses[DSPRRegClassID],
DSPRSubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass FGR32RegClass = {
&MipsMCRegisterClasses[FGR32RegClassID],
FGR32SubClassMask,
SuperRegIdxSeqs + 9,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
FGR32Superclasses,
FGR32GetRawAllocationOrder
};
extern const TargetRegisterClass FGRCCRegClass = {
&MipsMCRegisterClasses[FGRCCRegClassID],
FGRCCSubClassMask,
SuperRegIdxSeqs + 9,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
FGRCCSuperclasses,
nullptr
};
extern const TargetRegisterClass GPR32RegClass = {
&MipsMCRegisterClasses[GPR32RegClassID],
GPR32SubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR32Superclasses,
nullptr
};
extern const TargetRegisterClass HWRegsRegClass = {
&MipsMCRegisterClasses[HWRegsRegClassID],
HWRegsSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass MSACtrlRegClass = {
&MipsMCRegisterClasses[MSACtrlRegClassID],
MSACtrlSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass GPR32NONZERORegClass = {
&MipsMCRegisterClasses[GPR32NONZERORegClassID],
GPR32NONZEROSubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR32NONZEROSuperclasses,
nullptr
};
extern const TargetRegisterClass CPU16RegsPlusSPRegClass = {
&MipsMCRegisterClasses[CPU16RegsPlusSPRegClassID],
CPU16RegsPlusSPSubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
CPU16RegsPlusSPSuperclasses,
nullptr
};
extern const TargetRegisterClass CPU16RegsRegClass = {
&MipsMCRegisterClasses[CPU16RegsRegClassID],
CPU16RegsSubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
CPU16RegsSuperclasses,
nullptr
};
extern const TargetRegisterClass FCCRegClass = {
&MipsMCRegisterClasses[FCCRegClassID],
FCCSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass GPRMM16RegClass = {
&MipsMCRegisterClasses[GPRMM16RegClassID],
GPRMM16SubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPRMM16Superclasses,
nullptr
};
extern const TargetRegisterClass GPRMM16MovePRegClass = {
&MipsMCRegisterClasses[GPRMM16MovePRegClassID],
GPRMM16MovePSubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPRMM16MovePSuperclasses,
nullptr
};
extern const TargetRegisterClass GPRMM16ZeroRegClass = {
&MipsMCRegisterClasses[GPRMM16ZeroRegClassID],
GPRMM16ZeroSubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPRMM16ZeroSuperclasses,
nullptr
};
extern const TargetRegisterClass CPU16Regs_and_GPRMM16ZeroRegClass = {
&MipsMCRegisterClasses[CPU16Regs_and_GPRMM16ZeroRegClassID],
CPU16Regs_and_GPRMM16ZeroSubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
CPU16Regs_and_GPRMM16ZeroSuperclasses,
nullptr
};
extern const TargetRegisterClass GPR32NONZERO_and_GPRMM16MovePRegClass = {
&MipsMCRegisterClasses[GPR32NONZERO_and_GPRMM16MovePRegClassID],
GPR32NONZERO_and_GPRMM16MovePSubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR32NONZERO_and_GPRMM16MovePSuperclasses,
nullptr
};
extern const TargetRegisterClass GPRMM16MovePPairSecondRegClass = {
&MipsMCRegisterClasses[GPRMM16MovePPairSecondRegClassID],
GPRMM16MovePPairSecondSubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPRMM16MovePPairSecondSuperclasses,
nullptr
};
extern const TargetRegisterClass CPU16Regs_and_GPRMM16MovePRegClass = {
&MipsMCRegisterClasses[CPU16Regs_and_GPRMM16MovePRegClassID],
CPU16Regs_and_GPRMM16MovePSubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
CPU16Regs_and_GPRMM16MovePSuperclasses,
nullptr
};
extern const TargetRegisterClass GPRMM16MoveP_and_GPRMM16ZeroRegClass = {
&MipsMCRegisterClasses[GPRMM16MoveP_and_GPRMM16ZeroRegClassID],
GPRMM16MoveP_and_GPRMM16ZeroSubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPRMM16MoveP_and_GPRMM16ZeroSuperclasses,
nullptr
};
extern const TargetRegisterClass HI32DSPRegClass = {
&MipsMCRegisterClasses[HI32DSPRegClassID],
HI32DSPSubClassMask,
SuperRegIdxSeqs + 12,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass LO32DSPRegClass = {
&MipsMCRegisterClasses[LO32DSPRegClassID],
LO32DSPSubClassMask,
SuperRegIdxSeqs + 6,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass CPU16Regs_and_GPRMM16MovePPairSecondRegClass = {
&MipsMCRegisterClasses[CPU16Regs_and_GPRMM16MovePPairSecondRegClassID],
CPU16Regs_and_GPRMM16MovePPairSecondSubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
CPU16Regs_and_GPRMM16MovePPairSecondSuperclasses,
nullptr
};
extern const TargetRegisterClass GPRMM16MovePPairFirstRegClass = {
&MipsMCRegisterClasses[GPRMM16MovePPairFirstRegClassID],
GPRMM16MovePPairFirstSubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPRMM16MovePPairFirstSuperclasses,
nullptr
};
extern const TargetRegisterClass GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClass = {
&MipsMCRegisterClasses[GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClassID],
GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroSubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroSuperclasses,
nullptr
};
extern const TargetRegisterClass GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClass = {
&MipsMCRegisterClasses[GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClassID],
GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondSubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondSuperclasses,
nullptr
};
extern const TargetRegisterClass CPURARegRegClass = {
&MipsMCRegisterClasses[CPURARegRegClassID],
CPURARegSubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
CPURARegSuperclasses,
nullptr
};
extern const TargetRegisterClass CPUSPRegRegClass = {
&MipsMCRegisterClasses[CPUSPRegRegClassID],
CPUSPRegSubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
CPUSPRegSuperclasses,
nullptr
};
extern const TargetRegisterClass DSPCCRegClass = {
&MipsMCRegisterClasses[DSPCCRegClassID],
DSPCCSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass GP32RegClass = {
&MipsMCRegisterClasses[GP32RegClassID],
GP32SubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GP32Superclasses,
nullptr
};
extern const TargetRegisterClass GPR32ZERORegClass = {
&MipsMCRegisterClasses[GPR32ZERORegClassID],
GPR32ZEROSubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR32ZEROSuperclasses,
nullptr
};
extern const TargetRegisterClass HI32RegClass = {
&MipsMCRegisterClasses[HI32RegClassID],
HI32SubClassMask,
SuperRegIdxSeqs + 12,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
HI32Superclasses,
nullptr
};
extern const TargetRegisterClass LO32RegClass = {
&MipsMCRegisterClasses[LO32RegClassID],
LO32SubClassMask,
SuperRegIdxSeqs + 6,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
LO32Superclasses,
nullptr
};
extern const TargetRegisterClass SP32RegClass = {
&MipsMCRegisterClasses[SP32RegClassID],
SP32SubClassMask,
SuperRegIdxSeqs + 0,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
SP32Superclasses,
nullptr
};
extern const TargetRegisterClass FGR64RegClass = {
&MipsMCRegisterClasses[FGR64RegClassID],
FGR64SubClassMask,
SuperRegIdxSeqs + 2,
LaneBitmask(0x0000000000000041),
0,
false,
0x00, /* TSFlags */
true, /* HasDisjunctSubRegs */
true, /* CoveredBySubRegs */
NullRegClasses,
FGR64GetRawAllocationOrder
};
extern const TargetRegisterClass GPR64RegClass = {
&MipsMCRegisterClasses[GPR64RegClassID],
GPR64SubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass GPR64_with_sub_32_in_GPR32NONZERORegClass = {
&MipsMCRegisterClasses[GPR64_with_sub_32_in_GPR32NONZERORegClassID],
GPR64_with_sub_32_in_GPR32NONZEROSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR64_with_sub_32_in_GPR32NONZEROSuperclasses,
nullptr
};
extern const TargetRegisterClass AFGR64RegClass = {
&MipsMCRegisterClasses[AFGR64RegClassID],
AFGR64SubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000041),
0,
false,
0x00, /* TSFlags */
true, /* HasDisjunctSubRegs */
true, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass = {
&MipsMCRegisterClasses[GPR64_with_sub_32_in_CPU16RegsPlusSPRegClassID],
GPR64_with_sub_32_in_CPU16RegsPlusSPSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR64_with_sub_32_in_CPU16RegsPlusSPSuperclasses,
nullptr
};
extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16RegsRegClass = {
&MipsMCRegisterClasses[GPR64_with_sub_32_in_CPU16RegsRegClassID],
GPR64_with_sub_32_in_CPU16RegsSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR64_with_sub_32_in_CPU16RegsSuperclasses,
nullptr
};
extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MovePRegClass = {
&MipsMCRegisterClasses[GPR64_with_sub_32_in_GPRMM16MovePRegClassID],
GPR64_with_sub_32_in_GPRMM16MovePSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR64_with_sub_32_in_GPRMM16MovePSuperclasses,
nullptr
};
extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16ZeroRegClass = {
&MipsMCRegisterClasses[GPR64_with_sub_32_in_GPRMM16ZeroRegClassID],
GPR64_with_sub_32_in_GPRMM16ZeroSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR64_with_sub_32_in_GPRMM16ZeroSuperclasses,
nullptr
};
extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClass = {
&MipsMCRegisterClasses[GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClassID],
GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroSuperclasses,
nullptr
};
extern const TargetRegisterClass GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePRegClass = {
&MipsMCRegisterClasses[GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePRegClassID],
GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePSuperclasses,
nullptr
};
extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MovePPairSecondRegClass = {
&MipsMCRegisterClasses[GPR64_with_sub_32_in_GPRMM16MovePPairSecondRegClassID],
GPR64_with_sub_32_in_GPRMM16MovePPairSecondSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR64_with_sub_32_in_GPRMM16MovePPairSecondSuperclasses,
nullptr
};
extern const TargetRegisterClass ACC64DSPRegClass = {
&MipsMCRegisterClasses[ACC64DSPRegClassID],
ACC64DSPSubClassMask,
SuperRegIdxSeqs + 16,
LaneBitmask(0x0000000000000041),
0,
false,
0x00, /* TSFlags */
true, /* HasDisjunctSubRegs */
true, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePRegClass = {
&MipsMCRegisterClasses[GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePRegClassID],
GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePSuperclasses,
nullptr
};
extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroRegClass = {
&MipsMCRegisterClasses[GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroRegClassID],
GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroSuperclasses,
nullptr
};
extern const TargetRegisterClass GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondRegClass = {
&MipsMCRegisterClasses[GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondRegClassID],
GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondSuperclasses,
nullptr
};
extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MovePPairFirstRegClass = {
&MipsMCRegisterClasses[GPR64_with_sub_32_in_GPRMM16MovePPairFirstRegClassID],
GPR64_with_sub_32_in_GPRMM16MovePPairFirstSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR64_with_sub_32_in_GPRMM16MovePPairFirstSuperclasses,
nullptr
};
extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClass = {
&MipsMCRegisterClasses[GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClassID],
GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroSuperclasses,
nullptr
};
extern const TargetRegisterClass OCTEON_MPLRegClass = {
&MipsMCRegisterClasses[OCTEON_MPLRegClassID],
OCTEON_MPLSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass OCTEON_PRegClass = {
&MipsMCRegisterClasses[OCTEON_PRegClassID],
OCTEON_PSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClass = {
&MipsMCRegisterClasses[GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClassID],
GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondSuperclasses,
nullptr
};
extern const TargetRegisterClass ACC64RegClass = {
&MipsMCRegisterClasses[ACC64RegClassID],
ACC64SubClassMask,
SuperRegIdxSeqs + 16,
LaneBitmask(0x0000000000000041),
0,
false,
0x00, /* TSFlags */
true, /* HasDisjunctSubRegs */
true, /* CoveredBySubRegs */
ACC64Superclasses,
nullptr
};
extern const TargetRegisterClass GP64RegClass = {
&MipsMCRegisterClasses[GP64RegClassID],
GP64SubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GP64Superclasses,
nullptr
};
extern const TargetRegisterClass GPR64_with_sub_32_in_CPURARegRegClass = {
&MipsMCRegisterClasses[GPR64_with_sub_32_in_CPURARegRegClassID],
GPR64_with_sub_32_in_CPURARegSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR64_with_sub_32_in_CPURARegSuperclasses,
nullptr
};
extern const TargetRegisterClass GPR64_with_sub_32_in_GPR32ZERORegClass = {
&MipsMCRegisterClasses[GPR64_with_sub_32_in_GPR32ZERORegClassID],
GPR64_with_sub_32_in_GPR32ZEROSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
GPR64_with_sub_32_in_GPR32ZEROSuperclasses,
nullptr
};
extern const TargetRegisterClass HI64RegClass = {
&MipsMCRegisterClasses[HI64RegClassID],
HI64SubClassMask,
SuperRegIdxSeqs + 4,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass LO64RegClass = {
&MipsMCRegisterClasses[LO64RegClassID],
LO64SubClassMask,
SuperRegIdxSeqs + 7,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
extern const TargetRegisterClass SP64RegClass = {
&MipsMCRegisterClasses[SP64RegClassID],
SP64SubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000001),
0,
false,
0x00, /* TSFlags */
false, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
SP64Superclasses,
nullptr
};
extern const TargetRegisterClass MSA128BRegClass = {
&MipsMCRegisterClasses[MSA128BRegClassID],
MSA128BSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000041),
0,
false,
0x00, /* TSFlags */
true, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
MSA128BSuperclasses,
nullptr
};
extern const TargetRegisterClass MSA128DRegClass = {
&MipsMCRegisterClasses[MSA128DRegClassID],
MSA128DSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000041),
0,
false,
0x00, /* TSFlags */
true, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
MSA128DSuperclasses,
nullptr
};
extern const TargetRegisterClass MSA128HRegClass = {
&MipsMCRegisterClasses[MSA128HRegClassID],
MSA128HSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000041),
0,
false,
0x00, /* TSFlags */
true, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
MSA128HSuperclasses,
nullptr
};
extern const TargetRegisterClass MSA128WRegClass = {
&MipsMCRegisterClasses[MSA128WRegClassID],
MSA128WSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000041),
0,
false,
0x00, /* TSFlags */
true, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
MSA128WSuperclasses,
nullptr
};
extern const TargetRegisterClass MSA128WEvensRegClass = {
&MipsMCRegisterClasses[MSA128WEvensRegClassID],
MSA128WEvensSubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000041),
0,
false,
0x00, /* TSFlags */
true, /* HasDisjunctSubRegs */
false, /* CoveredBySubRegs */
MSA128WEvensSuperclasses,
nullptr
};
extern const TargetRegisterClass ACC128RegClass = {
&MipsMCRegisterClasses[ACC128RegClassID],
ACC128SubClassMask,
SuperRegIdxSeqs + 1,
LaneBitmask(0x0000000000000041),
0,
false,
0x00, /* TSFlags */
true, /* HasDisjunctSubRegs */
true, /* CoveredBySubRegs */
NullRegClasses,
nullptr
};
} // end namespace Mips
namespace {
const TargetRegisterClass *const RegisterClasses[] = {
&Mips::MSA128F16RegClass,
&Mips::CCRRegClass,
&Mips::COP0RegClass,
&Mips::COP2RegClass,
&Mips::COP3RegClass,
&Mips::DSPRRegClass,
&Mips::FGR32RegClass,
&Mips::FGRCCRegClass,
&Mips::GPR32RegClass,
&Mips::HWRegsRegClass,
&Mips::MSACtrlRegClass,
&Mips::GPR32NONZERORegClass,
&Mips::CPU16RegsPlusSPRegClass,
&Mips::CPU16RegsRegClass,
&Mips::FCCRegClass,
&Mips::GPRMM16RegClass,
&Mips::GPRMM16MovePRegClass,
&Mips::GPRMM16ZeroRegClass,
&Mips::CPU16Regs_and_GPRMM16ZeroRegClass,
&Mips::GPR32NONZERO_and_GPRMM16MovePRegClass,
&Mips::GPRMM16MovePPairSecondRegClass,
&Mips::CPU16Regs_and_GPRMM16MovePRegClass,
&Mips::GPRMM16MoveP_and_GPRMM16ZeroRegClass,
&Mips::HI32DSPRegClass,
&Mips::LO32DSPRegClass,
&Mips::CPU16Regs_and_GPRMM16MovePPairSecondRegClass,
&Mips::GPRMM16MovePPairFirstRegClass,
&Mips::GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClass,
&Mips::GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClass,
&Mips::CPURARegRegClass,
&Mips::CPUSPRegRegClass,
&Mips::DSPCCRegClass,
&Mips::GP32RegClass,
&Mips::GPR32ZERORegClass,
&Mips::HI32RegClass,
&Mips::LO32RegClass,
&Mips::SP32RegClass,
&Mips::FGR64RegClass,
&Mips::GPR64RegClass,
&Mips::GPR64_with_sub_32_in_GPR32NONZERORegClass,
&Mips::AFGR64RegClass,
&Mips::GPR64_with_sub_32_in_CPU16RegsPlusSPRegClass,
&Mips::GPR64_with_sub_32_in_CPU16RegsRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16MovePRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16ZeroRegClass,
&Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16ZeroRegClass,
&Mips::GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MovePRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16MovePPairSecondRegClass,
&Mips::ACC64DSPRegClass,
&Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16ZeroRegClass,
&Mips::GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecondRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16MovePPairFirstRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16ZeroRegClass,
&Mips::OCTEON_MPLRegClass,
&Mips::OCTEON_PRegClass,
&Mips::GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecondRegClass,
&Mips::ACC64RegClass,
&Mips::GP64RegClass,
&Mips::GPR64_with_sub_32_in_CPURARegRegClass,
&Mips::GPR64_with_sub_32_in_GPR32ZERORegClass,
&Mips::HI64RegClass,
&Mips::LO64RegClass,
&Mips::SP64RegClass,
&Mips::MSA128BRegClass,
&Mips::MSA128DRegClass,
&Mips::MSA128HRegClass,
&Mips::MSA128WRegClass,
&Mips::MSA128WEvensRegClass,
&Mips::ACC128RegClass,
};
} // end anonymous namespace
static const uint8_t CostPerUseTable[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, };
static const bool InAllocatableClassTable[] = {
false, true, true, false, false, false, false, false, true, true, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, };
static const TargetRegisterInfoDesc MipsRegInfoDesc = { // Extra Descriptors
CostPerUseTable, 1, InAllocatableClassTable};
unsigned MipsGenRegisterInfo::composeSubRegIndicesImpl(unsigned IdxA, unsigned IdxB) const {
static const uint8_t RowMap[11] = {
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1,
};
static const uint8_t Rows[2][11] = {
{ Mips::sub_hi_then_sub_32, 0, 0, 0, 0, 0, 0, Mips::sub_hi, Mips::sub_lo, 0, 0, },
{ Mips::sub_32, 0, 0, 0, 0, 0, 0, Mips::sub_hi_then_sub_32, Mips::sub_32, 0, 0, },
};
--IdxA; assert(IdxA < 11); (void) IdxA;
--IdxB; assert(IdxB < 11);
return Rows[RowMap[IdxA]][IdxB];
}
struct MaskRolOp {
LaneBitmask Mask;
uint8_t RotateLeft;
};
static const MaskRolOp LaneMaskComposeSequences[] = {
{ LaneBitmask(0xFFFFFFFFFFFFFFFF), 0 }, { LaneBitmask::getNone(), 0 }, // Sequence 0
{ LaneBitmask(0xFFFFFFFFFFFFFFFF), 1 }, { LaneBitmask::getNone(), 0 }, // Sequence 2
{ LaneBitmask(0xFFFFFFFFFFFFFFFF), 2 }, { LaneBitmask::getNone(), 0 }, // Sequence 4
{ LaneBitmask(0xFFFFFFFFFFFFFFFF), 3 }, { LaneBitmask::getNone(), 0 }, // Sequence 6
{ LaneBitmask(0xFFFFFFFFFFFFFFFF), 4 }, { LaneBitmask::getNone(), 0 }, // Sequence 8
{ LaneBitmask(0xFFFFFFFFFFFFFFFF), 5 }, { LaneBitmask::getNone(), 0 }, // Sequence 10
{ LaneBitmask(0xFFFFFFFFFFFFFFFF), 6 }, { LaneBitmask::getNone(), 0 } // Sequence 12
};
static const uint8_t CompositeSequences[] = {
0, // to sub_32
0, // to sub_64
2, // to sub_dsp16_19
4, // to sub_dsp20
6, // to sub_dsp21
8, // to sub_dsp22
10, // to sub_dsp23
12, // to sub_hi
0, // to sub_lo
12, // to sub_hi_then_sub_32
0 // to sub_32_sub_hi_then_sub_32
};
LaneBitmask MipsGenRegisterInfo::composeSubRegIndexLaneMaskImpl(unsigned IdxA, LaneBitmask LaneMask) const {
--IdxA; assert(IdxA < 11 && "Subregister index out of bounds");
LaneBitmask Result;
for (const MaskRolOp *Ops =
&LaneMaskComposeSequences[CompositeSequences[IdxA]];
Ops->Mask.any(); ++Ops) {
LaneBitmask::Type M = LaneMask.getAsInteger() & Ops->Mask.getAsInteger();
if (unsigned S = Ops->RotateLeft)
Result |= LaneBitmask((M << S) | (M >> (LaneBitmask::BitWidth - S)));
else
Result |= LaneBitmask(M);
}
return Result;
}
LaneBitmask MipsGenRegisterInfo::reverseComposeSubRegIndexLaneMaskImpl(unsigned IdxA, LaneBitmask LaneMask) const {
LaneMask &= getSubRegIndexLaneMask(IdxA);
--IdxA; assert(IdxA < 11 && "Subregister index out of bounds");
LaneBitmask Result;
for (const MaskRolOp *Ops =
&LaneMaskComposeSequences[CompositeSequences[IdxA]];
Ops->Mask.any(); ++Ops) {
LaneBitmask::Type M = LaneMask.getAsInteger();
if (unsigned S = Ops->RotateLeft)
Result |= LaneBitmask((M >> S) | (M << (LaneBitmask::BitWidth - S)));
else
Result |= LaneBitmask(M);
}
return Result;
}
const TargetRegisterClass *MipsGenRegisterInfo::getSubClassWithSubReg(const TargetRegisterClass *RC, unsigned Idx) const {
static const uint8_t Table[70][11] = {
{ // MSA128F16
0, // sub_32
1, // sub_64 -> MSA128F16
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
1, // sub_hi -> MSA128F16
1, // sub_lo -> MSA128F16
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // CCR
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // COP0
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // COP2
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // COP3
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // DSPR
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // FGR32
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // FGRCC
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR32
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // HWRegs
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // MSACtrl
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR32NONZERO
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // CPU16RegsPlusSP
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // CPU16Regs
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // FCC
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPRMM16
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPRMM16MoveP
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPRMM16Zero
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // CPU16Regs_and_GPRMM16Zero
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR32NONZERO_and_GPRMM16MoveP
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPRMM16MovePPairSecond
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // CPU16Regs_and_GPRMM16MoveP
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPRMM16MoveP_and_GPRMM16Zero
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // HI32DSP
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // LO32DSP
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // CPU16Regs_and_GPRMM16MovePPairSecond
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPRMM16MovePPairFirst
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // CPURAReg
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // CPUSPReg
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // DSPCC
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GP32
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR32ZERO
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // HI32
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // LO32
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // SP32
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // FGR64
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
38, // sub_hi -> FGR64
38, // sub_lo -> FGR64
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR64
39, // sub_32 -> GPR64
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPR32NONZERO
40, // sub_32 -> GPR64_with_sub_32_in_GPR32NONZERO
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // AFGR64
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
41, // sub_hi -> AFGR64
41, // sub_lo -> AFGR64
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_CPU16RegsPlusSP
42, // sub_32 -> GPR64_with_sub_32_in_CPU16RegsPlusSP
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_CPU16Regs
43, // sub_32 -> GPR64_with_sub_32_in_CPU16Regs
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPRMM16MoveP
44, // sub_32 -> GPR64_with_sub_32_in_GPRMM16MoveP
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPRMM16Zero
45, // sub_32 -> GPR64_with_sub_32_in_GPRMM16Zero
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero
46, // sub_32 -> GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP
47, // sub_32 -> GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPRMM16MovePPairSecond
48, // sub_32 -> GPR64_with_sub_32_in_GPRMM16MovePPairSecond
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // ACC64DSP
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
49, // sub_hi -> ACC64DSP
49, // sub_lo -> ACC64DSP
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP
50, // sub_32 -> GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero
51, // sub_32 -> GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond
52, // sub_32 -> GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPRMM16MovePPairFirst
53, // sub_32 -> GPR64_with_sub_32_in_GPRMM16MovePPairFirst
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero
54, // sub_32 -> GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // OCTEON_MPL
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // OCTEON_P
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond
57, // sub_32 -> GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // ACC64
0, // sub_32
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
58, // sub_hi -> ACC64
58, // sub_lo -> ACC64
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GP64
59, // sub_32 -> GP64
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_CPURAReg
60, // sub_32 -> GPR64_with_sub_32_in_CPURAReg
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPR32ZERO
61, // sub_32 -> GPR64_with_sub_32_in_GPR32ZERO
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // HI64
62, // sub_32 -> HI64
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // LO64
63, // sub_32 -> LO64
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // SP64
64, // sub_32 -> SP64
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
0, // sub_hi
0, // sub_lo
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // MSA128B
0, // sub_32
65, // sub_64 -> MSA128B
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
65, // sub_hi -> MSA128B
65, // sub_lo -> MSA128B
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // MSA128D
0, // sub_32
66, // sub_64 -> MSA128D
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
66, // sub_hi -> MSA128D
66, // sub_lo -> MSA128D
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // MSA128H
0, // sub_32
67, // sub_64 -> MSA128H
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
67, // sub_hi -> MSA128H
67, // sub_lo -> MSA128H
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // MSA128W
0, // sub_32
68, // sub_64 -> MSA128W
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
68, // sub_hi -> MSA128W
68, // sub_lo -> MSA128W
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // MSA128WEvens
0, // sub_32
69, // sub_64 -> MSA128WEvens
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
69, // sub_hi -> MSA128WEvens
69, // sub_lo -> MSA128WEvens
0, // sub_hi_then_sub_32
0, // sub_32_sub_hi_then_sub_32
},
{ // ACC128
70, // sub_32 -> ACC128
0, // sub_64
0, // sub_dsp16_19
0, // sub_dsp20
0, // sub_dsp21
0, // sub_dsp22
0, // sub_dsp23
70, // sub_hi -> ACC128
70, // sub_lo -> ACC128
70, // sub_hi_then_sub_32 -> ACC128
70, // sub_32_sub_hi_then_sub_32 -> ACC128
},
};
assert(RC && "Missing regclass");
if (!Idx) return RC;
--Idx;
assert(Idx < 11 && "Bad subreg");
unsigned TV = Table[RC->getID()][Idx];
return TV ? getRegClass(TV - 1) : nullptr;
}
const TargetRegisterClass *MipsGenRegisterInfo::getSubRegisterClass(const TargetRegisterClass *RC, unsigned Idx) const {
static const uint8_t Table[70][11] = {
{ // MSA128F16
0, // MSA128F16:sub_32
38, // MSA128F16:sub_64 -> FGR64
0, // MSA128F16:sub_dsp16_19
0, // MSA128F16:sub_dsp20
0, // MSA128F16:sub_dsp21
0, // MSA128F16:sub_dsp22
0, // MSA128F16:sub_dsp23
0, // MSA128F16:sub_hi
7, // MSA128F16:sub_lo -> FGR32
0, // MSA128F16:sub_hi_then_sub_32
0, // MSA128F16:sub_32_sub_hi_then_sub_32
},
{ // CCR
0, // CCR:sub_32
0, // CCR:sub_64
0, // CCR:sub_dsp16_19
0, // CCR:sub_dsp20
0, // CCR:sub_dsp21
0, // CCR:sub_dsp22
0, // CCR:sub_dsp23
0, // CCR:sub_hi
0, // CCR:sub_lo
0, // CCR:sub_hi_then_sub_32
0, // CCR:sub_32_sub_hi_then_sub_32
},
{ // COP0
0, // COP0:sub_32
0, // COP0:sub_64
0, // COP0:sub_dsp16_19
0, // COP0:sub_dsp20
0, // COP0:sub_dsp21
0, // COP0:sub_dsp22
0, // COP0:sub_dsp23
0, // COP0:sub_hi
0, // COP0:sub_lo
0, // COP0:sub_hi_then_sub_32
0, // COP0:sub_32_sub_hi_then_sub_32
},
{ // COP2
0, // COP2:sub_32
0, // COP2:sub_64
0, // COP2:sub_dsp16_19
0, // COP2:sub_dsp20
0, // COP2:sub_dsp21
0, // COP2:sub_dsp22
0, // COP2:sub_dsp23
0, // COP2:sub_hi
0, // COP2:sub_lo
0, // COP2:sub_hi_then_sub_32
0, // COP2:sub_32_sub_hi_then_sub_32
},
{ // COP3
0, // COP3:sub_32
0, // COP3:sub_64
0, // COP3:sub_dsp16_19
0, // COP3:sub_dsp20
0, // COP3:sub_dsp21
0, // COP3:sub_dsp22
0, // COP3:sub_dsp23
0, // COP3:sub_hi
0, // COP3:sub_lo
0, // COP3:sub_hi_then_sub_32
0, // COP3:sub_32_sub_hi_then_sub_32
},
{ // DSPR
0, // DSPR:sub_32
0, // DSPR:sub_64
0, // DSPR:sub_dsp16_19
0, // DSPR:sub_dsp20
0, // DSPR:sub_dsp21
0, // DSPR:sub_dsp22
0, // DSPR:sub_dsp23
0, // DSPR:sub_hi
0, // DSPR:sub_lo
0, // DSPR:sub_hi_then_sub_32
0, // DSPR:sub_32_sub_hi_then_sub_32
},
{ // FGR32
0, // FGR32:sub_32
0, // FGR32:sub_64
0, // FGR32:sub_dsp16_19
0, // FGR32:sub_dsp20
0, // FGR32:sub_dsp21
0, // FGR32:sub_dsp22
0, // FGR32:sub_dsp23
0, // FGR32:sub_hi
0, // FGR32:sub_lo
0, // FGR32:sub_hi_then_sub_32
0, // FGR32:sub_32_sub_hi_then_sub_32
},
{ // FGRCC
0, // FGRCC:sub_32
0, // FGRCC:sub_64
0, // FGRCC:sub_dsp16_19
0, // FGRCC:sub_dsp20
0, // FGRCC:sub_dsp21
0, // FGRCC:sub_dsp22
0, // FGRCC:sub_dsp23
0, // FGRCC:sub_hi
0, // FGRCC:sub_lo
0, // FGRCC:sub_hi_then_sub_32
0, // FGRCC:sub_32_sub_hi_then_sub_32
},
{ // GPR32
0, // GPR32:sub_32
0, // GPR32:sub_64
0, // GPR32:sub_dsp16_19
0, // GPR32:sub_dsp20
0, // GPR32:sub_dsp21
0, // GPR32:sub_dsp22
0, // GPR32:sub_dsp23
0, // GPR32:sub_hi
0, // GPR32:sub_lo
0, // GPR32:sub_hi_then_sub_32
0, // GPR32:sub_32_sub_hi_then_sub_32
},
{ // HWRegs
0, // HWRegs:sub_32
0, // HWRegs:sub_64
0, // HWRegs:sub_dsp16_19
0, // HWRegs:sub_dsp20
0, // HWRegs:sub_dsp21
0, // HWRegs:sub_dsp22
0, // HWRegs:sub_dsp23
0, // HWRegs:sub_hi
0, // HWRegs:sub_lo
0, // HWRegs:sub_hi_then_sub_32
0, // HWRegs:sub_32_sub_hi_then_sub_32
},
{ // MSACtrl
0, // MSACtrl:sub_32
0, // MSACtrl:sub_64
0, // MSACtrl:sub_dsp16_19
0, // MSACtrl:sub_dsp20
0, // MSACtrl:sub_dsp21
0, // MSACtrl:sub_dsp22
0, // MSACtrl:sub_dsp23
0, // MSACtrl:sub_hi
0, // MSACtrl:sub_lo
0, // MSACtrl:sub_hi_then_sub_32
0, // MSACtrl:sub_32_sub_hi_then_sub_32
},
{ // GPR32NONZERO
0, // GPR32NONZERO:sub_32
0, // GPR32NONZERO:sub_64
0, // GPR32NONZERO:sub_dsp16_19
0, // GPR32NONZERO:sub_dsp20
0, // GPR32NONZERO:sub_dsp21
0, // GPR32NONZERO:sub_dsp22
0, // GPR32NONZERO:sub_dsp23
0, // GPR32NONZERO:sub_hi
0, // GPR32NONZERO:sub_lo
0, // GPR32NONZERO:sub_hi_then_sub_32
0, // GPR32NONZERO:sub_32_sub_hi_then_sub_32
},
{ // CPU16RegsPlusSP
0, // CPU16RegsPlusSP:sub_32
0, // CPU16RegsPlusSP:sub_64
0, // CPU16RegsPlusSP:sub_dsp16_19
0, // CPU16RegsPlusSP:sub_dsp20
0, // CPU16RegsPlusSP:sub_dsp21
0, // CPU16RegsPlusSP:sub_dsp22
0, // CPU16RegsPlusSP:sub_dsp23
0, // CPU16RegsPlusSP:sub_hi
0, // CPU16RegsPlusSP:sub_lo
0, // CPU16RegsPlusSP:sub_hi_then_sub_32
0, // CPU16RegsPlusSP:sub_32_sub_hi_then_sub_32
},
{ // CPU16Regs
0, // CPU16Regs:sub_32
0, // CPU16Regs:sub_64
0, // CPU16Regs:sub_dsp16_19
0, // CPU16Regs:sub_dsp20
0, // CPU16Regs:sub_dsp21
0, // CPU16Regs:sub_dsp22
0, // CPU16Regs:sub_dsp23
0, // CPU16Regs:sub_hi
0, // CPU16Regs:sub_lo
0, // CPU16Regs:sub_hi_then_sub_32
0, // CPU16Regs:sub_32_sub_hi_then_sub_32
},
{ // FCC
0, // FCC:sub_32
0, // FCC:sub_64
0, // FCC:sub_dsp16_19
0, // FCC:sub_dsp20
0, // FCC:sub_dsp21
0, // FCC:sub_dsp22
0, // FCC:sub_dsp23
0, // FCC:sub_hi
0, // FCC:sub_lo
0, // FCC:sub_hi_then_sub_32
0, // FCC:sub_32_sub_hi_then_sub_32
},
{ // GPRMM16
0, // GPRMM16:sub_32
0, // GPRMM16:sub_64
0, // GPRMM16:sub_dsp16_19
0, // GPRMM16:sub_dsp20
0, // GPRMM16:sub_dsp21
0, // GPRMM16:sub_dsp22
0, // GPRMM16:sub_dsp23
0, // GPRMM16:sub_hi
0, // GPRMM16:sub_lo
0, // GPRMM16:sub_hi_then_sub_32
0, // GPRMM16:sub_32_sub_hi_then_sub_32
},
{ // GPRMM16MoveP
0, // GPRMM16MoveP:sub_32
0, // GPRMM16MoveP:sub_64
0, // GPRMM16MoveP:sub_dsp16_19
0, // GPRMM16MoveP:sub_dsp20
0, // GPRMM16MoveP:sub_dsp21
0, // GPRMM16MoveP:sub_dsp22
0, // GPRMM16MoveP:sub_dsp23
0, // GPRMM16MoveP:sub_hi
0, // GPRMM16MoveP:sub_lo
0, // GPRMM16MoveP:sub_hi_then_sub_32
0, // GPRMM16MoveP:sub_32_sub_hi_then_sub_32
},
{ // GPRMM16Zero
0, // GPRMM16Zero:sub_32
0, // GPRMM16Zero:sub_64
0, // GPRMM16Zero:sub_dsp16_19
0, // GPRMM16Zero:sub_dsp20
0, // GPRMM16Zero:sub_dsp21
0, // GPRMM16Zero:sub_dsp22
0, // GPRMM16Zero:sub_dsp23
0, // GPRMM16Zero:sub_hi
0, // GPRMM16Zero:sub_lo
0, // GPRMM16Zero:sub_hi_then_sub_32
0, // GPRMM16Zero:sub_32_sub_hi_then_sub_32
},
{ // CPU16Regs_and_GPRMM16Zero
0, // CPU16Regs_and_GPRMM16Zero:sub_32
0, // CPU16Regs_and_GPRMM16Zero:sub_64
0, // CPU16Regs_and_GPRMM16Zero:sub_dsp16_19
0, // CPU16Regs_and_GPRMM16Zero:sub_dsp20
0, // CPU16Regs_and_GPRMM16Zero:sub_dsp21
0, // CPU16Regs_and_GPRMM16Zero:sub_dsp22
0, // CPU16Regs_and_GPRMM16Zero:sub_dsp23
0, // CPU16Regs_and_GPRMM16Zero:sub_hi
0, // CPU16Regs_and_GPRMM16Zero:sub_lo
0, // CPU16Regs_and_GPRMM16Zero:sub_hi_then_sub_32
0, // CPU16Regs_and_GPRMM16Zero:sub_32_sub_hi_then_sub_32
},
{ // GPR32NONZERO_and_GPRMM16MoveP
0, // GPR32NONZERO_and_GPRMM16MoveP:sub_32
0, // GPR32NONZERO_and_GPRMM16MoveP:sub_64
0, // GPR32NONZERO_and_GPRMM16MoveP:sub_dsp16_19
0, // GPR32NONZERO_and_GPRMM16MoveP:sub_dsp20
0, // GPR32NONZERO_and_GPRMM16MoveP:sub_dsp21
0, // GPR32NONZERO_and_GPRMM16MoveP:sub_dsp22
0, // GPR32NONZERO_and_GPRMM16MoveP:sub_dsp23
0, // GPR32NONZERO_and_GPRMM16MoveP:sub_hi
0, // GPR32NONZERO_and_GPRMM16MoveP:sub_lo
0, // GPR32NONZERO_and_GPRMM16MoveP:sub_hi_then_sub_32
0, // GPR32NONZERO_and_GPRMM16MoveP:sub_32_sub_hi_then_sub_32
},
{ // GPRMM16MovePPairSecond
0, // GPRMM16MovePPairSecond:sub_32
0, // GPRMM16MovePPairSecond:sub_64
0, // GPRMM16MovePPairSecond:sub_dsp16_19
0, // GPRMM16MovePPairSecond:sub_dsp20
0, // GPRMM16MovePPairSecond:sub_dsp21
0, // GPRMM16MovePPairSecond:sub_dsp22
0, // GPRMM16MovePPairSecond:sub_dsp23
0, // GPRMM16MovePPairSecond:sub_hi
0, // GPRMM16MovePPairSecond:sub_lo
0, // GPRMM16MovePPairSecond:sub_hi_then_sub_32
0, // GPRMM16MovePPairSecond:sub_32_sub_hi_then_sub_32
},
{ // CPU16Regs_and_GPRMM16MoveP
0, // CPU16Regs_and_GPRMM16MoveP:sub_32
0, // CPU16Regs_and_GPRMM16MoveP:sub_64
0, // CPU16Regs_and_GPRMM16MoveP:sub_dsp16_19
0, // CPU16Regs_and_GPRMM16MoveP:sub_dsp20
0, // CPU16Regs_and_GPRMM16MoveP:sub_dsp21
0, // CPU16Regs_and_GPRMM16MoveP:sub_dsp22
0, // CPU16Regs_and_GPRMM16MoveP:sub_dsp23
0, // CPU16Regs_and_GPRMM16MoveP:sub_hi
0, // CPU16Regs_and_GPRMM16MoveP:sub_lo
0, // CPU16Regs_and_GPRMM16MoveP:sub_hi_then_sub_32
0, // CPU16Regs_and_GPRMM16MoveP:sub_32_sub_hi_then_sub_32
},
{ // GPRMM16MoveP_and_GPRMM16Zero
0, // GPRMM16MoveP_and_GPRMM16Zero:sub_32
0, // GPRMM16MoveP_and_GPRMM16Zero:sub_64
0, // GPRMM16MoveP_and_GPRMM16Zero:sub_dsp16_19
0, // GPRMM16MoveP_and_GPRMM16Zero:sub_dsp20
0, // GPRMM16MoveP_and_GPRMM16Zero:sub_dsp21
0, // GPRMM16MoveP_and_GPRMM16Zero:sub_dsp22
0, // GPRMM16MoveP_and_GPRMM16Zero:sub_dsp23
0, // GPRMM16MoveP_and_GPRMM16Zero:sub_hi
0, // GPRMM16MoveP_and_GPRMM16Zero:sub_lo
0, // GPRMM16MoveP_and_GPRMM16Zero:sub_hi_then_sub_32
0, // GPRMM16MoveP_and_GPRMM16Zero:sub_32_sub_hi_then_sub_32
},
{ // HI32DSP
0, // HI32DSP:sub_32
0, // HI32DSP:sub_64
0, // HI32DSP:sub_dsp16_19
0, // HI32DSP:sub_dsp20
0, // HI32DSP:sub_dsp21
0, // HI32DSP:sub_dsp22
0, // HI32DSP:sub_dsp23
0, // HI32DSP:sub_hi
0, // HI32DSP:sub_lo
0, // HI32DSP:sub_hi_then_sub_32
0, // HI32DSP:sub_32_sub_hi_then_sub_32
},
{ // LO32DSP
0, // LO32DSP:sub_32
0, // LO32DSP:sub_64
0, // LO32DSP:sub_dsp16_19
0, // LO32DSP:sub_dsp20
0, // LO32DSP:sub_dsp21
0, // LO32DSP:sub_dsp22
0, // LO32DSP:sub_dsp23
0, // LO32DSP:sub_hi
0, // LO32DSP:sub_lo
0, // LO32DSP:sub_hi_then_sub_32
0, // LO32DSP:sub_32_sub_hi_then_sub_32
},
{ // CPU16Regs_and_GPRMM16MovePPairSecond
0, // CPU16Regs_and_GPRMM16MovePPairSecond:sub_32
0, // CPU16Regs_and_GPRMM16MovePPairSecond:sub_64
0, // CPU16Regs_and_GPRMM16MovePPairSecond:sub_dsp16_19
0, // CPU16Regs_and_GPRMM16MovePPairSecond:sub_dsp20
0, // CPU16Regs_and_GPRMM16MovePPairSecond:sub_dsp21
0, // CPU16Regs_and_GPRMM16MovePPairSecond:sub_dsp22
0, // CPU16Regs_and_GPRMM16MovePPairSecond:sub_dsp23
0, // CPU16Regs_and_GPRMM16MovePPairSecond:sub_hi
0, // CPU16Regs_and_GPRMM16MovePPairSecond:sub_lo
0, // CPU16Regs_and_GPRMM16MovePPairSecond:sub_hi_then_sub_32
0, // CPU16Regs_and_GPRMM16MovePPairSecond:sub_32_sub_hi_then_sub_32
},
{ // GPRMM16MovePPairFirst
0, // GPRMM16MovePPairFirst:sub_32
0, // GPRMM16MovePPairFirst:sub_64
0, // GPRMM16MovePPairFirst:sub_dsp16_19
0, // GPRMM16MovePPairFirst:sub_dsp20
0, // GPRMM16MovePPairFirst:sub_dsp21
0, // GPRMM16MovePPairFirst:sub_dsp22
0, // GPRMM16MovePPairFirst:sub_dsp23
0, // GPRMM16MovePPairFirst:sub_hi
0, // GPRMM16MovePPairFirst:sub_lo
0, // GPRMM16MovePPairFirst:sub_hi_then_sub_32
0, // GPRMM16MovePPairFirst:sub_32_sub_hi_then_sub_32
},
{ // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero
0, // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_32
0, // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_64
0, // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_dsp16_19
0, // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_dsp20
0, // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_dsp21
0, // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_dsp22
0, // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_dsp23
0, // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_hi
0, // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_lo
0, // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_hi_then_sub_32
0, // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_32_sub_hi_then_sub_32
},
{ // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond
0, // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_32
0, // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_64
0, // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_dsp16_19
0, // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_dsp20
0, // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_dsp21
0, // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_dsp22
0, // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_dsp23
0, // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_hi
0, // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_lo
0, // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_hi_then_sub_32
0, // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_32_sub_hi_then_sub_32
},
{ // CPURAReg
0, // CPURAReg:sub_32
0, // CPURAReg:sub_64
0, // CPURAReg:sub_dsp16_19
0, // CPURAReg:sub_dsp20
0, // CPURAReg:sub_dsp21
0, // CPURAReg:sub_dsp22
0, // CPURAReg:sub_dsp23
0, // CPURAReg:sub_hi
0, // CPURAReg:sub_lo
0, // CPURAReg:sub_hi_then_sub_32
0, // CPURAReg:sub_32_sub_hi_then_sub_32
},
{ // CPUSPReg
0, // CPUSPReg:sub_32
0, // CPUSPReg:sub_64
0, // CPUSPReg:sub_dsp16_19
0, // CPUSPReg:sub_dsp20
0, // CPUSPReg:sub_dsp21
0, // CPUSPReg:sub_dsp22
0, // CPUSPReg:sub_dsp23
0, // CPUSPReg:sub_hi
0, // CPUSPReg:sub_lo
0, // CPUSPReg:sub_hi_then_sub_32
0, // CPUSPReg:sub_32_sub_hi_then_sub_32
},
{ // DSPCC
0, // DSPCC:sub_32
0, // DSPCC:sub_64
0, // DSPCC:sub_dsp16_19
0, // DSPCC:sub_dsp20
0, // DSPCC:sub_dsp21
0, // DSPCC:sub_dsp22
0, // DSPCC:sub_dsp23
0, // DSPCC:sub_hi
0, // DSPCC:sub_lo
0, // DSPCC:sub_hi_then_sub_32
0, // DSPCC:sub_32_sub_hi_then_sub_32
},
{ // GP32
0, // GP32:sub_32
0, // GP32:sub_64
0, // GP32:sub_dsp16_19
0, // GP32:sub_dsp20
0, // GP32:sub_dsp21
0, // GP32:sub_dsp22
0, // GP32:sub_dsp23
0, // GP32:sub_hi
0, // GP32:sub_lo
0, // GP32:sub_hi_then_sub_32
0, // GP32:sub_32_sub_hi_then_sub_32
},
{ // GPR32ZERO
0, // GPR32ZERO:sub_32
0, // GPR32ZERO:sub_64
0, // GPR32ZERO:sub_dsp16_19
0, // GPR32ZERO:sub_dsp20
0, // GPR32ZERO:sub_dsp21
0, // GPR32ZERO:sub_dsp22
0, // GPR32ZERO:sub_dsp23
0, // GPR32ZERO:sub_hi
0, // GPR32ZERO:sub_lo
0, // GPR32ZERO:sub_hi_then_sub_32
0, // GPR32ZERO:sub_32_sub_hi_then_sub_32
},
{ // HI32
0, // HI32:sub_32
0, // HI32:sub_64
0, // HI32:sub_dsp16_19
0, // HI32:sub_dsp20
0, // HI32:sub_dsp21
0, // HI32:sub_dsp22
0, // HI32:sub_dsp23
0, // HI32:sub_hi
0, // HI32:sub_lo
0, // HI32:sub_hi_then_sub_32
0, // HI32:sub_32_sub_hi_then_sub_32
},
{ // LO32
0, // LO32:sub_32
0, // LO32:sub_64
0, // LO32:sub_dsp16_19
0, // LO32:sub_dsp20
0, // LO32:sub_dsp21
0, // LO32:sub_dsp22
0, // LO32:sub_dsp23
0, // LO32:sub_hi
0, // LO32:sub_lo
0, // LO32:sub_hi_then_sub_32
0, // LO32:sub_32_sub_hi_then_sub_32
},
{ // SP32
0, // SP32:sub_32
0, // SP32:sub_64
0, // SP32:sub_dsp16_19
0, // SP32:sub_dsp20
0, // SP32:sub_dsp21
0, // SP32:sub_dsp22
0, // SP32:sub_dsp23
0, // SP32:sub_hi
0, // SP32:sub_lo
0, // SP32:sub_hi_then_sub_32
0, // SP32:sub_32_sub_hi_then_sub_32
},
{ // FGR64
0, // FGR64:sub_32
0, // FGR64:sub_64
0, // FGR64:sub_dsp16_19
0, // FGR64:sub_dsp20
0, // FGR64:sub_dsp21
0, // FGR64:sub_dsp22
0, // FGR64:sub_dsp23
0, // FGR64:sub_hi
7, // FGR64:sub_lo -> FGR32
0, // FGR64:sub_hi_then_sub_32
0, // FGR64:sub_32_sub_hi_then_sub_32
},
{ // GPR64
6, // GPR64:sub_32 -> DSPR
0, // GPR64:sub_64
0, // GPR64:sub_dsp16_19
0, // GPR64:sub_dsp20
0, // GPR64:sub_dsp21
0, // GPR64:sub_dsp22
0, // GPR64:sub_dsp23
0, // GPR64:sub_hi
0, // GPR64:sub_lo
0, // GPR64:sub_hi_then_sub_32
0, // GPR64:sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPR32NONZERO
12, // GPR64_with_sub_32_in_GPR32NONZERO:sub_32 -> GPR32NONZERO
0, // GPR64_with_sub_32_in_GPR32NONZERO:sub_64
0, // GPR64_with_sub_32_in_GPR32NONZERO:sub_dsp16_19
0, // GPR64_with_sub_32_in_GPR32NONZERO:sub_dsp20
0, // GPR64_with_sub_32_in_GPR32NONZERO:sub_dsp21
0, // GPR64_with_sub_32_in_GPR32NONZERO:sub_dsp22
0, // GPR64_with_sub_32_in_GPR32NONZERO:sub_dsp23
0, // GPR64_with_sub_32_in_GPR32NONZERO:sub_hi
0, // GPR64_with_sub_32_in_GPR32NONZERO:sub_lo
0, // GPR64_with_sub_32_in_GPR32NONZERO:sub_hi_then_sub_32
0, // GPR64_with_sub_32_in_GPR32NONZERO:sub_32_sub_hi_then_sub_32
},
{ // AFGR64
0, // AFGR64:sub_32
0, // AFGR64:sub_64
0, // AFGR64:sub_dsp16_19
0, // AFGR64:sub_dsp20
0, // AFGR64:sub_dsp21
0, // AFGR64:sub_dsp22
0, // AFGR64:sub_dsp23
8, // AFGR64:sub_hi -> FGRCC
8, // AFGR64:sub_lo -> FGRCC
0, // AFGR64:sub_hi_then_sub_32
0, // AFGR64:sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_CPU16RegsPlusSP
13, // GPR64_with_sub_32_in_CPU16RegsPlusSP:sub_32 -> CPU16RegsPlusSP
0, // GPR64_with_sub_32_in_CPU16RegsPlusSP:sub_64
0, // GPR64_with_sub_32_in_CPU16RegsPlusSP:sub_dsp16_19
0, // GPR64_with_sub_32_in_CPU16RegsPlusSP:sub_dsp20
0, // GPR64_with_sub_32_in_CPU16RegsPlusSP:sub_dsp21
0, // GPR64_with_sub_32_in_CPU16RegsPlusSP:sub_dsp22
0, // GPR64_with_sub_32_in_CPU16RegsPlusSP:sub_dsp23
0, // GPR64_with_sub_32_in_CPU16RegsPlusSP:sub_hi
0, // GPR64_with_sub_32_in_CPU16RegsPlusSP:sub_lo
0, // GPR64_with_sub_32_in_CPU16RegsPlusSP:sub_hi_then_sub_32
0, // GPR64_with_sub_32_in_CPU16RegsPlusSP:sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_CPU16Regs
14, // GPR64_with_sub_32_in_CPU16Regs:sub_32 -> CPU16Regs
0, // GPR64_with_sub_32_in_CPU16Regs:sub_64
0, // GPR64_with_sub_32_in_CPU16Regs:sub_dsp16_19
0, // GPR64_with_sub_32_in_CPU16Regs:sub_dsp20
0, // GPR64_with_sub_32_in_CPU16Regs:sub_dsp21
0, // GPR64_with_sub_32_in_CPU16Regs:sub_dsp22
0, // GPR64_with_sub_32_in_CPU16Regs:sub_dsp23
0, // GPR64_with_sub_32_in_CPU16Regs:sub_hi
0, // GPR64_with_sub_32_in_CPU16Regs:sub_lo
0, // GPR64_with_sub_32_in_CPU16Regs:sub_hi_then_sub_32
0, // GPR64_with_sub_32_in_CPU16Regs:sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPRMM16MoveP
17, // GPR64_with_sub_32_in_GPRMM16MoveP:sub_32 -> GPRMM16MoveP
0, // GPR64_with_sub_32_in_GPRMM16MoveP:sub_64
0, // GPR64_with_sub_32_in_GPRMM16MoveP:sub_dsp16_19
0, // GPR64_with_sub_32_in_GPRMM16MoveP:sub_dsp20
0, // GPR64_with_sub_32_in_GPRMM16MoveP:sub_dsp21
0, // GPR64_with_sub_32_in_GPRMM16MoveP:sub_dsp22
0, // GPR64_with_sub_32_in_GPRMM16MoveP:sub_dsp23
0, // GPR64_with_sub_32_in_GPRMM16MoveP:sub_hi
0, // GPR64_with_sub_32_in_GPRMM16MoveP:sub_lo
0, // GPR64_with_sub_32_in_GPRMM16MoveP:sub_hi_then_sub_32
0, // GPR64_with_sub_32_in_GPRMM16MoveP:sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPRMM16Zero
18, // GPR64_with_sub_32_in_GPRMM16Zero:sub_32 -> GPRMM16Zero
0, // GPR64_with_sub_32_in_GPRMM16Zero:sub_64
0, // GPR64_with_sub_32_in_GPRMM16Zero:sub_dsp16_19
0, // GPR64_with_sub_32_in_GPRMM16Zero:sub_dsp20
0, // GPR64_with_sub_32_in_GPRMM16Zero:sub_dsp21
0, // GPR64_with_sub_32_in_GPRMM16Zero:sub_dsp22
0, // GPR64_with_sub_32_in_GPRMM16Zero:sub_dsp23
0, // GPR64_with_sub_32_in_GPRMM16Zero:sub_hi
0, // GPR64_with_sub_32_in_GPRMM16Zero:sub_lo
0, // GPR64_with_sub_32_in_GPRMM16Zero:sub_hi_then_sub_32
0, // GPR64_with_sub_32_in_GPRMM16Zero:sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero
19, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero:sub_32 -> CPU16Regs_and_GPRMM16Zero
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero:sub_64
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero:sub_dsp16_19
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero:sub_dsp20
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero:sub_dsp21
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero:sub_dsp22
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero:sub_dsp23
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero:sub_hi
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero:sub_lo
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero:sub_hi_then_sub_32
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero:sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP
20, // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP:sub_32 -> GPR32NONZERO_and_GPRMM16MoveP
0, // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP:sub_64
0, // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP:sub_dsp16_19
0, // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP:sub_dsp20
0, // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP:sub_dsp21
0, // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP:sub_dsp22
0, // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP:sub_dsp23
0, // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP:sub_hi
0, // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP:sub_lo
0, // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP:sub_hi_then_sub_32
0, // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP:sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPRMM16MovePPairSecond
21, // GPR64_with_sub_32_in_GPRMM16MovePPairSecond:sub_32 -> GPRMM16MovePPairSecond
0, // GPR64_with_sub_32_in_GPRMM16MovePPairSecond:sub_64
0, // GPR64_with_sub_32_in_GPRMM16MovePPairSecond:sub_dsp16_19
0, // GPR64_with_sub_32_in_GPRMM16MovePPairSecond:sub_dsp20
0, // GPR64_with_sub_32_in_GPRMM16MovePPairSecond:sub_dsp21
0, // GPR64_with_sub_32_in_GPRMM16MovePPairSecond:sub_dsp22
0, // GPR64_with_sub_32_in_GPRMM16MovePPairSecond:sub_dsp23
0, // GPR64_with_sub_32_in_GPRMM16MovePPairSecond:sub_hi
0, // GPR64_with_sub_32_in_GPRMM16MovePPairSecond:sub_lo
0, // GPR64_with_sub_32_in_GPRMM16MovePPairSecond:sub_hi_then_sub_32
0, // GPR64_with_sub_32_in_GPRMM16MovePPairSecond:sub_32_sub_hi_then_sub_32
},
{ // ACC64DSP
0, // ACC64DSP:sub_32
0, // ACC64DSP:sub_64
0, // ACC64DSP:sub_dsp16_19
0, // ACC64DSP:sub_dsp20
0, // ACC64DSP:sub_dsp21
0, // ACC64DSP:sub_dsp22
0, // ACC64DSP:sub_dsp23
24, // ACC64DSP:sub_hi -> HI32DSP
25, // ACC64DSP:sub_lo -> LO32DSP
0, // ACC64DSP:sub_hi_then_sub_32
0, // ACC64DSP:sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP
22, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP:sub_32 -> CPU16Regs_and_GPRMM16MoveP
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP:sub_64
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP:sub_dsp16_19
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP:sub_dsp20
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP:sub_dsp21
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP:sub_dsp22
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP:sub_dsp23
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP:sub_hi
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP:sub_lo
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP:sub_hi_then_sub_32
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP:sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero
23, // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero:sub_32 -> GPRMM16MoveP_and_GPRMM16Zero
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero:sub_64
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero:sub_dsp16_19
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero:sub_dsp20
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero:sub_dsp21
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero:sub_dsp22
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero:sub_dsp23
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero:sub_hi
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero:sub_lo
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero:sub_hi_then_sub_32
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero:sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond
26, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond:sub_32 -> CPU16Regs_and_GPRMM16MovePPairSecond
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond:sub_64
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond:sub_dsp16_19
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond:sub_dsp20
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond:sub_dsp21
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond:sub_dsp22
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond:sub_dsp23
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond:sub_hi
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond:sub_lo
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond:sub_hi_then_sub_32
0, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond:sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPRMM16MovePPairFirst
27, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst:sub_32 -> GPRMM16MovePPairFirst
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst:sub_64
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst:sub_dsp16_19
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst:sub_dsp20
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst:sub_dsp21
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst:sub_dsp22
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst:sub_dsp23
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst:sub_hi
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst:sub_lo
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst:sub_hi_then_sub_32
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst:sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero
28, // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_32 -> GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_64
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_dsp16_19
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_dsp20
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_dsp21
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_dsp22
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_dsp23
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_hi
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_lo
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_hi_then_sub_32
0, // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero:sub_32_sub_hi_then_sub_32
},
{ // OCTEON_MPL
0, // OCTEON_MPL:sub_32
0, // OCTEON_MPL:sub_64
0, // OCTEON_MPL:sub_dsp16_19
0, // OCTEON_MPL:sub_dsp20
0, // OCTEON_MPL:sub_dsp21
0, // OCTEON_MPL:sub_dsp22
0, // OCTEON_MPL:sub_dsp23
0, // OCTEON_MPL:sub_hi
0, // OCTEON_MPL:sub_lo
0, // OCTEON_MPL:sub_hi_then_sub_32
0, // OCTEON_MPL:sub_32_sub_hi_then_sub_32
},
{ // OCTEON_P
0, // OCTEON_P:sub_32
0, // OCTEON_P:sub_64
0, // OCTEON_P:sub_dsp16_19
0, // OCTEON_P:sub_dsp20
0, // OCTEON_P:sub_dsp21
0, // OCTEON_P:sub_dsp22
0, // OCTEON_P:sub_dsp23
0, // OCTEON_P:sub_hi
0, // OCTEON_P:sub_lo
0, // OCTEON_P:sub_hi_then_sub_32
0, // OCTEON_P:sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond
29, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_32 -> GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_64
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_dsp16_19
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_dsp20
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_dsp21
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_dsp22
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_dsp23
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_hi
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_lo
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_hi_then_sub_32
0, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond:sub_32_sub_hi_then_sub_32
},
{ // ACC64
0, // ACC64:sub_32
0, // ACC64:sub_64
0, // ACC64:sub_dsp16_19
0, // ACC64:sub_dsp20
0, // ACC64:sub_dsp21
0, // ACC64:sub_dsp22
0, // ACC64:sub_dsp23
35, // ACC64:sub_hi -> HI32
36, // ACC64:sub_lo -> LO32
0, // ACC64:sub_hi_then_sub_32
0, // ACC64:sub_32_sub_hi_then_sub_32
},
{ // GP64
33, // GP64:sub_32 -> GP32
0, // GP64:sub_64
0, // GP64:sub_dsp16_19
0, // GP64:sub_dsp20
0, // GP64:sub_dsp21
0, // GP64:sub_dsp22
0, // GP64:sub_dsp23
0, // GP64:sub_hi
0, // GP64:sub_lo
0, // GP64:sub_hi_then_sub_32
0, // GP64:sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_CPURAReg
30, // GPR64_with_sub_32_in_CPURAReg:sub_32 -> CPURAReg
0, // GPR64_with_sub_32_in_CPURAReg:sub_64
0, // GPR64_with_sub_32_in_CPURAReg:sub_dsp16_19
0, // GPR64_with_sub_32_in_CPURAReg:sub_dsp20
0, // GPR64_with_sub_32_in_CPURAReg:sub_dsp21
0, // GPR64_with_sub_32_in_CPURAReg:sub_dsp22
0, // GPR64_with_sub_32_in_CPURAReg:sub_dsp23
0, // GPR64_with_sub_32_in_CPURAReg:sub_hi
0, // GPR64_with_sub_32_in_CPURAReg:sub_lo
0, // GPR64_with_sub_32_in_CPURAReg:sub_hi_then_sub_32
0, // GPR64_with_sub_32_in_CPURAReg:sub_32_sub_hi_then_sub_32
},
{ // GPR64_with_sub_32_in_GPR32ZERO
34, // GPR64_with_sub_32_in_GPR32ZERO:sub_32 -> GPR32ZERO
0, // GPR64_with_sub_32_in_GPR32ZERO:sub_64
0, // GPR64_with_sub_32_in_GPR32ZERO:sub_dsp16_19
0, // GPR64_with_sub_32_in_GPR32ZERO:sub_dsp20
0, // GPR64_with_sub_32_in_GPR32ZERO:sub_dsp21
0, // GPR64_with_sub_32_in_GPR32ZERO:sub_dsp22
0, // GPR64_with_sub_32_in_GPR32ZERO:sub_dsp23
0, // GPR64_with_sub_32_in_GPR32ZERO:sub_hi
0, // GPR64_with_sub_32_in_GPR32ZERO:sub_lo
0, // GPR64_with_sub_32_in_GPR32ZERO:sub_hi_then_sub_32
0, // GPR64_with_sub_32_in_GPR32ZERO:sub_32_sub_hi_then_sub_32
},
{ // HI64
35, // HI64:sub_32 -> HI32
0, // HI64:sub_64
0, // HI64:sub_dsp16_19
0, // HI64:sub_dsp20
0, // HI64:sub_dsp21
0, // HI64:sub_dsp22
0, // HI64:sub_dsp23
0, // HI64:sub_hi
0, // HI64:sub_lo
0, // HI64:sub_hi_then_sub_32
0, // HI64:sub_32_sub_hi_then_sub_32
},
{ // LO64
36, // LO64:sub_32 -> LO32
0, // LO64:sub_64
0, // LO64:sub_dsp16_19
0, // LO64:sub_dsp20
0, // LO64:sub_dsp21
0, // LO64:sub_dsp22
0, // LO64:sub_dsp23
0, // LO64:sub_hi
0, // LO64:sub_lo
0, // LO64:sub_hi_then_sub_32
0, // LO64:sub_32_sub_hi_then_sub_32
},
{ // SP64
31, // SP64:sub_32 -> CPUSPReg
0, // SP64:sub_64
0, // SP64:sub_dsp16_19
0, // SP64:sub_dsp20
0, // SP64:sub_dsp21
0, // SP64:sub_dsp22
0, // SP64:sub_dsp23
0, // SP64:sub_hi
0, // SP64:sub_lo
0, // SP64:sub_hi_then_sub_32
0, // SP64:sub_32_sub_hi_then_sub_32
},
{ // MSA128B
0, // MSA128B:sub_32
38, // MSA128B:sub_64 -> FGR64
0, // MSA128B:sub_dsp16_19
0, // MSA128B:sub_dsp20
0, // MSA128B:sub_dsp21
0, // MSA128B:sub_dsp22
0, // MSA128B:sub_dsp23
0, // MSA128B:sub_hi
7, // MSA128B:sub_lo -> FGR32
0, // MSA128B:sub_hi_then_sub_32
0, // MSA128B:sub_32_sub_hi_then_sub_32
},
{ // MSA128D
0, // MSA128D:sub_32
38, // MSA128D:sub_64 -> FGR64
0, // MSA128D:sub_dsp16_19
0, // MSA128D:sub_dsp20
0, // MSA128D:sub_dsp21
0, // MSA128D:sub_dsp22
0, // MSA128D:sub_dsp23
0, // MSA128D:sub_hi
7, // MSA128D:sub_lo -> FGR32
0, // MSA128D:sub_hi_then_sub_32
0, // MSA128D:sub_32_sub_hi_then_sub_32
},
{ // MSA128H
0, // MSA128H:sub_32
38, // MSA128H:sub_64 -> FGR64
0, // MSA128H:sub_dsp16_19
0, // MSA128H:sub_dsp20
0, // MSA128H:sub_dsp21
0, // MSA128H:sub_dsp22
0, // MSA128H:sub_dsp23
0, // MSA128H:sub_hi
7, // MSA128H:sub_lo -> FGR32
0, // MSA128H:sub_hi_then_sub_32
0, // MSA128H:sub_32_sub_hi_then_sub_32
},
{ // MSA128W
0, // MSA128W:sub_32
38, // MSA128W:sub_64 -> FGR64
0, // MSA128W:sub_dsp16_19
0, // MSA128W:sub_dsp20
0, // MSA128W:sub_dsp21
0, // MSA128W:sub_dsp22
0, // MSA128W:sub_dsp23
0, // MSA128W:sub_hi
7, // MSA128W:sub_lo -> FGR32
0, // MSA128W:sub_hi_then_sub_32
0, // MSA128W:sub_32_sub_hi_then_sub_32
},
{ // MSA128WEvens
0, // MSA128WEvens:sub_32
38, // MSA128WEvens:sub_64 -> FGR64
0, // MSA128WEvens:sub_dsp16_19
0, // MSA128WEvens:sub_dsp20
0, // MSA128WEvens:sub_dsp21
0, // MSA128WEvens:sub_dsp22
0, // MSA128WEvens:sub_dsp23
0, // MSA128WEvens:sub_hi
8, // MSA128WEvens:sub_lo -> FGRCC
0, // MSA128WEvens:sub_hi_then_sub_32
0, // MSA128WEvens:sub_32_sub_hi_then_sub_32
},
{ // ACC128
36, // ACC128:sub_32 -> LO32
0, // ACC128:sub_64
0, // ACC128:sub_dsp16_19
0, // ACC128:sub_dsp20
0, // ACC128:sub_dsp21
0, // ACC128:sub_dsp22
0, // ACC128:sub_dsp23
62, // ACC128:sub_hi -> HI64
63, // ACC128:sub_lo -> LO64
35, // ACC128:sub_hi_then_sub_32 -> HI32
58, // ACC128:sub_32_sub_hi_then_sub_32 -> ACC64
},
};
assert(RC && "Missing regclass");
if (!Idx) return RC;
--Idx;
assert(Idx < 11 && "Bad subreg");
unsigned TV = Table[RC->getID()][Idx];
return TV ? getRegClass(TV - 1) : nullptr;
}
/// Get the weight in units of pressure for this register class.
const RegClassWeight &MipsGenRegisterInfo::
getRegClassWeight(const TargetRegisterClass *RC) const {
static const RegClassWeight RCWeightTable[] = {
{2, 64}, // MSA128F16
{0, 0}, // CCR
{0, 0}, // COP0
{0, 0}, // COP2
{0, 0}, // COP3
{1, 32}, // DSPR
{1, 32}, // FGR32
{1, 32}, // FGRCC
{1, 32}, // GPR32
{0, 0}, // HWRegs
{0, 0}, // MSACtrl
{1, 31}, // GPR32NONZERO
{1, 9}, // CPU16RegsPlusSP
{1, 8}, // CPU16Regs
{0, 0}, // FCC
{1, 8}, // GPRMM16
{1, 8}, // GPRMM16MoveP
{1, 8}, // GPRMM16Zero
{1, 7}, // CPU16Regs_and_GPRMM16Zero
{1, 7}, // GPR32NONZERO_and_GPRMM16MoveP
{1, 5}, // GPRMM16MovePPairSecond
{1, 4}, // CPU16Regs_and_GPRMM16MoveP
{1, 4}, // GPRMM16MoveP_and_GPRMM16Zero
{1, 4}, // HI32DSP
{1, 4}, // LO32DSP
{1, 3}, // CPU16Regs_and_GPRMM16MovePPairSecond
{1, 3}, // GPRMM16MovePPairFirst
{1, 3}, // GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero
{1, 2}, // GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond
{1, 1}, // CPURAReg
{1, 1}, // CPUSPReg
{1, 1}, // DSPCC
{1, 1}, // GP32
{1, 1}, // GPR32ZERO
{1, 1}, // HI32
{1, 1}, // LO32
{1, 1}, // SP32
{2, 64}, // FGR64
{1, 32}, // GPR64
{1, 31}, // GPR64_with_sub_32_in_GPR32NONZERO
{2, 32}, // AFGR64
{1, 9}, // GPR64_with_sub_32_in_CPU16RegsPlusSP
{1, 8}, // GPR64_with_sub_32_in_CPU16Regs
{1, 8}, // GPR64_with_sub_32_in_GPRMM16MoveP
{1, 8}, // GPR64_with_sub_32_in_GPRMM16Zero
{1, 7}, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16Zero
{1, 7}, // GPR64_with_sub_32_in_GPR32NONZERO_and_GPRMM16MoveP
{1, 5}, // GPR64_with_sub_32_in_GPRMM16MovePPairSecond
{2, 8}, // ACC64DSP
{1, 4}, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MoveP
{1, 4}, // GPR64_with_sub_32_in_GPRMM16MoveP_and_GPRMM16Zero
{1, 3}, // GPR64_with_sub_32_in_CPU16Regs_and_GPRMM16MovePPairSecond
{1, 3}, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst
{1, 3}, // GPR64_with_sub_32_in_GPRMM16MoveP_and_CPU16Regs_and_GPRMM16Zero
{0, 0}, // OCTEON_MPL
{0, 0}, // OCTEON_P
{1, 2}, // GPR64_with_sub_32_in_GPRMM16MovePPairFirst_and_GPRMM16MovePPairSecond
{2, 2}, // ACC64
{1, 1}, // GP64
{1, 1}, // GPR64_with_sub_32_in_CPURAReg
{1, 1}, // GPR64_with_sub_32_in_GPR32ZERO
{1, 1}, // HI64
{1, 1}, // LO64
{1, 1}, // SP64
{2, 64}, // MSA128B
{2, 64}, // MSA128D
{2, 64}, // MSA128H
{2, 64}, // MSA128W
{2, 32}, // MSA128WEvens
{2, 2}, // ACC128
};
return RCWeightTable[RC->getID()];
}
/// Get the weight in units of pressure for this register unit.
unsigned MipsGenRegisterInfo::
getRegUnitWeight(unsigned RegUnit) const {
assert(RegUnit < 321 && "invalid register unit");
// All register units have unit weight.
return 1;
}
// Get the number of dimensions of register pressure.
unsigned MipsGenRegisterInfo::getNumRegPressureSets() const {
return 20;
}
// Get the name of this register unit pressure set.
const char *MipsGenRegisterInfo::
getRegPressureSetName(unsigned Idx) const {
static const char *PressureNameTable[] = {
"DSPCC",
"GPR32ZERO",
"GPR64_with_sub_32_in_CPURAReg",
"HI32",
"GPRMM16MovePPairFirst",
"CPU16Regs_and_GPRMM16MoveP",
"HI32DSP",
"LO32DSP",
"GPRMM16MovePPairSecond",
"GPRMM16MoveP",
"ACC64DSP",
"CPU16Regs",
"GPRMM16Zero_with_GPRMM16MovePPairSecond",
"CPU16Regs_with_GPRMM16MovePPairSecond",
"CPU16Regs_with_GPRMM16MoveP",
"DSPR",
"FGR32",
"MSA128WEvens",
"FGR32_with_MSA128WEvens",
"MSA128F16",
};
return PressureNameTable[Idx];
}
// Get the register unit pressure limit for this dimension.
// This limit must be adjusted dynamically for reserved registers.
unsigned MipsGenRegisterInfo::
getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const {
static const uint8_t PressureLimitTable[] = {
1, // 0: DSPCC
1, // 1: GPR32ZERO
1, // 2: GPR64_with_sub_32_in_CPURAReg
2, // 3: HI32
3, // 4: GPRMM16MovePPairFirst
5, // 5: CPU16Regs_and_GPRMM16MoveP
5, // 6: HI32DSP
5, // 7: LO32DSP
6, // 8: GPRMM16MovePPairSecond
8, // 9: GPRMM16MoveP
8, // 10: ACC64DSP
10, // 11: CPU16Regs
10, // 12: GPRMM16Zero_with_GPRMM16MovePPairSecond
11, // 13: CPU16Regs_with_GPRMM16MovePPairSecond
13, // 14: CPU16Regs_with_GPRMM16MoveP
32, // 15: DSPR
32, // 16: FGR32
32, // 17: MSA128WEvens
48, // 18: FGR32_with_MSA128WEvens
64, // 19: MSA128F16
};
return PressureLimitTable[Idx];
}
/// Table of pressure sets per register class or unit.
static const int RCSetsTable[] = {
/* 0 */ 0, -1,
/* 2 */ 6, 10, -1,
/* 5 */ 3, 6, 7, 10, -1,
/* 10 */ 2, 15, -1,
/* 13 */ 8, 12, 13, 15, -1,
/* 18 */ 9, 14, 15, -1,
/* 22 */ 1, 5, 9, 11, 12, 14, 15, -1,
/* 30 */ 5, 9, 11, 13, 14, 15, -1,
/* 37 */ 4, 8, 11, 12, 13, 14, 15, -1,
/* 45 */ 5, 9, 11, 12, 13, 14, 15, -1,
/* 53 */ 16, 18, 19, -1,
/* 57 */ 16, 17, 18, 19, -1,
};
/// Get the dimensions of register pressure impacted by this register class.
/// Returns a -1 terminated array of pressure set IDs
const int *MipsGenRegisterInfo::
getRegClassPressureSets(const TargetRegisterClass *RC) const {
static const uint8_t RCSetStartTable[] = {
55,1,1,1,1,11,53,53,11,1,1,11,32,32,1,32,18,25,39,18,13,30,23,2,7,38,37,45,37,1,1,0,1,22,5,5,1,55,11,11,53,32,32,18,25,39,18,13,3,30,23,38,37,45,1,1,37,5,1,10,22,5,5,1,55,55,55,55,58,5,};
return &RCSetsTable[RCSetStartTable[RC->getID()]];
}
/// Get the dimensions of register pressure impacted by this register unit.
/// Returns a -1 terminated array of pressure set IDs
const int *MipsGenRegisterInfo::
getRegUnitPressureSets(unsigned RegUnit) const {
assert(RegUnit < 321 && "invalid register unit");
static const uint8_t RUSetStartTable[] = {
11,0,1,1,1,1,1,1,1,1,1,11,11,1,1,1,1,1,1,1,1,1,10,32,22,37,37,37,38,5,5,7,2,7,2,7,2,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,57,53,57,53,57,53,57,53,57,53,57,53,57,53,57,53,57,53,57,53,57,53,57,53,57,53,57,53,57,53,57,53,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,58,55,58,55,58,55,58,55,58,55,58,55,58,55,58,55,58,55,58,55,58,55,58,55,58,55,58,55,58,55,58,55,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,11,11,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,30,45,18,18,18,13,13,11,11,11,11,11,11,11,11,11,11,11,45,45,};
return &RCSetsTable[RUSetStartTable[RegUnit]];
}
extern const MCRegisterDesc MipsRegDesc[];
extern const MCPhysReg MipsRegDiffLists[];
extern const LaneBitmask MipsLaneMaskLists[];
extern const char MipsRegStrings[];
extern const char MipsRegClassStrings[];
extern const MCPhysReg MipsRegUnitRoots[][2];
extern const uint16_t MipsSubRegIdxLists[];
extern const MCRegisterInfo::SubRegCoveredBits MipsSubRegIdxRanges[];
extern const uint16_t MipsRegEncodingTable[];
// Mips Dwarf<->LLVM register mappings.
extern const MCRegisterInfo::DwarfLLVMRegPair MipsDwarfFlavour0Dwarf2L[];
extern const unsigned MipsDwarfFlavour0Dwarf2LSize;
extern const MCRegisterInfo::DwarfLLVMRegPair MipsEHFlavour0Dwarf2L[];
extern const unsigned MipsEHFlavour0Dwarf2LSize;
extern const MCRegisterInfo::DwarfLLVMRegPair MipsDwarfFlavour0L2Dwarf[];
extern const unsigned MipsDwarfFlavour0L2DwarfSize;
extern const MCRegisterInfo::DwarfLLVMRegPair MipsEHFlavour0L2Dwarf[];
extern const unsigned MipsEHFlavour0L2DwarfSize;
MipsGenRegisterInfo::
MipsGenRegisterInfo(unsigned RA, unsigned DwarfFlavour, unsigned EHFlavour,
unsigned PC, unsigned HwMode)
: TargetRegisterInfo(&MipsRegInfoDesc, RegisterClasses, RegisterClasses+70,
SubRegIndexNameTable, SubRegIndexLaneMaskTable,
LaneBitmask(0xFFFFFFFFFFFFFF80), RegClassInfos, HwMode) {
InitMCRegisterInfo(MipsRegDesc, 442, RA, PC,
MipsMCRegisterClasses, 70,
MipsRegUnitRoots,
321,
MipsRegDiffLists,
MipsLaneMaskLists,
MipsRegStrings,
MipsRegClassStrings,
MipsSubRegIdxLists,
12,
MipsSubRegIdxRanges,
MipsRegEncodingTable);
switch (DwarfFlavour) {
default:
llvm_unreachable("Unknown DWARF flavour");
case 0:
mapDwarfRegsToLLVMRegs(MipsDwarfFlavour0Dwarf2L, MipsDwarfFlavour0Dwarf2LSize, false);
break;
}
switch (EHFlavour) {
default:
llvm_unreachable("Unknown DWARF flavour");
case 0:
mapDwarfRegsToLLVMRegs(MipsEHFlavour0Dwarf2L, MipsEHFlavour0Dwarf2LSize, true);
break;
}
switch (DwarfFlavour) {
default:
llvm_unreachable("Unknown DWARF flavour");
case 0:
mapLLVMRegsToDwarfRegs(MipsDwarfFlavour0L2Dwarf, MipsDwarfFlavour0L2DwarfSize, false);
break;
}
switch (EHFlavour) {
default:
llvm_unreachable("Unknown DWARF flavour");
case 0:
mapLLVMRegsToDwarfRegs(MipsEHFlavour0L2Dwarf, MipsEHFlavour0L2DwarfSize, true);
break;
}
}
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 };
static const uint32_t CSR_Interrupt_32_RegMask[] = { 0x07e80302, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x20000000, 0x00000000, 0x00000008, 0x07ffbfc0, 0x08000000, 0x00000000, 0x00000000, };
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 };
static const uint32_t CSR_Interrupt_32R6_RegMask[] = { 0x03e80302, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x07ffbfc0, 0x08000000, 0x00000000, 0x00000000, };
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 };
static const uint32_t CSR_Interrupt_64_RegMask[] = { 0x47e80302, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x08000000, 0x30000000, 0x00000000, 0x00000008, 0x07ffbfe0, 0xf8000000, 0x00000001, 0x03ffffe4, };
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 };
static const uint32_t CSR_Interrupt_64R6_RegMask[] = { 0x43e80302, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x08000000, 0x10000000, 0x00000000, 0x00000000, 0x07ffbfe0, 0xf8000000, 0x00000000, 0x03ffffc0, };
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 };
static const uint32_t CSR_Mips16RetHelper_RegMask[] = { 0x03e00100, 0x00000000, 0x00000000, 0x00000000, 0x00007e00, 0x0007ff80, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x06003fc0, 0x08000000, 0x00000000, 0x00000000, };
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 };
static const uint32_t CSR_N32_RegMask[] = { 0x00280300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0002aa80, 0x08000000, 0x15550000, 0x00000000, 0x00000000, 0x00003fe0, 0x08000000, 0xaaa00000, 0x00003fc0, };
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 };
static const uint32_t CSR_N64_RegMask[] = { 0x00280300, 0x00000000, 0x00000000, 0x00000000, 0x00007800, 0x0007f800, 0x08000000, 0x1ff00000, 0x00000000, 0x00000000, 0x00003fe0, 0x08000000, 0xfe000000, 0x00003fc1, };
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 };
static const uint32_t CSR_O32_RegMask[] = { 0x00280100, 0x00000000, 0x00000000, 0x00000000, 0x00007e00, 0x0007ff80, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003fc0, 0x08000000, 0x00000000, 0x00000000, };
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 };
static const uint32_t CSR_O32_FP64_RegMask[] = { 0x00280100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0002aa80, 0x00000000, 0x05550000, 0x00000000, 0x00000000, 0x00003fc0, 0x08000000, 0xaaa00000, 0x00000000, };
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 };
static const uint32_t CSR_O32_FPXX_RegMask[] = { 0x00280100, 0x00000000, 0x00000000, 0x00000000, 0x00007e00, 0x0007ff80, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003fc0, 0x08000000, 0x00000000, 0x00000000, };
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 };
static const uint32_t CSR_SingleFloatOnly_RegMask[] = { 0x00280100, 0x00000000, 0x00000000, 0x00000000, 0x00007e00, 0x0007ff80, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003fc0, 0x08000000, 0x00000000, 0x00000000, };
ArrayRef<const uint32_t *> MipsGenRegisterInfo::getRegMasks() const {
static const uint32_t *const Masks[] = {
CSR_Interrupt_32_RegMask,
CSR_Interrupt_32R6_RegMask,
CSR_Interrupt_64_RegMask,
CSR_Interrupt_64R6_RegMask,
CSR_Mips16RetHelper_RegMask,
CSR_N32_RegMask,
CSR_N64_RegMask,
CSR_O32_RegMask,
CSR_O32_FP64_RegMask,
CSR_O32_FPXX_RegMask,
CSR_SingleFloatOnly_RegMask,
};
return ArrayRef(Masks);
}
bool MipsGenRegisterInfo::
isGeneralPurposeRegister(const MachineFunction &MF, MCRegister PhysReg) const {
return
false;
}
bool MipsGenRegisterInfo::
isFixedRegister(const MachineFunction &MF, MCRegister PhysReg) const {
return
false;
}
bool MipsGenRegisterInfo::
isArgumentRegister(const MachineFunction &MF, MCRegister PhysReg) const {
return
false;
}
bool MipsGenRegisterInfo::
isConstantPhysReg(MCRegister PhysReg) const {
return
PhysReg == Mips::ZERO ||
PhysReg == Mips::ZERO_64 ||
false;
}
ArrayRef<const char *> MipsGenRegisterInfo::getRegMaskNames() const {
static const char *Names[] = {
"CSR_Interrupt_32",
"CSR_Interrupt_32R6",
"CSR_Interrupt_64",
"CSR_Interrupt_64R6",
"CSR_Mips16RetHelper",
"CSR_N32",
"CSR_N64",
"CSR_O32",
"CSR_O32_FP64",
"CSR_O32_FPXX",
"CSR_SingleFloatOnly",
};
return ArrayRef(Names);
}
const MipsFrameLowering *
MipsGenRegisterInfo::getFrameLowering(const MachineFunction &MF) {
return static_cast<const MipsFrameLowering *>(
MF.getSubtarget().getFrameLowering());
}
} // end namespace llvm
#endif // GET_REGINFO_TARGET_DESC