mirror of
https://github.com/capstone-engine/capstone.git
synced 2024-11-23 13:39:46 +00:00
refactor: Refactor TriCore instruction decoding and register definition.
- Update TriCore processor register definitions with auto-generated file `TriCoreGenCSRegEnum.inc` - Add several new TriCore processor instructions with auto-generated file `TriCoreGenCSInsnEnum.inc` - Update TriCore_OP_GROUP enumeration with auto-generated file `TriCoreGenCSOpGroup.inc` - Rename and restructure TriCore processor register classes - Remove unused register class definitions and related code
This commit is contained in:
parent
117c9ebfad
commit
29ced4e735
@ -169,60 +169,6 @@ static DecodeStatus DecodeBRNInstruction(MCInst *Inst, unsigned Insn, uint64_t A
|
||||
|
||||
#include "TriCoreGenRegisterInfo.inc"
|
||||
|
||||
static DecodeStatus DecodeDataRegsRegisterClass(MCInst *Inst, unsigned RegNo,
|
||||
uint64_t Address, void *Decoder) {
|
||||
unsigned Reg;
|
||||
|
||||
if (RegNo > 15)
|
||||
return MCDisassembler_Fail;
|
||||
|
||||
Reg = getReg(Decoder, TriCore_DataRegsRegClassID, RegNo);
|
||||
MCOperand_CreateReg0(Inst, Reg);
|
||||
|
||||
return MCDisassembler_Success;
|
||||
}
|
||||
|
||||
static DecodeStatus DecodeAddrRegsRegisterClass(MCInst *Inst, unsigned RegNo,
|
||||
uint64_t Address, void *Decoder) {
|
||||
unsigned Reg;
|
||||
|
||||
if (RegNo > 15)
|
||||
return MCDisassembler_Fail;
|
||||
|
||||
Reg = getReg(Decoder, TriCore_AddrRegsRegClassID, RegNo);
|
||||
MCOperand_CreateReg0(Inst, Reg);
|
||||
|
||||
return MCDisassembler_Success;
|
||||
}
|
||||
|
||||
static DecodeStatus DecodeExtRegsRegisterClass(MCInst *Inst, unsigned RegNo,
|
||||
uint64_t Address, void *Decoder) {
|
||||
unsigned Reg;
|
||||
unsigned RegHalfNo = RegNo / 2;
|
||||
|
||||
if (RegHalfNo > 15)
|
||||
return MCDisassembler_Fail;
|
||||
|
||||
Reg = getReg(Decoder, TriCore_ExtRegsRegClassID, RegHalfNo);
|
||||
MCOperand_CreateReg0(Inst, Reg);
|
||||
|
||||
return MCDisassembler_Success;
|
||||
}
|
||||
|
||||
static DecodeStatus DecodePairAddrRegsRegisterClass(MCInst *Inst, unsigned RegNo,
|
||||
uint64_t Address, void *Decoder) {
|
||||
unsigned Reg;
|
||||
unsigned RegHalfNo = RegNo / 2;
|
||||
|
||||
if (RegHalfNo > 15)
|
||||
return MCDisassembler_Fail;
|
||||
|
||||
Reg = getReg(Decoder, TriCore_PairAddrRegsRegClassID, RegHalfNo);
|
||||
MCOperand_CreateReg0(Inst, Reg);
|
||||
|
||||
return MCDisassembler_Success;
|
||||
}
|
||||
|
||||
static DecodeStatus
|
||||
DecodeRegisterClass(MCInst *Inst, unsigned RegNo, const MCOperandInfo *MCOI, void *Decoder) {
|
||||
unsigned Reg;
|
||||
@ -311,9 +257,10 @@ static DecodeStatus DecodeSRInstruction(MCInst *Inst, unsigned Insn,
|
||||
|
||||
const MCInstrDesc *desc = &TriCoreInsts[MCInst_getOpcode(Inst)];
|
||||
status = DecodeRegisterClass(Inst, s1_d, &desc->OpInfo[0], Decoder);
|
||||
if (status == MCDisassembler_Success)
|
||||
status = DecodeDataRegsRegisterClass(Inst, s1_d, Address, Decoder);
|
||||
if (status != MCDisassembler_Success)
|
||||
return status;
|
||||
|
||||
status = DecodeRegisterClass(Inst, s1_d, &desc->OpInfo[1], Decoder);
|
||||
if (status != MCDisassembler_Success)
|
||||
return status;
|
||||
|
||||
@ -1335,7 +1282,8 @@ static DecodeStatus DecodeABSBInstruction(MCInst *Inst, unsigned Insn, uint64_t
|
||||
return MCDisassembler_Fail;
|
||||
|
||||
// Decode s1_d.
|
||||
status = DecodeDataRegsRegisterClass(Inst, s1_d, Address, Decoder);
|
||||
const MCInstrDesc *desc = &TriCoreInsts[MCInst_getOpcode(Inst)];
|
||||
status = DecodeRegisterClass(Inst, s1_d, &desc->OpInfo[0], Decoder);
|
||||
if (status != MCDisassembler_Success)
|
||||
return status;
|
||||
|
||||
@ -1362,9 +1310,11 @@ static DecodeStatus DecodeRCRWInstruction(MCInst *Inst, unsigned Insn, uint64_t
|
||||
if (status != MCDisassembler_Success)
|
||||
return status;
|
||||
|
||||
unsigned opIdx = 0;
|
||||
if (desc->NumOperands > 4) {
|
||||
opIdx++;
|
||||
// Decode s1.
|
||||
status = DecodeDataRegsRegisterClass(Inst, s1, Address, Decoder);
|
||||
status = DecodeRegisterClass(Inst, s1, &desc->OpInfo[1], Decoder);
|
||||
if (status != MCDisassembler_Success)
|
||||
return status;
|
||||
}
|
||||
@ -1373,7 +1323,7 @@ static DecodeStatus DecodeRCRWInstruction(MCInst *Inst, unsigned Insn, uint64_t
|
||||
MCOperand_CreateImm0(Inst, const4);
|
||||
|
||||
// Decode s3.
|
||||
status = DecodeDataRegsRegisterClass(Inst, s3, Address, Decoder);
|
||||
status = DecodeRegisterClass(Inst, s1, &desc->OpInfo[opIdx+2], Decoder);
|
||||
if (status != MCDisassembler_Success)
|
||||
return status;
|
||||
|
||||
@ -1397,8 +1347,8 @@ static DecodeStatus DecodeBRNInstruction(MCInst *Inst, unsigned Insn, uint64_t A
|
||||
if (!is32Bit) // This instruction is 32-bit
|
||||
return MCDisassembler_Fail;
|
||||
|
||||
// Decode s1.
|
||||
status = DecodeDataRegsRegisterClass(Inst, s1, Address, Decoder);
|
||||
const MCInstrDesc *desc = &TriCoreInsts[MCInst_getOpcode(Inst)];
|
||||
status = DecodeRegisterClass(Inst, s1, &desc->OpInfo[0], Decoder);
|
||||
if (status != MCDisassembler_Success)
|
||||
return status;
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
7
arch/TriCore/TriCoreGenCSFeatureName.inc
Normal file
7
arch/TriCore/TriCoreGenCSFeatureName.inc
Normal file
@ -0,0 +1,7 @@
|
||||
/* Capstone Disassembly Engine, https://www.capstone-engine.org */
|
||||
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2019 */
|
||||
/* By Rot127 <unisono@quyllur.org>, 2023 */
|
||||
|
||||
/* Auto generated file. Do not edit. */
|
||||
/* Code generator: https://github.com/capstone-engine/capstone/tree/next/suite/auto-sync */
|
||||
|
File diff suppressed because it is too large
Load Diff
364
arch/TriCore/TriCoreGenCSMappingInsnName.inc
Normal file
364
arch/TriCore/TriCoreGenCSMappingInsnName.inc
Normal file
@ -0,0 +1,364 @@
|
||||
/* Capstone Disassembly Engine, https://www.capstone-engine.org */
|
||||
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2019 */
|
||||
/* By Rot127 <unisono@quyllur.org>, 2023 */
|
||||
|
||||
/* Auto generated file. Do not edit. */
|
||||
/* Code generator: https://github.com/capstone-engine/capstone/tree/next/suite/auto-sync */
|
||||
|
||||
"xor_t", // TriCore_INS_XOR_T
|
||||
"absdifs_b", // TriCore_INS_ABSDIFS_B
|
||||
"absdifs_h", // TriCore_INS_ABSDIFS_H
|
||||
"absdifs", // TriCore_INS_ABSDIFS
|
||||
"absdif_b", // TriCore_INS_ABSDIF_B
|
||||
"absdif_h", // TriCore_INS_ABSDIF_H
|
||||
"absdif", // TriCore_INS_ABSDIF
|
||||
"abss_b", // TriCore_INS_ABSS_B
|
||||
"abss_h", // TriCore_INS_ABSS_H
|
||||
"abss", // TriCore_INS_ABSS
|
||||
"abs_b", // TriCore_INS_ABS_B
|
||||
"abs_h", // TriCore_INS_ABS_H
|
||||
"abs", // TriCore_INS_ABS
|
||||
"addc", // TriCore_INS_ADDC
|
||||
"addih_a", // TriCore_INS_ADDIH_A
|
||||
"addih", // TriCore_INS_ADDIH
|
||||
"addi", // TriCore_INS_ADDI
|
||||
"addsc_at", // TriCore_INS_ADDSC_AT
|
||||
"addsc_a", // TriCore_INS_ADDSC_A
|
||||
"adds_bu", // TriCore_INS_ADDS_BU
|
||||
"adds_b", // TriCore_INS_ADDS_B
|
||||
"adds_h", // TriCore_INS_ADDS_H
|
||||
"adds_hu", // TriCore_INS_ADDS_HU
|
||||
"adds_u", // TriCore_INS_ADDS_U
|
||||
"adds", // TriCore_INS_ADDS
|
||||
"addx", // TriCore_INS_ADDX
|
||||
"add_a", // TriCore_INS_ADD_A
|
||||
"add_b", // TriCore_INS_ADD_B
|
||||
"add_f", // TriCore_INS_ADD_F
|
||||
"add_h", // TriCore_INS_ADD_H
|
||||
"add", // TriCore_INS_ADD
|
||||
"andn_t", // TriCore_INS_ANDN_T
|
||||
"andn", // TriCore_INS_ANDN
|
||||
"and_andn_t", // TriCore_INS_AND_ANDN_T
|
||||
"and_and_t", // TriCore_INS_AND_AND_T
|
||||
"and_eq", // TriCore_INS_AND_EQ
|
||||
"and_ge_u", // TriCore_INS_AND_GE_U
|
||||
"and_ge", // TriCore_INS_AND_GE
|
||||
"and_lt_u", // TriCore_INS_AND_LT_U
|
||||
"and_lt", // TriCore_INS_AND_LT
|
||||
"and_ne", // TriCore_INS_AND_NE
|
||||
"and_nor_t", // TriCore_INS_AND_NOR_T
|
||||
"and_or_t", // TriCore_INS_AND_OR_T
|
||||
"and_t", // TriCore_INS_AND_T
|
||||
"and", // TriCore_INS_AND
|
||||
"bisr", // TriCore_INS_BISR
|
||||
"bmerge", // TriCore_INS_BMERGE
|
||||
"bsplit", // TriCore_INS_BSPLIT
|
||||
"cachea_i", // TriCore_INS_CACHEA_I
|
||||
"cachea_wi", // TriCore_INS_CACHEA_WI
|
||||
"cachea_w", // TriCore_INS_CACHEA_W
|
||||
"cachei_i", // TriCore_INS_CACHEI_I
|
||||
"cachei_wi", // TriCore_INS_CACHEI_WI
|
||||
"cachei_w", // TriCore_INS_CACHEI_W
|
||||
"caddn_a", // TriCore_INS_CADDN_A
|
||||
"caddn", // TriCore_INS_CADDN
|
||||
"cadd_a", // TriCore_INS_CADD_A
|
||||
"cadd", // TriCore_INS_CADD
|
||||
"calla", // TriCore_INS_CALLA
|
||||
"calli", // TriCore_INS_CALLI
|
||||
"call", // TriCore_INS_CALL
|
||||
"clo_b", // TriCore_INS_CLO_B
|
||||
"clo_h", // TriCore_INS_CLO_H
|
||||
"clo", // TriCore_INS_CLO
|
||||
"cls_b", // TriCore_INS_CLS_B
|
||||
"cls_h", // TriCore_INS_CLS_H
|
||||
"cls", // TriCore_INS_CLS
|
||||
"clz_b", // TriCore_INS_CLZ_B
|
||||
"clz_h", // TriCore_INS_CLZ_H
|
||||
"clz", // TriCore_INS_CLZ
|
||||
"cmovn", // TriCore_INS_CMOVN
|
||||
"cmov", // TriCore_INS_CMOV
|
||||
"CMPSWAP_W", // TriCore_INS_CMPSWAP_W
|
||||
"cmp_f", // TriCore_INS_CMP_F
|
||||
"crc32b_w", // TriCore_INS_CRC32B_W
|
||||
"crc32l_w", // TriCore_INS_CRC32L_W
|
||||
"crc32_b", // TriCore_INS_CRC32_B
|
||||
"crcn", // TriCore_INS_CRCN
|
||||
"csubn_a", // TriCore_INS_CSUBN_A
|
||||
"csub", // TriCore_INS_CSUB
|
||||
"csub_a", // TriCore_INS_CSUB_A
|
||||
"debug", // TriCore_INS_DEBUG
|
||||
"dextr", // TriCore_INS_DEXTR
|
||||
"difsc_a", // TriCore_INS_DIFSC_A
|
||||
"disable", // TriCore_INS_DISABLE
|
||||
"div_f", // TriCore_INS_DIV_F
|
||||
"div_u", // TriCore_INS_DIV_U
|
||||
"div", // TriCore_INS_DIV
|
||||
"dsync", // TriCore_INS_DSYNC
|
||||
"dvadj", // TriCore_INS_DVADJ
|
||||
"dvinit_bu", // TriCore_INS_DVINIT_BU
|
||||
"dvinit_b", // TriCore_INS_DVINIT_B
|
||||
"dvinit_hu", // TriCore_INS_DVINIT_HU
|
||||
"dvinit_h", // TriCore_INS_DVINIT_H
|
||||
"dvinit_u", // TriCore_INS_DVINIT_U
|
||||
"dvinit", // TriCore_INS_DVINIT
|
||||
"dvstep_u", // TriCore_INS_DVSTEP_U
|
||||
"dvstep", // TriCore_INS_DVSTEP
|
||||
"enable", // TriCore_INS_ENABLE
|
||||
"eqany_b", // TriCore_INS_EQANY_B
|
||||
"eqany_h", // TriCore_INS_EQANY_H
|
||||
"eqz_a", // TriCore_INS_EQZ_A
|
||||
"eq_a", // TriCore_INS_EQ_A
|
||||
"eq_b", // TriCore_INS_EQ_B
|
||||
"eq_h", // TriCore_INS_EQ_H
|
||||
"eq_w", // TriCore_INS_EQ_W
|
||||
"eq", // TriCore_INS_EQ
|
||||
"extr_u", // TriCore_INS_EXTR_U
|
||||
"extr", // TriCore_INS_EXTR
|
||||
"fcalla", // TriCore_INS_FCALLA
|
||||
"fcalli", // TriCore_INS_FCALLI
|
||||
"fcall", // TriCore_INS_FCALL
|
||||
"fret", // TriCore_INS_FRET
|
||||
"ftohp", // TriCore_INS_FTOHP
|
||||
"ftoiz", // TriCore_INS_FTOIZ
|
||||
"ftoi", // TriCore_INS_FTOI
|
||||
"ftoq31z", // TriCore_INS_FTOQ31Z
|
||||
"ftoq31", // TriCore_INS_FTOQ31
|
||||
"ftouz", // TriCore_INS_FTOUZ
|
||||
"ftou", // TriCore_INS_FTOU
|
||||
"ge_a", // TriCore_INS_GE_A
|
||||
"ge_u", // TriCore_INS_GE_U
|
||||
"ge", // TriCore_INS_GE
|
||||
"hptof", // TriCore_INS_HPTOF
|
||||
"imask", // TriCore_INS_IMASK
|
||||
"insert", // TriCore_INS_INSERT
|
||||
"insn_t", // TriCore_INS_INSN_T
|
||||
"ins_t", // TriCore_INS_INS_T
|
||||
"isync", // TriCore_INS_ISYNC
|
||||
"itof", // TriCore_INS_ITOF
|
||||
"ixmax_u", // TriCore_INS_IXMAX_U
|
||||
"ixmax", // TriCore_INS_IXMAX
|
||||
"ixmin_u", // TriCore_INS_IXMIN_U
|
||||
"ixmin", // TriCore_INS_IXMIN
|
||||
"ja", // TriCore_INS_JA
|
||||
"jeq_a", // TriCore_INS_JEQ_A
|
||||
"jeq", // TriCore_INS_JEQ
|
||||
"jgez", // TriCore_INS_JGEZ
|
||||
"jge_u", // TriCore_INS_JGE_U
|
||||
"jge", // TriCore_INS_JGE
|
||||
"jgtz", // TriCore_INS_JGTZ
|
||||
"ji", // TriCore_INS_JI
|
||||
"jla", // TriCore_INS_JLA
|
||||
"jlez", // TriCore_INS_JLEZ
|
||||
"jli", // TriCore_INS_JLI
|
||||
"jltz", // TriCore_INS_JLTZ
|
||||
"jlt_u", // TriCore_INS_JLT_U
|
||||
"jlt", // TriCore_INS_JLT
|
||||
"jl", // TriCore_INS_JL
|
||||
"jned", // TriCore_INS_JNED
|
||||
"jnei", // TriCore_INS_JNEI
|
||||
"jne_a", // TriCore_INS_JNE_A
|
||||
"jne", // TriCore_INS_JNE
|
||||
"jnz_a", // TriCore_INS_JNZ_A
|
||||
"jnz_t", // TriCore_INS_JNZ_T
|
||||
"jnz", // TriCore_INS_JNZ
|
||||
"jz_a", // TriCore_INS_JZ_A
|
||||
"jz_t", // TriCore_INS_JZ_T
|
||||
"jz", // TriCore_INS_JZ
|
||||
"j", // TriCore_INS_J
|
||||
"ldlcx", // TriCore_INS_LDLCX
|
||||
"ldmst", // TriCore_INS_LDMST
|
||||
"lducx", // TriCore_INS_LDUCX
|
||||
"ld_a", // TriCore_INS_LD_A
|
||||
"ld_bu", // TriCore_INS_LD_BU
|
||||
"ld_b", // TriCore_INS_LD_B
|
||||
"ld_da", // TriCore_INS_LD_DA
|
||||
"ld_d", // TriCore_INS_LD_D
|
||||
"ld_hu", // TriCore_INS_LD_HU
|
||||
"ld_h", // TriCore_INS_LD_H
|
||||
"ld_q", // TriCore_INS_LD_Q
|
||||
"ld_w", // TriCore_INS_LD_W
|
||||
"lea", // TriCore_INS_LEA
|
||||
"lha", // TriCore_INS_LHA
|
||||
"loopu", // TriCore_INS_LOOPU
|
||||
"loop", // TriCore_INS_LOOP
|
||||
"lt_a", // TriCore_INS_LT_A
|
||||
"lt_b", // TriCore_INS_LT_B
|
||||
"lt_bu", // TriCore_INS_LT_BU
|
||||
"lt_h", // TriCore_INS_LT_H
|
||||
"lt_hu", // TriCore_INS_LT_HU
|
||||
"lt_u", // TriCore_INS_LT_U
|
||||
"lt_w", // TriCore_INS_LT_W
|
||||
"lt_wu", // TriCore_INS_LT_WU
|
||||
"lt", // TriCore_INS_LT
|
||||
"maddms_h", // TriCore_INS_MADDMS_H
|
||||
"maddm_h", // TriCore_INS_MADDM_H
|
||||
"maddrs_h", // TriCore_INS_MADDRS_H
|
||||
"maddrs_q", // TriCore_INS_MADDRS_Q
|
||||
"maddr_h", // TriCore_INS_MADDR_H
|
||||
"maddr_q", // TriCore_INS_MADDR_Q
|
||||
"maddsums_h", // TriCore_INS_MADDSUMS_H
|
||||
"maddsum_h", // TriCore_INS_MADDSUM_H
|
||||
"maddsurs_h", // TriCore_INS_MADDSURS_H
|
||||
"maddsur_h", // TriCore_INS_MADDSUR_H
|
||||
"maddsus_h", // TriCore_INS_MADDSUS_H
|
||||
"maddsu_h", // TriCore_INS_MADDSU_H
|
||||
"madds_h", // TriCore_INS_MADDS_H
|
||||
"madds_q", // TriCore_INS_MADDS_Q
|
||||
"madds_u", // TriCore_INS_MADDS_U
|
||||
"madds", // TriCore_INS_MADDS
|
||||
"madd_f", // TriCore_INS_MADD_F
|
||||
"madd_h", // TriCore_INS_MADD_H
|
||||
"madd_q", // TriCore_INS_MADD_Q
|
||||
"madd_u", // TriCore_INS_MADD_U
|
||||
"madd", // TriCore_INS_MADD
|
||||
"max_b", // TriCore_INS_MAX_B
|
||||
"max_bu", // TriCore_INS_MAX_BU
|
||||
"max_h", // TriCore_INS_MAX_H
|
||||
"max_hu", // TriCore_INS_MAX_HU
|
||||
"max_u", // TriCore_INS_MAX_U
|
||||
"max", // TriCore_INS_MAX
|
||||
"mfcr", // TriCore_INS_MFCR
|
||||
"min_b", // TriCore_INS_MIN_B
|
||||
"min_bu", // TriCore_INS_MIN_BU
|
||||
"min_h", // TriCore_INS_MIN_H
|
||||
"min_hu", // TriCore_INS_MIN_HU
|
||||
"min_u", // TriCore_INS_MIN_U
|
||||
"min", // TriCore_INS_MIN
|
||||
"movh_a", // TriCore_INS_MOVH_A
|
||||
"movh", // TriCore_INS_MOVH
|
||||
"mov_aa", // TriCore_INS_MOV_AA
|
||||
"mov_a", // TriCore_INS_MOV_A
|
||||
"mov_d", // TriCore_INS_MOV_D
|
||||
"mov_u", // TriCore_INS_MOV_U
|
||||
"mov", // TriCore_INS_MOV
|
||||
"msubadms_h", // TriCore_INS_MSUBADMS_H
|
||||
"msubadm_h", // TriCore_INS_MSUBADM_H
|
||||
"msubadrs_h", // TriCore_INS_MSUBADRS_H
|
||||
"msubadr_h", // TriCore_INS_MSUBADR_H
|
||||
"msubads_h", // TriCore_INS_MSUBADS_H
|
||||
"msubad_h", // TriCore_INS_MSUBAD_H
|
||||
"msubms_h", // TriCore_INS_MSUBMS_H
|
||||
"msubm_h", // TriCore_INS_MSUBM_H
|
||||
"msubrs_h", // TriCore_INS_MSUBRS_H
|
||||
"msubrs_q", // TriCore_INS_MSUBRS_Q
|
||||
"msubr_h", // TriCore_INS_MSUBR_H
|
||||
"msubr_q", // TriCore_INS_MSUBR_Q
|
||||
"msubs_h", // TriCore_INS_MSUBS_H
|
||||
"msubs_q", // TriCore_INS_MSUBS_Q
|
||||
"msubs", // TriCore_INS_MSUBS
|
||||
"msub_f", // TriCore_INS_MSUB_F
|
||||
"msub_h", // TriCore_INS_MSUB_H
|
||||
"msub_q", // TriCore_INS_MSUB_Q
|
||||
"msub", // TriCore_INS_MSUB
|
||||
"mtcr", // TriCore_INS_MTCR
|
||||
"mulm_h", // TriCore_INS_MULM_H
|
||||
"mulr_h", // TriCore_INS_MULR_H
|
||||
"mulr_q", // TriCore_INS_MULR_Q
|
||||
"muls_u", // TriCore_INS_MULS_U
|
||||
"muls", // TriCore_INS_MULS
|
||||
"mul_f", // TriCore_INS_MUL_F
|
||||
"mul_h", // TriCore_INS_MUL_H
|
||||
"mul_q", // TriCore_INS_MUL_Q
|
||||
"mul_u", // TriCore_INS_MUL_U
|
||||
"mul", // TriCore_INS_MUL
|
||||
"nand_t", // TriCore_INS_NAND_T
|
||||
"nand", // TriCore_INS_NAND
|
||||
"nez_a", // TriCore_INS_NEZ_A
|
||||
"ne_a", // TriCore_INS_NE_A
|
||||
"ne", // TriCore_INS_NE
|
||||
"nop", // TriCore_INS_NOP
|
||||
"nor_t", // TriCore_INS_NOR_T
|
||||
"nor", // TriCore_INS_NOR
|
||||
"not", // TriCore_INS_NOT
|
||||
"orn_t", // TriCore_INS_ORN_T
|
||||
"orn", // TriCore_INS_ORN
|
||||
"or_andn_t", // TriCore_INS_OR_ANDN_T
|
||||
"or_and_t", // TriCore_INS_OR_AND_T
|
||||
"or_eq", // TriCore_INS_OR_EQ
|
||||
"or_ge_u", // TriCore_INS_OR_GE_U
|
||||
"or_ge", // TriCore_INS_OR_GE
|
||||
"or_lt_u", // TriCore_INS_OR_LT_U
|
||||
"or_lt", // TriCore_INS_OR_LT
|
||||
"or_ne", // TriCore_INS_OR_NE
|
||||
"or_nor_t", // TriCore_INS_OR_NOR_T
|
||||
"or_or_t", // TriCore_INS_OR_OR_T
|
||||
"or_t", // TriCore_INS_OR_T
|
||||
"or", // TriCore_INS_OR
|
||||
"pack", // TriCore_INS_PACK
|
||||
"parity", // TriCore_INS_PARITY
|
||||
"popcnt_w", // TriCore_INS_POPCNT_W
|
||||
"q31tof", // TriCore_INS_Q31TOF
|
||||
"qseed_f", // TriCore_INS_QSEED_F
|
||||
"restore", // TriCore_INS_RESTORE
|
||||
"ret", // TriCore_INS_RET
|
||||
"rfe", // TriCore_INS_RFE
|
||||
"rfm", // TriCore_INS_RFM
|
||||
"relck", // TriCore_INS_RELCK
|
||||
"rsubs_u", // TriCore_INS_RSUBS_U
|
||||
"rsubs", // TriCore_INS_RSUBS
|
||||
"rsub", // TriCore_INS_RSUB
|
||||
"sat_bu", // TriCore_INS_SAT_BU
|
||||
"sat_b", // TriCore_INS_SAT_B
|
||||
"sat_hu", // TriCore_INS_SAT_HU
|
||||
"sat_h", // TriCore_INS_SAT_H
|
||||
"seln", // TriCore_INS_SELN
|
||||
"sel", // TriCore_INS_SEL
|
||||
"shas", // TriCore_INS_SHAS
|
||||
"sha_h", // TriCore_INS_SHA_H
|
||||
"sha", // TriCore_INS_SHA
|
||||
"shuffle", // TriCore_INS_SHUFFLE
|
||||
"sh_andn_t", // TriCore_INS_SH_ANDN_T
|
||||
"sh_and_t", // TriCore_INS_SH_AND_T
|
||||
"sh_eq", // TriCore_INS_SH_EQ
|
||||
"sh_ge_u", // TriCore_INS_SH_GE_U
|
||||
"sh_ge", // TriCore_INS_SH_GE
|
||||
"sh_h", // TriCore_INS_SH_H
|
||||
"sh_lt_u", // TriCore_INS_SH_LT_U
|
||||
"sh_lt", // TriCore_INS_SH_LT
|
||||
"sh_nand_t", // TriCore_INS_SH_NAND_T
|
||||
"sh_nor_t", // TriCore_INS_SH_NOR_T
|
||||
"sh_orn_t", // TriCore_INS_SH_ORN_T
|
||||
"sh_or_t", // TriCore_INS_SH_OR_T
|
||||
"sh_xnor_t", // TriCore_INS_SH_XNOR_T
|
||||
"sh_xor_t", // TriCore_INS_SH_XOR_T
|
||||
"sh", // TriCore_INS_SH
|
||||
"stlcx", // TriCore_INS_STLCX
|
||||
"stucx", // TriCore_INS_STUCX
|
||||
"st_a", // TriCore_INS_ST_A
|
||||
"st_b", // TriCore_INS_ST_B
|
||||
"st_da", // TriCore_INS_ST_DA
|
||||
"st_d", // TriCore_INS_ST_D
|
||||
"st_h", // TriCore_INS_ST_H
|
||||
"st_q", // TriCore_INS_ST_Q
|
||||
"st_t", // TriCore_INS_ST_T
|
||||
"st_w", // TriCore_INS_ST_W
|
||||
"subc", // TriCore_INS_SUBC
|
||||
"subs_hu", // TriCore_INS_SUBS_HU
|
||||
"subs_h", // TriCore_INS_SUBS_H
|
||||
"subs_u", // TriCore_INS_SUBS_U
|
||||
"subs", // TriCore_INS_SUBS
|
||||
"subx", // TriCore_INS_SUBX
|
||||
"sub_a", // TriCore_INS_SUB_A
|
||||
"sub_b", // TriCore_INS_SUB_B
|
||||
"sub_f", // TriCore_INS_SUB_F
|
||||
"sub_h", // TriCore_INS_SUB_H
|
||||
"sub", // TriCore_INS_SUB
|
||||
"svlcx", // TriCore_INS_SVLCX
|
||||
"swapmsk_w", // TriCore_INS_SWAPMSK_W
|
||||
"swap_w", // TriCore_INS_SWAP_W
|
||||
"syscall", // TriCore_INS_SYSCALL
|
||||
"trapsv", // TriCore_INS_TRAPSV
|
||||
"trapv", // TriCore_INS_TRAPV
|
||||
"unpack", // TriCore_INS_UNPACK
|
||||
"updfl", // TriCore_INS_UPDFL
|
||||
"utof", // TriCore_INS_UTOF
|
||||
"wait", // TriCore_INS_WAIT
|
||||
"xnor_t", // TriCore_INS_XNOR_T
|
||||
"xnor", // TriCore_INS_XNOR
|
||||
"xor_eq", // TriCore_INS_XOR_EQ
|
||||
"xor_ge_u", // TriCore_INS_XOR_GE_U
|
||||
"xor_ge", // TriCore_INS_XOR_GE
|
||||
"xor_lt_u", // TriCore_INS_XOR_LT_U
|
||||
"xor_lt", // TriCore_INS_XOR_LT
|
||||
"xor_ne", // TriCore_INS_XOR_NE
|
||||
"xor", // TriCore_INS_XOR
|
7156
arch/TriCore/TriCoreGenCSMappingInsnOp.inc
Normal file
7156
arch/TriCore/TriCoreGenCSMappingInsnOp.inc
Normal file
File diff suppressed because it is too large
Load Diff
18
arch/TriCore/TriCoreGenCSOpGroup.inc
Normal file
18
arch/TriCore/TriCoreGenCSOpGroup.inc
Normal file
@ -0,0 +1,18 @@
|
||||
/* Capstone Disassembly Engine, https://www.capstone-engine.org */
|
||||
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2019 */
|
||||
/* By Rot127 <unisono@quyllur.org>, 2023 */
|
||||
|
||||
/* Auto generated file. Do not edit. */
|
||||
/* Code generator: https://github.com/capstone-engine/capstone/tree/next/suite/auto-sync */
|
||||
|
||||
TriCore_OP_GROUP_RegImmShift = 0,
|
||||
TriCore_OP_GROUP_LdStmModeOperand = 1,
|
||||
TriCore_OP_GROUP_MandatoryInvertedPredicateOperand = 2,
|
||||
TriCore_OP_GROUP_Operand = 3,
|
||||
TriCore_OP_GROUP_SExtImm__ = 4,
|
||||
TriCore_OP_GROUP_ZExtImm__ = 5,
|
||||
TriCore_OP_GROUP_Disp24Imm = 6,
|
||||
TriCore_OP_GROUP_Disp8Imm = 7,
|
||||
TriCore_OP_GROUP_Disp15Imm = 8,
|
||||
TriCore_OP_GROUP_Disp4Imm = 9,
|
||||
TriCore_OP_GROUP_Off18Imm = 10,
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -75,12 +75,12 @@ enum {
|
||||
// Register classes
|
||||
|
||||
enum {
|
||||
TriCore_AddrRegsRegClassID = 0,
|
||||
TriCore_DataRegsRegClassID = 1,
|
||||
TriCore_RARegClassID = 0,
|
||||
TriCore_RDRegClassID = 1,
|
||||
TriCore_PSRegsRegClassID = 2,
|
||||
TriCore_AddrExtRegsRegClassID = 3,
|
||||
TriCore_ExtRegsRegClassID = 4,
|
||||
TriCore_PairAddrRegsRegClassID = 5,
|
||||
TriCore_PairAddrRegsRegClassID = 3,
|
||||
TriCore_RERegClassID = 4,
|
||||
TriCore_RPRegClassID = 5,
|
||||
|
||||
};
|
||||
|
||||
@ -213,23 +213,23 @@ static const MCRegisterDesc TriCoreRegDesc[] = { // Descriptors
|
||||
{ 126, 30, 2, 0, 2, 2 },
|
||||
};
|
||||
|
||||
// AddrRegs Register Class...
|
||||
static const MCPhysReg AddrRegs[] = {
|
||||
// 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,
|
||||
};
|
||||
|
||||
// AddrRegs Bit set.
|
||||
static const uint8_t AddrRegsBits[] = {
|
||||
// RA Bit set.
|
||||
static const uint8_t RABits[] = {
|
||||
0xe0, 0xff, 0x1f,
|
||||
};
|
||||
|
||||
// DataRegs Register Class...
|
||||
static const MCPhysReg DataRegs[] = {
|
||||
// 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,
|
||||
};
|
||||
|
||||
// DataRegs Bit set.
|
||||
static const uint8_t DataRegsBits[] = {
|
||||
// RD Bit set.
|
||||
static const uint8_t RDBits[] = {
|
||||
0x00, 0x00, 0xe0, 0xff, 0x1f,
|
||||
};
|
||||
|
||||
@ -243,26 +243,6 @@ static const MCRegisterDesc TriCoreRegDesc[] = { // Descriptors
|
||||
0x1e,
|
||||
};
|
||||
|
||||
// AddrExtRegs Register Class...
|
||||
static const MCPhysReg AddrExtRegs[] = {
|
||||
TriCore_P0, TriCore_P2, TriCore_P4, TriCore_P6, TriCore_P8, TriCore_P10, TriCore_P12, TriCore_P14,
|
||||
};
|
||||
|
||||
// AddrExtRegs Bit set.
|
||||
static const uint8_t AddrExtRegsBits[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
|
||||
};
|
||||
|
||||
// ExtRegs Register Class...
|
||||
static const MCPhysReg ExtRegs[] = {
|
||||
TriCore_E0, TriCore_E2, TriCore_E4, TriCore_E6, TriCore_E8, TriCore_E10, TriCore_E12, TriCore_E14,
|
||||
};
|
||||
|
||||
// ExtRegs Bit set.
|
||||
static const uint8_t ExtRegsBits[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
|
||||
};
|
||||
|
||||
// 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,
|
||||
@ -273,13 +253,33 @@ static const MCRegisterDesc TriCoreRegDesc[] = { // Descriptors
|
||||
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[] = {
|
||||
{ AddrRegs, AddrRegsBits, sizeof(AddrRegsBits) },
|
||||
{ DataRegs, DataRegsBits, sizeof(DataRegsBits) },
|
||||
{ RA, RABits, sizeof(RABits) },
|
||||
{ RD, RDBits, sizeof(RDBits) },
|
||||
{ PSRegs, PSRegsBits, sizeof(PSRegsBits) },
|
||||
{ AddrExtRegs, AddrExtRegsBits, sizeof(AddrExtRegsBits) },
|
||||
{ ExtRegs, ExtRegsBits, sizeof(ExtRegsBits) },
|
||||
{ PairAddrRegs, PairAddrRegsBits, sizeof(PairAddrRegsBits) },
|
||||
{ RE, REBits, sizeof(REBits) },
|
||||
{ RP, RPBits, sizeof(RPBits) },
|
||||
};
|
||||
|
||||
#endif // GET_REGINFO_MC_DESC
|
||||
|
@ -230,36 +230,44 @@ class ISC_C<bits<8> op1, string asmstr>
|
||||
: SC<op1, (outs), (ins u8imm:$const8),
|
||||
asmstr # " $const8", []>;
|
||||
|
||||
class ISRC<bits<8> op1, string asmstr>
|
||||
class ISRC_DdC<bits<8> op1, string asmstr>
|
||||
: SRC<op1, (outs RD:$d), (ins s4imm:$const4),
|
||||
asmstr # " $d, $const4",
|
||||
[]>;
|
||||
|
||||
class ISRC_Aa<bits<8> op1, string asmstr>
|
||||
class ISRC_AdS<bits<8> op1, string asmstr>
|
||||
: SRC<op1, (outs RA:$d), (ins s4imm:$const4),
|
||||
asmstr # " $d, $const4",
|
||||
[]>;
|
||||
|
||||
class ISRC_AaZ<bits<8> op1, string asmstr>
|
||||
class ISRC_AdU<bits<8> op1, string asmstr>
|
||||
: SRC<op1, (outs RA:$d), (ins u4imm:$const4),
|
||||
asmstr # " $d, $const4",
|
||||
[]>;
|
||||
|
||||
class ISRC_a15<bits<8> op1, string asmstr>
|
||||
class ISRC_AdD15S<bits<8> op1, string asmstr>
|
||||
: SRC<op1, (outs RD:$d), (ins s4imm:$const4),
|
||||
asmstr # " $d, %d15, $const4",
|
||||
[]>;
|
||||
|
||||
class ISRC_15a<bits<8> op1, string asmstr>
|
||||
class ISRC_D15DdS<bits<8> op1, string asmstr>
|
||||
: SRC<op1, (outs RD:$d), (ins s4imm:$const4),
|
||||
asmstr # " %d15, $d, $const4",
|
||||
[]>;
|
||||
|
||||
multiclass mISRR_SRC<bits<8> op_srr, bits<8> op_src, string asmstr,
|
||||
RegisterClass RCd=RD, RegisterClass RC2=RD, Operand Oc=u4imm, string posfix="">{
|
||||
def _srr#posfix: SRR<op_srr, (outs RCd:$d), (ins RC2:$s2),
|
||||
asmstr # " %d15, $d, $s2", []>;
|
||||
def _src#posfix: SRC<op_src, (outs RCd:$d), (ins Oc:$const4),
|
||||
asmstr # " %d15, $d, $const4", []>;
|
||||
}
|
||||
|
||||
multiclass mISRC_a15a<bits<8> op1, bits<8> op2, bits<8> op3,
|
||||
string asmstr> {
|
||||
def _src : ISRC<op1, asmstr>;
|
||||
def _src_a15 : ISRC_a15<op2, asmstr>;
|
||||
def _src_15a : ISRC_15a<op3, asmstr>;
|
||||
def _src : ISRC_DdC<op1, asmstr>;
|
||||
def _src_a15 : ISRC_AdD15S<op2, asmstr>;
|
||||
def _src_15a : ISRC_D15DdS<op3, asmstr>;
|
||||
}
|
||||
|
||||
class ISRRS_AcAbD15N<bits<6> op1, string asmstr>
|
||||
@ -492,7 +500,7 @@ defm ADD : mIRR_RC<0x0B, 0x00, 0x8B, 0x00, "add">,
|
||||
multiclass mIRR_SRC_SRR__A<bits<8> rr1, bits<8> rr2, bits<8> src1, bits<8> srr1,
|
||||
string asmstr> {
|
||||
def _rr : IRR_2<rr1, rr2, asmstr, RA, RA, RA>;
|
||||
def _src : ISRC_Aa<src1, asmstr>;
|
||||
def _src : ISRC_AdS<src1, asmstr>;
|
||||
def _srr : ISRR_AaAb<srr1, asmstr>;
|
||||
}
|
||||
|
||||
@ -715,7 +723,7 @@ def CADD_srr_v110 : ISRR_DdD15Db<0x0A, "cadd">, NsRequires<[HasV110]>;
|
||||
|
||||
def CADD_rcr : IRCR_DcDdDa<0xAB, 0x00, "cadd">;
|
||||
def CADD_rrr : IRRR_DcDdDaDb<0x2B, 0x00, "cadd">;
|
||||
def CADD_src : ISRC_a15<0x8A, "cadd">;
|
||||
def CADD_src : ISRC_AdD15S<0x8A, "cadd">;
|
||||
|
||||
def CADD_A_rrr_v110 : RRR<0x21, 0x00, (outs RA:$d), (ins RD:$s1, RA:$s2, RA:$s3), "cadd.a $d $s3, $s1, $s2", []>
|
||||
, NsRequires<[HasV110]>;
|
||||
@ -726,7 +734,7 @@ def CADDN_srr_v110 : ISRR_DdD15Db<0x4A, "caddn">
|
||||
|
||||
def CADDN_rcr : IRCR_DcDdDa<0xAB, 0x01, "caddn">;
|
||||
def CADDN_rrr : IRRR_DcDdDaDb<0x2B, 0x01, "caddn">;
|
||||
def CADDN_src : ISRC_a15<0xCA, "caddn">;
|
||||
def CADDN_src : ISRC_AdD15S<0xCA, "caddn">;
|
||||
|
||||
def CADDN_A_rrr_v110 : RRR<0x21, 0x01, (outs RA:$d), (ins RD:$s1, RA:$s2, RA:$s3), "caddn.a $d $s3, $s1, $s2", []>
|
||||
, NsRequires<[HasV110]>;
|
||||
@ -776,9 +784,9 @@ defm CLZ : mI_H<0x0F, 0x1B, 0x0F, 0x7C, "clz">;
|
||||
def CLZ_B_rr_v110 : RR<0x0F, 0x3C, (outs RD:$d), (ins RD:$s1), "clz.b $d, $s1", []>
|
||||
, NsRequires<[HasV110]>;
|
||||
|
||||
def CMOV_src : ISRC_a15<0xAA, "cmov">;
|
||||
def CMOV_src : ISRC_AdD15S<0xAA, "cmov">;
|
||||
def CMOV_srr : ISRR_DdD15Db<0x2A, "cmov">;
|
||||
def CMOVN_src : ISRC_a15<0xEA, "cmovn">;
|
||||
def CMOVN_src : ISRC_AdD15S<0xEA, "cmovn">;
|
||||
def CMOVN_srr : ISRR_DdD15Db<0x6A, "cmovn">;
|
||||
|
||||
// A[b], off10, E[a] (BO)(Base + Short Offset Addressing Mode)
|
||||
@ -997,7 +1005,7 @@ multiclass mIB_H_W<bits<8> brr1, bits<8> brr2,
|
||||
|
||||
defm EQ : mIRR_RC<0x0B, 0x10, 0x8B, 0x10, "eq">
|
||||
, mIB_H_W<0x0B, 0x50, 0x0B, 0x70, 0x0B, 0x90, "eq">;
|
||||
def EQ_src : ISRC_15a<0xBA, "eq">;
|
||||
def EQ_src : ISRC_D15DdS<0xBA, "eq">;
|
||||
def EQ_srr : ISRR_D15DdDb<0x3A, "eq">;
|
||||
def EQ_A_rr: IRR_DcAaAb<0x01, 0x40, "eq.a">;
|
||||
|
||||
@ -1319,19 +1327,17 @@ def LEA_abs : IABS_RO<0xC5, 0x00, "lea", RA>;
|
||||
def LEA_bo_bso : IBO_RAbso<0x49, 0x28, "lea", RA>;
|
||||
def LEA_bol : IBOL_RAaO<0xD9, "lea", RA>;
|
||||
|
||||
def LHA_abs : IABS_RO<0xC5, 0x01, "lha", RA>;
|
||||
def LHA_abs : IABS_RO<0xC5, 0x01, "lha", RA>, Requires<[HasV162_UP]>;
|
||||
|
||||
def LOOP_brr : IBRR_Ab<0xFD, 0x00, "loop">;
|
||||
def LOOP_sbr : ISBR_Ab<0xFC, "loop">;
|
||||
def LOOPU_brr : IBRR_0<0xFD, 0x01, "loopu">;
|
||||
def LOOPU_brr : IBRR_0<0xFD, 0x01, "loopu">, Requires<[HasV120_UP]>;
|
||||
|
||||
defm LT : mIRR_RC<0x0B, 0x12, 0x8B, 0x12, "lt">;
|
||||
def LT_src : ISRC_15a<0xFA, "lt">;
|
||||
def LT_srr : ISRR_D15DdDb<0x7A, "lt">;
|
||||
defm LT : mISRR_SRC<0x7A, 0xFA, "lt", RD, RD, s4imm>;
|
||||
|
||||
defm LT_U : mIRR_RC<0x0B, 0x13, 0x8B, 0x13, "lt.u">;
|
||||
def LT_U_srr_v110;
|
||||
def LT_U_src_v110;
|
||||
defm LT_U : mISRR_SRC<0x06, 0x86, "lt.u", RD, RD, u4imm, "v110">, NsRequires<[HasV110]>;
|
||||
def LT_A_rr : IRR_DcAaAb<0x01, 0x42, "lt.a">;
|
||||
|
||||
multiclass mIU__RR_ab<bits<8> op1, bits<8> op2,
|
||||
@ -1464,14 +1470,14 @@ def MOV_rrDcDb : IRR_DcDb<0x0B, 0x1F, "mov">;
|
||||
def MOV_rrEcDb : IRR_b<0x0B, 0x80, "mov", RE, RD>;
|
||||
def MOV_rrEcDaDb : IRR_EcDaDb<0x0B, 0x81, "mov">;
|
||||
def MOV_sc : ISC_D15C<0xDA, "mov">;
|
||||
def MOV_srcDa : ISRC<0x82, "mov">;
|
||||
def MOV_srcDa : ISRC_DdC<0x82, "mov">;
|
||||
def MOV_srcEa : ISRC_1<0xD2, "mov", RE>;
|
||||
def MOV_srr : ISRR_DaDb<0x02, "mov">;
|
||||
|
||||
multiclass mIRR_SRCz_SRR__A<bits<8> rr1, bits<8> rr2, bits<8> src1, bits<8> srr1,
|
||||
string asmstr> {
|
||||
def _rr : IRR_2<rr1, rr2, asmstr, RA, RA, RA>;
|
||||
def _src : ISRC_AaZ<src1, asmstr>;
|
||||
def _src : ISRC_AdU<src1, asmstr>;
|
||||
def _srr : ISRR_AaDb<srr1, asmstr>;
|
||||
}
|
||||
|
||||
|
@ -90,7 +90,7 @@ static insn_map insns[] = {
|
||||
0
|
||||
#endif
|
||||
},
|
||||
#include "./gen/TriCoreGenCSMappingInsn.inc"
|
||||
#include "TriCoreGenCSMappingInsn.inc"
|
||||
};
|
||||
|
||||
// given internal insn id, return public instruction info
|
||||
@ -131,7 +131,7 @@ void TriCore_get_insn_id(cs_struct *h, cs_insn *insn, unsigned int id)
|
||||
|
||||
static const char *insn_names[] = {
|
||||
NULL,
|
||||
#include "./gen/TriCoreGenCSMappingInsnName.inc"
|
||||
#include "TriCoreGenCSMappingInsnName.inc"
|
||||
};
|
||||
|
||||
// special alias insn
|
||||
|
@ -1,356 +0,0 @@
|
||||
/* Capstone Disassembly Engine, https://www.capstone-engine.org */
|
||||
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2019 */
|
||||
/* By Rot127 <unisono@quyllur.org>, 2023 */
|
||||
|
||||
/* Auto generated file. Do not edit. */
|
||||
/* Code generator: https://github.com/capstone-engine/capstone/tree/next/suite/auto-sync */
|
||||
|
||||
"xor.t", // TriCore_INS_XOR.T
|
||||
"absdifs.b", // TriCore_INS_ABSDIFS.B
|
||||
"absdifs.h", // TriCore_INS_ABSDIFS.H
|
||||
"absdifs", // TriCore_INS_ABSDIFS
|
||||
"absdif.b", // TriCore_INS_ABSDIF.B
|
||||
"absdif.h", // TriCore_INS_ABSDIF.H
|
||||
"absdif", // TriCore_INS_ABSDIF
|
||||
"abss.b", // TriCore_INS_ABSS.B
|
||||
"abss.h", // TriCore_INS_ABSS.H
|
||||
"abss", // TriCore_INS_ABSS
|
||||
"abs.b", // TriCore_INS_ABS.B
|
||||
"abs.h", // TriCore_INS_ABS.H
|
||||
"abs", // TriCore_INS_ABS
|
||||
"addc", // TriCore_INS_ADDC
|
||||
"addih.a", // TriCore_INS_ADDIH.A
|
||||
"addih", // TriCore_INS_ADDIH
|
||||
"addi", // TriCore_INS_ADDI
|
||||
"addsc.at", // TriCore_INS_ADDSC.AT
|
||||
"addsc.a", // TriCore_INS_ADDSC.A
|
||||
"adds.bu", // TriCore_INS_ADDS.BU
|
||||
"adds.b", // TriCore_INS_ADDS.B
|
||||
"adds.h", // TriCore_INS_ADDS.H
|
||||
"adds.hu", // TriCore_INS_ADDS.HU
|
||||
"adds.u", // TriCore_INS_ADDS.U
|
||||
"adds", // TriCore_INS_ADDS
|
||||
"addx", // TriCore_INS_ADDX
|
||||
"add.a", // TriCore_INS_ADD.A
|
||||
"add.b", // TriCore_INS_ADD.B
|
||||
"add.f", // TriCore_INS_ADD.F
|
||||
"add.h", // TriCore_INS_ADD.H
|
||||
"add", // TriCore_INS_ADD
|
||||
"andn.t", // TriCore_INS_ANDN.T
|
||||
"andn", // TriCore_INS_ANDN
|
||||
"and.andn.t", // TriCore_INS_AND.ANDN.T
|
||||
"and.and.t", // TriCore_INS_AND.AND.T
|
||||
"and.eq", // TriCore_INS_AND.EQ
|
||||
"and.ge.u", // TriCore_INS_AND.GE.U
|
||||
"and.ge", // TriCore_INS_AND.GE
|
||||
"and.lt.u", // TriCore_INS_AND.LT.U
|
||||
"and.lt", // TriCore_INS_AND.LT
|
||||
"and.ne", // TriCore_INS_AND.NE
|
||||
"and.nor.t", // TriCore_INS_AND.NOR.T
|
||||
"and.or.t", // TriCore_INS_AND.OR.T
|
||||
"and.t", // TriCore_INS_AND.T
|
||||
"and", // TriCore_INS_AND
|
||||
"bisr", // TriCore_INS_BISR
|
||||
"bmerge", // TriCore_INS_BMERGE
|
||||
"bsplit", // TriCore_INS_BSPLIT
|
||||
"cachei.i", // TriCore_INS_CACHEI.I
|
||||
"cachei.wi", // TriCore_INS_CACHEI.WI
|
||||
"cachei.w", // TriCore_INS_CACHEI.W
|
||||
"cache.i", // TriCore_INS_CACHE.I
|
||||
"cache.wi", // TriCore_INS_CACHE.WI
|
||||
"cache.w", // TriCore_INS_CACHE.W
|
||||
"caddn", // TriCore_INS_CADDN
|
||||
"cadd", // TriCore_INS_CADD
|
||||
"calla", // TriCore_INS_CALLA
|
||||
"calli", // TriCore_INS_CALLI
|
||||
"call", // TriCore_INS_CALL
|
||||
"clo.h", // TriCore_INS_CLO.H
|
||||
"clo", // TriCore_INS_CLO
|
||||
"cls.h", // TriCore_INS_CLS.H
|
||||
"cls", // TriCore_INS_CLS
|
||||
"clz.h", // TriCore_INS_CLZ.H
|
||||
"clz", // TriCore_INS_CLZ
|
||||
"cmovn", // TriCore_INS_CMOVN
|
||||
"cmov", // TriCore_INS_CMOV
|
||||
"CMPSWAP.W", // TriCore_INS_CMPSWAP.W
|
||||
"cmp.f", // TriCore_INS_CMP.F
|
||||
"crc32b.w", // TriCore_INS_CRC32B.W
|
||||
"crc32l.w", // TriCore_INS_CRC32L.W
|
||||
"crc32.b", // TriCore_INS_CRC32.B
|
||||
"crcn", // TriCore_INS_CRCN
|
||||
"csub", // TriCore_INS_CSUB
|
||||
"debug", // TriCore_INS_DEBUG
|
||||
"dextr", // TriCore_INS_DEXTR
|
||||
"disable", // TriCore_INS_DISABLE
|
||||
"div.f", // TriCore_INS_DIV.F
|
||||
"div.u", // TriCore_INS_DIV.U
|
||||
"div", // TriCore_INS_DIV
|
||||
"dsync", // TriCore_INS_DSYNC
|
||||
"dvadj", // TriCore_INS_DVADJ
|
||||
"dvinit.bu", // TriCore_INS_DVINIT.BU
|
||||
"dvinit.b", // TriCore_INS_DVINIT.B
|
||||
"dvinit.hu", // TriCore_INS_DVINIT.HU
|
||||
"dvinit.h", // TriCore_INS_DVINIT.H
|
||||
"dvinit.u", // TriCore_INS_DVINIT.U
|
||||
"dvinit", // TriCore_INS_DVINIT
|
||||
"dvstep.u", // TriCore_INS_DVSTEP.U
|
||||
"dvstep", // TriCore_INS_DVSTEP
|
||||
"enable", // TriCore_INS_ENABLE
|
||||
"eqany.b", // TriCore_INS_EQANY.B
|
||||
"eqany.h", // TriCore_INS_EQANY.H
|
||||
"eqz.a", // TriCore_INS_EQZ.A
|
||||
"eq.a", // TriCore_INS_EQ.A
|
||||
"eq.b", // TriCore_INS_EQ.B
|
||||
"eq.h", // TriCore_INS_EQ.H
|
||||
"eq.w", // TriCore_INS_EQ.W
|
||||
"eq", // TriCore_INS_EQ
|
||||
"extr.u", // TriCore_INS_EXTR.U
|
||||
"extr", // TriCore_INS_EXTR
|
||||
"fcalla", // TriCore_INS_FCALLA
|
||||
"fcalli", // TriCore_INS_FCALLI
|
||||
"fcall", // TriCore_INS_FCALL
|
||||
"fret", // TriCore_INS_FRET
|
||||
"ftohp", // TriCore_INS_FTOHP
|
||||
"ftoiz", // TriCore_INS_FTOIZ
|
||||
"ftoi", // TriCore_INS_FTOI
|
||||
"ftoq31z", // TriCore_INS_FTOQ31Z
|
||||
"ftoq31", // TriCore_INS_FTOQ31
|
||||
"ftouz", // TriCore_INS_FTOUZ
|
||||
"ftou", // TriCore_INS_FTOU
|
||||
"ge.a", // TriCore_INS_GE.A
|
||||
"ge.u", // TriCore_INS_GE.U
|
||||
"ge", // TriCore_INS_GE
|
||||
"hptof", // TriCore_INS_HPTOF
|
||||
"imask", // TriCore_INS_IMASK
|
||||
"insert", // TriCore_INS_INSERT
|
||||
"insn.t", // TriCore_INS_INSN.T
|
||||
"ins.t", // TriCore_INS_INS.T
|
||||
"isync", // TriCore_INS_ISYNC
|
||||
"itof", // TriCore_INS_ITOF
|
||||
"ixmax.u", // TriCore_INS_IXMAX.U
|
||||
"ixmax", // TriCore_INS_IXMAX
|
||||
"ixmin.u", // TriCore_INS_IXMIN.U
|
||||
"ixmin", // TriCore_INS_IXMIN
|
||||
"ja", // TriCore_INS_JA
|
||||
"jeq.a", // TriCore_INS_JEQ.A
|
||||
"jeq", // TriCore_INS_JEQ
|
||||
"jgez", // TriCore_INS_JGEZ
|
||||
"jge.u", // TriCore_INS_JGE.U
|
||||
"jge", // TriCore_INS_JGE
|
||||
"jgtz", // TriCore_INS_JGTZ
|
||||
"ji", // TriCore_INS_JI
|
||||
"jla", // TriCore_INS_JLA
|
||||
"jlez", // TriCore_INS_JLEZ
|
||||
"jli", // TriCore_INS_JLI
|
||||
"jltz", // TriCore_INS_JLTZ
|
||||
"jlt.u", // TriCore_INS_JLT.U
|
||||
"jlt", // TriCore_INS_JLT
|
||||
"jl", // TriCore_INS_JL
|
||||
"jned", // TriCore_INS_JNED
|
||||
"jnei", // TriCore_INS_JNEI
|
||||
"jne.a", // TriCore_INS_JNE.A
|
||||
"jne", // TriCore_INS_JNE
|
||||
"jnz.a", // TriCore_INS_JNZ.A
|
||||
"jnz.t", // TriCore_INS_JNZ.T
|
||||
"jnz", // TriCore_INS_JNZ
|
||||
"jz.a", // TriCore_INS_JZ.A
|
||||
"jz.t", // TriCore_INS_JZ.T
|
||||
"jz", // TriCore_INS_JZ
|
||||
"j", // TriCore_INS_J
|
||||
"ldlcx", // TriCore_INS_LDLCX
|
||||
"ldmst", // TriCore_INS_LDMST
|
||||
"lducx", // TriCore_INS_LDUCX
|
||||
"ld.a", // TriCore_INS_LD.A
|
||||
"ld.bu", // TriCore_INS_LD.BU
|
||||
"ld.b", // TriCore_INS_LD.B
|
||||
"ld.da", // TriCore_INS_LD.DA
|
||||
"ld.d", // TriCore_INS_LD.D
|
||||
"ld.hu", // TriCore_INS_LD.HU
|
||||
"ld.h", // TriCore_INS_LD.H
|
||||
"ld.q", // TriCore_INS_LD.Q
|
||||
"ld.w", // TriCore_INS_LD.W
|
||||
"lea", // TriCore_INS_LEA
|
||||
"lha", // TriCore_INS_LHA
|
||||
"loopu", // TriCore_INS_LOOPU
|
||||
"loop", // TriCore_INS_LOOP
|
||||
"lt.a", // TriCore_INS_LT.A
|
||||
"lt.b", // TriCore_INS_LT.B
|
||||
"lt.bu", // TriCore_INS_LT.BU
|
||||
"lt.h", // TriCore_INS_LT.H
|
||||
"lt.hu", // TriCore_INS_LT.HU
|
||||
"lt.u", // TriCore_INS_LT.U
|
||||
"lt.w", // TriCore_INS_LT.W
|
||||
"lt.wu", // TriCore_INS_LT.WU
|
||||
"lt", // TriCore_INS_LT
|
||||
"maddms.h", // TriCore_INS_MADDMS.H
|
||||
"maddm.h", // TriCore_INS_MADDM.H
|
||||
"maddrs.h", // TriCore_INS_MADDRS.H
|
||||
"maddrs.q", // TriCore_INS_MADDRS.Q
|
||||
"maddr.h", // TriCore_INS_MADDR.H
|
||||
"maddr.q", // TriCore_INS_MADDR.Q
|
||||
"maddsums.h", // TriCore_INS_MADDSUMS.H
|
||||
"maddsum.h", // TriCore_INS_MADDSUM.H
|
||||
"maddsurs.h", // TriCore_INS_MADDSURS.H
|
||||
"maddsur.h", // TriCore_INS_MADDSUR.H
|
||||
"maddsus.h", // TriCore_INS_MADDSUS.H
|
||||
"maddsu.h", // TriCore_INS_MADDSU.H
|
||||
"madds.h", // TriCore_INS_MADDS.H
|
||||
"madds.q", // TriCore_INS_MADDS.Q
|
||||
"madds.u", // TriCore_INS_MADDS.U
|
||||
"madds", // TriCore_INS_MADDS
|
||||
"madd.f", // TriCore_INS_MADD.F
|
||||
"madd.h", // TriCore_INS_MADD.H
|
||||
"madd.q", // TriCore_INS_MADD.Q
|
||||
"madd.u", // TriCore_INS_MADD.U
|
||||
"madd", // TriCore_INS_MADD
|
||||
"max.b", // TriCore_INS_MAX.B
|
||||
"max.bu", // TriCore_INS_MAX.BU
|
||||
"max.h", // TriCore_INS_MAX.H
|
||||
"max.hu", // TriCore_INS_MAX.HU
|
||||
"max.u", // TriCore_INS_MAX.U
|
||||
"max", // TriCore_INS_MAX
|
||||
"mfcr", // TriCore_INS_MFCR
|
||||
"min.b", // TriCore_INS_MIN.B
|
||||
"min.bu", // TriCore_INS_MIN.BU
|
||||
"min.h", // TriCore_INS_MIN.H
|
||||
"min.hu", // TriCore_INS_MIN.HU
|
||||
"min.u", // TriCore_INS_MIN.U
|
||||
"min", // TriCore_INS_MIN
|
||||
"movh.a", // TriCore_INS_MOVH.A
|
||||
"movh", // TriCore_INS_MOVH
|
||||
"mov.aa", // TriCore_INS_MOV.AA
|
||||
"mov.a", // TriCore_INS_MOV.A
|
||||
"mov.d", // TriCore_INS_MOV.D
|
||||
"mov.u", // TriCore_INS_MOV.U
|
||||
"mov", // TriCore_INS_MOV
|
||||
"msubadms.h", // TriCore_INS_MSUBADMS.H
|
||||
"msubadm.h", // TriCore_INS_MSUBADM.H
|
||||
"msubadrs.h", // TriCore_INS_MSUBADRS.H
|
||||
"msubadr.h", // TriCore_INS_MSUBADR.H
|
||||
"msubads.h", // TriCore_INS_MSUBADS.H
|
||||
"msubad.h", // TriCore_INS_MSUBAD.H
|
||||
"msubms.h", // TriCore_INS_MSUBMS.H
|
||||
"msubm.h", // TriCore_INS_MSUBM.H
|
||||
"msubrs.h", // TriCore_INS_MSUBRS.H
|
||||
"msubrs.q", // TriCore_INS_MSUBRS.Q
|
||||
"msubr.h", // TriCore_INS_MSUBR.H
|
||||
"msubr.q", // TriCore_INS_MSUBR.Q
|
||||
"msubs.h", // TriCore_INS_MSUBS.H
|
||||
"msubs.q", // TriCore_INS_MSUBS.Q
|
||||
"msubs", // TriCore_INS_MSUBS
|
||||
"msub.f", // TriCore_INS_MSUB.F
|
||||
"msub.h", // TriCore_INS_MSUB.H
|
||||
"msub.q", // TriCore_INS_MSUB.Q
|
||||
"msub", // TriCore_INS_MSUB
|
||||
"mtcr", // TriCore_INS_MTCR
|
||||
"mulm.h", // TriCore_INS_MULM.H
|
||||
"mulr.h", // TriCore_INS_MULR.H
|
||||
"mulr.q", // TriCore_INS_MULR.Q
|
||||
"muls.u", // TriCore_INS_MULS.U
|
||||
"muls", // TriCore_INS_MULS
|
||||
"mul.f", // TriCore_INS_MUL.F
|
||||
"mul.h", // TriCore_INS_MUL.H
|
||||
"mul.q", // TriCore_INS_MUL.Q
|
||||
"mul.u", // TriCore_INS_MUL.U
|
||||
"mul", // TriCore_INS_MUL
|
||||
"nand.t", // TriCore_INS_NAND.T
|
||||
"nand", // TriCore_INS_NAND
|
||||
"nez.a", // TriCore_INS_NEZ.A
|
||||
"ne.a", // TriCore_INS_NE.A
|
||||
"ne", // TriCore_INS_NE
|
||||
"nop", // TriCore_INS_NOP
|
||||
"nor.t", // TriCore_INS_NOR.T
|
||||
"nor", // TriCore_INS_NOR
|
||||
"not", // TriCore_INS_NOT
|
||||
"orn.t", // TriCore_INS_ORN.T
|
||||
"orn", // TriCore_INS_ORN
|
||||
"or.andn.t", // TriCore_INS_OR.ANDN.T
|
||||
"or.and.t", // TriCore_INS_OR.AND.T
|
||||
"or.eq", // TriCore_INS_OR.EQ
|
||||
"or.ge.u", // TriCore_INS_OR.GE.U
|
||||
"or.ge", // TriCore_INS_OR.GE
|
||||
"or.lt.u", // TriCore_INS_OR.LT.U
|
||||
"or.lt", // TriCore_INS_OR.LT
|
||||
"or.ne", // TriCore_INS_OR.NE
|
||||
"or.nor.t", // TriCore_INS_OR.NOR.T
|
||||
"or.or.t", // TriCore_INS_OR.OR.T
|
||||
"or.t", // TriCore_INS_OR.T
|
||||
"or", // TriCore_INS_OR
|
||||
"pack", // TriCore_INS_PACK
|
||||
"parity", // TriCore_INS_PARITY
|
||||
"popcnt.w", // TriCore_INS_POPCNT.W
|
||||
"q31tof", // TriCore_INS_Q31TOF
|
||||
"qseed.f", // TriCore_INS_QSEED.F
|
||||
"restore", // TriCore_INS_RESTORE
|
||||
"ret", // TriCore_INS_RET
|
||||
"rfe", // TriCore_INS_RFE
|
||||
"rfm", // TriCore_INS_RFM
|
||||
"relck", // TriCore_INS_RELCK
|
||||
"rsubs.u", // TriCore_INS_RSUBS.U
|
||||
"rsubs", // TriCore_INS_RSUBS
|
||||
"rsub", // TriCore_INS_RSUB
|
||||
"sat.bu", // TriCore_INS_SAT.BU
|
||||
"sat.b", // TriCore_INS_SAT.B
|
||||
"sat.hu", // TriCore_INS_SAT.HU
|
||||
"sat.h", // TriCore_INS_SAT.H
|
||||
"seln", // TriCore_INS_SELN
|
||||
"sel", // TriCore_INS_SEL
|
||||
"shas", // TriCore_INS_SHAS
|
||||
"sha.h", // TriCore_INS_SHA.H
|
||||
"sha", // TriCore_INS_SHA
|
||||
"shuffle", // TriCore_INS_SHUFFLE
|
||||
"sh.andn.t", // TriCore_INS_SH.ANDN.T
|
||||
"sh.and.t", // TriCore_INS_SH.AND.T
|
||||
"sh.eq", // TriCore_INS_SH.EQ
|
||||
"sh.ge.u", // TriCore_INS_SH.GE.U
|
||||
"sh.ge", // TriCore_INS_SH.GE
|
||||
"sh.h", // TriCore_INS_SH.H
|
||||
"sh.lt.u", // TriCore_INS_SH.LT.U
|
||||
"sh.lt", // TriCore_INS_SH.LT
|
||||
"sh.nand.t", // TriCore_INS_SH.NAND.T
|
||||
"sh.nor.t", // TriCore_INS_SH.NOR.T
|
||||
"sh.orn.t", // TriCore_INS_SH.ORN.T
|
||||
"sh.or.t", // TriCore_INS_SH.OR.T
|
||||
"sh.xnor.t", // TriCore_INS_SH.XNOR.T
|
||||
"sh.xor.t", // TriCore_INS_SH.XOR.T
|
||||
"sh", // TriCore_INS_SH
|
||||
"stlcx", // TriCore_INS_STLCX
|
||||
"stucx", // TriCore_INS_STUCX
|
||||
"st.a", // TriCore_INS_ST.A
|
||||
"st.b", // TriCore_INS_ST.B
|
||||
"st.da", // TriCore_INS_ST.DA
|
||||
"st.d", // TriCore_INS_ST.D
|
||||
"st.h", // TriCore_INS_ST.H
|
||||
"st.q", // TriCore_INS_ST.Q
|
||||
"st.t", // TriCore_INS_ST.T
|
||||
"st.w", // TriCore_INS_ST.W
|
||||
"subc", // TriCore_INS_SUBC
|
||||
"subs.hu", // TriCore_INS_SUBS.HU
|
||||
"subs.h", // TriCore_INS_SUBS.H
|
||||
"subs.u", // TriCore_INS_SUBS.U
|
||||
"subs", // TriCore_INS_SUBS
|
||||
"subx", // TriCore_INS_SUBX
|
||||
"sub.a", // TriCore_INS_SUB.A
|
||||
"sub.b", // TriCore_INS_SUB.B
|
||||
"sub.f", // TriCore_INS_SUB.F
|
||||
"sub.h", // TriCore_INS_SUB.H
|
||||
"sub", // TriCore_INS_SUB
|
||||
"svlcx", // TriCore_INS_SVLCX
|
||||
"swapmsk.w", // TriCore_INS_SWAPMSK.W
|
||||
"swap.w", // TriCore_INS_SWAP.W
|
||||
"syscall", // TriCore_INS_SYSCALL
|
||||
"trapsv", // TriCore_INS_TRAPSV
|
||||
"trapv", // TriCore_INS_TRAPV
|
||||
"unpack", // TriCore_INS_UNPACK
|
||||
"updfl", // TriCore_INS_UPDFL
|
||||
"utof", // TriCore_INS_UTOF
|
||||
"wait", // TriCore_INS_WAIT
|
||||
"xnor.t", // TriCore_INS_XNOR.T
|
||||
"xnor", // TriCore_INS_XNOR
|
||||
"xor.eq", // TriCore_INS_XOR.EQ
|
||||
"xor.ge.u", // TriCore_INS_XOR.GE.U
|
||||
"xor.ge", // TriCore_INS_XOR.GE
|
||||
"xor.lt.u", // TriCore_INS_XOR.LT.U
|
||||
"xor.lt", // TriCore_INS_XOR.LT
|
||||
"xor.ne", // TriCore_INS_XOR.NE
|
||||
"xor", // TriCore_INS_XOR
|
7
include/capstone/inc/TriCoreGenCSFeatureEnum.inc
Normal file
7
include/capstone/inc/TriCoreGenCSFeatureEnum.inc
Normal file
@ -0,0 +1,7 @@
|
||||
/* Capstone Disassembly Engine, https://www.capstone-engine.org */
|
||||
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2019 */
|
||||
/* By Rot127 <unisono@quyllur.org>, 2023 */
|
||||
|
||||
/* Auto generated file. Do not edit. */
|
||||
/* Code generator: https://github.com/capstone-engine/capstone/tree/next/suite/auto-sync */
|
||||
|
@ -1,9 +1,9 @@
|
||||
/* Capstone Disassembly Engine, https://www_capstone-engine_org */
|
||||
/* By Nguyen Anh Quynh <aquynh@gmail_com>, 2013-2019 */
|
||||
/* By Rot127 <unisono@quyllur_org>, 2023 */
|
||||
/* Capstone Disassembly Engine, https://www.capstone-engine.org */
|
||||
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2019 */
|
||||
/* By Rot127 <unisono@quyllur.org>, 2023 */
|
||||
|
||||
/* Auto generated file_ Do not edit_ */
|
||||
/* Code generator: https://github_com/capstone-engine/capstone/tree/next/suite/auto-sync */
|
||||
/* Auto generated file. Do not edit. */
|
||||
/* Code generator: https://github.com/capstone-engine/capstone/tree/next/suite/auto-sync */
|
||||
|
||||
TriCore_INS_XOR_T,
|
||||
TriCore_INS_ABSDIFS_B,
|
||||
@ -53,21 +53,26 @@
|
||||
TriCore_INS_BISR,
|
||||
TriCore_INS_BMERGE,
|
||||
TriCore_INS_BSPLIT,
|
||||
TriCore_INS_CACHEA_I,
|
||||
TriCore_INS_CACHEA_WI,
|
||||
TriCore_INS_CACHEA_W,
|
||||
TriCore_INS_CACHEI_I,
|
||||
TriCore_INS_CACHEI_WI,
|
||||
TriCore_INS_CACHEI_W,
|
||||
TriCore_INS_CACHE_I,
|
||||
TriCore_INS_CACHE_WI,
|
||||
TriCore_INS_CACHE_W,
|
||||
TriCore_INS_CADDN_A,
|
||||
TriCore_INS_CADDN,
|
||||
TriCore_INS_CADD_A,
|
||||
TriCore_INS_CADD,
|
||||
TriCore_INS_CALLA,
|
||||
TriCore_INS_CALLI,
|
||||
TriCore_INS_CALL,
|
||||
TriCore_INS_CLO_B,
|
||||
TriCore_INS_CLO_H,
|
||||
TriCore_INS_CLO,
|
||||
TriCore_INS_CLS_B,
|
||||
TriCore_INS_CLS_H,
|
||||
TriCore_INS_CLS,
|
||||
TriCore_INS_CLZ_B,
|
||||
TriCore_INS_CLZ_H,
|
||||
TriCore_INS_CLZ,
|
||||
TriCore_INS_CMOVN,
|
||||
@ -78,9 +83,12 @@
|
||||
TriCore_INS_CRC32L_W,
|
||||
TriCore_INS_CRC32_B,
|
||||
TriCore_INS_CRCN,
|
||||
TriCore_INS_CSUBN_A,
|
||||
TriCore_INS_CSUB,
|
||||
TriCore_INS_CSUB_A,
|
||||
TriCore_INS_DEBUG,
|
||||
TriCore_INS_DEXTR,
|
||||
TriCore_INS_DIFSC_A,
|
||||
TriCore_INS_DISABLE,
|
||||
TriCore_INS_DIV_F,
|
||||
TriCore_INS_DIV_U,
|
||||
|
69
include/capstone/inc/TriCoreGenCSRegEnum.inc
Normal file
69
include/capstone/inc/TriCoreGenCSRegEnum.inc
Normal file
@ -0,0 +1,69 @@
|
||||
/* Capstone Disassembly Engine, https://www.capstone-engine.org */
|
||||
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2019 */
|
||||
/* By Rot127 <unisono@quyllur.org>, 2023 */
|
||||
|
||||
/* Auto generated file. Do not edit. */
|
||||
/* Code generator: https://github.com/capstone-engine/capstone/tree/next/suite/auto-sync */
|
||||
|
||||
TriCore_REG_INVALID = 0,
|
||||
TriCore_REG_FCX = 1,
|
||||
TriCore_REG_PC = 2,
|
||||
TriCore_REG_PCXI = 3,
|
||||
TriCore_REG_PSW = 4,
|
||||
TriCore_REG_A0 = 5,
|
||||
TriCore_REG_A1 = 6,
|
||||
TriCore_REG_A2 = 7,
|
||||
TriCore_REG_A3 = 8,
|
||||
TriCore_REG_A4 = 9,
|
||||
TriCore_REG_A5 = 10,
|
||||
TriCore_REG_A6 = 11,
|
||||
TriCore_REG_A7 = 12,
|
||||
TriCore_REG_A8 = 13,
|
||||
TriCore_REG_A9 = 14,
|
||||
TriCore_REG_A10 = 15,
|
||||
TriCore_REG_A11 = 16,
|
||||
TriCore_REG_A12 = 17,
|
||||
TriCore_REG_A13 = 18,
|
||||
TriCore_REG_A14 = 19,
|
||||
TriCore_REG_A15 = 20,
|
||||
TriCore_REG_D0 = 21,
|
||||
TriCore_REG_D1 = 22,
|
||||
TriCore_REG_D2 = 23,
|
||||
TriCore_REG_D3 = 24,
|
||||
TriCore_REG_D4 = 25,
|
||||
TriCore_REG_D5 = 26,
|
||||
TriCore_REG_D6 = 27,
|
||||
TriCore_REG_D7 = 28,
|
||||
TriCore_REG_D8 = 29,
|
||||
TriCore_REG_D9 = 30,
|
||||
TriCore_REG_D10 = 31,
|
||||
TriCore_REG_D11 = 32,
|
||||
TriCore_REG_D12 = 33,
|
||||
TriCore_REG_D13 = 34,
|
||||
TriCore_REG_D14 = 35,
|
||||
TriCore_REG_D15 = 36,
|
||||
TriCore_REG_E0 = 37,
|
||||
TriCore_REG_E2 = 38,
|
||||
TriCore_REG_E4 = 39,
|
||||
TriCore_REG_E6 = 40,
|
||||
TriCore_REG_E8 = 41,
|
||||
TriCore_REG_E10 = 42,
|
||||
TriCore_REG_E12 = 43,
|
||||
TriCore_REG_E14 = 44,
|
||||
TriCore_REG_P0 = 45,
|
||||
TriCore_REG_P2 = 46,
|
||||
TriCore_REG_P4 = 47,
|
||||
TriCore_REG_P6 = 48,
|
||||
TriCore_REG_P8 = 49,
|
||||
TriCore_REG_P10 = 50,
|
||||
TriCore_REG_P12 = 51,
|
||||
TriCore_REG_P14 = 52,
|
||||
TriCore_REG_A0_A1 = 53,
|
||||
TriCore_REG_A2_A3 = 54,
|
||||
TriCore_REG_A4_A5 = 55,
|
||||
TriCore_REG_A6_A7 = 56,
|
||||
TriCore_REG_A8_A9 = 57,
|
||||
TriCore_REG_A10_A11 = 58,
|
||||
TriCore_REG_A12_A13 = 59,
|
||||
TriCore_REG_A14_A15 = 60,
|
||||
TriCore_REG_ENDING, // 61
|
@ -53,94 +53,23 @@ typedef struct cs_tricore {
|
||||
|
||||
//> TriCore registers
|
||||
typedef enum tricore_reg {
|
||||
TriCore_REG_INVALID = 0,
|
||||
TriCore_REG_FCX = 1,
|
||||
TriCore_REG_PC = 2,
|
||||
TriCore_REG_PCXI = 3,
|
||||
TriCore_REG_PSW = 4,
|
||||
TriCore_REG_A0 = 5,
|
||||
TriCore_REG_A1 = 6,
|
||||
TriCore_REG_A2 = 7,
|
||||
TriCore_REG_A3 = 8,
|
||||
TriCore_REG_A4 = 9,
|
||||
TriCore_REG_A5 = 10,
|
||||
TriCore_REG_A6 = 11,
|
||||
TriCore_REG_A7 = 12,
|
||||
TriCore_REG_A8 = 13,
|
||||
TriCore_REG_A9 = 14,
|
||||
TriCore_REG_A10 = 15,
|
||||
TriCore_REG_A11 = 16,
|
||||
TriCore_REG_A12 = 17,
|
||||
TriCore_REG_A13 = 18,
|
||||
TriCore_REG_A14 = 19,
|
||||
TriCore_REG_A15 = 20,
|
||||
TriCore_REG_D0 = 21,
|
||||
TriCore_REG_D1 = 22,
|
||||
TriCore_REG_D2 = 23,
|
||||
TriCore_REG_D3 = 24,
|
||||
TriCore_REG_D4 = 25,
|
||||
TriCore_REG_D5 = 26,
|
||||
TriCore_REG_D6 = 27,
|
||||
TriCore_REG_D7 = 28,
|
||||
TriCore_REG_D8 = 29,
|
||||
TriCore_REG_D9 = 30,
|
||||
TriCore_REG_D10 = 31,
|
||||
TriCore_REG_D11 = 32,
|
||||
TriCore_REG_D12 = 33,
|
||||
TriCore_REG_D13 = 34,
|
||||
TriCore_REG_D14 = 35,
|
||||
TriCore_REG_D15 = 36,
|
||||
TriCore_REG_E0 = 37,
|
||||
TriCore_REG_E2 = 38,
|
||||
TriCore_REG_E4 = 39,
|
||||
TriCore_REG_E6 = 40,
|
||||
TriCore_REG_E8 = 41,
|
||||
TriCore_REG_E10 = 42,
|
||||
TriCore_REG_E12 = 43,
|
||||
TriCore_REG_E14 = 44,
|
||||
TriCore_REG_P0 = 45,
|
||||
TriCore_REG_P2 = 46,
|
||||
TriCore_REG_P4 = 47,
|
||||
TriCore_REG_P6 = 48,
|
||||
TriCore_REG_P8 = 49,
|
||||
TriCore_REG_P10 = 50,
|
||||
TriCore_REG_P12 = 51,
|
||||
TriCore_REG_P14 = 52,
|
||||
TriCore_REG_A0_A1 = 53,
|
||||
TriCore_REG_A2_A3 = 54,
|
||||
TriCore_REG_A4_A5 = 55,
|
||||
TriCore_REG_A6_A7 = 56,
|
||||
TriCore_REG_A8_A9 = 57,
|
||||
TriCore_REG_A10_A11 = 58,
|
||||
TriCore_REG_A12_A13 = 59,
|
||||
TriCore_REG_A14_A15 = 60,
|
||||
|
||||
TriCore_REG_ENDING, // <-- mark the end of the list of registers
|
||||
#include "./inc/TriCoreGenCSRegEnum.inc"
|
||||
} tricore_reg;
|
||||
|
||||
//> TriCore instruction
|
||||
typedef enum tricore_insn {
|
||||
TriCore_INS_INVALID = 0,
|
||||
|
||||
#include "./inc/TriCoreGenCSInsnEnum.inc"
|
||||
|
||||
TriCore_INS_ENDING, // <-- mark the end of the list of instructions
|
||||
|
||||
TriCore_GRP_CALL, ///< = CS_GRP_CALL
|
||||
TriCore_GRP_JUMP, ///< = CS_GRP_JUMP
|
||||
TriCore_GRP_INVALID, ///< = CS_GRP_INVALID
|
||||
TriCore_GRP_ENDING, ///< = CS_GRP_ENDING
|
||||
} tricore_insn;
|
||||
|
||||
//> Group of TriCore instructions
|
||||
typedef enum tricore_insn_group {
|
||||
TRICORE_GRP_INVALID = 0, // = CS_GRP_INVALID
|
||||
|
||||
TriCore_GRP_INVALID, ///< = CS_GRP_INVALID
|
||||
//> Generic groups
|
||||
// all jump instructions (conditional+direct+indirect jumps)
|
||||
TRICORE_GRP_JUMP, // = CS_GRP_JUMP
|
||||
|
||||
TRICORE_GRP_ENDING, // <-- mark the end of the list of groups
|
||||
TriCore_GRP_CALL, ///< = CS_GRP_CALL
|
||||
TriCore_GRP_JUMP, ///< = CS_GRP_JUMP
|
||||
TriCore_GRP_ENDING, ///< = mark the end of the list of groups
|
||||
} tricore_insn_group;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
Loading…
Reference in New Issue
Block a user