fix build
This commit is contained in:
parent
30432c862d
commit
b1f7cfeb84
|
@ -120,6 +120,30 @@ static DecodeStatus DecodeRR2Instruction(MCInst *Inst, unsigned Insn,
|
|||
static DecodeStatus DecodeRRPWInstruction(MCInst *Inst, unsigned Insn,
|
||||
uint64_t Address, void *Decoder);
|
||||
|
||||
static DecodeStatus DecodeSLRInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeSLROInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeSROInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeSRRSInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeSBCInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeSBRNInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeSSRInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeSSROInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeSYSInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeRRR2Instruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeRRR1Instruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeBITInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeRR1Instruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeRCRInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeRRRWInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeRCRRInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeRRRRInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeBRRInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeBRCInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeRRRInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeABSBInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeRCRWInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
static DecodeStatus DecodeBRNInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder);
|
||||
|
||||
#include "TriCoreGenDisassemblerTables.inc"
|
||||
|
||||
#define GET_REGINFO_ENUM
|
||||
|
@ -835,6 +859,99 @@ static DecodeStatus DecodeRRPWInstruction(MCInst *Inst, unsigned Insn,
|
|||
return MCDisassembler_Success;
|
||||
}
|
||||
|
||||
static DecodeStatus DecodeSLRInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeSLROInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeSROInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeSRRSInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeSBCInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeSBRNInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeSSRInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeSSROInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeSYSInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeRRR2Instruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeRRR1Instruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeBITInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeRR1Instruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeRCRInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeRRRWInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeRCRRInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeRRRRInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeBRRInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeBRCInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeRRRInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeABSBInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeRCRWInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
static DecodeStatus DecodeBRNInstruction(MCInst *Inst, unsigned Insn, uint64_t Address, void *Decoder){
|
||||
// TODO: DecodeBRNInstruction
|
||||
return MCDisassembler_Fail;
|
||||
}
|
||||
|
||||
#define GET_SUBTARGETINFO_ENUM
|
||||
#include "TriCoreGenInstrInfo.inc"
|
||||
bool TriCore_getInstruction(csh ud, const uint8_t *code, size_t code_len, MCInst *MI,
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -30,11 +30,12 @@
|
|||
#include "TriCoreMapping.h"
|
||||
|
||||
static const char *getRegisterName(unsigned RegNo);
|
||||
static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI);
|
||||
|
||||
static void printInstruction(MCInst *, uint64_t, SStream *);
|
||||
|
||||
static void printOperand(MCInst *MI, int OpNum, SStream *O);
|
||||
|
||||
void TriCore_post_printer(csh ud, cs_insn *insn, char *insn_asm, MCInst *mci)
|
||||
{
|
||||
void TriCore_post_printer(csh ud, cs_insn *insn, char *insn_asm, MCInst *mci) {
|
||||
/*
|
||||
if (((cs_struct *)ud)->detail != CS_OPT_ON)
|
||||
return;
|
||||
|
@ -42,13 +43,14 @@ void TriCore_post_printer(csh ud, cs_insn *insn, char *insn_asm, MCInst *mci)
|
|||
}
|
||||
|
||||
#define GET_INSTRINFO_ENUM
|
||||
|
||||
#include "TriCoreGenInstrInfo.inc"
|
||||
|
||||
#define GET_REGINFO_ENUM
|
||||
|
||||
#include "TriCoreGenRegisterInfo.inc"
|
||||
|
||||
static void printOperand(MCInst *MI, int OpNum, SStream *O)
|
||||
{
|
||||
static void printOperand(MCInst *MI, int OpNum, SStream *O) {
|
||||
MCOperand *Op;
|
||||
if (OpNum >= MI->size)
|
||||
return;
|
||||
|
@ -61,7 +63,8 @@ static void printOperand(MCInst *MI, int OpNum, SStream *O)
|
|||
|
||||
if (MI->csh->detail) {
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].type = TRICORE_OP_REG;
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].reg = (uint8_t)TriCore_map_register(reg);
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].reg = (uint8_t) TriCore_map_register(
|
||||
reg);
|
||||
MI->flat_insn->detail->tricore.op_count++;
|
||||
}
|
||||
} else if (MCOperand_isImm(Op)) {
|
||||
|
@ -88,56 +91,63 @@ static void printOperand(MCInst *MI, int OpNum, SStream *O)
|
|||
}
|
||||
|
||||
static void printPairAddrRegsOperand(MCInst *MI, unsigned OpNum, SStream *O,
|
||||
MCRegisterInfo *MRI)
|
||||
{
|
||||
MCRegisterInfo *MRI) {
|
||||
unsigned Reg = MCOperand_getReg(MCInst_getOperand(MI, OpNum));
|
||||
SStream_concat0(O, "[");
|
||||
SStream_concat(O, "%%%s", getRegisterName(MCRegisterInfo_getSubReg(MRI, Reg, TriCore_subreg_even)));
|
||||
if (MI->csh->detail) {
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].type = TRICORE_OP_REG;
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].reg = (uint8_t)TriCore_map_register(MCRegisterInfo_getSubReg(MRI, Reg, TriCore_subreg_even));
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].reg = (uint8_t) TriCore_map_register(
|
||||
MCRegisterInfo_getSubReg(MRI, Reg, TriCore_subreg_even));
|
||||
MI->flat_insn->detail->tricore.op_count++;
|
||||
}
|
||||
SStream_concat0(O, "/");
|
||||
SStream_concat(O, "%%%s", getRegisterName(MCRegisterInfo_getSubReg(MRI, Reg, TriCore_subreg_odd)));
|
||||
if (MI->csh->detail) {
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].type = TRICORE_OP_REG;
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].reg = (uint8_t)TriCore_map_register(MCRegisterInfo_getSubReg(MRI, Reg, TriCore_subreg_odd));
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].reg = (uint8_t) TriCore_map_register(
|
||||
MCRegisterInfo_getSubReg(MRI, Reg, TriCore_subreg_odd));
|
||||
MI->flat_insn->detail->tricore.op_count++;
|
||||
}
|
||||
SStream_concat0(O, "]");
|
||||
}
|
||||
|
||||
static void printSExtImm(MCInst *MI, int OpNum, SStream *O)
|
||||
{
|
||||
static void printSExtImm(MCInst *MI, int OpNum, SStream *O) {
|
||||
MCOperand *MO = MCInst_getOperand(MI, OpNum);
|
||||
if (MCOperand_isImm(MO)) {
|
||||
int64_t imm = MCOperand_getImm(MO);
|
||||
if (imm >= 0) {
|
||||
if (imm > HEX_THRESHOLD)
|
||||
SStream_concat(O, "0x%x", (unsigned short int)imm);
|
||||
SStream_concat(O, "0x%x", (unsigned short int) imm);
|
||||
else
|
||||
SStream_concat(O, "%u", (unsigned short int)imm);
|
||||
SStream_concat(O, "%u", (unsigned short int) imm);
|
||||
} else {
|
||||
if (imm < -HEX_THRESHOLD)
|
||||
SStream_concat(O, "-0x%x", (short int)-imm);
|
||||
SStream_concat(O, "-0x%x", (short int) -imm);
|
||||
else
|
||||
SStream_concat(O, "-%u", (short int)-imm);
|
||||
SStream_concat(O, "-%u", (short int) -imm);
|
||||
}
|
||||
if (MI->csh->detail) {
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].type = TRICORE_OP_IMM;
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].imm = (unsigned short int)imm;
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].imm = (unsigned short int) imm;
|
||||
MI->flat_insn->detail->tricore.op_count++;
|
||||
}
|
||||
} else
|
||||
printOperand(MI, OpNum, O);
|
||||
}
|
||||
|
||||
static void printZExtImm(MCInst *MI, int OpNum, SStream *O)
|
||||
{
|
||||
static void printSExtImm_16(MCInst *MI, int OpNum, SStream *O) { /*TODO: TriCore*/}
|
||||
|
||||
static void printSExtImm_10(MCInst *MI, int OpNum, SStream *O) { /*TODO: TriCore*/}
|
||||
|
||||
static void printSExtImm_9(MCInst *MI, int OpNum, SStream *O) { /*TODO: TriCore*/}
|
||||
|
||||
static void printSExtImm_4(MCInst *MI, int OpNum, SStream *O) { /*TODO: TriCore*/}
|
||||
|
||||
static void printZExtImm(MCInst *MI, int OpNum, SStream *O) {
|
||||
MCOperand *MO = MCInst_getOperand(MI, OpNum);
|
||||
if (MCOperand_isImm(MO)) {
|
||||
unsigned imm = (unsigned)MCOperand_getImm(MO);
|
||||
unsigned imm = (unsigned) MCOperand_getImm(MO);
|
||||
if (imm > HEX_THRESHOLD)
|
||||
SStream_concat(O, "0x%x", imm);
|
||||
else
|
||||
|
@ -151,16 +161,22 @@ static void printZExtImm(MCInst *MI, int OpNum, SStream *O)
|
|||
printOperand(MI, OpNum, O);
|
||||
}
|
||||
|
||||
static void printZExtImm_8(MCInst *MI, int OpNum, SStream *O) { /*TODO: TriCore*/}
|
||||
|
||||
static void printZExtImm_4(MCInst *MI, int OpNum, SStream *O) { /*TODO: TriCore*/}
|
||||
|
||||
static void printZExtImm_2(MCInst *MI, int OpNum, SStream *O) { /*TODO: TriCore*/}
|
||||
|
||||
|
||||
static void printPCRelImmOperand(MCInst *MI, int OpNum, SStream *O) {
|
||||
MCOperand *Op = MCInst_getOperand(MI, OpNum);
|
||||
if (MCOperand_isImm(Op)) {
|
||||
unsigned imm = (unsigned)MCOperand_getImm(Op);
|
||||
unsigned imm = (unsigned) MCOperand_getImm(Op);
|
||||
if (imm > HEX_THRESHOLD)
|
||||
SStream_concat(O, "0x%x", imm);
|
||||
else
|
||||
SStream_concat(O, "%u", imm);
|
||||
}
|
||||
else
|
||||
} else
|
||||
printOperand(MI, OpNum, O);
|
||||
}
|
||||
|
||||
|
@ -169,7 +185,7 @@ static void printPCRelImmOperand(MCInst *MI, int OpNum, SStream *O) {
|
|||
static void printAddrBO(MCInst *MI, int OpNum, SStream *O) {
|
||||
|
||||
unsigned Base = MCOperand_getReg(MCInst_getOperand(MI, OpNum));
|
||||
uint64_t Disp = (uint64_t)MCOperand_getImm(MCInst_getOperand(MI, OpNum + 1));
|
||||
uint64_t Disp = (uint64_t) MCOperand_getImm(MCInst_getOperand(MI, OpNum + 1));
|
||||
|
||||
SStream_concat(O, "[");
|
||||
SStream_concat(O, "%%%s", getRegisterName(Base));
|
||||
|
@ -182,7 +198,8 @@ static void printAddrBO(MCInst *MI, int OpNum, SStream *O) {
|
|||
|
||||
if (MI->csh->detail) {
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].type = TRICORE_OP_MEM;
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].mem.base = (uint8_t)TriCore_map_register(Base);
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].mem.base = (uint8_t) TriCore_map_register(
|
||||
Base);
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].mem.disp = Disp;
|
||||
MI->flat_insn->detail->tricore.op_count++;
|
||||
}
|
||||
|
@ -193,7 +210,7 @@ static void printAddrBO(MCInst *MI, int OpNum, SStream *O) {
|
|||
static void printAddrPreIncBO(MCInst *MI, int OpNum, SStream *O) {
|
||||
|
||||
unsigned Base = MCOperand_getReg(MCInst_getOperand(MI, OpNum));
|
||||
uint64_t Disp = (uint64_t)MCOperand_getImm(MCInst_getOperand(MI, OpNum + 1));
|
||||
uint64_t Disp = (uint64_t) MCOperand_getImm(MCInst_getOperand(MI, OpNum + 1));
|
||||
|
||||
SStream_concat(O, "[+");
|
||||
SStream_concat(O, "%%%s", getRegisterName(Base));
|
||||
|
@ -206,7 +223,8 @@ static void printAddrPreIncBO(MCInst *MI, int OpNum, SStream *O) {
|
|||
|
||||
if (MI->csh->detail) {
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].type = TRICORE_OP_MEM;
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].mem.base = (uint8_t)TriCore_map_register(Base);
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].mem.base = (uint8_t) TriCore_map_register(
|
||||
Base);
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].mem.disp = Disp;
|
||||
MI->flat_insn->detail->tricore.op_count++;
|
||||
}
|
||||
|
@ -217,7 +235,7 @@ static void printAddrPreIncBO(MCInst *MI, int OpNum, SStream *O) {
|
|||
static void printAddrPostIncBO(MCInst *MI, int OpNum, SStream *O) {
|
||||
|
||||
unsigned Base = MCOperand_getReg(MCInst_getOperand(MI, OpNum));
|
||||
uint64_t Disp = (uint64_t)MCOperand_getImm(MCInst_getOperand(MI, OpNum + 1));
|
||||
uint64_t Disp = (uint64_t) MCOperand_getImm(MCInst_getOperand(MI, OpNum + 1));
|
||||
|
||||
SStream_concat(O, "[");
|
||||
SStream_concat(O, "%%%s", getRegisterName(Base));
|
||||
|
@ -230,7 +248,8 @@ static void printAddrPostIncBO(MCInst *MI, int OpNum, SStream *O) {
|
|||
|
||||
if (MI->csh->detail) {
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].type = TRICORE_OP_MEM;
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].mem.base = (uint8_t)TriCore_map_register(Base);
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].mem.base = (uint8_t) TriCore_map_register(
|
||||
Base);
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].mem.disp = Disp;
|
||||
MI->flat_insn->detail->tricore.op_count++;
|
||||
}
|
||||
|
@ -239,23 +258,24 @@ static void printAddrPostIncBO(MCInst *MI, int OpNum, SStream *O) {
|
|||
// Print a 'circbo' operand which is an addressing mode
|
||||
// Circular Base+Offset
|
||||
static void printAddrCircBO(MCInst *MI, unsigned OpNum, SStream *O,
|
||||
MCRegisterInfo *MRI)
|
||||
{
|
||||
MCRegisterInfo *MRI) {
|
||||
unsigned Base = MCOperand_getReg(MCInst_getOperand(MI, OpNum));
|
||||
uint64_t Disp = (uint64_t)MCOperand_getImm(MCInst_getOperand(MI, OpNum + 1));
|
||||
uint64_t Disp = (uint64_t) MCOperand_getImm(MCInst_getOperand(MI, OpNum + 1));
|
||||
|
||||
SStream_concat0(O, "[");
|
||||
SStream_concat(O, "%%%s", getRegisterName(MCRegisterInfo_getSubReg(MRI, Base, TriCore_subreg_even)));
|
||||
if (MI->csh->detail) {
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].type = TRICORE_OP_REG;
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].reg = (uint8_t)TriCore_map_register(MCRegisterInfo_getSubReg(MRI, Base, TriCore_subreg_even));
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].reg = (uint8_t) TriCore_map_register(
|
||||
MCRegisterInfo_getSubReg(MRI, Base, TriCore_subreg_even));
|
||||
MI->flat_insn->detail->tricore.op_count++;
|
||||
}
|
||||
SStream_concat0(O, "/");
|
||||
SStream_concat(O, "%%%s", getRegisterName(MCRegisterInfo_getSubReg(MRI, Base, TriCore_subreg_odd)));
|
||||
if (MI->csh->detail) {
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].type = TRICORE_OP_REG;
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].reg = (uint8_t)TriCore_map_register(MCRegisterInfo_getSubReg(MRI, Base, TriCore_subreg_odd));
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].reg = (uint8_t) TriCore_map_register(
|
||||
MCRegisterInfo_getSubReg(MRI, Base, TriCore_subreg_odd));
|
||||
MI->flat_insn->detail->tricore.op_count++;
|
||||
}
|
||||
SStream_concat0(O, "+c] ");
|
||||
|
@ -267,7 +287,8 @@ static void printAddrCircBO(MCInst *MI, unsigned OpNum, SStream *O,
|
|||
|
||||
if (MI->csh->detail) {
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].type = TRICORE_OP_MEM;
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].mem.base = (uint8_t)TriCore_map_register(Base);
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].mem.base = (uint8_t) TriCore_map_register(
|
||||
Base);
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].mem.disp = Disp;
|
||||
MI->flat_insn->detail->tricore.op_count++;
|
||||
}
|
||||
|
@ -276,8 +297,7 @@ static void printAddrCircBO(MCInst *MI, unsigned OpNum, SStream *O,
|
|||
// Print a 'bitrevbo' operand which is an addressing mode
|
||||
// Bit-Reverse Base+Offset
|
||||
static void printAddrBitRevBO(MCInst *MI, unsigned OpNum, SStream *O,
|
||||
MCRegisterInfo *MRI)
|
||||
{
|
||||
MCRegisterInfo *MRI) {
|
||||
|
||||
unsigned Base = MCOperand_getReg(MCInst_getOperand(MI, OpNum));
|
||||
|
||||
|
@ -285,25 +305,37 @@ static void printAddrBitRevBO(MCInst *MI, unsigned OpNum, SStream *O,
|
|||
SStream_concat(O, "%%%s", getRegisterName(MCRegisterInfo_getSubReg(MRI, Base, TriCore_subreg_even)));
|
||||
if (MI->csh->detail) {
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].type = TRICORE_OP_REG;
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].reg = (uint8_t)TriCore_map_register(MCRegisterInfo_getSubReg(MRI, Base, TriCore_subreg_even));
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].reg = (uint8_t) TriCore_map_register(
|
||||
MCRegisterInfo_getSubReg(MRI, Base, TriCore_subreg_even));
|
||||
MI->flat_insn->detail->tricore.op_count++;
|
||||
}
|
||||
SStream_concat0(O, "/");
|
||||
SStream_concat(O, "%%%s", getRegisterName(MCRegisterInfo_getSubReg(MRI, Base, TriCore_subreg_odd)));
|
||||
if (MI->csh->detail) {
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].type = TRICORE_OP_REG;
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].reg = (uint8_t)TriCore_map_register(MCRegisterInfo_getSubReg(MRI, Base, TriCore_subreg_odd));
|
||||
MI->flat_insn->detail->tricore.operands[MI->flat_insn->detail->tricore.op_count].reg = (uint8_t) TriCore_map_register(
|
||||
MCRegisterInfo_getSubReg(MRI, Base, TriCore_subreg_odd));
|
||||
MI->flat_insn->detail->tricore.op_count++;
|
||||
}
|
||||
SStream_concat0(O, "+r]");
|
||||
}
|
||||
|
||||
/// Returned by getMnemonic() of the AsmPrinters.
|
||||
typedef struct {
|
||||
const char *first; // Menmonic
|
||||
uint64_t second; // Bits
|
||||
} MnemonicBitsInfo;
|
||||
|
||||
void set_mem_access(MCInst *MI, unsigned int access) {
|
||||
// TODO: TriCore
|
||||
}
|
||||
|
||||
#define PRINT_ALIAS_INSTR
|
||||
|
||||
#include "TriCoreGenAsmWriter.inc"
|
||||
|
||||
void TriCore_printInst(MCInst *MI, SStream *O, void *Info)
|
||||
{
|
||||
MCRegisterInfo *MRI = (MCRegisterInfo *)Info;
|
||||
void TriCore_printInst(MCInst *MI, SStream *O, void *Info) {
|
||||
MCRegisterInfo *MRI = (MCRegisterInfo *) Info;
|
||||
|
||||
unsigned Opcode = MCInst_getOpcode(MI), i;
|
||||
|
||||
|
@ -420,7 +452,7 @@ void TriCore_printInst(MCInst *MI, SStream *O, void *Info)
|
|||
// }
|
||||
// }
|
||||
// }
|
||||
printInstruction(MI, O, Info);
|
||||
printInstruction(MI, Info, O);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -5,6 +5,7 @@
|
|||
/* 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.h", // TriCore_INS_ABSDIFS.H
|
||||
"absdifs", // TriCore_INS_ABSDIFS
|
||||
"absdif.b", // TriCore_INS_ABSDIF.B
|
||||
|
@ -28,6 +29,7 @@
|
|||
"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
|
||||
|
@ -67,6 +69,7 @@
|
|||
"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
|
||||
|
@ -75,6 +78,7 @@
|
|||
"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
|
||||
|
@ -102,14 +106,23 @@
|
|||
"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
|
||||
|
@ -181,6 +194,7 @@
|
|||
"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
|
||||
|
@ -220,6 +234,7 @@
|
|||
"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
|
||||
|
@ -258,6 +273,8 @@
|
|||
"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
|
||||
|
@ -309,6 +326,7 @@
|
|||
"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
|
||||
|
@ -318,6 +336,8 @@
|
|||
"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
|
||||
|
@ -327,5 +347,4 @@
|
|||
"xor.lt.u", // TriCore_INS_XOR.LT.U
|
||||
"xor.lt", // TriCore_INS_XOR.LT
|
||||
"xor.ne", // TriCore_INS_XOR.NE
|
||||
"xor.t", // TriCore_INS_XOR.T
|
||||
"xor", // TriCore_INS_XOR
|
||||
|
|
|
@ -0,0 +1,350 @@
|
|||
/* 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_INS_XOR_T,
|
||||
TriCore_INS_ABSDIFS_H,
|
||||
TriCore_INS_ABSDIFS,
|
||||
TriCore_INS_ABSDIF_B,
|
||||
TriCore_INS_ABSDIF_H,
|
||||
TriCore_INS_ABSDIF,
|
||||
TriCore_INS_ABSS_H,
|
||||
TriCore_INS_ABSS,
|
||||
TriCore_INS_ABS_B,
|
||||
TriCore_INS_ABS_H,
|
||||
TriCore_INS_ABS,
|
||||
TriCore_INS_ADDC,
|
||||
TriCore_INS_ADDIH_A,
|
||||
TriCore_INS_ADDIH,
|
||||
TriCore_INS_ADDI,
|
||||
TriCore_INS_ADDSC_AT,
|
||||
TriCore_INS_ADDSC_A,
|
||||
TriCore_INS_ADDS_H,
|
||||
TriCore_INS_ADDS_HU,
|
||||
TriCore_INS_ADDS_U,
|
||||
TriCore_INS_ADDS,
|
||||
TriCore_INS_ADDX,
|
||||
TriCore_INS_ADD_A,
|
||||
TriCore_INS_ADD_B,
|
||||
TriCore_INS_ADD_F,
|
||||
TriCore_INS_ADD_H,
|
||||
TriCore_INS_ADD,
|
||||
TriCore_INS_ANDN_T,
|
||||
TriCore_INS_ANDN,
|
||||
TriCore_INS_AND_ANDN_T,
|
||||
TriCore_INS_AND_AND_T,
|
||||
TriCore_INS_AND_EQ,
|
||||
TriCore_INS_AND_GE_U,
|
||||
TriCore_INS_AND_GE,
|
||||
TriCore_INS_AND_LT_U,
|
||||
TriCore_INS_AND_LT,
|
||||
TriCore_INS_AND_NE,
|
||||
TriCore_INS_AND_NOR_T,
|
||||
TriCore_INS_AND_OR_T,
|
||||
TriCore_INS_AND_T,
|
||||
TriCore_INS_AND,
|
||||
TriCore_INS_BISR,
|
||||
TriCore_INS_BMERGE,
|
||||
TriCore_INS_BSPLIT,
|
||||
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,
|
||||
TriCore_INS_CADD,
|
||||
TriCore_INS_CALLA,
|
||||
TriCore_INS_CALLI,
|
||||
TriCore_INS_CALL,
|
||||
TriCore_INS_CLO_H,
|
||||
TriCore_INS_CLO,
|
||||
TriCore_INS_CLS_H,
|
||||
TriCore_INS_CLS,
|
||||
TriCore_INS_CLZ_H,
|
||||
TriCore_INS_CLZ,
|
||||
TriCore_INS_CMOVN,
|
||||
TriCore_INS_CMOV,
|
||||
TriCore_INS_CMPSWAP_W,
|
||||
TriCore_INS_CMP_F,
|
||||
TriCore_INS_CRC32B_W,
|
||||
TriCore_INS_CRC32L_W,
|
||||
TriCore_INS_CRC32_B,
|
||||
TriCore_INS_CRCN,
|
||||
TriCore_INS_CSUB,
|
||||
TriCore_INS_DEBUG,
|
||||
TriCore_INS_DEXTR,
|
||||
TriCore_INS_DISABLE,
|
||||
TriCore_INS_DIV_F,
|
||||
TriCore_INS_DIV_U,
|
||||
TriCore_INS_DIV,
|
||||
TriCore_INS_DSYNC,
|
||||
TriCore_INS_DVADJ,
|
||||
TriCore_INS_DVINIT_BU,
|
||||
TriCore_INS_DVINIT_B,
|
||||
TriCore_INS_DVINIT_HU,
|
||||
TriCore_INS_DVINIT_H,
|
||||
TriCore_INS_DVINIT_U,
|
||||
TriCore_INS_DVINIT,
|
||||
TriCore_INS_DVSTEP_U,
|
||||
TriCore_INS_DVSTEP,
|
||||
TriCore_INS_ENABLE,
|
||||
TriCore_INS_EQANY_B,
|
||||
TriCore_INS_EQANY_H,
|
||||
TriCore_INS_EQZ_A,
|
||||
TriCore_INS_EQ_A,
|
||||
TriCore_INS_EQ_B,
|
||||
TriCore_INS_EQ_H,
|
||||
TriCore_INS_EQ_W,
|
||||
TriCore_INS_EQ,
|
||||
TriCore_INS_EXTR_U,
|
||||
TriCore_INS_EXTR,
|
||||
TriCore_INS_FCALLA,
|
||||
TriCore_INS_FCALLI,
|
||||
TriCore_INS_FCALL,
|
||||
TriCore_INS_FRET,
|
||||
TriCore_INS_FTOHP,
|
||||
TriCore_INS_FTOIZ,
|
||||
TriCore_INS_FTOI,
|
||||
TriCore_INS_FTOQ31Z,
|
||||
TriCore_INS_FTOQ31,
|
||||
TriCore_INS_FTOUZ,
|
||||
TriCore_INS_FTOU,
|
||||
TriCore_INS_GE_A,
|
||||
TriCore_INS_GE_U,
|
||||
TriCore_INS_GE,
|
||||
TriCore_INS_HPTOF,
|
||||
TriCore_INS_IMASK,
|
||||
TriCore_INS_INSERT,
|
||||
TriCore_INS_INSN_T,
|
||||
TriCore_INS_INS_T,
|
||||
TriCore_INS_ISYNC,
|
||||
TriCore_INS_ITOF,
|
||||
TriCore_INS_IXMAX_U,
|
||||
TriCore_INS_IXMAX,
|
||||
TriCore_INS_IXMIN_U,
|
||||
TriCore_INS_IXMIN,
|
||||
TriCore_INS_JA,
|
||||
TriCore_INS_JEQ_A,
|
||||
TriCore_INS_JEQ,
|
||||
TriCore_INS_JGEZ,
|
||||
TriCore_INS_JGE_U,
|
||||
TriCore_INS_JGE,
|
||||
TriCore_INS_JGTZ,
|
||||
TriCore_INS_JI,
|
||||
TriCore_INS_JLA,
|
||||
TriCore_INS_JLEZ,
|
||||
TriCore_INS_JLI,
|
||||
TriCore_INS_JLTZ,
|
||||
TriCore_INS_JLT_U,
|
||||
TriCore_INS_JLT,
|
||||
TriCore_INS_JL,
|
||||
TriCore_INS_JNED,
|
||||
TriCore_INS_JNEI,
|
||||
TriCore_INS_JNE_A,
|
||||
TriCore_INS_JNE,
|
||||
TriCore_INS_JNZ_A,
|
||||
TriCore_INS_JNZ_T,
|
||||
TriCore_INS_JNZ,
|
||||
TriCore_INS_JZ_A,
|
||||
TriCore_INS_JZ_T,
|
||||
TriCore_INS_JZ,
|
||||
TriCore_INS_J,
|
||||
TriCore_INS_LDLCX,
|
||||
TriCore_INS_LDMST,
|
||||
TriCore_INS_LDUCX,
|
||||
TriCore_INS_LD_A,
|
||||
TriCore_INS_LD_BU,
|
||||
TriCore_INS_LD_B,
|
||||
TriCore_INS_LD_DA,
|
||||
TriCore_INS_LD_D,
|
||||
TriCore_INS_LD_HU,
|
||||
TriCore_INS_LD_H,
|
||||
TriCore_INS_LD_Q,
|
||||
TriCore_INS_LD_W,
|
||||
TriCore_INS_LEA,
|
||||
TriCore_INS_LHA,
|
||||
TriCore_INS_LOOPU,
|
||||
TriCore_INS_LOOP,
|
||||
TriCore_INS_LT_A,
|
||||
TriCore_INS_LT_B,
|
||||
TriCore_INS_LT_BU,
|
||||
TriCore_INS_LT_H,
|
||||
TriCore_INS_LT_HU,
|
||||
TriCore_INS_LT_U,
|
||||
TriCore_INS_LT_W,
|
||||
TriCore_INS_LT_WU,
|
||||
TriCore_INS_LT,
|
||||
TriCore_INS_MADDMS_H,
|
||||
TriCore_INS_MADDM_H,
|
||||
TriCore_INS_MADDRS_H,
|
||||
TriCore_INS_MADDRS_Q,
|
||||
TriCore_INS_MADDR_H,
|
||||
TriCore_INS_MADDR_Q,
|
||||
TriCore_INS_MADDSUMS_H,
|
||||
TriCore_INS_MADDSUM_H,
|
||||
TriCore_INS_MADDSURS_H,
|
||||
TriCore_INS_MADDSUR_H,
|
||||
TriCore_INS_MADDSUS_H,
|
||||
TriCore_INS_MADDSU_H,
|
||||
TriCore_INS_MADDS_H,
|
||||
TriCore_INS_MADDS_Q,
|
||||
TriCore_INS_MADDS_U,
|
||||
TriCore_INS_MADDS,
|
||||
TriCore_INS_MADD_F,
|
||||
TriCore_INS_MADD_H,
|
||||
TriCore_INS_MADD_Q,
|
||||
TriCore_INS_MADD_U,
|
||||
TriCore_INS_MADD,
|
||||
TriCore_INS_MAX_B,
|
||||
TriCore_INS_MAX_BU,
|
||||
TriCore_INS_MAX_H,
|
||||
TriCore_INS_MAX_HU,
|
||||
TriCore_INS_MAX_U,
|
||||
TriCore_INS_MAX,
|
||||
TriCore_INS_MFCR,
|
||||
TriCore_INS_MIN_B,
|
||||
TriCore_INS_MIN_BU,
|
||||
TriCore_INS_MIN_H,
|
||||
TriCore_INS_MIN_HU,
|
||||
TriCore_INS_MIN_U,
|
||||
TriCore_INS_MIN,
|
||||
TriCore_INS_MOVH_A,
|
||||
TriCore_INS_MOV_AA,
|
||||
TriCore_INS_MOV_A,
|
||||
TriCore_INS_MOV_D,
|
||||
TriCore_INS_MOV_H,
|
||||
TriCore_INS_MOV_U,
|
||||
TriCore_INS_MOV,
|
||||
TriCore_INS_MSUBADMS_H,
|
||||
TriCore_INS_MSUBADM_H,
|
||||
TriCore_INS_MSUBADRS_H,
|
||||
TriCore_INS_MSUBADR_H,
|
||||
TriCore_INS_MSUBADS_H,
|
||||
TriCore_INS_MSUBAD_H,
|
||||
TriCore_INS_MSUBMS_H,
|
||||
TriCore_INS_MSUBM_H,
|
||||
TriCore_INS_MSUBRS_H,
|
||||
TriCore_INS_MSUBRS_Q,
|
||||
TriCore_INS_MSUBR_H,
|
||||
TriCore_INS_MSUBR_Q,
|
||||
TriCore_INS_MSUBS_H,
|
||||
TriCore_INS_MSUBS_Q,
|
||||
TriCore_INS_MSUBS,
|
||||
TriCore_INS_MSUB_F,
|
||||
TriCore_INS_MSUB_H,
|
||||
TriCore_INS_MSUB_Q,
|
||||
TriCore_INS_MSUB,
|
||||
TriCore_INS_MULM_H,
|
||||
TriCore_INS_MULR_H,
|
||||
TriCore_INS_MULR_Q,
|
||||
TriCore_INS_MULS_U,
|
||||
TriCore_INS_MULS,
|
||||
TriCore_INS_MUL_H,
|
||||
TriCore_INS_MUL_Q,
|
||||
TriCore_INS_MUL_U,
|
||||
TriCore_INS_MUL,
|
||||
TriCore_INS_NAND_T,
|
||||
TriCore_INS_NAND,
|
||||
TriCore_INS_NEZ_A,
|
||||
TriCore_INS_NE_A,
|
||||
TriCore_INS_NE,
|
||||
TriCore_INS_NOP,
|
||||
TriCore_INS_NOR_T,
|
||||
TriCore_INS_NOR,
|
||||
TriCore_INS_NOT,
|
||||
TriCore_INS_ORN_T,
|
||||
TriCore_INS_ORN,
|
||||
TriCore_INS_OR_ANDN_T,
|
||||
TriCore_INS_OR_AND_T,
|
||||
TriCore_INS_OR_EQ,
|
||||
TriCore_INS_OR_GE_U,
|
||||
TriCore_INS_OR_GE,
|
||||
TriCore_INS_OR_LT_U,
|
||||
TriCore_INS_OR_LT,
|
||||
TriCore_INS_OR_NE,
|
||||
TriCore_INS_OR_NOR_T,
|
||||
TriCore_INS_OR_OR_T,
|
||||
TriCore_INS_OR_T,
|
||||
TriCore_INS_OR,
|
||||
TriCore_INS_PACK,
|
||||
TriCore_INS_PARITY,
|
||||
TriCore_INS_POPCNT_W,
|
||||
TriCore_INS_Q31TOF,
|
||||
TriCore_INS_QSEED_F,
|
||||
TriCore_INS_RESTORE,
|
||||
TriCore_INS_RET,
|
||||
TriCore_INS_RFE,
|
||||
TriCore_INS_RFM,
|
||||
TriCore_INS_RELCK,
|
||||
TriCore_INS_RSUBS_U,
|
||||
TriCore_INS_RSUBS,
|
||||
TriCore_INS_RSUB,
|
||||
TriCore_INS_SAT_BU,
|
||||
TriCore_INS_SAT_B,
|
||||
TriCore_INS_SAT_HU,
|
||||
TriCore_INS_SAT_H,
|
||||
TriCore_INS_SELN,
|
||||
TriCore_INS_SEL,
|
||||
TriCore_INS_SHAS,
|
||||
TriCore_INS_SHA_H,
|
||||
TriCore_INS_SHA,
|
||||
TriCore_INS_SHUFFLE,
|
||||
TriCore_INS_SH_ANDN_T,
|
||||
TriCore_INS_SH_AND_T,
|
||||
TriCore_INS_SH_EQ,
|
||||
TriCore_INS_SH_GE_U,
|
||||
TriCore_INS_SH_GE,
|
||||
TriCore_INS_SH_H,
|
||||
TriCore_INS_SH_LT_U,
|
||||
TriCore_INS_SH_LT,
|
||||
TriCore_INS_SH_NAND_T,
|
||||
TriCore_INS_SH_NOR_T,
|
||||
TriCore_INS_SH_ORN_T,
|
||||
TriCore_INS_SH_OR_T,
|
||||
TriCore_INS_SH_XNOR_T,
|
||||
TriCore_INS_SH_XOR_T,
|
||||
TriCore_INS_SH,
|
||||
TriCore_INS_STLCX,
|
||||
TriCore_INS_STUCX,
|
||||
TriCore_INS_ST_A,
|
||||
TriCore_INS_ST_B,
|
||||
TriCore_INS_ST_DA,
|
||||
TriCore_INS_ST_D,
|
||||
TriCore_INS_ST_H,
|
||||
TriCore_INS_ST_Q,
|
||||
TriCore_INS_ST_T,
|
||||
TriCore_INS_ST_W,
|
||||
TriCore_INS_SUBC,
|
||||
TriCore_INS_SUBS_HU,
|
||||
TriCore_INS_SUBS_H,
|
||||
TriCore_INS_SUBS_U,
|
||||
TriCore_INS_SUBS,
|
||||
TriCore_INS_SUBX,
|
||||
TriCore_INS_SUB_A,
|
||||
TriCore_INS_SUB_B,
|
||||
TriCore_INS_SUB_F,
|
||||
TriCore_INS_SUB_H,
|
||||
TriCore_INS_SUB,
|
||||
TriCore_INS_SVLCX,
|
||||
TriCore_INS_SWAPMSK_W,
|
||||
TriCore_INS_SWAP_W,
|
||||
TriCore_INS_SYSCALL,
|
||||
TriCore_INS_TRAPSV,
|
||||
TriCore_INS_TRAPV,
|
||||
TriCore_INS_UNPACK,
|
||||
TriCore_INS_UPDFL,
|
||||
TriCore_INS_UTOF,
|
||||
TriCore_INS_WAIT,
|
||||
TriCore_INS_XNOR_T,
|
||||
TriCore_INS_XNOR,
|
||||
TriCore_INS_XOR_EQ,
|
||||
TriCore_INS_XOR_GE_U,
|
||||
TriCore_INS_XOR_GE,
|
||||
TriCore_INS_XOR_LT_U,
|
||||
TriCore_INS_XOR_LT,
|
||||
TriCore_INS_XOR_NE,
|
||||
TriCore_INS_XOR,
|
|
@ -122,330 +122,7 @@ typedef enum tricore_reg {
|
|||
typedef enum tricore_insn {
|
||||
TriCore_INS_INVALID = 0,
|
||||
|
||||
TriCore_INS_ABSDIFS_H,
|
||||
TriCore_INS_ABSDIFS,
|
||||
TriCore_INS_ABSDIF_B,
|
||||
TriCore_INS_ABSDIF_H,
|
||||
TriCore_INS_ABSDIF,
|
||||
TriCore_INS_ABSS_H,
|
||||
TriCore_INS_ABSS,
|
||||
TriCore_INS_ABS_B,
|
||||
TriCore_INS_ABS_H,
|
||||
TriCore_INS_ABS,
|
||||
TriCore_INS_ADDC,
|
||||
TriCore_INS_ADDIH_A,
|
||||
TriCore_INS_ADDIH,
|
||||
TriCore_INS_ADDI,
|
||||
TriCore_INS_ADDSC_AT,
|
||||
TriCore_INS_ADDSC_A,
|
||||
TriCore_INS_ADDS_H,
|
||||
TriCore_INS_ADDS_HU,
|
||||
TriCore_INS_ADDS_U,
|
||||
TriCore_INS_ADDS,
|
||||
TriCore_INS_ADDX,
|
||||
TriCore_INS_ADD_A,
|
||||
TriCore_INS_ADD_B,
|
||||
TriCore_INS_ADD_H,
|
||||
TriCore_INS_ADD,
|
||||
TriCore_INS_ANDN_T,
|
||||
TriCore_INS_ANDN,
|
||||
TriCore_INS_AND_ANDN_T,
|
||||
TriCore_INS_AND_AND_T,
|
||||
TriCore_INS_AND_EQ,
|
||||
TriCore_INS_AND_GE_U,
|
||||
TriCore_INS_AND_GE,
|
||||
TriCore_INS_AND_LT_U,
|
||||
TriCore_INS_AND_LT,
|
||||
TriCore_INS_AND_NE,
|
||||
TriCore_INS_AND_NOR_T,
|
||||
TriCore_INS_AND_OR_T,
|
||||
TriCore_INS_AND_T,
|
||||
TriCore_INS_AND,
|
||||
TriCore_INS_BISR,
|
||||
TriCore_INS_BMERGE,
|
||||
TriCore_INS_BSPLIT,
|
||||
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,
|
||||
TriCore_INS_CADD,
|
||||
TriCore_INS_CALLA,
|
||||
TriCore_INS_CALLI,
|
||||
TriCore_INS_CALL,
|
||||
TriCore_INS_CLO_H,
|
||||
TriCore_INS_CLO,
|
||||
TriCore_INS_CLS_H,
|
||||
TriCore_INS_CLS,
|
||||
TriCore_INS_CLZ_H,
|
||||
TriCore_INS_CLZ,
|
||||
TriCore_INS_CMOVN,
|
||||
TriCore_INS_CMOV,
|
||||
TriCore_INS_CMPSWAP_W,
|
||||
TriCore_INS_CRC32B_W,
|
||||
TriCore_INS_CRC32L_W,
|
||||
TriCore_INS_CRC32_B,
|
||||
TriCore_INS_CRCN,
|
||||
TriCore_INS_CSUB,
|
||||
TriCore_INS_DEBUG,
|
||||
TriCore_INS_DEXTR,
|
||||
TriCore_INS_DISABLE,
|
||||
TriCore_INS_DIV_U,
|
||||
TriCore_INS_DIV,
|
||||
TriCore_INS_DSYNC,
|
||||
TriCore_INS_DVADJ,
|
||||
TriCore_INS_DVINIT_BU,
|
||||
TriCore_INS_DVINIT_B,
|
||||
TriCore_INS_DVINIT_HU,
|
||||
TriCore_INS_DVINIT_H,
|
||||
TriCore_INS_DVINIT_U,
|
||||
TriCore_INS_DVINIT,
|
||||
TriCore_INS_DVSTEP_U,
|
||||
TriCore_INS_DVSTEP,
|
||||
TriCore_INS_ENABLE,
|
||||
TriCore_INS_EQANY_B,
|
||||
TriCore_INS_EQANY_H,
|
||||
TriCore_INS_EQZ_A,
|
||||
TriCore_INS_EQ_A,
|
||||
TriCore_INS_EQ_B,
|
||||
TriCore_INS_EQ_H,
|
||||
TriCore_INS_EQ_W,
|
||||
TriCore_INS_EQ,
|
||||
TriCore_INS_EXTR_U,
|
||||
TriCore_INS_EXTR,
|
||||
TriCore_INS_FCALLA,
|
||||
TriCore_INS_FCALLI,
|
||||
TriCore_INS_FCALL,
|
||||
TriCore_INS_FRET,
|
||||
TriCore_INS_GE_A,
|
||||
TriCore_INS_GE_U,
|
||||
TriCore_INS_GE,
|
||||
TriCore_INS_IMASK,
|
||||
TriCore_INS_INSERT,
|
||||
TriCore_INS_INSN_T,
|
||||
TriCore_INS_INS_T,
|
||||
TriCore_INS_ISYNC,
|
||||
TriCore_INS_IXMAX_U,
|
||||
TriCore_INS_IXMAX,
|
||||
TriCore_INS_IXMIN_U,
|
||||
TriCore_INS_IXMIN,
|
||||
TriCore_INS_JA,
|
||||
TriCore_INS_JEQ_A,
|
||||
TriCore_INS_JEQ,
|
||||
TriCore_INS_JGEZ,
|
||||
TriCore_INS_JGE_U,
|
||||
TriCore_INS_JGE,
|
||||
TriCore_INS_JGTZ,
|
||||
TriCore_INS_JI,
|
||||
TriCore_INS_JLA,
|
||||
TriCore_INS_JLEZ,
|
||||
TriCore_INS_JLI,
|
||||
TriCore_INS_JLTZ,
|
||||
TriCore_INS_JLT_U,
|
||||
TriCore_INS_JLT,
|
||||
TriCore_INS_JL,
|
||||
TriCore_INS_JNED,
|
||||
TriCore_INS_JNEI,
|
||||
TriCore_INS_JNE_A,
|
||||
TriCore_INS_JNE,
|
||||
TriCore_INS_JNZ_A,
|
||||
TriCore_INS_JNZ_T,
|
||||
TriCore_INS_JNZ,
|
||||
TriCore_INS_JZ_A,
|
||||
TriCore_INS_JZ_T,
|
||||
TriCore_INS_JZ,
|
||||
TriCore_INS_J,
|
||||
TriCore_INS_LDLCX,
|
||||
TriCore_INS_LDMST,
|
||||
TriCore_INS_LDUCX,
|
||||
TriCore_INS_LD_A,
|
||||
TriCore_INS_LD_BU,
|
||||
TriCore_INS_LD_B,
|
||||
TriCore_INS_LD_DA,
|
||||
TriCore_INS_LD_D,
|
||||
TriCore_INS_LD_HU,
|
||||
TriCore_INS_LD_H,
|
||||
TriCore_INS_LD_Q,
|
||||
TriCore_INS_LD_W,
|
||||
TriCore_INS_LEA,
|
||||
TriCore_INS_LHA,
|
||||
TriCore_INS_LOOPU,
|
||||
TriCore_INS_LOOP,
|
||||
TriCore_INS_LT_A,
|
||||
TriCore_INS_LT_B,
|
||||
TriCore_INS_LT_BU,
|
||||
TriCore_INS_LT_H,
|
||||
TriCore_INS_LT_HU,
|
||||
TriCore_INS_LT_U,
|
||||
TriCore_INS_LT_W,
|
||||
TriCore_INS_LT_WU,
|
||||
TriCore_INS_LT,
|
||||
TriCore_INS_MADDMS_H,
|
||||
TriCore_INS_MADDM_H,
|
||||
TriCore_INS_MADDRS_H,
|
||||
TriCore_INS_MADDRS_Q,
|
||||
TriCore_INS_MADDR_H,
|
||||
TriCore_INS_MADDR_Q,
|
||||
TriCore_INS_MADDSUMS_H,
|
||||
TriCore_INS_MADDSUM_H,
|
||||
TriCore_INS_MADDSURS_H,
|
||||
TriCore_INS_MADDSUR_H,
|
||||
TriCore_INS_MADDSUS_H,
|
||||
TriCore_INS_MADDSU_H,
|
||||
TriCore_INS_MADDS_H,
|
||||
TriCore_INS_MADDS_Q,
|
||||
TriCore_INS_MADDS_U,
|
||||
TriCore_INS_MADDS,
|
||||
TriCore_INS_MADD_H,
|
||||
TriCore_INS_MADD_Q,
|
||||
TriCore_INS_MADD_U,
|
||||
TriCore_INS_MADD,
|
||||
TriCore_INS_MAX_B,
|
||||
TriCore_INS_MAX_BU,
|
||||
TriCore_INS_MAX_H,
|
||||
TriCore_INS_MAX_HU,
|
||||
TriCore_INS_MAX_U,
|
||||
TriCore_INS_MAX,
|
||||
TriCore_INS_MFCR,
|
||||
TriCore_INS_MIN_B,
|
||||
TriCore_INS_MIN_BU,
|
||||
TriCore_INS_MIN_H,
|
||||
TriCore_INS_MIN_HU,
|
||||
TriCore_INS_MIN_U,
|
||||
TriCore_INS_MIN,
|
||||
TriCore_INS_MOVH_A,
|
||||
TriCore_INS_MOV_AA,
|
||||
TriCore_INS_MOV_A,
|
||||
TriCore_INS_MOV_D,
|
||||
TriCore_INS_MOV_H,
|
||||
TriCore_INS_MOV_U,
|
||||
TriCore_INS_MOV,
|
||||
TriCore_INS_MSUBADMS_H,
|
||||
TriCore_INS_MSUBADM_H,
|
||||
TriCore_INS_MSUBADRS_H,
|
||||
TriCore_INS_MSUBADR_H,
|
||||
TriCore_INS_MSUBADS_H,
|
||||
TriCore_INS_MSUBAD_H,
|
||||
TriCore_INS_MSUBMS_H,
|
||||
TriCore_INS_MSUBM_H,
|
||||
TriCore_INS_MSUBRS_H,
|
||||
TriCore_INS_MSUBRS_Q,
|
||||
TriCore_INS_MSUBR_H,
|
||||
TriCore_INS_MSUBR_Q,
|
||||
TriCore_INS_MSUBS_H,
|
||||
TriCore_INS_MSUBS_Q,
|
||||
TriCore_INS_MSUBS,
|
||||
TriCore_INS_MSUB_H,
|
||||
TriCore_INS_MSUB_Q,
|
||||
TriCore_INS_MSUB,
|
||||
TriCore_INS_MULM_H,
|
||||
TriCore_INS_MULR_H,
|
||||
TriCore_INS_MULR_Q,
|
||||
TriCore_INS_MULS_U,
|
||||
TriCore_INS_MULS,
|
||||
TriCore_INS_MUL_H,
|
||||
TriCore_INS_MUL_Q,
|
||||
TriCore_INS_MUL_U,
|
||||
TriCore_INS_MUL,
|
||||
TriCore_INS_NAND_T,
|
||||
TriCore_INS_NAND,
|
||||
TriCore_INS_NEZ_A,
|
||||
TriCore_INS_NE_A,
|
||||
TriCore_INS_NE,
|
||||
TriCore_INS_NOP,
|
||||
TriCore_INS_NOR_T,
|
||||
TriCore_INS_NOR,
|
||||
TriCore_INS_NOT,
|
||||
TriCore_INS_ORN_T,
|
||||
TriCore_INS_ORN,
|
||||
TriCore_INS_OR_ANDN_T,
|
||||
TriCore_INS_OR_AND_T,
|
||||
TriCore_INS_OR_EQ,
|
||||
TriCore_INS_OR_GE_U,
|
||||
TriCore_INS_OR_GE,
|
||||
TriCore_INS_OR_LT_U,
|
||||
TriCore_INS_OR_LT,
|
||||
TriCore_INS_OR_NE,
|
||||
TriCore_INS_OR_NOR_T,
|
||||
TriCore_INS_OR_OR_T,
|
||||
TriCore_INS_OR_T,
|
||||
TriCore_INS_OR,
|
||||
TriCore_INS_PACK,
|
||||
TriCore_INS_PARITY,
|
||||
TriCore_INS_POPCNT_W,
|
||||
TriCore_INS_RESTORE,
|
||||
TriCore_INS_RET,
|
||||
TriCore_INS_RFE,
|
||||
TriCore_INS_RFM,
|
||||
TriCore_INS_RELCK,
|
||||
TriCore_INS_RSUBS_U,
|
||||
TriCore_INS_RSUBS,
|
||||
TriCore_INS_RSUB,
|
||||
TriCore_INS_SAT_BU,
|
||||
TriCore_INS_SAT_B,
|
||||
TriCore_INS_SAT_HU,
|
||||
TriCore_INS_SAT_H,
|
||||
TriCore_INS_SELN,
|
||||
TriCore_INS_SEL,
|
||||
TriCore_INS_SHAS,
|
||||
TriCore_INS_SHA_H,
|
||||
TriCore_INS_SHA,
|
||||
TriCore_INS_SHUFFLE,
|
||||
TriCore_INS_SH_ANDN_T,
|
||||
TriCore_INS_SH_AND_T,
|
||||
TriCore_INS_SH_EQ,
|
||||
TriCore_INS_SH_GE_U,
|
||||
TriCore_INS_SH_GE,
|
||||
TriCore_INS_SH_H,
|
||||
TriCore_INS_SH_LT_U,
|
||||
TriCore_INS_SH_LT,
|
||||
TriCore_INS_SH_NAND_T,
|
||||
TriCore_INS_SH_NOR_T,
|
||||
TriCore_INS_SH_ORN_T,
|
||||
TriCore_INS_SH_OR_T,
|
||||
TriCore_INS_SH_XNOR_T,
|
||||
TriCore_INS_SH_XOR_T,
|
||||
TriCore_INS_SH,
|
||||
TriCore_INS_STLCX,
|
||||
TriCore_INS_STUCX,
|
||||
TriCore_INS_ST_A,
|
||||
TriCore_INS_ST_B,
|
||||
TriCore_INS_ST_DA,
|
||||
TriCore_INS_ST_D,
|
||||
TriCore_INS_ST_H,
|
||||
TriCore_INS_ST_Q,
|
||||
TriCore_INS_ST_T,
|
||||
TriCore_INS_ST_W,
|
||||
TriCore_INS_SUBC,
|
||||
TriCore_INS_SUBS_HU,
|
||||
TriCore_INS_SUBS_H,
|
||||
TriCore_INS_SUBS_U,
|
||||
TriCore_INS_SUBS,
|
||||
TriCore_INS_SUBX,
|
||||
TriCore_INS_SUB_A,
|
||||
TriCore_INS_SUB_B,
|
||||
TriCore_INS_SUB_H,
|
||||
TriCore_INS_SUB,
|
||||
TriCore_INS_SVLCX,
|
||||
TriCore_INS_SWAPMSK_W,
|
||||
TriCore_INS_SWAP_W,
|
||||
TriCore_INS_SYSCALL,
|
||||
TriCore_INS_TRAPSV,
|
||||
TriCore_INS_TRAPV,
|
||||
TriCore_INS_UNPACK,
|
||||
TriCore_INS_WAIT,
|
||||
TriCore_INS_XNOR_T,
|
||||
TriCore_INS_XNOR,
|
||||
TriCore_INS_XOR_EQ,
|
||||
TriCore_INS_XOR_GE_U,
|
||||
TriCore_INS_XOR_GE,
|
||||
TriCore_INS_XOR_LT_U,
|
||||
TriCore_INS_XOR_LT,
|
||||
TriCore_INS_XOR_NE,
|
||||
TriCore_INS_XOR_T,
|
||||
TriCore_INS_XOR,
|
||||
#include "./inc/TriCoreGenCSInsnEnum.inc"
|
||||
|
||||
TriCore_INS_ENDING, // <-- mark the end of the list of instructions
|
||||
|
||||
|
|
Loading…
Reference in New Issue