use crate::OpCodeOperandKind;
#[rustfmt::skip]
pub(super) static LEGACY_OP_KINDS: [OpCodeOperandKind; 76] = [
OpCodeOperandKind::None,
OpCodeOperandKind::farbr2_2,
OpCodeOperandKind::farbr4_2,
OpCodeOperandKind::mem_offs,
OpCodeOperandKind::mem,
OpCodeOperandKind::mem_mpx,
OpCodeOperandKind::mem_mib,
OpCodeOperandKind::r8_or_mem,
OpCodeOperandKind::r16_or_mem,
OpCodeOperandKind::r32_or_mem,
OpCodeOperandKind::r32_or_mem_mpx,
OpCodeOperandKind::r64_or_mem,
OpCodeOperandKind::r64_or_mem_mpx,
OpCodeOperandKind::mm_or_mem,
OpCodeOperandKind::xmm_or_mem,
OpCodeOperandKind::bnd_or_mem_mpx,
OpCodeOperandKind::r8_reg,
OpCodeOperandKind::r8_opcode,
OpCodeOperandKind::r16_reg,
OpCodeOperandKind::r16_reg_mem,
OpCodeOperandKind::r16_rm,
OpCodeOperandKind::r16_opcode,
OpCodeOperandKind::r32_reg,
OpCodeOperandKind::r32_reg_mem,
OpCodeOperandKind::r32_rm,
OpCodeOperandKind::r32_opcode,
OpCodeOperandKind::r64_reg,
OpCodeOperandKind::r64_reg_mem,
OpCodeOperandKind::r64_rm,
OpCodeOperandKind::r64_opcode,
OpCodeOperandKind::seg_reg,
OpCodeOperandKind::mm_reg,
OpCodeOperandKind::mm_rm,
OpCodeOperandKind::xmm_reg,
OpCodeOperandKind::xmm_rm,
OpCodeOperandKind::cr_reg,
OpCodeOperandKind::dr_reg,
OpCodeOperandKind::tr_reg,
OpCodeOperandKind::bnd_reg,
OpCodeOperandKind::es,
OpCodeOperandKind::cs,
OpCodeOperandKind::ss,
OpCodeOperandKind::ds,
OpCodeOperandKind::fs,
OpCodeOperandKind::gs,
OpCodeOperandKind::al,
OpCodeOperandKind::cl,
OpCodeOperandKind::ax,
OpCodeOperandKind::dx,
OpCodeOperandKind::eax,
OpCodeOperandKind::rax,
OpCodeOperandKind::st0,
OpCodeOperandKind::sti_opcode,
OpCodeOperandKind::imm8,
OpCodeOperandKind::imm8_const_1,
OpCodeOperandKind::imm8sex16,
OpCodeOperandKind::imm8sex32,
OpCodeOperandKind::imm8sex64,
OpCodeOperandKind::imm16,
OpCodeOperandKind::imm32,
OpCodeOperandKind::imm32sex64,
OpCodeOperandKind::imm64,
OpCodeOperandKind::seg_rSI,
OpCodeOperandKind::es_rDI,
OpCodeOperandKind::seg_rDI,
OpCodeOperandKind::seg_rBX_al,
OpCodeOperandKind::br16_1,
OpCodeOperandKind::br32_1,
OpCodeOperandKind::br64_1,
OpCodeOperandKind::br16_2,
OpCodeOperandKind::br32_4,
OpCodeOperandKind::br64_4,
OpCodeOperandKind::xbegin_2,
OpCodeOperandKind::xbegin_4,
OpCodeOperandKind::brdisp_2,
OpCodeOperandKind::brdisp_4,
];
#[rustfmt::skip]
#[cfg(not(feature = "no_vex"))]
pub(super) static VEX_OP_KINDS: [OpCodeOperandKind; 39] = [
OpCodeOperandKind::None,
OpCodeOperandKind::mem,
OpCodeOperandKind::mem_vsib32x,
OpCodeOperandKind::mem_vsib64x,
OpCodeOperandKind::mem_vsib32y,
OpCodeOperandKind::mem_vsib64y,
OpCodeOperandKind::r32_or_mem,
OpCodeOperandKind::r64_or_mem,
OpCodeOperandKind::xmm_or_mem,
OpCodeOperandKind::ymm_or_mem,
OpCodeOperandKind::k_or_mem,
OpCodeOperandKind::r32_reg,
OpCodeOperandKind::r32_rm,
OpCodeOperandKind::r32_vvvv,
OpCodeOperandKind::r64_reg,
OpCodeOperandKind::r64_rm,
OpCodeOperandKind::r64_vvvv,
OpCodeOperandKind::k_reg,
OpCodeOperandKind::k_rm,
OpCodeOperandKind::k_vvvv,
OpCodeOperandKind::xmm_reg,
OpCodeOperandKind::xmm_rm,
OpCodeOperandKind::xmm_vvvv,
OpCodeOperandKind::xmm_is4,
OpCodeOperandKind::xmm_is5,
OpCodeOperandKind::ymm_reg,
OpCodeOperandKind::ymm_rm,
OpCodeOperandKind::ymm_vvvv,
OpCodeOperandKind::ymm_is4,
OpCodeOperandKind::ymm_is5,
OpCodeOperandKind::imm4_m2z,
OpCodeOperandKind::imm8,
OpCodeOperandKind::seg_rDI,
OpCodeOperandKind::br64_1,
OpCodeOperandKind::br64_4,
OpCodeOperandKind::sibmem,
OpCodeOperandKind::tmm_reg,
OpCodeOperandKind::tmm_rm,
OpCodeOperandKind::tmm_vvvv,
];
#[rustfmt::skip]
#[cfg(not(feature = "no_xop"))]
pub(super) static XOP_OP_KINDS: [OpCodeOperandKind; 19] = [
OpCodeOperandKind::None,
OpCodeOperandKind::r32_or_mem,
OpCodeOperandKind::r64_or_mem,
OpCodeOperandKind::xmm_or_mem,
OpCodeOperandKind::ymm_or_mem,
OpCodeOperandKind::r32_reg,
OpCodeOperandKind::r32_rm,
OpCodeOperandKind::r32_vvvv,
OpCodeOperandKind::r64_reg,
OpCodeOperandKind::r64_rm,
OpCodeOperandKind::r64_vvvv,
OpCodeOperandKind::xmm_reg,
OpCodeOperandKind::xmm_vvvv,
OpCodeOperandKind::xmm_is4,
OpCodeOperandKind::ymm_reg,
OpCodeOperandKind::ymm_vvvv,
OpCodeOperandKind::ymm_is4,
OpCodeOperandKind::imm8,
OpCodeOperandKind::imm32,
];
#[rustfmt::skip]
#[cfg(not(feature = "no_evex"))]
pub(super) static EVEX_OP_KINDS: [OpCodeOperandKind; 32] = [
OpCodeOperandKind::None,
OpCodeOperandKind::mem,
OpCodeOperandKind::mem_vsib32x,
OpCodeOperandKind::mem_vsib64x,
OpCodeOperandKind::mem_vsib32y,
OpCodeOperandKind::mem_vsib64y,
OpCodeOperandKind::mem_vsib32z,
OpCodeOperandKind::mem_vsib64z,
OpCodeOperandKind::r32_or_mem,
OpCodeOperandKind::r64_or_mem,
OpCodeOperandKind::xmm_or_mem,
OpCodeOperandKind::ymm_or_mem,
OpCodeOperandKind::zmm_or_mem,
OpCodeOperandKind::r32_reg,
OpCodeOperandKind::r32_rm,
OpCodeOperandKind::r64_reg,
OpCodeOperandKind::r64_rm,
OpCodeOperandKind::k_reg,
OpCodeOperandKind::kp1_reg,
OpCodeOperandKind::k_rm,
OpCodeOperandKind::xmm_reg,
OpCodeOperandKind::xmm_rm,
OpCodeOperandKind::xmm_vvvv,
OpCodeOperandKind::xmmp3_vvvv,
OpCodeOperandKind::ymm_reg,
OpCodeOperandKind::ymm_rm,
OpCodeOperandKind::ymm_vvvv,
OpCodeOperandKind::zmm_reg,
OpCodeOperandKind::zmm_rm,
OpCodeOperandKind::zmm_vvvv,
OpCodeOperandKind::zmmp3_vvvv,
OpCodeOperandKind::imm8,
];
#[rustfmt::skip]
#[cfg(feature = "mvex")]
pub(super) static MVEX_OP_KINDS: [OpCodeOperandKind; 9] = [
OpCodeOperandKind::None,
OpCodeOperandKind::mem,
OpCodeOperandKind::mem_vsib32z,
OpCodeOperandKind::zmm_or_mem,
OpCodeOperandKind::k_reg,
OpCodeOperandKind::k_vvvv,
OpCodeOperandKind::zmm_reg,
OpCodeOperandKind::zmm_vvvv,
OpCodeOperandKind::imm8,
];