/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|*Target Register Enum Values                                                 *|
|*                                                                            *|
|* Automatically generated file, do not edit!                                 *|
|*                                                                            *|
\*===----------------------------------------------------------------------===*/

/* Capstone Disassembly Engine */
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */


#ifdef GET_REGINFO_ENUM
#undef GET_REGINFO_ENUM

enum {
  SP_NoRegister,
  SP_ICC = 1,
  SP_Y = 2,
  SP_D0 = 3,
  SP_D1 = 4,
  SP_D2 = 5,
  SP_D3 = 6,
  SP_D4 = 7,
  SP_D5 = 8,
  SP_D6 = 9,
  SP_D7 = 10,
  SP_D8 = 11,
  SP_D9 = 12,
  SP_D10 = 13,
  SP_D11 = 14,
  SP_D12 = 15,
  SP_D13 = 16,
  SP_D14 = 17,
  SP_D15 = 18,
  SP_D16 = 19,
  SP_D17 = 20,
  SP_D18 = 21,
  SP_D19 = 22,
  SP_D20 = 23,
  SP_D21 = 24,
  SP_D22 = 25,
  SP_D23 = 26,
  SP_D24 = 27,
  SP_D25 = 28,
  SP_D26 = 29,
  SP_D27 = 30,
  SP_D28 = 31,
  SP_D29 = 32,
  SP_D30 = 33,
  SP_D31 = 34,
  SP_F0 = 35,
  SP_F1 = 36,
  SP_F2 = 37,
  SP_F3 = 38,
  SP_F4 = 39,
  SP_F5 = 40,
  SP_F6 = 41,
  SP_F7 = 42,
  SP_F8 = 43,
  SP_F9 = 44,
  SP_F10 = 45,
  SP_F11 = 46,
  SP_F12 = 47,
  SP_F13 = 48,
  SP_F14 = 49,
  SP_F15 = 50,
  SP_F16 = 51,
  SP_F17 = 52,
  SP_F18 = 53,
  SP_F19 = 54,
  SP_F20 = 55,
  SP_F21 = 56,
  SP_F22 = 57,
  SP_F23 = 58,
  SP_F24 = 59,
  SP_F25 = 60,
  SP_F26 = 61,
  SP_F27 = 62,
  SP_F28 = 63,
  SP_F29 = 64,
  SP_F30 = 65,
  SP_F31 = 66,
  SP_FCC0 = 67,
  SP_FCC1 = 68,
  SP_FCC2 = 69,
  SP_FCC3 = 70,
  SP_G0 = 71,
  SP_G1 = 72,
  SP_G2 = 73,
  SP_G3 = 74,
  SP_G4 = 75,
  SP_G5 = 76,
  SP_G6 = 77,
  SP_G7 = 78,
  SP_I0 = 79,
  SP_I1 = 80,
  SP_I2 = 81,
  SP_I3 = 82,
  SP_I4 = 83,
  SP_I5 = 84,
  SP_I6 = 85,
  SP_I7 = 86,
  SP_L0 = 87,
  SP_L1 = 88,
  SP_L2 = 89,
  SP_L3 = 90,
  SP_L4 = 91,
  SP_L5 = 92,
  SP_L6 = 93,
  SP_L7 = 94,
  SP_O0 = 95,
  SP_O1 = 96,
  SP_O2 = 97,
  SP_O3 = 98,
  SP_O4 = 99,
  SP_O5 = 100,
  SP_O6 = 101,
  SP_O7 = 102,
  SP_Q0 = 103,
  SP_Q1 = 104,
  SP_Q2 = 105,
  SP_Q3 = 106,
  SP_Q4 = 107,
  SP_Q5 = 108,
  SP_Q6 = 109,
  SP_Q7 = 110,
  SP_Q8 = 111,
  SP_Q9 = 112,
  SP_Q10 = 113,
  SP_Q11 = 114,
  SP_Q12 = 115,
  SP_Q13 = 116,
  SP_Q14 = 117,
  SP_Q15 = 118,
  SP_NUM_TARGET_REGS 	// 119
};

