/* Capstone Disassembly Engine, http://www.capstone-engine.org */ /* By Nguyen Anh Quynh , 2013-2022, */ /* Rot127 2022-2023 */ /* Automatically generated file by Capstone's LLVM TableGen Disassembler Backend. */ /* LLVM-commit: */ /* LLVM-tag: */ /* Do not edit. */ /* Capstone's LLVM TableGen Backends: */ /* https://github.com/capstone-engine/llvm-capstone */ #ifdef GET_REGINFO_ENUM #undef GET_REGINFO_ENUM enum { TRICORE_NoRegister, TRICORE_FCX = 1, TRICORE_PC = 2, TRICORE_PCXI = 3, TRICORE_PSW = 4, TRICORE_A0 = 5, TRICORE_A1 = 6, TRICORE_A2 = 7, TRICORE_A3 = 8, TRICORE_A4 = 9, TRICORE_A5 = 10, TRICORE_A6 = 11, TRICORE_A7 = 12, TRICORE_A8 = 13, TRICORE_A9 = 14, TRICORE_A10 = 15, TRICORE_A11 = 16, TRICORE_A12 = 17, TRICORE_A13 = 18, TRICORE_A14 = 19, TRICORE_A15 = 20, TRICORE_D0 = 21, TRICORE_D1 = 22, TRICORE_D2 = 23, TRICORE_D3 = 24, TRICORE_D4 = 25, TRICORE_D5 = 26, TRICORE_D6 = 27, TRICORE_D7 = 28, TRICORE_D8 = 29, TRICORE_D9 = 30, TRICORE_D10 = 31, TRICORE_D11 = 32, TRICORE_D12 = 33, TRICORE_D13 = 34, TRICORE_D14 = 35, TRICORE_D15 = 36, TRICORE_E0 = 37, TRICORE_E2 = 38, TRICORE_E4 = 39, TRICORE_E6 = 40, TRICORE_E8 = 41, TRICORE_E10 = 42, TRICORE_E12 = 43, TRICORE_E14 = 44, TRICORE_P0 = 45, TRICORE_P2 = 46, TRICORE_P4 = 47, TRICORE_P6 = 48, TRICORE_P8 = 49, TRICORE_P10 = 50, TRICORE_P12 = 51, TRICORE_P14 = 52, TRICORE_A0_A1 = 53, TRICORE_A2_A3 = 54, TRICORE_A4_A5 = 55, TRICORE_A6_A7 = 56, TRICORE_A8_A9 = 57, TRICORE_A10_A11 = 58, TRICORE_A12_A13 = 59, TRICORE_A14_A15 = 60, NUM_TARGET_REGS // 61 }; // Register classes enum { TriCore_RARegClassID = 0, TriCore_RDRegClassID = 1, TriCore_PSRegsRegClassID = 2, TriCore_PairAddrRegsRegClassID = 3, TriCore_RERegClassID = 4, TriCore_RPRegClassID = 5, }; // Subregister indices enum { TriCore_NoSubRegister, TriCore_subreg_even, // 1 TriCore_subreg_odd, // 2 TriCore_NUM_TARGET_SUBREGS }; #endif // GET_REGINFO_ENUM #ifdef GET_REGINFO_MC_DESC #undef GET_REGINFO_MC_DESC static const MCPhysReg TriCoreRegDiffLists[] = { /* 0 */ -102, 1, 0, /* 3 */ -86, 1, 0, /* 6 */ -54, 1, 0, /* 9 */ -48, 1, 0, /* 12 */ -47, 1, 0, /* 15 */ -46, 1, 0, /* 18 */ -45, 1, 0, /* 21 */ -44, 1, 0, /* 24 */ -43, 1, 0, /* 27 */ -42, 1, 0, /* 30 */ -41, 1, 0, /* 33 */ -40, 1, 0, /* 36 */ -39, 1, 0, /* 39 */ -38, 1, 0, /* 42 */ -37, 1, 0, /* 45 */ -36, 1, 0, /* 48 */ -35, 1, 0, /* 51 */ -34, 1, 0, /* 54 */ -33, 1, 0, /* 57 */ -16, 1, 0, /* 60 */ -15, 1, 0, /* 63 */ -14, 1, 0, /* 66 */ -13, 1, 0, /* 69 */ -12, 1, 0, /* 72 */ -11, 1, 0, /* 75 */ -10, 1, 0, /* 78 */ -9, 1, 0, /* 81 */ 32, 8, 0, /* 84 */ 33, 8, 0, /* 87 */ 34, 8, 0, /* 90 */ 35, 8, 0, /* 93 */ 36, 8, 0, /* 96 */ 37, 8, 0, /* 99 */ 38, 8, 0, /* 102 */ 39, 8, 0, /* 105 */ 40, 8, 0, /* 108 */ 9, 0, /* 110 */ 10, 0, /* 112 */ 11, 0, /* 114 */ 12, 0, /* 116 */ 13, 0, /* 118 */ 14, 0, /* 120 */ 15, 0, /* 122 */ 16, 0, /* 124 */ -1, 0, }; static const uint16_t TriCoreSubRegIdxLists[] = { /* 0 */ 1, 2, 0, }; static const MCRegisterDesc TriCoreRegDesc[] = { // Descriptors { 3, 0, 0, 0, 0, 0 }, { 201, 2, 2, 2, 1985, 0 }, { 189, 2, 2, 2, 1985, 0 }, { 192, 2, 2, 2, 1985, 0 }, { 197, 2, 2, 2, 1985, 0 }, { 16, 2, 105, 2, 1985, 0 }, { 43, 2, 102, 2, 1985, 0 }, { 65, 2, 102, 2, 1985, 0 }, { 92, 2, 99, 2, 1985, 0 }, { 114, 2, 99, 2, 1985, 0 }, { 141, 2, 96, 2, 1985, 0 }, { 147, 2, 96, 2, 1985, 0 }, { 162, 2, 93, 2, 1985, 0 }, { 168, 2, 93, 2, 1985, 0 }, { 183, 2, 90, 2, 1985, 0 }, { 0, 2, 90, 2, 1985, 0 }, { 32, 2, 87, 2, 1985, 0 }, { 49, 2, 87, 2, 1985, 0 }, { 81, 2, 84, 2, 1985, 0 }, { 98, 2, 84, 2, 1985, 0 }, { 130, 2, 81, 2, 1985, 0 }, { 19, 2, 122, 2, 1985, 0 }, { 46, 2, 120, 2, 1985, 0 }, { 68, 2, 120, 2, 1985, 0 }, { 95, 2, 118, 2, 1985, 0 }, { 117, 2, 118, 2, 1985, 0 }, { 144, 2, 116, 2, 1985, 0 }, { 150, 2, 116, 2, 1985, 0 }, { 165, 2, 114, 2, 1985, 0 }, { 171, 2, 114, 2, 1985, 0 }, { 186, 2, 112, 2, 1985, 0 }, { 4, 2, 112, 2, 1985, 0 }, { 36, 2, 110, 2, 1985, 0 }, { 53, 2, 110, 2, 1985, 0 }, { 85, 2, 108, 2, 1985, 0 }, { 102, 2, 108, 2, 1985, 0 }, { 134, 2, 82, 2, 1985, 0 }, { 22, 57, 2, 0, 98, 2 }, { 71, 60, 2, 0, 98, 2 }, { 120, 63, 2, 0, 98, 2 }, { 153, 66, 2, 0, 98, 2 }, { 174, 69, 2, 0, 98, 2 }, { 8, 72, 2, 0, 98, 2 }, { 57, 75, 2, 0, 98, 2 }, { 106, 78, 2, 0, 98, 2 }, { 25, 33, 2, 0, 50, 2 }, { 74, 36, 2, 0, 50, 2 }, { 123, 39, 2, 0, 50, 2 }, { 156, 42, 2, 0, 50, 2 }, { 177, 45, 2, 0, 50, 2 }, { 12, 48, 2, 0, 50, 2 }, { 61, 51, 2, 0, 50, 2 }, { 110, 54, 2, 0, 50, 2 }, { 40, 9, 2, 0, 2, 2 }, { 89, 12, 2, 0, 2, 2 }, { 138, 15, 2, 0, 2, 2 }, { 159, 18, 2, 0, 2, 2 }, { 180, 21, 2, 0, 2, 2 }, { 28, 24, 2, 0, 2, 2 }, { 77, 27, 2, 0, 2, 2 }, { 126, 30, 2, 0, 2, 2 }, }; // RA Register Class... static const MCPhysReg RA[] = { TRICORE_A0, TRICORE_A1, TRICORE_A2, TRICORE_A3, TRICORE_A4, TRICORE_A5, TRICORE_A6, TRICORE_A7, TRICORE_A8, TRICORE_A9, TRICORE_A10, TRICORE_A11, TRICORE_A12, TRICORE_A13, TRICORE_A14, TRICORE_A15, }; // RA Bit set. static const uint8_t RABits[] = { 0xe0, 0xff, 0x1f, }; // RD Register Class... static const MCPhysReg RD[] = { TRICORE_D0, TRICORE_D1, TRICORE_D2, TRICORE_D3, TRICORE_D4, TRICORE_D5, TRICORE_D6, TRICORE_D7, TRICORE_D8, TRICORE_D9, TRICORE_D10, TRICORE_D11, TRICORE_D12, TRICORE_D13, TRICORE_D14, TRICORE_D15, }; // RD Bit set. static const uint8_t RDBits[] = { 0x00, 0x00, 0xe0, 0xff, 0x1f, }; // PSRegs Register Class... static const MCPhysReg PSRegs[] = { TRICORE_PSW, TRICORE_PCXI, TRICORE_PC, TRICORE_FCX, }; // PSRegs Bit set. static const uint8_t PSRegsBits[] = { 0x1e, }; // PairAddrRegs Register Class... static const MCPhysReg PairAddrRegs[] = { TRICORE_A0_A1, TRICORE_A2_A3, TRICORE_A4_A5, TRICORE_A6_A7, TRICORE_A8_A9, TRICORE_A10_A11, TRICORE_A12_A13, TRICORE_A14_A15, }; // PairAddrRegs Bit set. static const uint8_t PairAddrRegsBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, }; // RE Register Class... static const MCPhysReg RE[] = { TRICORE_E0, TRICORE_E2, TRICORE_E4, TRICORE_E6, TRICORE_E8, TRICORE_E10, TRICORE_E12, TRICORE_E14, }; // RE Bit set. static const uint8_t REBits[] = { 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, }; // RP Register Class... static const MCPhysReg RP[] = { TRICORE_P0, TRICORE_P2, TRICORE_P4, TRICORE_P6, TRICORE_P8, TRICORE_P10, TRICORE_P12, TRICORE_P14, }; // RP Bit set. static const uint8_t RPBits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, }; static const MCRegisterClass TriCoreMCRegisterClasses[] = { { RA, RABits, sizeof(RABits) }, { RD, RDBits, sizeof(RDBits) }, { PSRegs, PSRegsBits, sizeof(PSRegsBits) }, { PairAddrRegs, PairAddrRegsBits, sizeof(PairAddrRegsBits) }, { RE, REBits, sizeof(REBits) }, { RP, RPBits, sizeof(RPBits) }, }; #endif // GET_REGINFO_MC_DESC