Hermes/Dyforge is a program written in c++ allows you to inject a dll that can analyze all processes in a program, can be used for mod and reverse engeneering
| 1 | #ifndef CAPSTONE_TRICORE_H |
| 2 | #define CAPSTONE_TRICORE_H |
| 3 | |
| 4 | /* Capstone Disassembly Engine */ |
| 5 | /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2014 */ |
| 6 | |
| 7 | #ifdef __cplusplus |
| 8 | extern "C" { |
| 9 | #endif |
| 10 | |
| 11 | #if !defined(_MSC_VER) || !defined(_KERNEL_MODE) |
| 12 | #include <stdint.h> |
| 13 | #endif |
| 14 | |
| 15 | #include "cs_operand.h" |
| 16 | #include "platform.h" |
| 17 | |
| 18 | #ifdef _MSC_VER |
| 19 | #pragma warning(disable : 4201) |
| 20 | #endif |
| 21 | |
| 22 | /// Operand type for instruction's operands |
| 23 | typedef enum tricore_op_type { |
| 24 | TRICORE_OP_INVALID = CS_OP_INVALID, ///< CS_OP_INVALID (Uninitialized). |
| 25 | TRICORE_OP_REG = CS_OP_REG, ///< CS_OP_REG (Register operand). |
| 26 | TRICORE_OP_IMM = CS_OP_IMM, ///< CS_OP_IMM (Immediate operand). |
| 27 | TRICORE_OP_MEM = CS_OP_MEM, ///< CS_OP_MEM (Memory operand). |
| 28 | } tricore_op_type; |
| 29 | |
| 30 | /// Instruction's operand referring to memory |
| 31 | /// This is associated with TRICORE_OP_MEM operand type above |
| 32 | typedef struct tricore_op_mem { |
| 33 | uint8_t base; ///< base register |
| 34 | int64_t disp; ///< displacement/offset value |
| 35 | } tricore_op_mem; |
| 36 | |
| 37 | /// Instruction operand |
| 38 | typedef struct cs_tricore_op { |
| 39 | tricore_op_type type; ///< operand type |
| 40 | union { |
| 41 | unsigned int reg; ///< register value for REG operand |
| 42 | int64_t imm; ///< immediate value for IMM operand |
| 43 | tricore_op_mem mem; ///< base/disp value for MEM operand |
| 44 | }; |
| 45 | /// This field is combined of cs_ac_type. |
| 46 | /// NOTE: this field is irrelevant if engine is compiled in DIET mode. |
| 47 | uint8_t access; ///< How is this operand accessed? (READ, WRITE or READ|WRITE) |
| 48 | } cs_tricore_op; |
| 49 | |
| 50 | #define NUM_TRICORE_OPS 8 |
| 51 | |
| 52 | /// Instruction structure |
| 53 | typedef struct cs_tricore { |
| 54 | uint8_t op_count; ///< number of operands of this instruction. |
| 55 | cs_tricore_op |
| 56 | operands[NUM_TRICORE_OPS]; ///< operands for this instruction. |
| 57 | /// TODO: Mark the modified flags register in td files and regenerate inc files |
| 58 | bool update_flags; ///< whether the flags register is updated. |
| 59 | } cs_tricore; |
| 60 | |
| 61 | /// TriCore registers |
| 62 | typedef enum tricore_reg { |
| 63 | // generated content <TriCoreGenCSRegEnum.inc> begin |
| 64 | // clang-format off |
| 65 | |
| 66 | TRICORE_REG_INVALID = 0, |
| 67 | TRICORE_REG_FCX = 1, |
| 68 | TRICORE_REG_PC = 2, |
| 69 | TRICORE_REG_PCXI = 3, |
| 70 | TRICORE_REG_PSW = 4, |
| 71 | TRICORE_REG_A0 = 5, |
| 72 | TRICORE_REG_A1 = 6, |
| 73 | TRICORE_REG_A2 = 7, |
| 74 | TRICORE_REG_A3 = 8, |
| 75 | TRICORE_REG_A4 = 9, |
| 76 | TRICORE_REG_A5 = 10, |
| 77 | TRICORE_REG_A6 = 11, |
| 78 | TRICORE_REG_A7 = 12, |
| 79 | TRICORE_REG_A8 = 13, |
| 80 | TRICORE_REG_A9 = 14, |
| 81 | TRICORE_REG_A10 = 15, |
| 82 | TRICORE_REG_A11 = 16, |
| 83 | TRICORE_REG_A12 = 17, |
| 84 | TRICORE_REG_A13 = 18, |
| 85 | TRICORE_REG_A14 = 19, |
| 86 | TRICORE_REG_A15 = 20, |
| 87 | TRICORE_REG_D0 = 21, |
| 88 | TRICORE_REG_D1 = 22, |
| 89 | TRICORE_REG_D2 = 23, |
| 90 | TRICORE_REG_D3 = 24, |
| 91 | TRICORE_REG_D4 = 25, |
| 92 | TRICORE_REG_D5 = 26, |
| 93 | TRICORE_REG_D6 = 27, |
| 94 | TRICORE_REG_D7 = 28, |
| 95 | TRICORE_REG_D8 = 29, |
| 96 | TRICORE_REG_D9 = 30, |
| 97 | TRICORE_REG_D10 = 31, |
| 98 | TRICORE_REG_D11 = 32, |
| 99 | TRICORE_REG_D12 = 33, |
| 100 | TRICORE_REG_D13 = 34, |
| 101 | TRICORE_REG_D14 = 35, |
| 102 | TRICORE_REG_D15 = 36, |
| 103 | TRICORE_REG_E0 = 37, |
| 104 | TRICORE_REG_E2 = 38, |
| 105 | TRICORE_REG_E4 = 39, |
| 106 | TRICORE_REG_E6 = 40, |
| 107 | TRICORE_REG_E8 = 41, |
| 108 | TRICORE_REG_E10 = 42, |
| 109 | TRICORE_REG_E12 = 43, |
| 110 | TRICORE_REG_E14 = 44, |
| 111 | TRICORE_REG_P0 = 45, |
| 112 | TRICORE_REG_P2 = 46, |
| 113 | TRICORE_REG_P4 = 47, |
| 114 | TRICORE_REG_P6 = 48, |
| 115 | TRICORE_REG_P8 = 49, |
| 116 | TRICORE_REG_P10 = 50, |
| 117 | TRICORE_REG_P12 = 51, |
| 118 | TRICORE_REG_P14 = 52, |
| 119 | TRICORE_REG_A0_A1 = 53, |
| 120 | TRICORE_REG_A2_A3 = 54, |
| 121 | TRICORE_REG_A4_A5 = 55, |
| 122 | TRICORE_REG_A6_A7 = 56, |
| 123 | TRICORE_REG_A8_A9 = 57, |
| 124 | TRICORE_REG_A10_A11 = 58, |
| 125 | TRICORE_REG_A12_A13 = 59, |
| 126 | TRICORE_REG_A14_A15 = 60, |
| 127 | TRICORE_REG_ENDING, // 61 |
| 128 | |
| 129 | // clang-format on |
| 130 | // generated content <TriCoreGenCSRegEnum.inc> end |
| 131 | } tricore_reg; |
| 132 | |
| 133 | /// TriCore instruction |
| 134 | typedef enum tricore_insn { |
| 135 | // generated content <TriCoreGenCSInsnEnum.inc> begin |
| 136 | // clang-format off |
| 137 | |
| 138 | TRICORE_INS_INVALID, |
| 139 | TRICORE_INS_ABSDIFS_B, |
| 140 | TRICORE_INS_ABSDIFS_H, |
| 141 | TRICORE_INS_ABSDIFS, |
| 142 | TRICORE_INS_ABSDIF_B, |
| 143 | TRICORE_INS_ABSDIF_H, |
| 144 | TRICORE_INS_ABSDIF, |
| 145 | TRICORE_INS_ABSS_B, |
| 146 | TRICORE_INS_ABSS_H, |
| 147 | TRICORE_INS_ABSS, |
| 148 | TRICORE_INS_ABS_B, |
| 149 | TRICORE_INS_ABS_DF, |
| 150 | TRICORE_INS_ABS_F, |
| 151 | TRICORE_INS_ABS_H, |
| 152 | TRICORE_INS_ABS, |
| 153 | TRICORE_INS_ADDC, |
| 154 | TRICORE_INS_ADDIH_A, |
| 155 | TRICORE_INS_ADDIH, |
| 156 | TRICORE_INS_ADDI, |
| 157 | TRICORE_INS_ADDSC_AT, |
| 158 | TRICORE_INS_ADDSC_A, |
| 159 | TRICORE_INS_ADDS_BU, |
| 160 | TRICORE_INS_ADDS_B, |
| 161 | TRICORE_INS_ADDS_H, |
| 162 | TRICORE_INS_ADDS_HU, |
| 163 | TRICORE_INS_ADDS_U, |
| 164 | TRICORE_INS_ADDS, |
| 165 | TRICORE_INS_ADDX, |
| 166 | TRICORE_INS_ADD_A, |
| 167 | TRICORE_INS_ADD_B, |
| 168 | TRICORE_INS_ADD_DF, |
| 169 | TRICORE_INS_ADD_F, |
| 170 | TRICORE_INS_ADD_H, |
| 171 | TRICORE_INS_ADD, |
| 172 | TRICORE_INS_ANDN_T, |
| 173 | TRICORE_INS_ANDN, |
| 174 | TRICORE_INS_AND_ANDN_T, |
| 175 | TRICORE_INS_AND_AND_T, |
| 176 | TRICORE_INS_AND_EQ, |
| 177 | TRICORE_INS_AND_GE_U, |
| 178 | TRICORE_INS_AND_GE, |
| 179 | TRICORE_INS_AND_LT_U, |
| 180 | TRICORE_INS_AND_LT, |
| 181 | TRICORE_INS_AND_NE, |
| 182 | TRICORE_INS_AND_NOR_T, |
| 183 | TRICORE_INS_AND_OR_T, |
| 184 | TRICORE_INS_AND_T, |
| 185 | TRICORE_INS_AND, |
| 186 | TRICORE_INS_BISR, |
| 187 | TRICORE_INS_BMERGE, |
| 188 | TRICORE_INS_BSPLIT, |
| 189 | TRICORE_INS_CACHEA_I, |
| 190 | TRICORE_INS_CACHEA_WI, |
| 191 | TRICORE_INS_CACHEA_W, |
| 192 | TRICORE_INS_CACHEI_I, |
| 193 | TRICORE_INS_CACHEI_WI, |
| 194 | TRICORE_INS_CACHEI_W, |
| 195 | TRICORE_INS_CADDN_A, |
| 196 | TRICORE_INS_CADDN, |
| 197 | TRICORE_INS_CADD_A, |
| 198 | TRICORE_INS_CADD, |
| 199 | TRICORE_INS_CALLA, |
| 200 | TRICORE_INS_CALLI, |
| 201 | TRICORE_INS_CALL, |
| 202 | TRICORE_INS_CLO_B, |
| 203 | TRICORE_INS_CLO_H, |
| 204 | TRICORE_INS_CLO, |
| 205 | TRICORE_INS_CLS_B, |
| 206 | TRICORE_INS_CLS_H, |
| 207 | TRICORE_INS_CLS, |
| 208 | TRICORE_INS_CLZ_B, |
| 209 | TRICORE_INS_CLZ_H, |
| 210 | TRICORE_INS_CLZ, |
| 211 | TRICORE_INS_CMOVN, |
| 212 | TRICORE_INS_CMOV, |
| 213 | TRICORE_INS_CMPSWAP_W, |
| 214 | TRICORE_INS_CMP_DF, |
| 215 | TRICORE_INS_CMP_F, |
| 216 | TRICORE_INS_CRC32B_W, |
| 217 | TRICORE_INS_CRC32L_W, |
| 218 | TRICORE_INS_CRC32_B, |
| 219 | TRICORE_INS_CRCN, |
| 220 | TRICORE_INS_CSUBN_A, |
| 221 | TRICORE_INS_CSUBN, |
| 222 | TRICORE_INS_CSUB_A, |
| 223 | TRICORE_INS_CSUB, |
| 224 | TRICORE_INS_DEBUG, |
| 225 | TRICORE_INS_DEXTR, |
| 226 | TRICORE_INS_DFTOF, |
| 227 | TRICORE_INS_DFTOIN, |
| 228 | TRICORE_INS_DFTOIZ, |
| 229 | TRICORE_INS_DFTOI, |
| 230 | TRICORE_INS_DFTOLZ, |
| 231 | TRICORE_INS_DFTOL, |
| 232 | TRICORE_INS_DFTOULZ, |
| 233 | TRICORE_INS_DFTOUL, |
| 234 | TRICORE_INS_DFTOUZ, |
| 235 | TRICORE_INS_DFTOU, |
| 236 | TRICORE_INS_DIFSC_A, |
| 237 | TRICORE_INS_DISABLE, |
| 238 | TRICORE_INS_DIV64_U, |
| 239 | TRICORE_INS_DIV64, |
| 240 | TRICORE_INS_DIV_DF, |
| 241 | TRICORE_INS_DIV_F, |
| 242 | TRICORE_INS_DIV_U, |
| 243 | TRICORE_INS_DIV, |
| 244 | TRICORE_INS_DSYNC, |
| 245 | TRICORE_INS_DVADJ, |
| 246 | TRICORE_INS_DVINIT_BU, |
| 247 | TRICORE_INS_DVINIT_B, |
| 248 | TRICORE_INS_DVINIT_HU, |
| 249 | TRICORE_INS_DVINIT_H, |
| 250 | TRICORE_INS_DVINIT_U, |
| 251 | TRICORE_INS_DVINIT, |
| 252 | TRICORE_INS_DVSTEP_U, |
| 253 | TRICORE_INS_DVSTEP, |
| 254 | TRICORE_INS_ENABLE, |
| 255 | TRICORE_INS_EQANY_B, |
| 256 | TRICORE_INS_EQANY_H, |
| 257 | TRICORE_INS_EQZ_A, |
| 258 | TRICORE_INS_EQ_A, |
| 259 | TRICORE_INS_EQ_B, |
| 260 | TRICORE_INS_EQ_H, |
| 261 | TRICORE_INS_EQ_W, |
| 262 | TRICORE_INS_EQ, |
| 263 | TRICORE_INS_EXTR_U, |
| 264 | TRICORE_INS_EXTR, |
| 265 | TRICORE_INS_FCALLA, |
| 266 | TRICORE_INS_FCALLI, |
| 267 | TRICORE_INS_FCALL, |
| 268 | TRICORE_INS_FRET, |
| 269 | TRICORE_INS_FTODF, |
| 270 | TRICORE_INS_FTOHP, |
| 271 | TRICORE_INS_FTOIN, |
| 272 | TRICORE_INS_FTOIZ, |
| 273 | TRICORE_INS_FTOI, |
| 274 | TRICORE_INS_FTOQ31Z, |
| 275 | TRICORE_INS_FTOQ31, |
| 276 | TRICORE_INS_FTOUZ, |
| 277 | TRICORE_INS_FTOU, |
| 278 | TRICORE_INS_GE_A, |
| 279 | TRICORE_INS_GE_U, |
| 280 | TRICORE_INS_GE, |
| 281 | TRICORE_INS_HPTOF, |
| 282 | TRICORE_INS_IMASK, |
| 283 | TRICORE_INS_INSERT, |
| 284 | TRICORE_INS_INSN_T, |
| 285 | TRICORE_INS_INS_T, |
| 286 | TRICORE_INS_ISYNC, |
| 287 | TRICORE_INS_ITODF, |
| 288 | TRICORE_INS_ITOF, |
| 289 | TRICORE_INS_IXMAX_U, |
| 290 | TRICORE_INS_IXMAX, |
| 291 | TRICORE_INS_IXMIN_U, |
| 292 | TRICORE_INS_IXMIN, |
| 293 | TRICORE_INS_JA, |
| 294 | TRICORE_INS_JEQ_A, |
| 295 | TRICORE_INS_JEQ, |
| 296 | TRICORE_INS_JGEZ, |
| 297 | TRICORE_INS_JGE_U, |
| 298 | TRICORE_INS_JGE, |
| 299 | TRICORE_INS_JGTZ, |
| 300 | TRICORE_INS_JI, |
| 301 | TRICORE_INS_JLA, |
| 302 | TRICORE_INS_JLEZ, |
| 303 | TRICORE_INS_JLI, |
| 304 | TRICORE_INS_JLTZ, |
| 305 | TRICORE_INS_JLT_U, |
| 306 | TRICORE_INS_JLT, |
| 307 | TRICORE_INS_JL, |
| 308 | TRICORE_INS_JNED, |
| 309 | TRICORE_INS_JNEI, |
| 310 | TRICORE_INS_JNE_A, |
| 311 | TRICORE_INS_JNE, |
| 312 | TRICORE_INS_JNZ_A, |
| 313 | TRICORE_INS_JNZ_T, |
| 314 | TRICORE_INS_JNZ, |
| 315 | TRICORE_INS_JZ_A, |
| 316 | TRICORE_INS_JZ_T, |
| 317 | TRICORE_INS_JZ, |
| 318 | TRICORE_INS_J, |
| 319 | TRICORE_INS_LDLCX, |
| 320 | TRICORE_INS_LDMST, |
| 321 | TRICORE_INS_LDUCX, |
| 322 | TRICORE_INS_LD_A, |
| 323 | TRICORE_INS_LD_BU, |
| 324 | TRICORE_INS_LD_B, |
| 325 | TRICORE_INS_LD_DA, |
| 326 | TRICORE_INS_LD_D, |
| 327 | TRICORE_INS_LD_HU, |
| 328 | TRICORE_INS_LD_H, |
| 329 | TRICORE_INS_LD_Q, |
| 330 | TRICORE_INS_LD_W, |
| 331 | TRICORE_INS_LEA, |
| 332 | TRICORE_INS_LHA, |
| 333 | TRICORE_INS_LOOPU, |
| 334 | TRICORE_INS_LOOP, |
| 335 | TRICORE_INS_LTODF, |
| 336 | TRICORE_INS_LT_A, |
| 337 | TRICORE_INS_LT_B, |
| 338 | TRICORE_INS_LT_BU, |
| 339 | TRICORE_INS_LT_H, |
| 340 | TRICORE_INS_LT_HU, |
| 341 | TRICORE_INS_LT_U, |
| 342 | TRICORE_INS_LT_W, |
| 343 | TRICORE_INS_LT_WU, |
| 344 | TRICORE_INS_LT, |
| 345 | TRICORE_INS_MADDMS_H, |
| 346 | TRICORE_INS_MADDMS_U, |
| 347 | TRICORE_INS_MADDMS, |
| 348 | TRICORE_INS_MADDM_H, |
| 349 | TRICORE_INS_MADDM_Q, |
| 350 | TRICORE_INS_MADDM_U, |
| 351 | TRICORE_INS_MADDM, |
| 352 | TRICORE_INS_MADDRS_H, |
| 353 | TRICORE_INS_MADDRS_Q, |
| 354 | TRICORE_INS_MADDR_H, |
| 355 | TRICORE_INS_MADDR_Q, |
| 356 | TRICORE_INS_MADDSUMS_H, |
| 357 | TRICORE_INS_MADDSUM_H, |
| 358 | TRICORE_INS_MADDSURS_H, |
| 359 | TRICORE_INS_MADDSUR_H, |
| 360 | TRICORE_INS_MADDSUS_H, |
| 361 | TRICORE_INS_MADDSU_H, |
| 362 | TRICORE_INS_MADDS_H, |
| 363 | TRICORE_INS_MADDS_Q, |
| 364 | TRICORE_INS_MADDS_U, |
| 365 | TRICORE_INS_MADDS, |
| 366 | TRICORE_INS_MADD_DF, |
| 367 | TRICORE_INS_MADD_F, |
| 368 | TRICORE_INS_MADD_H, |
| 369 | TRICORE_INS_MADD_Q, |
| 370 | TRICORE_INS_MADD_U, |
| 371 | TRICORE_INS_MADD, |
| 372 | TRICORE_INS_MAX_B, |
| 373 | TRICORE_INS_MAX_BU, |
| 374 | TRICORE_INS_MAX_DF, |
| 375 | TRICORE_INS_MAX_F, |
| 376 | TRICORE_INS_MAX_H, |
| 377 | TRICORE_INS_MAX_HU, |
| 378 | TRICORE_INS_MAX_U, |
| 379 | TRICORE_INS_MAX, |
| 380 | TRICORE_INS_MFCR, |
| 381 | TRICORE_INS_MIN_B, |
| 382 | TRICORE_INS_MIN_BU, |
| 383 | TRICORE_INS_MIN_DF, |
| 384 | TRICORE_INS_MIN_F, |
| 385 | TRICORE_INS_MIN_H, |
| 386 | TRICORE_INS_MIN_HU, |
| 387 | TRICORE_INS_MIN_U, |
| 388 | TRICORE_INS_MIN, |
| 389 | TRICORE_INS_MOVH_A, |
| 390 | TRICORE_INS_MOVH, |
| 391 | TRICORE_INS_MOVZ_A, |
| 392 | TRICORE_INS_MOV_AA, |
| 393 | TRICORE_INS_MOV_A, |
| 394 | TRICORE_INS_MOV_D, |
| 395 | TRICORE_INS_MOV_U, |
| 396 | TRICORE_INS_MOV, |
| 397 | TRICORE_INS_MSUBADMS_H, |
| 398 | TRICORE_INS_MSUBADM_H, |
| 399 | TRICORE_INS_MSUBADRS_H, |
| 400 | TRICORE_INS_MSUBADR_H, |
| 401 | TRICORE_INS_MSUBADS_H, |
| 402 | TRICORE_INS_MSUBAD_H, |
| 403 | TRICORE_INS_MSUBMS_H, |
| 404 | TRICORE_INS_MSUBMS_U, |
| 405 | TRICORE_INS_MSUBMS, |
| 406 | TRICORE_INS_MSUBM_H, |
| 407 | TRICORE_INS_MSUBM_Q, |
| 408 | TRICORE_INS_MSUBM_U, |
| 409 | TRICORE_INS_MSUBM, |
| 410 | TRICORE_INS_MSUBRS_H, |
| 411 | TRICORE_INS_MSUBRS_Q, |
| 412 | TRICORE_INS_MSUBR_H, |
| 413 | TRICORE_INS_MSUBR_Q, |
| 414 | TRICORE_INS_MSUBS_H, |
| 415 | TRICORE_INS_MSUBS_Q, |
| 416 | TRICORE_INS_MSUBS_U, |
| 417 | TRICORE_INS_MSUBS, |
| 418 | TRICORE_INS_MSUB_DF, |
| 419 | TRICORE_INS_MSUB_F, |
| 420 | TRICORE_INS_MSUB_H, |
| 421 | TRICORE_INS_MSUB_Q, |
| 422 | TRICORE_INS_MSUB_U, |
| 423 | TRICORE_INS_MSUB, |
| 424 | TRICORE_INS_MTCR, |
| 425 | TRICORE_INS_MULMS_H, |
| 426 | TRICORE_INS_MULM_H, |
| 427 | TRICORE_INS_MULM_U, |
| 428 | TRICORE_INS_MULM, |
| 429 | TRICORE_INS_MULR_H, |
| 430 | TRICORE_INS_MULR_Q, |
| 431 | TRICORE_INS_MULS_U, |
| 432 | TRICORE_INS_MULS, |
| 433 | TRICORE_INS_MUL_DF, |
| 434 | TRICORE_INS_MUL_F, |
| 435 | TRICORE_INS_MUL_H, |
| 436 | TRICORE_INS_MUL_Q, |
| 437 | TRICORE_INS_MUL_U, |
| 438 | TRICORE_INS_MUL, |
| 439 | TRICORE_INS_NAND_T, |
| 440 | TRICORE_INS_NAND, |
| 441 | TRICORE_INS_NEG_DF, |
| 442 | TRICORE_INS_NEG_F, |
| 443 | TRICORE_INS_NEZ_A, |
| 444 | TRICORE_INS_NE_A, |
| 445 | TRICORE_INS_NE, |
| 446 | TRICORE_INS_NOP, |
| 447 | TRICORE_INS_NOR_T, |
| 448 | TRICORE_INS_NOR, |
| 449 | TRICORE_INS_NOT, |
| 450 | TRICORE_INS_ORN_T, |
| 451 | TRICORE_INS_ORN, |
| 452 | TRICORE_INS_OR_ANDN_T, |
| 453 | TRICORE_INS_OR_AND_T, |
| 454 | TRICORE_INS_OR_EQ, |
| 455 | TRICORE_INS_OR_GE_U, |
| 456 | TRICORE_INS_OR_GE, |
| 457 | TRICORE_INS_OR_LT_U, |
| 458 | TRICORE_INS_OR_LT, |
| 459 | TRICORE_INS_OR_NE, |
| 460 | TRICORE_INS_OR_NOR_T, |
| 461 | TRICORE_INS_OR_OR_T, |
| 462 | TRICORE_INS_OR_T, |
| 463 | TRICORE_INS_OR, |
| 464 | TRICORE_INS_PACK, |
| 465 | TRICORE_INS_PARITY, |
| 466 | TRICORE_INS_POPCNT_W, |
| 467 | TRICORE_INS_Q31TOF, |
| 468 | TRICORE_INS_QSEED_DF, |
| 469 | TRICORE_INS_QSEED_F, |
| 470 | TRICORE_INS_REM64_U, |
| 471 | TRICORE_INS_REM64, |
| 472 | TRICORE_INS_RESTORE, |
| 473 | TRICORE_INS_RET, |
| 474 | TRICORE_INS_RFE, |
| 475 | TRICORE_INS_RFM, |
| 476 | TRICORE_INS_RSLCX, |
| 477 | TRICORE_INS_RSTV, |
| 478 | TRICORE_INS_RSUBS_U, |
| 479 | TRICORE_INS_RSUBS, |
| 480 | TRICORE_INS_RSUB, |
| 481 | TRICORE_INS_SAT_BU, |
| 482 | TRICORE_INS_SAT_B, |
| 483 | TRICORE_INS_SAT_HU, |
| 484 | TRICORE_INS_SAT_H, |
| 485 | TRICORE_INS_SELN_A, |
| 486 | TRICORE_INS_SELN, |
| 487 | TRICORE_INS_SEL_A, |
| 488 | TRICORE_INS_SEL, |
| 489 | TRICORE_INS_SHAS, |
| 490 | TRICORE_INS_SHA_B, |
| 491 | TRICORE_INS_SHA_H, |
| 492 | TRICORE_INS_SHA, |
| 493 | TRICORE_INS_SHUFFLE, |
| 494 | TRICORE_INS_SH_ANDN_T, |
| 495 | TRICORE_INS_SH_AND_T, |
| 496 | TRICORE_INS_SH_B, |
| 497 | TRICORE_INS_SH_EQ, |
| 498 | TRICORE_INS_SH_GE_U, |
| 499 | TRICORE_INS_SH_GE, |
| 500 | TRICORE_INS_SH_H, |
| 501 | TRICORE_INS_SH_LT_U, |
| 502 | TRICORE_INS_SH_LT, |
| 503 | TRICORE_INS_SH_NAND_T, |
| 504 | TRICORE_INS_SH_NE, |
| 505 | TRICORE_INS_SH_NOR_T, |
| 506 | TRICORE_INS_SH_ORN_T, |
| 507 | TRICORE_INS_SH_OR_T, |
| 508 | TRICORE_INS_SH_XNOR_T, |
| 509 | TRICORE_INS_SH_XOR_T, |
| 510 | TRICORE_INS_SH, |
| 511 | TRICORE_INS_STLCX, |
| 512 | TRICORE_INS_STUCX, |
| 513 | TRICORE_INS_ST_A, |
| 514 | TRICORE_INS_ST_B, |
| 515 | TRICORE_INS_ST_DA, |
| 516 | TRICORE_INS_ST_D, |
| 517 | TRICORE_INS_ST_H, |
| 518 | TRICORE_INS_ST_Q, |
| 519 | TRICORE_INS_ST_T, |
| 520 | TRICORE_INS_ST_W, |
| 521 | TRICORE_INS_SUBC, |
| 522 | TRICORE_INS_SUBSC_A, |
| 523 | TRICORE_INS_SUBS_BU, |
| 524 | TRICORE_INS_SUBS_B, |
| 525 | TRICORE_INS_SUBS_HU, |
| 526 | TRICORE_INS_SUBS_H, |
| 527 | TRICORE_INS_SUBS_U, |
| 528 | TRICORE_INS_SUBS, |
| 529 | TRICORE_INS_SUBX, |
| 530 | TRICORE_INS_SUB_A, |
| 531 | TRICORE_INS_SUB_B, |
| 532 | TRICORE_INS_SUB_DF, |
| 533 | TRICORE_INS_SUB_F, |
| 534 | TRICORE_INS_SUB_H, |
| 535 | TRICORE_INS_SUB, |
| 536 | TRICORE_INS_SVLCX, |
| 537 | TRICORE_INS_SWAPMSK_W, |
| 538 | TRICORE_INS_SWAP_A, |
| 539 | TRICORE_INS_SWAP_W, |
| 540 | TRICORE_INS_SYSCALL, |
| 541 | TRICORE_INS_TLBDEMAP, |
| 542 | TRICORE_INS_TLBFLUSH_A, |
| 543 | TRICORE_INS_TLBFLUSH_B, |
| 544 | TRICORE_INS_TLBMAP, |
| 545 | TRICORE_INS_TLBPROBE_A, |
| 546 | TRICORE_INS_TLBPROBE_I, |
| 547 | TRICORE_INS_TRAPSV, |
| 548 | TRICORE_INS_TRAPV, |
| 549 | TRICORE_INS_ULTODF, |
| 550 | TRICORE_INS_UNPACK, |
| 551 | TRICORE_INS_UPDFL, |
| 552 | TRICORE_INS_UTODF, |
| 553 | TRICORE_INS_UTOF, |
| 554 | TRICORE_INS_WAIT, |
| 555 | TRICORE_INS_XNOR_T, |
| 556 | TRICORE_INS_XNOR, |
| 557 | TRICORE_INS_XOR_EQ, |
| 558 | TRICORE_INS_XOR_GE_U, |
| 559 | TRICORE_INS_XOR_GE, |
| 560 | TRICORE_INS_XOR_LT_U, |
| 561 | TRICORE_INS_XOR_LT, |
| 562 | TRICORE_INS_XOR_NE, |
| 563 | TRICORE_INS_XOR_T, |
| 564 | TRICORE_INS_XOR, |
| 565 | |
| 566 | // clang-format on |
| 567 | // generated content <TriCoreGenCSInsnEnum.inc> end |
| 568 | TRICORE_INS_ENDING, // <-- mark the end of the list of instructions |
| 569 | } tricore_insn; |
| 570 | |
| 571 | /// Group of TriCore instructions |
| 572 | typedef enum tricore_insn_group { |
| 573 | TRICORE_GRP_INVALID, ///< = CS_GRP_INVALID |
| 574 | /// Generic groups |
| 575 | TRICORE_GRP_CALL, ///< = CS_GRP_CALL |
| 576 | TRICORE_GRP_JUMP, ///< = CS_GRP_JUMP |
| 577 | TRICORE_GRP_ENDING, ///< mark the end of the list of groups |
| 578 | } tricore_insn_group; |
| 579 | |
| 580 | typedef enum tricore_feature_t { |
| 581 | TRICORE_FEATURE_INVALID = 0, |
| 582 | // generated content <TriCoreGenCSFeatureEnum.inc> begin |
| 583 | // clang-format off |
| 584 | |
| 585 | TRICORE_FEATURE_HASV110 = 128, |
| 586 | TRICORE_FEATURE_HASV120, |
| 587 | TRICORE_FEATURE_HASV130, |
| 588 | TRICORE_FEATURE_HASV131, |
| 589 | TRICORE_FEATURE_HASV160, |
| 590 | TRICORE_FEATURE_HASV161, |
| 591 | TRICORE_FEATURE_HASV162, |
| 592 | TRICORE_FEATURE_HASV180, |
| 593 | TRICORE_FEATURE_HASV120_UP, |
| 594 | TRICORE_FEATURE_HASV130_UP, |
| 595 | TRICORE_FEATURE_HASV131_UP, |
| 596 | TRICORE_FEATURE_HASV160_UP, |
| 597 | TRICORE_FEATURE_HASV161_UP, |
| 598 | TRICORE_FEATURE_HASV162_UP, |
| 599 | TRICORE_FEATURE_HASV180_UP, |
| 600 | TRICORE_FEATURE_HASV120_DN, |
| 601 | TRICORE_FEATURE_HASV130_DN, |
| 602 | TRICORE_FEATURE_HASV131_DN, |
| 603 | TRICORE_FEATURE_HASV160_DN, |
| 604 | TRICORE_FEATURE_HASV161_DN, |
| 605 | TRICORE_FEATURE_HASV162_DN, |
| 606 | TRICORE_FEATURE_HASV180_DN, |
| 607 | |
| 608 | // clang-format on |
| 609 | // generated content <TriCoreGenCSFeatureEnum.inc> end |
| 610 | TRICORE_FEATURE_ENDING, ///< mark the end of the list of features |
| 611 | } tricore_feature; |
| 612 | |
| 613 | #ifdef __cplusplus |
| 614 | } |
| 615 | #endif |
| 616 | |
| 617 | #endif |
| 618 |