// Register classes
enum {
  SP_FCCRegsRegClassID = 0,
  SP_FPRegsRegClassID = 1,
  SP_IntRegsRegClassID = 2,
  SP_DFPRegsRegClassID = 3,
  SP_I64RegsRegClassID = 4,
  SP_DFPRegs_with_sub_evenRegClassID = 5,
  SP_QFPRegsRegClassID = 6,
  SP_QFPRegs_with_sub_evenRegClassID = 7
};

// Subregister indices
enum {
  SP_NoSubRegister,
  SP_sub_even,	// 1
  SP_sub_even64,	// 2
  SP_sub_odd,	// 3
  SP_sub_odd64,	// 4
  SP_sub_odd64_then_sub_even,	// 5
  SP_sub_odd64_then_sub_odd,	// 6
  SP_NUM_TARGET_SUBREGS
};
#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

static MCPhysReg SparcRegDiffLists[] = {
  /* 0 */ 65126, 1, 1, 1, 0,
  /* 5 */ 32, 1, 0,
  /* 8 */ 65436, 32, 1, 65504, 33, 1, 0,
  /* 15 */ 34, 1, 0,
  /* 18 */ 65437, 34, 1, 65502, 35, 1, 0,
  /* 25 */ 36, 1, 0,
  /* 28 */ 65438, 36, 1, 65500, 37, 1, 0,
  /* 35 */ 38, 1, 0,
  /* 38 */ 65439, 38, 1, 65498, 39, 1, 0,
  /* 45 */ 40, 1, 0,
  /* 48 */ 65440, 40, 1, 65496, 41, 1, 0,
  /* 55 */ 42, 1, 0,
  /* 58 */ 65441, 42, 1, 65494, 43, 1, 0,
  /* 65 */ 44, 1, 0,
  /* 68 */ 65442, 44, 1, 65492, 45, 1, 0,
  /* 75 */ 46, 1, 0,
  /* 78 */ 65443, 46, 1, 65490, 47, 1, 0,
  /* 85 */ 65348, 1, 0,
  /* 88 */ 65444, 1, 0,
  /* 91 */ 65445, 1, 0,
  /* 94 */ 65446, 1, 0,
  /* 97 */ 65447, 1, 0,
  /* 100 */ 65448, 1, 0,
  /* 103 */ 65449, 1, 0,
  /* 106 */ 65450, 1, 0,
  /* 109 */ 65451, 1, 0,
  /* 112 */ 65532, 1, 0,
  /* 115 */ 15, 0,
  /* 117 */ 84, 0,
  /* 119 */ 85, 0,
  /* 121 */ 86, 0,
  /* 123 */ 87, 0,
  /* 125 */ 88, 0,
  /* 127 */ 89, 0,
  /* 129 */ 90, 0,
  /* 131 */ 91, 0,
  /* 133 */ 65488, 92, 0,
  /* 136 */ 65489, 92, 0,
  /* 139 */ 65489, 93, 0,
  /* 142 */ 65490, 93, 0,
  /* 145 */ 65491, 93, 0,
  /* 148 */ 65491, 94, 0,
  /* 151 */ 65492, 94, 0,
  /* 154 */ 65493, 94, 0,
  /* 157 */ 65493, 95, 0,
  /* 160 */ 65494, 95, 0,
  /* 163 */ 65495, 95, 0,
  /* 166 */ 65495, 96, 0,
  /* 169 */ 65496, 96, 0,
  /* 172 */ 65497, 96, 0,
  /* 175 */ 65497, 97, 0,
  /* 178 */ 65498, 97, 0,
  /* 181 */ 65499, 97, 0,
  /* 184 */ 65499, 98, 0,
  /* 187 */ 65500, 98, 0,
  /* 190 */ 65501, 98, 0,
  /* 193 */ 65501, 99, 0,
  /* 196 */ 65502, 99, 0,
  /* 199 */ 65503, 99, 0,
  /* 202 */ 65503, 100, 0,
  /* 205 */ 65504, 100, 0,
  /* 208 */ 65503, 0,
  /* 210 */ 65519, 0,
  /* 212 */ 65535, 0,
};

