2022-06-03 17:46:51 +00:00
|
|
|
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
|
|
|
/* SPDX-License-Identifier: MIT */
|
|
|
|
|
|
|
|
#ifndef RABBITIZER_INSTRID_H
|
|
|
|
#define RABBITIZER_INSTRID_H
|
|
|
|
#pragma once
|
|
|
|
|
2022-06-03 21:05:00 +00:00
|
|
|
|
2022-06-04 21:34:17 +00:00
|
|
|
#define RABBITIZER_DEF_INSTR_ID(prefix, name, ...) \
|
|
|
|
RABBITIZER_INSTR_##prefix##_##name
|
2022-06-03 21:05:00 +00:00
|
|
|
|
2022-06-04 21:34:17 +00:00
|
|
|
#define RABBITIZER_DEF_INSTR_ID_ALTNAME(prefix, name, altname, ...) \
|
|
|
|
RABBITIZER_INSTR_##prefix##_##name
|
2022-06-03 21:05:00 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2022-06-04 21:34:17 +00:00
|
|
|
typedef enum RabbitizerInstrCpuId {
|
|
|
|
#include "instructions/RabbitizerInstrId_cpu.inc"
|
|
|
|
RABBITIZER_DEF_INSTR_ID(CPU_ID, MAX),
|
2022-06-03 17:46:51 +00:00
|
|
|
} RabbitizerInstrCpuId;
|
|
|
|
|
2022-06-04 21:34:17 +00:00
|
|
|
#undef RABBITIZER_DEF_INSTR_ID
|
|
|
|
#undef RABBITIZER_DEF_INSTR_ID_ALTNAME
|
|
|
|
|
2022-06-03 17:46:51 +00:00
|
|
|
typedef enum RabbitizerInstrRspId {
|
2022-06-03 21:33:10 +00:00
|
|
|
RABBITIZER_INSTR_RSP_ID_INVALID = RABBITIZER_INSTR_CPU_ID_MAX+1,
|
|
|
|
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vmulf,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vmulu,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vrndp,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vmulq,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vmudl,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vmudm,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vmudn,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vmudh,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vmacf,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vmacu,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vrndn,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vmacq,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vmadl,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vmadm,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vmadn,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vmadh,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vadd,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vsub,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vabs,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vaddc,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vsubc,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vsar,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vand,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vnand,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vor,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vnor,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vxor,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vnxor,
|
|
|
|
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vlt,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_veq,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vne,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vge,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vcl,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vch,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vcr,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vmrg,
|
|
|
|
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vrcp,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vrcpl,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vrcph,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vmov,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vrsq,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vrsql,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vrsqh,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_vnop,
|
|
|
|
|
|
|
|
RABBITIZER_INSTR_RSP_ID_mfc2,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_mtc2,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_cfc2,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_ctc2,
|
|
|
|
|
|
|
|
RABBITIZER_INSTR_RSP_ID_sbv,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_ssv,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_slv,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_sdv,
|
|
|
|
|
|
|
|
RABBITIZER_INSTR_RSP_ID_sqv,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_srv,
|
|
|
|
|
|
|
|
RABBITIZER_INSTR_RSP_ID_spv,
|
|
|
|
|
|
|
|
RABBITIZER_INSTR_RSP_ID_suv,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_swv,
|
|
|
|
|
|
|
|
RABBITIZER_INSTR_RSP_ID_shv,
|
|
|
|
|
|
|
|
RABBITIZER_INSTR_RSP_ID_sfv,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_stv,
|
|
|
|
|
|
|
|
RABBITIZER_INSTR_RSP_ID_lbv,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_lsv,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_llv,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_ldv,
|
|
|
|
|
|
|
|
RABBITIZER_INSTR_RSP_ID_lqv,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_lrv,
|
|
|
|
|
|
|
|
RABBITIZER_INSTR_RSP_ID_lpv,
|
|
|
|
|
|
|
|
RABBITIZER_INSTR_RSP_ID_luv,
|
|
|
|
|
|
|
|
RABBITIZER_INSTR_RSP_ID_lhv,
|
|
|
|
|
|
|
|
RABBITIZER_INSTR_RSP_ID_lfv,
|
|
|
|
RABBITIZER_INSTR_RSP_ID_ltv,
|
|
|
|
|
|
|
|
RABBITIZER_INSTR_RSP_ID_MAX,
|
2022-06-03 17:46:51 +00:00
|
|
|
} RabbitizerInstrRspId;
|
|
|
|
|
|
|
|
|
|
|
|
typedef union RabbitizerInstrId {
|
|
|
|
RabbitizerInstrCpuId cpuId;
|
|
|
|
RabbitizerInstrRspId rspId;
|
|
|
|
} RabbitizerInstrId;
|
|
|
|
|
2022-06-03 21:33:10 +00:00
|
|
|
|
|
|
|
extern const char *RabbitizerInstrId_Names[];
|
|
|
|
|
2022-06-03 17:46:51 +00:00
|
|
|
#endif
|