static uint16_t SparcSubRegIdxLists[] = {
  /* 0 */ 1, 3, 0,
  /* 3 */ 2, 4, 0,
  /* 6 */ 2, 1, 3, 4, 5, 6, 0,
};

static MCRegisterDesc SparcRegDesc[] = { // Descriptors
  { 3, 0, 0, 0, 0 },
  { 406, 4, 4, 2, 3393 },
  { 410, 4, 4, 2, 3393 },
  { 33, 5, 203, 0, 1794 },
  { 87, 12, 194, 0, 1794 },
  { 133, 15, 194, 0, 1794 },
  { 179, 22, 185, 0, 1794 },
  { 220, 25, 185, 0, 1794 },
  { 261, 32, 176, 0, 1794 },
  { 298, 35, 176, 0, 1794 },
  { 335, 42, 167, 0, 1794 },
  { 372, 45, 167, 0, 1794 },
  { 397, 52, 158, 0, 1794 },
  { 0, 55, 158, 0, 1794 },
  { 54, 62, 149, 0, 1794 },
  { 108, 65, 149, 0, 1794 },
  { 154, 72, 140, 0, 1794 },
  { 200, 75, 140, 0, 1794 },
  { 241, 82, 134, 0, 1794 },
  { 282, 4, 134, 2, 1841 },
  { 319, 4, 131, 2, 1841 },
  { 356, 4, 131, 2, 1841 },
  { 381, 4, 129, 2, 1841 },
  { 12, 4, 129, 2, 1841 },
  { 66, 4, 127, 2, 1841 },
  { 120, 4, 127, 2, 1841 },
  { 166, 4, 125, 2, 1841 },
  { 212, 4, 125, 2, 1841 },
  { 253, 4, 123, 2, 1841 },
  { 290, 4, 123, 2, 1841 },
  { 327, 4, 121, 2, 1841 },
  { 364, 4, 121, 2, 1841 },
  { 389, 4, 119, 2, 1841 },
  { 20, 4, 119, 2, 1841 },
  { 74, 4, 117, 2, 1841 },
  { 36, 4, 205, 2, 3329 },
  { 90, 4, 202, 2, 3329 },
  { 136, 4, 199, 2, 3329 },
  { 182, 4, 196, 2, 3329 },
  { 223, 4, 196, 2, 3329 },
  { 264, 4, 193, 2, 3329 },
  { 301, 4, 190, 2, 3329 },
  { 338, 4, 187, 2, 3329 },
  { 375, 4, 187, 2, 3329 },
  { 400, 4, 184, 2, 3329 },
  { 4, 4, 181, 2, 3329 },
  { 58, 4, 178, 2, 3329 },
  { 112, 4, 178, 2, 3329 },
  { 158, 4, 175, 2, 3329 },
  { 204, 4, 172, 2, 3329 },
  { 245, 4, 169, 2, 3329 },
  { 286, 4, 169, 2, 3329 },
  { 323, 4, 166, 2, 3329 },
  { 360, 4, 163, 2, 3329 },
  { 385, 4, 160, 2, 3329 },
  { 16, 4, 160, 2, 3329 },
  { 70, 4, 157, 2, 3329 },
  { 124, 4, 154, 2, 3329 },
  { 170, 4, 151, 2, 3329 },
  { 216, 4, 151, 2, 3329 },
  { 257, 4, 148, 2, 3329 },
  { 294, 4, 145, 2, 3329 },
  { 331, 4, 142, 2, 3329 },
  { 368, 4, 142, 2, 3329 },
  { 393, 4, 139, 2, 3329 },
  { 24, 4, 136, 2, 3329 },
  { 78, 4, 133, 2, 3329 },
  { 28, 4, 4, 2, 3361 },
  { 82, 4, 4, 2, 3361 },
  { 128, 4, 4, 2, 3361 },
  { 174, 4, 4, 2, 3361 },
  { 39, 4, 4, 2, 3361 },
  { 93, 4, 4, 2, 3361 },
  { 139, 4, 4, 2, 3361 },
  { 185, 4, 4, 2, 3361 },
  { 226, 4, 4, 2, 3361 },
  { 267, 4, 4, 2, 3361 },
  { 304, 4, 4, 2, 3361 },
  { 341, 4, 4, 2, 3361 },
  { 42, 4, 4, 2, 3361 },
  { 96, 4, 4, 2, 3361 },
  { 142, 4, 4, 2, 3361 },
  { 188, 4, 4, 2, 3361 },
  { 229, 4, 4, 2, 3361 },
  { 270, 4, 4, 2, 3361 },
  { 307, 4, 4, 2, 3361 },
  { 344, 4, 4, 2, 3361 },
  { 45, 4, 4, 2, 3361 },
  { 99, 4, 4, 2, 3361 },
  { 145, 4, 4, 2, 3361 },
  { 191, 4, 4, 2, 3361 },
  { 232, 4, 4, 2, 3361 },
  { 273, 4, 4, 2, 3361 },
  { 310, 4, 4, 2, 3361 },
  { 347, 4, 4, 2, 3361 },
  { 48, 4, 4, 2, 3361 },
  { 102, 4, 4, 2, 3361 },
  { 148, 4, 4, 2, 3361 },
  { 194, 4, 4, 2, 3361 },
  { 235, 4, 4, 2, 3361 },
  { 276, 4, 4, 2, 3361 },
  { 313, 4, 4, 2, 3361 },
  { 350, 4, 4, 2, 3361 },
  { 51, 8, 4, 6, 4 },
  { 105, 18, 4, 6, 4 },
  { 151, 28, 4, 6, 4 },
  { 197, 38, 4, 6, 4 },
  { 238, 48, 4, 6, 4 },
  { 279, 58, 4, 6, 4 },
  { 316, 68, 4, 6, 4 },
  { 353, 78, 4, 6, 4 },
  { 378, 88, 4, 3, 1362 },
  { 403, 91, 4, 3, 1362 },
  { 8, 94, 4, 3, 1362 },
  { 62, 97, 4, 3, 1362 },
  { 116, 100, 4, 3, 1362 },
  { 162, 103, 4, 3, 1362 },
  { 208, 106, 4, 3, 1362 },
  { 249, 109, 4, 3, 1362 },
};

  // FCCRegs Register Class...
  static MCPhysReg FCCRegs[] = {
    SP_FCC0, SP_FCC1, SP_FCC2, SP_FCC3, 
  };

  // FCCRegs Bit set.
  static uint8_t FCCRegsBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 
  };

  // FPRegs Register Class...
  static MCPhysReg FPRegs[] = {
    SP_F0, SP_F1, SP_F2, SP_F3, SP_F4, SP_F5, SP_F6, SP_F7, SP_F8, SP_F9, SP_F10, SP_F11, SP_F12, SP_F13, SP_F14, SP_F15, SP_F16, SP_F17, SP_F18, SP_F19, SP_F20, SP_F21, SP_F22, SP_F23, SP_F24, SP_F25, SP_F26, SP_F27, SP_F28, SP_F29, SP_F30, SP_F31, 
  };

  // FPRegs Bit set.
  static uint8_t FPRegsBits[] = {
    0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 
  };

  // IntRegs Register Class...
  static MCPhysReg IntRegs[] = {
    SP_I0, SP_I1, SP_I2, SP_I3, SP_I4, SP_I5, SP_I6, SP_I7, SP_G0, SP_G1, SP_G2, SP_G3, SP_G4, SP_G5, SP_G6, SP_G7, SP_L0, SP_L1, SP_L2, SP_L3, SP_L4, SP_L5, SP_L6, SP_L7, SP_O0, SP_O1, SP_O2, SP_O3, SP_O4, SP_O5, SP_O6, SP_O7, 
  };

  // IntRegs Bit set.
  static uint8_t IntRegsBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
  };

  // DFPRegs Register Class...
  static MCPhysReg DFPRegs[] = {
    SP_D0, SP_D1, SP_D2, SP_D3, SP_D4, SP_D5, SP_D6, SP_D7, SP_D8, SP_D9, SP_D10, SP_D11, SP_D12, SP_D13, SP_D14, SP_D15, SP_D16, SP_D17, SP_D18, SP_D19, SP_D20, SP_D21, SP_D22, SP_D23, SP_D24, SP_D25, SP_D26, SP_D27, SP_D28, SP_D29, SP_D30, SP_D31, 
  };

  // DFPRegs Bit set.
  static uint8_t DFPRegsBits[] = {
    0xf8, 0xff, 0xff, 0xff, 0x07, 
  };

  // I64Regs Register Class...
  static MCPhysReg I64Regs[] = {
    SP_I0, SP_I1, SP_I2, SP_I3, SP_I4, SP_I5, SP_I6, SP_I7, SP_G0, SP_G1, SP_G2, SP_G3, SP_G4, SP_G5, SP_G6, SP_G7, SP_L0, SP_L1, SP_L2, SP_L3, SP_L4, SP_L5, SP_L6, SP_L7, SP_O0, SP_O1, SP_O2, SP_O3, SP_O4, SP_O5, SP_O6, SP_O7, 
  };

  // I64Regs Bit set.
  static uint8_t I64RegsBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, 
  };

  // DFPRegs_with_sub_even Register Class...
  static MCPhysReg DFPRegs_with_sub_even[] = {
    SP_D0, SP_D1, SP_D2, SP_D3, SP_D4, SP_D5, SP_D6, SP_D7, SP_D8, SP_D9, SP_D10, SP_D11, SP_D12, SP_D13, SP_D14, SP_D15, 
  };

  // DFPRegs_with_sub_even Bit set.
  static uint8_t DFPRegs_with_sub_evenBits[] = {
    0xf8, 0xff, 0x07, 
  };

  // QFPRegs Register Class...
  static MCPhysReg QFPRegs[] = {
    SP_Q0, SP_Q1, SP_Q2, SP_Q3, SP_Q4, SP_Q5, SP_Q6, SP_Q7, SP_Q8, SP_Q9, SP_Q10, SP_Q11, SP_Q12, SP_Q13, SP_Q14, SP_Q15, 
  };

  // QFPRegs Bit set.
  static uint8_t QFPRegsBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 
  };

  // QFPRegs_with_sub_even Register Class...
  static MCPhysReg QFPRegs_with_sub_even[] = {
    SP_Q0, SP_Q1, SP_Q2, SP_Q3, SP_Q4, SP_Q5, SP_Q6, SP_Q7, 
  };

  // QFPRegs_with_sub_even Bit set.
  static uint8_t QFPRegs_with_sub_evenBits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 
  };

static MCRegisterClass SparcMCRegisterClasses[] = {
  { "FCCRegs", FCCRegs, FCCRegsBits, 4, sizeof(FCCRegsBits), SP_FCCRegsRegClassID, 0, 0, 1, 1 },
  { "FPRegs", FPRegs, FPRegsBits, 32, sizeof(FPRegsBits), SP_FPRegsRegClassID, 4, 4, 1, 1 },
  { "IntRegs", IntRegs, IntRegsBits, 32, sizeof(IntRegsBits), SP_IntRegsRegClassID, 4, 4, 1, 1 },
  { "DFPRegs", DFPRegs, DFPRegsBits, 32, sizeof(DFPRegsBits), SP_DFPRegsRegClassID, 8, 8, 1, 1 },
  { "I64Regs", I64Regs, I64RegsBits, 32, sizeof(I64RegsBits), SP_I64RegsRegClassID, 8, 8, 1, 1 },
  { "DFPRegs_with_sub_even", DFPRegs_with_sub_even, DFPRegs_with_sub_evenBits, 16, sizeof(DFPRegs_with_sub_evenBits), SP_DFPRegs_with_sub_evenRegClassID, 8, 8, 1, 1 },
  { "QFPRegs", QFPRegs, QFPRegsBits, 16, sizeof(QFPRegsBits), SP_QFPRegsRegClassID, 16, 16, 1, 1 },
  { "QFPRegs_with_sub_even", QFPRegs_with_sub_even, QFPRegs_with_sub_evenBits, 8, sizeof(QFPRegs_with_sub_evenBits), SP_QFPRegs_with_sub_evenRegClassID, 16, 16, 1, 1 },
};

#endif // GET_REGINFO_MC_DESC
